11320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Copyright 2014 The Chromium Authors. All rights reserved. 21320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Use of this source code is governed by a BSD-style license that can be 31320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// found in the LICENSE file. 41320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 51320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccicr.define('print_preview', function() { 61320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 'use strict'; 71320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 81320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci /** 91320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * Printer sharing invitation data object. 101320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * @param {string} sender Text identifying invitation sender. 111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * @param {string} receiver Text identifying invitation receiver. Empty in 121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * case of a personal invitation. Identifies a group or domain in case 131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * of an invitation received by a group manager. 141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * @param {!print_preview.Destination} destination Shared destination. 151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * @param {!Object} aclEntry JSON representation of the ACL entry this 161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * invitation was sent to. 171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * @param {string} account User account this invitation is sent for. 181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * @constructor 191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci */ 201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci function Invitation(sender, receiver, destination, aclEntry, account) { 211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci /** 221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * Text identifying invitation sender. 231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * @private {string} 241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci */ 251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci this.sender_ = sender; 261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci /** 281320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * Text identifying invitation receiver. Empty in case of a personal 291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * invitation. Identifies a group or domain in case of an invitation 301320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * received by a group manager. 311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * @private {string} 321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci */ 331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci this.receiver_ = receiver; 341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 351320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci /** 361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * Shared destination. 371320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * @private {!print_preview.Destination} 381320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci */ 391320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci this.destination_ = destination; 401320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 411320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci /** 421320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * JSON representation of the ACL entry this invitation was sent to. 431320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * @private {!Object} 441320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci */ 451320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci this.aclEntry_ = aclEntry; 461320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 471320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci /** 481320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * Account this invitation is sent for. 491320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * @private {string} 501320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci */ 511320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci this.account_ = account; 521320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci }; 531320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 541320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci Invitation.prototype = { 551320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci /** @return {string} Text identifying invitation sender. */ 561320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci get sender() { 571320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return this.sender_; 581320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci }, 591320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 601320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci /** @return {string} Text identifying invitation receiver. */ 611320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci get receiver() { 621320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return this.receiver_; 631320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci }, 641320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 651320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci /** 661320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * @return {boolean} Whether this user acts as a manager for a group of 671320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * users. 681320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci */ 691320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci get asGroupManager() { 701320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return !!this.receiver_; 711320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci }, 721320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 731320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci /** @return {!print_preview.Destination} Shared destination. */ 741320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci get destination() { 751320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return this.destination_; 761320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci }, 771320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 781320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci /** @return {string} Scope (account) this invitation was sent to. */ 791320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci get scopeId() { 801320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return this.aclEntry_['scope'] || ''; 811320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci }, 821320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 831320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci /** @return {string} Account this invitation is sent for. */ 841320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci get account() { 851320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return this.account_; 861320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 871320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci }; 881320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 891320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // Export 901320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return { 911320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci Invitation: Invitation 921320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci }; 931320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}); 94