]> git.ktnx.net Git - lsl.git/blobdiff - public/javascripts/lsl.js
destroy both dialogs on close
[lsl.git] / public / javascripts / lsl.js
index 09f71449b383e5b97b684771c3a6d240ab255032..942f2498f011a8ade58f9dcee7204604662196cd 100644 (file)
@@ -92,6 +92,14 @@ function edit_list() {
                 .append(
                     $('<legend>').text('List name'),
                     $('<input type="text" size="10">')
+                    .on('keypress', (ev) => {
+                        if (13 == ev.keyCode) {
+                            save_list(d);
+                            return false;
+                        }
+
+                        return true;
+                    })
                     .val(selected_list.data('lsl-name'))
                 )
         );
@@ -102,6 +110,9 @@ function edit_list() {
         modal: true,
         title: 'Edit list',
         width: 'max-content',
+        close: (ev) => {
+            $(ev.target).dialog('destroy');
+        },
         buttons: [
             {
                 class: 'btn-delete',
@@ -281,6 +292,28 @@ function delete_list_item(dlg, li) {
         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 = $('<div>')
         .append(
@@ -288,6 +321,14 @@ function edit_list_item(li) {
                 .append(
                     $('<legend>').text('Item name'),
                     $('<input type="text" size="10">')
+                    .on('keypress', (ev) => {
+                        if (13 == ev.keyCode) {
+                            save_list_item(d, li);
+                            return false;
+                        }
+
+                        return true;
+                    })
                     .val(li.data('lsl-description'))
                 )
         );
@@ -298,6 +339,9 @@ function edit_list_item(li) {
         modal: true,
         title: 'Edit item',
         width: 'max-content',
+        close: (ev) => {
+            $(ev.target).dialog('destroy');
+        },
         buttons: [
             {
                 class: 'btn-delete',