habitica/views/app/tasks.html

241 lines
13 KiB
HTML
Raw Normal View History

2013-05-03 17:18:28 +00:00
<modals:>
<app:modals:modal modalId='streak-achievement-modal' header="Achievement!">
<p>
<div class='achievement achievement-thermometer'></div>You have stacked your "Streaker" Achievement! Every 21 days of streak, you gain 1 achievement point here.
</p>
<@footer>
<button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
</@footer>
</app:modals:modal>
<ads: nonvoid>
2013-03-16 23:10:58 +00:00
{{#if and( _loggedIn, notEqual(_user.flags.ads,'hide') )}}
<span class='pull-right'>
<a x-bind="click:showStripe" rel='tooltip' title='Remove Ads'><i class='icon-remove'></i></a><br/>
<a href="#" data-target="#why-ads-modal" data-toggle="modal" rel='tooltip' title='Why Ads?'><i class='icon-question-sign'></i></a>
</span>
{{@content}}
2013-03-16 23:10:58 +00:00
{{/}}
2013-02-17 05:25:42 +00:00
<taskLists:>
2013-03-06 01:08:31 +00:00
<!--helpTitle & helpContent moved to tour -->
<!-- Habits Column -->
<div class="module">
<div class="task-column habits">
2013-03-29 18:15:17 +00:00
<h2 class="task-column_title">Habits</h2>
<app:tasks:newTask type="habit" inputValue="{_newHabit}" placeHolder="New Habit" />
2013-03-16 23:10:58 +00:00
<ul class="habits">
{#each _habitList as :task}<app:tasks:task />{/}
2013-03-16 23:10:58 +00:00
</ul>
<br/>
<app:tasks:ads>
<a href="http://www.amazon.com/gp/product/1400069289/ref=as_li_tf_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1400069289&linkCode=as2&tag=ha0d2-20">The Power of Habit: Why We Do What We Do in Life and Business</a><img src="//www.assoc-amazon.com/e/ir?t=ha0d2-20&l=as2&o=1&a=1400069289" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
</app:tasks:ads>
2013-02-17 05:25:42 +00:00
</div>
2013-03-06 01:08:31 +00:00
</div>
<!-- Dailys Column -->
<div class="module">
<div class="task-column dailys">
2013-03-29 18:15:17 +00:00
<h2 class="task-column_title">Dailies</h2>
<app:tasks:newTask type="daily" inputValue="{_newDaily}" placeHolder="New Daily" />
2013-03-16 23:10:58 +00:00
<ul class='dailys'>
{#each _dailyList as :task}<app:tasks:task />{/}
2013-03-16 23:10:58 +00:00
</ul>
<br/>
<app:tasks:ads>
<a href="http://www.amazon.com/gp/product/0142000280/ref=as_li_tf_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0142000280&linkCode=as2&tag=ha0d2-20">Getting Things Done: The Art of Stress-Free Productivity</a><img src="//www.assoc-amazon.com/e/ir?t=ha0d2-20&l=as2&o=1&a=0142000280" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
</app:tasks:ads>
2013-02-17 05:25:42 +00:00
</div>
</div>
2013-03-06 01:08:31 +00:00
<!-- Todos Column -->
<div class="module">
<div class="task-column todos context-enabled context-uncompleted tabbable tabs-below" id="todo-well">
2013-03-06 06:15:45 +00:00
<!-- todo export/graph options -->
2013-03-06 01:08:31 +00:00
<span class='option-box pull-right'>
{#if _user.history.todos}
<a class="option-action" x-bind=click:toggleChart data-toggle-id="todos-chart" data-history-path="_user.history.todos" rel=tooltip title="Progress"><i class=icon-signal></i></a>
2013-02-17 05:25:42 +00:00
{/}
2013-03-06 01:08:31 +00:00
<a class="option-action" href="/v1/users/{{_user.id}}/calendar.ics?apiToken={{_user.apiToken}}" rel=tooltip title="iCal"><i class=icon-calendar></i></a>
<!-- <a href="https://www.google.com/calendar/render?cid={{encodeiCalLink(_user.id, _user.apiToken)}}" rel=tooltip title="Google Calendar"><i class=icon-calendar></i></a> -->
</span>
2013-03-29 18:15:17 +00:00
<h2 class="task-column_title">Todos</h2>
2013-03-21 22:36:24 +00:00
<div id="todos-chart" style="display:none;"></div>
2013-03-06 06:15:45 +00:00
<!-- create new todo -->
2013-03-06 01:08:31 +00:00
<div class="display-context-dependant show-for-uncompleted">
<app:tasks:newTask type="todo" inputValue="{_newTodo}" placeHolder="New Todo" />
2013-03-06 01:08:31 +00:00
</div>
2013-03-06 06:15:45 +00:00
<!-- list of all the todos -->
2013-03-06 01:08:31 +00:00
<ul class='todos task-list'>
{#each _todoList as :task}<app:tasks:task />{/}
2013-03-06 01:08:31 +00:00
</ul>
2013-03-16 23:10:58 +00:00
<br/>
<app:tasks:ads>
<a href="http://www.amazon.com/gp/product/0312430000/ref=as_li_tf_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0312430000&linkCode=as2&tag=ha0d2-20">The Checklist Manifesto: How to Get Things Right</a><img src="//www.assoc-amazon.com/e/ir?t=ha0d2-20&l=as2&o=1&a=0312430000" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
</app:tasks:ads>
2013-03-06 06:15:45 +00:00
<button class='task-action-btn tile spacious bright display-context-dependant show-for-completed' x-bind=click:clearCompleted>Clear Completed</button>
2013-03-21 22:36:24 +00:00
2013-03-06 06:15:45 +00:00
<!-- remaining/completed tabs -->
2013-03-06 01:08:31 +00:00
<ul class="todo-status-toggler nav nav-tabs">
<li class="active"><a x-bind=click:changeContext data-target="#todo-well" data-context="context-uncompleted">Remaining</a></li>
<li><a x-bind=click:changeContext data-target="#todo-well" data-context="context-completed">Complete</a></li>
</ul>
2013-02-17 05:25:42 +00:00
</div>
2013-03-06 01:08:31 +00:00
</div>
<!-- Rewards Column -->
<app:rewards:rewardsColumn />
2013-03-06 01:08:31 +00:00
<!-- Templates -->
2013-02-17 05:25:42 +00:00
<newTask:>
2013-03-05 00:42:48 +00:00
<form class="addtask-form form-inline new-task-form" id="new-{@type}" data-task-type="{@type}" x-bind="submit:addTask">
<span class="addtask-field"><input value="{@inputValue}" type="text" name="new-task" placeholder="{@placeHolder}"/></span>
<input class="addtask-btn" type="submit" value="">
2013-02-17 05:25:42 +00:00
</form>
<hr>
2013-02-17 05:25:42 +00:00
2013-03-06 01:08:31 +00:00
<!-- all the parts of a single task -->
<task:>
<li data-id={{:task.id}} class="task {taskClasses(:task, _user.filters, _user.preferences.dayStart, _user.lastCron)} {#if :task.down}{#if :task.up}habit-wide{/}{/}">
2013-03-06 01:08:31 +00:00
<!-- right-hand side control buttons -->
<div class="task-meta-controls">
2013-05-03 17:18:28 +00:00
<!-- Streak -->
<span class='{#unless :task.streak}hide{/}'>
{:task.streak}<span rel='tooltip' title='Streak Counter'><i class='icon-forward'></i></span>
</span>
<!-- edit -->
<a x-bind=click:toggleTaskEdit data-hide-id="{{:task.id}}-chart" data-toggle-id="{{:task.id}}-edit" rel=tooltip title="Edit"><i class="icon-pencil"></i></a>
<!-- delete -->
<a x-bind=click:del rel=tooltip title="Delete"><i class="icon-trash"></i></a>
<!-- chart -->
<!-- removing for now cuz it's broken -->
{#if :task.history}
2013-03-21 22:31:23 +00:00
<a x-bind=click:toggleChart data-toggle-id="{{:task.id}}-chart" data-hide-id="{{:task.id}}-edit" data-history-path="_user.tasks.{{:task.id}}.history" rel="tooltip" title="Progress"><i class="icon-signal"></i></a>
{/}
<!-- notes -->
2013-03-06 01:08:31 +00:00
{#if :task.notes}
<span rel="popover" data-trigger="hover" data-placement="left" data-content="{:task.notes}" data-original-title="{:task.text}" class='task-notes'><i class="icon-comment"></i></span>
{/}
</div>
<!-- left-hand side checkbox -->
2013-03-25 14:05:44 +00:00
<div class="task-controls task-primary">
2013-03-06 01:08:31 +00:00
<!-- Habits -->
{#if equal(:task.type, 'habit')}
{#if :task.up}<a class="task-action-btn" data-direction=up x-bind=click:score></a>{/}
{#if :task.down}<a class="task-action-btn" data-direction=down x-bind=click:score></a>{/}
2013-03-06 01:08:31 +00:00
<!-- Rewards -->
{else if equal(:task.type, 'reward')}
<a class="money btn-buy" x-bind=click:score data-direction=down>
<span class="reward-cost">{:task.value}</span>
<span class='shop_gold'></span>
</a>
2013-03-06 01:08:31 +00:00
<!-- Daily & Todos -->
{else}
<span class="task-checker action-yesno">
2013-03-06 01:08:31 +00:00
<input type=checkbox id="box-{{:task.id}}" class="visuallyhidden focusable" checked="{:task.completed}">
<label for="box-{{:task.id}}"></label>
</span>
{/}
</div>
2013-03-05 00:42:48 +00:00
2013-03-06 01:08:31 +00:00
<!-- main content -->
<p class="task-text">
{:task.text}
<app:filters:applied-filters />
</p>
2013-02-17 05:25:42 +00:00
2013-03-06 01:08:31 +00:00
<!-- edit/options dialog -->
<app:tasks:taskMeta />
2013-03-06 01:08:31 +00:00
</li>
2013-02-17 05:25:42 +00:00
2013-03-06 03:19:20 +00:00
<!-- task edit/options -->
2013-02-17 05:25:42 +00:00
<taskMeta:>
2013-03-06 03:19:20 +00:00
<div id="{{:task.id}}-edit" class="task-options visuallyhidden">
2013-02-17 05:25:42 +00:00
<form x-bind=submit:toggleTaskEdit data-toggle-id="{{:task.id}}-edit">
<!-- text & notes -->
<fieldset class="option-group">
<label class="option-title">Text</label><input class="option-content" type=text value={:task.text}>
<label class="option-title">Extra Notes</label><textarea class="option-content" rows=3>{:task.notes}</textarea>
</fieldset>
<!-- if Habit, plus/minus command options -->
2013-02-17 05:25:42 +00:00
{#if equal(:task.type, 'habit')}
<fieldset class="option-group">
<legend class="option-title">Direction/Actions</legend>
<span class="task-checker action-plusminus select-toggle">
<input class="visuallyhidden focusable" type=checkbox id="{{:task.id}}-option-plus" checked={:task.up}>
<label for="{{:task.id}}-option-plus"></label>
</span>
<span class="task-checker action-plusminus select-toggle">
<input class="visuallyhidden focusable" type=checkbox id="{{:task.id}}-option-minus" checked={:task.down}>
<label for="{{:task.id}}-option-minus"></label>
</span>
</fieldset>
<!-- if Daily, calendar -->
2013-02-17 05:25:42 +00:00
{else if equal(:task.type, 'daily')}
<fieldset class="option-group">
<legend class="option-title">Repeat</legend>
<div class="task-controls tile-group repeat-days">
<!-- note, does not use data-toggle="buttons-checkbox" - it would interfere with our own click binding -->
<button type="button" class="task-action-btn tile {#if :task.repeat.su}active{/}" data-day='su' x-bind=click:toggleDay>Su</button>
<button type="button" class="task-action-btn tile {#if :task.repeat.m}active{/}" data-day='m' x-bind=click:toggleDay>M</button>
<button type="button" class="task-action-btn tile {#if :task.repeat.t}active{/}" data-day='t' x-bind=click:toggleDay>T</button>
<button type="button" class="task-action-btn tile {#if :task.repeat.w}active{/}" data-day='w' x-bind=click:toggleDay>W</button>
<button type="button" class="task-action-btn tile {#if :task.repeat.th}active{/}" data-day='th' x-bind=click:toggleDay>Th</button>
<button type="button" class="task-action-btn tile {#if :task.repeat.f}active{/}" data-day='f' x-bind=click:toggleDay>F</button>
<button type="button" class="task-action-btn tile {#if :task.repeat.s}active{/}" data-day='s' x-bind=click:toggleDay>S</button>
</div>
</fieldset>
<!-- if Reward, pricing -->
2013-02-17 05:25:42 +00:00
{else if equal(:task.type, 'reward')}
<fieldset class="option-group option-short">
2013-03-18 18:02:30 +00:00
<legend class="option-title">Price</legend>
<input class="option-content" size="16" type="number" min="0" value={:task.value}>
<div class="money input-suffix"><span class='shop_gold'></span></div>
2013-03-18 18:02:30 +00:00
</fieldset>
<!-- if Todo, the due date -->
2013-02-17 05:25:42 +00:00
{else if equal(:task.type, 'todo')}
<fieldset class="option-group">
<legend class="option-title">Due Date</legend>
<input class="option-content datepicker" type="text" value="{:task.date}" data-date-format="mm/dd/yyyy">
</fieldset>
2013-02-17 05:25:42 +00:00
{/}
2013-05-06 16:05:34 +00:00
<app:filters:filter-fieldgroup />
<!-- Advanced Options -->
{#unless equal(:task.type, 'reward')}
<p x-bind="click:tasksToggleAdvanced" class="option-title mega">Advanced Options</p>
<fieldset class="option-group advanced-option visuallyhidden">
<legend class="option-title"><a class='priority-multiplier-help' href="https://trello.com/card/priority-multiplier/50e5d3684fe3a7266b0036d6/17" target="_blank"><i class='icon-question-sign'></i></a> Difficulty</legend>
<div class="task-controls tile-group priority-multiplier" data-id="{{:task.id}}">
<button type="button" class="task-action-btn tile {#if equal(:task.priority,'!')}active{/}{#unless :task.priority}active{/}" data-priority='!' x-bind=click:tasksSetPriority>Easy</button>
<button type="button" class="task-action-btn tile {#if equal(:task.priority,'!!')}active{/}" data-priority='!!' x-bind=click:tasksSetPriority>Medium</button>
<button type="button" class="task-action-btn tile {#if equal(:task.priority,'!!!')}active{/}" data-priority='!!!' x-bind=click:tasksSetPriority>Hard</button>
</div>
</fieldset>
{/}
<button type=submit class="task-action-btn tile spacious" x-bind="click:tasksSaveAndClose">Save & Close</button>
2013-02-17 05:25:42 +00:00
</form>
</div>
<div style="display:none;" id={{:task.id}}-chart></div>