Fixes #4405: reset metadata editor when switching views.
authorRadek Czajka <rczajka@rczajka.pl>
Thu, 25 May 2023 09:36:46 +0000 (11:36 +0200)
committerRadek Czajka <rczajka@rczajka.pl>
Thu, 25 May 2023 09:36:46 +0000 (11:36 +0200)
src/redakcja/static/js/wiki/base.js
src/redakcja/static/js/wiki/view_editor_source.js
src/redakcja/static/js/wiki/view_editor_wysiwyg.js
src/redakcja/static/js/wiki/view_properties.js

index 5262ab7..b4fee85 100644 (file)
                return this.perspectives[ $(tab).attr('id')];
        }
 
+    $.wiki.exitTab = function(tab){
+       var self = this;
+       var $tab = $(tab);
+        if (!('.active', $tab)) return;
+       $('.active', $tab).removeClass('active');
+       self.perspectives[$tab.attr('id')].onExit();
+       $('#' + $tab.attr('data-ui-related')).hide();
+    }
+    
     $.wiki.switchToTab = function(tab){
        var self = this;
        var $tab = $(tab);
index 988d23c..ab8eaf0 100644 (file)
@@ -66,9 +66,7 @@
                $.wiki.Perspective.prototype.onExit.call(this);
            this.doc.setText(this.codemirror.getValue());
 
-            if ($('.vsplitbar').hasClass('active') && $('#SearchPerspective').hasClass('active')) {
-                $.wiki.switchToTab('#ScanGalleryPerspective');
-            }
+            $.wiki.exitTab('#SearchPerspective');
 
            if(success) success();
        }
index 2f510a2..5183a97 100644 (file)
         var self = this;
 
         self.caret.detach();
+
+        $.wiki.exitTab('#PropertiesPerspective');
         
         $.blockUI({
             message: 'Zapisywanie widoku...'
index fd53f04..204a4de 100644 (file)
     PropertiesPerspective.prototype.edit = function(element) {
         let self = this;
 
-        let $node = $(element);
         $("#parents", self.$pane).empty();
         $("#bubbles").empty();
 
+        $f = $("#properties-form", self.$pane);
+        $f.empty();
+
+        if (element === null) {
+            self.$edited = null;
+            return;
+        }
+
+        let $node = $(element);
         let b = $("<div class='badge badge-primary'></div>").text($node.attr('x-node'));
         b.data('node', element);
         $("#bubbles").append(b);
         node = $(element).attr('x-node');
         $("h1", self.$pane).text(node);
 
-        $f = $("#properties-form", self.$pane);
-        $f.empty();
         self.$edited = $(element);
 
         let nodeDef = elementDefs[node];
         this.edit(p);
     }
 
+    PropertiesPerspective.prototype.onEnter = function(success, failure){
+        var self = this;
+        $.wiki.SidebarPerspective.prototype.onEnter.call(this);
+
+        if ($.wiki.activePerspective() != 'VisualPerspective')
+            $.wiki.switchToTab('#VisualPerspective');
+
+        self.edit($('[x-node="utwor"]')[0]);
+    };
+
     $.wiki.PropertiesPerspective = PropertiesPerspective;
 
 })(jQuery);