/** * Set the status of a sprint to complete, if all issues in this sprint are complete * @param Request * @return array $result */ public function complete(Request $request) { // default $result = array('message' => 'There was an error processing this request', 'status' => 0); $sprintName = $request->sprintMachineName; $projectId = $request->projectId; $sprint = Sprint::where('machine_name', '=', $sprintName)->where('project_id', '=', $projectId)->firstOrFail(); if ($sprint && $sprint->isComplete()) { $sprint->status_id = SprintStatus::getIdByMachineName('complete'); $sprint->save(); $result = array('message' => 'This sprint has been set to complete', 'sprintMachineName' => $sprintName, 'status' => 1); } else { $result = array('message' => 'All issues in the sprint should be complete or archived before setting a sprint to complete', 'sprintMachineName' => $sprintName, 'status' => 0); } return $result; }
/** * Update the sprint associated with an issue * @todo create a function to get sprint machine names for a given project */ public function sprintchange() { $result = "There was an error updating the issue's sprint association"; $issueId = (int) trim(Request::get('issueId')); $projectId = (int) trim(Request::get('projectId')); $issue = Issue::findOrFail($issueId); $currentSprintIdOfIssue = $issue->sprint_id; $machineNameOfNewSprint = trim(strip_tags(Request::get('machineNameOfNewSprint'))); $nextIssueIdInNewSprint = trim(strip_tags(Request::get('nextIssueId'))); $prevIssueIdInNewSprint = trim(strip_tags(Request::get('prevIssueId'))); $sprints = Project::findOrFail($issue->project_id)->getSprints(); $sprintMachineNames = []; foreach ($sprints as $sprint) { array_push($sprintMachineNames, $sprint->machine_name); } if (in_array($machineNameOfNewSprint, $sprintMachineNames)) { $newSprintId = (int) Sprint::where('machine_name', '=', $machineNameOfNewSprint)->where('project_id', '=', $projectId)->first()->id; // update sort order for previous and next issues in current sprint (association) $prevIssue = Sprint::findOrFail($currentSprintIdOfIssue)->getPreviousIssueBySortOrder($issueId); $nextIssue = Sprint::findOrFail($currentSprintIdOfIssue)->getNextIssueBySortOrder($issueId); if ($prevIssue) { $prevIssue->sort_next = $issue->sort_next ? $issue->sort_next : NULL; $prevIssue->save(); } if ($nextIssue) { $nextIssue->sort_prev = $issue->sort_prev ? $issue->sort_prev : NULL; $nextIssue->save(); } // Check if previous and next issue ids provided in the Request exist in the new sprint if ($prevIssueIdInNewSprint && Sprint::find($newSprintId)->issues()->where('id', '=', $prevIssueIdInNewSprint)->first()->id) { // update sort order for previous issue in new sprint $prevIssueInNewSprint = Issue::findOrFail($prevIssueIdInNewSprint); $prevIssueInNewSprint->sort_next = $issueId; $prevIssueInNewSprint->save(); } else { $prevIssueIdInNewSprint = NULL; } if ($nextIssueIdInNewSprint && Sprint::find($newSprintId)->issues()->where('id', '=', $nextIssueIdInNewSprint)->first()->id) { // update sort order for next issue in new sprint $nextIssueInNewSprint = Issue::findOrFail($nextIssueIdInNewSprint); $nextIssueInNewSprint->sort_prev = $issueId; $nextIssueInNewSprint->save(); } else { $nextIssueIdInNewSprint = NULL; } // Update sprint association and sort previous and next for issue DB::update('update issues set sprint_id = ?, sort_prev = ?, sort_next = ? where id = ?', [$newSprintId, $prevIssueIdInNewSprint, $nextIssueIdInNewSprint, $issueId]); $result = "Issue's sprint association has been updated successfully."; } return $result; }
/** * Update the sprint associated with an issue * @todo create a function to get sprint machine names for a given project */ public function sprintchange() { $result = "There was an error updating the issue's sprint association"; $issueId = (int) trim(Request::get('issueId')); $projectId = (int) trim(Request::get('projectId')); $issue = Issue::find($issueId); $machineNameOfNewSprint = trim(strip_tags(Request::get('machineNameOfNewSprint'))); $sprints = Project::find($issue->project_id)->getSprints(); $sprintMachineNames = []; foreach ($sprints as $sprint) { array_push($sprintMachineNames, $sprint->machine_name); } if (in_array($machineNameOfNewSprint, $sprintMachineNames)) { $sprintId = (int) Sprint::where('machine_name', '=', $machineNameOfNewSprint)->where('project_id', '=', $projectId)->first()->id; DB::update('update issues set sprint_id = ? where id = ?', [$sprintId, $issueId]); $result = "Issue's sprint association has been updated successfully."; } return $result; }
public function editConfirm(NewSprintRequest $r, $project_id, $sprint_id) { $us = Sprint::where('id', $sprint_id)->first(); $us->update(["StartDate" => $r->input("StartDate"), "EndDate" => $r->input("EndDate")]); return Redirect::action("SprintController@listSprint", [$project_id]); }