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.
|
- Fix album size cache when photo reload metadata and generally improve that validation.
|
||||||
- Better bookmark url validation.
|
- Better bookmark url validation.
|
||||||
- Create a textbox which gives autocomplete tag names.
|
- 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
|
### 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.
|
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");
|
console.log("Saving photo clipboard");
|
||||||
var serialized = JSON.stringify(Array.from(photo_clipboard));
|
var serialized = JSON.stringify(Array.from(photo_clipboard));
|
||||||
localStorage.setItem("photo_clipboard", serialized);
|
localStorage.setItem("photo_clipboard", serialized);
|
||||||
on_storage();
|
update_pagestate();
|
||||||
|
|
||||||
for (var index = 0; index < on_clipboard_save_hooks.length; index += 1)
|
for (var index = 0; index < on_clipboard_save_hooks.length; index += 1)
|
||||||
{
|
{
|
||||||
|
@ -135,7 +135,18 @@ function on_photo_select(event)
|
||||||
|
|
||||||
// Tray management /////////////////////////////////////////////////////////////////////////////////
|
// 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.
|
Show or hide the clipboard.
|
||||||
|
@ -143,12 +154,11 @@ function toggle_clipboard_tray_collapsed()
|
||||||
var tray_body = document.getElementById("clipboard_tray_body");
|
var tray_body = document.getElementById("clipboard_tray_body");
|
||||||
if (tray_body.classList.contains("hidden") && photo_clipboard.size > 0)
|
if (tray_body.classList.contains("hidden") && photo_clipboard.size > 0)
|
||||||
{
|
{
|
||||||
tray_body.classList.remove("hidden");
|
clipboard_tray_uncollapse();
|
||||||
update_clipboard_tray();
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
tray_body.classList.add("hidden");
|
clipboard_tray_collapse();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -162,7 +172,7 @@ function on_tray_delete_button(event)
|
||||||
photo_clipboard.delete(photo_id);
|
photo_clipboard.delete(photo_id);
|
||||||
if (photo_clipboard.size == 0)
|
if (photo_clipboard.size == 0)
|
||||||
{
|
{
|
||||||
toggle_clipboard_tray_collapsed();
|
clipboard_tray_collapse();
|
||||||
}
|
}
|
||||||
save_photo_clipboard();
|
save_photo_clipboard();
|
||||||
}
|
}
|
||||||
|
@ -170,8 +180,7 @@ function on_tray_delete_button(event)
|
||||||
function update_clipboard_tray()
|
function update_clipboard_tray()
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
Update the clipboard's title bar to the correct number of items and rebuild
|
Rebuild the rows if the tray is open.
|
||||||
the rows if the tray is open.
|
|
||||||
*/
|
*/
|
||||||
var clipboard_tray = document.getElementById("clipboard_tray");
|
var clipboard_tray = document.getElementById("clipboard_tray");
|
||||||
if (clipboard_tray === null)
|
if (clipboard_tray === null)
|
||||||
|
@ -179,12 +188,6 @@ function update_clipboard_tray()
|
||||||
return;
|
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");
|
var tray_lines = document.getElementById("clipboard_tray_lines");
|
||||||
if (!clipboard_tray.classList.contains("hidden"))
|
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()
|
function on_storage()
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
Receive storage events from other tabs and update our state to match.
|
Receive storage events from other tabs and update our state to match.
|
||||||
*/
|
*/
|
||||||
load_photo_clipboard();
|
load_photo_clipboard();
|
||||||
apply_check_all();
|
update_pagestate();
|
||||||
|
}
|
||||||
|
function update_pagestate()
|
||||||
|
{
|
||||||
|
update_clipboard_count();
|
||||||
update_clipboard_tray();
|
update_clipboard_tray();
|
||||||
|
apply_check_all();
|
||||||
}
|
}
|
||||||
function on_pageload()
|
function on_pageload()
|
||||||
{
|
{
|
||||||
|
|
|
@ -11,6 +11,10 @@
|
||||||
<script src="/static/photoclipboard.js"></script>
|
<script src="/static/photoclipboard.js"></script>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
|
#content_body
|
||||||
|
{
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
|
@ -18,6 +22,7 @@
|
||||||
<body>
|
<body>
|
||||||
{{header.make_header(session=session)}}
|
{{header.make_header(session=session)}}
|
||||||
<div id="content_body">
|
<div id="content_body">
|
||||||
|
<span>The clipboard contains <span class="clipboard_count">0</span> items</span>
|
||||||
<div id="photo_card_holder">
|
<div id="photo_card_holder">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -97,5 +102,6 @@ function myhook()
|
||||||
}
|
}
|
||||||
|
|
||||||
on_clipboard_load_hooks.push(myhook);
|
on_clipboard_load_hooks.push(myhook);
|
||||||
|
on_clipboard_save_hooks.push(myhook);
|
||||||
</script>
|
</script>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -3,8 +3,8 @@
|
||||||
<button
|
<button
|
||||||
id="clipboard_tray_expandbutton"
|
id="clipboard_tray_expandbutton"
|
||||||
class="yellow_button"
|
class="yellow_button"
|
||||||
onclick="toggle_clipboard_tray_collapsed()"
|
onclick="clipboard_tray_collapse_toggle()"
|
||||||
>Clipboard: 0 items</button>
|
>Clipboard: <span class="clipboard_count">0</span> items</button>
|
||||||
<div id="clipboard_tray_body" class="hidden">
|
<div id="clipboard_tray_body" class="hidden">
|
||||||
<div id="clipboard_tray_toolbox">
|
<div id="clipboard_tray_toolbox">
|
||||||
<a target="_blank" href="/clipboard">Full clipboard</a>
|
<a target="_blank" href="/clipboard">Full clipboard</a>
|
||||||
|
|
Loading…
Reference in a new issue