Index: chrome/browser/resources/policy.js |
diff --git a/chrome/browser/resources/policy.js b/chrome/browser/resources/policy.js |
index eb564cdbee738e1d80b50b4fd83c425ae33a6b80..8fad18200cf1d4612fe3b12c5ed02d7e9f3f8c5f 100644 |
--- a/chrome/browser/resources/policy.js |
+++ b/chrome/browser/resources/policy.js |
@@ -79,7 +79,18 @@ cr.define('policies', function() { |
var input = new JsEvalContext(policyData); |
var output = $('data-template'); |
jstProcess(input, output); |
- this.setToggleEventHandlers_(); |
+ |
+ var toggles = document.querySelectorAll('.policy-set * .toggler'); |
+ for (var i = 0; i < toggles.length; i++) { |
+ toggles[i].hidden = true; |
+ toggles[i].onclick = function() { |
+ Policy.getInstance().toggleCellExpand_(this); |
+ }; |
+ } |
+ |
+ var containers = document.querySelectorAll('.text-container'); |
+ for (var i = 0; i < containers.length; i++) |
+ this.initTextContainer_(containers[i]) |
}, |
/** |
@@ -124,38 +135,18 @@ cr.define('policies', function() { |
}, |
/** |
- * Set event handlers for the "Show more"/"Hide" links generated by |
- * jstemplate. |
- * @private |
- */ |
- setToggleEventHandlers_: function() { |
- var toggles = document.querySelectorAll('.policy-set * .toggler'); |
- for (var i = 0; i < toggles.length; i++) { |
- toggles[i].onclick = function() { |
- Policy.getInstance().toggleCellExpand_(this); |
- }; |
- } |
- }, |
- |
- /** |
* Expands or collapses a table cell that has overflowing text. |
* @param {Object} toggler The toggler that was clicked on. |
* @private |
*/ |
toggleCellExpand_: function(toggler) { |
- var tableCell = toggler.parentElement; |
- var textContainer = tableCell.querySelector('.text-container'); |
+ var textContainer = toggler.parentElement; |
+ textContainer.collapsed = !textContainer.collapsed; |
if (textContainer.collapsed) |
- this.expandCell_(textContainer); |
- else |
this.collapseCell_(textContainer); |
- |
- textContainer.collapsed = !textContainer.collapsed; |
- var expand = tableCell.querySelector('.expand'); |
- var collapse = tableCell.querySelector('.collapse'); |
- expand.style.display = textContainer.collapsed ? '' : 'none'; |
- collapse.style.display = textContainer.collapsed ? 'none' : ''; |
+ else |
+ this.expandCell_(textContainer); |
}, |
/** |
@@ -164,11 +155,7 @@ cr.define('policies', function() { |
* the table is updated. |
*/ |
collapseExpandedCells: function() { |
- var toggles = document.querySelectorAll('.policy-set * .toggler'); |
- for (var i = 0; i < toggles.length; i++) |
- toggles[i].style.display = 'none'; |
- |
- var textContainers = document.querySelectorAll('.expanded'); |
+ var textContainers = document.querySelectorAll('.text-expanded'); |
for (var i = 0; i < textContainers.length; i++) |
this.collapseCell_(textContainers[i]); |
}, |
@@ -180,8 +167,10 @@ cr.define('policies', function() { |
* @private |
*/ |
expandCell_: function(textContainer) { |
- textContainer.classList.remove('collapsed'); |
- textContainer.classList.add('expanded'); |
+ textContainer.classList.remove('text-collapsed'); |
+ textContainer.classList.add('text-expanded'); |
+ textContainer.querySelector('.expand').hidden = true; |
+ textContainer.querySelector('.collapse').hidden = false; |
}, |
/** |
@@ -191,8 +180,26 @@ cr.define('policies', function() { |
* @private |
*/ |
collapseCell_: function(textContainer) { |
- textContainer.classList.remove('expanded'); |
- textContainer.classList.add('collapsed'); |
+ textContainer.classList.remove('text-expanded'); |
+ textContainer.classList.add('text-collapsed'); |
+ textContainer.querySelector('.expand').hidden = false; |
+ textContainer.querySelector('.collapse').hidden = true; |
+ }, |
+ |
+ /** |
+ * Initializes a text container, showing the expand toggle if necessary. |
+ * @param {Object} textContainer The text container element. |
+ */ |
+ initTextContainer_: function(textContainer) { |
+ textContainer.collapsed = true; |
+ var textValue = textContainer.querySelector('.text-value'); |
+ |
+ // If the text is wider than the text container, the expand toggler should |
+ // appear. |
+ if (textContainer.offsetWidth < textValue.offsetWidth || |
+ textContainer.offsetHeight < textValue.offsetHeight) { |
+ this.collapseCell_(textContainer); |
+ } |
} |
}; |
@@ -238,22 +245,6 @@ cr.define('policies', function() { |
}; |
/** |
- * Returns true if the "Show more" toggle should appear in a table cell and |
- * false if not. |
- * @param {Object} expandToggle The "Show more" DOM element. |
- */ |
- Policy.shouldShowExpand = function(expandToggle) { |
- var textContainer = |
- expandToggle.parentNode.querySelector('.text-container'); |
- textContainer.collapsed = true; |
- var cellText = textContainer.querySelector('.cell-text'); |
- |
- // If the text is wider than the text container, the expand toggler should |
- // appear. |
- return textContainer.offsetWidth < cellText.offsetWidth; |
- }; |
- |
- /** |
* Initializes the page and loads the list of policies and the policy |
* status data. |
*/ |