diff --git a/src/views/app.html b/src/views/app.html index 1bea4162f..4e0edad7f 100644 --- a/src/views/app.html +++ b/src/views/app.html @@ -623,12 +623,13 @@
{{ 'app.displayTabTitle' | tr }}
{{ 'app.locationTabTitle' | tr }}
{{ 'app.accessControlTabTitle' | tr }}
-
{{ 'app.resourcesTabTitle' | tr }}
-
{{ 'app.storageTabTitle' | tr }}
-
{{ 'app.graphsTabTitle' | tr }}
+
{{ 'app.resourcesTabTitle' | tr }}
+
{{ 'app.storageTabTitle' | tr }}
+
{{ 'app.graphsTabTitle' | tr }}
+
Proxy
{{ 'app.securityTabTitle' | tr }}
-
{{ 'app.emailTabTitle' | tr }}
-
{{ 'app.cronTabTitle' | tr }}
+
{{ 'app.emailTabTitle' | tr }}
+
{{ 'app.cronTabTitle' | tr }}
{{ 'app.updatesTabTitle' | tr }}
{{ 'app.backupsTabTitle' | tr }}
{{ 'app.repairTabTitle' | tr }}
@@ -1222,6 +1223,29 @@ +
+
+
+
+
+ + +
+ + +
+
+
+
+
+
+ +
+
+
+
@@ -1244,7 +1268,7 @@
-
diff --git a/src/views/app.js b/src/views/app.js index f693c7de1..889b79731 100644 --- a/src/views/app.js +++ b/src/views/app.js @@ -162,6 +162,10 @@ angular.module('Application').controller('AppController', ['$scope', '$location' $scope.view = view; }; + $scope.isProxyApp = function (app) { + return app.manifest.id === 'io.cloudron.builtin.appproxy'; + }; + $scope.stopAppTask = function (taskId) { Client.stopTask(taskId, function (error) { // we can ignore a call trying to cancel an already done task @@ -1132,6 +1136,33 @@ angular.module('Application').controller('AppController', ['$scope', '$location' } }; + $scope.proxy = { + busy: false, + error: {}, + success: false, + + upstreamUri: '', + + show: function () { + $scope.proxy.error = {}; + $scope.proxy.upstreamUri = $scope.app.upstreamUri || ''; + }, + + submit: function () { + $scope.proxy.busy = true; + $scope.proxy.error = {}; + + Client.configureApp($scope.app.id, 'upstream_uri', { upstreamUri: $scope.proxy.upstreamUri }, function (error) { + if (error) return Client.error(error); + + $timeout(function () { + $scope.proxy.success = true; + $scope.proxy.busy = false; + }, 1000); + }); + } + }; + $scope.updates = { busy: false, busyCheck: false,