Пример #1
0
 /**
  * Create a new template
  *
  */
 function new_template()
 {
     if (logged_user()->isGuest()) {
         flash_error(lang('no access permissions'));
         ajx_current("empty");
         return;
     }
     $notAllowedMember = '';
     if (!ProjectTask::canAdd(logged_user(), active_context(), $notAllowedMember)) {
         if (str_starts_with($notAllowedMember, '-- req dim --')) {
             flash_error(lang('must choose at least one member of', str_replace_first('-- req dim --', '', $notAllowedMember, $in)));
         } else {
             flash_error(lang('no context permissions to add', lang("tasks"), $notAllowedMember));
         }
         ajx_current("empty");
         return;
     }
     // if
     $id = get_id();
     $task = ProjectTasks::findById($id);
     if (!$task instanceof ProjectTask) {
         $task_data = array('is_template' => true);
     } else {
         $task_data = array('milestone_id' => $task->getMilestoneId(), 'title' => $task->getObjectName(), 'assigned_to' => $task->getAssignedToContactId(), 'parent_id' => $task->getParentId(), 'priority' => $task->getPriority(), 'time_estimate' => $task->getTimeEstimate(), 'text' => $task->getText(), 'is_template' => true, 'copyId' => $task->getId());
         // array
         if ($task->getStartDate() instanceof DateTimeValue) {
             $task_data['start_date'] = $task->getStartDate()->getTimestamp();
         }
         if ($task->getDueDate() instanceof DateTimeValue) {
             $task_data['due_date'] = $task->getDueDate()->getTimestamp();
         }
     }
     $task = new ProjectTask();
     tpl_assign('task_data', $task_data);
     tpl_assign('task', $task);
     $this->setTemplate("add_task");
 }
Пример #2
0
<?php

