Module: AbstractResourcesHelper
- Defined in:
- app/helpers/abstract_resources_helper.rb
Instance Method Summary collapse
-
#activate_url(resource) ⇒ Object
activate and deactivate resources.
- #active_msg(active) ⇒ Object
- #active_popover(active) ⇒ Object
- #add_print_params(p, prefix = "") ⇒ Object
-
#attach_url(parent, resource) ⇒ Object
attach and detach resources.
-
#breadcrumb_title(str) ⇒ Object
set title of breadcrumb.
-
#build_active_link(resource) ⇒ Object
return a link - either to activate_resource_path or passify_resource_path used to turn on/off any resource.
-
#build_active_link_url(resource) ⇒ Object
return the url for the activate_link only.
-
#build_add_link(lbl, cls) ⇒ Object
return a link to a new entity - possibly add route to parent.
-
#build_attach_link(children, child) ⇒ Object
return a link - either to attach_resource_path or detach_resource_path used to attach or detach a resource to its parent.
-
#build_attach_link_url(child, attached) ⇒ Object
return the url for the attach_detach_link only.
-
#build_button_tag(button, options = {}) ⇒ Object
return button_tag text: ‘what to write on the link if at all’ classes: ‘btn btn-mini print_item print_items …’ jquery hooks print_item will print a specific record, print_items will print a list of records.
- #build_close_button(type) ⇒ Object
- #build_delete_link(resource) ⇒ Object
-
#build_label_link(resource, options = {}) ⇒ Object
return a link to print a label for a row url: ” list: true|false template: ‘what_list.html.haml’, button: true|false either a button or a link classes: ‘btn btn-mini print_item print_items …’ jquery hooks print_item will print a specific record, print_items will print a list of records.
-
#build_prefer_link(children, child) ⇒ Object
return a link - either to prefer_resource_path or defer_resource_path used to prefer or defer a resource by its parent.
-
#build_prefer_link_url(child, preferred) ⇒ Object
return the url for the prefer_defer_link only.
-
#build_print_link(resource, options = {}) ⇒ Object
return a link to print a row url: ” print: ‘what_list.html.haml’, layout: ‘list’|‘record’, range: ‘1,2,4-5’, medium: ‘printer’|‘display’|‘email’|‘download’, format: ‘html’|‘pdf’, printer: ‘name_of_printer’ data: { action: ”, method: ”, selector: ”, id: ”, osv. } button: ‘material-icons’|false either classes for a button or false => a link link_layout: { text: ”, title: ”, icon: ” } text for the link - or <a..>text<i title=“”>icon</i></a> classes: ‘btn btn-mini print_item print_items …’ jquery hooks print_item will print a specific record, print_items will print a list of records.
-
#build_resource_url(resource, options = {}) ⇒ Object
return an array url, list, options options{ url: ”, button: ”, classes: ”, text: ”}.
- #build_toggle_white_collar_url ⇒ Object
-
#column_header(field, options = {}) ⇒ Object
adding balloon helptext column_header :some_field, balloon: true ( set the text to fixed with balloon: “FIXED TEXT - NOT TRANSLATED”) ( set position with balloon_pos: “left”).
- #deactivate_url(resource) ⇒ Object
- #defer_url(parent, resource) ⇒ Object
- #detach_url(parent, resource) ⇒ Object
- #display_base_errors(resource) ⇒ Object
- #divide_text(str, max_chars) ⇒ Object
-
#edit_resource_url(options = {}) ⇒ Object
edit_resource_url returns the current entity’s url for editing.
-
#mark_sorted(col, label) ⇒ Object
mark_sorted will set a class depending on whether this column is sorted on.
-
#menu_item(items, level = 0) ⇒ Object
return a HTML fragtment containing the menu_items referring to this one items is a Hash of three elements, lbl, url and possible any children { item: { lbl: ‘menu’, url: ‘menu’, options: {} } } { item: { lbl: ‘menu’, url: { item: {}, item: {} }} }.
-
#new_resource_url(options = {}) ⇒ Object
new_resource_url returns a new entity.
-
#parent ⇒ Object
parent returns the parent entity.
-
#parent? ⇒ Boolean
parent? will tell if a parent exists.
-
#parent_class ⇒ Object
parent_class returns the class of the parent.
-
#parent_name ⇒ Object
parent_name returns the name of the resource - that would be the empty string on nil’s.
-
#parent_url ⇒ Object
parent_url returns the parent url - /employees/1 in the /employees/1/events.
-
#prefer_url(parent, resource) ⇒ Object
prefer and defer resources - like printers.
-
#resource ⇒ Object
resource returns the current entity.
-
#resource? ⇒ Boolean
did we manage to set a resource at all?.
-
#resource_class ⇒ Object
resource_class is the class which the resource represent.
-
#resource_name ⇒ Object
return the name of the resource - that would be the empty string on nil’s.
-
#resource_url(options = {}) ⇒ Object
resource_url returns the current entity’s url.
-
#resources ⇒ Object
returns the current collection of entities.
-
#resources_name ⇒ Object
returns the resource_class pluralized - eg: stock_item => ‘stock_items’.
-
#resources_url(resources = @resources, options = {}) ⇒ Object
resources_url returns the current collection of entities’ url.
-
#set_attached_class(children, child) ⇒ Object
List Helpers.
-
#set_direction(dir) ⇒ Object
when sorting rows set_direction will flip ASC and DESC.
-
#set_flashes ⇒ Object
set_flashes will build the necessary flash.
- #set_toasts ⇒ Object
-
#show_flash(flash, key) ⇒ Object
show_flash flash, key - flash=nil.
-
#show_lbl(key) ⇒ Object
show_lbl is used on every show.html.haml to build the label.
-
#show_page_title ⇒ Object
show_page_title does a resource_class and action based translation of title on a page.
-
#show_product_logo(product_logo) ⇒ Object
on imprint_certificate.html.haml.
- #show_resource_active(item, linkable = true) ⇒ Object
-
#show_resource_delete_icon(item, url, lbl = 'name') ⇒ Object
return a link to delete a row.
Instance Method Details
#activate_url(resource) ⇒ Object
activate and deactivate resources
150 151 152 |
# File 'app/helpers/abstract_resources_helper.rb', line 150 def activate_url resource '%s/activate' % url_for(resource) end |
#active_msg(active) ⇒ Object
374 375 376 |
# File 'app/helpers/abstract_resources_helper.rb', line 374 def active_msg active active ? "Er aktiv nu! Tryk på denne knap for at gøre denne post passiv!" : "Er passiv nu! Tryk på denne knap for at gøre denne post aktiv!" end |
#active_popover(active) ⇒ Object
378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 |
# File 'app/helpers/abstract_resources_helper.rb', line 378 def active_popover active if active { class: "icon-minus", rel: "popover", :"data-html" => true, :"data-trigger" => "hover", :"data-title" => "Posten er aktiv!", :"data-content" => "Tryk på denne knap for at gøre denne post passiv!</br/>Når poster anvendes i andre sammenhænge vil oxenServer kun tage hensyn til aktive poster!", } else { class: "icon-plus", rel: "popover", :"data-html" => true, :"data-trigger" => "hover", :"data-title" => "Posten er passiv!", :"data-content" => "Tryk på denne knap for at gøre denne post aktiv!</br/>Når poster anvendes i andre sammenhænge vil oxenServer kun tage hensyn til aktive poster!", } end end |
#add_print_params(p, prefix = "") ⇒ Object
444 445 446 447 448 449 450 451 452 453 454 455 |
# File 'app/helpers/abstract_resources_helper.rb', line 444 def add_print_params p, prefix="" args = [] p.each do |k,v| k = "#{prefix}[#{k}]" unless prefix.blank? if v.is_a? Hash args << add_print_params( v, 'print') else args << "#{k}=#{v}" unless %w{ ids action controller}.include? k end end args.join("&") end |
#attach_url(parent, resource) ⇒ Object
attach and detach resources
140 141 142 |
# File 'app/helpers/abstract_resources_helper.rb', line 140 def attach_url parent, resource '%s/%s/%s/attach' % [url_for( parent), resource.class.to_s.downcase.pluralize, resource.id] end |
#breadcrumb_title(str) ⇒ Object
set title of breadcrumb
487 488 489 490 491 |
# File 'app/helpers/abstract_resources_helper.rb', line 487 def ( str ) str.index( 'title="translation missing' ) ? str : str.mb_chars.upcase rescue str end |
#build_active_link(resource) ⇒ Object
return a link - either to activate_resource_path or passify_resource_path used to turn on/off any resource
369 370 371 372 |
# File 'app/helpers/abstract_resources_helper.rb', line 369 def build_active_link resource lbl = resource.active ? (content_tag(:i, active_popover(true)) do end) : (content_tag(:i, active_popover(false)) do end) link_to lbl, build_active_link_url(resource), class: "btn btn-mini active_button", remote: true, :"data-no-turbolink" => true, id: "%s_%i_actpas" % [resource.class.to_s, resource.id] end |
#build_active_link_url(resource) ⇒ Object
return the url for the activate_link only
402 403 404 405 |
# File 'app/helpers/abstract_resources_helper.rb', line 402 def build_active_link_url resource r_url = url_for( resource) resource.active ? r_url + "/passify" : r_url + "/activate" end |
#build_add_link(lbl, cls) ⇒ Object
return a link to a new entity - possibly add route to parent
423 424 425 426 427 |
# File 'app/helpers/abstract_resources_helper.rb', line 423 def build_add_link lbl, cls r_url = cls.to_s.singularize.underscore r_url = parent? ? parent.class.to_s.singularize.underscore + "_" + r_url : r_url link_to( lbl, eval("new_%s_path" % r_url), class: 'btn btn-success') end |
#build_attach_link(children, child) ⇒ Object
return a link - either to attach_resource_path or detach_resource_path used to attach or detach a resource to its parent
409 410 411 412 413 |
# File 'app/helpers/abstract_resources_helper.rb', line 409 def build_attach_link children, child attached = children.nil? ? false : children.include?( child) lbl = attached ? t(:detach) : t(:attach) link_to lbl, build_attach_link_url(child,attached), class: "btn btn-mini", remote: true, :"data-no-turbolink" => true, id: "%s_%i_attdet" % [child.class.to_s, child.id] end |
#build_attach_link_url(child, attached) ⇒ Object
return the url for the attach_detach_link only
416 417 418 419 420 |
# File 'app/helpers/abstract_resources_helper.rb', line 416 def build_attach_link_url child, attached path = request.path.match( /detach|attach/) ? request.path.split("/")[0..3].join("/") : request.path r_url = path + "/%i" % child.id attached ? r_url + "/detach" : r_url + "/attach" end |
#build_button_tag(button, options = {}) ⇒ Object
return button_tag text: ‘what to write on the link if at all’ classes: ‘btn btn-mini print_item print_items …’ jquery hooks print_item will print a specific record, print_items will print a list of records
247 248 249 250 251 252 253 254 255 256 257 258 259 260 |
# File 'app/helpers/abstract_resources_helper.rb', line 247 def , ={} layout = .delete(:link_layout) || {} text = layout.delete(:text) || '' title = layout.delete(:title) || '' icon = layout.delete(:icon) || '' (text << content_tag(:i,icon, class: , title: title )).html_safe # if text # content_tag( :span) do # text[1] # end << content_tag(:i,text[0], class: button ) # else # content_tag(:i,text[0], class: button ) # end end |
#build_close_button(type) ⇒ Object
327 328 329 330 331 332 |
# File 'app/helpers/abstract_resources_helper.rb', line 327 def (type) "<a href='#!' class='#{type} close-notice btn-floating btn-small waves-effect waves-light' aria-hidden='true' type='button' data-dismiss='alert'><i class='material-icons'>close</i></a>".html_safe # link_to "#", type: "button", "aria-hidden" => "true", class: "#{type} close-notice btn-floating btn-small waves-effect waves-light", "data-dismiss" => "alert" do # "<i class='material-icons'>close</i>".html_safe # end end |
#build_delete_link(resource) ⇒ Object
211 212 213 |
# File 'app/helpers/abstract_resources_helper.rb', line 211 def build_delete_link resource link_to(content_tag(:i,'delete',class:'material-icons icon-trash'), resource, class: 'btn btn-mini delete_item', :"data-no-turbolink"=>true) end |
#build_label_link(resource, options = {}) ⇒ Object
return a link to print a label for a row url: ” list: true|false template: ‘what_list.html.haml’, button: true|false either a button or a link classes: ‘btn btn-mini print_item print_items …’ jquery hooks print_item will print a specific record, print_items will print a list of records
472 473 474 475 476 477 478 479 480 481 482 |
# File 'app/helpers/abstract_resources_helper.rb', line 472 def build_label_link resource, ={} list = .delete(:list) || false = .delete(:button) || true url = .delete(:url) || ( !list ? url_for( resource) + "/label" : url_for(resource_class.to_s.underscore.pluralize) + "/label?print_list=true&#{add_print_params}" ) classes = .delete(:classes) || ( ? 'btn btn-mini' : '') return link_to(content_tag(:i,nil,class:'icon-tag'), url, class: classes, target: '_new') if link_to oxt(resource_class.to_s.underscore.pluralize.to_sym), url, .merge( class: classes, target: '_new') end |
#build_prefer_link(children, child) ⇒ Object
return a link - either to prefer_resource_path or defer_resource_path used to prefer or defer a resource by its parent
431 432 433 434 435 |
# File 'app/helpers/abstract_resources_helper.rb', line 431 def build_prefer_link children, child preferred = (children.include?( child) && child.preferred?( parent)) return oxt(:preferred) if preferred link_to oxt(:prefer), build_prefer_link_url(child,preferred), class: "btn btn-mini", remote: true, :"data-no-turbolink" => true, id: "%s_%i_predet" % [child.class.to_s, child.id] end |
#build_prefer_link_url(child, preferred) ⇒ Object
return the url for the prefer_defer_link only
438 439 440 441 442 |
# File 'app/helpers/abstract_resources_helper.rb', line 438 def build_prefer_link_url child, preferred path = request.path.match( /defer|prefer/) ? request.path.split("/")[0..3].join("/") : request.path r_url = path + "/%i" % child.id preferred ? r_url + "/defer" : r_url + "/prefer" end |
#build_print_link(resource, options = {}) ⇒ Object
return a link to print a row url: ” print: ‘what_list.html.haml’, layout: ‘list’|‘record’, range: ‘1,2,4-5’, medium: ‘printer’|‘display’|‘email’|‘download’, format: ‘html’|‘pdf’, printer: ‘name_of_printer’ data: { action: ”, method: ”, selector: ”, id: ”, osv. } button: ‘material-icons’|false either classes for a button or false => a link link_layout: { text: ”, title: ”, icon: ” } text for the link - or <a..>text<i title=“”>icon</i></a> classes: ‘btn btn-mini print_item print_items …’ jquery hooks print_item will print a specific record, print_items will print a list of records
223 224 225 226 227 228 229 230 231 |
# File 'app/helpers/abstract_resources_helper.rb', line 223 def build_print_link resource, ={} url, list, = build_resource_url(resource,) = .delete(:button) || false [:class] = .delete(:classes) || ( ? 'btn btn-mini' : '') [:class] += ( list ? ' print_items' : ' print_item') return link_to( (, ), url, ) if text = .delete(:text) || t(resource_class.to_s.underscore.pluralize.to_sym) link_to text, url, end |
#build_resource_url(resource, options = {}) ⇒ Object
return an array url, list, options options{ url: ”, button: ”, classes: ”, text: ”}
235 236 237 238 239 240 241 242 |
# File 'app/helpers/abstract_resources_helper.rb', line 235 def build_resource_url resource, ={} = .delete(:print) || {} args = add_print_params params.merge( print: ) data_attribs = .delete(:data) || {} list = [:format]=='list' || false url = "%s/print?%s" % [ .delete(:url) || ( !list ? url_for( resource) : url_for(resource_class.to_s.underscore.pluralize) ), args ] [ url, list, .merge( data: data_attribs) ] end |
#build_toggle_white_collar_url ⇒ Object
457 458 459 460 461 462 463 |
# File 'app/helpers/abstract_resources_helper.rb', line 457 def build_toggle_white_collar_url if params[:blue_collar].nil? link_to oxt(:kun_timel |
#column_header(field, options = {}) ⇒ Object
adding balloon helptext
column_header :some_field, balloon: true
( set the text to fixed with balloon: "FIXED TEXT - NOT TRANSLATED")
( set position with balloon_pos: "left")
547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 |
# File 'app/helpers/abstract_resources_helper.rb', line 547 def column_header field, ={} [:data] ||= {} # role = (options.delete :role) || '' # classes = (options.delete :class) || '' # id = (options.delete :id) || nil balloon = (.delete :balloon) || false if balloon [:data][:balloon] = (balloon.class==String) ? balloon : I18n.translate("tables.headers.#{field}.balloon") [:data][:balloon_pos] = (.delete :balloon_pos) || "up" [:data][:balloon_length] = (.delete :balloon_length) || "fit" end [:data][:field] = (.delete :field) || field [:data][:direction] = (.delete :direction) || @sorting_direction txt = [] content_tag :th, do if [:role] && [:role]=="sort" mark_sorted [:data][:field], I18n.translate( "tables.headers.#{field}.label") else I18n.translate( "tables.headers.#{field}.label") end end end |
#deactivate_url(resource) ⇒ Object
154 155 156 |
# File 'app/helpers/abstract_resources_helper.rb', line 154 def deactivate_url resource '%s/deactivate' % url_for( resource) end |
#defer_url(parent, resource) ⇒ Object
164 165 166 |
# File 'app/helpers/abstract_resources_helper.rb', line 164 def defer_url parent, resource '%s/%s/%s/defer' % [url_for( parent), resource.class.to_s.downcase.pluralize, resource.id] end |
#detach_url(parent, resource) ⇒ Object
144 145 146 |
# File 'app/helpers/abstract_resources_helper.rb', line 144 def detach_url parent, resource '%s/%s/%s/detach' % [url_for( parent), resource.class.to_s.downcase.pluralize, resource.id] end |
#display_base_errors(resource) ⇒ Object
263 264 265 266 267 268 269 270 271 272 273 |
# File 'app/helpers/abstract_resources_helper.rb', line 263 def display_base_errors resource return '' if (resource.errors.empty?) or (resource.errors[:base].empty?) = resource.errors[:base].map { |msg| content_tag(:p, msg) }.join html = " <div class=\"alert alert-error alert-block\">\n <button type=\"button\" class=\"close\" data-dismiss=\"alert\">×</button>\n \#{messages}\n </div>\n HTML\n html.html_safe\nend\n" |
#divide_text(str, max_chars) ⇒ Object
299 300 301 302 303 304 305 306 |
# File 'app/helpers/abstract_resources_helper.rb', line 299 def divide_text(str, max_chars) max_chars.map do |n| str.lstrip! s = str[/^.{,#{n}}(?=\b)/] || '' str = str[s.size..-1] s end end |
#edit_resource_url(options = {}) ⇒ Object
edit_resource_url returns the current entity’s url for editing
94 95 96 97 98 99 100 101 102 103 |
# File 'app/helpers/abstract_resources_helper.rb', line 94 def edit_resource_url(={}) opt = {} opt[:id] = .id if .class.ancestors.include? ActiveRecord::Base opt.merge!() if .class==Hash opt[:action] = :edit resource_url opt # opt[:id] ||= @resource.id # opt[:controller] ||= @resource_class.table_name # url_for opt end |
#mark_sorted(col, label) ⇒ Object
mark_sorted will set a class depending on whether this column is sorted on
572 573 574 575 576 577 578 579 580 581 582 583 584 585 |
# File 'app/helpers/abstract_resources_helper.rb', line 572 def mark_sorted col, label if request.params[:s] == col ( content_tag( :span, label, class: "th-label-sort-by") + (content_tag :i, class: "material-icons" do (request.params[:d]=='DESC' ? "arrow_drop_down" : "arrow_drop_up") rescue "arrow_drop_up" end) ).html_safe else content_tag :span, label, class: "th-label" end rescue content_tag :span, label, class: "th-label" end |
#menu_item(items, level = 0) ⇒ Object
return a HTML fragtment containing the menu_items referring to this one items is a Hash of three elements, lbl, url and possible any children { item: { lbl: ‘menu’, url: ‘menu’, options: {} } } { item: { lbl: ‘menu’, url: { item: {}, item: {} }} }
347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 |
# File 'app/helpers/abstract_resources_helper.rb', line 347 def (items, level=0 ) return "" if items.nil? str = [] level+=1 items.each do |k,item| = item[:options] || {} unless item[:url].class==String if level>1 str << "<li class='dropdown-submenu'>%s<ul class='dropdown-menu'>%s</ul></li>" % [ link_to( "#{item[:lbl]}", "#", .merge(class: "dropdown-toggle", :"data-toggle"=>"dropdown")), (item[:url],level)] else str << "<li class='dropdown'>%s<ul class='dropdown-menu'>%s</ul></li>" % [ link_to( "#{item[:lbl]}<b class='caret'></b>".html_safe, "#", .merge(class: "dropdown-toggle", :"data-toggle"=>"dropdown")), (item[:url],level)] end else str << "<li>%s</li>" % link_to( item[:lbl], item[:url], ) end end str.join( "") end |
#new_resource_url(options = {}) ⇒ Object
new_resource_url returns a new entity
84 85 86 87 88 89 90 |
# File 'app/helpers/abstract_resources_helper.rb', line 84 def new_resource_url(={}) opt = {} opt.merge!() if .class==Hash opt[:controller] ||= resource_class.table_name opt[:action] = :new url_for opt end |
#parent ⇒ Object
parent returns the parent entity
10 11 12 |
# File 'app/helpers/abstract_resources_helper.rb', line 10 def parent parent? ? @parent : raise("parent will return nil - which probably was not anticipated!") end |
#parent? ⇒ Boolean
parent? will tell if a parent exists
34 35 36 37 |
# File 'app/helpers/abstract_resources_helper.rb', line 34 def parent? return true if (params[:parent] && params[:parent_id] && @parent = params[:parent].classify.constantize.find(params[:parent_id])) !(%w{NilClass TrueClass FalseClass}.include? @parent.class.to_s) end |
#parent_class ⇒ Object
parent_class returns the class of the parent
16 17 18 |
# File 'app/helpers/abstract_resources_helper.rb', line 16 def parent_class parent? ? @parent.class : raise("parent_class will return Object - which probably was not anticipated!") end |
#parent_name ⇒ Object
parent_name returns the name of the resource - that would be the empty string on nil’s
22 23 24 |
# File 'app/helpers/abstract_resources_helper.rb', line 22 def parent_name parent? ? parent_class.to_s.pluralize.underscore : raise("parent_name will return '' - which probably was not anticipated!") end |
#parent_url ⇒ Object
parent_url returns the parent url - /employees/1 in the /employees/1/events
28 29 30 |
# File 'app/helpers/abstract_resources_helper.rb', line 28 def parent_url parent? ? ( "/" + parent_class.to_s.pluralize.underscore + "/%s" % @parent.id) : "no_route_to_parent" end |
#prefer_url(parent, resource) ⇒ Object
prefer and defer resources - like printers
160 161 162 |
# File 'app/helpers/abstract_resources_helper.rb', line 160 def prefer_url parent, resource '%s/%s/%s/prefer' % [url_for( parent), resource.class.to_s.downcase.pluralize, resource.id] end |
#resource ⇒ Object
resource returns the current entity
50 51 52 |
# File 'app/helpers/abstract_resources_helper.rb', line 50 def resource resource? ? @resource : nil end |
#resource? ⇒ Boolean
did we manage to set a resource at all?
44 45 46 |
# File 'app/helpers/abstract_resources_helper.rb', line 44 def resource? !(%w{NilClass TrueClass FalseClass}.include? @resource.class.to_s) end |
#resource_class ⇒ Object
resource_class is the class which the resource represent
63 64 65 66 67 68 |
# File 'app/helpers/abstract_resources_helper.rb', line 63 def resource_class return @resource_class if resource? @resource_class = params[:controller].singularize.classify.constantize rescue raise("resource_class will return Object - which probably was not anticipated!") end |
#resource_name ⇒ Object
return the name of the resource - that would be the empty string on nil’s
57 58 59 |
# File 'app/helpers/abstract_resources_helper.rb', line 57 def resource_name resource? ? resource.resource_name : resource_class.to_s.underscore.pluralize end |
#resource_url(options = {}) ⇒ Object
resource_url returns the current entity’s url
72 73 74 75 76 77 78 79 80 |
# File 'app/helpers/abstract_resources_helper.rb', line 72 def resource_url ={} opt = {} opt[:id] = .id if .class.ancestors.include? ActiveRecord::Base opt.merge!() if .class==Hash opt[:action] ||= 'show' opt[:id] ||= resource.id opt[:controller] ||= resource_class.table_name url_for opt end |
#resources ⇒ Object
returns the current collection of entities
110 111 112 |
# File 'app/helpers/abstract_resources_helper.rb', line 110 def resources @resources end |
#resources_name ⇒ Object
returns the resource_class pluralized - eg: stock_item => ‘stock_items’
116 117 118 |
# File 'app/helpers/abstract_resources_helper.rb', line 116 def resources_name resource_name.pluralize end |
#resources_url(resources = @resources, options = {}) ⇒ Object
resources_url returns the current collection of entities’ url
122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 |
# File 'app/helpers/abstract_resources_helper.rb', line 122 def resources_url resources=@resources, ={} # # lnk = parent? ? (parent_url + "/#{resource_name}") : "/#{resource_name}" # lnk += options.empty? ? "" : "?" + options.collect{ |k,v| "#{k}=#{v}" }.join("&") = resources if resources.class == Hash opt = {} opt.merge!() if .class==Hash opt[:controller] ||= resource_class.table_name opt[:action] ||= :index url_for opt rescue # # return the root_url if no route was found! root_url end |
#set_attached_class(children, child) ⇒ Object
List Helpers
170 171 172 173 174 175 |
# File 'app/helpers/abstract_resources_helper.rb', line 170 def set_attached_class children, child return "" unless parent? return "" if children.nil? return "detached" if children.empty? children.include?( child) ? "" : "detached" end |
#set_direction(dir) ⇒ Object
when sorting rows set_direction will flip ASC and DESC
523 524 525 526 |
# File 'app/helpers/abstract_resources_helper.rb', line 523 def set_direction dir return 'ASC' unless dir dir == 'ASC' ? 'DESC' : 'ASC' end |
#set_flashes ⇒ Object
set_flashes will build the necessary flash
quite stolen from bootstrap_flash
-
but reengineered to avoid empty arrays
279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 |
# File 'app/helpers/abstract_resources_helper.rb', line 279 def set_flashes = [] flash.each do |type, | next if .blank? tp = 'danger' tp = 'success' if [ "notice", "info" ].include? type.to_s = show_flash(flash, type) if flash.kind_of? Array unless .blank? flash[type]=nil text = content_tag(:div, (tp) + .html_safe, class: "alert fade in alert-#{tp}") << text end end flash.clear .join("").html_safe rescue => e Rails.logger.error "setting the flashes - set_flashes - failed with #{e.message}" "" end |
#set_toasts ⇒ Object
308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 |
# File 'app/helpers/abstract_resources_helper.rb', line 308 def set_toasts = [] flash.each do |type, | = .size < 61 ? [] : divide_text( , [60,60,60,60] ) .each do || case type when 'error','danger','alert'; << "Materialize.toast('#{message}',8000, 'red darken-4');" when 'info'; << "Materialize.toast('#{message}',2000, 'green lighten-3');" when 'success','notice'; << "Materialize.toast('#{message}',2000, 'blue lighten-4');" end end end flash.clear .join("").html_safe rescue => e Rails.logger.error "setting the toasts - set_toasts - failed with #{e.message}" "" end |
#show_flash(flash, key) ⇒ Object
show_flash flash, key
-
flash=nil
337 338 339 340 341 |
# File 'app/helpers/abstract_resources_helper.rb', line 337 def show_flash flash, key msg = flash[key].kind_of?( Array) ? flash[key].flatten.compact : [ flash[key] ].compact msg.collect!{ |m| (content_tag(:div, id: key) do m end) unless m.blank? } raw(msg.join) end |
#show_lbl(key) ⇒ Object
show_lbl is used on every show.html.haml to build the label
505 506 507 |
# File 'app/helpers/abstract_resources_helper.rb', line 505 def show_lbl key content_tag :b, "#{key}: " end |
#show_page_title ⇒ Object
show_page_title does a resource_class and action based translation of title on a page
497 498 499 500 |
# File 'app/helpers/abstract_resources_helper.rb', line 497 def show_page_title # t '%s.%s.title' % [ resource_class.table_name, params[:action] ] t '%s.%s.title' % [ params[:controller], params[:action] ] end |
#show_product_logo(product_logo) ⇒ Object
on imprint_certificate.html.haml
511 512 513 514 515 516 517 518 |
# File 'app/helpers/abstract_resources_helper.rb', line 511 def show_product_logo product_logo case product_logo when /.jpg/, /.png/ tag(:img, { class: "product_logo", src: "#{Rails.root}/app/assets/images/#{product_logo}" }, false) else product_logo end end |
#show_resource_active(item, linkable = true) ⇒ Object
179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 |
# File 'app/helpers/abstract_resources_helper.rb', line 179 def show_resource_active item, linkable=true unless linkable if item.active content_tag :i, 'done', class: "material-icons small" else content_tag :i, 'pause', class: "material-icons small" end else if item.active link_to deactivate_url(item), class: 'activated green-text', title: t("deactivate_#{item.resource_name}") do content_tag :i, 'done', class: 'material-icons' end else link_to activate_url(item), class: 'deactivated red-text', title: t("activate_#{item.resource_name}") do content_tag :i, 'pause', class: 'material-icons' end end end end |
#show_resource_delete_icon(item, url, lbl = 'name') ⇒ Object
return a link to delete a row
201 202 203 204 205 206 207 208 |
# File 'app/helpers/abstract_resources_helper.rb', line 201 def show_resource_delete_icon item, url, lbl='name' link_to item, class: 'delete_link', data: { delete_title: t("delete_title"), delete_prompt: t("delete_prompt", item: t("delete_modal.#{item.class.to_s.underscore}")), delete_confirm: t("delete_confirm"), balloon: t("balloons.delete" ), balloon_pos: "left", url: url, name: "#{item.send lbl }", id: "#{item.id}", remove: "#tr-#{item.class.to_s}-#{item.id}" } do content_tag :i, 'delete', class: 'material-icons small' end # = link_to account, class: 'delete_link', data: { url: '/admin/accounts', name: "#{account.name}", id: "#{account.id}", remove: "#tr-#{account.id}" } do # %i.material-icons.small{ title: "#{t('.delete')}"} delete end |