mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-17 06:37:23 +01:00
Group approval ui (#8184)
* Added all ui components back * Added group ui items back and initial group approval directive * Added ability to mark tasks as requires approval. Added approvals ctrl. Added get approvals method to tasks service * Added approval list view with approving functionality * Added error to produce message when task requests approval * Added notification display for group approvals * Fixed notification read and adding task * Fixed syncing with group approval required * Added group id to notifications for redirect on client side * Fixed approval request tests * Fixed linting issues * Removed expectation from beforeEach * Moved string to locale * Added eslint ignore * Updated notification for group approved, added new icons, and updated styles * Hid group plan ui
This commit is contained in:
committed by
Matteo Pagliazzi
parent
3ff7692528
commit
13df60e0dd
@@ -1,15 +1,15 @@
|
||||
'use strict';
|
||||
|
||||
angular.module('habitrpg')
|
||||
.controller('MenuCtrl', ['$scope', '$rootScope', '$http', 'Chat', 'Content',
|
||||
function($scope, $rootScope, $http, Chat, Content) {
|
||||
.controller('MenuCtrl', ['$scope', '$rootScope', '$http', 'Chat', 'Content', 'User', '$state',
|
||||
function($scope, $rootScope, $http, Chat, Content, User, $state) {
|
||||
|
||||
$scope.logout = function() {
|
||||
localStorage.clear();
|
||||
window.location.href = '/logout';
|
||||
};
|
||||
|
||||
function selectNotificationValue(mysteryValue, invitationValue, cardValue, unallocatedValue, messageValue, noneValue) {
|
||||
function selectNotificationValue(mysteryValue, invitationValue, cardValue, unallocatedValue, messageValue, noneValue, groupApprovalRequested, groupApproved) {
|
||||
var user = $scope.user;
|
||||
if (user.purchased && user.purchased.plan && user.purchased.plan.mysteryItems && user.purchased.plan.mysteryItems.length) {
|
||||
return mysteryValue;
|
||||
@@ -21,6 +21,14 @@ angular.module('habitrpg')
|
||||
return unallocatedValue;
|
||||
} else if (!(_.isEmpty(user.newMessages))) {
|
||||
return messageValue;
|
||||
} else if (!_.isEmpty(user.groupNotifications)) {
|
||||
var groupNotificationTypes = _.pluck(user.groupNotifications, 'type');
|
||||
if (groupNotificationTypes.indexOf('GROUP_TASK_APPROVAL') !== -1) {
|
||||
return groupApprovalRequested;
|
||||
} else if (groupNotificationTypes.indexOf('GROUP_TASK_APPROVED') !== -1) {
|
||||
return groupApproved;
|
||||
}
|
||||
return noneValue;
|
||||
} else {
|
||||
return noneValue;
|
||||
}
|
||||
@@ -97,12 +105,28 @@ angular.module('habitrpg')
|
||||
'glyphicon-envelope',
|
||||
'glyphicon-plus-sign',
|
||||
'glyphicon-comment',
|
||||
'glyphicon-comment inactive'
|
||||
'glyphicon-comment inactive',
|
||||
'glyphicon-question-sign',
|
||||
'glyphicon glyphicon-ok-sign'
|
||||
);
|
||||
};
|
||||
|
||||
$scope.hasNoNotifications = function() {
|
||||
return selectNotificationValue(false, false, false, false, false, true);
|
||||
}
|
||||
return selectNotificationValue(false, false, false, false, false, true, false);
|
||||
};
|
||||
|
||||
$scope.viewGroupApprovalNotification = function (notification, $index) {
|
||||
User.readNotification(notification.id);
|
||||
User.user.groupNotifications.splice($index, 1);
|
||||
$state.go("options.social.guilds.detail", {gid: notification.data.groupId});
|
||||
};
|
||||
|
||||
$scope.groupApprovalNotificationIcon = function (notification) {
|
||||
if (notification.type === 'GROUP_TASK_APPROVAL') {
|
||||
return 'glyphicon glyphicon-question-sign';
|
||||
} else if (notification.type === 'GROUP_TASK_APPROVED') {
|
||||
return 'glyphicon glyphicon-ok-sign';
|
||||
}
|
||||
};
|
||||
}
|
||||
]);
|
||||
|
||||
Reference in New Issue
Block a user