From ce323ca60a6c2d883dbfe6ca24eca4d83a10275f Mon Sep 17 00:00:00 2001 From: Girish Ramakrishnan Date: Mon, 27 Sep 2021 15:32:44 -0700 Subject: [PATCH] app: add cron section part of cloudron/box#793 --- src/translation/en.json | 7 ++++++- src/views/app.html | 25 +++++++++++++++++++++++++ src/views/app.js | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 63 insertions(+), 1 deletion(-) diff --git a/src/translation/en.json b/src/translation/en.json index fef97e09b..f8135be8a 100644 --- a/src/translation/en.json +++ b/src/translation/en.json @@ -1453,7 +1453,12 @@ "title": "Really stop app {{ app }}?" }, "eventlogTabTitle": "Event Log", - "sftpInfoAction": "SFTP Access" + "sftpInfoAction": "SFTP Access", + "cronTabTitle": "Cron", + "cron": { + "title": "Crontab", + "saveAction": "Save" + } }, "login": { "loginTo": "Login to", diff --git a/src/views/app.html b/src/views/app.html index 8648f7fe8..2337b9a7f 100644 --- a/src/views/app.html +++ b/src/views/app.html @@ -562,6 +562,7 @@
{{ 'app.graphsTabTitle' | tr }}
{{ 'app.securityTabTitle' | tr }}
{{ 'app.emailTabTitle' | tr }}
+
{{ 'app.cronTabTitle' | tr }}
{{ 'app.eventlogTabTitle' | tr }}
{{ 'app.updatesTabTitle' | tr }}
{{ 'app.backupsTabTitle' | tr }}
@@ -1009,6 +1010,30 @@ +
+
+
+
+
+ +
{{ cron.error.crontab }}
+ +
+ + +
+
+
+
+
+
+ +
+
+
+
diff --git a/src/views/app.js b/src/views/app.js index 18a19a308..07f1b8525 100644 --- a/src/views/app.js +++ b/src/views/app.js @@ -899,6 +899,38 @@ angular.module('Application').controller('AppController', ['$scope', '$location' } }; + $scope.cron = { + busy: false, + error: {}, + + crontab: '', + + show: function () { + $scope.cronForm.$setPristine(); + $scope.cron.error = {}; + $scope.cron.crontab = $scope.app.crontab; + }, + + submit: function () { + $scope.cron.error = {}; + $scope.cron.busy = true; + + Client.configureApp($scope.app.id, 'cron', { crontab: $scope.cron.crontab }, function (error) { + if (error && error.statusCode === 400) { + $scope.cron.busy = false; + $scope.cron.error.crontab = error.message; + $scope.cronForm.$setPristine(); + return; + } + if (error) return Client.error(error); + + $scope.cronForm.$setPristine(); + + $timeout(function () { $scope.cron.busy = false; }, 1000); + }); + } + }; + $scope.security = { busy: false, error: {},