/** * 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; }
/** * 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; }