if (isset($milestone) && $milestone instanceof ProjectMilestone) {
    if (!$milestone->isTrashed()) {
        if (!$milestone->isCompleted() && $milestone->canEdit(logged_user())) {
            add_page_action(lang('complete milestone'), $milestone->getCompleteUrl(rawurlencode(get_url('milestone', 'view', array('id' => $milestone->getId())))), 'ico-complete', null, null, true);
        }
        // if
        if ($milestone->isCompleted() && $milestone->canEdit(logged_user())) {
            add_page_action(lang('open milestone'), $milestone->getOpenUrl(rawurlencode(get_url('milestone', 'view', array('id' => $milestone->getId())))), 'ico-reopen', null, null, true);
        }
        if (!$milestone->isCompleted()) {
            if (ProjectTask::canAdd(logged_user(), $milestone->getProject())) {
                add_page_action(lang('add task list'), $milestone->getAddTaskUrl(), 'ico-task');
            }
        }
        // if
        if ($milestone->canEdit(logged_user())) {
            add_page_action(lang('edit'), $milestone->getEditUrl(), 'ico-edit', null, null, true);
            if (!$milestone->isArchived()) {
                add_page_action(lang('archive'), "javascript:if(confirm(lang('confirm archive object'))) og.openLink('" . $milestone->getArchiveUrl() . "');", 'ico-archive-obj');
            } else {
                add_page_action(lang('unarchive'), "javascript:if(confirm(lang('confirm unarchive object'))) og.openLink('" . $milestone->getUnarchiveUrl() . "');", 'ico-unarchive-obj');
            }
        }
        // if
    }
    if ($milestone->canDelete(logged_user())) {
        if ($milestone->isTemplate()) {
            add_page_action(lang('delete'), "javascript:if(confirm(lang('confirm delete milestone'))) og.openLink('" . $milestone->getDeletePermanentlyUrl() . "');", 'ico-delete', null, null, true);
        } else {
Пример #3
0
$not_overdue_limit = 5;
$overdue_limit = 20;
$show_more = false;
// Not due tasks
$not_due_tasks = ProjectTasks::getUpcomingWithoutDate($not_overdue_limit + 1);
if (count($not_due_tasks) > $not_overdue_limit) {
    $show_more = true;
    array_pop($not_due_tasks);
}
// Due Tasks
$overdue_upcoming_objects = ProjectTasks::getOverdueAndUpcomingObjects($overdue_limit + 1);
// FIXME: performance Killer
if (count($overdue_upcoming_objects) > $overdue_limit) {
    $show_more = true;
    array_pop($overdue_upcoming_objects);
}
$overdue_upcoming_objects = array_merge($not_due_tasks, $overdue_upcoming_objects);
$users = array();
// Render only when the context isnt 'all' and you have perms
$render_add = active_context_members(false) && ProjectTask::canAdd(logged_user(), active_context());
if ($render_add) {
    $users[] = array(0, lang('dont assign'));
    foreach (allowed_users_to_assign() as $company) {
        foreach ($company['users'] as $user) {
            $name = logged_user()->getId() == $user['id'] ? lang('me') : $user['name'];
            $users[] = array($user['id'], $name);
        }
    }
}
include_once 'template.php';
 /**
  * Create a new template
  *
  */
 function new_template()
 {
     if (logged_user()->isGuest()) {
         flash_error(lang('no access permissions'));
         ajx_current("empty");
         return;
     }
     $project = active_or_personal_project();
     if (!ProjectTask::canAdd(logged_user(), $project)) {
         flash_error(lang('no access permissions'));
         ajx_current("empty");
         return;
     }
     // if
     $id = get_id();
     $task = ProjectTasks::findById($id);
     if (!$task instanceof ProjectTask) {
         $task_data = array('is_template' => true);
     } else {
         $task_data = array('milestone_id' => $task->getMilestoneId(), 'title' => $task->getTitle(), 'assigned_to' => $task->getAssignedToCompanyId() . ":" . $task->getAssignedToUserId(), 'parent_id' => $task->getParentId(), 'priority' => $task->getPriority(), 'tags' => implode(",", $task->getTagNames()), 'project_id' => $task->getProjectId(), 'time_estimate' => $task->getTimeEstimate(), 'text' => $task->getText(), 'is_template' => true, 'copyId' => $task->getId());
         // array
         if ($task->getStartDate() instanceof DateTimeValue) {
             $task_data['start_date'] = $task->getStartDate()->getTimestamp();
         }
         if ($task->getDueDate() instanceof DateTimeValue) {
             $task_data['due_date'] = $task->getDueDate()->getTimestamp();
         }
     }
     $task = new ProjectTask();
     tpl_assign('task_data', $task_data);
     tpl_assign('task', $task);
     $this->setTemplate("add_task");
 }
 /**
  * Copies tasks from milestoneFrom to milestoneTo.
  *
  * @param ProjectMilestone $milestoneFrom
  * @param ProjectMilestone $milestoneTo
  */
 function copyTasks(ProjectMilestone $milestoneFrom, ProjectMilestone $milestoneTo, $as_template = false)
 {
     foreach ($milestoneFrom->getTasks() as $sub) {
         if ($sub->getParentId() != 0) {
             continue;
         }
         $new = ProjectTasks::createTaskCopy($sub);
         $new->setIsTemplate($as_template);
         $new->setMilestoneId($milestoneTo->getId());
         if ($sub->getIsTemplate()) {
             $new->setFromTemplateId($sub->getId());
         }
         $new->save();
         foreach ($sub->getWorkspaces() as $workspace) {
             if (ProjectTask::canAdd(logged_user(), $workspace)) {
                 $new->addToWorkspace($workspace);
             }
         }
         if (!$as_template && active_project() instanceof Project && ProjectTask::canAdd(logged_user(), active_project())) {
             $new->removeFromAllWorkspaces();
             $new->addToWorkspace(active_project());
         }
         $new->copyCustomPropertiesFrom($sub);
         $new->copyLinkedObjectsFrom($sub);
         $new->setTagsFromCSV(implode(",", $sub->getTagNames()));
         ProjectTasks::copySubTasks($sub, $new, $as_template);
     }
 }
Пример #6
0
 /**
  * Copies subtasks from taskFrom to taskTo.
  *
  * @param ProjectTask $taskFrom
  * @param ProjectTask $taskTo
  */
 function copySubTasks(ProjectTask $taskFrom, ProjectTask $taskTo, $as_template = false)
 {
     foreach ($taskFrom->getSubTasks() as $sub) {
         $new = ProjectTasks::createTaskCopy($sub);
         $new->setIsTemplate($as_template);
         $new->setParentId($taskTo->getId());
         $new->setMilestoneId($taskTo->getMilestoneId());
         $new->setOrder(ProjectTasks::maxOrder($new->getParentId(), $new->getMilestoneId()));
         if ($sub->getIsTemplate()) {
             $new->setFromTemplateId($sub->getId());
         }
         $new->save();
         foreach ($taskTo->getWorkspaces() as $workspace) {
             if (ProjectTask::canAdd(logged_user(), $workspace)) {
                 $new->addToWorkspace($workspace);
             }
         }
         $new->copyCustomPropertiesFrom($sub);
         $new->copyLinkedObjectsFrom($sub);
         $new->setTagsFromCSV(implode(",", $sub->getTagNames()));
         ProjectTasks::copySubTasks($sub, $new, $as_template);
     }
 }
Пример #7
0
<?php

require_javascript("og/modules/addTaskForm.js");
if (isset($task_list) && $task_list instanceof ProjectTask) {
    if (!$task_list->isTrashed()) {
        if (!$task_list->isCompleted() && $task_list->canEdit(logged_user())) {
            add_page_action(lang('do complete'), $task_list->getCompleteUrl(rawurlencode(get_url('task', 'view_task', array('id' => $task_list->getId())))), 'ico-complete', null, null, true);
        }
        // if
        if ($task_list->isCompleted() && $task_list->canEdit(logged_user())) {
            add_page_action(lang('open task'), $task_list->getOpenUrl(rawurlencode(get_url('task', 'view_task', array('id' => $task_list->getId())))), 'ico-reopen', null, null, true);
        }
        // if
        if (active_project() && ProjectTask::canAdd(logged_user(), active_project())) {
            add_page_action(lang('add task'), get_url('task', 'add_task'), 'ico-task');
        }
        // if
        if ($task_list->canEdit(logged_user())) {
            add_page_action(lang('edit'), $task_list->getEditListUrl(), 'ico-edit', null, null, true);
            if (!$task_list->isArchived()) {
                add_page_action(lang('archive'), "javascript:if(confirm(lang('confirm archive object'))) og.openLink('" . $task_list->getArchiveUrl() . "');", 'ico-archive-obj');
            } else {
                add_page_action(lang('unarchive'), "javascript:if(confirm(lang('confirm unarchive object'))) og.openLink('" . $task_list->getUnarchiveUrl() . "');", 'ico-unarchive-obj');
            }
        }
        // if
    }
    if ($task_list->canDelete(logged_user())) {
        if ($task_list->isTemplate()) {
            add_page_action(lang('delete'), "javascript:if(confirm(lang('confirm delete task'))) og.openLink('" . $task_list->getDeletePermanentlyUrl() . "');", 'ico-delete', null, null, true);
        } else {