diff --git a/webadmin/src/views/account.html b/webadmin/src/views/account.html
index 3fb4b1953..33659c1b0 100644
--- a/webadmin/src/views/account.html
+++ b/webadmin/src/views/account.html
@@ -99,6 +99,49 @@
+
+
diff --git a/webadmin/src/views/account.js b/webadmin/src/views/account.js
index d82e5e7c0..fc1062a32 100644
--- a/webadmin/src/views/account.js
+++ b/webadmin/src/views/account.js
@@ -156,6 +156,54 @@ angular.module('Application').controller('AccountController', ['$scope', '$locat
}
};
+ $scope.clientAdd = {
+ busy: false,
+ error: {},
+ name: '',
+ scope: '',
+ redirectURI: '',
+
+ show: function () {
+ $scope.clientAdd.busy = false;
+
+ $scope.clientAdd.error = {};
+ $scope.clientAdd.name = '';
+ $scope.clientAdd.scope = '*';
+ $scope.clientAdd.redirectURI = '';
+
+ $scope.clientAddForm.$setUntouched();
+ $scope.clientAddForm.$setPristine();
+
+ $('#clientAddModal').modal('show');
+ },
+
+ submit: function () {
+ $scope.groupAdd.busy = true;
+ $scope.groupAdd.error = {};
+
+ Client.createGroup($scope.groupAdd.name, function (error) {
+ $scope.groupAdd.busy = false;
+
+ if (error && error.statusCode === 409) {
+ $scope.groupAdd.error.name = 'Name already taken';
+ $scope.groupAddForm.name.$setPristine();
+ $('#groupAddName').focus();
+ return;
+ }
+ if (error && error.statusCode === 400) {
+ $scope.groupAdd.error.name = error.message;
+ $scope.groupAddForm.name.$setPristine();
+ $('#groupAddName').focus();
+ return;
+ }
+ if (error) return console.error('Unable to create group.', error.statusCode, error.message);
+
+ refresh();
+ $('#groupAddModal').modal('hide');
+ });
+ }
+ };
+
$scope.removeAccessTokens = function (client) {
client.busy = true;