Reverted input field back to richtext because of line wrapping issues
Added priority, project, and context selection to the edit view Fixed replace flag when closing popups to avoid race conditions
This commit is contained in:
parent
23991a26de
commit
7316f8c67e
3 changed files with 123 additions and 3 deletions
|
@ -22,9 +22,28 @@ enyo.kind({
|
||||||
"onSave": ""
|
"onSave": ""
|
||||||
},
|
},
|
||||||
components: [
|
components: [
|
||||||
|
{name: "insertPopup", kind: "ModalDialog", dismissWithClick: true,
|
||||||
|
components: [
|
||||||
|
{name: "projects", kind: "RowGroup", caption: "Projects"},
|
||||||
|
{name: "contexts", kind: "RowGroup", caption: "Contexts"},
|
||||||
|
{kind: "Button", caption: "Dismiss", onclick: "closePopup"}
|
||||||
|
]},
|
||||||
|
{name: "filterToolbar", kind: "Toolbar", pack: "justify", className: "enyo-toolbar-light",
|
||||||
|
components: [
|
||||||
|
{kind: "RadioGroup", name: "priGroup",
|
||||||
|
onChange: "setPriority", components: [
|
||||||
|
{caption: "-", value: "-"},
|
||||||
|
{caption: "A", value: "A"},
|
||||||
|
{caption: "B", value: "B"},
|
||||||
|
{caption: "C", value: "C"},
|
||||||
|
{caption: "D", value: "D"},
|
||||||
|
{caption: "E", value: "E"}
|
||||||
|
]},
|
||||||
|
{kind: "Button", caption: "+", onclick: "showInsert"}
|
||||||
|
]
|
||||||
|
},
|
||||||
{flex: 1, kind: "Scroller", components: [
|
{flex: 1, kind: "Scroller", components: [
|
||||||
{kind: "Input", name: "tododetail"},
|
{kind: "RichText", name: "tododetail", richContent: false},
|
||||||
]},
|
]},
|
||||||
{name: "editToolbar", kind: "Toolbar", pack: "justify", className: "enyo-toolbar-light",
|
{name: "editToolbar", kind: "Toolbar", pack: "justify", className: "enyo-toolbar-light",
|
||||||
components: [
|
components: [
|
||||||
|
@ -35,6 +54,63 @@ enyo.kind({
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
]
|
],
|
||||||
|
|
||||||
|
setPriority: function(inSender) {
|
||||||
|
var pri = inSender.getValue();
|
||||||
|
var val = this.$.tododetail.getValue();
|
||||||
|
val = val.replace(/^\([A-E]\)\s/,"")
|
||||||
|
if (pri.match(/[A-E]/)) {
|
||||||
|
this.$.tododetail.setValue(
|
||||||
|
"(" + pri + ") " + val);
|
||||||
|
} else {
|
||||||
|
this.$.tododetail.setValue( val );
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
showInsert: function() {
|
||||||
|
this.$.insertPopup.openAtCenter();
|
||||||
|
this.projectList = this.owner.$.listView.getProjectList();
|
||||||
|
for (i=0; i<this.projectList.length; i++) {
|
||||||
|
var project = this.projectList[i];
|
||||||
|
var name = project.replace(/^\+/,"PRJ_");
|
||||||
|
this.$.projects.createComponent(
|
||||||
|
{content: project, name: name, owner: this,
|
||||||
|
onclick: "insert"}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
this.$.projects.render();
|
||||||
|
this.contextList = this.owner.$.listView.getContextList();
|
||||||
|
for (i=0; i<this.contextList.length; i++) {
|
||||||
|
var context = this.contextList[i];
|
||||||
|
var name = context.replace(/^@/,"CTX_");
|
||||||
|
this.$.contexts.createComponent(
|
||||||
|
{content: context, name: name, owner: this,
|
||||||
|
onclick: "insert"}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
this.$.contexts.render();
|
||||||
|
},
|
||||||
|
|
||||||
|
closePopup: function() {
|
||||||
|
for (i=0; i<this.projectList.length; i++) {
|
||||||
|
var name = this.projectList[i].replace(/^\+/,"PRJ_");
|
||||||
|
eval("this.$."+name+".destroy()");
|
||||||
|
}
|
||||||
|
this.$.projects.render();
|
||||||
|
for (i=0; i<this.contextList.length; i++) {
|
||||||
|
var name = this.contextList[i].replace(/^@/,"CTX_");
|
||||||
|
eval("this.$."+name+".destroy()");
|
||||||
|
}
|
||||||
|
this.$.contexts.render();
|
||||||
|
this.$.insertPopup.close();
|
||||||
|
},
|
||||||
|
|
||||||
|
insert: function(inSender, inEvent) {
|
||||||
|
var val = this.$.tododetail.getValue();
|
||||||
|
this.$.tododetail.setValue(val + " " + inSender.content);
|
||||||
|
this.closePopup();
|
||||||
|
this.$.tododetail.forceFocus();
|
||||||
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
|
@ -23,6 +23,9 @@ enyo.kind({
|
||||||
sortOrder: "pri",
|
sortOrder: "pri",
|
||||||
cacheChanges: "NO",
|
cacheChanges: "NO",
|
||||||
searchFilter: null,
|
searchFilter: null,
|
||||||
|
priorityList: [],
|
||||||
|
projectList: [],
|
||||||
|
contextList: [],
|
||||||
sortedList: undefined
|
sortedList: undefined
|
||||||
},
|
},
|
||||||
events: {
|
events: {
|
||||||
|
@ -105,6 +108,35 @@ enyo.kind({
|
||||||
var r = this.sortedList[inIndex];
|
var r = this.sortedList[inIndex];
|
||||||
|
|
||||||
if (r) {
|
if (r) {
|
||||||
|
//TODO: currently not used, is it needed in future?
|
||||||
|
if (this.priorityListReset) {
|
||||||
|
this.priorityList = [];
|
||||||
|
this.priorityListReset = false;
|
||||||
|
}
|
||||||
|
if (r.pri) {
|
||||||
|
if (this.priorityList.indexOf(r.pri[0]) == -1)
|
||||||
|
this.priorityList.push(r.pri[0]);
|
||||||
|
} //TODO: end quetionable code
|
||||||
|
if (this.projectListReset) {
|
||||||
|
this.projectList = [];
|
||||||
|
this.projectListReset = false;
|
||||||
|
}
|
||||||
|
var project = r.detail.match(/\+[^\s]+/);
|
||||||
|
if (project) {
|
||||||
|
project = project[0].replace(/\./,"");
|
||||||
|
if (this.projectList.indexOf(project) == -1)
|
||||||
|
this.projectList.push(project);
|
||||||
|
}
|
||||||
|
if (this.contextListReset) {
|
||||||
|
this.contextList = [];
|
||||||
|
this.contextListReset = false;
|
||||||
|
}
|
||||||
|
var context = r.detail.match(/\@[^\s]+/);
|
||||||
|
if (context) {
|
||||||
|
context = context[0].replace(/\./,"");
|
||||||
|
if (this.contextList.indexOf(context) == -1)
|
||||||
|
this.contextList.push(context);
|
||||||
|
}
|
||||||
var filtered = false;
|
var filtered = false;
|
||||||
var s = r.detail.replace(/^x\s/,"");
|
var s = r.detail.replace(/^x\s/,"");
|
||||||
var s = s.replace(/^\([A-E]\)\s/,"");
|
var s = s.replace(/^\([A-E]\)\s/,"");
|
||||||
|
@ -134,6 +166,9 @@ enyo.kind({
|
||||||
this.$.todoRow.hide();
|
this.$.todoRow.hide();
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
} else {
|
||||||
|
this.priorityListReset = true;
|
||||||
|
this.projectListReset = true;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -186,6 +221,13 @@ enyo.kind({
|
||||||
},
|
},
|
||||||
|
|
||||||
updateTodoItem: function() {
|
updateTodoItem: function() {
|
||||||
|
if (this.owner.todoList[this.selectedId].pri) {
|
||||||
|
var pri = this.owner.todoList[this.selectedId].pri[0];
|
||||||
|
pri = pri.replace(/^\(([A-E])\)\s.*$/,"$1");
|
||||||
|
this.owner.$.editView.$.priGroup.setValue(pri);
|
||||||
|
} else {
|
||||||
|
this.owner.$.editView.$.priGroup.setValue("-");
|
||||||
|
}
|
||||||
this.owner.$.editView.$.tododetail.setValue(this.owner.todoList[this.selectedId].detail);
|
this.owner.$.editView.$.tododetail.setValue(this.owner.todoList[this.selectedId].detail);
|
||||||
this.replaceItem = true;
|
this.replaceItem = true;
|
||||||
this.owner.showEditView();
|
this.owner.showEditView();
|
||||||
|
|
|
@ -200,6 +200,7 @@ enyo.kind({
|
||||||
this.$.viewTitle.setContent("update task");
|
this.$.viewTitle.setContent("update task");
|
||||||
} else {
|
} else {
|
||||||
this.$.viewTitle.setContent("add task");
|
this.$.viewTitle.setContent("add task");
|
||||||
|
this.$.editView.$.priGroup.setValue("-");
|
||||||
}
|
}
|
||||||
this.$.editView.$.tododetail.forceFocus();
|
this.$.editView.$.tododetail.forceFocus();
|
||||||
},
|
},
|
||||||
|
@ -230,6 +231,7 @@ enyo.kind({
|
||||||
},
|
},
|
||||||
|
|
||||||
closeView: function() {
|
closeView: function() {
|
||||||
|
this.$.listView.setReplaceItem(false);
|
||||||
this.$.editView.$.tododetail.setValue("");
|
this.$.editView.$.tododetail.setValue("");
|
||||||
this.$.pane.selectViewByName("listView");
|
this.$.pane.selectViewByName("listView");
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in a new issue