vid, array(-1 => _('unassigned')));
// ========== ACTIONS START ===================================================
switch ($submit = form_get_action()) {
case NULL: break;
case 'add': $action = ACT_ADD; break;
case 'view': $action = ACT_VIEW; break;
case 'edit': $action = ACT_EDIT; break;
case 'del': $action = ACT_DELETE; break;
case 'insert':
$p[':projid'] = gpc_get_int($_POST, 'projid');
if ($p[':projid'] == -1) {
$p[':projid'] = NULL;
}
$p[':taskname'] = gpc_get_string($_POST, 'taskname');
$keys = array_keys($p);
$fields = join(',', array_map(function($s) { return ltrim($s, ':'); }, $keys));
$pnames = join(',', $keys);
$sth = $pdo->prepare("INSERT INTO task ($fields) VALUES ($pnames)");
try {
$sth->execute($p);
} catch (PDOexception $e) {
$g_error->Add('SQL-Error: '. $e->getMessage());
}
break;
case 'update':
$p[':taskname'] = gpc_get_string($_POST, 'taskname');
$p[':projid'] = gpc_get_int($_POST, 'projid');
if ($p[':projid'] == -1) {
$p[':projid'] = NULL;
}
$fields = join(',', array_map(function($s) { return ltrim($s, ':') . '=' . $s; }, array_keys($p)));
$sth = $pdo->prepare("UPDATE task SET $fields WHERE taskid=:taskid");
$p[':taskid'] = $id;
try {
$sth->execute($p);
} catch (PDOexception $e) {
$g_error->Add('SQL-Error: '. $e->getMessage());
}
$action = ACT_VIEW;
break;
default:
$g_error->Add(sprintf(_("Unknown function '%s'!"), $submit));
$valid = FALSE;
}
// ========== ACTIONS END =====================================================
require 'header.php';
// ========== PAGE CONTENT ====================================================
if ($action == ACT_DEFAULT):
// ========== VARIANT: default behavior =======================================
echo "
$pagetitle
\n";
$sql = "SELECT t.taskid, t.projid, t.taskname, p.projname "
. "FROM task AS t LEFT JOIN project AS p USING (projid) "
. "WHERE p.projid IS NULL OR p.vid=? "
. "ORDER BY t.taskid";
$sth = $pdo->prepare($sql);
try {
$sth->execute([$user->vid]);
} catch (PDOexception $e) {
$g_error->Add('SQL-Error: '. $e->getMessage());
}
$res = $sth->fetchAll();
echo '', "\n";
echo "\n";
echo "\n";
echo '| # | ';
echo '', _('Task'), " | ";
echo '', _('Project'), " | ";
echo " | ";
echo " | \n";
echo "
\n";
echo "\n";
foreach ($res as $row) {
echo "\n";
echo "| " . $row['taskid'] . " | \n";
echo "" . $row['taskname'] . " | \n";
echo "" . $row['projname'] . " | \n";
// Action buttons
form_action_buttons($g_scriptname, $row['taskid']);
echo "
\n";
}
// Table summary
echo "\n";
echo '| ', sprintf(_('%d records'), count($res)), ' |
', "\n";
echo "\n";
echo "
\n";
elseif ($action == ACT_ADD):
// ========== VARIANT: add record =============================================
echo '', _('Add Task'), "
\n";
?>
prepare($sql);
$sth->execute([$id]);
$task = $sth->fetch(PDO::FETCH_OBJ);
echo '', _('View Task'), "
\n";
echo '', "\n";
echo '| ', _('Task')," | ", $task->taskname, " |
\n";
echo '| ', _('Project')," | ", $task->projname ?? _('unassigned'), " |
\n";
echo "
\n";
form_view_buttons($g_scriptname, $id);
elseif ($action == ACT_EDIT):
// ========== VARIANT: edit single record =====================================
$sql = "SELECT taskname "
. "FROM task "
. "WHERE taskid=?";
$sth = $pdo->prepare($sql);
$sth->execute([$id]);
$task = $sth->fetch(PDO::FETCH_OBJ);
echo '', _('Edit Task'), "
\n";
?>