Module: ControllerMixins::RendererInstanceMethods
- Defined in:
- lib/controller_mixins/renderer_instance_methods.rb
Instance Method Summary collapse
- #build_url_path_method(opts) ⇒ Object
- #clear_filter? ⇒ Boolean
- #default_params_for_clear_filter(settings) ⇒ Object
- #default_params_for_show_table(settings) ⇒ Object
- #display_method ⇒ Object
- #export_method ⇒ Object
- #fill_settings_with(opts) ⇒ Object
- #is_filtering?(filter_method) ⇒ Boolean
- #is_showing_table?(show_table_method) ⇒ Boolean
-
#redirect_destroy_ok(*opts) ⇒ Object
redirect do indexu po uspesnem smazani.
-
#redirect_not_found(*opts) ⇒ Object
redirect do indexu pokud neni zaznam v db.
-
#redirect_save_failed(*opts) ⇒ Object
redirect po uspesnem save.
-
#redirect_save_ok(*opts) ⇒ Object
redirect po uspesnem save.
-
#render_table(settings, logged_user = nil, template = nil, &proc) ⇒ Hash | renderuje
Nastavi data pro tabulku.
- #render_table_for(logged_user, template = nil, &proc) ⇒ Object
- #render_table_for_printing(settings, show_table_method) ⇒ Object
- #render_table_on_clear_filter(settings, show_table_method) ⇒ Object
- #render_tbody_on_filter(settings) ⇒ Object
- #set_default_params(filter_method, show_table_method, settings) ⇒ Object
Instance Method Details
#build_url_path_method(opts) ⇒ Object
215 216 217 218 219 220 221 222 223 224 225 226 227 |
# File 'lib/controller_mixins/renderer_instance_methods.rb', line 215 def build_url_path_method(opts) path = "" opts = opts[0] unless opts.at(0).nil? path += '/' + opts[:outer_controller].to_s if opts.include?(:outer_controller) path += '/' + opts[:outer_id].to_s if opts.include?(:outer_id) path += opts.include?(:controller) ? '/' + opts[:controller].to_s : '/' + controller_name path += '/' + opts[:id].to_s if opts.include?(:id) path += '/' + opts[:action].to_s if opts.include?(:action) path end |
#clear_filter? ⇒ Boolean
154 155 156 |
# File 'lib/controller_mixins/renderer_instance_methods.rb', line 154 def clear_filter? !params.blank? && params["clear"] end |
#default_params_for_clear_filter(settings) ⇒ Object
166 167 168 169 170 171 172 173 174 175 176 |
# File 'lib/controller_mixins/renderer_instance_methods.rb', line 166 def default_params_for_clear_filter(settings) default_params = settings[:default].dup default_params[:order_by] = settings[:default][:order_by] + " " + settings[:default][:order_by_direction] if !settings[:default][:order_by].blank? && !settings[:default][:order_by_direction].blank? default_params[:order_by] = settings[:default][:order] if !settings[:default][:order].blank? if defined?(ModelMixins::TableBuilderClassMethods::ON_CLEAR_FILTER_CLEAR_CHECKBOXES) && !ModelMixins::TableBuilderClassMethods::ON_CLEAR_FILTER_CLEAR_CHECKBOXES default_params[:checkbox_pool] = params["checkbox_pool"] end default_params end |
#default_params_for_show_table(settings) ⇒ Object
178 179 180 181 182 183 184 185 |
# File 'lib/controller_mixins/renderer_instance_methods.rb', line 178 def default_params_for_show_table(settings) default_params = settings[:default].dup default_params[:order_by] = settings[:default][:order_by] + " " + settings[:default][:order_by_direction] if !settings[:default][:order_by].blank? && !settings[:default][:order_by_direction].blank? default_params[:order_by] = settings[:default][:order] if !settings[:default][:order].blank? default_params = session["#{settings[:form_id]}_params"] unless session["#{settings[:form_id]}_params"].blank? default_params end |
#display_method ⇒ Object
158 159 160 |
# File 'lib/controller_mixins/renderer_instance_methods.rb', line 158 def display_method params["___display_method___"] end |
#export_method ⇒ Object
162 163 164 |
# File 'lib/controller_mixins/renderer_instance_methods.rb', line 162 def export_method params["___export_method___"] end |
#fill_settings_with(opts) ⇒ Object
199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 |
# File 'lib/controller_mixins/renderer_instance_methods.rb', line 199 def fill_settings_with opts settings = {} settings[:symlink_remote] = true unless opts.at(0).nil? opts = opts[0] settings[:symlink_controller] = opts.include?(:controller) ? opts[:controller] : controller_name settings[:symlink_outer_controller] = opts[:outer_controller] if opts.include?(:outer_controller) settings[:symlink_outer_id] = opts[:outer_id] if opts.include?(:outer_id) settings[:symlink_action] = opts[:action] if opts.include?(:action) settings[:symlink_id] = opts[:id] if opts.include?(:id) else settings[:symlink_controller] = controller_name end settings end |
#is_filtering?(filter_method) ⇒ Boolean
193 194 195 196 |
# File 'lib/controller_mixins/renderer_instance_methods.rb', line 193 def is_filtering?(filter_method) action_name == "filter" || (!filter_method.blank? && action_name == filter_method) end |
#is_showing_table?(show_table_method) ⇒ Boolean
188 189 190 191 |
# File 'lib/controller_mixins/renderer_instance_methods.rb', line 188 def is_showing_table?(show_table_method) action_name == "index" || (!show_table_method.blank? && action_name == show_table_method) end |
#redirect_destroy_ok(*opts) ⇒ Object
redirect do indexu po uspesnem smazani
239 240 241 242 243 244 245 |
# File 'lib/controller_mixins/renderer_instance_methods.rb', line 239 def redirect_destroy_ok(*opts) if request.xhr? render :json => {:status => "ok", :message => I18n.t("activerecord.info.messages.deleted"), :settings => fill_settings_with(opts)}, :status => :moved_permanently else redirect_to build_url_path_method(opts), :status => :moved_permanently end end |
#redirect_not_found(*opts) ⇒ Object
redirect do indexu pokud neni zaznam v db
230 231 232 233 234 235 236 |
# File 'lib/controller_mixins/renderer_instance_methods.rb', line 230 def redirect_not_found(*opts) if request.xhr? render :json => {:message => I18n.t("activerecord.errors.messages.record_not_found"), :settings => fill_settings_with(opts)}, :status => :moved_permanently else redirect_to build_url_path_method(opts), :status => :moved_permanently end end |
#redirect_save_failed(*opts) ⇒ Object
redirect po uspesnem save
258 259 260 261 262 263 264 265 |
# File 'lib/controller_mixins/renderer_instance_methods.rb', line 258 def redirect_save_failed(*opts) if request.xhr? render :json => {:status => "ok", :message => I18n.t("activerecord.errors.messages.save_failed"), :settings => fill_settings_with(opts)}, :status => :moved_permanently else redirect_to build_url_path_method(opts), :status => :moved_permanently end end |
#redirect_save_ok(*opts) ⇒ Object
redirect po uspesnem save
248 249 250 251 252 253 254 255 |
# File 'lib/controller_mixins/renderer_instance_methods.rb', line 248 def redirect_save_ok(*opts) if request.xhr? render :json => {:status => "ok", :message => I18n.t("activerecord.info.messages.saved"), :settings => fill_settings_with(opts)}, :status => :moved_permanently else redirect_to build_url_path_method(opts), :status => :moved_permanently end end |
#render_table(settings, logged_user = nil, template = nil, &proc) ⇒ Hash | renderuje
Nastavi data pro tabulku.
66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 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 120 121 |
# File 'lib/controller_mixins/renderer_instance_methods.rb', line 66 def render_table(settings, logged_user=nil, template = nil, &proc) settings[:template] = template unless template.blank? data = yield class_obj = data.respond_to?(:klass) ? data.klass : data filter_method = settings[:filter_method] show_table_method = settings[:show_table_method] default_params = set_default_params(filter_method, show_table_method, settings) case display_method when "print" # vyjímka pro tisk tabulek # printing page, it should be opened in new window settings[:display_method] = display_method settings = class_obj.prepare_settings(logged_user, data, settings, default_params, nil, 10000) render_table_for_printing(settings, show_table_method) when "print_by_checkboxes" # vyjímka pro tisk tabulek # printing page, it should be opened in new window settings[:filter_method] = "only_by_checkboxes" settings[:display_method] = display_method settings = class_obj.prepare_settings(logged_user, data, settings, default_params) render_table_for_printing(settings, show_table_method) else case export_method when "csv" @settings = class_obj.prepare_settings(logged_user, data, @settings, default_params, nil, 50000) generate_and_return_csv(get_data_for_csv_from_settings(@settings), (@settings.blank? || @settings[:csv].blank? || @settings[:csv][:name].blank?) ? 'export.csv' : @settings[:csv][:name]) when "csv_by_checkboxes" settings[:filter_method] = "only_by_checkboxes" @settings = class_obj.prepare_settings(logged_user, data, @settings, default_params) generate_and_return_csv(get_data_for_csv_from_settings(@settings), (@settings.blank? || @settings[:csv].blank? || @settings[:csv][:name].blank?) ? 'export.csv' : @settings[:csv][:name]) else settings = class_obj.prepare_settings(logged_user, data, settings, default_params) # Filtrovani se renderuje zde if is_filtering?(filter_method) if clear_filter? # Tlacitko Smazat filtr render_table_on_clear_filter(settings, show_table_method) else # Ostatni filtry render_tbody_on_filter(settings) end end end end # Cele vykresleni stranky normalne z metody, ktera toto zavolala end |
#render_table_for(logged_user, template = nil, &proc) ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/controller_mixins/renderer_instance_methods.rb', line 3 def render_table_for(logged_user, template = nil, &proc) @settings[:template] = template unless template.blank? data = yield class_obj = data.respond_to?(:klass) ? data.klass : data if action_name == "filter" case params["___display_method___"] when "print_by_checkboxes" # printing page, it should be opened in new window @settings = class_obj.prepare_settings(logged_user, data, @settings, default_params) render :layout => "print", :action => :index else case params["___export_method___"] when "csv" @settings = class_obj.prepare_settings(logged_user, data, @settings, default_params) else # default print of table default_params = params if !params.blank? && params["clear"] default_params = @settings[:default].dup default_params[:order_by] = @settings[:default][:order_by] + " " + @settings[:default][:order_by_direction] if !@settings[:default][:order_by].blank? && !@settings[:default][:order_by_direction].blank? default_params[:order_by] = @settings[:default][:order] if !@settings[:default][:order].blank? end @settings = class_obj.prepare_settings(logged_user, data, @settings, default_params) if !params.blank? && params["clear"] session["#{@settings[:form_id]}_params"] = "" render :layout => false, :action => :index else @paginate = render_to_string(:partial => "/helpers/build_table_pager", :locals => {:settings => @settings}) session["#{@settings[:form_id]}_params"] = params if @settings[:template].blank? # if there is no template a will return json and tbody renders in javascript template returned_t_body = @settings.to_json else # or there is template so i will return template rendered here in ruby returned_t_body = render_to_string(:partial => @settings[:template], :locals => {:settings => @settings}) end render :layout => false, :json => {:settings => returned_t_body, :paginate => @paginate}.to_json end end end elsif action_name == "index" default_params = @settings[:default].dup default_params[:order_by] = @settings[:default][:order_by] + " " + @settings[:default][:order_by_direction] if !@settings[:default][:order_by].blank? && !@settings[:default][:order_by_direction].blank? default_params[:order_by] = @settings[:default][:order] if !@settings[:default][:order].blank? default_params = session["#{@settings[:form_id]}_params"] unless session["#{@settings[:form_id]}_params"].blank? @settings = class_obj.prepare_settings(logged_user, data, @settings, default_params) end end |
#render_table_for_printing(settings, show_table_method) ⇒ Object
130 131 132 |
# File 'lib/controller_mixins/renderer_instance_methods.rb', line 130 def render_table_for_printing(settings, show_table_method) render :layout => "print", :action => (show_table_method.blank? ? :index : show_table_method) end |
#render_table_on_clear_filter(settings, show_table_method) ⇒ Object
134 135 136 137 138 |
# File 'lib/controller_mixins/renderer_instance_methods.rb', line 134 def render_table_on_clear_filter(settings, show_table_method) session["#{settings[:form_id]}_params"] = "" render :layout => false, :action => (show_table_method.blank? ? :index : show_table_method) end |
#render_tbody_on_filter(settings) ⇒ Object
140 141 142 143 144 145 146 147 148 149 150 151 152 |
# File 'lib/controller_mixins/renderer_instance_methods.rb', line 140 def render_tbody_on_filter(settings) paginate = render_to_string(:partial => "/helpers/build_table_pager", :locals => {:settings => settings}) session["#{settings[:form_id]}_params"] = params if settings[:template].blank? # if there is no template a will return json and tbody renders in javascript template returned_t_body = settings.to_json else # or there is template so i will return template rendered here in ruby returned_t_body = render_to_string(:partial => settings[:template], :locals => {:settings => settings}) end render :layout => false, :json => {:settings => returned_t_body, :paginate => paginate}.to_json end |
#set_default_params(filter_method, show_table_method, settings) ⇒ Object
123 124 125 126 127 128 |
# File 'lib/controller_mixins/renderer_instance_methods.rb', line 123 def set_default_params(filter_method, show_table_method, settings) default_params = params default_params = default_params_for_clear_filter(settings) if is_filtering?(filter_method) && clear_filter? default_params = default_params_for_show_table(settings) if is_showing_table?(show_table_method) default_params end |