Пример #1
0
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');
    }
}
Пример #2
0
 /**
  * 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
 }
Пример #3
0
<?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>
 function fromPickle($pickle)
 {
     try {
         $arr = unserialize($pickle);
         $tasks = $arr['tasks'];
         $task_list = new ProjectTaskList();
         foreach ($tasks as $task) {
             $text = $task['text'];
             $task_list->addTask($text);
         }
         return $task_list;
     } catch (Exception $e) {
         return null;
     }
 }
 /**
  * Copy task list then redirect to edit
  *
  * @access public
  * @param void
  * @return null
  */
 function copy_list()
 {
     $task_list = ProjectTaskLists::findById(get_id());
     if (!$task_list instanceof ProjectTaskList) {
         flash_error(lang('task list dnx'));
         $this->redirectTo('task', 'index');
     }
     // if
     if (!$task_list->canAdd(logged_user(), active_project())) {
         flash_error(lang('no access permissions'));
         $this->redirectTo('task', 'index');
     }
     // if
     try {
         DB::beginWork();
         $source_task_list = $task_list;
         $task_list = new ProjectTaskList();
         $task_list->setName($source_task_list->getName() . ' (' . lang('copy') . ')');
         $task_list->setPriority($source_task_list->getPriority());
         $task_list->setDescription($source_task_list->getDescription());
         $task_list->setMilestoneId($source_task_list->getMilestoneId());
         $task_list->setDueDate($source_task_list->getDueDate());
         $task_list->setIsPrivate($source_task_list->getIsPrivate());
         $task_list->setOrder($source_task_list->getOrder());
         $task_list->setProjectId($source_task_list->getProjectId());
         $task_list->save();
         $task_count = 0;
         $source_tasks = $source_task_list->getTasks();
         if (is_array($source_tasks)) {
             foreach ($source_tasks as $source_task) {
                 $task = new ProjectTask();
                 $task->setText($source_task->getText());
                 $task->setAssignedToUserId($source_task->getAssignedToUserId());
                 $task->setAssignedToCompanyId($source_task->getAssignedToCompanyId());
                 $task->setOrder($source_task->getOrder());
                 $task->setDueDate($source_task->getDueDate());
                 $task_list->attachTask($task);
                 $task_count++;
             }
         }
         ApplicationLogs::createLog($task_list, active_project(), ApplicationLogs::ACTION_ADD);
         DB::commit();
         flash_success(lang('success copy task list', $source_task_list->getName(), $task_list->getName(), $task_count));
         //$this->redirectToUrl($task_list->getEditUrl());
         $this->redirectTo('task', 'index');
     } catch (Exception $e) {
         DB::rollback();
         tpl_assign('error', $e);
     }
     // try
 }
 /**
  * Detach task from this list
  *
  * @param ProjectTask $task
  * @param ProjectTaskList $attach_to If you wish you can detach and attach task to
  *   other list with one save query
  * @return null
  */
 function detachTask(ProjectTask $task, $attach_to = null)
 {
     if ($task->getTaskListId() != $this->getId()) {
         return;
     }
     if ($attach_to instanceof ProjectTaskList) {
         $attach_to->attachTask($task);
     } else {
         $task->setTaskListId(0);
         $task->save();
     }
     // if
     $close = true;
     $open_tasks = $this->getOpenTasks();
     if (is_array($open_tasks)) {
         foreach ($open_tasks as $open_task) {
             if ($open_task->getId() != $task->getId()) {
                 $close = false;
             }
         }
         // if
     }
     // if
     if ($close) {
         $this->complete(DateTimeValueLib::now(), logged_user());
     }
 }
Пример #7
0
<?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>
Пример #8
0
 /**
  * Return all times that are assigned to the task_list
  *
  * @param ProjectTaskList $task
  * @return array
  */
 static function getTimeByTaskList(ProjectTaskList $task)
 {
     return self::findAll(array('conditions' => array('`task_list_id` = ? ', $task->getId()), 'order' => '`done_date`'));
     // findAll
 }
