Пример #1
0
 /**
  * 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;
 }
Пример #2
0
 /**
  * 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;
 }
Пример #3
0
 /**
  * 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;
 }
Пример #4
0
 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]);
 }