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
213 214 215 216 217 218 219 220 221 222 223 224 225 |
# File 'lib/controller_mixins/renderer_instance_methods.rb', line 213 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
152 153 154 |
# File 'lib/controller_mixins/renderer_instance_methods.rb', line 152 def clear_filter? !params.blank? && params["clear"] end |
#default_params_for_clear_filter(settings) ⇒ Object
164 165 166 167 168 169 170 171 172 173 174 |
# File 'lib/controller_mixins/renderer_instance_methods.rb', line 164 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
176 177 178 179 180 181 182 183 |
# File 'lib/controller_mixins/renderer_instance_methods.rb', line 176 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
156 157 158 |
# File 'lib/controller_mixins/renderer_instance_methods.rb', line 156 def display_method params["___display_method___"] end |
#export_method ⇒ Object
160 161 162 |
# File 'lib/controller_mixins/renderer_instance_methods.rb', line 160 def export_method params["___export_method___"] end |
#fill_settings_with(opts) ⇒ Object
197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 |
# File 'lib/controller_mixins/renderer_instance_methods.rb', line 197 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
191 192 193 194 |
# File 'lib/controller_mixins/renderer_instance_methods.rb', line 191 def is_filtering?(filter_method) action_name == "filter" || (!filter_method.blank? && action_name == filter_method) end |
#is_showing_table?(show_table_method) ⇒ Boolean
186 187 188 189 |
# File 'lib/controller_mixins/renderer_instance_methods.rb', line 186 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
237 238 239 240 241 242 243 |
# File 'lib/controller_mixins/renderer_instance_methods.rb', line 237 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
228 229 230 231 232 233 234 |
# File 'lib/controller_mixins/renderer_instance_methods.rb', line 228 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
256 257 258 259 260 261 262 263 |
# File 'lib/controller_mixins/renderer_instance_methods.rb', line 256 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
246 247 248 249 250 251 252 253 |
# File 'lib/controller_mixins/renderer_instance_methods.rb', line 246 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 |
# 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)) 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)) 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
128 129 130 |
# File 'lib/controller_mixins/renderer_instance_methods.rb', line 128 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
132 133 134 135 136 |
# File 'lib/controller_mixins/renderer_instance_methods.rb', line 132 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
138 139 140 141 142 143 144 145 146 147 148 149 150 |
# File 'lib/controller_mixins/renderer_instance_methods.rb', line 138 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
121 122 123 124 125 126 |
# File 'lib/controller_mixins/renderer_instance_methods.rb', line 121 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 |