')
+ .text(list.name)
+ );
+ lists.append(list_item);
+ }
+ });
+
+ if (!selected_list || selected_list.hasClass('old'))
+ select_list(lists.find('>li').eq(0));
+
+ lists.find('li.old').remove();
+ });
+}
+function new_list_submission_done(data) {
+ $('input[name="list_name"]').val('').trigger('change');
+
+ if (data.lists_version != lists_version) {
+ load_lists()
+ .done((d)=>{
+ var new_list = $('li#list-'+uri_id(data.uri));
+ if (new_list.length)
+ select_list(new_list);
+ });
+ return;
+ }
+
+ console.log("TODO: easy-add new list");
+
}
function handle_new_list_submission(){
$.post(uri_base + '/api/v1/list',
JSON.stringify({name:$('input[name="list_name"]').val()}))
- .done(load_lists);
+ .done(new_list_submission_done);
+ return false;
+}
+function new_list_item_submission_done(data) {
+ got_lists_version(data.lists_version);
+ selected_list.data('lsl-version', selected_list.data('lsl-version') + 1 );
+ got_list_version(data.list_version);
+
+ var new_item = {
+ description: $('#new-list-item input[type="text"]').val().trim(),
+ done: $('#new-list-item input[type="checkbox"]').prop('checked'),
+ version: 1,
+ uri: data.uri,
+ };
+ selected_list.data('lsl-items').push(new_item);
+ add_list_item(new_item);
+
+ $('#new-list-item input').val('');
+}
+function delete_list_item(dlg, li) {
+ $.ajax(li.data('lsl-uri'),
+ { type: 'DELETE' })
+ .done((resp) => {
+ li.remove();
+ dlg.dialog('destroy');
+ selected_list.data('lsl-version', selected_list.data('lsl-version')+1);
+ got_list_version(resp.list_version);
+ got_lists_version(resp.lists_version);
+ });
+}
+function save_list_item(dlg,li) {
+ var new_description = dlg.find('input[type="text"]').val();
+
+ $.ajax( li.data('lsl-uri'),
+ { type: 'PUT',
+ data: JSON.stringify({
+ description: new_description,
+ version: li.data('lsl-version')})
+ }
+ )
+ .done((d)=>{
+ selected_list.data('lsl-version', selected_list.data('lsl-version') + 1);
+
+ li.data('lsl-description', new_description);
+ li.data('lsl-version', d.version);
+ li.find('.description').text(new_description);
+
+ dlg.dialog('destroy');
+ got_list_version(d.list_version);
+ got_lists_version(d.lists_version);
+ });
+}
+function edit_list_item(li) {
+ var d = $('')
+ .append(
+ $('