diff --git a/webadmin/src/index.html b/webadmin/src/index.html
index 81cd8ac77..5e74c5186 100644
--- a/webadmin/src/index.html
+++ b/webadmin/src/index.html
@@ -150,6 +150,52 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/webadmin/src/js/main.js b/webadmin/src/js/main.js
index de979a851..5aee35068 100644
--- a/webadmin/src/js/main.js
+++ b/webadmin/src/js/main.js
@@ -101,6 +101,63 @@ angular.module('Application').controller('MainController', ['$scope', '$route',
});
};
+ $scope.appstoreLogin = {
+ busy: false,
+ error: {},
+ email: '',
+ password: '',
+
+ reset: function () {
+ $scope.appstoreLogin.busy = false;
+ $scope.appstoreLogin.error = {};
+ $scope.appstoreLogin.email = '';
+ $scope.appstoreLogin.password = '';
+
+ $scope.appstoreLoginForm.$setUntouched();
+ $scope.appstoreLoginForm.$setPristine();
+ },
+
+ show: function () {
+ $scope.appstoreLogin.reset();
+ $('#appstoreLoginModal').modal('show');
+ },
+
+ submit: function () {
+ $scope.appstoreLogin.error = {};
+ $scope.appstoreLogin.busy = true;
+
+ AppStore.login($scope.appstoreLogin.email, $scope.appstoreLogin.password, function (error, result) {
+
+ if (error) {
+ $scope.appstoreLogin.busy = false;
+
+ if (error.statusCode === 403) {
+ $scope.appstoreLogin.error.password = 'Wrong email or password';
+ $scope.appstoreLogin.password = '';
+ $('#inputAppstoreLoginPassword').focus();
+ $scope.appstoreLoginForm.password.$setPristine();
+ } else {
+ console.error(error);
+ }
+
+ return;
+ }
+
+ var config = {
+ userId: result.userId,
+ token: result.accessToken
+ };
+
+ Client.setAppstoreConfig(config, function (error) {
+ if (error) return console.error(error);
+
+ $scope.appstoreLogin.reset();
+ $('#appstoreLoginModal').modal('hide');
+ });
+ });
+ }
+ };
+
Client.getStatus(function (error, status) {
if (error) return $scope.error(error);
@@ -236,10 +293,10 @@ angular.module('Application').controller('MainController', ['$scope', '$route',
}
});
- Client.onRead(checkAppstoreAccount);
+ Client.onReady(checkAppstoreAccount);
// setup all the dialog focus handling
- ['updateModal'].forEach(function (id) {
+ ['updateModal', 'appstoreLoginModal'].forEach(function (id) {
$('#' + id).on('shown.bs.modal', function () {
$(this).find("[autofocus]:first").focus();
});
diff --git a/webadmin/src/views/settings.html b/webadmin/src/views/settings.html
index b4904c701..6211b3f64 100644
--- a/webadmin/src/views/settings.html
+++ b/webadmin/src/views/settings.html
@@ -111,52 +111,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-