Add new bookmarks to page without refreshing.
This is the first card to get a javascript version, so I'm testing the waters with the low-stakes bookmarks.
This commit is contained in:
parent
c984f6884e
commit
59654a89e6
2 changed files with 59 additions and 1 deletions
|
@ -71,6 +71,43 @@ function drag_drop(event)
|
|||
/******************************************************************************/
|
||||
cards.bookmarks = {};
|
||||
|
||||
cards.bookmarks.create =
|
||||
function create(bookmark, add_delete_button)
|
||||
{
|
||||
const bookmark_card = document.createElement("div");
|
||||
bookmark_card.className = "bookmark_card"
|
||||
bookmark_card.dataset.id = bookmark.id;
|
||||
|
||||
const bookmark_title = document.createElement("a");
|
||||
bookmark_title.className = "bookmark_title";
|
||||
bookmark_title.href = bookmark.url;
|
||||
bookmark_title.innerText = bookmark.display_name;
|
||||
bookmark_card.appendChild(bookmark_title);
|
||||
|
||||
const bookmark_url = document.createElement("a");
|
||||
bookmark_url.className = "bookmark_url";
|
||||
bookmark_url.href = bookmark.url;
|
||||
bookmark_url.innerText = bookmark.url;
|
||||
bookmark_card.appendChild(bookmark_url);
|
||||
|
||||
const bookmark_toolbox = document.createElement("div");
|
||||
bookmark_toolbox.className = "bookmark_toolbox"
|
||||
bookmark_card.appendChild(bookmark_toolbox);
|
||||
|
||||
if (add_delete_button)
|
||||
{
|
||||
const delete_button = document.createElement("button");
|
||||
delete_button.className = "red_button button_with_confirm";
|
||||
delete_button.dataset.onclick = "return delete_bookmark_form(event);";
|
||||
delete_button.dataset.prompt = "Delete Bookmark?";
|
||||
delete_button.dataset.cancelClass = "gray_button";
|
||||
delete_button.innerText = "Delete";
|
||||
bookmark_toolbox.appendChild(delete_button);
|
||||
common.init_button_with_confirm(delete_button);
|
||||
}
|
||||
return bookmark_card;
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
cards.photos = {};
|
||||
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
{% if theme %}<link rel="stylesheet" href="/static/css/theme_{{theme}}.css">{% endif %}
|
||||
<script src="/static/js/common.js"></script>
|
||||
<script src="/static/js/api.js"></script>
|
||||
<script src="/static/js/cards.js"></script>
|
||||
<script src="/static/js/spinner.js"></script>
|
||||
<script src="/static/js/editor.js"></script>
|
||||
|
||||
|
@ -54,7 +55,27 @@ function create_bookmark_form()
|
|||
{
|
||||
return;
|
||||
}
|
||||
return api.bookmarks.create(url, title, common.refresh_or_alert);
|
||||
return api.bookmarks.create(url, title, create_bookmark_callback);
|
||||
}
|
||||
|
||||
function create_bookmark_callback(response)
|
||||
{
|
||||
if (! (response.meta.status === 200 && response.meta.json_ok))
|
||||
{
|
||||
alert(JSON.stringify(response));
|
||||
return;
|
||||
}
|
||||
const bookmark = response.data;
|
||||
const add_delete_button = true;
|
||||
const bookmark_card = cards.bookmarks.create(bookmark, add_delete_button);
|
||||
create_editor(bookmark_card);
|
||||
|
||||
const bookmark_list = document.getElementById("bookmark_list");
|
||||
const new_bookmark_card = document.getElementById("new_bookmark_card");
|
||||
bookmark_list.insertBefore(bookmark_card, new_bookmark_card);
|
||||
|
||||
document.getElementById("new_bookmark_url").value = "";
|
||||
document.getElementById("new_bookmark_title").value = "";
|
||||
}
|
||||
|
||||
function delete_bookmark_form(event)
|
||||
|
|
Loading…
Reference in a new issue