Browse Source

HUE-6786 [metastore] Fix ko editable binding after applying toggle overflow to the db description

Enrico Berti 8 years ago
parent
commit
4d6b299

+ 1 - 1
apps/metastore/src/metastore/templates/metastore.mako

@@ -884,7 +884,7 @@ ${ components.menubar(is_embeddable) }
   <div class="show-inactive-on-hover">
     <a class="inactive-action pointer toggle-editable" title="${ _('Edit the description') }"><i class="fa fa-pencil vertical-align-top"></i></a>
     <div data-bind="toggleOverflow: {height: 24}">
-      <div data-bind="attr:{ title: comment }, editable: comment, editableOptions: {enabled: true, type: 'wysihtml5', toggle: 'manual', toggleElement: '.toggle-editable', placement: 'bottom', placeholder: '${ _ko('Add a description...') }', emptytext: '${ _ko('No description available') }', inputclass:'input-xlarge', rows: 10 }" class="inline-block margin-left-5">
+      <div data-bind="editable: comment, editableOptions: {enabled: true, type: 'wysihtml5', toggle: 'manual', toggleElement: '.toggle-editable', placement: 'bottom', placeholder: '${ _ko('Add a description...') }', emptytext: '${ _ko('No description available') }', inputclass:'input-xlarge', rows: 10 }" class="inline-block margin-left-5">
         ${ _('Add a description...') }
       </div>
     </div>

+ 11 - 5
desktop/core/src/desktop/static/desktop/js/ko.editable.js

@@ -109,11 +109,17 @@
       }
 
       if (editableOptions.toggleElement) {
-        $element.parent().find(editableOptions.toggleElement).on('click', function (e) {
-          e.stopPropagation();
-          e.preventDefault();
-          $editable.editable('toggle');
-        });
+        var $clickable = $element.parent().find(editableOptions.toggleElement);
+        if ($element.parents('.show-inactive-on-hover').length > 0) {
+          $clickable = $element.parents('.show-inactive-on-hover').find(editableOptions.toggleElement);
+        }
+        if ($clickable !== null) {
+          $clickable.on('click', function (e) {
+            e.stopPropagation();
+            e.preventDefault();
+            $editable.editable('toggle');
+          });
+        }
       }
 
       if (editableOptions.save) {