Add Editor elements for bookmarks.
This commit is contained in:
parent
1f9dd35e89
commit
0e17350d84
2 changed files with 54 additions and 4 deletions
|
@ -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];
|
||||||
|
|
|
@ -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>
|
||||||
|
|
Loading…
Reference in a new issue