Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(275)

Side by Side Diff: chrome/browser/resources/ntp4/recently_closed.js

Issue 1103293004: Use ICU plural syntax in more place (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: per string review by ainslie@ Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
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.
4
5 /**
6 * @fileoverview The recently closed menu: button, model data, and menu.
7 */
8
9 cr.define('ntp', function() {
10 'use strict';
11
12 /**
13 * Returns the text used for a recently closed window.
14 * @param {number} numTabs Number of tabs in the window.
15 * @return {string} The text to use.
16 */
17 function formatTabsText(numTabs) {
18 if (numTabs == 1)
19 return loadTimeData.getString('closedwindowsingle');
20 return loadTimeData.getStringF('closedwindowmultiple', numTabs);
21 }
22
23 var Menu = cr.ui.Menu;
24 var MenuItem = cr.ui.MenuItem;
25 var MenuButton = cr.ui.MenuButton;
26 var RecentMenuButton = cr.ui.define('button');
27
28 RecentMenuButton.prototype = {
29 __proto__: MenuButton.prototype,
30
31 decorate: function() {
32 MenuButton.prototype.decorate.call(this);
33 this.menu = new Menu;
34 cr.ui.decorate(this.menu, Menu);
35 this.menu.classList.add('footer-menu');
36 document.body.appendChild(this.menu);
37
38 this.needsRebuild_ = true;
39 this.anchorType = cr.ui.AnchorType.ABOVE;
40 this.invertLeftRight = true;
41 },
42
43 /**
44 * Shows the menu, first rebuilding it if necessary.
45 * TODO(estade): the right of the menu should align with the right of the
46 * button.
47 * @override
48 */
49 showMenu: function(shouldSetFocus) {
50 if (this.needsRebuild_) {
51 this.menu.textContent = '';
52 this.dataItems_.forEach(this.addItem_, this);
53 this.needsRebuild_ = false;
54 }
55
56 MenuButton.prototype.showMenu.apply(this, arguments);
57 },
58
59 /**
60 * Sets the menu model data.
61 * @param {Array} dataItems Array of objects that describe the apps.
62 */
63 set dataItems(dataItems) {
64 this.dataItems_ = dataItems;
65 this.needsRebuild_ = true;
66 this.hidden = !dataItems.length;
67 },
68
69 /**
70 * Adds an app to the menu.
71 * @param {Object} data An object encapsulating all data about the app.
72 * @private
73 */
74 addItem_: function(data) {
75 var isWindow = data.type == 'window';
76 var a = this.ownerDocument.createElement('a');
77 a.className = 'footer-menu-item';
78 if (isWindow) {
79 a.href = '';
80 a.classList.add('recent-window');
81 a.textContent = formatTabsText(data.tabs.length);
82 a.title = data.tabs.map(function(tab) { return tab.title; }).join('\n');
83 } else {
84 a.href = data.url;
85 a.style.backgroundImage = getFaviconImageSet(data.url);
86 a.textContent = data.title;
87 }
88
89 function onActivated(e) {
90 ntp.logTimeToClick('RecentlyClosed');
91 chrome.send('recordAppLaunchByURL',
92 [encodeURIComponent(data.url),
93 ntp.APP_LAUNCH.NTP_RECENTLY_CLOSED]);
94 var index = Array.prototype.indexOf.call(a.parentNode.children, a);
95 var orig = e.originalEvent;
96 var button = 0;
97 if (orig instanceof MouseEvent)
98 button = orig.button;
99 var params = [data.sessionId,
100 index,
101 button,
102 orig.altKey,
103 orig.ctrlKey,
104 orig.metaKey,
105 orig.shiftKey];
106 chrome.send('reopenTab', params);
107
108 e.preventDefault();
109 e.stopPropagation();
110 }
111 a.addEventListener('activate', onActivated);
112 a.addEventListener('click', function(e) { e.preventDefault(); });
113
114 this.menu.appendChild(a);
115 cr.ui.decorate(a, MenuItem);
116 },
117 };
118
119 return {
120 RecentMenuButton: RecentMenuButton,
121 };
122 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698