Class: CrudController
- Inherits:
-
ApplicationController
- Object
- ApplicationController
- CrudController
- Defined in:
- app/controllers/crud_controller.rb
Instance Method Summary collapse
- #action ⇒ Object
- #autocomplete ⇒ Object
- #create ⇒ Object
- #destroy ⇒ Object
- #edit ⇒ Object
- #index ⇒ Object
- #listing ⇒ Object
- #new ⇒ Object
- #printing ⇒ Object
- #query ⇒ Object
- #show ⇒ Object
Instance Method Details
#action ⇒ Object
75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
# File 'app/controllers/crud_controller.rb', line 75 def action @record = @model.find(@id) :create_or_update, @record if respond_to?(:current_usuario) if @model.method_defined?(params[:acao]) if @record.send(params[:acao]) flash.now[:success] = I18n.t("mensagem_action", acao: params[:acao]) else flash.now[:error] = I18n.t("mensagem_erro_action", acao: params[:acao]) end redirect_to "#{@url}?page=#{params[:page]}" else @titulo = @record.to_s @texto = params[:acao] render partial: "/#{@model.name.underscore.pluralize}/#{params[:acao]}" if request.respond_to?(:wiselinks_partial?) && request.wiselinks_partial? end end |
#autocomplete ⇒ Object
157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 |
# File 'app/controllers/crud_controller.rb', line 157 def autocomplete @model = Module.const_get(params[:model].camelize) :read, @model if respond_to?(:current_usuario) parametros = {} parametros["#{params[:campo]}_#{params[:tipo]}"] = params[:term] @q = @model.search(parametros) @q.sorts = 'updated_at desc' if @q.sorts.empty? if respond_to?(:current_usuario) results = @q.result.accessible_by(current_ability).page(params[:page]) else results = @q.result.page(params[:page]) end method_label = params[:label] render json: results.map {|result| {id: result.id, label: result.send(method_label), value: result.send(method_label)} } end |
#create ⇒ Object
92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 |
# File 'app/controllers/crud_controller.rb', line 92 def create @saved = false if @id @record = @model.find(@id) :update, @record if respond_to?(:current_usuario) @saved = @record.update(params_permitt) else @record = @model.new(params_permitt) :create, if respond_to?(:current_usuario) @saved = @record.save end respond_to do |format| if @saved flash[:success] = params[:id].present? ? I18n.t("updated", model: I18n.t("model.#{@model.name.underscore}")) : I18n.t("created", model: I18n.t("model.#{@model.name.underscore}")) format.html { redirect_to "#{@url}?page=#{params[:page]}" } unless params[:render] == 'modal' format.js { render action: :index} else format.js end else action = (params[:id]) ? :edit : :new format.html { render action: action } format.js end end end |
#destroy ⇒ Object
121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 |
# File 'app/controllers/crud_controller.rb', line 121 def destroy @record = @model.find(@id) :destroy, @record if respond_to?(:current_usuario) if @record.destroy respond_to do |format| flash[:success] = I18n.t("destroyed", model: I18n.t("model.#{@model.name.underscore}")) format.html { redirect_to @url } format.js { render action: :index } end else respond_to do |format| flash[:error] = @record.errors..join(", ") format.html { redirect_to @url } format.js { render action: :index } end end end |
#edit ⇒ Object
65 66 67 68 |
# File 'app/controllers/crud_controller.rb', line 65 def edit @record = @model.find(@id) :edit, @record if respond_to?(:current_usuario) end |
#index ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'app/controllers/crud_controller.rb', line 26 def index :read, if respond_to?(:current_usuario) if params[:scope].present? @q = @model.send(params[:scope]).search(params[:q]) else @q = @model.search(params[:q]) end if @q.sorts.empty? if "#{@crud_helper.order_field}".include?("desc") or "#{@crud_helper.order_field}".include?("asc") @q.sorts = "#{@crud_helper.order_field}" else @q.sorts = "#{@crud_helper.order_field} asc" end end if respond_to?(:current_usuario) @records = @q.result.accessible_by(current_ability, :read).page(params[:page]).per(@crud_helper.per_page) else @records = @q.result.page(params[:page]).per(@crud_helper.per_page) end @titulo = @model.name.pluralize render partial: 'records' if request.respond_to?(:wiselinks_partial?) && request.wiselinks_partial? end |
#listing ⇒ Object
173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 |
# File 'app/controllers/crud_controller.rb', line 173 def listing :read, if respond_to?(:current_usuario) @q = @model.search(params[:q]) if respond_to?(:current_usuario) @records = @q.result.accessible_by(current_ability) else @records = @q.result end report_name = "#{@crud_helper.title}_#{DateTime.now.strftime('%Y%m%d')}" respond_to do |format| format.xls {headers["Content-Disposition"] = "attachment; filename=#{report_name}.xls"} format.pdf do pdf = WickedPdf.new.pdf_from_string( render_to_string('crud/listing.pdf.erb'), encoding: 'UTF-8', page_size: 'A4', show_as_html: params[:debug], margin: { top: 20, bottom: 20 } ) send_data(pdf, filename: "#{report_name}.pdf", type: "application/pdf", disposition: "inline") end format.html end end |
#new ⇒ Object
49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'app/controllers/crud_controller.rb', line 49 def new if params[:render] == "modal" if @model.reflect_on_association(params[:attribute].to_s).present? @model = @model.reflect_on_association(params[:attribute].to_s).class_name.constantize else @model = params[:attribute].to_s.camelcase.constantize end @url = crud_models_path(model: @model.name.underscore) @clean_url = @url = @model @crud_helper = Module.const_get("#{@model}Crud".camelize) end :new, if respond_to?(:current_usuario) @record = @model.new end |
#printing ⇒ Object
198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 |
# File 'app/controllers/crud_controller.rb', line 198 def printing @record = @model.find(@id) :read, @record if respond_to?(:current_usuario) report_name = "#{@record}_#{DateTime.now.strftime('%Y%m%d')}" respond_to do |format| format.pdf do pdf = WickedPdf.new.pdf_from_string( render_to_string('crud/printing.pdf.erb'), encoding: 'UTF-8', page_size: 'A4', show_as_html: params[:debug], margin: { top: 20, bottom: 20 } ) send_data(pdf, filename: "#{report_name}.pdf", type: "application/pdf", disposition: "inline") end format.html end end |
#query ⇒ Object
139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 |
# File 'app/controllers/crud_controller.rb', line 139 def query :read, if respond_to?(:current_usuario) @resource = @model @q = @resource.search(params[:q]) @q.sorts = 'updated_at desc' if @q.sorts.empty? if respond_to?(:current_usuario) results = @q.result.accessible_by(current_ability).page(params[:page]) else results = @q.result.page(params[:page]) end instance_variable_set("@#{params[:var]}", results) if request.respond_to?(:wiselinks_partial?) && request.wiselinks_partial? render :partial => params[:partial] else render :index, controller: request[:controller] end end |
#show ⇒ Object
70 71 72 73 |
# File 'app/controllers/crud_controller.rb', line 70 def show @record = @model.find(@id) :read, @record if respond_to?(:current_usuario) end |