Add Editor elements for bookmarks.

This commit is contained in:
voussoir 2017-07-13 23:13:34 -07:00
parent 1f9dd35e89
commit 0e17350d84
2 changed files with 54 additions and 4 deletions

View file

@ -94,6 +94,8 @@ function Editor(elements, on_open, on_save, on_cancel)
this.can_use_element_map = true; this.can_use_element_map = true;
this.edit_element_map = {}; this.edit_element_map = {};
this.misc_data = {};
for (var index = 0; index < elements.length; index += 1) for (var index = 0; index < elements.length; index += 1)
{ {
var display_element = elements[index]; var display_element = elements[index];

View file

@ -14,7 +14,8 @@
flex: 0 0 auto; flex: 0 0 auto;
flex-direction: column; flex-direction: column;
} }
.bookmark_card .bookmark_card,
.new_bookmark_card
{ {
display: inline-flex; display: inline-flex;
flex: 0 0 auto; flex: 0 0 auto;
@ -42,15 +43,25 @@
<div id="content_body"> <div id="content_body">
<div id="bookmarks"> <div id="bookmarks">
{% for bookmark in bookmarks %} {% for bookmark in bookmarks %}
<div class="bookmark_card"> <div class="bookmark_card" data-bookmark-id="{{bookmark.id}}">
<a href="{{bookmark.url}}" class="bookmark_title"> <a href="{{bookmark.url}}"
class="bookmark_title"
data-editor-id="title"
data-editor-placeholer="title"
data-editor-empty-text="{{bookmark.id}}">
{%- if bookmark.title -%} {%- if bookmark.title -%}
{{bookmark.title}} {{bookmark.title}}
{%- else -%} {%- else -%}
{{bookmark.id}} {{bookmark.id}}
{%- endif -%} {%- endif -%}
</a> </a>
<a href="{{bookmark.url}}" class="bookmark_url">{{bookmark.url}}</a>
<a href="{{bookmark.url}}"
class="bookmark_url"
data-editor-id="url"
data-editor-placeholder="url">
{{-bookmark.url-}}
</a>
</div> </div>
{% endfor %} {% endfor %}
<div class="new_bookmark_card"> <div class="new_bookmark_card">
@ -87,5 +98,42 @@ function create_bookmark(url, title)
var callback = function(){location.reload();}; var callback = function(){location.reload();};
post(api_url, data, callback); post(api_url, data, callback);
} }
function on_save(editor, edit_element_map)
{
var title_editor = edit_element_map['title'];
var url_editor = edit_element_map['url'];
editor.show_spinner();
function callback()
{
editor.hide_spinner();
editor.save();
}
var url = "/bookmark/" + editor.misc_data["bookmark_id"] + "/edit";
var data = new FormData();
data.append("title", title_editor.value);
data.append("url", url_editor.value);
post(url, data, callback);
}
on_open = undefined;
on_cancel = undefined;
function create_editors()
{
var cards = document.getElementsByClassName("bookmark_card");
for (var index = 0; index < cards.length; index += 1)
{
var card = cards[index];
var title_div = card.getElementsByClassName("bookmark_title")[0];
var url_div = card.getElementsByClassName("bookmark_url")[0];
editor = new Editor([title_div, url_div], on_open, on_save, on_cancel);
editor.misc_data["bookmark_id"] = card.dataset.bookmarkId;
}
}
create_editors();
</script> </script>
</html> </html>