OLD | NEW |
(Empty) | |
| 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('appsDevtool', function() { |
| 6 /** |
| 7 * PackItemOverlay class |
| 8 * Encapsulated handling of the 'Pack Item' overlay page. |
| 9 * @constructor |
| 10 */ |
| 11 function PackItemOverlay() {} |
| 12 |
| 13 cr.addSingletonGetter(PackItemOverlay); |
| 14 |
| 15 PackItemOverlay.prototype = { |
| 16 /** |
| 17 * Initialize the page. |
| 18 */ |
| 19 initializePage: function() { |
| 20 var overlay = $('overlay'); |
| 21 cr.ui.overlay.setupOverlay(overlay); |
| 22 overlay.addEventListener('cancelOverlay', this.handleDismiss_.bind(this)); |
| 23 |
| 24 $('packItemDismiss').addEventListener('click', |
| 25 this.handleDismiss_.bind(this)); |
| 26 $('packItemCommit').addEventListener('click', |
| 27 this.handleCommit_.bind(this)); |
| 28 $('browseItemDir').addEventListener('click', |
| 29 this.handleBrowseItemDir_.bind(this)); |
| 30 $('browsePrivateKey').addEventListener('click', |
| 31 this.handleBrowsePrivateKey_.bind(this)); |
| 32 }, |
| 33 |
| 34 /** |
| 35 * Handles a click on the dismiss button. |
| 36 * @param {Event} e The click event. |
| 37 * @private |
| 38 */ |
| 39 handleDismiss_: function(e) { |
| 40 AppsDevTool.showOverlay(null); |
| 41 }, |
| 42 |
| 43 /** |
| 44 * Handles a click on the pack button. |
| 45 * @param {Event} e The click event. |
| 46 * @private |
| 47 */ |
| 48 handleCommit_: function(e) { |
| 49 var itemPath = $('itemRootDir').value; |
| 50 var privateKeyPath = $('itemPrivateKey').value; |
| 51 chrome.developerPrivate.packDirectory( |
| 52 itemPath, privateKeyPath, 0, this.onCommit_); |
| 53 }, |
| 54 |
| 55 /** |
| 56 * Handles a commit on the pack request. |
| 57 * @param {string} response Message returned by packing api. |
| 58 * @private |
| 59 */ |
| 60 onCommit_: function(response) { |
| 61 if (response.status == 'SUCCESS') |
| 62 PackItemOverlay.showSuccessMessage(response); |
| 63 else if (response.status == 'ERROR') |
| 64 PackItemOverlay.showError(response); |
| 65 else |
| 66 PackItemOverlay.showWarningMessage(response); |
| 67 }, |
| 68 |
| 69 /** |
| 70 * Handles the showing of the item directory browser. |
| 71 * @param {Event} e Change event. |
| 72 * @private |
| 73 */ |
| 74 handleBrowseItemDir_: function(e) { |
| 75 chrome.developerPrivate.choosePath('FOLDER', 'LOAD', function(filePath) { |
| 76 $('itemRootDir').value = filePath; |
| 77 }); |
| 78 }, |
| 79 |
| 80 /** |
| 81 * Handles the showing of the item private key file. |
| 82 * @param {Event} e Change event. |
| 83 * @private |
| 84 */ |
| 85 handleBrowsePrivateKey_: function(e) { |
| 86 chrome.developerPrivate.choosePath('FILE', 'PEM', function(filePath) { |
| 87 $('itemPrivateKey').value = filePath; |
| 88 }); |
| 89 }, |
| 90 }; |
| 91 |
| 92 var hideOverlay = function() { |
| 93 AppsDevTool.showOverlay(null); |
| 94 }; |
| 95 |
| 96 /** |
| 97 * Wrap up the pack process by showing the success |message| and closing |
| 98 * the overlay. |
| 99 * @param {string} message The message to show to the user. |
| 100 */ |
| 101 PackItemOverlay.showSuccessMessage = function(response) { |
| 102 alertOverlay.setValues( |
| 103 str('packExtensionOverlay'), |
| 104 response.message, |
| 105 str('ok'), |
| 106 '', |
| 107 hideOverlay, |
| 108 null); |
| 109 AppsDevTool.showOverlay($('alertOverlay')); |
| 110 }; |
| 111 |
| 112 /** |
| 113 * An alert overlay showing |message|, and upon acknowledgement, close |
| 114 * the alert overlay and return to showing the PackItemOverlay. |
| 115 * @param {string} message The message to show to the user. |
| 116 */ |
| 117 PackItemOverlay.showError = function(response) { |
| 118 alertOverlay.setValues( |
| 119 str('packExtensionErrorTitle'), |
| 120 response.message /* message returned by the packiing api */, |
| 121 str('ok'), |
| 122 '', |
| 123 function() { |
| 124 AppsDevTool.showOverlay($('packItemOverlay')); |
| 125 }, |
| 126 null); |
| 127 AppsDevTool.showOverlay($('alertOverlay')); |
| 128 }; |
| 129 |
| 130 /** |
| 131 * An alert overlay showing |message| as warning and proceeding after the |
| 132 * user confirms the action. |
| 133 */ |
| 134 PackItemOverlay.showWarningMessage = function(response) { |
| 135 var closeAlert = function() { |
| 136 hideOverlay(); |
| 137 }; |
| 138 |
| 139 alertOverlay.setValues( |
| 140 str('packExtensionWarningTitle'), |
| 141 response.message /* message returned by the packing api */, |
| 142 str('packExtensionProceedAnyway'), |
| 143 str('cancel'), |
| 144 function() { |
| 145 chrome.developerPrivate.packDirectory( |
| 146 response.item_path, |
| 147 response.pem_path, |
| 148 response.override_flags, |
| 149 PackItemOverlay.showSuccessMessage); |
| 150 closeAlert(); |
| 151 }, |
| 152 closeAlert()); |
| 153 AppsDevTool.showOverlay($('alertOverlay')); |
| 154 }; |
| 155 |
| 156 // Export |
| 157 return { |
| 158 PackItemOverlay: PackItemOverlay, |
| 159 }; |
| 160 }); |
OLD | NEW |