Пример #9
0
  /**
   *Make Mn
   *@return string
   */        
  function MakeMindMap(){
      // header xml data freemind
      $content = "<map version=\"0.9.0\">\n";
      $content .= "<!-- To view this file, download free mind mapping software FreeMind from http://freemind.sourceforge.net -->\n";
      $mytime = time();

      // is logged ?     
      if (!logged_user()->isProjectUser(active_project())) {
        echo $content;
        echo "<node CREATED=\"$mytime\" ID=\"Freemind_Link_558888646\" MODIFIED=\"$mytime\" STYLE=\"bubble\" TEXT=\"Disconnected\">\n";
        echo "</node>\n";
        echo "</map>\n";
        die; 
      } // if
      // is user can view this project ??
      if (!ProjectFile::canView(logged_user(), active_project())) {
        echo $content;
        echo "<node CREATED=\"$mytime\" ID=\"Freemind_Link_558888646\" MODIFIED=\"$mytime\" STYLE=\"bubble\" TEXT=\"Not Allowed\">\n";
        echo "</node>\n";
        echo "</map>\n";
        die;
      } //if
      
      /*
      * xml data construction freemind for project
      */    
      $project = active_project();
      $project_name = $project->getName();
      $this->epure($project_name);
      //Project title
      $url = externalUrl(get_url('task','index'));
      $content .= "<node CREATED=\"$mytime\" LINK=\"$url\" MODIFIED=\"$mytime\" STYLE=\"bubble\" TEXT=\"$project_name\">\n";

      //milestones
      $milestones = $project->getMilestones();
      $mymilestone = array();
      if (is_array($milestones)) {
        foreach($milestones as $milestone){
	  $url = externalUrl(get_url('milestone','view',array('id' => $milestone->getId())));
	  $content .= "<node CREATED=\"$mytime\" LINK=\"$url\" POSITION=\"right\" MODIFIED=\"$mytime\" TEXT=\"  [" . $milestone->getName() . ' ' . Localization::instance()->formatDate($milestone->getDueDate()) . "]\">\n";
	  $content .= "<font NAME=\"SansSerif\" BOLD=\"true\" SIZE=\"12\"/>";
          $content .= "<icon BUILTIN=\"messagebox_warning\"/>\n";
          $content .= "<icon BUILTIN=\"messagebox_warning\"/>\n";
          $content .= "</node>\n";
        }
      }

      $task_lists = $project->getTaskLists();
      if (is_array($task_lists)) {
        //Tasks lists
        $positions = array('right','left');
        $actualpos = 0;
        foreach ($task_lists as $task_list) {
          /*
          * security access
          */      
          //security access User can view this task_list ?
          if (!ProjectTaskList::canView(logged_user(), $task_list->getId())) continue;
          
          // task list name
          $task_list_name=$task_list->getName();
	  //Complete or not complete
	  $progress = $this->progress($task_list);
	  $icon = null;
	  $tasklistComplete = false;
	  if ($progress[0] == '100'){
	    $icon .= "<icon BUILTIN=\"button_ok\"/>\n";
	    $tasklistComplete = true;
	  }
	  $kt_tl_var = 'tl:' . $task_list_name;
      $this->epure($kt_tl_var);
	  if (strlen($task_list_name) > 40) $task_list_name = substr($task_list_name,0,40) . "...";
          $position = $positions[$actualpos];
          $url = externalUrl(get_url('task','view_list',array('id' => $task_list->getId())));
          $content .= "<node CREATED=\"$mytime\" LINK=\"$url\" MODIFIED=\"$mytime\" POSITION=\"$position\" TEXT=\"$task_list_name\">\n";
	  $content .= "$icon";
          if ($actualpos == 0){
            $actualpos =1;            
          }else{
            $actualpos =0;            
          } //if
          //tasks
          $tasks = $task_list->getTasks();
          if (is_array($tasks)) {
            foreach($tasks as $task) {
              /*
              * security access
              */      
              //security access User can view this task ?
              if (!ProjectTask::canView(logged_user(), $task->getId())) continue;

              // icon freeming ok | cancel              
              $icon = null;
	      if (!$tasklistComplete){
		if ($task->isCompleted()) {          
		  //complete : icon ok
		  $icon .= "<icon BUILTIN=\"button_ok\"/>\n";
		  $dateclose = " []";
		}else{
		  //incomplete : icon cancel
		  $icon .= "<icon BUILTIN=\"button_cancel\"/>\n";
		  $dateclose = " []";
		} //if
	      } //if
              //task name
              $task_text = $task->getText();
	      $this->epure($task_text);
	      if (strlen($task_text) > 40) $task_text = substr($task_text,0,40) . "...";
              $url = externalUrl(get_url('task','view_task',array('id' => $task->getId())));
              $content .= "<node CREATED=\"$mytime\" LINK=\"$url\" MODIFIED=\"$mytime\" TEXT=\"" . $task_text . "\">\n";
              $content .= $icon;
              $content .= "</node>\n";
            }
          }
          $content .= "</node>\n";
        } // if
      } // if

    //footer xml data freemind  
    $content .= "</node>\n";
    $content .= "</map>";

    //send data
    $type = "x-freemind/mm";
    $name = "projectpier.mm";
    $size = strlen($content);
    header("Content-Type: $type");
    header("Content-Disposition: attachment; filename=\"$name\"");
    header("Content-Length: " . (string) $size);
    echo $content;
    die; //end process do not send other informations
  }  //MakeMm
