class PagesController < ApplicationController before_action :set_page, only: %i[ show edit update destroy ] before_action :set_report, only: %i[ new create index ] # GET /pages def index @pages = Page.all end # GET /pages/1 def show end # GET /pages/new def new @page = Page.new @page.report = @report end # GET /pages/1/edit def edit render_modal end # POST /pages def create @page = Page.new(page_params) @page.report = @report if @page.save redirect_to [ @page.report, page_id: @page.id ], notice: "Page was successfully created." else render :new, status: :unprocessable_entity end end # PATCH/PUT /pages/1 def update if @page.update(page_params) respond_to do |format| format.turbo_stream format.html do redirect_to @page, notice: "Page was successfully updated.", status: :see_other end end else render :edit, status: :unprocessable_entity end end # DELETE /pages/1 def destroy @page.destroy! redirect_to report_url(@page.report), notice: "Page was successfully destroyed.", status: :see_other end private # Use callbacks to share common setup or constraints between actions. def set_page @page = Page.find(params[:id]) end def set_report @report = Report.find(params[:report_id]) end # Only allow a list of trusted parameters through. def page_params params.require(:page).permit(:position, :path, :url, :notes, :position) end end