/**
  * Show and process add milestone form
  *
  * @access public
  * @param void
  * @return null
  */
 function add()
 {
     $this->setTemplate('add_milestone');
     if (!ProjectMilestone::canAdd(logged_user(), active_project())) {
         flash_error(lang('no access permissions'));
         $this->redirectToReferer(get_url('milestone'));
     }
     // if
     $milestone_data = array_var($_POST, 'milestone');
     if (!is_array($milestone_data)) {
         $milestone_data = array('due_date' => DateTimeValueLib::now(), 'is_private' => config_option('default_private', false));
         // array
     }
     // if
     $milestone = new ProjectMilestone();
     tpl_assign('milestone_data', $milestone_data);
     tpl_assign('milestone', $milestone);
     if (is_array(array_var($_POST, 'milestone'))) {
         if (isset($_POST['milestone_due_date'])) {
             $milestone_data['due_date'] = DateTimeValueLib::makeFromString($_POST['milestone_due_date']);
         } else {
             $milestone_data['due_date'] = DateTimeValueLib::make(0, 0, 0, array_var($_POST, 'milestone_due_date_month', 1), array_var($_POST, 'milestone_due_date_day', 1), array_var($_POST, 'milestone_due_date_year', 1970));
         }
         $assigned_to = explode(':', array_var($milestone_data, 'assigned_to', ''));
         $milestone->setFromAttributes($milestone_data);
         if (!logged_user()->isMemberOfOwnerCompany()) {
             $milestone->setIsPrivate(false);
         }
         $milestone->setProjectId(active_project()->getId());
         $milestone->setAssignedToCompanyId(array_var($assigned_to, 0, 0));
         $milestone->setAssignedToUserId(array_var($assigned_to, 1, 0));
         try {
             DB::beginWork();
             $milestone->save();
             if (plugin_active('tags')) {
                 $milestone->setTagsFromCSV(array_var($milestone_data, 'tags'));
             }
             ApplicationLogs::createLog($milestone, active_project(), ApplicationLogs::ACTION_ADD);
             DB::commit();
             // Send notification
             try {
                 if (array_var($milestone_data, 'send_notification') == 'checked') {
                     Notifier::milestoneAssigned($milestone);
                     // send notification
                 }
                 // if
             } catch (Exception $e) {
             }
             // try
             flash_success(lang('success add milestone', $milestone->getName()));
             $this->redirectTo('milestone');
         } catch (Exception $e) {
             DB::rollback();
             tpl_assign('error', $e);
         }
         // try
     }
     // if
 }
Пример #2
0
<?php

trace(__FILE__, 'ProjectMessage::project_tabbed_navigation()');
project_tabbed_navigation();
trace(__FILE__, 'ProjectMessage::canAdd');
if (ProjectMessage::canAdd(logged_user(), active_project())) {
    add_page_action(lang('add message'), get_url('message', 'add'));
}
// if
trace(__FILE__, 'ProjectTaskList::canAdd');
if (ProjectTaskList::canAdd(logged_user(), active_project())) {
    add_page_action(lang('add task list'), get_url('task', 'add_list'));
}
// if
trace(__FILE__, 'ProjectMilestone::canAdd');
if (ProjectMilestone::canAdd(logged_user(), active_project())) {
    add_page_action(lang('add milestone'), get_url('milestone', 'add'));
}
// if
//trace(__FILE__,'project.canChangePermissions()');
//if (active_project()->canChangePermissions(logged_user())) {
//  add_page_action(lang('permissions'), get_url('project', 'permissions'));
//} // if
trace(__FILE__, 'plugin hook');
// PLUGIN HOOK
plugin_manager()->do_action('project_overview_page_actions');
// PLUGIN HOOK
if (use_permitted(logged_user(), active_project(), 'tasks')) {
    add_page_action(lang('download task lists'), get_url('project', 'download_task_lists'));
}
 /**
  * Create a new milestone template
  *
  */
 function new_template()
 {
     if (logged_user()->isGuest()) {
         flash_error(lang('no access permissions'));
         ajx_current("empty");
         return;
     }
     $project = active_or_personal_project();
     if (!ProjectMilestone::canAdd(logged_user(), $project)) {
         flash_error(lang('no access permissions'));
         ajx_current("empty");
         return;
     }
     // if
     $id = get_id();
     $milestone = ProjectMilestones::findById($id);
     if (!$milestone instanceof ProjectMilestone) {
         $milestone_data = array('is_template' => true);
     } else {
         $milestone_data = array('name' => $milestone->getName(), 'assigned_to' => $milestone->getAssignedToCompanyId() . ":" . $milestone->getAssignedToUserId(), 'tags' => implode(",", $milestone->getTagNames()), 'project_id' => $milestone->getProjectId(), 'description' => $milestone->getDescription(), 'copyId' => $milestone->getId(), 'is_template' => true);
         // array
         if ($milestone->getDueDate() instanceof DateTimeValue) {
             $milestone_data['due_date'] = $milestone->getDueDate()->getTimestamp();
         }
     }
     $milestone = new ProjectMilestone();
     tpl_assign('milestone_data', $milestone_data);
     tpl_assign('milestone', $milestone);
     $this->setTemplate("add_milestone");
 }
	/**
	 * Create a new milestone template
	 *
	 */
	function new_template() {
		if (logged_user()->isGuest()) {
			flash_error(lang('no access permissions'));
			ajx_current("empty");
			return;
		}
		
		$notAllowedMember = '';
		if(!ProjectMilestone::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("milestones"),$notAllowedMember));
			ajx_current("empty");
			return;
		} // if
		
		$id = get_id();
		$milestone = ProjectMilestones::findById($id);
		if (!$milestone instanceof ProjectMilestone) {
			$milestone_data = array('is_template' => true);
		} else {
			$milestone_data = array(
				'name' => $milestone->getObjectName(),
				'description' => $milestone->getDescription(),
				'copyId' => $milestone->getId(),
				'is_template' => true,
			); // array
			if ($milestone->getDueDate() instanceof DateTimeValue) {
				$milestone_data['due_date'] = $milestone->getDueDate()->getTimestamp();
			}
		}

		$milestone = new ProjectMilestone();
		tpl_assign('milestone_data', $milestone_data);
		tpl_assign('milestone', $milestone);
		$this->setTemplate("add_milestone");
	} // new_template