OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 cr.define('ntp4', function() { | 5 cr.define('ntp4', function() { |
6 'use strict'; | 6 'use strict'; |
7 | 7 |
8 var localStrings = new LocalStrings; | 8 var localStrings = new LocalStrings; |
9 | 9 |
10 /** | 10 /** |
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
223 | 223 |
224 BookmarksPage.prototype = { | 224 BookmarksPage.prototype = { |
225 __proto__: TilePage.prototype, | 225 __proto__: TilePage.prototype, |
226 | 226 |
227 /** | 227 /** |
228 * Initialize the bookmarks page object. | 228 * Initialize the bookmarks page object. |
229 */ | 229 */ |
230 initialize: function() { | 230 initialize: function() { |
231 this.classList.add('bookmarks-page'); | 231 this.classList.add('bookmarks-page'); |
232 | 232 |
233 // insert the bookmark titles header which is unique to bookmark pages. | 233 // Insert the bookmark titles header which is unique to bookmark pages. |
234 this.insertBefore($('bookmarks-title-wrapper'), this.firstChild); | 234 this.insertBefore($('bookmarks-title-wrapper'), this.firstChild); |
235 | 235 |
236 // insert a container for a link to a Bookmarks Manager page. | 236 // Insert the top & bottom links for the Bookmarks Manager page. |
237 var link = document.createElement('a'); | 237 var pageContent = this.querySelector('.tile-page-content'); |
238 link.className = 'bookmarks-manager-link'; | 238 var topWrapper = $('bookmarks-top-link-wrapper'); |
239 link.textContent = localStrings.getString('bookmarksManagerLinkTitle'); | 239 pageContent.insertBefore(topWrapper, pageContent.firstChild); |
240 var container = document.createElement('div'); | 240 topWrapper.hidden = false; |
241 container.className = 'bookmarks-manager-link-container'; | 241 pageContent.appendChild($('bookmarks-bottom-link-wrapper')); |
242 container.hidden = true; | |
243 container.appendChild(link); | |
244 this.querySelector('.tile-page-content').appendChild(container); | |
245 }, | 242 }, |
246 | 243 |
247 /** | 244 /** |
248 * Build the bookmark titles bar (ie, navigation hiearchy). | 245 * Build the bookmark titles bar (ie, navigation hiearchy). |
249 * @param {Array} items The parent hiearchy of the current folder. | 246 * @param {Array} items The parent hiearchy of the current folder. |
250 * @private | 247 * @private |
251 */ | 248 */ |
252 updateBookmarkTitles_: function(items) { | 249 updateBookmarkTitles_: function(items) { |
253 var wrapper = $('bookmarks-title-wrapper'); | 250 var wrapper = $('bookmarks-title-wrapper'); |
254 var title = wrapper.querySelector('.section-title'); | 251 var title = wrapper.querySelector('.section-title'); |
(...skipping 16 matching lines...) Expand all Loading... |
271 * Build the bookmark tiles. | 268 * Build the bookmark tiles. |
272 * @param {Array} items The contents of the current folder. | 269 * @param {Array} items The contents of the current folder. |
273 * @private | 270 * @private |
274 */ | 271 */ |
275 updateBookmarkTiles_: function(items) { | 272 updateBookmarkTiles_: function(items) { |
276 this.removeAllTiles(); | 273 this.removeAllTiles(); |
277 var tile_count = Math.min(items.length, MAX_BOOKMARK_TILES); | 274 var tile_count = Math.min(items.length, MAX_BOOKMARK_TILES); |
278 for (var i = 0; i < tile_count; i++) | 275 for (var i = 0; i < tile_count; i++) |
279 this.appendTile(new Bookmark(items[i]), false); | 276 this.appendTile(new Bookmark(items[i]), false); |
280 | 277 |
281 var container = this.querySelector('.bookmarks-manager-link-container'); | 278 var link = $('bookmarks-top-link-wrapper').querySelector('a'); |
| 279 link.href = 'chrome://bookmarks/#' + this.id; |
| 280 |
| 281 var wrapper = $('bookmarks-bottom-link-wrapper'); |
282 if (items.length > MAX_BOOKMARK_TILES) { | 282 if (items.length > MAX_BOOKMARK_TILES) { |
283 var link = container.querySelector('.bookmarks-manager-link'); | 283 var link = wrapper.querySelector('a'); |
284 link.href = 'chrome://bookmarks/#' + this.id; | 284 link.href = 'chrome://bookmarks/#' + this.id; |
285 container.hidden = false; | 285 wrapper.hidden = false; |
286 } else { | 286 } else { |
287 container.hidden = true; | 287 wrapper.hidden = true; |
288 } | 288 } |
289 }, | 289 }, |
290 | 290 |
291 /** | 291 /** |
292 * Determine whether a bookmark ID matches a folder in the current | 292 * Determine whether a bookmark ID matches a folder in the current |
293 * hierarchy. | 293 * hierarchy. |
294 * @param {string} id The bookmark ID to search for. | 294 * @param {string} id The bookmark ID to search for. |
295 * @private | 295 * @private |
296 */ | 296 */ |
297 isBookmarkInParentHierarchy_: function(id) { | 297 isBookmarkInParentHierarchy_: function(id) { |
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
440 * Set the bookmark data that should be displayed, replacing any existing | 440 * Set the bookmark data that should be displayed, replacing any existing |
441 * data. | 441 * data. |
442 * @param {Object} data Data that shoudl be displayed. Contains arrays | 442 * @param {Object} data Data that shoudl be displayed. Contains arrays |
443 * 'items' and 'navigationItems'. | 443 * 'items' and 'navigationItems'. |
444 */ | 444 */ |
445 set data(data) { | 445 set data(data) { |
446 this.id = data.navigationItems[0].id; | 446 this.id = data.navigationItems[0].id; |
447 this.updateBookmarkTiles_(data.items); | 447 this.updateBookmarkTiles_(data.items); |
448 this.updateBookmarkTitles_(data.navigationItems); | 448 this.updateBookmarkTitles_(data.navigationItems); |
449 }, | 449 }, |
| 450 |
| 451 /** @inheritDoc */ |
| 452 get extraBottomPadding() { |
| 453 return 40; |
| 454 }, |
450 }; | 455 }; |
451 | 456 |
452 /** | 457 /** |
453 * Initializes and renders the bookmark chevron canvas. This needs to be | 458 * Initializes and renders the bookmark chevron canvas. This needs to be |
454 * performed after the page has been loaded so that we have access to the | 459 * performed after the page has been loaded so that we have access to the |
455 * style sheet values. | 460 * style sheet values. |
456 */ | 461 */ |
457 function initBookmarkChevron() { | 462 function initBookmarkChevron() { |
458 var wrapperStyle = window.getComputedStyle($('bookmarks-title-wrapper')); | 463 var wrapperStyle = window.getComputedStyle($('bookmarks-title-wrapper')); |
459 var width = 10; | 464 var width = 10; |
(...skipping 20 matching lines...) Expand all Loading... |
480 tile.stripeColor = color; | 485 tile.stripeColor = color; |
481 }; | 486 }; |
482 | 487 |
483 return { | 488 return { |
484 BookmarksPage: BookmarksPage, | 489 BookmarksPage: BookmarksPage, |
485 initBookmarkChevron: initBookmarkChevron, | 490 initBookmarkChevron: initBookmarkChevron, |
486 }; | 491 }; |
487 }); | 492 }); |
488 | 493 |
489 window.addEventListener('load', ntp4.initBookmarkChevron); | 494 window.addEventListener('load', ntp4.initBookmarkChevron); |
OLD | NEW |