172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved. 2bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Use of this source code is governed by a BSD-style license that can be 3bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// found in the LICENSE file. 4bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 5bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsencr.define('options', function() { 6bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 7bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen var OptionsPage = options.OptionsPage; 8bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 9bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen ///////////////////////////////////////////////////////////////////////////// 10bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen // CookiesView class: 11bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 12bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen /** 13dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen * Encapsulated handling of the cookies and other site data page. 14bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen * @constructor 15bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen */ 16bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen function CookiesView(model) { 17dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen OptionsPage.call(this, 'cookies', 1872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen templateData.cookiesViewPageTabTitle, 19bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 'cookiesViewPage'); 20bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen } 21bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 22bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen cr.addSingletonGetter(CookiesView); 23bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 24bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen CookiesView.prototype = { 25bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen __proto__: OptionsPage.prototype, 26bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 27bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen initializePage: function() { 28bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen OptionsPage.prototype.initializePage.call(this); 29bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 30dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen $('cookies-search-box').addEventListener('search', 31dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen this.handleSearchQueryChange_.bind(this)); 32bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 33dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen $('remove-all-cookies-button').onclick = function(e) { 34bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen chrome.send('removeAllCookies', []); 35dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen }; 36bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 37dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen var cookiesList = $('cookies-list'); 38dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen options.CookiesList.decorate(cookiesList); 39bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 40dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen this.addEventListener('visibleChange', this.handleVisibleChange_); 41bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen }, 42bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 43bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen lastQuery_ : null, 44bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 45bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen /** 46bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen * Search cookie using text in cookiesSearchBox. 47bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen */ 48bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen searchCookie: function() { 49bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen this.queryDelayTimerId_ = 0; 50dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen var filter = $('cookies-search-box').value; 51bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen if (this.lastQuery_ != filter) { 52bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen this.lastQuery_ = filter; 53dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen chrome.send('updateCookieSearchResults', [filter]); 54bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen } 55bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen }, 56bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 57bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen queryDelayTimerId_: 0, 58bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 59bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen /** 60dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen * Handles search query changes. 61bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen * @private 62bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen * @param {!Event} e The event object. 63bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen */ 64dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen handleSearchQueryChange_: function(e) { 65ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen if (this.queryDelayTimerId_) 66bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen window.clearTimeout(this.queryDelayTimerId_); 67bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 68bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen this.queryDelayTimerId_ = window.setTimeout( 69bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen this.searchCookie.bind(this), 500); 70bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen }, 71bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 72dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen initialized_: false, 73bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 74bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen /** 75bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen * Handler for OptionsPage's visible property change event. 76bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen * @private 77bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen * @param {Event} e Property change event. 78bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen */ 79bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen handleVisibleChange_: function(e) { 80ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen if (!this.visible) 81ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen return; 82ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen if (!this.initialized_) { 83dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen this.initialized_ = true; 84bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen this.searchCookie(); 85ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen } else { 86ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen $('cookies-list').redraw(); 87bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen } 8821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen }, 89bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen }; 90bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 91bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen // CookiesViewHandler callbacks. 92bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen CookiesView.onTreeItemAdded = function(args) { 93dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen $('cookies-list').addByParentId(args[0], args[1], args[2]); 94bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen }; 95bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 96bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen CookiesView.onTreeItemRemoved = function(args) { 97dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen $('cookies-list').removeByParentId(args[0], args[1], args[2]); 98bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen }; 99bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 100731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick CookiesView.loadChildren = function(args) { 101dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen $('cookies-list').loadChildren(args[0], args[1]); 102731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick }; 103731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 104bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen // Export 105bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen return { 106bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen CookiesView: CookiesView 107bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen }; 108bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 109bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen}); 110