X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=work_add.php;h=452e515b3ae27b76ad91d8e9e018ddc13bbb4648;hb=HEAD;hp=2abe84d51b4a16295b8d893df72c2d36c7a3d89b;hpb=2b90ff7edde48b64097c1bb60cde036b995c4220;p=timetracker.git diff --git a/work_add.php b/work_add.php index 2abe84d5..452e515b 100644 --- a/work_add.php +++ b/work_add.php @@ -31,49 +31,46 @@ import('form.Form'); import('ttProjectHelper'); import('ttGroupHelper'); import('ttFileHelper'); +import('ttWorkHelper'); // Access checks. -if (!ttAccessAllowed('manage_projects')) { +if (!ttAccessAllowed('manage_work')) { header('Location: access_denied.php'); exit(); } -if (MODE_PROJECTS != $user->getTrackingMode() && MODE_PROJECTS_AND_TASKS != $user->getTrackingMode()) { +if (!$user->isPluginEnabled('wk')) { header('Location: feature_disabled.php'); exit(); } // End of access checks. $showFiles = $user->isPluginEnabled('at'); -$users = ttGroupHelper::getActiveUsers(); -foreach ($users as $user_item) - $all_users[$user_item['id']] = $user_item['name']; - -$tasks = ttGroupHelper::getActiveTasks(); -foreach ($tasks as $task_item) - $all_tasks[$task_item['id']] = $task_item['name']; -$show_tasks = MODE_PROJECTS_AND_TASKS == $user->getTrackingMode() && count($tasks) > 0; if ($request->isPost()) { - $cl_name = trim($request->getParameter('project_name')); + $cl_name = trim($request->getParameter('work_name')); $cl_description = trim($request->getParameter('description')); - $cl_users = $request->getParameter('users', array()); - $cl_tasks = $request->getParameter('tasks', array()); -} else { - foreach ($users as $user_item) - $cl_users[] = $user_item['id']; - foreach ($tasks as $task_item) - $cl_tasks[] = $task_item['id']; + $cl_currency = $request->getParameter('currency'); } -$form = new Form('projectForm'); -$form->addInput(array('type'=>'text','maxlength'=>'100','name'=>'project_name','style'=>'width: 250px;','value'=>$cl_name)); +$form = new Form('workForm'); +$form->addInput(array('type'=>'text','maxlength'=>'100','name'=>'work_name','style'=>'width: 250px;','value'=>$cl_name)); $form->addInput(array('type'=>'textarea','name'=>'description','style'=>'width: 250px; height: 40px;','value'=>$cl_description)); if ($showFiles) $form->addInput(array('type'=>'upload','name'=>'newfile','value'=>$i18n->get('button.submit'))); -$form->addInput(array('type'=>'checkboxgroup','name'=>'users','data'=>$all_users,'layout'=>'H','value'=>$cl_users)); -if ($show_tasks) - $form->addInput(array('type'=>'checkboxgroup','name'=>'tasks','data'=>$all_tasks,'layout'=>'H','value'=>$cl_tasks)); -$form->addInput(array('type'=>'submit','name'=>'btn_add','value'=>$i18n->get('button.add'))); +// Add a dropdown for currency. +$currencies = ttWorkHelper::getCurrencies(); +$form->addInput(array('type'=>'combobox','name'=>'currency','data'=>$currencies,'datakeys'=>array('id','name'),'value'=>$cl_currency)); + +// TODO: design how to handle one-time vs ongoing work. Apparently, with a conditional display of relevant controls. +// Ongoing work - rate per hour control. +// One-time work - budget dropdown control. +// When selection changes, we hide and show required controls. + +// TODO: design how to handle categories and sub-categories. +// One major complication is localization of names. + +// Coding and design are currently ongoing. + if ($request->isPost()) { // Validate user input. @@ -114,5 +111,5 @@ $smarty->assign('show_files', $showFiles); $smarty->assign('show_users', count($users) > 0); $smarty->assign('show_tasks', $show_tasks); $smarty->assign('title', $i18n->get('title.add_work')); -$smarty->assign('content_page_name', 'project_add.tpl'); +$smarty->assign('content_page_name', 'work_add.tpl'); $smarty->display('index.tpl');