+ complete form to create task

This commit is contained in:
Max Pozdeev 2009-10-22 10:43:19 +04:00
parent b20bc1406d
commit 6d6f2482d8
5 changed files with 87 additions and 3 deletions

View file

@ -286,10 +286,24 @@ function editTask(id)
for(var i=0; i<sel.length; i++) {
if(sel.options[i].value == item.prio) sel.options[i].selected = true;
}
showEditForm();
return false;
}
function showEditForm(isAdd)
{
$('<div id="overlay"></div>').appendTo('body').css('opacity', 0.5).show();
//clear selection
if(document.selection && document.selection.empty) document.selection.empty();
else if(window.getSelection) window.getSelection().removeAllRanges();
if(isAdd) {
showhide($('#page_taskedit>h3.mtt-inadd'), $('#page_taskedit>h3.mtt-inedit'));
$('#page_taskedit>form').attr('onSubmit', 'return submitFullTask(this)');
}
else {
showhide( $('#page_taskedit>h3.mtt-inedit'), $('#page_taskedit>h3.mtt-inadd'));
$('#page_taskedit>form').attr('onSubmit', 'return saveTask(this)');
}
var w = $('#page_taskedit');
if(!flag.windowTaskEditMoved)
{
@ -304,12 +318,11 @@ function editTask(id)
}
if(x < 0) x = 0;
if(y < 0) y = 0;
w.css('left',x).css('top',y);
w.css({left:x, top:y});
tmp.editformpos = [x, y];
}
w.fadeIn('fast'); //.show();
$(document).bind('keydown', cancelEdit);
return false;
}
function cancelEdit(e)
@ -1116,3 +1129,26 @@ function saveSettings(frm)
}
}, 'json');
}
function submitFullTask(form)
{
if(flag.needAuth && !flag.isLogged && flag.canAllRead) return false;
setAjaxErrorTrigger();
var nocache = '&rnd='+Math.random();
$.post('ajax.php?fullNewTask'+nocache, { list:curList.id, tag:filter.tag, title: form.task.value, note:form.note.value, prio:form.prio.value, tags:form.tags.value, duedate:form.duedate.value }, function(json){
resetAjaxErrorTrigger();
if(!parseInt(json.total)) return;
$('#total').text( parseInt($('#total').text()) + parseInt(json.total) );
form.task.value = '';
var item = json.list[0];
taskList[item.id] = item;
taskOrder.push(parseInt(item.id));
$('#tasklist').append(prepareTaskStr(item));
changeTaskOrder(item.id);
cancelEdit();
$('#taskrow_'+item.id).effect("highlight", {color:theme.newTaskFlashColor}, 2000);
}, 'json');
$("#edittags").flushCache();
flag.tagsChanged = true;
return false;
}

View file

@ -105,6 +105,48 @@ elseif(isset($_GET['newTask']))
echo json_encode($t);
exit;
}
elseif(isset($_GET['fullNewTask']))
{
check_write_access();
stop_gpc($_POST);
$listId = (int)_post('list');
$title = trim(_post('title'));
$note = str_replace("\r\n", "\n", trim(_post('note')));
$prio = (int)_post('prio');
if($prio < -1) $prio = -1;
elseif($prio > 2) $prio = 2;
$duedate = parse_duedate(trim(_post('duedate')));
$t = array();
$t['total'] = 0;
if($title == '') {
echo json_encode($t);
exit;
}
$tags = trim(_post('tags'));
if(isset($config['autotag']) && $config['autotag']) $tags .= ','._post('tag');
$tz = (int)_post('tz');
if( (isset($config['autotz']) && $config['autotz']==0) || $tz<-720 || $tz>720 || $tz%30!=0 ) $d = strftime("%Y-%m-%d %H:%M:%S");
else $d = gmdate("Y-m-d H:i:s", time()+$tz*60);
$ow = 1 + (int)$db->sq("SELECT MAX(ow) FROM todolist WHERE list_id=$listId AND compl=0");
if(is_null($duedate)) $duedate = 'NULL'; else $duedate = $db->quote($duedate);
$db->ex("BEGIN");
$db->dq("INSERT INTO todolist (list_id,title,d,ow,prio,note,duedate) VALUES($listId,?,?,$ow,$prio,?,$duedate)", array($title,$d,$note));
$id = $db->last_insert_id();
if($tags)
{
$tag_ids = prepare_tags($tags, $listId);
if($tag_ids) {
update_task_tags($id, $tag_ids);
$db->ex("UPDATE todolist SET tags=? WHERE id=$id", $tags);
}
}
$db->ex("COMMIT");
$r = $db->sqa("SELECT * FROM todolist WHERE id=$id");
$t['list'][] = prepareTaskRow($r);
$t['total'] = 1;
echo json_encode($t);
exit;
}
elseif(isset($_GET['deleteTask']))
{
check_write_access();

View file

@ -115,6 +115,7 @@ $().ajaxStop( function(r,s) {$("#loading").fadeOut();} );
<div class="mtt-htabs">
<span id="htab_newtask"><?php __('htab_newtask');?>
<form onSubmit="return submitNewTask(this)"><input type="text" name="task" value="" maxlength="250" id="task"> <input type="submit" value="<?php __('btn_add');?>"></form>
<a href="#" onClick="showEditForm(1);return false;"><?php __('advanced_add');?></a>
&nbsp;&nbsp;| <a href="#" class="htab-toggle" onClick="addsearchToggle(1);this.blur();return false;"><?php __('htab_search');?></a>
</span>
@ -142,7 +143,8 @@ $().ajaxStop( function(r,s) {$("#loading").fadeOut();} );
<div id="page_taskedit" style="display:none">
<h3><?php __('edit_task');?></h3>
<h3 class="mtt-inadd"><?php __('add_task');?></h3>
<h3 class="mtt-inedit"><?php __('edit_task');?></h3>
<form onSubmit="return saveTask(this)" name="edittask">
<input type="hidden" name="id" value="">

View file

@ -34,9 +34,11 @@ class DefaultLang
'htab_search' => "Search",
'btn_add' => "Add",
'btn_search' => "Search",
'advanced_add' => "Advanced",
'searching' => "Searching for",
'tasks' => "Tasks",
'edit_task' => "Edit Task",
'add_task' => "New Task",
'priority' => "Priority",
'task' => "Task",
'note' => "Note",

View file

@ -29,9 +29,11 @@ class Lang extends DefaultLang
'htab_search' => "Search",
'btn_add' => "Add",
'btn_search' => "Search",
'advanced_add' => "Advanced",
'searching' => "Searching for",
'tasks' => "Tasks",
'edit_task' => "Edit Task",
'add_task' => "New Task",
'priority' => "Priority",
'task' => "Task",
'note' => "Note",