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
5cr.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        loadTimeData.getString('cloudDestinationsTitle'),
20        loadTimeData.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            loadTimeData.getString('setupCloudPrinters'));
38      } else {
39        this.setActionLinkTextInternal(loadTimeData.getString('manage'));
40      }
41      print_preview.DestinationList.prototype.updateDestinations.call(
42          this, destinations);
43    }
44  };
45
46  return {
47    CloudDestinationList: CloudDestinationList
48  };
49});
50