mirror of
https://github.com/sudoxnym/habitica-self-host.git
synced 2026-04-14 11:36:45 +00:00
rewrite: remove the rest of litenull_rewrite
This commit is contained in:
parent
e568a5ba31
commit
df080c4368
6 changed files with 1 additions and 515 deletions
2
Procfile
2
Procfile
|
|
@ -1 +1 @@
|
|||
web: coffee src/server.coffee
|
||||
web: node src/server.js
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
'use strict';
|
||||
|
||||
/*
|
||||
|
||||
Statz controller
|
||||
|
||||
- Retrieves statz from localStorage.
|
||||
- Exposes the model to the template and provides event handlers
|
||||
|
||||
|
||||
*/
|
||||
|
||||
|
||||
habitrpg.controller( 'StatsCtrl', function StatsCtrl( $scope, $location, filterFilter, User ) {
|
||||
$scope.refreshing = function () {
|
||||
return User.settings.fetching ? "spin" : ""
|
||||
};
|
||||
$scope.queueLength = function () {
|
||||
return User.settings.sync.queue.length || User.settings.sync.sent.length
|
||||
};
|
||||
$scope.stats = User.user.stats;
|
||||
|
||||
});
|
||||
|
|
@ -1,111 +0,0 @@
|
|||
'use strict';
|
||||
|
||||
habitrpg.controller('TasksCtrl', function TasksCtrl($scope, $rootScope, $location, filterFilter, User, Algos, Helpers, Notification) {
|
||||
|
||||
$scope.user = User.user;
|
||||
|
||||
|
||||
$scope.score = function (task, direction) {
|
||||
//save current stats to compute the difference after scoring.
|
||||
var statsDiff = {};
|
||||
var oldStats = _.clone(User.user.stats);
|
||||
|
||||
Algos.score(User.user, task, direction);
|
||||
|
||||
//compute the stats change.
|
||||
_.each(oldStats, function (value, key) {
|
||||
var newValue = User.user.stats[key];
|
||||
if (newValue !== value) {
|
||||
statsDiff[key] = newValue - value;
|
||||
}
|
||||
});
|
||||
//notify user if there are changes in stats.
|
||||
if (Object.keys(statsDiff).length > 0) {
|
||||
// Notification.push({type: 'stats', stats: statsDiff});
|
||||
}
|
||||
User.log({op: 'score', task: task, dir: direction});
|
||||
};
|
||||
|
||||
$scope.save = function(task) {
|
||||
|
||||
var ops = ([
|
||||
{op: 'set', path: "tasks." + task.id + ".text", value: task.text},
|
||||
{op: 'set', path: "tasks." + task.id + ".notes", value: task.notes},
|
||||
{op: 'set', path: "tasks." + task.id + ".up", value: task.up},
|
||||
{op: 'set', path: "tasks." + task.id + ".down", value: task.down},
|
||||
{op: 'set', path: "tasks." + task.id + ".priority", value: task.priority},
|
||||
{op: 'set', path: "tasks." + task.id + ".date", value: task.date},
|
||||
{op: 'set', path: "tasks." + task.id + ".price", value: task.price},
|
||||
])
|
||||
|
||||
_.each(task.tags, function(el, key, list) {
|
||||
ops.push({op: 'set', path: "tasks." + task.id + ".tags." + key, value: el})
|
||||
})
|
||||
|
||||
_.each(task.repeat, function(el, key, list) {
|
||||
ops.push({op: 'set', path: "tasks." + task.id + ".repeat." + key, value: el})
|
||||
})
|
||||
|
||||
User.log(ops)
|
||||
|
||||
task.editing = false
|
||||
|
||||
}
|
||||
|
||||
|
||||
$scope.getRepeat = function(task, repeat) {
|
||||
var enabled = '';
|
||||
_.each(task.repeat, function(el, key, list) {
|
||||
if (key == repeat && el == true) {
|
||||
enabled = true
|
||||
}
|
||||
})
|
||||
|
||||
if (enabled) {
|
||||
return true
|
||||
}else{
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
$scope.setRepeat = function(task, repeat) {
|
||||
|
||||
if (typeof task.repeat == 'undefined') {
|
||||
var obj = {}
|
||||
obj[repeat] = true;
|
||||
|
||||
task.repeat = {}
|
||||
task.repeat = obj
|
||||
return true
|
||||
}
|
||||
|
||||
|
||||
if (!task.repeat[repeat]) {
|
||||
task.repeat[repeat] = true
|
||||
}else{
|
||||
task.repeat[repeat] = false
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$scope.addTag = function(task, tag) {
|
||||
var obj = {}
|
||||
obj[tag] = true
|
||||
task.tags.push(obj)
|
||||
}
|
||||
|
||||
$scope.toggleTag = function(task, tag) {
|
||||
var obj = {}
|
||||
if (typeof task.tags != 'undefined') {
|
||||
if (!task.tags[tag]) {
|
||||
task.tags[tag] = false;
|
||||
}else{
|
||||
task.tags[tag] = true
|
||||
}
|
||||
}else{
|
||||
task.tags = {}
|
||||
task.tags[tag] = true
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
|
|
@ -1,74 +0,0 @@
|
|||
angular.module('notificationServices', []).
|
||||
factory('Notification', function () {
|
||||
var data = {message:''};
|
||||
var active = false;
|
||||
var timer = null;
|
||||
|
||||
return {
|
||||
|
||||
hide: function () {
|
||||
$('#notification').fadeOut(function () {
|
||||
$('#notification').css('top', '-60px').css('webkit-transform', 'none').show().css('left', '0px');
|
||||
});
|
||||
|
||||
active = false;
|
||||
timer = null;
|
||||
},
|
||||
|
||||
animate: function () {
|
||||
|
||||
if (timer) {
|
||||
clearTimeout(timer);
|
||||
timer = setTimeout(this.hide, 2000)
|
||||
}
|
||||
|
||||
if (active == false) {
|
||||
active = true;
|
||||
|
||||
$('#notification').transition({ y: 60, x: 0 });
|
||||
timer = setTimeout(this.hide, 2000);
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
push: function (message) {
|
||||
data.message = ''
|
||||
// TODO implement message growl type notifications instead.
|
||||
// {type:'stats',stats:stats} and {type:"text", text:"text"}
|
||||
// {hp:1,gp:-2.2}
|
||||
switch(message.type) {
|
||||
case 'stats':
|
||||
var keys = Object.keys(message.stats)
|
||||
_.each(keys, function(el, index) {
|
||||
if (message.stats[el] < 0) {
|
||||
data.message += el + ':' + '<font style="color:red">' + message.stats[el] + '</font>'
|
||||
}else{
|
||||
data.message += el + ':' + message.stats[el]
|
||||
}
|
||||
})
|
||||
break;
|
||||
case 'text':
|
||||
data.message = message.text
|
||||
break;
|
||||
}
|
||||
|
||||
this.animate()
|
||||
},
|
||||
|
||||
get: function () {
|
||||
return data;
|
||||
},
|
||||
|
||||
clearTimer: function () {
|
||||
clearTimeout(timer);
|
||||
timer = null;
|
||||
active = false;
|
||||
},
|
||||
|
||||
init: function () {
|
||||
timer = setTimeout(this.hide, 2000);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
<div class='login-page' ng-controller='AuthCtrl'>
|
||||
|
||||
<h2>Existing User</h2>
|
||||
<div>
|
||||
<!-- Facebook -->
|
||||
<button class='btn' ng-click="Facebook.login()">Connect with Facebook</button>
|
||||
<div ng-show="Facebook.getAuth()">
|
||||
<h4>Access Token:</h4>
|
||||
|
||||
<p ng-bind="Facebook.getAuth().accessToken"></p>
|
||||
<button class='btn btn-small' ng-click="Facebook.logout()">Logout</button>
|
||||
</div>
|
||||
<div id='fb-root'></div>
|
||||
|
||||
<button class='btn' ng-click="showLocalLogin = !showLocalLogin;">Username / Password</button>
|
||||
<form ng-show="showLocalLogin" ng-submit="localLogin()">
|
||||
<label for="username">Username</label><input type='text' id="username" required />
|
||||
<label for="password">Password</label><input type='password' id="password" required />
|
||||
<input class='btn' type='submit' value="Submit" />
|
||||
</form>
|
||||
|
||||
<button class='btn' ng-click="showAPILogin = !showAPILogin;">ID / API Token</button>
|
||||
<form ng-show="showAPILogin" ng-submit="apiLogin()" id="apiLoginForm">
|
||||
<label for="uuid">UUID</label><input type='text' id="uuid" required />
|
||||
<label for="apiToken">API Token</label><input type='text' id="apiToken" required />
|
||||
<input class='btn' type='submit' value="Submit" />
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
<h2>New User</h2>
|
||||
<button class='btn' ng-click="newGame()">Start New Game</button>
|
||||
|
||||
</div>
|
||||
|
|
@ -1,272 +0,0 @@
|
|||
<div ng-controller="NotificationCtrl">
|
||||
<div id="notification"><div ng-bind-html-unsafe="data.message">aaaa</div></div>
|
||||
</div>
|
||||
|
||||
<div id="wrap">
|
||||
<div ng-controller="TasksCtrl">
|
||||
<div id="main" class="grid">
|
||||
<div class="module">
|
||||
<div class="task-column habits">
|
||||
<h2 class="task-column_title">Habits</h2>
|
||||
<form id="new-habit" class="addtask-form form-inline new-task-form " ng-submit="addTask('habit')">
|
||||
<span class="addtask-field">
|
||||
<input value="" type="text" placeholder="New Habit" ng-model="newTaskHabit">
|
||||
</span>
|
||||
<input class="addtask-btn" type="submit" value="+">
|
||||
</form>
|
||||
<hr>
|
||||
<ul class="habits ui-sortable" sort>
|
||||
<li ng-repeat="task in tasks() | filter:{type:'habit'}" class="task habit {{getClass(task)}}" ng-class="{'habit-wide':task.up && task.down}">
|
||||
<div class="task-meta-controls">
|
||||
<a rel="toolitp" ng-click="editTask(task)"><i class="icon-pencil"></i></a>
|
||||
<a rel="toolitp"><i class="icon-trash" ng-click="deleteTask(task)"></i></a>
|
||||
<a rel="toolitp"><i class="icon-signal"></i></a>
|
||||
<a rel="toolitp" ng-show="task.notes"><i class="icon-comment"></i></a>
|
||||
</div>
|
||||
<div class="task-controls task-primary">
|
||||
<a class="task-action-btn" ng-click="score(task, 'up')" ng-show="task.up == true">+</a>
|
||||
<a class="task-action-btn" ng-click="score(task, 'down')" ng-show="task.down == true" style="margin-left:-3px">−</a>
|
||||
</div>
|
||||
<p class="task-text">{{task.text}}</p>
|
||||
<div ng-show="task.editing == true">
|
||||
<div class="task-options">
|
||||
<fieldset class="option-group">
|
||||
<label class="option-title">Text</label>
|
||||
<input class="option-content" type="text" value="{{task.text}}" ng-model="task.text">
|
||||
<label class="option-title">Extra notes</label>
|
||||
<textarea class="option-content" rows="3" ng-model="task.notes">{{task.notes}}</textarea>
|
||||
</fieldset>
|
||||
<fieldset class="option-group">
|
||||
|
||||
<legend class="option-title">Direction/Actions</legend>
|
||||
<span class="task-checker action-plusminus select-toggle">
|
||||
<input id="{{task.id}}-option-plus" class="visuallyhidden focusable" type="checkbox" checked="" autocomplete="off" ng-model="task.up">
|
||||
<label for="{{task.id}}-option-plus"></label>
|
||||
</span>
|
||||
<span class="task-checker action-plusminus select-toggle">
|
||||
<input id="{{task.id}}-option-minus" class="visuallyhidden focusable" type="checkbox" checked="" autocomplete="off" ng-model="task.down">
|
||||
<label for="{{task.id}}-option-minus"></label>
|
||||
</span>
|
||||
</fieldset>
|
||||
<fieldset class="option-group">
|
||||
<legend class="option-title">Tags</legend>
|
||||
<label class="checkbox" ng-repeat="tag in user.tags">
|
||||
<input type="checkbox" autocomplete="off" ng-model="task['tags'][tag.id]">
|
||||
{{tag.name}}
|
||||
</fieldset>
|
||||
<p class="option-title mega"><a href="" ng-click="showAdvancedOptions(task)">Advanced options</a></p>
|
||||
<fieldset class="option-group advanced-option" ng-show="task.advanced">
|
||||
<legend class="option-title">
|
||||
<i class="icon-question-sign"></i>
|
||||
Difficulty
|
||||
</legend>
|
||||
<div class="task-controls tile-group priority-multiplier">
|
||||
<button type="button" class="task-action-btn tile" data-priority="!" ng-class="{active:getPriority(task, '!')}" ng-click="setPriority(task, '!')">Easy</button>
|
||||
<button type="button" class="task-action-btn tile " data-priority="!!" ng-class="{active: getPriority(task, '!!')}" ng-click="setPriority(task, '!!')">Medium</button>
|
||||
<button type="button" class="task-action-btn tile " data-priority="!!!" ng-class="{active: getPriority(task, '!!!')}" ng-click="setPriority(task, '!!!')">Hard</button>
|
||||
</div>
|
||||
</fieldset>
|
||||
<fieldset class="option-group">
|
||||
<button type="submit" class="task-action-btn tile spacious" ng-click="save(task)">Save & Close</button>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="module">
|
||||
<div class="task-column dailies">
|
||||
<h2 class="task-column_title">Dailies</h2>
|
||||
<form id="new-habit" class="addtask-form form-inline new-task-form " data-task-type="habit" ng-submit="addTask('daily')">
|
||||
<span class="addtask-field">
|
||||
<input value="" type="text" placeholder="New Daily" ng-model="newTaskDailies"></span>
|
||||
<input class="addtask-btn" type="submit" value="+">
|
||||
</form>
|
||||
<hr>
|
||||
<ul class="habits ui-sortable" sort>
|
||||
<li ng-repeat="task in tasks() | filter:{type:'daily'}" class="task habit {{getClass(task)}}">
|
||||
<div class="task-meta-controls">
|
||||
<a rel="toolitp"><i class="icon-pencil" ng-click="editTask(task)"></i></a>
|
||||
<a rel="toolitp"><i class="icon-trash" ng-click="deleteTask(task)"></i></a>
|
||||
<a rel="toolitp"><i class="icon-signal"></i></a>
|
||||
<a rel="toolitp"><i class="icon-comment" ng-show="task.notes"></i></a>
|
||||
</div>
|
||||
<div class="task-controls task-primary">
|
||||
<span class="task-checker action-yesno">
|
||||
<input id="{{task.id}}" type="checkbox" class="visuallyhidden focusable" autocomplete="off" ng-model="task.completed" ng-change="changeCheck(task)">
|
||||
<label for="{{task.id}}"></label>
|
||||
</span>
|
||||
</div>
|
||||
<p class="task-text">{{task.text}}</p>
|
||||
<div ng-show="task.editing == true">
|
||||
<div class="task-options">
|
||||
<fieldset class="option-group">
|
||||
<label class="option-title">Text</label>
|
||||
<input class="option-content" type="text" value="{{task.text}}" ng-model="task.text">
|
||||
<label class="option-title">Extra notes</label>
|
||||
<textarea class="option-content" rows="3" ng-model="task.notes">{{task.notes}}</textarea>
|
||||
</fieldset>
|
||||
<fieldset class="option-group">
|
||||
<legend class="option-title">Repeat</legend>
|
||||
<div class="task-controls tile-group repeat-days">
|
||||
<button type="button" class="task-action-btn tile" ng-class="{active:getRepeat(task, 'su')}" ng-click="setRepeat(task, 'su')">Su</button>
|
||||
<button type="button" class="task-action-btn tile" ng-class="{active:getRepeat(task, 'm')}" ng-click="setRepeat(task, 'm')">M</button>
|
||||
<button type="button" class="task-action-btn tile" ng-class="{active:getRepeat(task, 't')}" ng-click="setRepeat(task, 't')">T</button>
|
||||
<button type="button" class="task-action-btn tile" ng-class="{active:getRepeat(task, 'w')}" ng-click="setRepeat(task, 'w')">W</button>
|
||||
<button type="button" class="task-action-btn tile" ng-class="{active:getRepeat(task, 'th')}" ng-click="setRepeat(task, 'th')">Th</button>
|
||||
<button type="button" class="task-action-btn tile" ng-class="{active:getRepeat(task, 'f')}" ng-click="setRepeat(task, 'f')">F</button>
|
||||
<button type="button" class="task-action-btn tile" ng-class="{active:getRepeat(task, 's')}" ng-click="setRepeat(task, 's')">S</button>
|
||||
</div>
|
||||
</fieldset>
|
||||
<fieldset class="option-group">
|
||||
<legend class="option-title">Tags</legend>
|
||||
<label class="checkbox" ng-repeat="tag in user.tags">
|
||||
<input type="checkbox" autocomplete="off" ng-model="task.tags[tag.id]">
|
||||
{{tag.name}}
|
||||
</fieldset>
|
||||
<p class="option-title mega"><a href="" ng-click="showAdvancedOptions(task)">Advanced options</a></p>
|
||||
<fieldset class="option-group advanced-option" ng-show="task.advanced">
|
||||
<legend class="option-title">
|
||||
<i class="icon-question-sign"></i>
|
||||
Difficulty
|
||||
</legend>
|
||||
<div class="task-controls tile-group priority-multiplier">
|
||||
<button type="button" class="task-action-btn tile" data-priority="!" ng-class="{active:getPriority(task, '!')}" ng-click="setPriority(task, '!')">Easy</button>
|
||||
<button type="button" class="task-action-btn tile " data-priority="!!" ng-class="{active: getPriority(task, '!!')}" ng-click="setPriority(task, '!!')">Medium</button>
|
||||
<button type="button" class="task-action-btn tile " data-priority="!!!" ng-class="{active: getPriority(task, '!!!')}" ng-click="setPriority(task, '!!!')">Hard</button>
|
||||
</div>
|
||||
</fieldset>
|
||||
<fieldset class="option-group">
|
||||
<button type="submit" class="task-action-btn tile spacious" ng-click="save(task)">Save & Close</button>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="module">
|
||||
<div class="task-column todos">
|
||||
<h2 class="task-column_title">Todos</h2>
|
||||
<form id="new-habit" class="addtask-form form-inline new-task-form " data-task-type="habit" ng-submit="addTask('todo')">
|
||||
<span class="addtask-field">
|
||||
<input value="" type="text" placeholder="New Todo" ng-model="newTaskTodo">
|
||||
</span>
|
||||
<input class="addtask-btn" type="submit" value="+">
|
||||
</form>
|
||||
<hr>
|
||||
<ul class="habits ui-sortable" sort>
|
||||
<li ng-repeat="task in tasks() | filter:{type:'todo'}" class="task habit {{getClass(task)}}">
|
||||
<div class="task-meta-controls">
|
||||
<a rel="toolitp"><i class="icon-pencil" ng-click="editTask(task)"></i></a>
|
||||
<a rel="toolitp"><i class="icon-trash" ng-click="deleteTask(task)"></i></a>
|
||||
<a rel="toolitp"><i class="icon-comment" ng-show="task.notes"></i></a>
|
||||
</div>
|
||||
<div class="task-controls task-primary">
|
||||
<span class="task-checker action-yesno">
|
||||
<input type="checkbox" class="visuallyhidden focusable" autocomplete="off" ng-model="task.completed" ng-model="task.completed" ng-change="changeCheck(task)" id="{{task.id}}">
|
||||
<label for="{{task.id}}"></label>
|
||||
</span>
|
||||
</div>
|
||||
<p class="task-text">{{task.text}}</p>
|
||||
<div ng-show="task.editing == true">
|
||||
<div class="task-options">
|
||||
<fieldset class="option-group">
|
||||
<label class="option-title">Text</label>
|
||||
<input class="option-content" type="text" value="{{task.text}}" ng-model="task.text">
|
||||
<label class="option-title">Extra notes</label>
|
||||
<textarea class="option-content" rows="3" ng-model="task.notes">{{task.notes}}</textarea>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend class="option-title">Due date</legend>
|
||||
<input class="option-content" type="date" ng-model="task.date">
|
||||
<div class="money input-suffix">
|
||||
<span class="shop-gold"></span>
|
||||
</div>
|
||||
<fieldset class="option-group">
|
||||
<legend class="option-title">Tags</legend>
|
||||
<label class="checkbox" ng-repeat="tag in user.tags">
|
||||
<input type="checkbox" autocomplete="off" ng-model="task.tags[tag.id]">
|
||||
{{tag.name}}
|
||||
</fieldset>
|
||||
<p class="option-title mega"><a href="" ng-click="showAdvancedOptions(task)">Advanced options</a></p>
|
||||
<fieldset class="option-group advanced-option" ng-show="task.advanced">
|
||||
<legend class="option-title">
|
||||
<i class="icon-question-sign"></i>
|
||||
Difficulty
|
||||
</legend>
|
||||
<div class="task-controls tile-group priority-multiplier">
|
||||
<button type="button" class="task-action-btn tile" data-priority="!" ng-class="{active:getPriority(task, '!')}" ng-click="setPriority(task, '!')">Easy</button>
|
||||
<button type="button" class="task-action-btn tile " data-priority="!!" ng-class="{active: getPriority(task, '!!')}" ng-click="setPriority(task, '!!')">Medium</button>
|
||||
<button type="button" class="task-action-btn tile " data-priority="!!!" ng-class="{active: getPriority(task, '!!!')}" ng-click="setPriority(task, '!!!')">Hard</button>
|
||||
</div>
|
||||
</fieldset>
|
||||
<fieldset class="option-group">
|
||||
<button type="submit" class="task-action-btn tile spacious" ng-click="save(task)">Save & Close</button>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="module rewards-module">
|
||||
<div class="task-column rewards">
|
||||
<span class="option-box pull-right wallet">
|
||||
<div class="money">
|
||||
{{money_gold}}
|
||||
<span class="shop_gold" rel="tooltip" data-original-title="Gold"></span>
|
||||
</div>
|
||||
<div class="money">
|
||||
{{money_silver}}
|
||||
<span class="shop_silver" rel="tooltip" data-original-title="Silver"></span>
|
||||
</div>
|
||||
</span>
|
||||
<h2 class="task-column_title">Rewards</h2>
|
||||
<form id="new-habit" class="addtask-form form-inline new-task-form " data-task-type="habit" onsubmit="return false"><span class="addtask-field"><input id="$2y" value="" type="text" placeholder="New Habit"></span><input class="addtask-btn" type="submit" value="+"></form>
|
||||
<hr>
|
||||
<ul class="habits ui-sortable" sort>
|
||||
<li ng-repeat="task in tasks() | filter:{type:'reward'}" class="task reward">
|
||||
<div class="task-meta-controls">
|
||||
<a rel="toolitp" data-original-title="Edit"><i class="icon-pencil" ng-click="editTask(task)"></i></a>
|
||||
<a rel="toolitp" data-original-title="Delete"><i class="icon-trash" ng-click="deleteTask(task)"></i></a>
|
||||
<a rel="toolitp"><i class="icon-comment" ng-show="task.notes"></i></a>
|
||||
</div>
|
||||
<div class="task-controls task-primary">
|
||||
<a class="money btn-buy" ng-click="score(task, 'down')">
|
||||
<span class="reward-cost">{{task.value}}</span>
|
||||
<span class="shop_gold"></span>
|
||||
</a>
|
||||
</div>
|
||||
<p class="task-text">{{task.text}}</p>
|
||||
<div ng-show="task.editing == true">
|
||||
<div class="task-options">
|
||||
<fieldset class="option-group">
|
||||
<label class="option-title">Text</label>
|
||||
<input class="option-content" type="text" value="{{task.text}}" ng-model="task.text">
|
||||
<label class="option-title">Extra notes</label>
|
||||
<textarea class="option-content" rows="3" ng-model="task.notes">{{task.notes}}</textarea>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend class="option-title">Price:</legend>
|
||||
<input class="option-content" type="number" ng-model="task.price">
|
||||
<fieldset class="option-group">
|
||||
<legend class="option-title">Tags</legend>
|
||||
<label class="checkbox" ng-repeat="tag in user.tags">
|
||||
<input type="checkbox" autocomplete="off" ng-model="task.tags[tag.id]">
|
||||
{{tag.name}}
|
||||
</fieldset>
|
||||
<fieldset class="option-group">
|
||||
<button type="submit" class="task-action-btn tile spacious" ng-click="save(task)">Save & Close</button>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
Loading…
Reference in a new issue