Class: Spina::Admin::PagesController
- Inherits:
-
AdminController
- Object
- ActionController::Base
- Spina::ApplicationController
- AdminController
- Spina::Admin::PagesController
- Defined in:
- app/controllers/spina/admin/pages_controller.rb
Instance Method Summary collapse
- #create ⇒ Object
- #destroy ⇒ Object
- #edit ⇒ Object
- #index ⇒ Object
- #new ⇒ Object
- #sort ⇒ Object
- #update ⇒ Object
Methods inherited from AdminController
Instance Method Details
#create ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 |
# File 'app/controllers/spina/admin/pages_controller.rb', line 25 def create @page = Page.new(page_params) I18n.t('spina.pages.new') if @page.save @page. << Spina::Navigation.where(auto_add_pages: true) redirect_to spina.edit_admin_page_url(@page), flash: {success: t('spina.pages.saved')} else @page_parts = @page.view_template_page_parts(current_theme).map { |part| @page.part(part) } render :new, layout: 'spina/admin/admin' end end |
#destroy ⇒ Object
72 73 74 75 76 |
# File 'app/controllers/spina/admin/pages_controller.rb', line 72 def destroy @page = Page.find(params[:id]) @page.destroy redirect_to spina.admin_pages_url end |
#edit ⇒ Object
37 38 39 40 41 42 43 |
# File 'app/controllers/spina/admin/pages_controller.rb', line 37 def edit @page = Page.find(params[:id]) @page.title @page_parts = @page.view_template_page_parts(current_theme).map { |part| @page.part(part) } render layout: 'spina/admin/admin' end |
#index ⇒ Object
7 8 9 10 11 |
# File 'app/controllers/spina/admin/pages_controller.rb', line 7 def index I18n.t('spina.website.pages'), spina.admin_pages_path redirect_to admin_pages_path unless current_admin_path.starts_with?('/pages') @pages = Page.active.sorted.roots.regular_pages end |
#new ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 |
# File 'app/controllers/spina/admin/pages_controller.rb', line 13 def new @resource = Resource.find_by(id: params[:resource_id]) @page = Page.new(resource: @resource, parent: @resource&.parent_page) if current_theme.new_page_templates.any? { |template| template[0] == params[:view_template] } @page.view_template = params[:view_template] end I18n.t('spina.pages.new') @page_parts = @page.view_template_page_parts(current_theme).map { |part| @page.part(part) } render layout: 'spina/admin/admin' end |
#sort ⇒ Object
64 65 66 67 68 69 70 |
# File 'app/controllers/spina/admin/pages_controller.rb', line 64 def sort params[:list].each_pair do |parent_pos, parent_node| update_child_pages_position(parent_node) update_page_position(parent_node, parent_pos, nil) end head :ok end |
#update ⇒ Object
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'app/controllers/spina/admin/pages_controller.rb', line 45 def update I18n.locale = params[:locale] || I18n.default_locale @page = Page.find(params[:id]) respond_to do |format| if @page.update_attributes(page_params) @page.title @page.touch I18n.locale = I18n.default_locale format.html { redirect_to spina.edit_admin_page_url(@page, params: {locale: @locale}), flash: {success: t('spina.pages.saved')} } format.js else format.html do @page_parts = @page.view_template_page_parts(current_theme).map { |part| @page.part(part) } render :edit, layout: 'spina/admin/admin' end end end end |