page_contents_controller.rb 1.21 KB
module Kanjai
  class Admin::PageContentsController < AdminController
    def show_content_form
      @obj = PageContent.find(params[:id])
      @page = @obj.page
      content_type = params[:content_type]

      partial, locals = PageContent.edit_template(content_type)


      @obj.build_markers(content_type)

      @type_content = content_type

      render :partial => partial, locals: locals



    end


    def add_item
      @obj = PageContent.find(params[:id])

      @row_item = @obj.build_markers_rows(@obj.type_content)

      @current_row = @obj.page_content_markers.where('row_item != ?', @row_item).count

      render layout: false
    end

    def delete_item
      @obj = PageContent.find(params[:id])

      @row_item = params[:row_item]

      @obj.delete_markers_row(@row_item)

      render :json => {status: 'ok'}
    end

    def sorting
      @obj = PageContent.find(params[:id])

      h = {}
      params[:data].each do |key, item|
        h[item[:index].to_i] = item[:position].to_i
      end

      @obj.page_content_markers.each do |item|
        if h[item.row_item]
          item.update_column(:row_item, h[item.row_item])
        end
      end

      render :json => {status: 'ok'}
    end

  end
end