1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 cr.define('options', function() {
7 var OptionsPage = options.OptionsPage;
9 /////////////////////////////////////////////////////////////////////////////
13 * Encapsulated handling of the cookies and other site data page.
16 function CookiesView(model) {
17 OptionsPage.call(this, 'cookies',
18 loadTimeData.getString('cookiesViewPageTabTitle'),
22 cr.addSingletonGetter(CookiesView);
24 CookiesView.prototype = {
25 __proto__: OptionsPage.prototype,
28 * The timer id of the timer set on search query change events.
32 queryDelayTimerId_: 0,
35 * The most recent search query, empty string if the query is empty.
41 initializePage: function() {
42 OptionsPage.prototype.initializePage.call(this);
44 var searchBox = this.pageDiv.querySelector('.cookies-search-box');
45 searchBox.addEventListener(
46 'search', this.handleSearchQueryChange_.bind(this));
47 searchBox.onkeydown = function(e) {
48 // Prevent the overlay from handling this event.
49 if (e.keyIdentifier == 'Enter')
53 this.pageDiv.querySelector('.remove-all-cookies-button').onclick =
55 chrome.send('removeAllCookies');
58 var cookiesList = this.pageDiv.querySelector('.cookies-list');
59 options.CookiesList.decorate(cookiesList);
61 this.addEventListener('visibleChange', this.handleVisibleChange_);
63 this.pageDiv.querySelector('.cookies-view-overlay-confirm').onclick =
64 OptionsPage.closeOverlay.bind(OptionsPage);
68 didShowPage: function() {
69 this.pageDiv.querySelector('.cookies-search-box').value = '';
74 * Search cookie using text in |cookies-search-box|.
76 searchCookie: function() {
77 this.queryDelayTimerId_ = 0;
78 var filter = this.pageDiv.querySelector('.cookies-search-box').value;
79 if (this.lastQuery_ != filter) {
80 this.lastQuery_ = filter;
81 chrome.send('updateCookieSearchResults', [filter]);
86 * Handles search query changes.
87 * @param {!Event} e The event object.
90 handleSearchQueryChange_: function(e) {
91 if (this.queryDelayTimerId_)
92 window.clearTimeout(this.queryDelayTimerId_);
94 this.queryDelayTimerId_ = window.setTimeout(
95 this.searchCookie.bind(this), 500);
101 * Handler for OptionsPage's visible property change event.
102 * @param {Event} e Property change event.
105 handleVisibleChange_: function(e) {
109 chrome.send('reloadCookies');
111 if (!this.initialized_) {
112 this.initialized_ = true;
115 this.pageDiv.querySelector('.cookies-list').redraw();
118 this.pageDiv.querySelector('.cookies-search-box').focus();
122 // CookiesViewHandler callbacks.
123 CookiesView.onTreeItemAdded = function(args) {
124 $('cookies-list').addByParentId(args[0], args[1], args[2]);
127 CookiesView.onTreeItemRemoved = function(args) {
128 $('cookies-list').removeByParentId(args[0], args[1], args[2]);
131 CookiesView.loadChildren = function(args) {
132 $('cookies-list').loadChildren(args[0], args[1]);
137 CookiesView: CookiesView