diff options
Diffstat (limited to 'chrome/browser/resources')
-rw-r--r-- | chrome/browser/resources/options.html | 6 | ||||
-rw-r--r-- | chrome/browser/resources/options/personal_options.css | 6 | ||||
-rw-r--r-- | chrome/browser/resources/options/personal_options.html | 148 | ||||
-rw-r--r-- | chrome/browser/resources/options/personal_options.js | 49 | ||||
-rw-r--r-- | chrome/browser/resources/options/pref_ui.js | 53 |
5 files changed, 258 insertions, 4 deletions
diff --git a/chrome/browser/resources/options.html b/chrome/browser/resources/options.html index d95b666..26d8534 100644 --- a/chrome/browser/resources/options.html +++ b/chrome/browser/resources/options.html @@ -42,7 +42,7 @@ */ function load() { localStrings = new LocalStrings(); - + if (cr.isChromeOS) { OptionsPage.register(SystemOptions.getInstance()); OptionsPage.register(AccountsOptions.getInstance()); @@ -108,6 +108,7 @@ window.onpopstate = function(e) { <link rel="stylesheet" href="options/chromeos_accounts_options_page.css"> <link rel="stylesheet" href="options/chromeos_language_options.css"> </if> +<link rel="stylesheet" href="options/personal_options.css"> </head> <body i18n-values=".style.fontFamily:fontfamily;.style.fontSize:fontsize"> <div class="header"> @@ -145,9 +146,9 @@ window.onpopstate = function(e) { </if> <include src="options/browser_options.html"> <include src="options/personal_options.html"> + <include src="options/sync_options.html"> <include src="options/advanced_options.html"> <include src="options/content_settings.html"> - <include src="options/sync_options.html"> </div> </div> @@ -155,6 +156,7 @@ window.onpopstate = function(e) { // Decorate the existing elements in the document. cr.ui.decorate('input[pref][type=checkbox]', PrefCheckbox); cr.ui.decorate('input[pref][type=number]', PrefNumber); +cr.ui.decorate('input[pref][type=radio]', PrefRadio); cr.ui.decorate('input[pref][type=range]', PrefRange); cr.ui.decorate('select[pref]', PrefSelect); cr.ui.decorate('input[pref][type=url]', PrefTextField); diff --git a/chrome/browser/resources/options/personal_options.css b/chrome/browser/resources/options/personal_options.css new file mode 100644 index 0000000..414e0ed --- /dev/null +++ b/chrome/browser/resources/options/personal_options.css @@ -0,0 +1,6 @@ +#text-when-synced, #button-when-synced { + display: none; +} +#text-when-not-synced, #button-when-not-synced { + display: none; +} diff --git a/chrome/browser/resources/options/personal_options.html b/chrome/browser/resources/options/personal_options.html index ffdc855..94a6168 100644 --- a/chrome/browser/resources/options/personal_options.html +++ b/chrome/browser/resources/options/personal_options.html @@ -1,3 +1,151 @@ <div class="page hidden" id="personalPage"> <h1 i18n-content="personalPage"></h1> + + <section> + <h3 i18n-content="sync_section"></h3> + <table class="option-control-table"> + <tr id="text-when-not-synced"> + <td> + <div class="section-text" id="sync_not_setup_info" + i18n-content="sync_not_setup_info"/> + </td> + </tr> + <tr id="button-when-not-synced"> + <td> + <button id="start-sync" i18n-content="start_sync"></button> + </td> + </tr> + </div> + <div> + <tr id="text-when-synced"> + <td> + <div class="section-text" id="synced_to_user_with_time" + i18n-content="synced_to_user_with_time"/> + </td> + </tr> + <tr id="button-when-synced"> + <td> + <button id="stop-sync" i18n-content="stop_sync"></button> + <button id="sync-customize" i18n-content="sync_customize"></button> + </td> + </tr> + </div> + </table> + </section> + <section> + <h3 i18n-content="passwords"></h3> + <table class="option-control-table"> + <tr> + <td class="option-name"> + <label> + <input id="passwords_asktosave" + name="passwords_radio" + pref="profile.password_manager_enabled" + type="radio" value="true"> + <span i18n-content="passwords_asktosave"></span> + </label> + </td> + </tr> + <tr> + <td class="option-name"> + <label> + <input id="passwords_neversave" + name="passwords_radio" + pref="profile.password_manager_enabled" + type="radio" value="false"> + <span i18n-content="passwords_neversave"></span> + </label> + </td> + </tr> + <tr><td> + <button id="showpasswords" i18n-content="showpasswords"></button> + </td></tr> + </table> + </section> + <section> + <h3 i18n-content="autofill"></h3> + <table class="option-control-table"> + <tr> + <td class="option-name"> + <label> + <input id="autofill_enable" + name="autofill_radio" + pref="autofill.enabled" + type="radio" value="true"> + <span i18n-content="autofill_enable"></span> + </label> + </td> + </tr> + <tr> + <td class="option-name"> + <label> + <input id="autofill_disable" + name="autofill_radio" + pref="autofill.enabled" + type="radio" value="false"> + <span i18n-content="autofill_disable"></span> + </label> + </td> + </tr> + <tr><td> + <button id="autofill_options" i18n-content="autofill_options"> + </button> + </td></tr> + </table> + </section> + <section> + <h3 i18n-content="browsing_data"></h3> + <table class="option-control-table"> + <tr><td> + <button id="import_data" i18n-content="import_data"></button> + </td></tr> + </table> + </section> + + <if expr="not pp_ifdef('toolkit_views') and (os == 'linux2' or os.find('bsd') != -1)"> + <section> + <h3 i18n-content="appearance"></h3> + <table class="option-control-table"> + <tr><td> + <button id="themes_GTK_button" i18n-content="themes_GTK_button"> + </button> + <button id="themes_set_classic" i18n-content="themes_set_classic"> + </button> + <a id="linux_themes_gallery" i18n-content="themes_gallery"></a> + </td></tr> + <tr> + <td class="option-name"> + <label> + <input name="decorations_radio" + pref="browser.custom_chrome_frame" + type="radio" value="false"> + <span i18n-content="showWindow_decorations_radio"></span> + </label> + </td> + </tr> + <tr> + <td class="option-name"> + <label> + <input name="decorations_radio" + pref="browser.custom_chrome_frame" + type="radio" value="true"> + <span i18n-content="hideWindow_decorations_radio"></span> + </label> + </td> + </tr> + </table> + </section> + </if> + <if expr="pp_ifdef('toolkit_views') or os == 'win32' or os == 'darwin'"> + <section> + <h3 i18n-content="themes"></h3> + <table class="option-control-table"> + <tr><td> + <button id="themes_reset" i18n-content="themes_reset"></button> + <a id="nonlinux_themes_gallery" i18n-content="themes_gallery"></a> + </td></tr> + </table> + </section> + </if> + </div> diff --git a/chrome/browser/resources/options/personal_options.js b/chrome/browser/resources/options/personal_options.js index b7b48c9..b8b2107 100644 --- a/chrome/browser/resources/options/personal_options.js +++ b/chrome/browser/resources/options/personal_options.js @@ -21,6 +21,51 @@ PersonalOptions.prototype = { // Call base class implementation to starts preference initialization. OptionsPage.prototype.initializePage.call(this); - // TODO(csilv): add any needed initialization here or delete this method. - } + + // Listen to pref changes. + Preferences.getInstance().addEventListener('sync.has_setup_completed', + function(event) { + if(event.value) { + $('text-when-synced').style.display = 'block'; + $('button-when-synced').style.display = 'block'; + } + else { + $('text-when-not-synced').style.display = 'block'; + $('button-when-not-synced').style.display = 'block'; + } + }); + + $('sync-customize').onclick = function(event) { + OptionsPage.showPageByName('sync'); + }; + + $('showpasswords').onclick = function(event) { + //TODO(sargrass): Show passwords dialog here. + }; + + $('autofill_options').onclick = function(event) { + //TODO(sargrass): Show autofill dialog here. + }; + + $('import_data').onclick = function(event) { + //TODO(sargrass): Show import_data dialog here. + }; + + if(navigator.platform.match(/linux|BSD/i)) { + $('themes_GTK_button').onclick = function(event) { + //TODO(sargrass): Show themes GTK dialog here. + }; + + $('themes_set_classic').onclick = function(event) { + //TODO(sargrass): Show themes set classic dialog here. + }; + } + + if(navigator.platform.match(/Mac|Win|CrOS/i)) { + $('themes_reset').onclick = function(event) { + //TODO(sargrass): Show themes reset dialog here. + }; + } + + }, }; diff --git a/chrome/browser/resources/options/pref_ui.js b/chrome/browser/resources/options/pref_ui.js index b618cc8..33379ef 100644 --- a/chrome/browser/resources/options/pref_ui.js +++ b/chrome/browser/resources/options/pref_ui.js @@ -41,8 +41,61 @@ PrefCheckbox.prototype = { cr.defineProperty(PrefCheckbox, 'pref', cr.PropertyKind.ATTR); /////////////////////////////////////////////////////////////////////////////// +// PrefRadio class: + +//Define a constructor that uses an input element as its underlying element. +var PrefRadio = cr.ui.define('input'); + +PrefRadio.prototype = { + // Set up the prototype chain + __proto__: HTMLInputElement.prototype, + + /** + * Initialization function for the cr.ui framework. + */ + decorate: function() { + this.type = 'radio'; + var self = this; + + // Listen to pref changes. + Preferences.getInstance().addEventListener(this.pref, + function(event) { + self.checked = String(event.value) == self.value; + }); + + // Listen to user events. + this.addEventListener('change', + function(e) { + if(self.value == 'true' || self.value == 'false') { + Preferences.setBooleanPref(self.pref, + self.value == 'true'); + }else { + Preferences.setIntegerPref(self.pref, + parseInt(self.value, 10)); + } + }); + }, + + /** + * Getter for preference name attribute. + */ + get pref() { + return this.getAttribute('pref'); + }, + + /** + * Setter for preference name attribute. + */ + set pref(name) { + this.setAttribute('pref', name); + } +}; + + +/////////////////////////////////////////////////////////////////////////////// // PrefNumeric class: +// Define a constructor that uses an input element as its underlying element. var PrefNumeric = function() {}; PrefNumeric.prototype = { // Set up the prototype chain |