diff --git a/src/views/apps.html b/src/views/apps.html
index 7585e0499..8553edd18 100644
--- a/src/views/apps.html
+++ b/src/views/apps.html
@@ -469,7 +469,7 @@
@@ -565,7 +565,7 @@
-
+
diff --git a/src/views/apps.js b/src/views/apps.js
index 8aaf24159..ddf9c973d 100644
--- a/src/views/apps.js
+++ b/src/views/apps.js
@@ -278,7 +278,33 @@ angular.module('Application').controller('AppsController', ['$scope', '$location
$scope.appUninstall = {
busy: false,
error: {},
- app: {}
+ app: {},
+
+ show: function (app) {
+ $scope.reset();
+
+ $scope.appUninstall.app = app;
+
+ $('#appUninstallModal').modal('show');
+ },
+
+ submit: function () {
+ $scope.appUninstall.busy = true;
+
+ Client.uninstallApp($scope.appUninstall.app.id, function (error) {
+ if (error && error.statusCode === 402) { // unpurchase failed
+ Client.error('Relogin to Cloudron App Store');
+ } else if (error) {
+ Client.error(error);
+ } else {
+ $('#appUninstallModal').modal('hide');
+ Client.refreshAppCache($scope.appUninstall.app.id); // reflect the new app state immediately
+ $scope.reset();
+ }
+
+ $scope.appUninstall.busy = false;
+ });
+ }
};
$scope.appClone = {
@@ -583,32 +609,6 @@ angular.module('Application').controller('AppsController', ['$scope', '$location
return false; // prevent propagation and default
};
- $scope.showUninstall = function (app) {
- $scope.reset();
-
- $scope.appUninstall.app = app;
-
- $('#appUninstallModal').modal('show');
- };
-
- $scope.doUninstall = function () {
- $scope.appUninstall.busy = true;
-
- Client.uninstallApp($scope.appUninstall.app.id, function (error) {
- if (error && error.statusCode === 402) { // unpurchase failed
- Client.error('Relogin to Cloudron App Store');
- } else if (error) {
- Client.error(error);
- } else {
- $('#appUninstallModal').modal('hide');
- Client.refreshAppCache($scope.appUninstall.app.id); // reflect the new app state immediately
- $scope.reset();
- }
-
- $scope.appUninstall.busy = false;
- });
- };
-
$scope.showUpdate = function (app, updateManifest) {
$scope.reset();