diff --git a/app/agent/components/file-uploader/file-uploader-controller.js b/app/agent/components/file-uploader/file-uploader-controller.js
index a537088b0..3afd1230f 100644
--- a/app/agent/components/file-uploader/file-uploader-controller.js
+++ b/app/agent/components/file-uploader/file-uploader-controller.js
@@ -1,4 +1,26 @@
-angular.module('portainer.agent')
-.controller('FileUploaderController', [function FileUploaderController(){
-
-}]);
+angular.module('portainer.agent').controller('FileUploaderController', [
+ 'HostBrowserService', 'Notifications',
+ function FileUploaderController(HostBrowserService, Notifications) {
+ var ctrl = this;
+
+ ctrl.state = {
+ uploadInProgress: false
+ };
+
+ ctrl.uploadFile = uploadFile;
+
+ function uploadFile() {
+ 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;
+ });
+ }
+ }
+]);
diff --git a/app/agent/components/file-uploader/file-uploader.html b/app/agent/components/file-uploader/file-uploader.html
index afb899e00..a86a17ed2 100644
--- a/app/agent/components/file-uploader/file-uploader.html
+++ b/app/agent/components/file-uploader/file-uploader.html
@@ -1,7 +1,20 @@
-
-
+
+
+
+
+ {{ $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 d0ec1a189..a03b406e0 100644
--- a/app/agent/components/file-uploader/file-uploader.js
+++ b/app/agent/components/file-uploader/file-uploader.js
@@ -1,4 +1,7 @@
angular.module('portainer.agent').component('fileUploader', {
templateUrl: 'app/agent/components/file-uploader/file-uploader.html',
- controller: 'FileUploaderController'
+ controller: 'FileUploaderController',
+ bindings: {
+ onFileUploaded: '<'
+ }
});
diff --git a/app/agent/services/hostBrowserService.js b/app/agent/services/hostBrowserService.js
index 81c2cfc94..935d34be4 100644
--- a/app/agent/services/hostBrowserService.js
+++ b/app/agent/services/hostBrowserService.js
@@ -1,12 +1,13 @@
angular.module('portainer.agent').factory('HostBrowserService', [
- 'Browse',
- function HostBrowserServiceFactory(Browse) {
+ 'Browse', 'Upload', 'API_ENDPOINT_ENDPOINTS', 'EndpointProvider', '$q',
+ function HostBrowserServiceFactory(Browse, Upload, API_ENDPOINT_ENDPOINTS, EndpointProvider, $q) {
var service = {};
service.ls = ls;
service.get = get;
service.delete = deletePath;
service.rename = rename;
+ service.upload = upload;
function ls(path) {
return Browse.ls({ path: path }).$promise;
@@ -28,6 +29,16 @@ angular.module('portainer.agent').factory('HostBrowserService', [
return Browse.rename({}, payload).$promise;
}
+ function upload(path, file, onProgress) {
+ var deferred = $q.defer();
+ var url = API_ENDPOINT_ENDPOINTS + '/' + EndpointProvider.endpointID() + '/docker/browse/put';
+ Upload.upload({
+ url: url,
+ data: { file: file, Path: path }
+ }).then(deferred.resolve, deferred.reject, onProgress);
+ return deferred.promise;
+ }
+
return service;
}
]);
diff --git a/app/docker/views/nodes/node-browser/node-browser-controller.js b/app/docker/views/nodes/node-browser/node-browser-controller.js
index cd0706371..bc4481c94 100644
--- a/app/docker/views/nodes/node-browser/node-browser-controller.js
+++ b/app/docker/views/nodes/node-browser/node-browser-controller.js
@@ -5,14 +5,26 @@ angular.module('portainer.docker').controller('NodeBrowserController', [
function NodeBrowserController(NodeService, HttpRequestHelper, $stateParams) {
var ctrl = this;
+
+ ctrl.refreshList = refreshList;
ctrl.$onInit = $onInit;
function $onInit() {
ctrl.nodeId = $stateParams.id;
+ loadNode();
+ }
+
+ function loadNode() {
NodeService.node(ctrl.nodeId).then(function onNodeLoaded(node) {
HttpRequestHelper.setPortainerAgentTargetHeader(node.Hostname);
ctrl.node = node;
});
}
+
+ function refreshList() {
+
+ }
+
+
}
]);
diff --git a/app/docker/views/nodes/node-browser/node-browser.html b/app/docker/views/nodes/node-browser/node-browser.html
index cef6d5872..6db00486e 100644
--- a/app/docker/views/nodes/node-browser/node-browser.html
+++ b/app/docker/views/nodes/node-browser/node-browser.html
@@ -7,7 +7,9 @@