Пример #10
0
 /**
  * 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
 }
 /**
  * Copy project
  *
  * @param void
  * @return null
  */
 function copy()
 {
     trace(__FILE__, "copy():begin");
     if (!Project::canAdd(logged_user())) {
         flash_error(lang('no access permissions'));
         $this->redirectToReferer(get_url('dashboard'));
     }
     // if
     $this->setTemplate('copy_project');
     $this->setLayout('administration');
     $project_data = array_var($_POST, 'project');
     tpl_assign('project_data', $project_data);
     // Submitted...
     if (is_array($project_data)) {
         $source = Projects::findById($project_data['source']);
         if (!$source instanceof Project) {
             flash_error(lang('project dnx'));
             $this->redirectTo('administration', 'projects');
         }
         // if
         try {
             $shift_dates = isset($project_data['shift_dates']) ? $project_data['shift_dates'] == 'checked' : false;
             $copy_details = isset($project_data['copy_details']) ? $project_data['copy_details'] == 'checked' : false;
             $copy_tasks = isset($project_data['copy_tasks']) ? $project_data['copy_tasks'] == 'checked' : false;
             $copy_milestones = isset($project_data['copy_milestones']) ? $project_data['copy_milestones'] == 'checked' : false;
             $copy_messages = isset($project_data['copy_messages']) ? $project_data['copy_messages'] == 'checked' : false;
             $copy_links = isset($project_data['copy_links']) ? $project_data['copy_links'] == 'checked' : false;
             $copy_files = isset($project_data['copy_files']) ? $project_data['copy_files'] == 'checked' : false;
             $copy_users = isset($project_data['copy_users']) ? $project_data['copy_users'] == 'checked' : false;
             $copy_pages = isset($project_data['copy_pages']) ? $project_data['copy_pages'] == 'checked' : false;
             DB::beginWork();
             $project = new Project();
             $new_name = lang('projects copy new name', $source->getName());
             $new_name .= date(' z H:i:s');
             $project->setName($new_name);
             if ($copy_details) {
                 $project->setDescription($source->getDescription());
                 $project->setPriority($source->getPriority());
                 $project->setShowDescriptionInOverview($source->getShowDescriptionInOverview());
             }
             $project->save();
             $project_id = $project->getId();
             $add_seconds = 0;
             if (isset($project_data['add_days'])) {
                 $add_days = 0 + trim($project_data['add_days']);
                 $add_seconds = $add_days * 24 * 60 * 60;
             }
             $source_created_on = $source->getCreatedOn();
             //var_dump($source_created_on);
             $milestone_map = array(0 => 0);
             // project milestones
             if ($copy_milestones) {
                 $source_milestones = $source->getAllMilestones();
                 if (is_array($source_milestones)) {
                     foreach ($source_milestones as $source_milestone) {
                         $milestone = new ProjectMilestone();
                         //$milestone->copy($source_milestone);
                         $milestone->setName($source_milestone->getName());
                         $milestone->setDescription($source_milestone->getDescription());
                         if ($shift_dates) {
                             trace(__FILE__, "copy():shift dates");
                             $milestone->setDueDate(DateTimeValueLib::now());
                             $seconds = $source_milestone->getDueDate()->difference($source_created_on);
                             $milestone->getDueDate()->advance($seconds);
                         } else {
                             $milestone->setDueDate($source_milestone->getDueDate());
                         }
                         $milestone->getDueDate()->advance($add_seconds);
                         $milestone->setIsPrivate($source_milestone->getIsPrivate());
                         $milestone->setAssignedToUserId($source_milestone->getAssignedToUserId());
                         $milestone->setAssignedToCompanyId($source_milestone->getAssignedToCompanyId());
                         $milestone->setProjectId($project_id);
                         $milestone->save();
                         $milestone_map[$source_milestone->getId()] = $milestone->getId();
                     }
                     // foreach
                 }
                 // if
             }
             // if
             // project tasks
             if ($copy_tasks) {
                 $source_task_lists = $source->getAllTaskLists();
                 if (is_array($source_task_lists)) {
                     foreach ($source_task_lists as $source_task_list) {
                         $task_list = new ProjectTaskList();
                         //$task_list->copy($source_milestone);
                         $task_list->setName($source_task_list->getName());
                         $task_list->setPriority($source_task_list->getPriority());
                         $task_list->setDescription($source_task_list->getDescription());
                         if ($copy_milestones) {
                             $task_list->setMilestoneId($milestone_map[$source_task_list->getMilestoneId()]);
                         }
                         $task_list->setDueDate($source_task_list->getDueDate());
                         if ($task_list->getDueDate() instanceof DateTimeValue) {
                             if ($shift_dates) {
                                 trace(__FILE__, "copy():task list shift dates");
                                 $task_list->setDueDate(DateTimeValueLib::now());
                                 $seconds = $source_task_list->getDueDate()->difference($source_created_on);
                                 $task_list->getDueDate()->advance($seconds);
                             }
                             $task_list->getDueDate()->advance($add_seconds);
                         }
                         $task_list->setIsPrivate($source_task_list->getIsPrivate());
                         $task_list->setOrder($source_task_list->getOrder());
                         $task_list->setProjectId($project_id);
                         $task_list->save();
                         $source_tasks = $source_task_list->getTasks();
                         if (is_array($source_tasks)) {
                             foreach ($source_tasks as $source_task) {
                                 $task = new ProjectTask();
                                 $task->setOrder($source_task->getOrder());
                                 $task->setDueDate($source_task->getDueDate());
                                 if ($task->getDueDate() instanceof DateTimeValue) {
                                     if ($shift_dates) {
                                         trace(__FILE__, "copy():task shift dates");
                                         $task->setDueDate(DateTimeValueLib::now());
                                         $seconds = $source_task->getDueDate()->difference($source_created_on);
                                         $task->getDueDate()->advance($seconds);
                                     }
                                     $task->getDueDate()->advance($add_seconds);
                                 }
                                 $task->setText($source_task->getText());
                                 $task->getAssignedToUserId($source_task->getAssignedToUserId());
                                 $task->getAssignedToCompanyId($source_task->getAssignedToCompanyId());
                                 $task_list->attachTask($task);
                             }
                         }
                     }
                     // foreach
                 }
                 // if
             }
             // if
             // project messages
             if ($copy_messages) {
                 $source_messages = $source->getAllMessages();
                 if (is_array($source_messages)) {
                     foreach ($source_messages as $source_message) {
                         $message = new ProjectMessage();
                         //$message->copy($source_message);
                         $message->setTitle($source_message->getTitle());
                         $message->setText($source_message->getText());
                         $message->setAdditionalText($source_message->getAdditionalText());
                         if ($copy_milestones) {
                             $message->setMilestoneId($milestone_map[$source_message->getMilestoneId()]);
                         }
                         $message->setIsImportant($source_message->getIsImportant());
                         $message->setIsPrivate($source_message->getIsPrivate());
                         $message->setCommentsEnabled($source_message->getCommentsEnabled());
                         $message->setAnonymousCommentsEnabled($source_message->getAnonymousCommentsEnabled());
                         $message->setProjectId($project_id);
                         $message->save();
                     }
                     // foreach
                 }
                 // if
             }
             // if
             // project links
             if ($copy_links) {
                 $source_links = ProjectLinks::getAllProjectLinks($source);
                 if (is_array($source_links)) {
                     foreach ($source_links as $source_link) {
                         $link = new ProjectLink();
                         //$folder->copy($source_link);
                         $link->setTitle($source_link->getTitle());
                         $link->setUrl($source_link->getUrl());
                         $link->setProjectId($project_id);
                         $link->save();
                     }
                     // foreach
                 }
                 // if
             }
             // if
             // project folders & files
             if ($copy_files) {
                 $folder_map = array(0 => 0);
                 $source_folders = $source->getFolders();
                 if (is_array($source_folders)) {
                     foreach ($source_folders as $source_folder) {
                         $folder = new ProjectFolder();
                         //$folder->copy($source_folder);
                         $folder->setName($source_folder->getName());
                         $folder->setProjectId($project_id);
                         $folder->save();
                         $folder_map[$source_folder->getId()] = $folder->getId();
                     }
                     // foreach
                 }
                 // if
                 $source_files = ProjectFiles::getAllFilesByProject($source);
                 if (is_array($source_files)) {
                     foreach ($source_files as $source_file) {
                         $file = new ProjectFile();
                         $file->setProjectId($project_id);
                         $file->setFolderId($folder_map[$source_file->getFolderId()]);
                         $file->setFileName($source_file->getFileName());
                         $file->setDescription($source_file->getDescription());
                         $file->setIsPrivate($source_file->getIsPrivate());
                         $file->setIsImportant($source_file->getIsImportant());
                         $file->setIsLocked($source_file->getIsLocked());
                         $file->setIsVisible($source_file->getIsVisible());
                         $file->setExpirationTime($source_file->getExpirationTime());
                         $file->setCommentsEnabled($source_file->getCommentsEnabled());
                         $file->setAnonymousCommentsEnabled($source_file->getAnonymousCommentsEnabled());
                         $file->save();
                         $source_revision = $source_file->getLastRevision();
                         if ($source_revision instanceof ProjectFileRevision) {
                             $revision = new ProjectFileRevision();
                             $revision->setFileId($file->getId());
                             $revision->setRevisionNumber($source_revision->getRevisionNumber());
                             $revision->setRepositoryId($source_revision->getRepositoryId());
                             $revision->setFilesize($source_revision->getFilesize());
                             $revision->setFilename($source_revision->getFileName());
                             $revision->setTypeString($source_revision->getTypeString());
                             $revision->setThumbFilename($source_revision->getThumbFilename());
                             $revision->setFileTypeId($source_revision->getFileTypeId());
                             $revision->setComment($source_revision->getComment());
                             $revision->save();
                         }
                     }
                     // foreach
                 }
                 // if
             }
             // if
             if ($copy_pages) {
                 $source_pages = Wiki::getAllProjectPages($source);
                 if (is_array($source_pages)) {
                     foreach ($source_pages as $source_page) {
                         $page = new WikiPage();
                         $page->setProjectId($project_id);
                         $page->setProjectIndex($source_page->getProjectIndex());
                         $page->setProjectSidebar($source_page->getProjectSidebar());
                         if (plugin_active('tags')) {
                             //$page->setTags($source_page->getTagNames());
                         }
                         //Make a new revision of this page
                         $revision = $page->makeRevision();
                         $source_revision = $source_page->getLatestRevision();
                         //Set attributes
                         $revision->setName($source_revision->getName());
                         $revision->setContent($source_revision->getContent());
                         $revision->setLogMessage($source_revision->getLogMessage());
                         //Save the page
                         $page->save();
                     }
                     // foreach
                 }
                 // if
             }
             // if
             if ($copy_users) {
                 $source_companies = ProjectCompanies::instance()->getCompaniesByProject($source);
                 if (is_array($source_companies)) {
                     foreach ($source_companies as $source_company) {
                         $project_company = new ProjectCompany();
                         $project_company->setCompanyId($source_company->getId());
                         $project_company->setProjectId($project_id);
                         $project_company->save();
                     }
                     // foreach
                 }
                 $source_users = ProjectUsers::instance()->getUsersByProject($source);
                 if (is_array($source_users)) {
                     foreach ($source_users as $source_user) {
                         $project_user = new ProjectUser();
                         $project_user->setUserId($source_user->getId());
                         $project_user->setProjectId($project_id);
                         $project_user->save();
                     }
                     // foreach
                 }
             }
             /*
                       $permissions = array_keys(PermissionManager::getPermissionsText());
                       $auto_assign_users = owner_company()->getAutoAssignUsers();
                       
                       // We are getting the list of auto assign users. If current user is not in the list
                       // add it. He's creating the project after all...
                       if (is_array($auto_assign_users)) {
                         $auto_assign_logged_user = false;
                         foreach ($auto_assign_users as $user) {
                           if ($user->getId() == logged_user()->getId()) {
                             $auto_assign_logged_user = true;
                           }
                         } // if
                         if (!$auto_assign_logged_user) {
                           $auto_assign_users[] = logged_user();
                         }
                       } else {
                         $auto_assign_users[] = logged_user();
                       } // if
                       
                       foreach ($auto_assign_users as $user) {
                         $project_user = new ProjectUser();
                         $project_user->setProjectId($project->getId());
                         $project_user->setUserId($user->getId());
                         if (is_array($permissions)) {
                           foreach ($permissions as $permission) {
                             $user = Users::findById($project_user->getUserId());
                             $user->setProjectPermission($project,$permission,true);
                           }
                         } // if
                         $project_user->save();
                       } // foreach
             */
             ApplicationLogs::createLog($project, null, ApplicationLogs::ACTION_ADD, false, true);
             DB::commit();
             flash_success(lang('success copy project', $source->getName(), $project->getName()));
             $this->redirectToUrl($project->getPermissionsUrl());
         } catch (Exception $e) {
             echo $e->getMessage();
             tpl_assign('error', $e);
             DB::rollback();
         }
         // try
     }
     // if (submitted)
 }
Пример #12
0
	/**
	 * Detach subtask from this task
	 *
	 * @param ProjectTask $task
	 * @param ProjectTaskList $attach_to If you wish you can detach and attach task to
	 *   other list with one save query
	 * @return null
	 */
	function detachTask(ProjectTask $task, $attach_to = null) {
		if($task->getParentId() <> $this->getId()) return;

		if($attach_to instanceof ProjectTask) {
			$attach_to->attachTask($task);
		} else {
			$task->setParentId(0);
			$task->save();
		}
	} // detachTask