local_parsers.js revision 5d1f7b1de12d16ceb2c938c56701a3e8bfa558f7
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)cr.define('print_preview', function() { 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'use strict'; 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** Namespace that contains a method to parse local print destinations. */ 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) function LocalDestinationParser() {}; 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Parses a local print destination. 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param {!Object} destinationInfo Information describing a local print 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * destination. 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @return {!print_preview.Destination} Parsed local print destination. 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) LocalDestinationParser.parse = function(destinationInfo) { 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return new print_preview.Destination( 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) destinationInfo.deviceName, 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) print_preview.Destination.Type.LOCAL, 21c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) print_preview.Destination.Origin.LOCAL, 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) destinationInfo.printerName, 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) false /*isRecent*/, 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) print_preview.Destination.ConnectionStatus.ONLINE); 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }; 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** Namespace that contains a method to parse local print capabilities. */ 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) function LocalCapabilitiesParser() {}; 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Parses local print capabilities. 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param {!Object} settingsInfo Object that describes local print 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * capabilities. 34c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * @return {!print_preview.Cdd} Parsed local print capabilities. 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) LocalCapabilitiesParser.parse = function(settingsInfo) { 37c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) var cdd = { 38c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) version: '1.0', 39c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) printer: { 40c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) collate: {default: true} 41c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) } 42c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) }; 43c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 44c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) if (!settingsInfo['disableColorOption']) { 45c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) cdd.printer.color = { 46c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) option: [ 47c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) { 48c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) type: 'STANDARD_COLOR', 49c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) is_default: !!settingsInfo['setColorAsDefault'] 50c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) }, 51c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) { 52c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) type: 'STANDARD_MONOCHROME', 53c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) is_default: !settingsInfo['setColorAsDefault'] 54c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) } 55c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) ] 56c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) } 57c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) } 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 59c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) if (!settingsInfo['disableCopiesOption']) { 60c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) cdd.printer.copies = {default: 1}; 61c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) } 62c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 63c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) if (settingsInfo['printerDefaultDuplexValue'] != 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) print_preview.NativeLayer.DuplexMode.UNKNOWN_DUPLEX_MODE) { 65c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) cdd.printer.duplex = { 66c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) option: [ 67c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) {type: 'NO_DUPLEX', is_default: !settingsInfo['setDuplexAsDefault']}, 68c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) {type: 'LONG_EDGE', is_default: !!settingsInfo['setDuplexAsDefault']} 69c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) ] 70c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) }; 71c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) } 72c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 73c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) if (!settingsInfo['disableLandscapeOption']) { 74c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) cdd.printer.page_orientation = { 75c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) option: [ 76c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) {type: 'PORTRAIT', is_default: true}, 77c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) {type: 'LANDSCAPE'} 78c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) ] 79c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) }; 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 82c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return cdd; 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }; 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) function PrivetDestinationParser() {} 86f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 87f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) /** 885d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) * Parses a privet destination as one or more local printers. 89f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) * @param {!Object} destinationInfo Object that describes a privet printer. 905d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) * @return {!Array.<!print_preview.Destination>} Parsed destination info. 91f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) */ 92f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) PrivetDestinationParser.parse = function(destinationInfo) { 93a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) var returnedPrinters = []; 94a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 95a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) if (destinationInfo.hasLocalPrinting) { 96a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) returnedPrinters.push(new print_preview.Destination( 97a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) destinationInfo.serviceName, 98a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) print_preview.Destination.Type.LOCAL, 99a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) print_preview.Destination.Origin.PRIVET, 100a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) destinationInfo.name, 101a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) false /*isRecent*/, 1025d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) print_preview.Destination.ConnectionStatus.ONLINE, 1035d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) { cloudID: destinationInfo.cloudID })); 104a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) } 105a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 106a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) if (destinationInfo.isUnregistered) { 107a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) returnedPrinters.push(new print_preview.Destination( 108f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) destinationInfo.serviceName, 109a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) print_preview.Destination.Type.GOOGLE, 110a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) print_preview.Destination.Origin.PRIVET, 111a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) destinationInfo.name, 112a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) false /*isRecent*/, 113a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) print_preview.Destination.ConnectionStatus.UNREGISTERED)); 114a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) } 115a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 116a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) return returnedPrinters; 117f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) }; 118f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Export 1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return { 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) LocalCapabilitiesParser: LocalCapabilitiesParser, 122f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) LocalDestinationParser: LocalDestinationParser, 123f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) PrivetDestinationParser: PrivetDestinationParser 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }; 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}); 126