mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-18 07:07:35 +01:00
Ported over UI code
This commit is contained in:
@@ -3,6 +3,58 @@
|
||||
habitrpg.controller('NotificationCtrl',
|
||||
['$scope', '$rootScope', 'Shared', 'Content', 'User', 'Guide', 'Notification', 'Analytics', 'Achievement', 'Social', 'Tasks',
|
||||
function ($scope, $rootScope, Shared, Content, User, Guide, Notification, Analytics, Achievement, Social, Tasks) {
|
||||
$scope.yesterDailiesModalOpen = false;
|
||||
$rootScope.$watch('user.yesterDailies', function (after, before) {
|
||||
if (!after || after.length === 0 || $scope.yesterDailiesModalOpen) return;
|
||||
|
||||
var yesterDailies = [];
|
||||
after.forEach(function (taskId) {
|
||||
var dailyFound = _.find(User.user.dailys, function (task) {
|
||||
return taskId === task._id;
|
||||
});
|
||||
|
||||
if (dailyFound && dailyFound.group.approval && dailyFound.group.approval.requested) return;
|
||||
if (dailyFound) yesterDailies.push(dailyFound);
|
||||
});
|
||||
|
||||
if (yesterDailies.length === 0) return;
|
||||
|
||||
var modalScope = $rootScope.$new();
|
||||
modalScope.obj = User.user;
|
||||
modalScope.taskList = yesterDailies;
|
||||
modalScope.list = {
|
||||
showCompleted: false,
|
||||
type: 'daily',
|
||||
};
|
||||
|
||||
$scope.yesterDailiesModalOpen = true;
|
||||
$rootScope.openModal('yesterDailies', {
|
||||
scope: modalScope,
|
||||
controller: ['$scope', 'Tasks', 'User', '$rootScope', function ($scope, Tasks, User, $rootScope) {
|
||||
$rootScope.$on('task:scored', function (event, data) {
|
||||
var task = data.task;
|
||||
var indexOfTask = _.findIndex($scope.taskList, function (taskInList) {
|
||||
return taskInList._id === task._id;
|
||||
});
|
||||
if (!$scope.taskList[indexOfTask]) return;
|
||||
$scope.taskList[indexOfTask].group.approval.requested = task.group.approval.requested;
|
||||
if ($scope.taskList[indexOfTask].group.approval.requested) return;
|
||||
$scope.taskList[indexOfTask].completed = task.completed;
|
||||
});
|
||||
|
||||
$scope.ageDailies = function () {
|
||||
Tasks.ageDailies()
|
||||
.then(function () {
|
||||
$scope.yesterDailiesModalOpen = false;
|
||||
User.sync();
|
||||
});
|
||||
};
|
||||
}],
|
||||
})
|
||||
.result.catch(function() {
|
||||
$scope.yesterDailiesModalOpen = false;
|
||||
});
|
||||
});
|
||||
|
||||
$rootScope.$watch('user.stats.hp', function (after, before) {
|
||||
if (after <= 0){
|
||||
|
||||
Reference in New Issue
Block a user