angular requires special treatment for DELETE

This commit is contained in:
Johannes Zellner
2016-02-10 17:12:58 +01:00
parent 94bd0c606b
commit 820e417026
3 changed files with 19 additions and 1 deletions

View File

@@ -417,6 +417,17 @@ angular.module('Application').service('Client', ['$http', 'md5', 'Notification',
}).error(defaultErrorHandler(callback));
};
Client.prototype.removeGroup = function (groupId, password, callback) {
var data = {
password: password
};
$http({ method: 'DELETE', url: client.apiOrigin + '/api/v1/groups/' + groupId, data: data, headers: { 'Content-Type': 'application/json' }}).success(function(data, status) {
if (status !== 204) return callback(new ClientError(status, data));
callback(null, data);
}).error(defaultErrorHandler(callback));
};
Client.prototype.getNonApprovedApps = function (callback) {
if (!this._config.developerMode) return callback(null, []);

View File

@@ -194,7 +194,7 @@
<small ng-show="groupRemoveForm.password.$error.required && !groupRemove.error.password">A password is required</small>
<small ng-show="!groupRemoveForm.password.$dirty && groupRemove.error.password">{{ groupRemove.error.password }}</small>
</div>
<input type="password" class="form-control" ng-model="groupRemove.password" id="groupRemovePasswordInput" name="password" placeholder="Password" required>
<input type="password" class="form-control" ng-model="groupRemove.password" id="groupRemovePasswordInput" name="password" placeholder="Password" required autofocus>
</div>
<input class="hide" type="submit" ng-disabled="groupRemoveForm.$invalid || groupRemove.busy"/>
</form>

View File

@@ -100,6 +100,13 @@ angular.module('Application').controller('UsersController', ['$scope', '$locatio
Client.removeGroup($scope.groupRemove.group.id, $scope.groupRemove.password, function (error) {
$scope.groupRemove.busy = false;
if (error && error.statusCode === 403) {
$scope.groupRemove.error.password = 'Wrong password';
$scope.groupRemove.password = '';
$scope.groupRemoveForm.password.$setPristine();
$('#groupRemovePasswordInput').focus();
return;
}
if (error) return console.error('Unable to remove group.', error.statusCode, error.message);
refresh();