Class: PlanMyStuff::IssuesController
- Inherits:
-
ApplicationController
- Object
- ApplicationController
- ApplicationController
- PlanMyStuff::IssuesController
- Defined in:
- app/controllers/plan_my_stuff/issues_controller.rb
Instance Method Summary collapse
-
#add_viewers ⇒ Object
POST /issues/:id/add_viewers.
-
#close ⇒ Object
PATCH /issues/:id/close.
-
#create ⇒ Object
POST /issues.
-
#edit ⇒ Object
GET /issues/:id/edit.
-
#index ⇒ Object
GET /issues.
-
#new ⇒ Object
GET /issues/new.
-
#remove_viewer ⇒ Object
DELETE /issues/:id/remove_viewer.
-
#reopen ⇒ Object
PATCH /issues/:id/reopen.
-
#show ⇒ Object
GET /issues/:id.
-
#update ⇒ Object
PATCH/PUT /issues/:id.
Instance Method Details
#add_viewers ⇒ Object
POST /issues/:id/add_viewers
97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 |
# File 'app/controllers/plan_my_stuff/issues_controller.rb', line 97 def add_viewers return (plan_my_stuff.issue_path(params[:id])) unless support_user? viewer_ids = parse_viewer_ids(params[:viewer_ids]) if viewer_ids.blank? flash[:error] = 'No valid viewer IDs provided.' redirect_to(plan_my_stuff.edit_issue_path(params[:id])) return end PMS::Issue.add_viewers(number: params[:id].to_i, user_ids: viewer_ids, repo: params[:repo]&.to_sym) flash[:success] = 'Viewers were successfully added.' redirect_to(plan_my_stuff.edit_issue_path(params[:id])) end |
#close ⇒ Object
PATCH /issues/:id/close
79 80 81 82 83 84 85 |
# File 'app/controllers/plan_my_stuff/issues_controller.rb', line 79 def close @issue = PMS::Issue.find(params[:id].to_i, repo: params[:repo]&.to_sym) @issue.update!(state: :closed) flash[:success] = 'Issue was successfully closed.' redirect_to(plan_my_stuff.issue_path(@issue.number)) end |
#create ⇒ Object
POST /issues
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'app/controllers/plan_my_stuff/issues_controller.rb', line 29 def create @issue = PMS::Issue.create!( title: issue_params[:title], body: issue_params[:body], labels: parse_labels(issue_params[:labels]), user: pms_current_user, ) flash[:success] = 'Issue was successfully created.' redirect_to(plan_my_stuff.issue_path(@issue.number)) rescue PMS::ValidationError => e @issue = PMS::Issue.new(title: issue_params[:title], body: issue_params[:body]) @support_user = support_user? flash.now[:error] = e. render(:new, status: PMS.unprocessable_status) end |
#edit ⇒ Object
GET /issues/:id/edit
55 56 57 58 |
# File 'app/controllers/plan_my_stuff/issues_controller.rb', line 55 def edit @issue = PMS::Issue.find(params[:id].to_i, repo: params[:repo]&.to_sym) @support_user = support_user? end |
#index ⇒ Object
GET /issues
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'app/controllers/plan_my_stuff/issues_controller.rb', line 6 def index @page = (params[:page] || 1).to_i @per_page = (params[:per_page] || 25).to_i @state = (params[:state] || 'open').to_sym @labels = params[:labels].present? ? Array.wrap(params[:labels]) : [] @repo = params[:repo]&.to_sym @issues = PMS::Issue.list( repo: @repo, state: @state, labels: @labels, page: @page, per_page: @per_page, ) end |
#new ⇒ Object
GET /issues/new
23 24 25 26 |
# File 'app/controllers/plan_my_stuff/issues_controller.rb', line 23 def new @issue = PMS::Issue.new @support_user = support_user? end |
#remove_viewer ⇒ Object
DELETE /issues/:id/remove_viewer
114 115 116 117 118 119 120 121 122 |
# File 'app/controllers/plan_my_stuff/issues_controller.rb', line 114 def remove_viewer return (plan_my_stuff.issue_path(params[:id])) unless support_user? viewer_id = params[:viewer_id].to_i PMS::Issue.remove_viewers(number: params[:id].to_i, user_ids: [viewer_id], repo: params[:repo]&.to_sym) flash[:success] = 'Viewer was successfully removed.' redirect_to(plan_my_stuff.edit_issue_path(params[:id])) end |
#reopen ⇒ Object
PATCH /issues/:id/reopen
88 89 90 91 92 93 94 |
# File 'app/controllers/plan_my_stuff/issues_controller.rb', line 88 def reopen @issue = PMS::Issue.find(params[:id].to_i, repo: params[:repo]&.to_sym) @issue.update!(state: :open) flash[:success] = 'Issue was successfully reopened.' redirect_to(plan_my_stuff.issue_path(@issue.number)) end |
#show ⇒ Object
GET /issues/:id
47 48 49 50 51 52 |
# File 'app/controllers/plan_my_stuff/issues_controller.rb', line 47 def show @issue = PMS::Issue.find(params[:id].to_i, repo: params[:repo]&.to_sym) @comments = filter_visible_comments(@issue.comments) @support_user = support_user? @current_user_id = pms_current_user.present? ? PMS::UserResolver.user_id(pms_current_user) : nil end |
#update ⇒ Object
PATCH/PUT /issues/:id
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'app/controllers/plan_my_stuff/issues_controller.rb', line 61 def update @issue = PMS::Issue.find(params[:id].to_i, repo: params[:repo]&.to_sym) @issue.update!( title: issue_params[:title], body: issue_params[:body], labels: parse_labels(issue_params[:labels]), ) flash[:success] = 'Issue was successfully updated.' redirect_to(plan_my_stuff.issue_path(@issue.number)) rescue PMS::StaleObjectError @support_user = support_user? flash.now[:error] = 'Issue was modified by someone else. Please review the latest changes and try again.' render(:edit, status: PMS.unprocessable_status) end |