Home | History | Annotate | Download | only in search
      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 cr.define('print_preview', function() {
      6   'use strict';
      7 
      8   /**
      9    * Sub-class of a destination list that shows cloud-based destinations.
     10    * @param {!cr.EventTarget} eventTarget Event target to pass to destination
     11    *     items for dispatching SELECT events.
     12    * @constructor
     13    * @extends {print_preview.DestinationList}
     14    */
     15   function CloudDestinationList(eventTarget) {
     16     print_preview.DestinationList.call(
     17         this,
     18         eventTarget,
     19         localStrings.getString('cloudDestinationsTitle'),
     20         localStrings.getString('manage'));
     21   };
     22 
     23   CloudDestinationList.prototype = {
     24     __proto__: print_preview.DestinationList.prototype,
     25 
     26     /** @override */
     27     updateDestinations: function(destinations) {
     28       // Change the action link from "Manage..." to "Setup..." if user only has
     29       // Docs and FedEx printers.
     30       var docsId = print_preview.Destination.GooglePromotedId.DOCS;
     31       var fedexId = print_preview.Destination.GooglePromotedId.FEDEX;
     32       if ((destinations.length == 1 && destinations[0].id == docsId) ||
     33           (destinations.length == 2 &&
     34            ((destinations[0].id == docsId && destinations[1].id == fedexId) ||
     35             (destinations[0].id == fedexId && destinations[1].id == docsId)))) {
     36         this.setActionLinkTextInternal(
     37             localStrings.getString('setupCloudPrinters'));
     38       } else {
     39         this.setActionLinkTextInternal(localStrings.getString('manage'));
     40       }
     41       print_preview.DestinationList.prototype.updateDestinations.call(
     42           this, destinations);
     43     }
     44   };
     45 
     46   return {
     47     CloudDestinationList: CloudDestinationList
     48   };
     49 });
     50