Add MemberManage dashboard
This commit is contained in:
@@ -0,0 +1,149 @@
|
||||
/**
|
||||
* @ngdoc controller
|
||||
* @name MemberManager.Dialogs.Member.EditController
|
||||
* @function
|
||||
*
|
||||
* @description
|
||||
* The controller for the member editor
|
||||
*
|
||||
* @param {any} $scope Scope
|
||||
* @param {any} $routeParams Route Parameters
|
||||
* @param {any} $q Queue
|
||||
* @param {any} memberResource Member Resource
|
||||
* @param {any} entityResource Entity Resource
|
||||
* @param {any} serverValidationManager Server Validation Manager
|
||||
* @param {any} contentEditingHelper Content Editing Helper
|
||||
* @param {any} fileManager File Manager
|
||||
* @param {any} formHelper Form Helper
|
||||
*/
|
||||
function MemberEditDialogController($scope, $routeParams, $q, memberResource, entityResource, serverValidationManager, contentEditingHelper, fileManager, formHelper) {
|
||||
//setup scope vars
|
||||
$scope.model = {};
|
||||
$scope.model.defaultButton = null;
|
||||
$scope.model.subButtons = [];
|
||||
$scope.model.nodeId = 0;
|
||||
$scope.loaded = false;
|
||||
|
||||
var dialogOptions = $scope.$parent.dialogOptions;
|
||||
|
||||
function performGet() {
|
||||
var deferred = $q.defer();
|
||||
if (angular.isObject(dialogOptions.entity)) {
|
||||
$scope.loaded = true;
|
||||
deferred.resolve(dialogOptions.entity);
|
||||
} else {
|
||||
if (dialogOptions.create) {
|
||||
//we are creating so get an empty member item
|
||||
memberResource.getScaffold(dialogOptions.contentType)
|
||||
.then(function (data) {
|
||||
|
||||
$scope.loaded = true;
|
||||
deferred.resolve(data);
|
||||
});
|
||||
}
|
||||
else {
|
||||
if (dialogOptions.key && dialogOptions.key.toString().length < 9) {
|
||||
entityResource.getById(dialogOptions.key, "Member").then(function (entity) {
|
||||
memberResource.getByKey(entity.key).then(function (data) {
|
||||
|
||||
//in one particular special case, after we've created a new item we redirect back to the edit
|
||||
// route but there might be server validation errors in the collection which we need to display
|
||||
// after the redirect, so we will bind all subscriptions which will show the server validation errors
|
||||
// if there are any and then clear them so the collection no longer persists them.
|
||||
serverValidationManager.executeAndClearAllSubscriptions();
|
||||
$scope.loaded = true;
|
||||
|
||||
deferred.resolve(data);
|
||||
});
|
||||
});
|
||||
}
|
||||
else {
|
||||
//we are editing so get the content item from the server
|
||||
memberResource.getByKey(dialogOptions.key)
|
||||
.then(function (data) {
|
||||
|
||||
$scope.loaded = true;
|
||||
|
||||
//in one particular special case, after we've created a new item we redirect back to the edit
|
||||
// route but there might be server validation errors in the collection which we need to display
|
||||
// after the redirect, so we will bind all subscriptions which will show the server validation errors
|
||||
// if there are any and then clear them so the collection no longer persists them.
|
||||
serverValidationManager.executeAndClearAllSubscriptions();
|
||||
|
||||
deferred.resolve(data);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return deferred.promise;
|
||||
}
|
||||
|
||||
function performSave(args) {
|
||||
var deferred = $q.defer();
|
||||
|
||||
$scope.busy = true;
|
||||
|
||||
if (formHelper.submitForm({ scope: $scope, statusMessage: args.statusMessage })) {
|
||||
|
||||
$scope.busy = true;
|
||||
|
||||
args.saveMethod($scope.model.entity, $routeParams.create, fileManager.getFiles())
|
||||
.then(function (data) {
|
||||
|
||||
formHelper.resetForm({ scope: $scope, notifications: data.notifications });
|
||||
|
||||
contentEditingHelper.handleSuccessfulSave({
|
||||
scope: $scope,
|
||||
savedContent: data,
|
||||
rebindCallback: contentEditingHelper.reBindChangedProperties($scope.model.entity, data)
|
||||
});
|
||||
|
||||
$scope.busy = false;
|
||||
deferred.resolve(data);
|
||||
|
||||
}, function (err) {
|
||||
|
||||
contentEditingHelper.handleSaveError({
|
||||
redirectOnFailure: false,
|
||||
err: err,
|
||||
rebindCallback: contentEditingHelper.reBindChangedProperties($scope.model.entity, err.data)
|
||||
});
|
||||
|
||||
$scope.busy = false;
|
||||
deferred.reject(err);
|
||||
});
|
||||
} else {
|
||||
$scope.busy = false;
|
||||
deferred.reject();
|
||||
}
|
||||
|
||||
return deferred.promise;
|
||||
}
|
||||
|
||||
performGet().then(function (content) {
|
||||
$scope.model.entity = $scope.filterTabs(content, dialogOptions.tabFilter);
|
||||
});
|
||||
|
||||
$scope.filterTabs = function (entity, blackList) {
|
||||
if (blackList) {
|
||||
_.each(entity.tabs, function (tab) {
|
||||
tab.hide = _.contains(blackList, tab.alias);
|
||||
});
|
||||
}
|
||||
|
||||
return entity;
|
||||
};
|
||||
|
||||
$scope.save = function () {
|
||||
performSave({ saveMethod: memberResource.save, statusMessage: "Saving..." })
|
||||
.then(function (content) {
|
||||
if (dialogOptions.closeOnSave) {
|
||||
$scope.submit(content);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
angular.module("umbraco").controller("MemberManager.Dialogs.Member.EditController", MemberEditDialogController);
|
||||
Reference in New Issue
Block a user