module Suppliers class TablesController < Suppliers::ApplicationController # GET /tables # GET /tables.json def index @tables = Table.for_supplier(current_supplier, page: params[:page], per_page: params[:per_page] || 25, from_number: params[:from_number], to_number: params[:to_number]) @tables.include_relation(:section) respond_to do |format| format.html # index.html.erb format.json { render json: @tables } end end # GET /tables/1 # GET /tables/1.json def show @table= Table.find_by_supplier_id_and_id!(current_supplier.id, params[:id]) respond_to do |format| format.html # show.html.erb format.json { render json: @table } end end # GET /tables/new # GET /tables/new.json def new @table = Table.new @table.section_id = params[:section_id].presence respond_to do |format| format.html # new.html.erb format.json { render json: @table } end end # GET /tables/1/edit def edit @table = Table.find(params[:id]) end # POST /tables # POST /tables.json def create @table = Table.new(table_params) @table.supplier = current_supplier respond_to do |format| if @table.save format.html { redirect_to [:suppliers, @table.section || @table], notice: t('action.create.successfull', model: Table.model_name.human) } format.json { render json: @table, status: :created, location: @table } else format.html { render action: "new" } format.json { render json: @table.errors, status: :unprocessable_entity } end end end # PUT /supplier/tables/1 # PUT /supplier/tables/1.json def update @table= Table.find_by_supplier_id_and_id!(current_supplier.id, params[:id]) respond_to do |format| if @table.update_attributes(table_params) format.html { redirect_to [:suppliers, @table.section || @table], notice: t('action.update.successfull', model: Table.model_name.human) } format.json { head :no_content } format.js { head :no_content } else format.html { render action: "edit" } format.json { render json: @table.errors, status: :unprocessable_entity } format.js { head :no_content } end end end # DELETE /tables/1 # DELETE /tables/1.json def destroy @table= Table.find_by_supplier_id_and_id!(current_supplier.id, params[:id]) @table.destroy respond_to do |format| format.html { redirect_to suppliers_tables_url, notice: t('action.destroy.successfull', model: Table.model_name.human) } format.json { head :no_content } end end def qr_codes @tables = current_supplier.tables @tables.select!{|t| t.section_id == params[:section_id]} if params[:section_id].present? render layout: 'qr_sheet' end private def table_params permitted_attributes = [:number, :section_id, :position_x, :position_y] # do not raise in development and test for json communication if request.format.json? params.require(:table).slice(*permitted_attributes).permit! else params.require(:table).permit permitted_attributes end end end end