2015-04-13 12:51:08 +00:00
|
|
|
li(bindonce='list', id='task-{{::task.id}}', ng-repeat='task in obj[list.type+"s"] | conditionalOrderBy: list.view=="dated":"date"', class='task {{Shared.taskClasses(task, user.filters, user.preferences.dayStart, user.lastCron, list.showCompleted, main)}}', ng-click='spell && (list.type != "reward") && castEnd(task, "task", $event)', ng-class='{"cast-target":spell && (list.type != "reward"), "locked-task":obj._locked === true}', popover-trigger='mouseenter', data-popover-html="{{task.notes | markdown}}", popover-placement="top", popover-append-to-body='{{::modal ? "false":"true"}}', ng-show='shouldShow(task, list, user.preferences)')
|
2013-08-25 15:47:10 +00:00
|
|
|
// right-hand side control buttons
|
|
|
|
|
.task-meta-controls
|
2013-10-28 01:10:22 +00:00
|
|
|
|
2013-09-12 21:04:52 +00:00
|
|
|
// Due Date
|
2014-02-05 18:05:42 +00:00
|
|
|
span(ng-if='task.type=="todo" && task.date')
|
2015-01-06 15:37:29 +00:00
|
|
|
span(ng-class='{"label label-danger":(moment(task.date).isBefore(_today, "days") && !task.completed)}') {{task.date | date:(user.preferences.dateFormat.indexOf('yyyy') == 0 ? user.preferences.dateFormat.substr(5) : user.preferences.dateFormat.substr(0,5))}}
|
2015-03-18 19:39:23 +00:00
|
|
|
|
2013-08-25 15:47:10 +00:00
|
|
|
// Streak
|
2014-02-05 18:05:42 +00:00
|
|
|
|
|
2014-02-08 18:20:10 +00:00
|
|
|
span(ng-show='task.streak') {{task.streak}}
|
2014-01-06 19:36:33 +00:00
|
|
|
span(tooltip=env.t('streakCounter'))
|
2014-01-31 18:47:48 +00:00
|
|
|
span.glyphicon.glyphicon-forward
|
2014-02-01 18:19:48 +00:00
|
|
|
|
|
2013-08-28 22:11:00 +00:00
|
|
|
|
2013-10-28 01:10:22 +00:00
|
|
|
// Icons only available if you own the tasks (aka, hidden from challenge stats)
|
2013-11-23 06:57:41 +00:00
|
|
|
span(ng-if='!obj._locked')
|
2014-09-09 07:04:13 +00:00
|
|
|
a(ng-click='pushTask(task,$index,"top")', tooltip=env.t('pushTaskToTop'))
|
2014-06-10 18:41:30 +00:00
|
|
|
span.glyphicon.glyphicon-open
|
2014-09-09 07:13:19 +00:00
|
|
|
// a(ng-click='pushTask(task,$index,"bottom")', tooltip=env.t('pushTaskToBottom'))
|
|
|
|
|
// span.glyphicon.glyphicon-import
|
|
|
|
|
// // glyphicon-import or glyphicon-save or glyphicon-sort-by-attributes
|
2014-04-29 01:44:16 +00:00
|
|
|
a.badge(ng-if='task.checklist[0]', ng-class='{"badge-success":checklistCompletion(task.checklist) == task.checklist.length}', ng-click='collapseChecklist(task)', tooltip=env.t('expandCollapse'))
|
2014-10-09 05:56:06 +00:00
|
|
|
|{{checklistCompletion(task.checklist)}}/{{task.checklist.length}}
|
2014-02-03 17:45:25 +00:00
|
|
|
span.glyphicon.glyphicon-tags(tooltip='{{Shared.appliedTags(user.tags, task.tags)}}', ng-hide='Shared.noTags(task.tags)')
|
2013-10-28 01:10:22 +00:00
|
|
|
// edit
|
2014-01-06 19:36:33 +00:00
|
|
|
a(ng-hide='task._editing', ng-click='editTask(task)', tooltip=env.t('edit'))
|
2014-02-01 18:19:48 +00:00
|
|
|
|
|
2014-01-31 18:47:48 +00:00
|
|
|
span.glyphicon.glyphicon-pencil(ng-hide='task._editing')
|
2014-02-08 19:10:37 +00:00
|
|
|
|
|
2014-01-06 19:36:33 +00:00
|
|
|
a(ng-hide='!task._editing', ng-click='editTask(task)', tooltip=env.t('cancel'))
|
2014-01-31 18:47:48 +00:00
|
|
|
span.glyphicon.glyphicon-remove(ng-hide='!task._editing')
|
2014-02-01 18:19:48 +00:00
|
|
|
|
|
2013-11-14 13:01:58 +00:00
|
|
|
// save
|
2014-01-06 19:36:33 +00:00
|
|
|
a(ng-hide='!task._editing', ng-click='editTask(task);saveTask(task)', tooltip=env.t('save'))
|
2014-01-31 18:47:48 +00:00
|
|
|
span.glyphicon.glyphicon-ok(ng-hide='!task._editing')
|
2014-02-08 19:10:37 +00:00
|
|
|
|
|
2013-10-28 01:10:22 +00:00
|
|
|
//challenges
|
2013-11-23 06:57:41 +00:00
|
|
|
span(ng-if='task.challenge.id')
|
|
|
|
|
span(ng-if='task.challenge.broken')
|
2014-01-31 18:47:48 +00:00
|
|
|
span.glyphicon.glyphicon-bullhorn(style='background-color:red;', ng-click='task._editing = true', tooltip=env.t('brokenChaLink') tooltip-placement='right')
|
2014-02-01 18:19:48 +00:00
|
|
|
|
|
2013-11-23 06:57:41 +00:00
|
|
|
span(ng-if='!task.challenge.broken')
|
2014-01-31 18:47:48 +00:00
|
|
|
span.glyphicon.glyphicon-bullhorn(tooltip=env.t('challenge'))
|
2014-02-01 18:19:48 +00:00
|
|
|
|
|
2013-10-28 01:10:22 +00:00
|
|
|
// delete
|
2015-04-13 11:47:56 +00:00
|
|
|
a(ng-if='!task.challenge.id', ng-click='removeTask(task, obj[list.type+"s"])', tooltip=env.t('delete'))
|
2014-01-31 18:47:48 +00:00
|
|
|
span.glyphicon.glyphicon-trash
|
2014-02-01 18:19:48 +00:00
|
|
|
|
|
2013-10-28 01:10:22 +00:00
|
|
|
|
2015-03-18 19:39:23 +00:00
|
|
|
// chart
|
|
|
|
|
a(ng-show='task.history', ng-click='toggleChart(obj._id+task.id, task)', tooltip=env.t('progress'))
|
|
|
|
|
span.glyphicon.glyphicon-signal
|
|
|
|
|
|
|
|
|
|
|
// notes
|
|
|
|
|
span.task-notes(ng-show='task.notes && !task._editing')
|
|
|
|
|
span.glyphicon.glyphicon-comment
|
|
|
|
|
|
|
2013-08-25 15:47:10 +00:00
|
|
|
|
|
|
|
|
// left-hand side checkbox
|
2014-05-24 02:54:32 +00:00
|
|
|
.task-controls.task-primary(ng-if='!task._editing')
|
2013-08-25 15:47:10 +00:00
|
|
|
|
|
|
|
|
// Habits
|
2015-01-19 16:41:01 +00:00
|
|
|
.task-actions(ng-if='::task.type=="habit"')
|
2013-11-01 17:20:14 +00:00
|
|
|
// score() is overridden in challengesCtrl to do nothing
|
2015-01-19 17:06:19 +00:00
|
|
|
a(ng-if='task.up', ng-click='applyingAction || score(task,"up")')
|
2015-01-19 16:41:01 +00:00
|
|
|
span.glyphicon.glyphicon-plus
|
2015-01-19 17:06:19 +00:00
|
|
|
a(ng-if='task.down', ng-click='applyingAction || score(task,"down")')
|
2015-01-19 16:41:01 +00:00
|
|
|
span.glyphicon.glyphicon-minus
|
2013-08-25 15:47:10 +00:00
|
|
|
|
|
|
|
|
// Rewards
|
2013-10-27 00:23:52 +00:00
|
|
|
span(ng-show='task.type=="reward"')
|
2014-12-03 15:39:58 +00:00
|
|
|
a.money.btn-buy(ng-class='{highValue: task.value >= 1000}', ng-click='score(task, "down")')
|
2013-08-25 15:47:10 +00:00
|
|
|
span.shop_gold
|
2014-12-03 15:39:58 +00:00
|
|
|
span.reward-cost {{task.value}}
|
2013-08-25 15:47:10 +00:00
|
|
|
// Daily & Todos
|
2014-11-27 10:32:57 +00:00
|
|
|
span.task-checker.action-yesno(ng-if='::task.type=="daily" || task.type=="todo"')
|
2014-09-12 20:44:03 +00:00
|
|
|
input.visuallyhidden.focusable(ng-if='$state.includes("tasks")', id='box-{{obj._id}}_{{task.id}}', type='checkbox', ng-model='task.completed', ng-change='task.type=="todo" && pushTask(task,$index,"bottom"); changeCheck(task)')
|
2013-11-01 17:20:14 +00:00
|
|
|
input.visuallyhidden.focusable(ng-if='!$state.includes("tasks")', id='box-{{obj._id}}_{{task.id}}', type='checkbox')
|
2013-11-01 16:48:22 +00:00
|
|
|
label(for='box-{{obj._id}}_{{task.id}}')
|
2014-09-03 01:13:13 +00:00
|
|
|
|
2013-08-25 15:47:10 +00:00
|
|
|
// main content
|
2014-01-01 01:11:20 +00:00
|
|
|
div.task-text(ng-dblclick='task._editing ? saveTask(task) : editTask(task)')
|
2015-01-01 19:57:57 +00:00
|
|
|
markdown(text='task.text',target='_blank')
|
2013-12-29 08:24:02 +00:00
|
|
|
//-| {{task.text}}
|
2013-08-25 15:47:10 +00:00
|
|
|
|
2013-12-31 21:05:39 +00:00
|
|
|
div(ng-if='task.checklist && !$state.includes("options.social.challenges") && !task.collapseChecklist && !task._editing')
|
2014-12-24 09:53:32 +00:00
|
|
|
fieldset.option-group.task-checklist
|
2013-12-30 07:18:19 +00:00
|
|
|
label.checkbox(ng-repeat='item in task.checklist')
|
2013-12-30 19:56:26 +00:00
|
|
|
input(type='checkbox',ng-model='item.completed',ng-change='saveTask(task,true)')
|
2015-01-01 19:57:57 +00:00
|
|
|
markdown(text='item.text',target='_blank')
|
2013-12-30 07:18:19 +00:00
|
|
|
|
2013-08-25 15:47:10 +00:00
|
|
|
// edit/options dialog
|
2013-12-29 06:31:28 +00:00
|
|
|
div(ng-if='task._editing')
|
|
|
|
|
.task-options
|
|
|
|
|
|
|
|
|
|
// Broken Challenge
|
|
|
|
|
.well(ng-if='task.challenge.broken')
|
|
|
|
|
div(ng-if='task.challenge.broken=="TASK_DELETED"')
|
2014-01-06 19:36:33 +00:00
|
|
|
p=env.t('brokenTask')
|
2013-12-29 06:31:28 +00:00
|
|
|
p
|
2014-01-06 19:36:33 +00:00
|
|
|
a(ng-click='unlink(task, "keep")')=env.t('keepIt')
|
2014-02-11 18:30:55 +00:00
|
|
|
|
|
2015-04-13 11:47:56 +00:00
|
|
|
a(ng-click="removeTask(task, obj[list.type+'s'])")=env.t('removeIt')
|
2013-12-29 06:31:28 +00:00
|
|
|
div(ng-if='task.challenge.broken=="CHALLENGE_DELETED"')
|
2014-02-11 18:30:55 +00:00
|
|
|
p
|
|
|
|
|
|
|
|
|
|
|
=env.t('brokenChallenge')
|
2013-12-29 06:31:28 +00:00
|
|
|
p
|
2014-01-06 19:36:33 +00:00
|
|
|
a(ng-click='unlink(task, "keep-all")')=env.t('keepThem')
|
2013-12-29 06:31:28 +00:00
|
|
|
| |
|
2014-01-06 19:36:33 +00:00
|
|
|
a(ng-click='unlink(task, "remove-all")')=env.t('removeThem')
|
2013-12-29 06:31:28 +00:00
|
|
|
div(ng-if='task.challenge.broken=="CHALLENGE_CLOSED"')
|
2014-01-14 17:32:40 +00:00
|
|
|
p
|
2014-01-30 20:25:25 +00:00
|
|
|
!=env.t('challengeCompleted', {user: "{{task.challenge.winner}}"})
|
2013-12-29 06:31:28 +00:00
|
|
|
p
|
2014-01-06 19:36:33 +00:00
|
|
|
a(ng-click='unlink(task, "keep-all")')=env.t('keepThem')
|
2013-12-29 06:31:28 +00:00
|
|
|
| |
|
2014-01-06 19:36:33 +00:00
|
|
|
a(ng-click='unlink(task, "remove-all")')=env.t('removeThem')
|
2013-12-29 06:31:28 +00:00
|
|
|
//div(ng-if='task.challenge.broken=="UNSUBSCRIBED"')
|
2014-01-06 19:36:33 +00:00
|
|
|
p=env.t('unsubChallenge')
|
2013-12-29 06:31:28 +00:00
|
|
|
p
|
2014-01-06 19:36:33 +00:00
|
|
|
a(ng-click="unlink(task, 'keep-all')")=env.t('keepThem')
|
2013-12-29 06:31:28 +00:00
|
|
|
| |
|
2014-01-06 19:36:33 +00:00
|
|
|
a(ng-click="unlink(task, 'remove-all')")=env.t('removeThem')
|
2013-12-29 06:31:28 +00:00
|
|
|
|
2013-12-30 04:10:27 +00:00
|
|
|
// Checklists
|
2014-12-24 09:53:32 +00:00
|
|
|
.task-checklist-edit(ng-if='!$state.includes("options.social.challenges")')
|
|
|
|
|
ul
|
|
|
|
|
li
|
|
|
|
|
button(type='button', ng-if='!task.checklist[0] && (task.type=="daily" || task.type=="todo")',ng-click='addChecklist(task)')
|
|
|
|
|
span.glyphicon.glyphicon-tasks
|
|
|
|
|
span=env.t('addChecklist')
|
2014-12-29 21:43:20 +00:00
|
|
|
form.checklist-form(ng-if='task.checklist')
|
2014-12-24 09:53:32 +00:00
|
|
|
fieldset.option-group(ng-if='!$state.includes("options.social.challenges")')
|
2014-01-04 17:56:46 +00:00
|
|
|
legend.option-title
|
2014-02-06 23:58:40 +00:00
|
|
|
span.hint(popover=env.t('checklistText'),popover-trigger='mouseenter',popover-placement='bottom')=env.t('checklist')
|
2014-12-24 09:53:32 +00:00
|
|
|
ul(hrpg-sort-checklist)
|
2015-03-18 19:39:23 +00:00
|
|
|
li(ng-repeat='item in task.checklist')
|
2014-12-24 09:53:32 +00:00
|
|
|
//input(type='checkbox',ng-model='item.completed',ng-change='saveTask(task,true)')
|
2014-10-01 12:20:49 +00:00
|
|
|
//-,ng-blur='saveTask(task,true)')
|
2014-12-24 09:53:32 +00:00
|
|
|
span.checklist-icon.glyphicon.glyphicon-resize-vertical()
|
2015-03-20 19:03:20 +00:00
|
|
|
input(type='text',ng-model='item.text', ui-keyup="{'13':'addChecklistItem(task,$event,$index)','38 40':'navigateChecklist(task,$index,$event)'}")
|
2014-12-24 17:17:05 +00:00
|
|
|
a(ng-click='removeChecklistItem(task,$event,$index,true)')
|
2014-12-24 09:53:32 +00:00
|
|
|
span.glyphicon.glyphicon-trash(tooltip=env.t('delete'))
|
2013-12-30 04:10:27 +00:00
|
|
|
|
2014-10-13 21:10:59 +00:00
|
|
|
form(ng-submit='saveTask(task,false,true)')
|
2013-12-29 06:31:28 +00:00
|
|
|
// text & notes
|
|
|
|
|
fieldset.option-group
|
2014-01-06 19:36:33 +00:00
|
|
|
label.option-title=env.t('text')
|
2013-12-29 06:31:28 +00:00
|
|
|
input.option-content(type='text', ng-model='task.text', required, ng-disabled='task.challenge.id')
|
|
|
|
|
|
2014-01-06 19:36:33 +00:00
|
|
|
label.option-title=env.t('extraNotes')
|
2014-09-20 10:13:36 +00:00
|
|
|
textarea.option-content(rows='3', ng-model='task.notes', ng-model-options="{debounce: 1000}")
|
2013-12-29 06:31:28 +00:00
|
|
|
|
|
|
|
|
// if Habit, plus/minus command options
|
2014-12-24 09:53:32 +00:00
|
|
|
fieldset.option-group.plusminus(ng-if='task.type=="habit" && !task.challenge.id')
|
2014-01-06 19:36:33 +00:00
|
|
|
legend.option-title=env.t('direction/Actions')
|
2014-12-24 09:53:32 +00:00
|
|
|
span.task-checker
|
2013-12-29 06:31:28 +00:00
|
|
|
input.visuallyhidden.focusable(id='{{obj._id}}_{{task.id}}-option-plus', type='checkbox', ng-model='task.up')
|
|
|
|
|
label(for='{{obj._id}}_{{task.id}}-option-plus')
|
2014-12-24 09:53:32 +00:00
|
|
|
span.task-checker
|
2013-12-29 06:31:28 +00:00
|
|
|
input.visuallyhidden.focusable(id='{{obj._id}}_{{task.id}}-option-minus', type='checkbox', ng-model='task.down')
|
|
|
|
|
label(for='{{obj._id}}_{{task.id}}-option-minus')
|
|
|
|
|
|
|
|
|
|
// if Daily, calendar
|
2014-11-27 10:32:57 +00:00
|
|
|
fieldset(ng-if='::task.type=="daily"', class="option-group")
|
2014-01-06 19:36:33 +00:00
|
|
|
legend.option-title=env.t('repeat')
|
2014-12-24 09:53:32 +00:00
|
|
|
ul.repeat-days(bindonce)
|
2014-01-06 19:36:33 +00:00
|
|
|
// note, does not use data-toggle="buttons-checkbox" - it would interfere with our own click binding
|
2014-12-24 09:53:32 +00:00
|
|
|
li
|
|
|
|
|
button(ng-class='{active: task.repeat.su}', type='button', ng-click='task.challenge.id || (task.repeat.su = !task.repeat.su)') {{::moment.weekdaysMin(0)}}
|
|
|
|
|
li
|
|
|
|
|
button(ng-class='{active: task.repeat.m}', type='button', ng-click='task.challenge.id || (task.repeat.m = !task.repeat.m)') {{::moment.weekdaysMin(1)}}
|
|
|
|
|
li
|
|
|
|
|
button(ng-class='{active: task.repeat.t}', type='button', ng-click='task.challenge.id || (task.repeat.t = !task.repeat.t)') {{::moment.weekdaysMin(2)}}
|
|
|
|
|
li
|
|
|
|
|
button(ng-class='{active: task.repeat.w}', type='button', ng-click='task.challenge.id || (task.repeat.w = !task.repeat.w)') {{::moment.weekdaysMin(3)}}
|
|
|
|
|
li
|
|
|
|
|
button(ng-class='{active: task.repeat.th}', type='button', ng-click='task.challenge.id || (task.repeat.th = !task.repeat.th)') {{::moment.weekdaysMin(4)}}
|
|
|
|
|
li
|
|
|
|
|
button(ng-class='{active: task.repeat.f}', type='button', ng-click='task.challenge.id || (task.repeat.f= !task.repeat.f)') {{::moment.weekdaysMin(5)}}
|
|
|
|
|
li
|
|
|
|
|
button(ng-class='{active: task.repeat.s}', type='button', ng-click='task.challenge.id || (task.repeat.s = !task.repeat.s)') {{::moment.weekdaysMin(6)}}
|
2013-12-29 06:31:28 +00:00
|
|
|
|
|
|
|
|
// if Reward, pricing
|
|
|
|
|
fieldset.option-group.option-short(ng-if='task.type=="reward" && !task.challenge.id')
|
2014-01-06 19:36:33 +00:00
|
|
|
legend.option-title=env.t('price')
|
2013-12-29 06:31:28 +00:00
|
|
|
input.option-content(type='number', size='16', min='0', step="any", ng-model='task.value')
|
|
|
|
|
.money.input-suffix
|
|
|
|
|
span.shop_gold
|
|
|
|
|
|
|
|
|
|
// if Todos, the due date
|
|
|
|
|
fieldset.option-group(ng-if='task.type=="todo" && !task.challenge.id')
|
2014-01-06 19:36:33 +00:00
|
|
|
legend.option-title=env.t('dueDate')
|
2014-12-25 03:18:50 +00:00
|
|
|
input.option-content.datepicker(type='text', datepicker-popup='{{user.preferences.dateFormat}}', ng-model='task.date', is-open='datepickerOpened', ng-click='datepickerOpened = true')
|
2013-12-29 06:31:28 +00:00
|
|
|
|
2014-01-09 04:19:38 +00:00
|
|
|
// Tags
|
2013-12-29 06:31:28 +00:00
|
|
|
fieldset.option-group(ng-if='!$state.includes("options.social.challenges")')
|
2014-04-29 01:44:16 +00:00
|
|
|
p.option-title.mega(ng-click='task._tags = !task._tags', tooltip=env.t('expandCollapse'))=env.t('tags')
|
2014-01-09 04:19:38 +00:00
|
|
|
label.checkbox(ng-repeat='tag in user.tags', ng-class="{visuallyhidden: task._tags}")
|
2013-12-29 06:31:28 +00:00
|
|
|
input(type='checkbox', ng-model='task.tags[tag.id]')
|
2015-01-01 19:57:57 +00:00
|
|
|
markdown(text='tag.name')
|
2013-12-29 06:31:28 +00:00
|
|
|
|
|
|
|
|
// Advanced Options
|
2014-11-27 10:32:57 +00:00
|
|
|
span(ng-if='::task.type!="reward"')
|
2014-04-29 01:44:16 +00:00
|
|
|
p.option-title.mega(ng-click='task._advanced = !task._advanced', tooltip=env.t('expandCollapse'))=env.t('advancedOptions')
|
2013-12-30 14:57:41 +00:00
|
|
|
fieldset.option-group.advanced-option(ng-class="{visuallyhidden: task._advanced}")
|
2013-12-29 06:31:28 +00:00
|
|
|
legend.option-title
|
2015-04-12 03:23:25 +00:00
|
|
|
a.hint.priority-multiplier-help(href='http://habitrpg.wikia.com/wiki/Difficulty', target='_blank', popover-title=env.t('difficultyHelpTitle'), popover-trigger='mouseenter', popover=env.t('difficultyHelpContent'))=env.t('difficulty')
|
2014-12-24 09:53:32 +00:00
|
|
|
ul.priority-multiplier
|
|
|
|
|
li
|
|
|
|
|
button(type='button', ng-class='{active: task.priority==1 || !task.priority}', ng-click='task.challenge.id || (task.priority=1)')=env.t('easy')
|
|
|
|
|
li
|
|
|
|
|
button(type='button', ng-class='{active: task.priority==1.5}', ng-click='task.challenge.id || (task.priority=1.5)')=env.t('medium')
|
|
|
|
|
li
|
|
|
|
|
button(type='button', ng-class='{active: task.priority==2}', ng-click='task.challenge.id || (task.priority=2)')=env.t('hard')
|
2013-12-29 06:31:28 +00:00
|
|
|
//span(ng-if='task.type=="daily" && !task.challenge.id')
|
|
|
|
|
span(ng-if='task.type=="daily"')
|
2014-01-06 19:36:33 +00:00
|
|
|
legend.option-title.pull-left=env.t('restoreStreak')
|
2013-12-29 06:31:28 +00:00
|
|
|
input.option-content(type='number', ng-model='task.streak')
|
|
|
|
|
|
2014-01-15 03:07:46 +00:00
|
|
|
div(ng-if='(user.preferences.allocationMode == "taskbased" && user.preferences.automaticAllocation) || $state.is("options.social.challenges")')
|
|
|
|
|
legend.option-title.pull-left=env.t('attributes')
|
2014-12-24 09:53:32 +00:00
|
|
|
ul.task-attributes
|
|
|
|
|
li
|
|
|
|
|
button(type='button', ng-class='{active: task.attribute=="str"}', ng-click='task.attribute="str"')=env.t('physical')
|
|
|
|
|
li
|
|
|
|
|
button(type='button', ng-class='{active: task.attribute=="int"}', ng-click='task.attribute="int"')=env.t('mental')
|
|
|
|
|
li
|
|
|
|
|
button(type='button', ng-class='{active: task.attribute=="con"}', ng-click='task.attribute="con"')=env.t('social')
|
|
|
|
|
li
|
|
|
|
|
button(type='button', ng-class='{active: task.attribute=="per"}', ng-click='task.attribute="per"', popover=env.t('otherExamples'), popover-trigger='mouseenter', popover-placement='top')=env.t('other')
|
|
|
|
|
|
|
|
|
|
.save-close
|
|
|
|
|
button(type='submit')=env.t('saveAndClose')
|
2013-08-25 15:47:10 +00:00
|
|
|
|
2013-10-28 01:10:22 +00:00
|
|
|
div(class='{{obj._id}}{{task.id}}-chart', ng-show='charts[obj._id+task.id]')
|