Example #1
0
 /**
  * Update the status of an issue
  * @return string
  */
 public function statuschange()
 {
     $result = 'There was an error updating the issue status';
     $issueStatusMachineNames = IssueStatus::lists('machine_name', 'id')->all();
     $newIssueStatusMachineName = trim(strip_tags(Request::get('machineNameOfNewIssueStatus')));
     $prevIssueId = trim(strip_tags(Request::get('prevIssueId')));
     $nextIssueId = trim(strip_tags(Request::get('nextIssueId')));
     if (in_array($newIssueStatusMachineName, $issueStatusMachineNames)) {
         $issueId = (int) trim(Request::get('issueId'));
         $statusId = array_search($newIssueStatusMachineName, $issueStatusMachineNames);
         $issue = Issue::findOrFail($issueId);
         if ($issue) {
             DB::update('update issues set status_id = ? where id = ?', [$statusId, $issueId]);
             $result = 'Issue status has been changed successfully.';
             // If an issue is archived set sort order (previous and next) to NULL
             if ($newIssueStatusMachineName == 'archive') {
                 // Check if previous and next issue ids provided in the Request exist in the sprint
                 if ($prevIssueId && Sprint::find($issue->sprint_id)->issues()->where('id', '=', $issue->id)->first()->id) {
                     // do nothing
                 } else {
                     $prevIssueId = NULL;
                 }
                 if ($nextIssueId && Sprint::find($issue->sprint_id)->issues()->where('id', '=', $issue->id)->first()->id) {
                     // do nothing
                 } else {
                     $nextIssueId = NULL;
                 }
                 // set sort order for previous and next issues in the same sprint
                 if ($prevIssueId) {
                     $prevIssue = Issue::findOrFail($prevIssueId);
                     $prevIssue->sort_next = $issue->sort_next ? $issue->sort_next : NULL;
                     $prevIssue->save();
                 }
                 if ($nextIssueId) {
                     $nextIssue = Issue::findOrFail($nextIssueId);
                     $nextIssue->sort_prev = $issue->sort_prev ? $issue->sort_prev : NULL;
                     $nextIssue->save();
                 }
                 // set sort_prev and sort_next for archived issue to NULL
                 $archivedIssue = Issue::findOrFail($issueId);
                 $archivedIssue->sort_prev = NULL;
                 $archivedIssue->sort_next = NULL;
                 $archivedIssue->save();
             }
         }
     }
     return $result;
 }
Example #2
0
 /**
  * Update the status of an issue
  * @return string
  */
 public function statuschange()
 {
     $result = 'There was an error updating the issue status';
     $issueStatusMachineNames = IssueStatus::lists('machine_name', 'id')->all();
     $newIssueStatusMachineName = trim(Request::get('machineNameOfNewIssueStatus'));
     if (in_array($newIssueStatusMachineName, $issueStatusMachineNames)) {
         $issueId = (int) trim(Request::get('issueId'));
         $statusId = array_search($newIssueStatusMachineName, $issueStatusMachineNames);
         if (Issue::find($issueId) != NULL) {
             DB::update('update issues set status_id = ? where id = ?', [$statusId, $issueId]);
             $result = 'Issue status has been changed successfully.';
         }
     }
     return $result;
 }