Add CSS clipboard_size; and other clip hook improvements.
Any element with class clipboard_size will have its text updated; Removed the call to on_pageload from save_ because it redundantly causes a load. Separate those update hooks.
This commit is contained in:
parent
761ae5c30c
commit
a9248d8cab
4 changed files with 39 additions and 18 deletions
|
@ -84,7 +84,6 @@ If you are interested in helping, please raise an issue before making any pull r
|
|||
- Fix album size cache when photo reload metadata and generally improve that validation.
|
||||
- Better bookmark url validation.
|
||||
- Create a textbox which gives autocomplete tag names.
|
||||
- Allow any div to get the clipboard size. Update via classname instead of ID.
|
||||
|
||||
### To do list: User permissions
|
||||
Here are some thoughts about the kinds of features that need to exist within the permission system. I don't know how I'll actually manage it just yet. Possibly a `permissions` table in the database with `user_id | permission` where `permission` is some reliably-formatted string.
|
||||
|
|
|
@ -33,7 +33,7 @@ function save_photo_clipboard()
|
|||
console.log("Saving photo clipboard");
|
||||
var serialized = JSON.stringify(Array.from(photo_clipboard));
|
||||
localStorage.setItem("photo_clipboard", serialized);
|
||||
on_storage();
|
||||
update_pagestate();
|
||||
|
||||
for (var index = 0; index < on_clipboard_save_hooks.length; index += 1)
|
||||
{
|
||||
|
@ -135,7 +135,18 @@ function on_photo_select(event)
|
|||
|
||||
// Tray management /////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
function toggle_clipboard_tray_collapsed()
|
||||
function clipboard_tray_collapse()
|
||||
{
|
||||
var tray_body = document.getElementById("clipboard_tray_body");
|
||||
tray_body.classList.add("hidden");
|
||||
}
|
||||
function clipboard_tray_uncollapse()
|
||||
{
|
||||
var tray_body = document.getElementById("clipboard_tray_body");
|
||||
tray_body.classList.remove("hidden");
|
||||
update_clipboard_tray();
|
||||
}
|
||||
function clipboard_tray_collapse_toggle()
|
||||
{
|
||||
/*
|
||||
Show or hide the clipboard.
|
||||
|
@ -143,12 +154,11 @@ function toggle_clipboard_tray_collapsed()
|
|||
var tray_body = document.getElementById("clipboard_tray_body");
|
||||
if (tray_body.classList.contains("hidden") && photo_clipboard.size > 0)
|
||||
{
|
||||
tray_body.classList.remove("hidden");
|
||||
update_clipboard_tray();
|
||||
clipboard_tray_uncollapse();
|
||||
}
|
||||
else
|
||||
{
|
||||
tray_body.classList.add("hidden");
|
||||
clipboard_tray_collapse();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -162,7 +172,7 @@ function on_tray_delete_button(event)
|
|||
photo_clipboard.delete(photo_id);
|
||||
if (photo_clipboard.size == 0)
|
||||
{
|
||||
toggle_clipboard_tray_collapsed();
|
||||
clipboard_tray_collapse();
|
||||
}
|
||||
save_photo_clipboard();
|
||||
}
|
||||
|
@ -170,8 +180,7 @@ function on_tray_delete_button(event)
|
|||
function update_clipboard_tray()
|
||||
{
|
||||
/*
|
||||
Update the clipboard's title bar to the correct number of items and rebuild
|
||||
the rows if the tray is open.
|
||||
Rebuild the rows if the tray is open.
|
||||
*/
|
||||
var clipboard_tray = document.getElementById("clipboard_tray");
|
||||
if (clipboard_tray === null)
|
||||
|
@ -179,12 +188,6 @@ function update_clipboard_tray()
|
|||
return;
|
||||
}
|
||||
|
||||
var tray_button = document.getElementById("clipboard_tray_expandbutton");
|
||||
if (tray_button !== null)
|
||||
{
|
||||
tray_button.innerText = "Clipboard: " + photo_clipboard.size + " items";
|
||||
}
|
||||
|
||||
var tray_lines = document.getElementById("clipboard_tray_lines");
|
||||
if (!clipboard_tray.classList.contains("hidden"))
|
||||
{
|
||||
|
@ -214,14 +217,27 @@ function update_clipboard_tray()
|
|||
}
|
||||
}
|
||||
|
||||
function update_clipboard_count()
|
||||
{
|
||||
var elements = document.getElementsByClassName("clipboard_count");
|
||||
for (var index = 0; index < elements.length; index += 1)
|
||||
{
|
||||
elements[index].innerText = photo_clipboard.size;
|
||||
}
|
||||
}
|
||||
function on_storage()
|
||||
{
|
||||
/*
|
||||
Receive storage events from other tabs and update our state to match.
|
||||
*/
|
||||
load_photo_clipboard();
|
||||
apply_check_all();
|
||||
update_pagestate();
|
||||
}
|
||||
function update_pagestate()
|
||||
{
|
||||
update_clipboard_count();
|
||||
update_clipboard_tray();
|
||||
apply_check_all();
|
||||
}
|
||||
function on_pageload()
|
||||
{
|
||||
|
|
|
@ -11,6 +11,10 @@
|
|||
<script src="/static/photoclipboard.js"></script>
|
||||
|
||||
<style>
|
||||
#content_body
|
||||
{
|
||||
flex-direction: column;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
|
@ -18,6 +22,7 @@
|
|||
<body>
|
||||
{{header.make_header(session=session)}}
|
||||
<div id="content_body">
|
||||
<span>The clipboard contains <span class="clipboard_count">0</span> items</span>
|
||||
<div id="photo_card_holder">
|
||||
</div>
|
||||
</div>
|
||||
|
@ -97,5 +102,6 @@ function myhook()
|
|||
}
|
||||
|
||||
on_clipboard_load_hooks.push(myhook);
|
||||
on_clipboard_save_hooks.push(myhook);
|
||||
</script>
|
||||
</html>
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
<button
|
||||
id="clipboard_tray_expandbutton"
|
||||
class="yellow_button"
|
||||
onclick="toggle_clipboard_tray_collapsed()"
|
||||
>Clipboard: 0 items</button>
|
||||
onclick="clipboard_tray_collapse_toggle()"
|
||||
>Clipboard: <span class="clipboard_count">0</span> items</button>
|
||||
<div id="clipboard_tray_body" class="hidden">
|
||||
<div id="clipboard_tray_toolbox">
|
||||
<a target="_blank" href="/clipboard">Full clipboard</a>
|
||||
|
|
Loading…
Reference in a new issue