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
+
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 {