diff options
Diffstat (limited to 'chrome/browser/resources/options')
-rw-r--r-- | chrome/browser/resources/options/browser_options.html | 4 | ||||
-rw-r--r-- | chrome/browser/resources/options/browser_options.js | 71 |
2 files changed, 66 insertions, 9 deletions
diff --git a/chrome/browser/resources/options/browser_options.html b/chrome/browser/resources/options/browser_options.html index abeb46e..7a8ad39 100644 --- a/chrome/browser/resources/options/browser_options.html +++ b/chrome/browser/resources/options/browser_options.html @@ -13,13 +13,13 @@ pref="session.restore_on_startup" value="4"><span i18n-content="startupShowPages"></span></label> <div class="suboption"> - <select id="startupPages" size="3"> + <select id="startupPages" size="3" multiple> </select><br> <button id="startupAddButton" i18n-content="startupAddButton"></button> <button id="startupRemoveButton" disabled i18n-content="startupRemoveButton"></button> - <button id="startupUseCurrentButton" disabled + <button id="startupUseCurrentButton" i18n-content="startupUseCurrent"></button> </div> </div> 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); +}; |