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,