2872: Merge branch 'master' into 2872-folder-nav
[arvados.git] / apps / workbench / app / assets / javascripts / editable.js
index 8eea1693e8721efcf401c4c2c3c55bb0205180d1..ab66833c286a6c4666c3162309fe8267be03fea9 100644 (file)
@@ -9,6 +9,10 @@ $.fn.editable.defaults.send = 'always';
 // too narrow, when the popup box will just move to do the right thing.
 //$.fn.editable.defaults.mode = 'inline';
 
+$.fn.editable.defaults.success = function (response, newValue) {
+    $(document).trigger('editable:success', [this, response, newValue]);
+};
+
 $.fn.editable.defaults.params = function (params) {
     var a = {};
     var key = params.pk.key;
@@ -37,10 +41,9 @@ $.fn.editable.defaults.validate = function (value) {
 
 $(document).
     on('ready ajax:complete', function() {
-        $('#editable-submit').click(function() {
-            console.log($(this));
-        });
         $('.editable').
+            not('.editable-done-setup').
+            addClass('editable-done-setup').
             editable({
                 success: function(response, newValue) {
                     // If we just created a new object, stash its UUID
@@ -53,6 +56,9 @@ $(document).
                         $(this).editable('option', 'url', response.href);
                     }
                     return;
+                },
+                error: function(response, newValue) {
+                    return response.responseJSON.errors.join();
                 }
             }).
             on('hidden', function(e, reason) {
@@ -71,6 +77,15 @@ $(document).
                       });
                 }
             });
+    }).
+    on('ready ajax:complete', function() {
+        $("[data-toggle~='x-editable']").
+            not('.editable-done-setup').
+            addClass('editable-done-setup').
+            click(function(e) {
+                e.stopPropagation();
+                $($(this).attr('data-toggle-selector')).editable('toggle');
+            });
     });
 
 $.fn.editabletypes.text.defaults.tpl = '<input type="text" name="editable-text">'