/**
  * Return message object
  *
  * @param void
  * @return ProjectMessage
  */
 function getMessage()
 {
     if (is_null($this->message)) {
         $this->message = ProjectMessages::findById($this->getMessageId());
     }
     return $this->message;
 }
예제 #2
0
	/**
	 * This function will return application data object that matches action and in object ID
	 *
	 * @param void
	 * @return ApplicationDataObject
	 */
	function getInObject() {
		if(is_null($this->in_object)) {
			if($this->getAction() == self::ADD_COMMENT_ACTION) {
				$this->in_object = ProjectMessages::findById($this->getInObjectId());
			} elseif($this->getAction() == self::ADD_TASK_ACTION) {
				$this->in_object = Projects::findById($this->getInObjectId());
			} // if
		} // if
		return $this->in_object;
	} // getInObject
예제 #3
0
 /**
  * Edit existing project form
  *
  * @param void
  * @return null
  */
 function edit()
 {
     $this->setTemplate('add_project_form');
     $project_form = ProjectForms::findById(get_id());
     if (!$project_form instanceof ProjectForm) {
         flash_error(lang('project form dnx'));
         if (ProjectForm::canAdd(logged_user(), active_project())) {
             $this->redirectTo('form');
         } else {
             $this->redirectToUrl(active_project()->getOverviewUrl());
         }
         // if
     }
     // if
     if (!$project_form->canEdit(logged_user())) {
         flash_error(lang('no access permissions'));
         if (ProjectForm::canAdd(logged_user(), active_project())) {
             $this->redirectTo('form');
         } else {
             $this->redirectToUrl(active_project()->getOverviewUrl());
         }
         // if
     }
     // if
     $project_form_data = array_var($_POST, 'project_form');
     if (!is_array($project_form_data)) {
         $project_form_data = array('name' => $project_form->getName(), 'description' => $project_form->getDescription(), 'success_message' => $project_form->getSuccessMessage(), 'action' => $project_form->getAction(), 'is_enabled' => $project_form->getIsEnabled(), 'is_visible' => $project_form->getIsVisible());
         // array
         if ($project_form->getAction() == ProjectForm::ADD_COMMENT_ACTION) {
             $project_form_data['message_id'] = $project_form->getInObjectId();
         } else {
             $project_form_data['task_list_id'] = $project_form->getInObjectId();
         }
         // if
     }
     // if
     tpl_assign('project_form', $project_form);
     tpl_assign('project_form_data', $project_form_data);
     if (is_array(array_var($_POST, 'project_form'))) {
         $project_form->setFromAttributes($project_form_data);
         if ($project_form->getAction() == ProjectForm::ADD_COMMENT_ACTION) {
             $in_object = ProjectMessages::findById(get_id('message_id', $project_form_data));
             $relation_error_message = lang('project form select message');
         } else {
             $in_object = ProjectTaskLists::findById(get_id('task_list_id', $project_form_data));
             $relation_error_message = lang('project form select task lists');
         }
         // if
         if (!$in_object instanceof ProjectDataObject) {
             tpl_assign('error', new Error($relation_error_message));
             $this->render();
         }
         // if
         $project_form->setInObjectId($in_object->getObjectId());
         // set related object ID
         try {
             DB::beginWork();
             $project_form->save();
             ApplicationLogs::createLog($project_form, active_project(), ApplicationLogs::ACTION_EDIT, true);
             DB::commit();
             flash_success(lang('success edit project form', $project_form->getName()));
             $this->redirectTo('form');
         } catch (Exception $e) {
             DB::rollback();
             tpl_assign('error', $e);
         }
         // try
     }
     // if
 }
예제 #4
0
 /**
  * Add comment
  *
  * @access public
  * @param void
  * @return null
  */
 function add_comment()
 {
     $message = ProjectMessages::findById(get_id());
     if (!$message instanceof ProjectMessage) {
         flash_error(lang('message dnx'));
         $this->redirectTo('message');
     }
     // if
     if (!$message->canAddComment(logged_user())) {
         flash_error(lang('no access permissions'));
         $this->redirectToUrl($message->getViewUrl());
     }
     // if
     $comment = new MessageComment();
     $comment_data = array_var($_POST, 'comment');
     tpl_assign('message', $message);
     tpl_assign('comment', $comment);
     tpl_assign('comment_data', $comment_data);
     if (is_array($comment_data)) {
         $comment->setFromAttributes($comment_data);
         $comment->setMessageId($message->getId());
         if (!logged_user()->isMemberOfOwnerCompany()) {
             $comment->setIsPrivate(false);
         }
         try {
             DB::beginWork();
             $comment->save();
             ApplicationLogs::createLog($comment, active_project(), ApplicationLogs::ACTION_ADD);
             DB::commit();
             // Try to send notification but don't break
             try {
                 Notifier::newMessageComment($comment);
             } catch (Exception $e) {
             }
             // try
             flash_success(lang('success add comment'));
             $this->redirectToUrl($message->getViewUrl());
         } catch (Exception $e) {
             DB::rollback();
             tpl_assign('error', $e);
         }
         // try
     }
     // if
 }
 /**
  * Delete specific message
  *
  * @access public
  * @param void
  * @return null
  */
 function delete()
 {
     if (logged_user()->isGuest()) {
         flash_error(lang('no access permissions'));
         ajx_current('empty');
         return;
     }
     ajx_current("empty");
     $message = ProjectMessages::findById(get_id());
     if (!$message instanceof ProjectMessage) {
         flash_error(lang('message dnx'));
         ajx_current("empty");
         return;
     }
     // if
     if (!$message->canDelete(logged_user())) {
         flash_error(lang('no access permissions'));
         ajx_current("empty");
         return;
     }
     // if
     try {
         DB::beginWork();
         $message->trash();
         DB::commit();
         ApplicationLogs::createLog($message, ApplicationLogs::ACTION_TRASH);
         flash_success(lang('success deleted message', $message->getObjectName()));
         if (array_var($_POST, 'popup', false)) {
             ajx_current("reload");
         } else {
             ajx_current("back");
         }
         ajx_add("overview-panel", "reload");
     } catch (Exception $e) {
         DB::rollback();
         flash_error(lang('error delete message'));
         ajx_current("empty");
     }
     // try
 }