accept loop param on task

master
Bel LaPointe 2021-07-17 10:34:22 -06:00
parent 6abfab229a
commit 81c8743de7
5 changed files with 34 additions and 12 deletions

View File

@ -168,6 +168,10 @@
<span class="h">Due </span> <span class="h">Due </span>
<input name="duedate" id="duedate" value="" class="in100" title="Y-M-D, M/D/Y, D.M.Y, M/D, D.M" autocomplete="off"/> <input name="duedate" id="duedate" value="" class="in100" title="Y-M-D, M/D/Y, D.M.Y, M/D, D.M" autocomplete="off"/>
</div> </div>
<div class="form-row form-row-short">
<span class="h">Loop </span>
<input type="text" name="loop" value="" class="in100" maxlength="20"/>
</div>
<div class="form-row-short-end"></div> <div class="form-row-short-end"></div>
<div class="form-row"> <div class="form-row">
<div class="h">Task</div> <div class="h">Task</div>

View File

@ -1354,6 +1354,7 @@ function getGetParamValue(url, paramName) {
form.tags.value = item.tags.split(',').join(', '); form.tags.value = item.tags.split(',').join(', ');
form.duedate.value = item.duedate; form.duedate.value = item.duedate;
form.prio.value = item.prio; form.prio.value = item.prio;
form.loop.value = item.loop;
$('#taskedit-date .date-created>span').text(item.date); $('#taskedit-date .date-created>span').text(item.date);
if (item.compl) $('#taskedit-date .date-completed').show().find('span').text(item.dateCompleted); if (item.compl) $('#taskedit-date .date-completed').show().find('span').text(item.dateCompleted);
else $('#taskedit-date .date-completed').hide(); else $('#taskedit-date .date-completed').hide();
@ -1370,6 +1371,7 @@ function getGetParamValue(url, paramName) {
form.duedate.value = ''; form.duedate.value = '';
form.prio.value = '0'; form.prio.value = '0';
form.id.value = ''; form.id.value = '';
form.loop.value = '';
toggleEditAllTags(0); toggleEditAllTags(0);
} }
@ -1408,11 +1410,16 @@ function getGetParamValue(url, paramName) {
if (flag.readOnly) return false; if (flag.readOnly) return false;
if (form.isadd.value != 0) if (form.isadd.value != 0)
return submitFullTask(form); return submitFullTask(form);
var requestBody = {
_mtt.db.request('editTask', { id: form.id.value,
id: form.id.value, title: form.task.value, note: form.note.value, title: form.task.value,
prio: form.prio.value, tags: form.tags.value, duedate: form.duedate.value note: form.note.value,
}, prio: form.prio.value,
tags: form.tags.value,
duedate: form.duedate.value,
loop: form.loop.value,
}
_mtt.db.request('editTask', requestBody,
function (json) { function (json) {
if (!parseInt(json.total)) return; if (!parseInt(json.total)) return;
var item = json.list[0]; var item = json.list[0];
@ -1531,7 +1538,8 @@ function getGetParamValue(url, paramName) {
note: form.note.value, note: form.note.value,
prio: form.prio.value, prio: form.prio.value,
tags: form.tags.value, tags: form.tags.value,
duedate: form.duedate.value duedate: form.duedate.value,
loop: form.loop.value
}, function (json) { }, function (json) {
if (!parseInt(json.total)) return; if (!parseInt(json.total)) return;
form.task.value = ''; form.task.value = '';

View File

@ -64,7 +64,8 @@
note: params.note, note: params.note,
prio: params.prio, prio: params.prio,
tags: params.tags, tags: params.tags,
duedate: params.duedate duedate: params.duedate,
loop: params.loop,
}, },
callback, 'json'); callback, 'json');
}, },
@ -78,7 +79,8 @@
note: params.note, note: params.note,
prio: params.prio, prio: params.prio,
tags: params.tags, tags: params.tags,
duedate: params.duedate duedate: params.duedate,
loop: params.loop,
}, },
callback, 'json'); callback, 'json');
}, },

View File

@ -60,6 +60,11 @@ func ToStrArr(k string) []string {
return outArr return outArr
} }
func ToDuration(s string) time.Duration {
d, _ := time.ParseDuration(s)
return d
}
func ToTime(s string) time.Time { func ToTime(s string) time.Time {
v, err := time.Parse("2006-01-02 15:04:05", s) v, err := time.Parse("2006-01-02 15:04:05", s)
if err != nil || v.IsZero() { if err != nil || v.IsZero() {

View File

@ -23,6 +23,7 @@ type Task struct {
Complete bool Complete bool
Note []string Note []string
Due time.Time Due time.Time
Loop time.Duration
Index int Index int
} }
@ -42,8 +43,8 @@ func New(r *http.Request) (*Task, error) {
Tags: append(StrList(form.ToStrArr(form.Get(r, "tag"))), StrList(form.ToStrArr(form.Get(r, "tags")))...), Tags: append(StrList(form.ToStrArr(form.Get(r, "tag"))), StrList(form.ToStrArr(form.Get(r, "tags")))...),
Created: time.Now(), Created: time.Now(),
Edited: time.Now(), Edited: time.Now(),
Due: form.ToTime(form.Get(r, "duedate")),
Due: form.ToTime(form.Get(r, "duedate")), Loop: form.ToDuration(form.Get(r, "loop")),
} }
task.SetNote(form.Get(r, "note")) task.SetNote(form.Get(r, "note"))
return task, task.validate() return task, task.validate()
@ -73,7 +74,8 @@ func (t *Task) MarshalJSON() ([]byte, error) {
// "dueClass":"", // "dueClass":"",
// "dueStr":"", // "dueStr":"",
// "dueInt":33330000, // "dueInt":33330000,
// "dueTitle":"Due "} // "dueTitle":"Due ",
// "loop": "1m"}
// ]} // ]}
fullFormat := "02 Jan 2006 03:04 PM" fullFormat := "02 Jan 2006 03:04 PM"
shortFormat := "02 Jan" shortFormat := "02 Jan"
@ -109,6 +111,7 @@ func (t *Task) MarshalJSON() ([]byte, error) {
"dueStr": t.Due.Format(shortFormat), "dueStr": t.Due.Format(shortFormat),
"dueInt": t.Due.Unix(), "dueInt": t.Due.Unix(),
"dueTitle": "Due ", "dueTitle": "Due ",
"loop": t.Loop.String(),
} }
if t.Due.IsZero() { if t.Due.IsZero() {
for k := range m { for k := range m {