[MediaWiki-commits] [Gerrit] apps...wikipedia[master]: Hygiene: move collapseTables.getTableHeader to applib

2017-02-28 Thread jenkins-bot (Code Review)
jenkins-bot has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/339808 )

Change subject: Hygiene: move collapseTables.getTableHeader to applib
..


Hygiene: move collapseTables.getTableHeader to applib

Bug: T158309
Change-Id: I86bdbc30e435316cee170f36ac5a69c8b126f547
---
M app/src/main/assets/bundle.js
M www/js/transforms/collapseTables.js
M www/package.json
3 files changed, 70 insertions(+), 77 deletions(-)

Approvals:
  Dbrant: Looks good to me, approved
  jenkins-bot: Verified
  Mholloway: Looks good to me, but someone else must approve



diff --git a/app/src/main/assets/bundle.js b/app/src/main/assets/bundle.js
index b68585f..676fc1c 100644
--- a/app/src/main/assets/bundle.js
+++ b/app/src/main/assets/bundle.js
@@ -760,44 +760,8 @@
 }
 } );
 
},{"../transformer":14,"../utilities":25}],17:[function(require,module,exports){
+var getTableHeader = require("applib").CollapseElement.getTableHeader;
 var transformer = require("../transformer");
-
-/*
-Tries to get an array of table header (TH) contents from a given table.
-If there are no TH elements in the table, an empty array is returned.
-*/
-function getTableHeader( element ) {
-var thArray = [];
-if (element.children === undefined || element.children === null) {
-return thArray;
-}
-for (var i = 0; i < element.children.length; i++) {
-var el = element.children[i];
-if (el.tagName === "TH") {
-// ok, we have a TH element!
-// However, if it contains more than two links, then ignore it, 
because
-// it will probably appear weird when rendered as plain text.
-var aNodes = el.querySelectorAll( "a" );
-if (aNodes.length < 3) {
-// Also ignore it if it's identical to the page title.
-if (el.innerText.length > 0 && el.innerText !== 
window.pageTitle && el.innerHTML !== window.pageTitle) {
-thArray.push(el.innerText);
-}
-}
-}
-//if it's a table within a table, don't worry about it
-if (el.tagName === "TABLE") {
-continue;
-}
-//recurse into children of this element
-var ret = getTableHeader(el);
-//did we get a list of TH from this child?
-if (ret.length > 0) {
-thArray = thArray.concat(ret);
-}
-}
-return thArray;
-}
 
 function handleTableCollapseOrExpandClick() {
 var container = this.parentNode;
@@ -839,7 +803,7 @@
 }
 
 var isInfobox = tables[i].classList.contains( 'infobox' );
-var headerText = getTableHeader(tables[i]);
+var headerText = getTableHeader(tables[i], window.pageTitle);
 if (headerText.length === 0 && !isInfobox) {
 continue;
 }
@@ -899,7 +863,7 @@
 module.exports = {
 handleTableCollapseOrExpandClick: handleTableCollapseOrExpandClick
 };
-},{"../transformer":14}],18:[function(require,module,exports){
+},{"../transformer":14,"applib":26}],18:[function(require,module,exports){
 var transformer = require("../transformer");
 var collapseTables = require("./collapseTables");
 
@@ -1330,4 +1294,66 @@
 firstAncestorWithMultipleChildren: firstAncestorWithMultipleChildren
 };
 
+},{}],26:[function(require,module,exports){
+'use strict';
+
+/**
+  Tries to get an array of table header (TH) contents from a given table. If
+  there are no TH elements in the table, an empty array is returned.
+  @param {!Element} element Table or blob of HTML containing a table?
+  @param {?string} pageTitle
+  @return {!Array}
+*/
+var getTableHeader = function getTableHeader(element, pageTitle) {
+  var thArray = [];
+
+  if (element.children === undefined || element.children === null) {
+return thArray;
+  }
+
+  for (var i = 0; i < element.children.length; i++) {
+var el = element.children[i];
+
+if (el.tagName === 'TH') {
+  // ok, we have a TH element!
+  // However, if it contains more than two links, then ignore it, because
+  // it will probably appear weird when rendered as plain text.
+  var aNodes = el.querySelectorAll('a');
+  if (aNodes.length < 3) {
+// todo: remove nonstandard Element.innerText usage
+// Also ignore it if it's identical to the page title.
+if ((el.innerText && el.innerText.length || el.textContent.length) > 0 
&& el.innerText !== pageTitle && el.textContent !== pageTitle && el.innerHTML 
!== pageTitle) {
+  thArray.push(el.innerText || el.textContent);
+}
+  }
+}
+
+// if it's a table within a table, don't worry about it
+if (el.tagName === 'TABLE') {
+  continue;
+}
+
+// recurse into children of this element
+var ret = getTableHeader(el, pageTitle);
+
+// did we get a list of TH from this child?
+if (ret.length > 0) {
+  thArray = thArray.concat(ret);
+}
+  }
+
+  

[MediaWiki-commits] [Gerrit] apps...wikipedia[master]: Hygiene: move collapseTables.getTableHeader to applib

2017-02-24 Thread Niedzielski (Code Review)
Niedzielski has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/339808 )

Change subject: Hygiene: move collapseTables.getTableHeader to applib
..

Hygiene: move collapseTables.getTableHeader to applib

Bug: T158309
Change-Id: I86bdbc30e435316cee170f36ac5a69c8b126f547
---
M app/src/main/assets/bundle.js
M www/js/transforms/collapseTables.js
M www/package.json
3 files changed, 70 insertions(+), 77 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia 
refs/changes/08/339808/1

diff --git a/app/src/main/assets/bundle.js b/app/src/main/assets/bundle.js
index b68585f..676fc1c 100644
--- a/app/src/main/assets/bundle.js
+++ b/app/src/main/assets/bundle.js
@@ -760,44 +760,8 @@
 }
 } );
 
},{"../transformer":14,"../utilities":25}],17:[function(require,module,exports){
+var getTableHeader = require("applib").CollapseElement.getTableHeader;
 var transformer = require("../transformer");
-
-/*
-Tries to get an array of table header (TH) contents from a given table.
-If there are no TH elements in the table, an empty array is returned.
-*/
-function getTableHeader( element ) {
-var thArray = [];
-if (element.children === undefined || element.children === null) {
-return thArray;
-}
-for (var i = 0; i < element.children.length; i++) {
-var el = element.children[i];
-if (el.tagName === "TH") {
-// ok, we have a TH element!
-// However, if it contains more than two links, then ignore it, 
because
-// it will probably appear weird when rendered as plain text.
-var aNodes = el.querySelectorAll( "a" );
-if (aNodes.length < 3) {
-// Also ignore it if it's identical to the page title.
-if (el.innerText.length > 0 && el.innerText !== 
window.pageTitle && el.innerHTML !== window.pageTitle) {
-thArray.push(el.innerText);
-}
-}
-}
-//if it's a table within a table, don't worry about it
-if (el.tagName === "TABLE") {
-continue;
-}
-//recurse into children of this element
-var ret = getTableHeader(el);
-//did we get a list of TH from this child?
-if (ret.length > 0) {
-thArray = thArray.concat(ret);
-}
-}
-return thArray;
-}
 
 function handleTableCollapseOrExpandClick() {
 var container = this.parentNode;
@@ -839,7 +803,7 @@
 }
 
 var isInfobox = tables[i].classList.contains( 'infobox' );
-var headerText = getTableHeader(tables[i]);
+var headerText = getTableHeader(tables[i], window.pageTitle);
 if (headerText.length === 0 && !isInfobox) {
 continue;
 }
@@ -899,7 +863,7 @@
 module.exports = {
 handleTableCollapseOrExpandClick: handleTableCollapseOrExpandClick
 };
-},{"../transformer":14}],18:[function(require,module,exports){
+},{"../transformer":14,"applib":26}],18:[function(require,module,exports){
 var transformer = require("../transformer");
 var collapseTables = require("./collapseTables");
 
@@ -1330,4 +1294,66 @@
 firstAncestorWithMultipleChildren: firstAncestorWithMultipleChildren
 };
 
+},{}],26:[function(require,module,exports){
+'use strict';
+
+/**
+  Tries to get an array of table header (TH) contents from a given table. If
+  there are no TH elements in the table, an empty array is returned.
+  @param {!Element} element Table or blob of HTML containing a table?
+  @param {?string} pageTitle
+  @return {!Array}
+*/
+var getTableHeader = function getTableHeader(element, pageTitle) {
+  var thArray = [];
+
+  if (element.children === undefined || element.children === null) {
+return thArray;
+  }
+
+  for (var i = 0; i < element.children.length; i++) {
+var el = element.children[i];
+
+if (el.tagName === 'TH') {
+  // ok, we have a TH element!
+  // However, if it contains more than two links, then ignore it, because
+  // it will probably appear weird when rendered as plain text.
+  var aNodes = el.querySelectorAll('a');
+  if (aNodes.length < 3) {
+// todo: remove nonstandard Element.innerText usage
+// Also ignore it if it's identical to the page title.
+if ((el.innerText && el.innerText.length || el.textContent.length) > 0 
&& el.innerText !== pageTitle && el.textContent !== pageTitle && el.innerHTML 
!== pageTitle) {
+  thArray.push(el.innerText || el.textContent);
+}
+  }
+}
+
+// if it's a table within a table, don't worry about it
+if (el.tagName === 'TABLE') {
+  continue;
+}
+
+// recurse into children of this element
+var ret = getTableHeader(el, pageTitle);
+
+// did we get a list of TH from this child?
+if (ret.length > 0) {
+  thArray = thArray.concat(ret);
+}
+  }
+
+  return thArray;
+};
+
+var CollapseElement = {
+