Santhosh has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/323136

Change subject: Use the id of a visible template fragment for alignment and 
restore
......................................................................

Use the id of a visible template fragment for alignment and restore

Change-Id: I9d5dddbc7ee0c0b78e2bd3449473042b250acbfa
---
M modules/tools/ext.cx.tools.template.js
1 file changed, 29 insertions(+), 12 deletions(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/ContentTranslation 
refs/changes/36/323136/1

diff --git a/modules/tools/ext.cx.tools.template.js 
b/modules/tools/ext.cx.tools.template.js
index 8919458..c6f540f 100644
--- a/modules/tools/ext.cx.tools.template.js
+++ b/modules/tools/ext.cx.tools.template.js
@@ -257,12 +257,38 @@
        };
 
        /**
+        * Templates will have fragments and sometimes some of them will be
+        * invisible elements holding mw-data. We cannot align target sections
+        * against these 0 hight fragement. Restoring is also problematic.
+        * So we find a non-zero height fram to use for alignment and section
+        * restore.
+        *
+        * @return {jQuery}
+        */
+       Template.prototype.getFirstVisibleFragment = function () {
+               var $fragments, $fragment;
+
+               $fragments = this.getFragments();
+               $fragments.each( function ( index, fragment ) {
+                       $fragment = $( fragment );
+
+                       // Find a fragment with visible height
+                       if ( $fragment.height() > 0 ) {
+                               // break the loop
+                               return false;
+                       }
+               } );
+
+               return $fragment;
+       };
+
+       /**
         * Get the container to which the editor to append
         *
         * @return {jQuery}
         */
        Template.prototype.getEditorContainer = function () {
-               var $fragments, $container;
+               var $container;
 
                $container = this.$template;
 
@@ -271,16 +297,7 @@
                                this.$template.parents( 
mw.cx.getSectionSelector() );
                        $container = this.$parentSection;
                } else {
-                       $fragments = this.getFragments();
-                       $fragments.each( function ( index, fragment ) {
-                               var $fragment = $( fragment );
-
-                               // Find a fragment with visible height
-                               if ( $fragment.height() > 0 ) {
-                                       $container = $fragment;
-                                       return false;
-                               }
-                       } );
+                       $container = this.getFirstVisibleFragment() || 
this.$template;
                }
 
                return $container;
@@ -955,7 +972,7 @@
        TemplateTool.prototype.replaceTargetTemplate = function ( $newTemplate, 
state ) {
                var sourceId, $new;
 
-               sourceId = this.sourceTemplate.$template.prop( 'id' );
+               sourceId = this.sourceTemplate.getFirstVisibleFragment().prop( 
'id' );
                $new = $newTemplate
                        .clone()
                        .attr( {

-- 
To view, visit https://gerrit.wikimedia.org/r/323136
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I9d5dddbc7ee0c0b78e2bd3449473042b250acbfa
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/ContentTranslation
Gerrit-Branch: master
Gerrit-Owner: Santhosh <santhosh.thottin...@gmail.com>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to