]>
git.wh0rd.org - chrome-ext/clearhistory-advance-fork.git/blob - javascript/options.js
1 // Copyright 2011 Google Inc. All Rights Reserved.
4 * @fileoverview Script for the options page.
5 * @author arunjit@google.com (Arunjit Singh)
8 window
.addEventListener('load', init
, false);
11 * Initializes the i18n strings.
12 * Loads values from localStorage and applies them to the elements
16 CONSTANTS
.TIMES
.forEach(function(time
) {
17 var selector
= 'input[name=time][value="{t}"], .opt-label#opt-{t}'
19 var elements
= $(selector
);
20 time
= getUnitsForTime(time
);
21 var message
= (time
.time
=== -1) ?
22 chrome
.i18n
.getMessage('optionsTimeAll') :
23 chrome
.i18n
.getMessage('optionsTime',
24 [time
.time
, time
.units
]);
25 elements
[0].title
= message
;
26 elements
[1].innerText
= message
;
29 $('#optionsTitle')[0].innerText
= chrome
.i18n
.getMessage('optionsTitle');
30 $('#optionsHeader')[0].innerText
= chrome
.i18n
.getMessage('optionsHeader');
31 $('#optionsPrompt')[0].innerText
= chrome
.i18n
.getMessage('optionsPrompt');
32 $('#optionsTimeFor')[0].innerText
= chrome
.i18n
.getMessage('optionsTimeFor');
33 $('#optionsTimeStart')[0].innerText
= chrome
.i18n
.getMessage('optionsTimeStart');
34 $('#optionsCookies')[0].innerText
= chrome
.i18n
.getMessage('optionsCookies');
35 $('#optionsDownloads')[0].innerText
= chrome
.i18n
.getMessage('optionsDownloads');
36 $('#optionsAutoclear')[0].innerText
= chrome
.i18n
.getMessage('optionsAutoclear');
37 $('#optionsSaved > b')[0].innerText
= chrome
.i18n
.getMessage('optionsSaved');
39 // Bind all the callbacks
40 $('#opt-time input.opt-chk[type=radio]').forEach(function(e
) {
43 $('input.opt-chk[type=checkbox]').forEach(function(e
) {
47 // Load or set localStorage data
49 'timeStart', 'time', 'prompt', 'cookies', 'downloads', 'autoclear',
51 chrome
.storage
.sync
.get(settings
, function(s
) {
52 var timeStart
= s
.timeStart
|| CONSTANTS
.YES
;
53 var time
= ~~(s
.time
) || (s
.time
= CONSTANTS
.DEFAULT_TIME
);
54 var showPrompt
= s
.prompt
|| (s
.prompt
= CONSTANTS
.YES
);
55 var clearCookies
= s
.cookies
|| CONSTANTS
.NO
;
56 var clearDownloads
= s
.downloads
|| CONSTANTS
.NO
;
57 var autoClear
= s
.autoclear
|| CONSTANTS
.NO
;
59 $('input[name=timeStart]')[0].checked
= (timeStart
=== CONSTANTS
.YES
);
60 $('input[name=time][value="' + time
+ '"]')[0].checked
= true;
61 $('input[name=prompt]')[0].checked
= (showPrompt
=== CONSTANTS
.YES
);
62 $('input[name=cookies]')[0].checked
= (clearCookies
=== CONSTANTS
.YES
);
63 $('input[name=downloads]')[0].checked
= (clearDownloads
=== CONSTANTS
.YES
);
64 $('input[name=autoclear]')[0].checked
= (autoClear
=== CONSTANTS
.YES
);
69 * Toggles the value in localStorage for the element selected
70 * @this {HTMLInputElement} The element (radio button) that was clicked.
73 chrome
.storage
.sync
.set({'time': this.value
});
78 * Sets the {@code localStorage.prompt} property when selected
79 * @this {HTMLInputElement} The element (checkbox) that was clicked.
83 setting
[this.name
] = this.checked
? CONSTANTS
.YES
: CONSTANTS
.NO
;
84 chrome
.storage
.sync
.set(setting
);
88 // For rapid changes/saves
91 * Updates the UI to indicate save completed
93 function optionSaved() {
94 var element
= $('#optionsSaved')[0];
95 element
.classList
.add('show');
96 clearTimeout(isSaving
);
97 isSaving
= setTimeout(function() {
98 element
.classList
.remove('show');