Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 <html i18n-values="dir:textdirection;"> | 1 <html i18n-values="dir:textdirection;"> |
| 2 <head> | 2 <head> |
| 3 <title></title> | 3 <title></title> |
| 4 <style type="text/css"> | 4 <style type="text/css"> |
| 5 body { | 5 body { |
| 6 line-height: 1.33em; | 6 line-height: 1.33em; |
| 7 background: #FFFFFF; | 7 background: #FFFFFF; |
| 8 font-size: 11pt; | 8 font-size: 11pt; |
| 9 } | 9 } |
| 10 html[os='mac'] body { | 10 html[os='mac'] body { |
| 11 line-height: 1.5em; | 11 line-height: 1.5em; |
| 12 background: #FFFFFF; | 12 background: #FFFFFF; |
| 13 } | 13 } |
| 14 | |
| 15 h4 { | |
| 16 margin: 10px 0; | |
| 17 } | |
| 18 | |
| 19 hr { | |
| 20 background-color: #ddd; | |
| 21 border: 0; | |
| 22 height: 1px; | |
| 23 margin: 5px 0; | |
| 24 text-align: left; | |
| 25 width: 100%; | |
| 26 } | |
| 27 | |
| 14 form { | 28 form { |
| 15 -webkit-user-select: none; | 29 -webkit-user-select: none; |
| 16 } | 30 } |
| 31 | |
| 32 .content-area { | |
| 33 padding: 10px 15px; | |
| 34 } | |
| 35 | |
| 36 .action-area { | |
| 37 -webkit-box-align: center; | |
| 38 -webkit-box-orient: horizontal; | |
| 39 -webkit-box-pack: end; | |
| 40 border-top: 1px solid rgba(188, 193, 208, .5); | |
| 41 display: -webkit-box; | |
| 42 padding: 12px; | |
| 43 } | |
| 44 | |
| 17 .sync-header { | 45 .sync-header { |
| 18 font-size: 1.2em; | 46 font-size: 1.2em; |
| 19 font-weight: bold; | 47 font-weight: bold; |
| 20 margin-bottom: 10px; | 48 margin-bottom: 10px; |
| 21 } | 49 } |
| 22 .sync-select-customization { | 50 .sync-select-customization { |
| 23 margin-top: 10px; | 51 margin-top: 10px; |
| 24 } | 52 } |
| 53 | |
| 54 #customize-link-container { | |
| 55 -webkit-box-flex: 1; | |
| 56 } | |
| 57 | |
| 58 #sync-passphrase-container { | |
| 59 margin: 10px 0; | |
| 60 } | |
| 61 | |
| 62 #sync-custom-passphrase { | |
| 63 margin: 0 25px; | |
| 64 } | |
| 65 | |
| 66 #sync-passphrase-message { | |
| 67 color: gray; | |
| 68 } | |
| 69 | |
| 70 .sync-custom-passphrase-input { | |
| 71 margin: 10px 0; | |
| 72 } | |
| 73 | |
| 74 #sync-select-container { | |
| 75 margin-bottom: 10px; | |
| 76 } | |
| 77 | |
| 78 #sync-instructions-container { | |
| 79 margin-bottom: 30px; | |
| 80 } | |
| 81 | |
| 25 #chooseDataTypesRadio { | 82 #chooseDataTypesRadio { |
| 26 vertical-align: top; | 83 vertical-align: top; |
| 27 } | 84 } |
| 28 #chooseDataTypes > div { | 85 #chooseDataTypes > div { |
| 29 display: inline-block; | 86 display: inline-block; |
| 30 } | 87 } |
| 31 #chooseDataTypesBody { | 88 #chooseDataTypesBody { |
| 32 width: 90%; | 89 margin: 10px 0; |
| 33 -webkit-margin-start: 3ex; | |
| 34 } | 90 } |
| 35 #chooseDataTypesBody > div { | 91 #chooseDataTypesBody > div { |
| 36 margin-top: 0px; | 92 -webkit-column-count: 3; |
| 37 -webkit-column-count: 2; | |
| 38 -webkit-column-gap: 10px; | |
| 39 column-count: 2; | |
| 40 column-gap: 10px; | |
| 41 } | 93 } |
| 42 | 94 |
| 43 .sync-config-tab-contents-inactive { | 95 .sync-config-tab-contents-inactive { |
| 44 display: none; | 96 display: none; |
| 45 } | 97 } |
| 46 .sync-config-tab-contents-active { | 98 .sync-config-tab-contents-active { |
| 47 display: block; | 99 display: block; |
| 48 margin: 10px 15px; | 100 margin: 10px 15px; |
| 49 } | 101 } |
| 50 .sync-config-tabstrip { | 102 .sync-config-tabstrip { |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 146 .sync-section { | 198 .sync-section { |
| 147 background: #EEE; | 199 background: #EEE; |
| 148 margin: 5px 0px 5px 19px; | 200 margin: 5px 0px 5px 19px; |
| 149 padding: 6px; | 201 padding: 6px; |
| 150 } | 202 } |
| 151 | 203 |
| 152 #explicit-message { | 204 #explicit-message { |
| 153 margin-bottom: 5px; | 205 margin-bottom: 5px; |
| 154 } | 206 } |
| 155 | 207 |
| 156 #learn-more-link { | |
| 157 float: right; | |
| 158 } | |
| 159 | |
| 160 html[dir='rtl'] #learn-more-link { | |
| 161 float: left; | |
| 162 } | |
| 163 | |
| 164 #change-passphrase { | 208 #change-passphrase { |
| 165 margin: 10px 0; | 209 margin: 10px 0; |
| 166 background: #EEE; | 210 background: #EEE; |
| 167 padding: 8px; | 211 padding: 8px; |
| 168 } | 212 } |
| 169 | 213 |
| 170 #clear-data-button { | 214 #clear-data-button { |
| 171 margin-top: 10px; | 215 margin-top: 10px; |
| 172 } | 216 } |
| 173 | 217 |
| 174 html[dir='rtl'] .sync-footer { | 218 html[dir='rtl'] .sync-footer { |
| 175 text-align: left; | 219 text-align: left; |
| 176 left: 0px; | 220 left: 0px; |
| 177 bottom: 0px; | 221 bottom: 0px; |
| 178 margin-left: 20px; | 222 margin-left: 20px; |
| 179 } | 223 } |
| 180 | 224 |
| 181 input[type='button'], | 225 input[type='button'], |
| 182 input[type='submit'] { | 226 input[type='submit'] { |
| 183 min-width: 87px; | 227 min-width: 87px; |
| 184 min-height: 26px; | 228 min-height: 26px; |
| 185 } | 229 } |
| 186 html[os='mac'] input[type='button'], | 230 html[os='mac'] input[type='button'], |
| 187 html[os='mac'] input[type='submit'] { | 231 html[os='mac'] input[type='submit'] { |
| 188 font-size: 12pt; | 232 font-size: 12pt; |
| 189 } | 233 } |
| 190 | 234 |
| 191 </style> | 235 </style> |
| 192 <script src="chrome://resources/js/cr.js"></script> | 236 <script src="chrome://resources/js/cr.js"></script> |
|
csilv
2011/04/16 01:03:55
optional: consider including util.js for the $(id)
James Hawkins
2011/04/17 19:05:05
Added the TODO.
| |
| 193 <script> | 237 <script> |
| 194 var currentTab; | 238 var currentTab; |
| 195 | 239 |
| 196 // Called once, when this html/js is loaded. | 240 // Called once, when this html/js is loaded. |
| 197 function initializeConfigureDialog(args) { | 241 function initializeConfigureDialog(args) { |
| 198 // Allow platform specific rules | 242 // Allow platform specific rules |
| 199 if (cr.isMac) { | 243 if (cr.isMac) { |
| 200 document.documentElement.setAttribute('os', 'mac'); | 244 document.documentElement.setAttribute('os', 'mac'); |
| 201 } else if (!cr.isWindows) { | 245 } else if (!cr.isWindows) { |
| 202 document.documentElement.setAttribute('os', 'linux'); | 246 document.documentElement.setAttribute('os', 'linux'); |
| 203 } | 247 } |
| 204 | 248 |
| 249 var datatypeSelect = document.getElementById('sync-select-datatypes'); | |
| 250 datatypeSelect.onchange = function() { | |
| 251 var syncAll = this.selectedIndex == 0; | |
| 252 setCheckboxesToKeepEverythingSynced(syncAll); | |
| 253 | |
| 254 document.getElementById('chooseDataTypesBody').hidden = syncAll; | |
| 255 }; | |
| 256 | |
| 205 if (args) { | 257 if (args) { |
| 206 currentTab = args['initialTab']; | |
| 207 switchToTab(currentTab); | |
| 208 setCheckboxesAndErrors(args); | 258 setCheckboxesAndErrors(args); |
| 259 | |
| 260 var keepEverythingSynced = args['keepEverythingSynced']; | |
| 261 var usePassphrase = args['usePassphrase']; | |
| 262 if ((keepEverythingSynced != undefined && !keepEverythingSynced) || | |
|
csilv
2011/04/16 01:03:55
optional: this could be simplified to:
if (keepEve
James Hawkins
2011/04/17 19:05:05
Done.
| |
| 263 (usePassphrase != undefined && usePassphrase)) { | |
| 264 showCustomizePage(); | |
| 265 } | |
| 209 } | 266 } |
| 210 } | 267 } |
| 211 | 268 |
| 269 function showCustomizePage() { | |
| 270 document.getElementById('confirm-sync-preferences').hidden = true; | |
| 271 document.getElementById('customize-sync-preferences').hidden = false; | |
| 272 } | |
| 273 | |
| 212 function setCheckboxesAndErrors(args) { | 274 function setCheckboxesAndErrors(args) { |
| 213 setChooseDataTypesCheckboxes(args); | 275 setChooseDataTypesCheckboxes(args); |
| 214 setEncryptionCheckboxes(args); | 276 setEncryptionCheckboxes(args); |
| 215 setErrorState(args); | 277 setErrorState(args); |
| 216 } | 278 } |
| 217 | 279 |
| 218 function checkAllDataTypeCheckboxes() { | 280 function checkAllDataTypeCheckboxes() { |
| 219 var checkboxes = document.getElementsByName("dataTypeCheckbox"); | 281 var checkboxes = document.getElementsByName("dataTypeCheckbox"); |
| 220 for (var i = 0; i < checkboxes.length; i++) { | 282 for (var i = 0; i < checkboxes.length; i++) { |
| 221 // Only check the visible ones (since there's no way to uncheck | 283 // Only check the visible ones (since there's no way to uncheck |
| (...skipping 11 matching lines...) Expand all Loading... | |
| 233 } | 295 } |
| 234 | 296 |
| 235 // Can be called multiple times. | 297 // Can be called multiple times. |
| 236 function setChooseDataTypesCheckboxes(args) { | 298 function setChooseDataTypesCheckboxes(args) { |
| 237 // If this frame is on top, the focus should be on it, so pressing enter | 299 // If this frame is on top, the focus should be on it, so pressing enter |
| 238 // submits this form. | 300 // submits this form. |
| 239 if (args.iframeToShow == 'configure') { | 301 if (args.iframeToShow == 'configure') { |
| 240 document.getElementById("okButton").focus(); | 302 document.getElementById("okButton").focus(); |
| 241 } | 303 } |
| 242 | 304 |
| 243 document.getElementById("keepEverythingSyncedRadio").checked = | 305 var datatypeSelect = document.getElementById('sync-select-datatypes'); |
| 244 args.keepEverythingSynced; | 306 datatypeSelect.selectedIndex = args.keepEverythingSynced ? 0 : 1; |
| 245 document.getElementById("chooseDataTypesRadio").checked = | 307 chooseDataTypesBody.hidden = args.keepEverythingSynced; |
| 246 !args.keepEverythingSynced; | |
| 247 | 308 |
| 248 document.getElementById("bookmarksCheckbox").checked = args.syncBookmarks; | 309 document.getElementById("bookmarksCheckbox").checked = args.syncBookmarks; |
| 249 document.getElementById("preferencesCheckbox").checked = | 310 document.getElementById("preferencesCheckbox").checked = |
| 250 args.syncPreferences; | 311 args.syncPreferences; |
| 251 document.getElementById("themesCheckbox").checked = args.syncThemes; | 312 document.getElementById("themesCheckbox").checked = args.syncThemes; |
| 252 | 313 |
| 253 if (args.passwordsRegistered) { | 314 if (args.passwordsRegistered) { |
| 254 document.getElementById("passwordsCheckbox").checked = args.syncPasswords; | 315 document.getElementById("passwordsCheckbox").checked = args.syncPasswords; |
| 255 document.getElementById("passwordsItem").className = "sync-item-show"; | 316 document.getElementById("passwordsItem").className = "sync-item-show"; |
| 256 } else { | 317 } else { |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 292 } | 353 } |
| 293 } | 354 } |
| 294 | 355 |
| 295 function setEncryptionCheckboxes(args) { | 356 function setEncryptionCheckboxes(args) { |
| 296 if (args["usePassphrase"]) { | 357 if (args["usePassphrase"]) { |
| 297 document.getElementById("explicit-option").checked = true; | 358 document.getElementById("explicit-option").checked = true; |
| 298 | 359 |
| 299 // The passphrase, once set, cannot be unset, but we show a reset link. | 360 // The passphrase, once set, cannot be unset, but we show a reset link. |
| 300 document.getElementById("explicit-option").disabled = true; | 361 document.getElementById("explicit-option").disabled = true; |
| 301 document.getElementById("google-option").disabled = true; | 362 document.getElementById("google-option").disabled = true; |
| 302 document.getElementById("change-passphrase").style.display = "block"; | 363 document.getElementById("sync-custom-passphrase").style.display = "none"; |
|
csilv
2011/04/16 01:03:55
use '.hidden = true' instead?
James Hawkins
2011/04/17 19:05:05
Done.
| |
| 303 } else { | 364 } else { |
| 304 document.getElementById("google-option").checked = true; | 365 document.getElementById("google-option").checked = true; |
| 305 document.getElementById("change-passphrase").style.display = "none"; | |
| 306 } | 366 } |
| 307 switchToMode(""); | 367 switchToMode(""); |
| 308 } | 368 } |
| 309 | 369 |
| 310 function setErrorState(args) { | 370 function setErrorState(args) { |
| 311 if (!args.was_aborted) | 371 if (!args.was_aborted) |
| 312 return; | 372 return; |
| 313 document.getElementById("aborted_text").className = "sync-error-show"; | 373 document.getElementById("aborted_text").className = "sync-error-show"; |
| 314 document.getElementById("okButton").disabled = true; | 374 document.getElementById("okButton").disabled = true; |
| 315 document.getElementById("keepEverythingSyncedRadio").disabled = true; | 375 document.getElementById("keepEverythingSyncedRadio").disabled = true; |
| 316 document.getElementById("chooseDataTypesRadio").disabled = true; | 376 document.getElementById("chooseDataTypesRadio").disabled = true; |
| 317 } | 377 } |
| 318 | 378 |
| 319 function setDataTypeCheckboxesEnabled(enabled) { | 379 function setDataTypeCheckboxesEnabled(enabled) { |
| 320 var checkboxes = document.getElementsByName("dataTypeCheckbox"); | 380 var checkboxes = document.getElementsByName("dataTypeCheckbox"); |
| 321 var labels = document.getElementsByName("dataTypeLabel"); | 381 var labels = document.getElementsByName("dataTypeLabel"); |
| 322 for (var i = 0; i < checkboxes.length; i++) { | 382 for (var i = 0; i < checkboxes.length; i++) { |
| 323 checkboxes[i].disabled = !enabled; | 383 checkboxes[i].disabled = !enabled; |
| 324 if (checkboxes[i].disabled) { | 384 if (checkboxes[i].disabled) { |
| 325 labels[i].className = "sync-label-inactive"; | 385 labels[i].className = "sync-label-inactive"; |
| 326 } else { | 386 } else { |
| 327 labels[i].className = "sync-label-active"; | 387 labels[i].className = "sync-label-active"; |
| 328 } | 388 } |
| 329 } | 389 } |
| 330 } | 390 } |
| 331 | 391 |
| 332 | |
| 333 | |
| 334 // Returns true if at least one data type is enabled and no data types are | 392 // Returns true if at least one data type is enabled and no data types are |
| 335 // checked. (If all data type checkboxes are disabled, it's because "keep | 393 // checked. (If all data type checkboxes are disabled, it's because "keep |
| 336 // everything synced" is checked.) | 394 // everything synced" is checked.) |
| 337 function noDataTypesChecked() { | 395 function noDataTypesChecked() { |
| 338 var checkboxes = document.getElementsByName("dataTypeCheckbox"); | 396 var checkboxes = document.getElementsByName("dataTypeCheckbox"); |
| 339 var atLeastOneChecked = false; | 397 var atLeastOneChecked = false; |
| 340 var atLeastOneEnabled = false; | 398 var atLeastOneEnabled = false; |
| 341 for (var i = 0; i < checkboxes.length; i++) { | 399 for (var i = 0; i < checkboxes.length; i++) { |
| 342 if (!checkboxes[i].disabled && | 400 if (!checkboxes[i].disabled && |
| 343 checkboxes[i].parentElement.className == "sync-item-show") { | 401 checkboxes[i].parentElement.className == "sync-item-show") { |
| 344 atLeastOneEnabled = true; | 402 atLeastOneEnabled = true; |
| 345 if (checkboxes[i].checked) { | 403 if (checkboxes[i].checked) { |
| 346 atLeastOneChecked = true; | 404 atLeastOneChecked = true; |
| 347 } | 405 } |
| 348 } | 406 } |
| 349 } | 407 } |
| 350 return atLeastOneEnabled && !atLeastOneChecked; | 408 return atLeastOneEnabled && !atLeastOneChecked; |
| 351 } | 409 } |
| 352 | 410 |
| 353 function sendConfiguration() { | 411 function sendConfiguration() { |
| 354 // Trying to submit, so hide previous errors. | 412 // Trying to submit, so hide previous errors. |
| 355 document.getElementById("aborted_text").className = "sync-error-hide"; | 413 //document.getElementById("aborted_text").className = "sync-error-hide"; |
|
csilv
2011/04/16 01:03:55
Consider removing unused code.
James Hawkins
2011/04/17 19:05:05
Fixed it up so we're using it again.
| |
| 356 document.getElementById("error_text").className = "sync-error-hide"; | 414 //document.getElementById("error_text").className = "sync-error-hide"; |
| 357 | 415 |
| 358 if (noDataTypesChecked()) { | 416 if (noDataTypesChecked()) { |
| 359 document.getElementById("error_text").className = "sync-error-show"; | 417 //document.getElementById("error_text").className = "sync-error-show"; |
| 360 return; | 418 return; |
| 361 } | 419 } |
| 362 | 420 |
| 363 var f = document.getElementById("chooseDataTypesForm"); | 421 var f = document.getElementById("chooseDataTypesForm"); |
| 364 if (!checkPassphraseMatch()) { | 422 if (!checkPassphraseMatch()) { |
| 365 return false; | 423 return false; |
| 366 } | 424 } |
| 367 | 425 |
| 368 var syncAll = f.keepEverythingSyncedRadio.checked; | 426 var syncAll = |
| 427 document.getElementById('sync-select-datatypes').selectedIndex == 0; | |
| 428 | |
| 369 // These values need to be kept in sync with where they are read in | 429 // These values need to be kept in sync with where they are read in |
| 370 // SyncSetupFlow::GetDataTypeChoiceData(). | 430 // SyncSetupFlow::GetDataTypeChoiceData(). |
| 371 var result = JSON.stringify({ | 431 var result = JSON.stringify({ |
| 372 "keepEverythingSynced": syncAll, | 432 "keepEverythingSynced": syncAll, |
| 373 "syncBookmarks": syncAll || f.bookmarksCheckbox.checked, | 433 "syncBookmarks": syncAll || f.bookmarksCheckbox.checked, |
| 374 "syncPreferences": syncAll || f.preferencesCheckbox.checked, | 434 "syncPreferences": syncAll || f.preferencesCheckbox.checked, |
| 375 "syncThemes": syncAll || f.themesCheckbox.checked, | 435 "syncThemes": syncAll || f.themesCheckbox.checked, |
| 376 "syncPasswords": syncAll || f.passwordsCheckbox.checked, | 436 "syncPasswords": syncAll || f.passwordsCheckbox.checked, |
| 377 "syncAutofill": syncAll || f.autofillCheckbox.checked, | 437 "syncAutofill": syncAll || f.autofillCheckbox.checked, |
| 378 "syncExtensions": syncAll || f.extensionsCheckbox.checked, | 438 "syncExtensions": syncAll || f.extensionsCheckbox.checked, |
| 379 "syncTypedUrls": syncAll || f.typedUrlsCheckbox.checked, | 439 "syncTypedUrls": syncAll || f.typedUrlsCheckbox.checked, |
| 380 "syncApps": syncAll || f.appsCheckbox.checked, | 440 "syncApps": syncAll || f.appsCheckbox.checked, |
| 381 "syncSessions": syncAll || f.sessionsCheckbox.checked, | 441 "syncSessions": syncAll || f.sessionsCheckbox.checked, |
| 382 "usePassphrase": (getRadioCheckedValue() == 'explicit'), | 442 "usePassphrase": (getRadioCheckedValue() == 'explicit'), |
| 383 "passphrase": f.passphrase.value | 443 "passphrase": "" |
| 384 }); | 444 }); |
| 385 chrome.send("Configure", [result]); | 445 chrome.send("Configure", [result]); |
| 386 } | 446 } |
| 387 | 447 |
| 388 function switchToTab(newTab) { | |
| 389 if (currentTab) { | |
| 390 document.getElementById(currentTab + "-tab").className = | |
| 391 "sync-config-tab-inactive"; | |
| 392 document.getElementById(currentTab + "-tab-contents").className = | |
| 393 "sync-config-tab-contents-inactive"; | |
| 394 } | |
| 395 | |
| 396 // Default to the 'Data Types' tab. | |
| 397 if (!newTab) | |
| 398 newTab = "data-type"; | |
| 399 | |
| 400 document.getElementById(newTab + "-tab").className = | |
| 401 "sync-config-tab-active"; | |
| 402 document.getElementById(newTab + "-tab-contents").className = | |
| 403 "sync-config-tab-contents-active"; | |
| 404 | |
| 405 currentTab = newTab; | |
| 406 } | |
| 407 | |
| 408 function switchToMode(mode) { | 448 function switchToMode(mode) { |
| 409 document.getElementById("section-explicit").style.display = "none"; | 449 if (mode == "google") |
| 410 document.getElementById("section-google").style.display = "none"; | 450 document.getElementById("sync-custom-passphrase").hidden = true; |
| 411 | 451 else if (mode =="explicit") |
|
csilv
2011/04/16 01:03:55
If these are the only two modes, then consider sim
James Hawkins
2011/04/17 19:05:05
Blah I hate this code. I'm going to leave it as is
| |
| 412 if (mode == "google") { | 452 document.getElementById("sync-custom-passphrase").hidden = false; |
| 413 document.getElementById("section-google").style.display = "block"; | |
| 414 } else if (mode =="explicit") { | |
| 415 document.getElementById("section-explicit").style.display = "block"; | |
| 416 } | |
| 417 } | 453 } |
| 418 | 454 |
| 419 function getRadioCheckedValue() { | 455 function getRadioCheckedValue() { |
| 420 var f = document.getElementById("chooseDataTypesForm"); | 456 var f = document.getElementById("chooseDataTypesForm"); |
| 421 for (var i = 0; i < f.option.length; ++i) { | 457 for (var i = 0; i < f.option.length; ++i) { |
| 422 if (f.option[i].checked) { | 458 if (f.option[i].checked) { |
| 423 return f.option[i].value; | 459 return f.option[i].value; |
| 424 } | 460 } |
| 425 } | 461 } |
| 426 return undefined; | 462 return undefined; |
| (...skipping 10 matching lines...) Expand all Loading... | |
| 437 mismatchError.style.display = "none"; | 473 mismatchError.style.display = "none"; |
| 438 | 474 |
| 439 var f = document.getElementById("chooseDataTypesForm"); | 475 var f = document.getElementById("chooseDataTypesForm"); |
| 440 if (getRadioCheckedValue() != "explicit" || f.option[0].disabled) { | 476 if (getRadioCheckedValue() != "explicit" || f.option[0].disabled) { |
| 441 return true; | 477 return true; |
| 442 } | 478 } |
| 443 if (f.passphrase.value.length == 0) { | 479 if (f.passphrase.value.length == 0) { |
| 444 emptyError.style.display = "block"; | 480 emptyError.style.display = "block"; |
| 445 return false; | 481 return false; |
| 446 } | 482 } |
| 447 if (f.confirmpassphrase.value != f.passphrase.value) { | 483 |
| 484 var confirmPassphrase = document.getElementById("confirm-passphrase"); | |
| 485 var passphrase = document.getElementById("passphrase"); | |
| 486 if (confirmPassphrase.value != passphrase.value) { | |
| 448 mismatchError.style.display = "block"; | 487 mismatchError.style.display = "block"; |
| 449 return false; | 488 return false; |
| 450 } | 489 } |
| 451 return true; | 490 return true; |
| 452 } | 491 } |
| 453 | 492 |
| 454 function goToDashboard() { | 493 function goToDashboard() { |
| 455 chrome.send("GoToDashboard", [""]); | 494 chrome.send("GoToDashboard", [""]); |
| 456 chrome.send("DialogClose", [""]); | 495 chrome.send("DialogClose", [""]); |
| 457 } | 496 } |
| 458 | 497 |
| 459 </script> | 498 </script> |
| 460 </head> | 499 </head> |
| 461 <body i18n-values=".style.fontFamily:fontfamily" | 500 <body i18n-values=".style.fontFamily:fontfamily" |
| 462 onload="initializeConfigureDialog(JSON.parse(chrome.dialogArguments));"> | 501 onload="initializeConfigureDialog(JSON.parse(chrome.dialogArguments));"> |
| 463 <form id="chooseDataTypesForm" onSubmit="sendConfiguration(); return false;"> | 502 <div id="confirm-sync-preferences"> |
| 464 | 503 <div class="sync-header" i18n-content="confirmSyncPreferences"></div> |
| 465 <div class="sync-config-tabstrip"> | 504 <div id="sync-instructions-container" class="content-area"> |
| 466 <div id="data-type-tab" class="sync-config-tab-inactive"> | 505 <span i18n-content="choosedatatypesinstructions"></span> |
| 467 <a href="#" onclick="switchToTab('data-type'); return false;" | 506 <a i18n-values="href:encryptionhelpurl" target="_blank" |
| 468 i18n-content="dataTypes"></a> | 507 i18n-content="learnmore"></a> |
| 469 </div> | 508 </div> |
| 470 <div id="encryption-tab" class="sync-config-tab-inactive"> | 509 <div> |
| 471 <a href="#" onclick="switchToTab('encryption'); return false;" | 510 <div class="action-area"> |
| 472 i18n-content="encryption"></a> | 511 <div id="customize-link-container"> |
| 512 <a id="customize-link" href="#" i18n-content="customizelinklabel" | |
| 513 onclick="showCustomizePage();"></a> | |
| 514 </div> | |
| 515 <input id="okButton" type="button" i18n-values="value:syncEverything" | |
| 516 onclick="sendConfiguration();"> | |
| 517 <input id="cancelButton" type="button" i18n-values="value:cancel" | |
| 518 onclick="chrome.send('DialogClose', [''])"> | |
| 473 </div> | 519 </div> |
| 474 </div> | 520 </div> |
| 475 <div id="data-type-tab-contents" class="sync-config-tab-contents-inactive"> | 521 </div> |
| 476 | 522 <div id="customize-sync-preferences" hidden> |
| 477 <div class="sync-header" | 523 <form id="chooseDataTypesForm" onSubmit="sendConfiguration(); return false;"> |
| 478 i18n-content="choosedatatypesheader"></div> | 524 <div class="sync-header">Customize Sync Preferences</div> |
| 479 <div class="sync-choose_data_types_instructions" | 525 <hr> |
| 480 i18n-content="choosedatatypesinstructions"></div> | 526 <div id="sync-configure-content" class="content-area"> |
| 481 <div class="sync-select-customization"> | 527 <div id="sync-select-container"> |
| 482 <div class="sync-choice_radio"> | 528 <select id="sync-select-datatypes"> |
| 483 <input id="keepEverythingSyncedRadio" type="radio" | 529 <option i18n-content="keepeverythingsynced" selected></option> |
| 484 name="syncChooseDataTypes" | 530 <option i18n-content="choosedatatypes"></option> |
| 485 onclick="setCheckboxesToKeepEverythingSynced(true);"> | 531 </select> |
| 486 <label for="keepEverythingSyncedRadio" | 532 <div id="chooseDataTypesBody" hidden> |
| 487 i18n-content="keepeverythingsynced"> | |
| 488 </label> | |
| 489 </div> | |
| 490 <div id="chooseDataTypes" class="sync-choice_radio"> | |
| 491 <input id="chooseDataTypesRadio" type="radio" name="syncChooseDataTypes" | |
| 492 onclick="setCheckboxesToKeepEverythingSynced(false)"> | |
| 493 <label for="chooseDataTypesRadio" i18n-content="choosedatatypes" ></labe l> | |
| 494 <div id="chooseDataTypesBody"> | |
| 495 <div> | 533 <div> |
| 496 <!-- Apps --> | 534 <!-- Apps --> |
| 497 <div class="sync-item-show" id="appsItem"> | 535 <div class="sync-item-show" id="appsItem"> |
| 498 <input id="appsCheckbox" name="dataTypeCheckbox" type="checkbox"> | 536 <input id="appsCheckbox" name="dataTypeCheckbox" type="checkbox"> |
| 499 <label id="appsCheckboxLabel" name="dataTypeLabel" | 537 <label id="appsCheckboxLabel" name="dataTypeLabel" |
| 500 for="appsCheckbox" i18n-content="apps" | 538 for="appsCheckbox" i18n-content="apps" |
| 501 i18n-values="title:apps"></label> | 539 i18n-values="title:apps"></label> |
| 502 </div> | 540 </div> |
| 503 <!-- Autofill --> | 541 <!-- Autofill --> |
| 504 <div class="sync-item-show" id="autofillItem"> | 542 <div class="sync-item-show" id="autofillItem"> |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 551 <!-- Sessions --> | 589 <!-- Sessions --> |
| 552 <div class="sync-item-show" id="sessionsItem"> | 590 <div class="sync-item-show" id="sessionsItem"> |
| 553 <input id="sessionsCheckbox" name="dataTypeCheckbox" type="checkbo x"> | 591 <input id="sessionsCheckbox" name="dataTypeCheckbox" type="checkbo x"> |
| 554 <label id="sessionsCheckboxLabel" name="dataTypeLabel" | 592 <label id="sessionsCheckboxLabel" name="dataTypeLabel" |
| 555 for="sessionsCheckbox" i18n-content="foreignsessions" | 593 for="sessionsCheckbox" i18n-content="foreignsessions" |
| 556 il8n-values="title:sessions"></label> | 594 il8n-values="title:sessions"></label> |
| 557 </div> | 595 </div> |
| 558 </div> | 596 </div> |
| 559 </div> | 597 </div> |
| 560 </div> | 598 </div> |
| 561 <div class="sync-errors"> | 599 <hr> |
| 562 <span id="error_text" i18n-content="synczerodatatypeserror" | 600 <h4 i18n-content="passphraseSectionTitle"></h4> |
| 563 class="sync-error-hide"></span> | 601 <div id="sync-passphrase-container"> |
| 564 <span id="aborted_text" i18n-content="abortederror" | 602 <div> |
| 565 class="sync-error-hide"></span> | 603 <input id="google-option" name="option" type="radio" value="google" |
| 604 onchange="onRadioChange();"> | |
| 605 <label for="google-option" i18n-content="googleOption"></label> | |
| 606 </div> | |
| 607 <div> | |
| 608 <input id="explicit-option" name="option" type="radio" value="explicit " | |
| 609 onchange="onRadioChange();"> | |
| 610 <label for="explicit-option" i18n-content="explicitOption"></label> | |
| 611 <a i18n-values="href:encryptionhelpurl" target="_blank" | |
| 612 i18n-content="learnmore"></a> | |
| 613 </div> | |
| 614 <div id="sync-custom-passphrase" hidden> | |
| 615 <div id="sync-passphrase-message"> | |
| 616 <span i18n-content="sectionExplicitMessagePrefix"></span> | |
| 617 <a href="cnn.com" i18n-content="sectionExplicitMessagePostfix"></a> | |
| 618 <span>.</span> | |
| 619 </div> | |
| 620 <div class="sync-custom-passphrase-input"> | |
| 621 <input id="passphrase" type="password" i18n-values="placeholder:pass phraseLabel"> | |
|
csilv
2011/04/16 01:03:55
wrap to 80 cols
James Hawkins
2011/04/17 19:05:05
Done.
| |
| 622 </div> | |
| 623 <div class="sync-custom-passphrase-input"> | |
| 624 <input id="confirm-passphrase" type="password" i18n-values="placehol der:confirmLabel"> | |
|
csilv
2011/04/16 01:03:55
wrap to 80 cols
James Hawkins
2011/04/17 19:05:05
Done.
| |
| 625 </div> | |
| 626 <div class="error" style="display:none" | |
| 627 id="emptyerror" i18n-content="emptyErrorMessage"></div> | |
| 628 <div class="error" style="display:none" | |
| 629 id="mismatcherror" i18n-content="mismatchErrorMessage"></div> | |
| 630 </div> | |
| 631 </div> | |
| 632 <div class="action-area"> | |
| 633 <input id="okButton" type="submit" i18n-values="value:ok" /> | |
| 634 <input id="cancelButton" type="button" i18n-values="value:cancel" | |
| 635 onclick='chrome.send("DialogClose", [""])' /> | |
| 566 </div> | 636 </div> |
| 567 </div> | 637 </div> |
| 568 | 638 </form> |
| 569 </div> | 639 </div |
| 570 <div id="encryption-tab-contents" class="sync-config-tab-contents-inactive"> | |
| 571 <div id="sync-encryption-instructions" | |
| 572 i18n-content="encryptionInstructions"></div> | |
| 573 | |
| 574 <div> | |
| 575 <input id="google-option" name="option" type="radio" | |
| 576 value="google" onchange="onRadioChange();"> | |
| 577 <label for="google-option" i18n-content="googleOption"></label> | |
| 578 </input> | |
| 579 </div> | |
| 580 <div> | |
| 581 <input id="explicit-option" name="option" type="radio" value="explicit" | |
| 582 onchange="onRadioChange();"> | |
| 583 <div id="learn-more-link"> | |
| 584 <a i18n-values="href:encryptionhelpurl" target="_blank" | |
| 585 i18n-content="learnmore"></a> | |
| 586 </div> | |
| 587 <label for="explicit-option" i18n-content="explicitOption"></label> | |
| 588 </input> | |
| 589 </div> | |
| 590 | |
| 591 <div class="sync-section" id="section-google"> | |
| 592 <div i18n-content="sectionGoogleMessage"></div> | |
| 593 </div> | |
| 594 <div class="sync-section" id="section-explicit"> | |
| 595 <div i18n-content="sectionExplicitMessage" id="explicit-message"></div> | |
| 596 <div> | |
| 597 <div i18n-content="passphraseLabel" id="passphraseLabel"></div> | |
| 598 <input id="passphrase" name="passphrase" label="passphraseLabel" | |
| 599 type="password" /> | |
| 600 </div> | |
| 601 <div> | |
| 602 <div i18n-content="confirmLabel" id="confirmPassphraseLabel"> | |
| 603 </div> | |
| 604 <input id="confirmpassphrase" name="confirmpassphrase" type="password" | |
| 605 label="confirmPassphraseLabel" /> | |
| 606 </div> | |
| 607 <div class="error" style="display:none" | |
| 608 id="emptyerror" i18n-content="emptyErrorMessage"></div> | |
| 609 <div class="error" style="display:none" | |
| 610 id="mismatcherror" i18n-content="mismatchErrorMessage"></div> | |
| 611 </div> | |
| 612 | |
| 613 <div id="change-passphrase"> | |
| 614 <div id="sync-passphrase-warning" i18n-content="passphraseWarning"> | |
| 615 </div> | |
| 616 <a id="clear-data-link" i18n-content="cleardatalink" href="#" | |
| 617 onclick='goToDashboard(); return false;'></a> | |
| 618 </div> | |
| 619 </div> | |
| 620 | |
| 621 <div class="sync-footer"> | |
| 622 <input id="okButton" type="submit" i18n-values="value:ok" /> | |
| 623 <input id="cancelButton" type="button" i18n-values="value:cancel" | |
| 624 onclick='chrome.send("DialogClose", [""])' /> | |
| 625 </div> | |
| 626 </form> | |
| 627 </body> | 640 </body> |
| 628 </html> | 641 </html> |
| OLD | NEW |