From 2966359ccecae4631f81c9e2316d949340bcaaf1 Mon Sep 17 00:00:00 2001 From: Jan Schneider Date: Fri, 6 Nov 2009 18:00:44 +0100 Subject: [PATCH] Add task form. --- kronolith/js/kronolith.js | 53 ++++++++++++++++++++++++ kronolith/templates/index/index.inc | 9 +++- kronolith/templates/index/task.inc | 82 +++++++++++++++++++++++++++++++++++++ kronolith/themes/screen.css | 26 +++++++----- 4 files changed, 157 insertions(+), 13 deletions(-) create mode 100644 kronolith/templates/index/task.inc diff --git a/kronolith/js/kronolith.js b/kronolith/js/kronolith.js index 3ce887b11..d3e093e64 100644 --- a/kronolith/js/kronolith.js +++ b/kronolith/js/kronolith.js @@ -323,6 +323,14 @@ KronolithCore = { break; case 'task': + switch (locParts.length) { + case 0: + this.editTask(); + break; + case 2: + this.editTask(locParts[0], locParts[1]); + break; + } this._addHistory(fullloc); break; @@ -1615,6 +1623,35 @@ KronolithCore = { col.toggleClassName('kronolithTaskCompleted'); }, + editTask: function(tasklist, id) + { + RedBox.onDisplay = function() { + try { + $('kronolithTaskForm').focusFirstElement(); + } catch(e) {} + RedBox.onDisplay = null; + }; + + //this.updateTasklistDropDown(); + if (id) { + RedBox.loading(); + this.doAction('GetTask', { 'list': tasklist, 'id': id }, this._editTask.bind(this)); + } else { + /* + $('kronolithTaskId').value = ''; + $('kronolithTaskList').value = Kronolith.conf.default_tasklist; + $('kronolithTaskDelete').hide(); + $('kronolithTaskStartDate').value = d.toString(Kronolith.conf.date_format); + $('kronolithTaskStartTime').value = d.toString(Kronolith.conf.time_format); + d.add(1).hour(); + $('kronolithTaskEndDate').value = d.toString(Kronolith.conf.date_format); + $('kronolithTaskEndTime').value = d.toString(Kronolith.conf.time_format); + */ + RedBox.showHtml($('kronolithTaskDialog').show()); + this.taskForm = RedBox.getWindowContents(); + } + }, + /** * Parses a date attribute string into a Date object. * @@ -1944,6 +1981,16 @@ KronolithCore = { e.stop(); return; + case 'kronolithTaskLinkDescription': + case 'kronolithTaskLinkReminder': + case 'kronolithTaskLinkUrl': + $('kronolithTaskDialog').select('.kronolithTabsOption').invoke('hide'); + $(id.replace(/Link/, 'Tab')).show(); + $('kronolithTaskDialog').select('.tabset li').invoke('removeClassName', 'activeTab'); + elt.parentNode.addClassName('activeTab'); + e.stop(); + return; + case 'kronolithEventLinkNone': case 'kronolithEventLinkDaily': case 'kronolithEventLinkWeekly': @@ -1981,6 +2028,7 @@ KronolithCore = { return; case 'kronolithEventCancel': + case 'kronolithTaskCancel': this._closeRedBox(); window.history.back(); e.stop(); @@ -2135,6 +2183,11 @@ KronolithCore = { $('kronolithEventTags').autocompleter.addNewItemNode(elt.getText()); e.stop(); return; + + case 'kronolithTaskRow': + this.go('task:' + elt.retrieve('tasklist') + ':' + elt.retrieve('taskid')); + e.stop(); + return; } if (elt.hasClassName('kronolithEvent')) { diff --git a/kronolith/templates/index/index.inc b/kronolith/templates/index/index.inc index 1df983cd4..bc1cfd4ef 100644 --- a/kronolith/templates/index/index.inc +++ b/kronolith/templates/index/index.inc @@ -20,8 +20,10 @@ + hasInterface('tasks')): ?> - + + @@ -121,7 +123,10 @@ require dirname(__FILE__) . '/month.inc'; require dirname(__FILE__) . '/week.inc'; require dirname(__FILE__) . '/day.inc'; require dirname(__FILE__) . '/year.inc'; -require dirname(__FILE__) . '/tasks.inc'; +if ($GLOBALS['registry']->hasInterface('tasks')) { + require dirname(__FILE__) . '/tasks.inc'; + require dirname(__FILE__) . '/task.inc'; +} require dirname(__FILE__) . '/agenda.inc'; ?> diff --git a/kronolith/templates/index/task.inc b/kronolith/templates/index/task.inc new file mode 100644 index 000000000..490a7d3a0 --- /dev/null +++ b/kronolith/templates/index/task.inc @@ -0,0 +1,82 @@ + diff --git a/kronolith/themes/screen.css b/kronolith/themes/screen.css index 95f588406..1b2128d4b 100644 --- a/kronolith/themes/screen.css +++ b/kronolith/themes/screen.css @@ -517,6 +517,10 @@ span#kronolithQuickEvent { #kronolithQuickinsert label { font-weight: bold; } + +.kronolithFormCancel { + cursor: pointer; +} .kronolithFormInfo { font-style: italic; } @@ -603,24 +607,24 @@ span#kronolithQuickEvent { background-image: url("graphics/yearview.png"); } -/* Event form dialog */ -#kronolithEventDialog { +/* Event/task form dialogs */ +#kronolithEventDialog, #kronolithTaskDialog { width: 700px; padding: 10px 20px; background: #efefef; border: 1px #c0c0c0 solid; } -#kronolithEventDialog div { +#kronolithEventDialog div, #kronolithTaskDialog div { margin-bottom: 5px; } -#kronolithEventDialog td { +#kronolithEventDialog td, #kronolithTaskDialog td { padding-right: 10px; vertical-align: top; } -#kronolithEventForm label { +#kronolithEventForm label, #kronolithTaskForm label { font-weight: bold; } -#kronolithEventForm input.kronolithDatePicker { +#kronolithEventForm input.kronolithDatePicker, #kronolithTaskForm input.kronolithDatePicker { padding-right: 20px; background-image: url("graphics/picker.png"); background-position: right center; @@ -629,7 +633,7 @@ span#kronolithQuickEvent { .kronolithLongField { width: 100%; } -div#kronolithEventActions { +div#kronolithEventActions, div#kronolithTaskActions { margin: 5px 0; } div#kronolithEventActions #kronolithEventAdvancedLink { @@ -639,7 +643,7 @@ div#kronolithEventActions #kronolithEventAdvancedLink a { color: inherit; } -#kronolithEventStartTime, #kronolithEventEndTime, .kronolithEventValue { +#kronolithEventStartTime, #kronolithEventEndTime, #kronolithTaskDueTime, .kronolithEventValue { text-align: center; } #kronolithEventLocation { @@ -663,13 +667,13 @@ div#kronolithEventTopTags span:hover { cursor: pointer; } -#kronolithEventDialog .tabset { +#kronolithEventDialog .tabset, #kronolithTaskDialog .tabset { float: none; width: auto; background: none; margin: 15px 0; } -#kronolithEventDialog .tabset ul { +#kronolithEventDialog .tabset ul, #kronolithTaskDialog .tabset ul { padding-left: 0; } @@ -1017,10 +1021,10 @@ div.kronolithView div.kronolithViewBody div.kronolithRow { } #kronolithViewTasks tbody.kronolithViewBody td { padding: 4px 4px 4px 4px; + cursor: pointer; } #kronolithViewTasks tbody.kronolithViewBody div.kronolithTaskCheckbox { background: url("graphics/checkbox_off.png") no-repeat; - cursor: pointer; margin-right: 5px; float: left; width: 16px; -- 2.11.0