From 81c8743de72b0c0433cd7efa11bbc2cd2768028b Mon Sep 17 00:00:00 2001 From: Bel LaPointe Date: Sat, 17 Jul 2021 10:34:22 -0600 Subject: [PATCH] accept loop param on task --- public/index.html | 6 +++++- public/mytinytodo.js | 20 ++++++++++++++------ public/mytinytodo_ajax_storage.js | 6 ++++-- server/ajax/form/form.go | 5 +++++ server/ajax/task/task.go | 9 ++++++--- 5 files changed, 34 insertions(+), 12 deletions(-) diff --git a/public/index.html b/public/index.html index 57c854c..485a981 100755 --- a/public/index.html +++ b/public/index.html @@ -25,7 +25,7 @@ window.location.href += '/?pda'; } - + mytinytodo.mttUrl = "/"; mytinytodo.templateUrl = "/themes/default/"; mytinytodo.db = new mytinytodoStorageAjax(mytinytodo); @@ -168,6 +168,10 @@ Due +
+ Loop + +
Task
diff --git a/public/mytinytodo.js b/public/mytinytodo.js index e5bc4e8..44882d5 100755 --- a/public/mytinytodo.js +++ b/public/mytinytodo.js @@ -1354,6 +1354,7 @@ function getGetParamValue(url, paramName) { form.tags.value = item.tags.split(',').join(', '); form.duedate.value = item.duedate; form.prio.value = item.prio; + form.loop.value = item.loop; $('#taskedit-date .date-created>span').text(item.date); if (item.compl) $('#taskedit-date .date-completed').show().find('span').text(item.dateCompleted); else $('#taskedit-date .date-completed').hide(); @@ -1370,6 +1371,7 @@ function getGetParamValue(url, paramName) { form.duedate.value = ''; form.prio.value = '0'; form.id.value = ''; + form.loop.value = ''; toggleEditAllTags(0); } @@ -1408,11 +1410,16 @@ function getGetParamValue(url, paramName) { if (flag.readOnly) return false; if (form.isadd.value != 0) return submitFullTask(form); - - _mtt.db.request('editTask', { - id: form.id.value, title: form.task.value, note: form.note.value, - prio: form.prio.value, tags: form.tags.value, duedate: form.duedate.value - }, + var requestBody = { + id: form.id.value, + title: form.task.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) { if (!parseInt(json.total)) return; var item = json.list[0]; @@ -1531,7 +1538,8 @@ function getGetParamValue(url, paramName) { note: form.note.value, prio: form.prio.value, tags: form.tags.value, - duedate: form.duedate.value + duedate: form.duedate.value, + loop: form.loop.value }, function (json) { if (!parseInt(json.total)) return; form.task.value = ''; diff --git a/public/mytinytodo_ajax_storage.js b/public/mytinytodo_ajax_storage.js index f1badba..2e66ce3 100755 --- a/public/mytinytodo_ajax_storage.js +++ b/public/mytinytodo_ajax_storage.js @@ -64,7 +64,8 @@ note: params.note, prio: params.prio, tags: params.tags, - duedate: params.duedate + duedate: params.duedate, + loop: params.loop, }, callback, 'json'); }, @@ -78,7 +79,8 @@ note: params.note, prio: params.prio, tags: params.tags, - duedate: params.duedate + duedate: params.duedate, + loop: params.loop, }, callback, 'json'); }, diff --git a/server/ajax/form/form.go b/server/ajax/form/form.go index b42e152..4539e3b 100755 --- a/server/ajax/form/form.go +++ b/server/ajax/form/form.go @@ -60,6 +60,11 @@ func ToStrArr(k string) []string { return outArr } +func ToDuration(s string) time.Duration { + d, _ := time.ParseDuration(s) + return d +} + func ToTime(s string) time.Time { v, err := time.Parse("2006-01-02 15:04:05", s) if err != nil || v.IsZero() { diff --git a/server/ajax/task/task.go b/server/ajax/task/task.go index 1730ca3..eb25a21 100755 --- a/server/ajax/task/task.go +++ b/server/ajax/task/task.go @@ -23,6 +23,7 @@ type Task struct { Complete bool Note []string Due time.Time + Loop time.Duration 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")))...), Created: 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")) return task, task.validate() @@ -73,7 +74,8 @@ func (t *Task) MarshalJSON() ([]byte, error) { // "dueClass":"", // "dueStr":"", // "dueInt":33330000, - // "dueTitle":"Due "} + // "dueTitle":"Due ", + // "loop": "1m"} // ]} fullFormat := "02 Jan 2006 03:04 PM" shortFormat := "02 Jan" @@ -109,6 +111,7 @@ func (t *Task) MarshalJSON() ([]byte, error) { "dueStr": t.Due.Format(shortFormat), "dueInt": t.Due.Unix(), "dueTitle": "Due ", + "loop": t.Loop.String(), } if t.Due.IsZero() { for k := range m {