public function updateConfiguration() { if (!$this->request->exist('kanban-title-admin')) { $this->response->missingKanbanTitle(); return; } $kanban_is_activated = $this->getActivatedKanban(); $this->config_manager->updateConfiguration($this->project_id, $this->config_manager->scrumIsActivatedForProject($this->project_id), $kanban_is_activated, $this->config_manager->getScrumTitle($this->project_id), $this->getKanbanTitle()); if ($kanban_is_activated) { $this->first_kanban_creator->createFirstKanban(); } $this->response->kanbanConfigurationUpdated(); }
public function update() { $vChildren = new Valid_UInt('children'); $vChildren->required(); if ($this->request->validArray($vChildren)) { $this->dao->updateChildren($this->tracker->getId(), $this->request->get('children')); } else { if ($this->request->exist('children')) { $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('plugin_tracker_hierarchy', 'controller_bad_request')); } else { $this->dao->deleteAllChildren($this->tracker->getId()); } } $this->redirect(array('tracker' => $this->tracker->getId(), 'func' => 'admin-hierarchy')); }
private function getCurrentCommitSha1() { if ($this->request->exist(self::OLD_COMMIT_TREE)) { return $this->request->get(self::OLD_COMMIT_TREE); } return 'HEAD'; }
/** * Return the Tracker object that correspond to the given request * * @param Codendi_Request $request The request * @param User $user Who access the request * * @return Tracker_Dispatchable_Interface */ function getDispatchableFromRequest(Codendi_Request $request, User $user) { if ((int) $request->get('aid')) { if ($artifact = $this->getArtifactFactory()->getArtifactByid($request->get('aid'))) { return $artifact; } else { throw new Tracker_ResourceDoesntExistException($GLOBALS['Language']->getText('plugin_tracker_common_type', 'artifact_not_exist')); } } else { if ((int) $request->get('report')) { $store_in_session = true; if ($request->exist('store_in_session')) { $store_in_session = (bool) $request->get('store_in_session'); } if ($report = $this->getArtifactReportFactory()->getReportById($request->get('report'), $user->getId(), $store_in_session)) { return $report; } else { throw new Tracker_ResourceDoesntExistException($GLOBALS['Language']->getText('plugin_tracker_common_type', 'report_not_exist')); } } else { if ((int) $request->get('tracker') || (int) $request->get('atid')) { $tracker_id = (int) $request->get('tracker'); if (!$tracker_id) { $tracker_id = (int) $request->get('atid'); } if ($tracker = $this->getTrackerFactory()->getTrackerByid($tracker_id)) { return $tracker; } else { throw new Tracker_ResourceDoesntExistException($GLOBALS['Language']->getText('plugin_tracker_common_type', 'tracker_not_exist')); } } else { if ((int) $request->get('formElement')) { if ($formElement = $this->getTracker_FormElementFactory()->getFormElementByid($request->get('formElement'))) { return $formElement; } } else { if ($request->get('func') == 'new-artifact-link') { if ($artifact = Tracker_ArtifactFactory::instance()->getArtifactByid($request->get('id'))) { return $artifact; } else { throw new Tracker_ResourceDoesntExistException($GLOBALS['Language']->getText('plugin_tracker_common_type', 'artifact_not_exist')); } } else { if ((int) $request->get('link-artifact-id')) { if ($artifact = Tracker_ArtifactFactory::instance()->getArtifactByid($request->get('link-artifact-id'))) { return $artifact; } else { throw new Tracker_ResourceDoesntExistException($GLOBALS['Language']->getText('plugin_tracker_common_type', 'artifact_not_exist')); } } } } } } } throw new Tracker_NoMachingResourceException(); }
/** * @return boolean */ private function getSendNotificationsFromRequest(Codendi_Request $request) { $send_notifications = false; if ($request->exist('notify')) { if ($request->get('notify') == 'ok') { $send_notifications = true; } } return $send_notifications; }
private function getMilestoneArtifact(User $user, Codendi_Request $request, Tracker_Artifact $artifact) { $source_artifact = null; if ($request->exist('link-artifact-id')) { $ancestors = $artifact->getAllAncestors($user); if (count($ancestors) == 0) { $source_artifact = $this->getSourceArtifact($request, 'link-artifact-id'); } } else { $source_artifact = $this->getSourceArtifact($request, 'child_milestone'); } return $source_artifact; }
/** * Process the artifact functions * * @param Tracker_IDisplayTrackerLayout $layout Displays the page header and footer * @param Codendi_Request $request The data from the user * @param PFUser $current_user The current user * * @return void */ public function process(Tracker_IDisplayTrackerLayout $layout, $request, $current_user) { switch ($request->get('func')) { case 'get-children': $children = $this->getChildPresenterCollection($current_user); $GLOBALS['Response']->sendJSON($children); exit; break; case 'update-comment': if ((int) $request->get('changeset_id') && $request->exist('content')) { if ($changeset = $this->getChangeset($request->get('changeset_id'))) { $comment_format = $this->validateCommentFormat($request, 'comment_format'); $changeset->updateComment($request->get('content'), $current_user, $comment_format, $_SERVER['REQUEST_TIME']); if ($request->isAjax()) { //We assume that we can only change a comment from a followUp echo $changeset->getComment()->fetchFollowUp(); } } } break; case 'preview-attachment': case 'show-attachment': if ((int) $request->get('field') && (int) $request->get('attachment')) { $ff = Tracker_FormElementFactory::instance(); //TODO: check that the user can read the field if ($field = $ff->getFormElementByid($request->get('field'))) { $method = explode('-', $request->get('func')); $method = $method[0]; $method .= 'Attachment'; if (method_exists($field, $method)) { $field->{$method}($request->get('attachment')); } } } break; case 'artifact-delete-changeset': // @see comment in Tracker_Artifact_Changeset::fetchFollowUp() //if ($changeset = $this->getChangeset($request->get('changeset'))) { // $changeset->delete($current_user); //} $GLOBALS['Response']->redirect('?aid=' . $this->id); break; case 'artifact-update': $action = new Tracker_Action_UpdateArtifact($this, $this->getFormElementFactory(), $this->getEventManager()); $action->process($layout, $request, $current_user); break; case 'check-user-can-link-and-unlink': $source_artifact = (int) $request->get('from-artifact'); $destination_artifact = (int) $request->get('to-artifact'); if (!($this->userHasRankingPermissions($source_artifact) && $this->userHasRankingPermissions($destination_artifact))) { $this->sendUserDoesNotHavePermissionsErrorCode(); } break; case 'unassociate-artifact-to': $artlink_fields = $this->getFormElementFactory()->getUsedArtifactLinkFields($this->getTracker()); $linked_artifact_id = $request->get('linked-artifact-id'); if (!$this->userHasRankingPermissions($this->getId())) { $this->sendUserDoesNotHavePermissionsErrorCode(); break; } if (count($artlink_fields)) { $this->unlinkArtifact($artlink_fields, $linked_artifact_id, $current_user); $this->summonArtifactAssociators($request, $current_user, $linked_artifact_id); } else { $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('plugin_tracker', 'must_have_artifact_link_field')); $GLOBALS['Response']->sendStatusCode(400); } break; case 'associate-artifact-to': $linked_artifact_id = $request->get('linked-artifact-id'); if (!$this->userHasRankingPermissions($this->getId())) { $this->sendUserDoesNotHavePermissionsErrorCode(); break; } if (!$this->linkArtifact($linked_artifact_id, $current_user)) { $GLOBALS['Response']->sendStatusCode(400); } else { $this->summonArtifactAssociators($request, $current_user, $linked_artifact_id); } break; case 'higher-priority-than': $target_id = (int) $request->get('target-id'); $milestone_id = (int) $request->get('milestone-id'); $project_id = $this->getProjectId(); $user_is_authorized = $this->userHasRankingPermissions($milestone_id); if (!$this->userHasRankingPermissions($milestone_id)) { $this->sendUserDoesNotHavePermissionsErrorCode(); break; } $this->getPriorityManager()->moveArtifactBeforeWithHistoryChangeLogging($this->getId(), $target_id, $milestone_id, $project_id); break; case 'lesser-priority-than': $target_id = (int) $request->get('target-id'); $milestone_id = (int) $request->get('milestone-id'); $project_id = $this->getProjectId(); if (!$this->userHasRankingPermissions($milestone_id)) { $this->sendUserDoesNotHavePermissionsErrorCode(); break; } $this->getPriorityManager()->moveArtifactAfterWithHistoryChangeLogging($this->getId(), $target_id, $milestone_id, $project_id); break; case 'show-in-overlay': $renderer = new Tracker_Artifact_EditOverlayRenderer($this, $this->getEventManager()); $renderer->display($request, $current_user); break; case 'get-new-changesets': $changeset_id = $request->getValidated('changeset_id', 'uint', 0); $changeset_factory = $this->getChangesetFactory(); $GLOBALS['Response']->sendJSON($changeset_factory->getNewChangesetsFormattedForJson($this, $changeset_id)); break; case 'edit': $GLOBALS['Response']->redirect($this->getUri()); break; case 'get-edit-in-place': $renderer = new Tracker_Artifact_Renderer_EditInPlaceRenderer($this, $this->getMustacheRenderer()); $renderer->display($current_user, $request); break; case 'update-in-place': $renderer = new Tracker_Artifact_Renderer_EditInPlaceRenderer($this, $this->getMustacheRenderer()); $renderer->updateArtifact($request, $current_user); break; case 'copy-artifact': $art_link = $this->fetchDirectLinkToArtifact(); $GLOBALS['Response']->addFeedback('info', $GLOBALS['Language']->getText('plugin_tracker_artifact', 'copy_mode_info', array($art_link)), CODENDI_PURIFIER_LIGHT); $renderer = new Tracker_Artifact_CopyRenderer($this->getEventManager(), $this, $this->getFormElementFactory(), $layout); $renderer->display($request, $current_user); break; case 'manage-subscription': $artifact_subscriber = new Tracker_ArtifactNotificationSubscriber($this, $this->getDao()); if ($this->doesUserHaveUnsubscribedFromNotification($current_user)) { $artifact_subscriber->subscribeUser($current_user, $request); break; } $artifact_subscriber->unsubscribeUser($current_user, $request); break; default: if ($request->isAjax()) { echo $this->fetchTooltip($current_user); } else { $renderer = new Tracker_Artifact_ReadOnlyRenderer($this->getEventManager(), $this, $this->getFormElementFactory(), $layout); $renderer->display($request, $current_user); } break; } }
/** * Process the form * * @param Tracker_SemanticManager $sm The semantic manager * @param TrackerManager $tracker_manager The tracker manager * @param Codendi_Request $request The request * @param User $current_user The user who made the request * * @return void */ public function process(Tracker_SemanticManager $sm, TrackerManager $tracker_manager, Codendi_Request $request, User $current_user) { if ($request->exist('update')) { if ($request->get('field_id') == '-1') { if ($this->getField()) { $this->delete(); } } else { if ($field = Tracker_FormElementFactory::instance()->getUsedListFieldById($this->tracker, $request->get('field_id'))) { if ($this->getFieldId() != $request->get('field_id') || $request->get('open_values')) { $this->list_field = $field; $open_values = $request->get('open_values'); if ($open_values && is_array($open_values) && isset($open_values[$this->getFieldId()]) && is_array($open_values[$this->getFieldId()])) { $this->open_values = $open_values[$this->getFieldId()]; if ($this->save()) { $GLOBALS['Response']->addFeedback('info', $GLOBALS['Language']->getText('plugin_tracker_admin_semantic', 'status_now', array($field->getLabel()))); $GLOBALS['Response']->redirect($this->getUrl()); } else { $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('plugin_tracker_admin_semantic', 'unable_save_status')); } } else { //Display the form to choose the values //nop - see below } } } else { $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('plugin_tracker_admin_semantic', 'bad_field_status')); } } } $this->displayAdmin($sm, $tracker_manager, $request, $current_user); }
/** * Process the form * * @param Tracker_SemanticManager $sm The semantic manager * @param TrackerManager $tracker_manager The tracker manager * @param Codendi_Request $request The request * @param PFUser $current_user The user who made the request * * @return void */ public function process(Tracker_SemanticManager $sm, TrackerManager $tracker_manager, Codendi_Request $request, PFUser $current_user) { if ($request->exist('update')) { if ($field = Tracker_FormElementFactory::instance()->getUsedUserSbFieldById($this->tracker, $request->get('list_field_id'))) { $this->list_field = $field; if ($this->save()) { $this->sendContributorChangeEvent(); $GLOBALS['Response']->addFeedback('info', $GLOBALS['Language']->getText('plugin_tracker_admin_semantic', 'contributor_now', array($field->getLabel()))); $GLOBALS['Response']->redirect($this->getUrl()); } else { $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('plugin_tracker_admin_semantic', 'unable_save_contributor')); } } elseif ($request->get('list_field_id') == self::NO_VALUE) { if ($this->delete()) { $this->sendContributorChangeEvent(); $GLOBALS['Response']->redirect($this->getUrl()); } else { $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('plugin_tracker_admin_semantic', 'unable_save_contributor')); } } else { $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('plugin_tracker_admin_semantic', 'bad_field_contributor')); } } $this->displayAdmin($sm, $tracker_manager, $request, $current_user); }
/** * Process the form * * @param Tracker_SemanticManager $semantic_manager The semantic manager * @param TrackerManager $tracker_manager The tracker manager * @param Codendi_Request $request The request * @param PFUser $current_user The user who made the request * * @return void */ public function process(Tracker_SemanticManager $semantic_manager, TrackerManager $tracker_manager, Codendi_Request $request, PFUser $current_user) { if ($request->exist('update')) { $field_id = $request->get('initial_effort_field_id'); $field = Tracker_FormElementFactory::instance()->getUsedPotentiallyContainingNumericValueFieldById($this->tracker, $field_id); if ($field) { $this->initial_effort_field = $field; if ($this->save()) { $GLOBALS['Response']->addFeedback('info', $GLOBALS['Language']->getText('plugin_agiledashboard_admin_semantic', 'initial_effort_now', array($field->getLabel()))); $GLOBALS['Response']->redirect($this->getUrl()); } else { $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('plugin_agiledashboard_admin_semantic', 'unable_save_initial_effort')); } } else { $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('plugin_agiledashboard_admin_semantic', 'bad_field_initial_effort')); } } $this->displayAdmin($semantic_manager, $tracker_manager, $request, $current_user); }
public function processSOAP(Codendi_Request $request) { $uri = $this->getSoapUri(); $service_class = 'Statistics_SOAPServer'; require_once $service_class . '.class.php'; if ($request->exist('wsdl')) { $this->dumpWSDL($uri, $service_class); } else { $this->instantiateSOAPServer($uri, $service_class); } }
/** * Process the form * * @param Tracker_SemanticManager $sm The semantic manager * @param TrackerManager $tracker_manager The tracker manager * @param Codendi_Request $request The request * @param PFUser $current_user The user who made the request * * @return void */ public function process(Tracker_SemanticManager $sm, TrackerManager $tracker_manager, Codendi_Request $request, PFUser $current_user) { if ($request->exist('update')) { if ($field = Tracker_FormElementFactory::instance()->getUsedTextFieldById($this->tracker, $request->get('text_field_id'))) { $this->text_field = $field; if ($this->save()) { $GLOBALS['Response']->addFeedback('info', $GLOBALS['Language']->getText('plugin_tracker_admin_semantic', 'description_now', array($field->getLabel()))); $GLOBALS['Response']->redirect($this->getUrl()); } else { $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('plugin_tracker_admin_semantic', 'unable_save_description')); } } else { $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('plugin_tracker_admin_semantic', 'bad_field_description')); } } else { if ($request->exist('delete')) { if ($this->delete()) { $GLOBALS['Response']->addFeedback('info', $GLOBALS['Language']->getText('plugin_tracker_admin_semantic', 'deleted_description')); $GLOBALS['Response']->redirect($this->getUrl()); } else { $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('plugin_tracker_admin_semantic', 'unable_save_description')); } } } $this->displayAdmin($sm, $tracker_manager, $request, $current_user); }
private function isFromOverlay(Codendi_Request $request) { if ($request->existAndNonEmpty('link-artifact-id') && !$request->exist('immediate')) { return true; } return false; }
private function getSelectReportUrl(Codendi_Request $request, Tracker_Report $report) { $params = array('tracker' => $report->tracker_id); if ($request->exist('criteria')) { $params['criteria'] = $request->get('criteria'); } return '?' . http_build_query($params); }