function task_list_move_link() { global $the_task_list; // This check is probably insufficient, since it "deletes" the task listfrom this project, and adds it to another project, so those checks might be better. if (ProjectTaskList::canAdd(logged_user(), active_project())) { action_link($the_task_list->getMoveUrl(), '/icons/move.png', 'move'); } }
/** * Add new task list * * @access public * @param void * @return null */ function add_list() { if (!ProjectTaskList::canAdd(logged_user(), active_project())) { flash_error(lang('no access permissions')); $this->redirectToReferer(get_url('task')); } // if $task_list = new ProjectTaskList(); $task_list_data = array_var($_POST, 'task_list'); if (!is_array($task_list_data)) { $task_list_data = array('milestone_id' => array_var($_GET, 'milestone_id')); // array } // if tpl_assign('task_list_data', $task_list_data); tpl_assign('task_list', $task_list); if (is_array(array_var($_POST, 'task_list'))) { $task_list->setFromAttributes($task_list_data); $task_list->setProjectId(active_project()->getId()); if (!logged_user()->isMemberOfOwnerCompany()) { $task_list->setIsPrivate(false); } $tasks = array(); for ($i = 0; $i < 6; $i++) { if (isset($task_list_data["task{$i}"]) && is_array($task_list_data["task{$i}"]) && trim(array_var($task_list_data["task{$i}"], 'text')) != '') { $assigned_to = explode(':', array_var($task_list_data["task{$i}"], 'assigned_to', '')); $tasks[] = array('text' => array_var($task_list_data["task{$i}"], 'text'), 'assigned_to_company_id' => array_var($assigned_to, 0, 0), 'assigned_to_user_id' => array_var($assigned_to, 1, 0)); // array } // if } // for try { DB::beginWork(); $task_list->save(); $task_list->setTagsFromCSV(array_var($task_list_data, 'tags')); foreach ($tasks as $task_data) { $task = new ProjectTask(); $task->setFromAttributes($task_data); $task_list->attachTask($task); $task->save(); } // foreach ApplicationLogs::createLog($task_list, active_project(), ApplicationLogs::ACTION_ADD); DB::commit(); flash_success(lang('success add task list', $task_list->getName())); $this->redirectToUrl($task_list->getViewUrl()); } catch (Exception $e) { DB::rollback(); tpl_assign('error', $e); } // try } // if }
<?php set_page_title($task_list->getName()); project_tabbed_navigation(PROJECT_TAB_TASKS); project_crumbs(array(array(lang('tasks'), get_url('task')), array($task_list->getName()))); if (ProjectTaskList::canAdd(logged_user(), active_project())) { add_page_action(lang('add task list'), get_url('task', 'add_list')); } // if ?> <script type="text/javascript" src="<?php echo get_javascript_url('modules/addTaskForm.js'); ?> "></script> <?php $this->assign('on_list_page', true); $this->includeTemplate(get_template_path('task/task_list')); ?> <script type="text/javascript"> App.modules.addTaskForm.hideAllAddTaskForms(); </script>
/** * Add new task list * * @access public * @param void * @return null */ function add_list() { if (!ProjectTaskList::canAdd(logged_user(), active_project())) { flash_error(lang('no access permissions')); $this->redirectToReferer(get_url('task')); } // if $task_list = new ProjectTaskList(); $task_list->setProjectId(active_project()->getId()); $task_list_data = array_var($_POST, 'task_list'); if (!is_array($task_list_data)) { $task_list_data = array('milestone_id' => array_var($_GET, 'milestone_id'), 'start_date' => DateTimeValueLib::now(), 'is_private' => config_option('default_private', false), 'task0' => array('start_date' => DateTimeValueLib::now()), 'task1' => array('start_date' => DateTimeValueLib::now()), 'task2' => array('start_date' => DateTimeValueLib::now()), 'task3' => array('start_date' => DateTimeValueLib::now()), 'task4' => array('start_date' => DateTimeValueLib::now()), 'task5' => array('start_date' => DateTimeValueLib::now())); // array } else { for ($i = 0; $i < 6; $i++) { $due_date = $_POST["task_list_task{$i}_due_date"]; $task_list_data["task{$i}"]['due_date'] = $due_date; $start_date = $_POST["task_list_task{$i}_start_date"]; $task_list_data["task{$i}"]['start_date'] = $start_date; } } // if tpl_assign('task_list_data', $task_list_data); tpl_assign('task_list', $task_list); if (is_array(array_var($_POST, 'task_list'))) { if (isset($_POST['task_list_start_date'])) { $task_list_data['start_date'] = DateTimeValueLib::makeFromString($_POST['task_list_start_date']); } if (isset($_POST['task_list_due_date'])) { $task_list_data['due_date'] = DateTimeValueLib::makeFromString($_POST['task_list_due_date']); } //$task_list_data['due_date'] = DateTimeValueLib::make(0, 0, 0, array_var($_POST, 'task_list_due_date_month', 1), array_var($_POST, 'task_list_due_date_day', 1), array_var($_POST, 'task_list_due_date_year', 1970)); $task_list->setFromAttributes($task_list_data); if (!logged_user()->isMemberOfOwnerCompany()) { $task_list->setIsPrivate(false); } $tasks = array(); for ($i = 0; $i < 6; $i++) { if (isset($task_list_data["task{$i}"]) && is_array($task_list_data["task{$i}"]) && trim(array_var($task_list_data["task{$i}"], 'text')) != '') { $assigned_to = explode(':', array_var($task_list_data["task{$i}"], 'assigned_to', '')); if (isset($_POST["task_list_task{$i}_start_date"])) { $start_date = DateTimeValueLib::makeFromString($_POST["task_list_task{$i}_start_date"]); } if (isset($_POST["task_list_task{$i}_due_date"])) { $due_date = DateTimeValueLib::makeFromString($_POST["task_list_task{$i}_due_date"]); } $tasks[] = array('text' => array_var($task_list_data["task{$i}"], 'text'), 'order' => 1 + $i, 'start_date' => $start_date, 'due_date' => $due_date, 'assigned_to_company_id' => array_var($assigned_to, 0, 0), 'assigned_to_user_id' => array_var($assigned_to, 1, 0), 'send_notification' => array_var($task_list_data["task{$i}"], 'send_notification')); // array } // if } // for try { DB::beginWork(); $task_list->save(); if (plugin_active('tags')) { $task_list->setTagsFromCSV(array_var($task_list_data, 'tags')); } foreach ($tasks as $task_data) { $task = new ProjectTask(); $task->setFromAttributes($task_data); $task_list->attachTask($task); $task->save(); tpl_assign('task', $task); // notify user if (array_var($task_data, 'send_notification') == 'checked') { try { $notify_people = array(); $project_companies = array(); if ($task->getAssignedTo() == null) { $project_companies = active_project()->getCompanies(); } if ($task->getAssignedTo() instanceof Company) { $project_companies = array($task->getAssignedTo()); } if ($task->getAssignedTo() instanceof User) { $notify_people = array($task->getAssignedTo()); } foreach ($project_companies as $project_company) { $company_users = $project_company->getUsersOnProject(active_project()); if (is_array($company_users)) { foreach ($company_users as $company_user) { $notify_people[] = $company_user; } } } // if Notifier::newTask($task, $notify_people); } catch (Exception $e) { Logger::log("Error: Notification failed, " . $e->getMessage(), Logger::ERROR); } // try } // if } // foreach ApplicationLogs::createLog($task_list, active_project(), ApplicationLogs::ACTION_ADD); DB::commit(); flash_success(lang('success add task list', $task_list->getName())); $this->redirectToUrl($task_list->getViewUrl()); } catch (Exception $e) { DB::rollback(); tpl_assign('error', $e); } // try } // if }
<?php set_page_title($milestone->getName()); project_tabbed_navigation(PROJECT_TAB_MILESTONES); project_crumbs(array(array(lang('milestones'), get_url('milestone', 'index')), array($milestone->getName()))); if (!$milestone->isCompleted()) { if (ProjectMessage::canAdd(logged_user(), $milestone->getProject())) { add_page_action(lang('add message'), $milestone->getAddMessageUrl()); } // if if (ProjectTaskList::canAdd(logged_user(), $milestone->getProject())) { add_page_action(lang('add task list'), $milestone->getAddTaskListUrl()); } //if } // if ?> <div id="milestones"> <?php $this->includeTemplate(get_template_path('view_milestone', 'milestone')); ?> </div>
/** * Add new task list from template * * @access public * @param void * @return null */ function from_template() { if (!ProjectTaskList::canAdd(logged_user(), active_project())) { flash_error(lang('no access permissions')); $this->redirectToReferer(get_url('task')); } // if $templates = ProjectTaskListTemplates::findAll(); tpl_assign('templates', $templates); if (isset($_POST['name']) && isset($_POST['from_id'])) { $template = ProjectTaskListTemplates::findById(sanitize($_POST['from_id'])); if ($template == null) { flash_error(lang('invalid template id')); $this->redirectToReferer(get_url('project')); } $task_list = ProjectTaskListTemplates::fromPickle($template->getData()); if ($task_list == null) { flash_error(lang('invalid template id')); $this->redirectToReferer(get_url('project')); } $task_list->setProjectId(active_project()->getId()); $task_list->setName(sanitize($_POST['name'])); try { DB::beginWork(); $task_list->save(); ApplicationLogs::createLog($task_list, active_project(), ApplicationLogs::ACTION_ADD); DB::commit(); $this->redirectToUrl($task_list->getViewUrl()); } catch (Exception $e) { DB::rollback(); tpl_assign('error', $e); } } // if }