diff --git a/public/js/controllers/tasksCtrl.js b/public/js/controllers/tasksCtrl.js index 58c5a6bae7..cad6de1b91 100644 --- a/public/js/controllers/tasksCtrl.js +++ b/public/js/controllers/tasksCtrl.js @@ -185,4 +185,24 @@ habitrpg.controller("TasksCtrl", ['$scope', '$rootScope', '$location', 'User','N $.getScript('//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js'); (window.adsbygoogle = window.adsbygoogle || []).push({}); } + + /* + ------------------------ + Hiding Tasks + ------------------------ + */ + + $scope.shouldShow = function(task, list, prefs){ + if (task.type == 'habit' || task.type == 'reward') + return true; + var shouldDo = task.type == 'daily' ? habitrpgShared.shouldDo(new Date, task.repeat, prefs) : true; + switch (list.view) { + case "remaining": + return !task.completed && shouldDo; + case "complete": + return task.completed || !shouldDo; + case "all": + return true; + } + } }]); diff --git a/public/js/directives/directives.js b/public/js/directives/directives.js index baef14ccdb..ba0270d019 100644 --- a/public/js/directives/directives.js +++ b/public/js/directives/directives.js @@ -69,11 +69,13 @@ habitrpg }, { header: window.env.t('dailies'), type: 'daily', - placeHolder: window.env.t('newDaily') + placeHolder: window.env.t('newDaily'), + view: "remaining" }, { header: window.env.t('todos'), type: 'todo', - placeHolder: window.env.t('newTodo') + placeHolder: window.env.t('newTodo'), + view: "remaining" }, { header: window.env.t('rewards'), type: 'reward', @@ -159,4 +161,4 @@ habitrpg "
\n" + " \n" + "\n"); - }]); \ No newline at end of file + }]); diff --git a/views/shared/tasks/lists.jade b/views/shared/tasks/lists.jade index 78c5c3142b..5cd803d480 100644 --- a/views/shared/tasks/lists.jade +++ b/views/shared/tasks/lists.jade @@ -101,15 +101,17 @@ script(id='templates/habitrpg-tasks.html', type="text/ng-template") // Habit3 ins.adsbygoogle(ng-init='initAds()', style='display: inline-block; width: 234px; height: 60px;', data-ad-client='ca-pub-3242350243827794', data-ad-slot='9529624576') - // Todo Tabs - div(bo-if='main && list.type=="todo"', bo-class='{"tabbable tabs-below": list.type=="todo"}') - div(ng-show='list.showCompleted') + // Todo/Daily Tabs + div(bo-if='main && (list.type=="daily" || list.type=="todo")', class='tabbable tabs-below') + div(ng-show='(list.view == "complete" || list.view == "all") && list.type == todo') .alert =env.t('lotOfToDos') button.task-action-btn.tile.spacious.bright(ng-click='user.ops.clearCompleted({})',popover=env.t('deleteToDosExplanation'),popover-trigger='mouseenter')=env.t('clearCompleted') // remaining/completed tabs ul.nav.nav-tabs - li(ng-class='{active: !list.showCompleted}') - a(ng-click='list.showCompleted = false')=env.t('remaining') - li(ng-class='{active: list.showCompleted}') - a(ng-click='list.showCompleted= true')=env.t('complete') \ No newline at end of file + li(ng-class='{active: list.view == "remaining"}') + a(ng-click='list.view = "remaining"')=env.t('remaining') + li(ng-class='{active: list.view == "complete"}') + a(ng-click='list.view = "complete"')=env.t('complete') + li(ng-class='{active: list.view == "all"}') + a(ng-click='list.view = "all"')=env.t('all') diff --git a/views/shared/tasks/task.jade b/views/shared/tasks/task.jade index 70dc518598..7ae312992e 100644 --- a/views/shared/tasks/task.jade +++ b/views/shared/tasks/task.jade @@ -1,4 +1,4 @@ -li(bindonce='list', bo-id='"task-"+task.id', ng-repeat='task in obj[list.type+"s"]', class='task {{Shared.taskClasses(task, user.filters, user.preferences.dayStart, user.lastCron, list.showCompleted, main)}}', ng-click='spell && castEnd(task, "task", $event)', ng-class='{"cast-target":spell}', popover-trigger='mouseenter', data-popover-html="{{task.notes | markdown}}", data-popover-placement="top") +li(bindonce='list', bo-id='"task-"+task.id', ng-repeat='task in obj[list.type+"s"]', class='task {{Shared.taskClasses(task, user.filters, user.preferences.dayStart, user.lastCron, list.showCompleted, main)}}', ng-click='spell && castEnd(task, "task", $event)', ng-class='{"cast-target":spell}', popover-trigger='mouseenter', data-popover-html="{{task.notes | markdown}}", data-popover-placement="top", ng-show='shouldShow(task, list, user.preferences)') // right-hand side control buttons .task-meta-controls