break;
case 'task':
+ switch (locParts.length) {
+ case 0:
+ this.editTask();
+ break;
+ case 2:
+ this.editTask(locParts[0], locParts[1]);
+ break;
+ }
this._addHistory(fullloc);
break;
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.
*
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':
return;
case 'kronolithEventCancel':
+ case 'kronolithTaskCancel':
this._closeRedBox();
window.history.back();
e.stop();
$('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')) {
<a id="kronolithNavWeek" accesskey="2"><?php echo _("Week") ?></a>
<a id="kronolithNavMonth" accesskey="3"><?php echo _("Month") ?></a>
<a id="kronolithNavYear" accesskey="4"><?php echo _("Year") ?></a>
+ <?php if ($GLOBALS['registry']->hasInterface('tasks')): ?>
<a id="kronolithNavTasks" accesskey="5"><?php echo _("Tasks") ?></a>
- <a id="kronolithNavAgenda" accesskey="6"><?php echo _("Agenda") ?></a>
+ <?php endif; ?>
+ <a id="kronolithNavAgenda" accesskey="<?php echo $GLOBALS['registry']->hasInterface('tasks') ? 6 : 5 ?>"><?php echo _("Agenda") ?></a>
</div>
</div>
<!-- end top bar -->
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';
?>
<div id="kronolithViewIframe" style="display:none"></div>
--- /dev/null
+<div id="kronolithTaskDialog" style="display:none">
+<form id="kronolithTaskForm" action="">
+<input id="kronolithTaskId" type="hidden" name="task_id" />
+
+<div>
+ <label for="kronolithTaskTitle"><?php echo _("Name") ?>:</label><br />
+ <input type="text" name="name" id="kronolithTaskTitle" class="kronolithLongField" />
+</div>
+
+<div>
+ <label><input type="checkbox" name="" value="" /> <?php echo _("completed") ?></label>
+</div>
+
+<table cellspacing="" cellpadding="0" border="0"><tbody><tr>
+ <td>
+ <div>
+ <label for="kronolithTaskPriority"><?php echo _("Priority") ?>:</label><br />
+ <select name="priority" id="kronolithTaskPriority">
+ <?php foreach (array(1 => '1 ' . _("(highest)"), 2 => 2, 3 => 3, 4 => 4, 5 => '5 ' . _("(lowest)")) as $prio => $label): ?>
+ <option value="<?php echo $prio ?>"><?php echo $label ?></option>
+ <?php endforeach; ?>
+ </select>
+ </div>
+ </td>
+ <td>
+ <div>
+ <label for="kronolithTaskList"><?php echo _("Task List") ?>:</label><br />
+ <select name="tasklist_id" id="kronolithTaskList">
+ </select>
+ </div>
+ </td>
+ <td>
+ <div>
+ <label><?php echo _("Due date") ?>:</label><br />
+ <input type="text" name="due_date" id="kronolithTaskDueDate" size="10" class="kronolithDatePicker" />
+ <?php echo _("at") ?>
+ <input type="text" name="due_time" id="kronolithTaskDueTime" size="8" />
+ </div>
+ </td>
+</tr></tbody></table>
+
+<div class="tabset">
+ <ul>
+ <li class="activeTab"><a href="#" id="kronolithTaskLinkDescription"><?php echo _("Description") ?></a></li>
+ <li><a href="#" id="kronolithTaskLinkReminder"><?php echo _("Reminder") ?></a></li>
+ <li><a href="#" id="kronolithTaskLinkUrl"><?php echo _("URL") ?></a></li>
+ </ul>
+</div>
+<br class="clear" />
+
+<div id="kronolithTaskTabDescription" class="kronolithTabsOption">
+ <textarea name="desc" id="taskDescription" rows="5" cols="40" class="kronolithLongField"></textarea>
+</div>
+
+<div id="kronolithTaskTabReminder" class="kronolithTabsOption" style="display:none">
+ <label><input type="radio" name="nag_alarm[on]" value="0" checked="checked" /> <?php echo _("don't set") ?></label>
+ <?php echo _("or") ?>
+ <label><input type="radio" name="nag_alarm[on]" value="1" /> <?php echo _("set") ?></label>
+ <label>
+ <input type="text" name="nag_alarm[value]" size="3" value="15" class="kronolithEventValue" />
+ <select name="nag_alarm[unit]">
+ <option value="1"><?php echo _("minutes") ?></option>
+ <option value="60"><?php echo _("hours") ?></option>
+ <option value="1440"><?php echo _("days") ?></option>
+ <option value="10080"><?php echo _("weeks") ?></option>
+ </select>
+ <?php echo _("before due date") ?>
+ </label>
+</div>
+
+<div id="kronolithTaskTabUrl" class="kronolithTabsOption" style="display:none">
+ <input type="text" name="url" id="taskUrl" class="kronolithLongField" value="http://" />
+</div>
+
+<div id="kronolithTaskActions">
+ <input id="kronolithTaskSave" type="button" value="<?php echo _("Save") ?>" class="button ok" />
+ <input id="kronolithTaskDelete" type="button" value="<?php echo _("Delete") ?>" class="button ko" />
+ <span class="kronolithSep"><?php echo _("or") ?></span> <a id="kronolithTaskCancel" class="kronolithFormCancel"><?php echo _("Cancel") ?></a>
+</div>
+
+</form>
+</div>
#kronolithQuickinsert label {
font-weight: bold;
}
+
+.kronolithFormCancel {
+ cursor: pointer;
+}
.kronolithFormInfo {
font-style: italic;
}
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;
.kronolithLongField {
width: 100%;
}
-div#kronolithEventActions {
+div#kronolithEventActions, div#kronolithTaskActions {
margin: 5px 0;
}
div#kronolithEventActions #kronolithEventAdvancedLink {
color: inherit;
}
-#kronolithEventStartTime, #kronolithEventEndTime, .kronolithEventValue {
+#kronolithEventStartTime, #kronolithEventEndTime, #kronolithTaskDueTime, .kronolithEventValue {
text-align: center;
}
#kronolithEventLocation {
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;
}
}
#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;