')
+ .text(list.name)
+ );
lists.append(list_item);
+ }
+ });
- if (!new_selected_list
- ||selected_list && selected_list.uri == list.uri)
- new_selected_list = list_item;
-
- });
-
- select_list(new_selected_list);
+ if (!selected_list || selected_list.hasClass('old'))
+ select_list(lists.find('>li').eq(0));
- $('#page').addClass('have-lists');
- selected_list = new_selected_list;
- }
- else {
- $('#page').removeClass('have-lists');
- selected_list = null;
- }
+ 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();
+ load_lists()
+ .done((d)=>{
+ var new_list = $('li#list-'+uri_id(data.uri));
+ if (new_list.length)
+ select_list(new_list);
+ });
return;
}
@@ -99,35 +263,110 @@ function handle_new_list_submission(){
return false;
}
function new_list_item_submission_done(data) {
- if (data.lists_version != lists_version) {
- load_lists();
- return;
- }
-
- var item_data = selected_list.data('items');
+ got_lists_version(data.lists_version);
+ selected_list.data('lsl-version', selected_list.data('lsl-version') + 1 );
+ got_list_version(data.list_version);
- if (data.list_version != item_data.version + 1) {
- load_list_items(current_list);
- }
- else {
- var new_item = {
- description: $('#new-list-item input[type="text"]').val().trim(),
- done: $('#new-list-item input[type="checkbox"]').prop('checked'),
- version: 1,
- };
- item_data.items.push(new_item);
- item_data.version = data.list_version;
- add_list_item(new_item);
- }
+ 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(
+ $('