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

Side by Side Diff: chrome/browser/resources/ntp/most_visited.js

Issue 3236001: Add the collapsed 'miniview' to the apps and most visisted sections. (Closed)
Patch Set: more unnecessary changes Created 10 years, 3 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
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 // Dependencies that we should remove/formalize: 5 // Dependencies that we should remove/formalize:
6 // ../shared/js/class_list.js 6 // ../shared/js/class_list.js
7 // util.js 7 // util.js
8 // 8 //
9 // afterTransition 9 // afterTransition
10 // chrome.send 10 // chrome.send
(...skipping 23 matching lines...) Expand all
34 } else { 34 } else {
35 el.classList.remove('pinned'); 35 el.classList.remove('pinned');
36 } 36 }
37 } 37 }
38 38
39 function getThumbnailIndex(el) { 39 function getThumbnailIndex(el) {
40 var nodes = el.parentNode.querySelectorAll('.thumbnail-container'); 40 var nodes = el.parentNode.querySelectorAll('.thumbnail-container');
41 return Array.prototype.indexOf.call(nodes, el); 41 return Array.prototype.indexOf.call(nodes, el);
42 } 42 }
43 43
44 function MostVisited(el, useSmallGrid, visible) { 44 function MostVisited(el, miniview, useSmallGrid, visible) {
45 this.element = el; 45 this.element = el;
46 this.miniview = miniview;
46 this.useSmallGrid_ = useSmallGrid; 47 this.useSmallGrid_ = useSmallGrid;
47 this.visible_ = visible; 48 this.visible_ = visible;
48 49
49 this.createThumbnails_(); 50 this.createThumbnails_();
50 this.applyMostVisitedRects_(); 51 this.applyMostVisitedRects_();
51 52
52 el.addEventListener('click', bind(this.handleClick_, this)); 53 el.addEventListener('click', bind(this.handleClick_, this));
53 el.addEventListener('keydown', bind(this.handleKeyDown_, this)); 54 el.addEventListener('keydown', bind(this.handleKeyDown_, this));
54 55
55 document.addEventListener('DOMContentLoaded', 56 document.addEventListener('DOMContentLoaded',
(...skipping 438 matching lines...) Expand 10 before | Expand all | Expand 10 after
494 var maxItems = 8; 495 var maxItems = 8;
495 data.length = Math.min(maxItems, data.length); 496 data.length = Math.min(maxItems, data.length);
496 var len = data.length; 497 var len = data.length;
497 for (var i = len; i < maxItems; i++) { 498 for (var i = len; i < maxItems; i++) {
498 data[i] = {filler: true}; 499 data[i] = {filler: true};
499 } 500 }
500 501
501 // On setting we need to update the items 502 // On setting we need to update the items
502 this.data_ = data; 503 this.data_ = data;
503 this.updateMostVisited_(); 504 this.updateMostVisited_();
505 this.updateMiniview_();
504 }, 506 },
505 507
506 updateMostVisited_: function() { 508 updateMostVisited_: function() {
507 509
508 function getThumbnailClassName(item) { 510 function getThumbnailClassName(item) {
509 return 'thumbnail-container' + 511 return 'thumbnail-container' +
510 (item.pinned ? ' pinned' : '') + 512 (item.pinned ? ' pinned' : '') +
511 (item.filler ? ' filler' : ''); 513 (item.filler ? ' filler' : '');
512 } 514 }
513 515
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
548 t.querySelector('.thumbnail-wrapper').style.backgroundImage = 550 t.querySelector('.thumbnail-wrapper').style.backgroundImage =
549 url(thumbnailUrl); 551 url(thumbnailUrl);
550 var titleDiv = t.querySelector('.title > div'); 552 var titleDiv = t.querySelector('.title > div');
551 titleDiv.xtitle = titleDiv.textContent = d.title; 553 titleDiv.xtitle = titleDiv.textContent = d.title;
552 var faviconUrl = d.faviconUrl || 'chrome://favicon/' + d.url; 554 var faviconUrl = d.faviconUrl || 'chrome://favicon/' + d.url;
553 titleDiv.style.backgroundImage = url(faviconUrl); 555 titleDiv.style.backgroundImage = url(faviconUrl);
554 titleDiv.dir = d.direction; 556 titleDiv.dir = d.direction;
555 } 557 }
556 }, 558 },
557 559
560 updateMiniview_: function() {
561 this.miniview.textContent = '';
562 var data = this.data.slice(0, MAX_MINIVIEW_ITEMS);
563 for (var i = 0, item; item = data[i]; i++) {
564 var span = document.createElement('span');
565 var a = span.appendChild(document.createElement('a'));
566 a.href = item.url;
567 a.textContent = item.title;
568 a.style.backgroundImage = url('chrome://favicon/' + item.url);
569 a.className = 'item';
570 this.miniview.appendChild(span);
571 }
572 },
573
558 handleClick_: function(e) { 574 handleClick_: function(e) {
559 var target = e.target; 575 var target = e.target;
560 if (target.classList.contains('pin')) { 576 if (target.classList.contains('pin')) {
561 this.togglePinned_(getItem(target)); 577 this.togglePinned_(getItem(target));
562 e.preventDefault(); 578 e.preventDefault();
563 } else if (target.classList.contains('remove')) { 579 } else if (target.classList.contains('remove')) {
564 this.blacklist(getItem(target)); 580 this.blacklist(getItem(target));
565 e.preventDefault(); 581 e.preventDefault();
566 } else { 582 } else {
567 var item = getItem(target); 583 var item = getItem(target);
(...skipping 12 matching lines...) Expand all
580 handleKeyDown_: function(e) { 596 handleKeyDown_: function(e) {
581 if (!IS_MAC && e.keyCode == 46 || // Del 597 if (!IS_MAC && e.keyCode == 46 || // Del
582 IS_MAC && e.metaKey && e.keyCode == 8) { // Cmd + Backspace 598 IS_MAC && e.metaKey && e.keyCode == 8) { // Cmd + Backspace
583 this.blacklist(e.target); 599 this.blacklist(e.target);
584 } 600 }
585 } 601 }
586 }; 602 };
587 603
588 return MostVisited; 604 return MostVisited;
589 })(); 605 })();
OLDNEW
« chrome/browser/resources/ntp/apps.js ('K') | « chrome/browser/resources/ntp/apps.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698