OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 cr.define('options', function() { | 5 cr.define('options', function() { |
6 ///////////////////////////////////////////////////////////////////////////// | 6 ///////////////////////////////////////////////////////////////////////////// |
7 // OptionsPage class: | 7 // OptionsPage class: |
8 | 8 |
9 /** | 9 /** |
10 * Base class for options page. | 10 * Base class for options page. |
(...skipping 888 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
899 * @type {OptionsPage} | 899 * @type {OptionsPage} |
900 */ | 900 */ |
901 associatedControls: null, | 901 associatedControls: null, |
902 | 902 |
903 /** | 903 /** |
904 * Initializes page content. | 904 * Initializes page content. |
905 */ | 905 */ |
906 initializePage: function() {}, | 906 initializePage: function() {}, |
907 | 907 |
908 /** | 908 /** |
909 * Updates managed banner visibility state. This function iterates over | |
910 * all input fields of a page and if any of these is marked as managed | |
911 * it triggers the managed banner to be visible. The banner can be enforced | |
912 * being on through the managed flag of this class but it can not be forced | |
913 * being off if managed items exist. | |
914 */ | |
915 updateManagedBannerVisibility: function() { | |
916 var bannerDiv = this.pageDiv.querySelector('.managed-prefs-banner'); | |
917 // Create a banner for the overlay if we don't have one. | |
918 if (!bannerDiv) { | |
919 bannerDiv = $('managed-prefs-banner').cloneNode(true); | |
920 bannerDiv.id = null; | |
921 | |
922 if (this.isOverlay) { | |
923 var content = this.pageDiv.querySelector('.content-area'); | |
924 this.pageDiv.insertBefore(bannerDiv, content); | |
925 } else { | |
926 bannerDiv.classList.add('main-page-banner'); | |
927 var header = this.pageDiv.querySelector('header'); | |
928 header.appendChild(bannerDiv); | |
929 } | |
930 } | |
931 | |
932 var controlledByPolicy = false; | |
933 var controlledByExtension = false; | |
934 var inputElements = this.pageDiv.querySelectorAll('input[controlled-by]'); | |
935 for (var i = 0, len = inputElements.length; i < len; i++) { | |
936 if (inputElements[i].controlledBy == 'policy') | |
937 controlledByPolicy = true; | |
938 else if (inputElements[i].controlledBy == 'extension') | |
939 controlledByExtension = true; | |
940 } | |
941 | |
942 if (!controlledByPolicy && !controlledByExtension) { | |
943 bannerDiv.hidden = true; | |
944 this.pageDiv.classList.remove('showing-banner'); | |
Evan Stade
2012/02/29 02:36:46
this became necessary after all because I moved th
| |
945 } else { | |
946 bannerDiv.hidden = false; | |
947 this.pageDiv.classList.add('showing-banner'); | |
948 | |
949 var text = bannerDiv.querySelector('.managed-prefs-text'); | |
950 if (controlledByPolicy && !controlledByExtension) { | |
951 text.textContent = templateData.policyManagedPrefsBannerText; | |
952 } else if (!controlledByPolicy && controlledByExtension) { | |
953 text.textContent = templateData.extensionManagedPrefsBannerText; | |
954 } else if (controlledByPolicy && controlledByExtension) { | |
955 text.textContent = | |
956 templateData.policyAndExtensionManagedPrefsBannerText; | |
957 } | |
958 } | |
959 }, | |
960 | |
961 /** | |
909 * Gets page visibility state. | 962 * Gets page visibility state. |
910 */ | 963 */ |
911 get visible() { | 964 get visible() { |
912 return !this.pageDiv.hidden; | 965 return !this.pageDiv.hidden; |
913 }, | 966 }, |
914 | 967 |
915 /** | 968 /** |
916 * Sets page visibility. | 969 * Sets page visibility. |
917 */ | 970 */ |
918 set visible(visible) { | 971 set visible(visible) { |
919 if ((this.visible && visible) || (!this.visible && !visible)) | 972 if ((this.visible && visible) || (!this.visible && !visible)) |
920 return; | 973 return; |
921 | 974 |
922 this.pageDiv.hidden = !visible; | 975 this.pageDiv.hidden = !visible; |
923 this.setContainerVisibility_(visible); | 976 this.setContainerVisibility_(visible); |
924 | 977 |
925 OptionsPage.updatePageFreezeStates(); | 978 OptionsPage.updatePageFreezeStates(); |
979 OptionsPage.updateManagedBannerVisibility(); | |
926 | 980 |
927 // A subpage was shown or hidden. | 981 // A subpage was shown or hidden. |
928 if (!this.isOverlay && this.nestingLevel > 0) | 982 if (!this.isOverlay && this.nestingLevel > 0) |
929 OptionsPage.updateDisplayForShowOrHideSubpage_(); | 983 OptionsPage.updateDisplayForShowOrHideSubpage_(); |
930 else if (this.isOverlay && !visible) | 984 else if (this.isOverlay && !visible) |
931 OptionsPage.updateScrollPosition_(); | 985 OptionsPage.updateScrollPosition_(); |
932 | 986 |
933 cr.dispatchPropertyChange(this, 'visible', visible, !visible); | 987 cr.dispatchPropertyChange(this, 'visible', visible, !visible); |
934 }, | 988 }, |
935 | 989 |
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1064 canShowPage: function() { | 1118 canShowPage: function() { |
1065 return true; | 1119 return true; |
1066 }, | 1120 }, |
1067 }; | 1121 }; |
1068 | 1122 |
1069 // Export | 1123 // Export |
1070 return { | 1124 return { |
1071 OptionsPage: OptionsPage | 1125 OptionsPage: OptionsPage |
1072 }; | 1126 }; |
1073 }); | 1127 }); |
OLD | NEW |