/** * Return message object * * @param void * @return ProjectMessage */ function getMessage() { if (is_null($this->message)) { $this->message = ProjectMessages::findById($this->getMessageId()); } return $this->message; }
/** * 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
/** * 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 }
/** * 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 }