| // Copyright 2018 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| /** |
| * @fileoverview 'settings-add-smb-share-dialog' is a component for adding |
| * an SMB Share. |
| */ |
| Polymer({ |
| is: 'settings-add-smb-share-dialog', |
| |
| behaviors: [WebUIListenerBehavior], |
| |
| properties: { |
| /** @private {string} */ |
| mountUrl_: String, |
| |
| /** @private {string} */ |
| mountName_: String, |
| |
| /** @private {string} */ |
| username_: String, |
| |
| /** @private {string} */ |
| password_: String, |
| |
| /** @private {!Array<string>}*/ |
| discoveredShares_: { |
| type: Array, |
| value: function() { |
| return []; |
| }, |
| }, |
| }, |
| |
| /** @private {?settings.SmbBrowserProxy} */ |
| browserProxy_: null, |
| |
| /** @override */ |
| created: function() { |
| this.browserProxy_ = settings.SmbBrowserProxyImpl.getInstance(); |
| }, |
| |
| /** @override */ |
| attached: function() { |
| this.browserProxy_.startDiscovery(); |
| this.$.dialog.showModal(); |
| |
| this.addWebUIListener('on-shares-found', this.onSharesFound_.bind(this)); |
| }, |
| |
| /** @private */ |
| cancel_: function() { |
| this.$.dialog.cancel(); |
| }, |
| |
| /** @private */ |
| onAddButtonTap_: function() { |
| this.browserProxy_.smbMount( |
| this.mountUrl_, this.mountName_.trim(), this.username_, this.password_); |
| this.$.dialog.close(); |
| }, |
| |
| /** |
| * @return {boolean} |
| * @private |
| */ |
| canAddShare_: function() { |
| return !!this.mountUrl_; |
| }, |
| |
| /** |
| * @param {!Array<string>} shares |
| * @private |
| */ |
| onSharesFound_: function(shares) { |
| this.discoveredShares_ = this.discoveredShares_.concat(shares); |
| }, |
| |
| }); |