15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Copyright (c) 2012 The Chromium Authors. All rights reserved. 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Use of this source code is governed by a BSD-style license that can be 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * found in the LICENSE file. 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//Contains true if multiple calendar option is checked, false otherwise. 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)var isMultiCalendar; 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//adding listener when body is loaded to call init function. 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)window.addEventListener('load', init, false); 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Sets the value of multiple calendar checkbox based on value from 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * local storage, and sets up the `save` event handler. 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)function init() { 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) isMultiCalendar = JSON.parse(localStorage.multiCalendar || false); 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $('multiCalendar').checked = isMultiCalendar; 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $('multiCalendarText').innerHTML = 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) chrome.i18n.getMessage('multiCalendarText'); 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $('optionsTitle').innerHTML = chrome.i18n.getMessage('optionsTitle'); 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $('imageTooltip').title = chrome.i18n.getMessage('imageTooltip'); 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $('imageTooltip').alt = chrome.i18n.getMessage('imageTooltip'); 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $('multiCalendarText').title = chrome.i18n.getMessage('multiCalendarToolTip'); 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $('multiCalendar').title = chrome.i18n.getMessage('multiCalendarToolTip'); 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $('extensionName').innerHTML = chrome.i18n.getMessage('extensionName'); 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (chrome.i18n.getMessage('direction') == 'rtl') { 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) document.querySelector('body').style.direction = 'rtl'; 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) document.querySelector('#multiCalendar').addEventListener('click', save); 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Saves the value of the checkbox into local storage. 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)function save() { 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) var multiCalendarId = $('multiCalendar'); 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) localStorage.multiCalendar = multiCalendarId.checked; 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (multiCalendarId) { 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) multiCalendar.disabled = true; 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $('status').innerHTML = chrome.i18n.getMessage('status_saving'); 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $('status').style.display = 'block'; 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) chrome.extension.getBackgroundPage().onSettingsChange(); 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Fired when a request is sent from either an extension process or a content 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * script. Add Listener to enable the save checkbox button on server response. 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param {String} request Request sent by the calling script. 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param {Object} sender Information about the script that sent a message or 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * request. 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param {Function} sendResponse Function to call when there is a response. 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * The argument should be any JSON-ifiable object, or undefined if there 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * is no response. 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)chrome.extension.onRequest.addListener(function(request, sender, sendResponse) { 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (!request.message) 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return; 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) switch (request.message) { 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case 'enableSave': 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if ($('multiCalendar')) { 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if ($('multiCalendar').disabled) { 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $('status').innerHTML = chrome.i18n.getMessage('status_saved'); 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $('status').style.display = 'block'; 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) setTimeout("$('status').style.display = 'none'", 1500); 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $('multiCalendar').disabled = false; 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) sendResponse(); 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) break; 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}); 75