mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-18 23:27:26 +01:00
Group managers (#8591)
* Added abiltiy to add group managers * Added ability to remove managers * Added ability for managers to add group tasks * Allower managers to assign tasks * Allowed managers to unassign tasks * Allow managers to delete group tasks * Allowed managers to approve * Added initial ui * Added approval view for managers * Allowed managers to edit * Fixed lint issues * Added spacing to buttons * Removed leader from selection of group managers * Code review updates * Ensured approvals are only done once * Added ability for parties to add managers * Add notifications to all managers when approval is requests * Removed tasks need approval notifications from all managers when task is approve * Fixed linting issues * Hid add managers UI from groups that are not subscribed * Removed let from front end * Fixed issues with post task url params * Fixed string locales * Removed extra limited strings * Added cannotedit tasks function * Added limit fields and notification check by taskId * Localized string and other minor issues * Added manager and leader indicator * Added group notifications refresh on sync * Added close button for group notifications * Removed group approval notifications when manager is removed * Moved leader/manager indicators to after hp * Added manager fields to groups * Spelling and syntax fixes
This commit is contained in:
@@ -128,5 +128,37 @@ habitrpg.controller("GroupsCtrl", ['$scope', '$rootScope', 'Shared', 'Groups', '
|
||||
.then(function (response) {
|
||||
$rootScope.openModal('private-message', {controller: 'MemberModalCtrl'});
|
||||
});
|
||||
};
|
||||
|
||||
$scope.memberProfileName = function (memberId) {
|
||||
var member = _.find($scope.groupCopy.members, function (member) { return member._id === memberId; });
|
||||
return member.profile.name;
|
||||
};
|
||||
|
||||
$scope.addManager = function () {
|
||||
Groups.Group.addManager($scope.groupCopy._id, $scope.groupCopy._newManager)
|
||||
.then(function (response) {
|
||||
$scope.groupCopy._newManager = '';
|
||||
$scope.groupCopy.managers = response.data.data.managers;
|
||||
});
|
||||
};
|
||||
|
||||
$scope.removeManager = function (memberId) {
|
||||
Groups.Group.removeManager($scope.groupCopy._id, memberId)
|
||||
.then(function (response) {
|
||||
$scope.groupCopy._newManager = '';
|
||||
$scope.groupCopy.managers = response.data.data.managers;
|
||||
});
|
||||
};
|
||||
|
||||
$scope.isManager = function (memberId, group) {
|
||||
return Boolean(group.managers[memberId]);
|
||||
}
|
||||
|
||||
$scope.userCanApprove = function (userId, group) {
|
||||
if (!group) return false;
|
||||
var leader = group.leader._id === userId;
|
||||
var userIsManager = !!group.managers[userId];
|
||||
return leader || userIsManager;
|
||||
};
|
||||
}]);
|
||||
|
||||
Reference in New Issue
Block a user