diff --git a/app/controllers/issues_controller.rb b/app/controllers/issues_controller.rb index de346c5..18d6d4d 100644 --- a/app/controllers/issues_controller.rb +++ b/app/controllers/issues_controller.rb @@ -54,6 +54,11 @@ class IssuesController < ApplicationController def index retrieve_query + @prev = params[:prev] + @next = params[:next] + @pos = params[:pos] + @count = params[:count] + sort_init(@query.sort_criteria.empty? ? [['id', 'desc']] : @query.sort_criteria) sort_update(@query.sortable_columns) @query.sort_criteria = sort_criteria.to_a @@ -104,6 +109,11 @@ class IssuesController < ApplicationController end def show + @prev = params[:prev] + @next = params[:next] + @pos = params[:pos] + @count = params[:count] + @journals = @issue.journals.includes(:user, :details).reorder("#{Journal.table_name}.id ASC").all @journals.each_with_index {|j,i| j.indice = i+1} @journals.reject!(&:private_notes?) unless User.current.allowed_to?(:view_private_notes, @issue.project) @@ -182,6 +192,7 @@ class IssuesController < ApplicationController def update return unless update_issue_from_params + retrieve_previous_and_next_issue_ids @issue.save_attachments(params[:attachments] || (params[:issue] && params[:issue][:uploads])) saved = false begin @@ -199,7 +210,7 @@ class IssuesController < ApplicationController flash[:notice] = l(:notice_successful_update) unless @issue.current_journal.new_record? respond_to do |format| - format.html { redirect_back_or_default issue_path(@issue) } + format.html { redirect_back_or_default issue_path(@issue) + "?next=#@next_issue_id&prev=#@prev_issue_id&pos=#@issue_position&count=#@issue_count" } format.api { render_api_ok } end else @@ -365,6 +376,11 @@ class IssuesController < ApplicationController end @prev_issue_id = issue_ids[idx - 1] if idx > 0 @next_issue_id = issue_ids[idx + 1] if idx < (issue_ids.size - 1) + else + @prev_issue_id = @prev + @next_issue_id = @next + @issue_position = @pos + @issue_count = @count end end end