Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(712)

Unified Diff: chrome/browser/resources/options2/options_page.js

Issue 9513016: uber managed pref banners (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: self review 2 Created 8 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/resources/options2/options_page.css ('k') | chrome/browser/resources/options2/pref_ui.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/resources/options2/options_page.js
diff --git a/chrome/browser/resources/options2/options_page.js b/chrome/browser/resources/options2/options_page.js
index d84de730d9ef206312a278d1458199660967bafc..08ccd09030bb1f566322fd5c27c774d1c01221a5 100644
--- a/chrome/browser/resources/options2/options_page.js
+++ b/chrome/browser/resources/options2/options_page.js
@@ -906,6 +906,57 @@ cr.define('options', function() {
initializePage: function() {},
/**
+ * Updates managed banner visibility state. This function iterates over
+ * all input fields of a page and if any of these is marked as managed
+ * it triggers the managed banner to be visible. The banner can be enforced
+ * being on through the managed flag of this class but it can not be forced
+ * being off if managed items exist.
+ */
+ updateManagedBannerVisibility: function() {
+ var bannerDiv = this.pageDiv.querySelector('.managed-prefs-banner');
+ // Create a banner for the overlay if we don't have one.
+ if (!bannerDiv) {
+ bannerDiv = $('managed-prefs-banner').cloneNode(true);
+ bannerDiv.id = null;
+
+ if (this.isOverlay) {
+ var content = this.pageDiv.querySelector('.content-area');
+ this.pageDiv.insertBefore(bannerDiv, content);
+ } else {
+ bannerDiv.classList.add('main-page-banner');
+ var header = this.pageDiv.querySelector('header');
+ header.appendChild(bannerDiv);
+ }
+ }
+
+ var controlledByPolicy = false;
+ var controlledByExtension = false;
+ var inputElements = this.pageDiv.querySelectorAll('input[controlled-by]');
+ for (var i = 0, len = inputElements.length; i < len; i++) {
Dan Beam 2012/02/29 04:20:32 general question, I guess, why are you caching len
Evan Stade 2012/02/29 22:34:00 this code is copy pasta'd from options/ (i.e. we r
+ if (inputElements[i].controlledBy == 'policy')
+ controlledByPolicy = true;
+ else if (inputElements[i].controlledBy == 'extension')
+ controlledByExtension = true;
+ }
+
+ if (!controlledByPolicy && !controlledByExtension) {
+ this.pageDiv.classList.remove('showing-banner');
+ } else {
+ this.pageDiv.classList.add('showing-banner');
+
+ var text = bannerDiv.querySelector('.managed-prefs-text');
+ if (controlledByPolicy && !controlledByExtension) {
+ text.textContent = templateData.policyManagedPrefsBannerText;
+ } else if (!controlledByPolicy && controlledByExtension) {
+ text.textContent = templateData.extensionManagedPrefsBannerText;
+ } else if (controlledByPolicy && controlledByExtension) {
+ text.textContent =
+ templateData.policyAndExtensionManagedPrefsBannerText;
+ }
+ }
+ },
+
+ /**
* Gets page visibility state.
*/
get visible() {
@@ -923,6 +974,7 @@ cr.define('options', function() {
this.setContainerVisibility_(visible);
OptionsPage.updatePageFreezeStates();
+ OptionsPage.updateManagedBannerVisibility();
// A subpage was shown or hidden.
if (!this.isOverlay && this.nestingLevel > 0)
« no previous file with comments | « chrome/browser/resources/options2/options_page.css ('k') | chrome/browser/resources/options2/pref_ui.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698