summaryrefslogtreecommitdiffstats
path: root/chrome/browser/resources/options/browser_options.js
diff options
context:
space:
mode:
authorstuartmorgan@chromium.org <stuartmorgan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-07-27 21:31:31 +0000
committerstuartmorgan@chromium.org <stuartmorgan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-07-27 21:31:31 +0000
commit1f301913a63a92363ad1305cf4983e484d865980 (patch)
treeddf578cd91c1845dbbe252dc3783719dc014e012 /chrome/browser/resources/options/browser_options.js
parent4a0476960b162ea8c2e367c39b217c8d8a1398e5 (diff)
downloadchromium_src-1f301913a63a92363ad1305cf4983e484d865980.zip
chromium_src-1f301913a63a92363ad1305cf4983e484d865980.tar.gz
chromium_src-1f301913a63a92363ad1305cf4983e484d865980.tar.bz2
Implement most of the startup page controls in DOMUI prefs
Hooks up display of startup pages, removal of pages, and setting the startup pages to the currently open tabs. Uses a select for now, but will eventually be replaced with a List so the favicons can be displayed. BUG=48713 TEST=Startup pages can be viewed, removed, and set to current in DOMUI prefs. Review URL: http://codereview.chromium.org/3046025 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53849 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/resources/options/browser_options.js')
-rw-r--r--chrome/browser/resources/options/browser_options.js71
1 files changed, 64 insertions, 7 deletions
diff --git a/chrome/browser/resources/options/browser_options.js b/chrome/browser/resources/options/browser_options.js
index 834c993..53e0656 100644
--- a/chrome/browser/resources/options/browser_options.js
+++ b/chrome/browser/resources/options/browser_options.js
@@ -23,15 +23,19 @@ BrowserOptions.prototype = {
// Call base class implementation to start preference initialization.
OptionsPage.prototype.initializePage.call(this);
- // Wire up buttons.
+ // Wire up controls.
+ var self = this;
+ $('startupPages').onchange = function(event) {
+ self.updateRemoveButtonState_();
+ };
$('startupAddButton').onclick = function(event) {
OptionsPage.showOverlay('addStartupPageOverlay');
};
$('startupRemoveButton').onclick = function(event) {
- // TODO(stuartmorgan): Remove selected element(s).
+ self.removeSelectedStartupPages_();
};
$('startupUseCurrentButton').onclick = function(event) {
- // TODO(stuartmorgan): Add all open tabs (except this one).
+ chrome.send('setStartupPagesToCurrentPages');
};
$('defaultSearchManageEnginesButton').onclick = function(event) {
OptionsPage.showPageByName('searchEngines');
@@ -81,10 +85,10 @@ BrowserOptions.prototype = {
updateSearchEngines_: function(engines, defaultValue) {
this.clearSearchEngines_();
engineSelect = $('defaultSearchEngine');
- engineCount = engines.length
+ engineCount = engines.length;
var defaultIndex = -1;
for (var i = 0; i < engineCount; i++) {
- var engine = engines[i]
+ var engine = engines[i];
var option = new Option(engine['name'], engine['index']);
if (defaultValue == option.value)
defaultIndex = i;
@@ -95,6 +99,55 @@ BrowserOptions.prototype = {
},
/**
+ * Clears the startup page list.
+ * @private
+ */
+ clearStartupPages_: function() {
+ $('startupPages').textContent = '';
+ },
+
+ /**
+ * Updates the startup pages list with the given entries.
+ * @param {Array} pages List of startup pages.
+ */
+ updateStartupPages_: function(pages) {
+ // TODO(stuartmorgan): Replace <select> with a DOMUI List.
+ this.clearStartupPages_();
+ pageList = $('startupPages');
+ pageCount = pages.length;
+ for (var i = 0; i < pageCount; i++) {
+ var page = pages[i];
+ var option = new Option(page['title']);
+ option.title = page['tooltip'];
+ pageList.appendChild(option);
+ }
+
+ this.updateRemoveButtonState_();
+ },
+
+ /**
+ * Sets the enabled state of the startup page Remove button based on
+ * the current selection in the startup pages list.
+ */
+ updateRemoveButtonState_: function() {
+ $('startupRemoveButton').disabled = ($('startupPages').selectedIndex == -1);
+ },
+
+ /**
+ * Removes the selected startup pages.
+ */
+ removeSelectedStartupPages_: function() {
+ var pageSelect = $('startupPages');
+ var optionCount = pageSelect.options.length;
+ var selections = [];
+ for (var i = 0; i < optionCount; i++) {
+ if (pageSelect.options[i].selected)
+ selections.push(String(i));
+ }
+ chrome.send('removeStartupPages', selections);
+ },
+
+ /**
* Set the default search engine based on the popup selection.
*/
setDefaultBrowser: function() {
@@ -110,8 +163,12 @@ BrowserOptions.prototype = {
BrowserOptions.updateDefaultBrowserState = function(statusString, isDefault) {
BrowserOptions.getInstance().updateDefaultBrowserState_(statusString,
isDefault);
-}
+};
BrowserOptions.updateSearchEngines = function(engines, defaultValue) {
BrowserOptions.getInstance().updateSearchEngines_(engines, defaultValue);
-}
+};
+
+BrowserOptions.updateStartupPages = function(pages) {
+ BrowserOptions.getInstance().updateStartupPages_(pages);
+};