From e171624fbd405e487cee08a03865f9054076b01c Mon Sep 17 00:00:00 2001 From: Chaim Lev-Ari Date: Sun, 7 Oct 2018 11:30:22 +0300 Subject: [PATCH] feat(node-browser): moved uploader into browser --- .../file-uploader/file-uploader-controller.js | 25 +++++++------- .../file-uploader/file-uploader.html | 25 +++----------- .../components/file-uploader/file-uploader.js | 2 +- .../files-datatable/files-datatable.html | 33 +++++++++++-------- .../files-datatable/files-datatable.js | 5 ++- .../host-browser/host-browser-controller.js | 19 +++++++++++ .../components/host-browser/host-browser.html | 9 +++-- .../nodes/node-browser/node-browser.html | 8 ----- 8 files changed, 67 insertions(+), 59 deletions(-) diff --git a/app/agent/components/file-uploader/file-uploader-controller.js b/app/agent/components/file-uploader/file-uploader-controller.js index 3afd1230f..db26c7a96 100644 --- a/app/agent/components/file-uploader/file-uploader-controller.js +++ b/app/agent/components/file-uploader/file-uploader-controller.js @@ -1,26 +1,23 @@ angular.module('portainer.agent').controller('FileUploaderController', [ - 'HostBrowserService', 'Notifications', - function FileUploaderController(HostBrowserService, Notifications) { + '$q', + function FileUploaderController($q) { var ctrl = this; ctrl.state = { uploadInProgress: false }; - ctrl.uploadFile = uploadFile; + ctrl.onFileSelected = onFileSelected; - function uploadFile() { + function onFileSelected(file) { + if (!file) { + return; + } + ctrl.state.uploadInProgress = true; - HostBrowserService.upload('/', ctrl.file) - .then(function onFileUpload() { - ctrl.onFileUploaded(); - }) - .catch(function onFileUpload(err) { - Notifications.error('Failure', err, 'Unable to upload file'); - }) - .finally(function toggleUploadProgress() { - ctrl.state.uploadInProgress = false; - }); + $q.when(ctrl.uploadFile(file)).finally(function toggleProgress() { + ctrl.state.uploadInProgress = false; + }); } } ]); diff --git a/app/agent/components/file-uploader/file-uploader.html b/app/agent/components/file-uploader/file-uploader.html index a86a17ed2..c2a5ffe44 100644 --- a/app/agent/components/file-uploader/file-uploader.html +++ b/app/agent/components/file-uploader/file-uploader.html @@ -1,20 +1,5 @@ - - - - -
- - - {{ $ctrl.file.name }} - - - -
-
-
\ No newline at end of file + diff --git a/app/agent/components/file-uploader/file-uploader.js b/app/agent/components/file-uploader/file-uploader.js index a03b406e0..58ba7b04b 100644 --- a/app/agent/components/file-uploader/file-uploader.js +++ b/app/agent/components/file-uploader/file-uploader.js @@ -2,6 +2,6 @@ angular.module('portainer.agent').component('fileUploader', { templateUrl: 'app/agent/components/file-uploader/file-uploader.html', controller: 'FileUploaderController', bindings: { - onFileUploaded: '<' + uploadFile: ' + + + + -
-
- {{ $ctrl.titleText }} -
-
@@ -43,21 +43,27 @@ @@ -65,7 +71,8 @@ {{ item.ModTime | getisodatefromtimestamp }}
- Go to parent + Go + to parent
- + - + - {{ item.Name }} + {{ item.Name }} - {{ item.Name }} + {{ + item.Name }} {{ item.Size | humansize }} - + Download @@ -87,4 +94,4 @@ - + \ No newline at end of file diff --git a/app/agent/components/files-datatable/files-datatable.js b/app/agent/components/files-datatable/files-datatable.js index 589ce848f..4e90e1d00 100644 --- a/app/agent/components/files-datatable/files-datatable.js +++ b/app/agent/components/files-datatable/files-datatable.js @@ -14,6 +14,9 @@ angular.module('portainer.agent').component('filesDatatable', { browse: '&', rename: '&', download: '&', - delete: '&' + delete: '&', + + isUploadAllowed: '<', + onFileSelectedForUpload: '<' } }); diff --git a/app/agent/components/host-browser/host-browser-controller.js b/app/agent/components/host-browser/host-browser-controller.js index 6734f826b..7ff2943f5 100644 --- a/app/agent/components/host-browser/host-browser-controller.js +++ b/app/agent/components/host-browser/host-browser-controller.js @@ -12,6 +12,7 @@ angular.module('portainer.agent').controller('HostBrowserController', [ ctrl.downloadFile = downloadFile; ctrl.deleteFile = confirmDeleteFile; ctrl.isRoot = isRoot; + ctrl.onFileSelectedForUpload = onFileSelectedForUpload; ctrl.$onInit = $onInit; function goToParent() { @@ -118,5 +119,23 @@ angular.module('portainer.agent').controller('HostBrowserController', [ } return parent + '/' + file; } + + function onFileSelectedForUpload(file) { + HostBrowserService.upload(ctrl.state.path, file) + .then(function onFileUpload() { + onFileUploaded(); + }) + .catch(function onFileUpload(err) { + Notifications.error('Failure', err, 'Unable to upload file'); + }); + } + + function onFileUploaded() { + refreshList(); + } + + function refreshList() { + getFilesForPath(ctrl.state.path); + } } ]); diff --git a/app/agent/components/host-browser/host-browser.html b/app/agent/components/host-browser/host-browser.html index 863052557..3209e2c6b 100644 --- a/app/agent/components/host-browser/host-browser.html +++ b/app/agent/components/host-browser/host-browser.html @@ -1,5 +1,5 @@ + + is-upload-allowed="true" + on-file-selected-for-upload="$ctrl.onFileSelectedForUpload" +> + + diff --git a/app/docker/views/nodes/node-browser/node-browser.html b/app/docker/views/nodes/node-browser/node-browser.html index 6db00486e..4ca1d8199 100644 --- a/app/docker/views/nodes/node-browser/node-browser.html +++ b/app/docker/views/nodes/node-browser/node-browser.html @@ -5,14 +5,6 @@ -
-
- -
-
-