wobapphelpers 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/LICENSE +22 -0
- data/README.md +155 -0
- data/Rakefile +30 -0
- data/app/assets/stylesheets/wobapphelpers/breadcrumbs.scss +13 -0
- data/config/locales/de.yml +9 -0
- data/config/locales/en.yml +9 -0
- data/lib/generators/templates/erb/scaffold/_form.html.erb +26 -0
- data/lib/generators/templates/erb/scaffold/edit.html.erb +1 -0
- data/lib/generators/templates/erb/scaffold/index.html.erb +32 -0
- data/lib/generators/templates/erb/scaffold/new.html.erb +1 -0
- data/lib/generators/templates/erb/scaffold/show.html.erb +15 -0
- data/lib/generators/templates/initializers/wobapphelpers.rb +18 -0
- data/lib/generators/templates/layouts/application.html.erb +44 -0
- data/lib/generators/templates/rails/scaffold_controller/controller.rb +66 -0
- data/lib/generators/wobapphelpers/install_generator.rb +24 -0
- data/lib/generators/wobapphelpers/scaffold_templates_generator.rb +20 -0
- data/lib/tasks/wobapphelpers_tasks.rake +4 -0
- data/lib/wobapphelpers.rb +37 -0
- data/lib/wobapphelpers/breadcrumbs.rb +16 -0
- data/lib/wobapphelpers/breadcrumbs/action_controller.rb +57 -0
- data/lib/wobapphelpers/breadcrumbs/breadcrumbs_helper.rb +26 -0
- data/lib/wobapphelpers/helpers.rb +12 -0
- data/lib/wobapphelpers/helpers/action_view_helper.rb +170 -0
- data/lib/wobapphelpers/helpers/icon_helper.rb +39 -0
- data/lib/wobapphelpers/rails.rb +4 -0
- data/lib/wobapphelpers/responders.rb +13 -0
- data/lib/wobapphelpers/responders/locales/de.yml +12 -0
- data/lib/wobapphelpers/responders/locales/en.yml +12 -0
- data/lib/wobapphelpers/version.rb +4 -0
- data/test/breadcrumbs/action_controller_test.rb +44 -0
- data/test/breadcrumbs/breadcrumb_helper_test.rb +35 -0
- data/test/dummy/app/controllers/application_controller.rb +19 -0
- data/test/dummy/app/controllers/blogs_controller.rb +55 -0
- data/test/dummy/app/controllers/home_controller.rb +7 -0
- data/test/dummy/app/controllers/posts_controller.rb +58 -0
- data/test/dummy/app/helpers/application_helper.rb +3 -0
- data/test/dummy/app/helpers/blogs_helper.rb +2 -0
- data/test/dummy/app/helpers/posts_helper.rb +2 -0
- data/test/dummy/app/models/blog.rb +2 -0
- data/test/dummy/app/models/post.rb +2 -0
- data/test/dummy/config/application.rb +31 -0
- data/test/dummy/config/boot.rb +5 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +37 -0
- data/test/dummy/config/environments/production.rb +83 -0
- data/test/dummy/config/environments/test.rb +45 -0
- data/test/dummy/config/initializers/assets.rb +1 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
- data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/test/dummy/config/initializers/inflections.rb +16 -0
- data/test/dummy/config/initializers/mime_types.rb +4 -0
- data/test/dummy/config/initializers/session_store.rb +3 -0
- data/test/dummy/config/initializers/simple_form.rb +161 -0
- data/test/dummy/config/initializers/simple_form_bootstrap.rb +107 -0
- data/test/dummy/config/initializers/wobapphelpers.rb +9 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/routes.rb +61 -0
- data/test/dummy/db/migrate/20140420155942_create_posts.rb +12 -0
- data/test/dummy/db/migrate/20140516164637_create_blogs.rb +12 -0
- data/test/dummy/db/schema.rb +33 -0
- data/test/dummy/lib/templates/rails/scaffold_controller/controller.rb +65 -0
- data/test/generators/install_generator_test.rb +29 -0
- data/test/generators/scaffold_templates_generator_test.rb +16 -0
- data/test/helpers/action_view_helper_test.rb +41 -0
- data/test/helpers/active_class_helper_test.rb +9 -0
- data/test/helpers/can_view_helper_test.rb +172 -0
- data/test/helpers/flash_helper_test.rb +11 -0
- data/test/helpers/form_legend_test.rb +29 -0
- data/test/helpers/icon_helper_test.rb +21 -0
- data/test/helpers/show_edit_delete_link_helper_test.rb +45 -0
- data/test/integration/helper_delivery_test.rb +28 -0
- data/test/responders/flash_test.rb +23 -0
- data/test/test_helper.rb +42 -0
- data/test/tmp/lib/templates/rails/scaffold_controller/controller.rb +66 -0
- data/test/translate_test.rb +10 -0
- data/test/wobapphelpers_test.rb +20 -0
- metadata +371 -0
| @@ -0,0 +1,24 @@ | |
| 1 | 
            +
            module Wobapphelpers
         | 
| 2 | 
            +
              module Generators
         | 
| 3 | 
            +
                class InstallGenerator < Rails::Generators::Base
         | 
| 4 | 
            +
                  source_root File.expand_path("../../templates", __FILE__)
         | 
| 5 | 
            +
                  
         | 
| 6 | 
            +
                  desc "Copy locale files to your application"
         | 
| 7 | 
            +
             | 
| 8 | 
            +
                  def copy_locale
         | 
| 9 | 
            +
                    ['en', 'de'].each do |lang|
         | 
| 10 | 
            +
                      copy_file "../../../config/locales/#{lang}.yml", 
         | 
| 11 | 
            +
                                "config/locales/wobapphelpers.#{lang}.yml"
         | 
| 12 | 
            +
                    end
         | 
| 13 | 
            +
                  end
         | 
| 14 | 
            +
             | 
| 15 | 
            +
                  def copy_layout
         | 
| 16 | 
            +
                    copy_file "layouts/application.html.erb", "app/views/layouts/application.html.erb"
         | 
| 17 | 
            +
                  end
         | 
| 18 | 
            +
             | 
| 19 | 
            +
                  def copy_initializer
         | 
| 20 | 
            +
                    copy_file "initializers/wobapphelpers.rb", "config/initializers/wobapphelpers.rb"
         | 
| 21 | 
            +
                  end
         | 
| 22 | 
            +
                end
         | 
| 23 | 
            +
              end
         | 
| 24 | 
            +
            end
         | 
| @@ -0,0 +1,20 @@ | |
| 1 | 
            +
            module Wobapphelpers
         | 
| 2 | 
            +
              module Generators
         | 
| 3 | 
            +
                class ScaffoldTemplatesGenerator < Rails::Generators::Base
         | 
| 4 | 
            +
                  source_root File.expand_path("../../templates", __FILE__)
         | 
| 5 | 
            +
                  
         | 
| 6 | 
            +
                  desc "Copy simple_form templates to your application"
         | 
| 7 | 
            +
             | 
| 8 | 
            +
                  def copy_view_templates
         | 
| 9 | 
            +
                    ["show.html.erb", "edit.html.erb", "new.html.erb", "index.html.erb", "_form.html.erb"].each do |file|
         | 
| 10 | 
            +
                      copy_file "erb/scaffold/#{file}", "lib/templates/erb/scaffold/#{file}"
         | 
| 11 | 
            +
                    end
         | 
| 12 | 
            +
                  end
         | 
| 13 | 
            +
             | 
| 14 | 
            +
                  def copy_controlle_template
         | 
| 15 | 
            +
                      copy_file "rails/scaffold_controller/controller.rb", 
         | 
| 16 | 
            +
                                "lib/templates/rails/scaffold_controller/controller.rb"
         | 
| 17 | 
            +
                  end
         | 
| 18 | 
            +
                end
         | 
| 19 | 
            +
              end
         | 
| 20 | 
            +
            end
         | 
| @@ -0,0 +1,37 @@ | |
| 1 | 
            +
            module Wobapphelpers
         | 
| 2 | 
            +
              autoload :Helpers, 'wobapphelpers/helpers'
         | 
| 3 | 
            +
              autoload :Responders, 'wobapphelpers/responders'
         | 
| 4 | 
            +
              autoload :Breadcrumbs, 'wobapphelpers/breadcrumbs'
         | 
| 5 | 
            +
             | 
| 6 | 
            +
              def self.setup
         | 
| 7 | 
            +
                yield self
         | 
| 8 | 
            +
              end
         | 
| 9 | 
            +
             | 
| 10 | 
            +
              # exclude controllers from breadcrumbs
         | 
| 11 | 
            +
              #
         | 
| 12 | 
            +
              mattr_accessor :breadcrumb_controller_blacklist
         | 
| 13 | 
            +
              @@breadcrumb_controller_blacklist = []
         | 
| 14 | 
            +
             | 
| 15 | 
            +
              # Use cancan abilities to decide if action links should be presented. 
         | 
| 16 | 
            +
              # Defaults to :none
         | 
| 17 | 
            +
              #
         | 
| 18 | 
            +
              mattr_reader :cancan 
         | 
| 19 | 
            +
              @@cancan = :none
         | 
| 20 | 
            +
             | 
| 21 | 
            +
              # Which variant of cancan should be used? possible values are:
         | 
| 22 | 
            +
              #   * +:none+: no usage of Cancan or Cancancan
         | 
| 23 | 
            +
              #   * +:cancan1+: cancan '~> 1.6.0' or cancancan '~> 1.7.0'
         | 
| 24 | 
            +
              #   * +:cancan2+: cancan '~> 2.0.0'
         | 
| 25 | 
            +
              #
         | 
| 26 | 
            +
              def self.cancan=(variant)
         | 
| 27 | 
            +
                if [:none, :cancan1, :cancan2].include?(variant)
         | 
| 28 | 
            +
                  @@cancan = variant
         | 
| 29 | 
            +
                else
         | 
| 30 | 
            +
                  raise "Cancan variant #{variant} not implemented!"
         | 
| 31 | 
            +
                end
         | 
| 32 | 
            +
              end
         | 
| 33 | 
            +
            end
         | 
| 34 | 
            +
             | 
| 35 | 
            +
            if defined?(::Rails)
         | 
| 36 | 
            +
              require 'wobapphelpers/rails'
         | 
| 37 | 
            +
            end
         | 
| @@ -0,0 +1,16 @@ | |
| 1 | 
            +
            require 'active_support/concern'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            module Wobapphelpers
         | 
| 4 | 
            +
              module Breadcrumbs
         | 
| 5 | 
            +
                extend ActiveSupport::Concern
         | 
| 6 | 
            +
             | 
| 7 | 
            +
                autoload :ActionController, 'wobapphelpers/breadcrumbs/action_controller.rb'
         | 
| 8 | 
            +
                autoload :BreadcrumbsHelper, 'wobapphelpers/breadcrumbs/breadcrumbs_helper.rb'
         | 
| 9 | 
            +
                
         | 
| 10 | 
            +
                included do
         | 
| 11 | 
            +
                  include Wobapphelpers::Breadcrumbs::ActionController
         | 
| 12 | 
            +
                end
         | 
| 13 | 
            +
              end
         | 
| 14 | 
            +
            end
         | 
| 15 | 
            +
             | 
| 16 | 
            +
            ActionView::Base.send :include, Wobapphelpers::Breadcrumbs::BreadcrumbsHelper
         | 
| @@ -0,0 +1,57 @@ | |
| 1 | 
            +
            module Wobapphelpers
         | 
| 2 | 
            +
              module Breadcrumbs
         | 
| 3 | 
            +
                module ActionController
         | 
| 4 | 
            +
                  def add_breadcrumb(name, url)
         | 
| 5 | 
            +
                    breadcrumbs ||= (session[:breadcrumbs] || [] )
         | 
| 6 | 
            +
                    if params[:bci]
         | 
| 7 | 
            +
                      # this a back link of an existing breadcrumb entry,
         | 
| 8 | 
            +
                      # shorten the list
         | 
| 9 | 
            +
                      breadcrumbs = breadcrumbs.first(params[:bci].to_i)
         | 
| 10 | 
            +
                    end
         | 
| 11 | 
            +
                    if breadcrumbs.size == 0 || url != breadcrumbs.last[1]
         | 
| 12 | 
            +
                      breadcrumbs << [name, url]
         | 
| 13 | 
            +
                    end
         | 
| 14 | 
            +
                    session[:breadcrumbs] = breadcrumbs.last(6)
         | 
| 15 | 
            +
                  end
         | 
| 16 | 
            +
             | 
| 17 | 
            +
                  def last_breadcrumb
         | 
| 18 | 
            +
            	session[:breadcrumbs].last || [nil, :back]
         | 
| 19 | 
            +
                  end
         | 
| 20 | 
            +
             | 
| 21 | 
            +
                  def last_breadcrumb_url
         | 
| 22 | 
            +
            	last_breadcrumb[1]
         | 
| 23 | 
            +
                  end
         | 
| 24 | 
            +
             | 
| 25 | 
            +
                  def add_breadcrumb_index
         | 
| 26 | 
            +
            	return if request.format == :json
         | 
| 27 | 
            +
            	text = t("controller.#{controller_path}")
         | 
| 28 | 
            +
            	url  = request.fullpath
         | 
| 29 | 
            +
            	add_breadcrumb(text, url)
         | 
| 30 | 
            +
                  end
         | 
| 31 | 
            +
             | 
| 32 | 
            +
                  def add_breadcrumb_show
         | 
| 33 | 
            +
                    resource = controller_name.singularize
         | 
| 34 | 
            +
                    if instance_variable_defined?("@#{resource}")
         | 
| 35 | 
            +
                      add_breadcrumb_for instance_variable_get("@#{resource}")
         | 
| 36 | 
            +
                    else
         | 
| 37 | 
            +
                      flash[:alert] = "add_breadcrumb_show: instance variable @#{resource} not set; see documentation for Wobapphelpers::Breadcrumbs"
         | 
| 38 | 
            +
                    end
         | 
| 39 | 
            +
                  end
         | 
| 40 | 
            +
             | 
| 41 | 
            +
                  def add_breadcrumb_for(poly)
         | 
| 42 | 
            +
            	if poly.is_a? Array
         | 
| 43 | 
            +
            	  (parent, child) = poly
         | 
| 44 | 
            +
            	  name  = "#{t('activerecord.models.'+parent.class.name.underscore)}(#{parent.id})/"
         | 
| 45 | 
            +
            	  if child.is_a? Symbol
         | 
| 46 | 
            +
            	    name += "#{t('attributes.'+child.to_s)}"
         | 
| 47 | 
            +
            	  else
         | 
| 48 | 
            +
            	    name += "#{t('activerecord.models.'+child.class.name.underscore)}(#{child.id})"
         | 
| 49 | 
            +
            	  end
         | 
| 50 | 
            +
            	else
         | 
| 51 | 
            +
            	  name = "#{t('activerecord.models.' + poly.class.name.underscore)}(#{poly.id})"
         | 
| 52 | 
            +
            	end
         | 
| 53 | 
            +
            	add_breadcrumb name, polymorphic_path(poly)
         | 
| 54 | 
            +
                  end
         | 
| 55 | 
            +
                end
         | 
| 56 | 
            +
              end
         | 
| 57 | 
            +
            end
         | 
| @@ -0,0 +1,26 @@ | |
| 1 | 
            +
            module Wobapphelpers
         | 
| 2 | 
            +
              module Breadcrumbs
         | 
| 3 | 
            +
                module BreadcrumbsHelper
         | 
| 4 | 
            +
                  def render_breadcrumbs
         | 
| 5 | 
            +
            	return if Wobapphelpers.breadcrumb_controller_blacklist.include?(controller.controller_path)
         | 
| 6 | 
            +
            	return if session[:breadcrumbs].nil? || session[:breadcrumbs].size == 0
         | 
| 7 | 
            +
            	track = ""
         | 
| 8 | 
            +
            	session[:breadcrumbs].each_with_index do |b, idx|
         | 
| 9 | 
            +
            	  track += "> #{breadcrumb_idx(b[0], b[1], idx)} "
         | 
| 10 | 
            +
            	end
         | 
| 11 | 
            +
            	%Q[<div id="breadcrumbs" class="visible-desktop">#{track}</div>].html_safe
         | 
| 12 | 
            +
                  end
         | 
| 13 | 
            +
             | 
| 14 | 
            +
                  def breadcrumb_idx(name, url, idx, html_class=nil)
         | 
| 15 | 
            +
                    uri = URI.parse(url)
         | 
| 16 | 
            +
                    query = uri.query || ""
         | 
| 17 | 
            +
                    if query =~ /bci=(\d+)/
         | 
| 18 | 
            +
                      uri.query.gsub!(/bci=(\d+)/, "bci=#{idx}")
         | 
| 19 | 
            +
                    else
         | 
| 20 | 
            +
                      uri.query = query + "&bci=#{idx}"
         | 
| 21 | 
            +
                    end
         | 
| 22 | 
            +
                    link_to name, uri.to_s.gsub('?&','?'), :class => html_class
         | 
| 23 | 
            +
                  end
         | 
| 24 | 
            +
                end
         | 
| 25 | 
            +
              end
         | 
| 26 | 
            +
            end
         | 
| @@ -0,0 +1,12 @@ | |
| 1 | 
            +
            module Wobapphelpers
         | 
| 2 | 
            +
              module Helpers
         | 
| 3 | 
            +
                autoload :IconHelper, 'wobapphelpers/helpers/icon_helper.rb'
         | 
| 4 | 
            +
                autoload :ActionViewHelper, 'wobapphelpers/helpers/action_view_helper.rb'
         | 
| 5 | 
            +
             | 
| 6 | 
            +
                # one module to rule all
         | 
| 7 | 
            +
                module All
         | 
| 8 | 
            +
                  include IconHelper
         | 
| 9 | 
            +
                  include ActionViewHelper
         | 
| 10 | 
            +
                end
         | 
| 11 | 
            +
              end
         | 
| 12 | 
            +
            end
         | 
| @@ -0,0 +1,170 @@ | |
| 1 | 
            +
            module Wobapphelpers
         | 
| 2 | 
            +
              module Helpers
         | 
| 3 | 
            +
             | 
| 4 | 
            +
                # implement model independent links for new, edit, show, delete
         | 
| 5 | 
            +
                module ActionViewHelper
         | 
| 6 | 
            +
                  include Wobapphelpers::Breadcrumbs::BreadcrumbsHelper
         | 
| 7 | 
            +
             | 
| 8 | 
            +
                  def form_legend
         | 
| 9 | 
            +
                    raw(
         | 
| 10 | 
            +
                     %Q[<div class="row">] +
         | 
| 11 | 
            +
                     %Q[<div class="col-sm-9 offset-sm-3 col-md-10 offset-md-2">] +
         | 
| 12 | 
            +
                     %Q[<legend>#{controlleraction}</legend>] +
         | 
| 13 | 
            +
                     %Q[</div>] +
         | 
| 14 | 
            +
                     %Q[</div>]
         | 
| 15 | 
            +
                    )
         | 
| 16 | 
            +
                  end
         | 
| 17 | 
            +
             | 
| 18 | 
            +
                  def new_link(poly, options = {})
         | 
| 19 | 
            +
                    mypoly, obj = get_parts(poly)
         | 
| 20 | 
            +
                    if _can?(:create, obj)
         | 
| 21 | 
            +
                      options.symbolize_keys!
         | 
| 22 | 
            +
                      link_to obj.model_name.human + " erstellen",
         | 
| 23 | 
            +
                        new_polymorphic_path(mypoly),
         | 
| 24 | 
            +
                        remote: options.fetch(:remote, false),
         | 
| 25 | 
            +
                        title: options.fetch(:title, title(obj) + " hinzufügen"),
         | 
| 26 | 
            +
                        class: options.fetch(:class, 'btn btn-secondary')
         | 
| 27 | 
            +
                    end
         | 
| 28 | 
            +
                  end
         | 
| 29 | 
            +
             | 
| 30 | 
            +
                  def show_link(poly, options = {})
         | 
| 31 | 
            +
                    mypoly, obj = get_parts(poly)
         | 
| 32 | 
            +
                    if _can?(:read, obj)
         | 
| 33 | 
            +
                      options.symbolize_keys!
         | 
| 34 | 
            +
                      link_to icon_show, polymorphic_path(mypoly),
         | 
| 35 | 
            +
                        remote: options.fetch(:remote, false),
         | 
| 36 | 
            +
                        title:  options.fetch(:title, title(obj) + " anzeigen"),
         | 
| 37 | 
            +
                        class:  options.fetch(:class, 'btn btn-secondary')
         | 
| 38 | 
            +
                    end
         | 
| 39 | 
            +
                  end
         | 
| 40 | 
            +
             | 
| 41 | 
            +
                  def edit_link(poly, options = {})
         | 
| 42 | 
            +
                    mypoly, obj = get_parts(poly)
         | 
| 43 | 
            +
                    if _can?(:edit, obj)
         | 
| 44 | 
            +
                      options.symbolize_keys!
         | 
| 45 | 
            +
                      link_to icon_edit, edit_polymorphic_path(mypoly),
         | 
| 46 | 
            +
                        remote: options.fetch(:remote, false),
         | 
| 47 | 
            +
                        title:  options.fetch(:title, title(obj) + " bearbeiten"),
         | 
| 48 | 
            +
                        class:  options.fetch(:class, 'btn btn-secondary')
         | 
| 49 | 
            +
                    end
         | 
| 50 | 
            +
                  end
         | 
| 51 | 
            +
             | 
| 52 | 
            +
                  def delete_link(poly, options = {})
         | 
| 53 | 
            +
                    mypoly, obj = get_parts(poly)
         | 
| 54 | 
            +
                    if _can?(:destroy, obj)
         | 
| 55 | 
            +
                      options.symbolize_keys!
         | 
| 56 | 
            +
                      verify = options.has_key?(:verify) ? { verify: options.fetch(:verify) } : {}
         | 
| 57 | 
            +
                      link_to icon_delete, mypoly,
         | 
| 58 | 
            +
                        remote: options.fetch(:remote, false),
         | 
| 59 | 
            +
                        data: {
         | 
| 60 | 
            +
                          confirm: options.fetch(:confirm, "Sie wollen das Objekt löschen.\nSind Sie sicher?")
         | 
| 61 | 
            +
                        }.merge(verify),
         | 
| 62 | 
            +
                        method: :delete,
         | 
| 63 | 
            +
                        title:  options.fetch(:title, title(obj) + " löschen"),
         | 
| 64 | 
            +
                        class:  options.fetch(:class, 'btn btn-danger')
         | 
| 65 | 
            +
                    end
         | 
| 66 | 
            +
                  end
         | 
| 67 | 
            +
             | 
| 68 | 
            +
                  def back_link(options = {})
         | 
| 69 | 
            +
                    options.symbolize_keys!
         | 
| 70 | 
            +
            	unless options[:path].nil?
         | 
| 71 | 
            +
            	  goto = options[:path]
         | 
| 72 | 
            +
            	else
         | 
| 73 | 
            +
                      label = icon_left + " " + t('wobapphelpers.helpers.back')
         | 
| 74 | 
            +
            	  if session[:breadcrumbs] && session[:breadcrumbs].size > 1
         | 
| 75 | 
            +
            	    bc = session[:breadcrumbs][-2]
         | 
| 76 | 
            +
            	    idx   =  session[:breadcrumbs].size - 2
         | 
| 77 | 
            +
            	    title = bc[0]
         | 
| 78 | 
            +
            	    goto  = bc[1]
         | 
| 79 | 
            +
            	    breadcrumb_idx(label, goto, idx, 'btn btn-secondary')
         | 
| 80 | 
            +
            	  else
         | 
| 81 | 
            +
            	    link_to label, url_for(:back), :class => 'btn btn-secondary'
         | 
| 82 | 
            +
            	  end
         | 
| 83 | 
            +
                    end
         | 
| 84 | 
            +
                  end
         | 
| 85 | 
            +
             | 
| 86 | 
            +
                  def cancel_button
         | 
| 87 | 
            +
                    link_to icon_cancel + " " + t('wobapphelpers.helpers.cancel'),
         | 
| 88 | 
            +
                      url_for(:back), :class => 'btn btn-secondary'
         | 
| 89 | 
            +
                  end
         | 
| 90 | 
            +
             | 
| 91 | 
            +
                  def show_flash
         | 
| 92 | 
            +
                    # "- #{flash[:success]} - #{flash[:notice]} - #{flash[:alert]} -"
         | 
| 93 | 
            +
            	msg = ""
         | 
| 94 | 
            +
            	[:alert, :error, :notice, :success, :info].each do |severity|
         | 
| 95 | 
            +
            	  next unless flash[severity]
         | 
| 96 | 
            +
            	  case severity
         | 
| 97 | 
            +
            	  when :error, :alert
         | 
| 98 | 
            +
            	    my_class = "alert alert-danger"
         | 
| 99 | 
            +
            	  when :notice, :info
         | 
| 100 | 
            +
            	    my_class = "alert alert-info"
         | 
| 101 | 
            +
            	  when :success
         | 
| 102 | 
            +
            	    my_class = "alert alert-success"
         | 
| 103 | 
            +
            	  else
         | 
| 104 | 
            +
            	    my_class = severity.to_s
         | 
| 105 | 
            +
            	  end
         | 
| 106 | 
            +
            	  msg += %Q[<div id="#{severity.to_s}" class="#{my_class} alert-dismissable fade show noprint" role="alert">]
         | 
| 107 | 
            +
            	  msg += %Q[<button type="button" class="close" data-dismiss="alert" aria-label="Clse">]
         | 
| 108 | 
            +
                      msg += %Q[<span aria-hidden="true">×</span>]
         | 
| 109 | 
            +
            	  msg += %Q[</button>]
         | 
| 110 | 
            +
            	  msg += flash[severity]
         | 
| 111 | 
            +
            	  msg += %Q[</div>]
         | 
| 112 | 
            +
            	end
         | 
| 113 | 
            +
            	msg.html_safe
         | 
| 114 | 
            +
                  end
         | 
| 115 | 
            +
             | 
| 116 | 
            +
                  def active_class(myclass)
         | 
| 117 | 
            +
                    if controller.controller_name == myclass
         | 
| 118 | 
            +
                      "active"
         | 
| 119 | 
            +
                    end
         | 
| 120 | 
            +
                  end
         | 
| 121 | 
            +
             | 
| 122 | 
            +
                  private
         | 
| 123 | 
            +
             | 
| 124 | 
            +
                  #
         | 
| 125 | 
            +
                  # returns poly, object
         | 
| 126 | 
            +
                  # mypoly: poly.compact! if is_a? Array
         | 
| 127 | 
            +
                  #
         | 
| 128 | 
            +
                  def get_parts(poly)
         | 
| 129 | 
            +
            	if poly.kind_of? Array
         | 
| 130 | 
            +
                      mypoly = poly.compact
         | 
| 131 | 
            +
            	  [mypoly, mypoly[-1]]
         | 
| 132 | 
            +
                    else
         | 
| 133 | 
            +
                      [poly, poly]
         | 
| 134 | 
            +
                    end
         | 
| 135 | 
            +
                  end
         | 
| 136 | 
            +
             | 
| 137 | 
            +
                  def title(obj)
         | 
| 138 | 
            +
                    if obj.kind_of? Class
         | 
| 139 | 
            +
                      model = obj
         | 
| 140 | 
            +
                    else
         | 
| 141 | 
            +
                      model = obj.class
         | 
| 142 | 
            +
                    end
         | 
| 143 | 
            +
                    t('activerecord.models.' + model.model_name.i18n_key.to_s)
         | 
| 144 | 
            +
                  end
         | 
| 145 | 
            +
             | 
| 146 | 
            +
                  def controlleraction
         | 
| 147 | 
            +
                    action        = controller.action_name
         | 
| 148 | 
            +
                    namespace     = controller.controller_path
         | 
| 149 | 
            +
                    resource_name = t("activerecord.models.#{namespace.singularize}")
         | 
| 150 | 
            +
                    search_for    = [namespace, action].join(".").to_sym
         | 
| 151 | 
            +
                    t(search_for, scope: "wobapphelpers.controller".to_sym,
         | 
| 152 | 
            +
                      default: action.to_sym, name: resource_name)
         | 
| 153 | 
            +
                  end
         | 
| 154 | 
            +
             | 
| 155 | 
            +
                  def _can?(action, obj)
         | 
| 156 | 
            +
                    return true if Wobapphelpers.cancan == :none
         | 
| 157 | 
            +
                    obj = _normalize(obj) if obj.kind_of? Class
         | 
| 158 | 
            +
                    can? action, obj
         | 
| 159 | 
            +
                  end
         | 
| 160 | 
            +
             | 
| 161 | 
            +
                  def _normalize(model)
         | 
| 162 | 
            +
                    if Wobapphelpers.cancan == :cancan2
         | 
| 163 | 
            +
                      model.model_name.downcase.pluralize.to_sym
         | 
| 164 | 
            +
                    else
         | 
| 165 | 
            +
                      model
         | 
| 166 | 
            +
                    end
         | 
| 167 | 
            +
                  end
         | 
| 168 | 
            +
                end
         | 
| 169 | 
            +
              end
         | 
| 170 | 
            +
            end
         | 
| @@ -0,0 +1,39 @@ | |
| 1 | 
            +
            module Wobapphelpers
         | 
| 2 | 
            +
              module Helpers
         | 
| 3 | 
            +
                module IconHelper
         | 
| 4 | 
            +
                  PREDEFINED_ICONS = {
         | 
| 5 | 
            +
                    attachment: 'file',
         | 
| 6 | 
            +
                    back:       'arrow-left',
         | 
| 7 | 
            +
                    calendar:   'calendar',
         | 
| 8 | 
            +
                    cancel:     'trash',
         | 
| 9 | 
            +
                    closed:     'lock',
         | 
| 10 | 
            +
                    copy:       'clone',
         | 
| 11 | 
            +
                    delete:     'trash',
         | 
| 12 | 
            +
                    document:   'file',
         | 
| 13 | 
            +
                    download:   'download',
         | 
| 14 | 
            +
                    edit:       'pencil',
         | 
| 15 | 
            +
                    help:       'question',
         | 
| 16 | 
            +
                    info:       'info',
         | 
| 17 | 
            +
                    left:       'arrow-left',
         | 
| 18 | 
            +
                    new:        'plus',
         | 
| 19 | 
            +
                    ok:         'check',
         | 
| 20 | 
            +
                    open:       'folder-open',
         | 
| 21 | 
            +
                    print:      'print',
         | 
| 22 | 
            +
                    right:      'arrow-right',
         | 
| 23 | 
            +
                    show:       'eye',
         | 
| 24 | 
            +
                    star:       'star',
         | 
| 25 | 
            +
                    up:         'arrow-up',
         | 
| 26 | 
            +
                  }
         | 
| 27 | 
            +
                  
         | 
| 28 | 
            +
                  def icon(what)
         | 
| 29 | 
            +
                    raw(%Q[<i class="fa fa-#{what} fa-fw" aria-hidden="true"></i>])
         | 
| 30 | 
            +
                  end
         | 
| 31 | 
            +
             | 
| 32 | 
            +
                  PREDEFINED_ICONS.each do |key,value| 
         | 
| 33 | 
            +
                    define_method :"icon_#{key}" do
         | 
| 34 | 
            +
                      icon(value)
         | 
| 35 | 
            +
                    end
         | 
| 36 | 
            +
                  end
         | 
| 37 | 
            +
                end
         | 
| 38 | 
            +
              end
         | 
| 39 | 
            +
            end
         | 
| @@ -0,0 +1,13 @@ | |
| 1 | 
            +
            require 'action_controller'
         | 
| 2 | 
            +
            require 'responders'
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            module Wobapphelpers
         | 
| 5 | 
            +
              class Responders < ActionController::Responder
         | 
| 6 | 
            +
                include ::Responders::FlashResponder
         | 
| 7 | 
            +
              end
         | 
| 8 | 
            +
            end
         | 
| 9 | 
            +
             | 
| 10 | 
            +
            # -- use own translations
         | 
| 11 | 
            +
            require "active_support/i18n"
         | 
| 12 | 
            +
            I18n.load_path += Dir[File.expand_path("../responders/locales/*.yml", __FILE__)]
         | 
| 13 | 
            +
             | 
| @@ -0,0 +1,12 @@ | |
| 1 | 
            +
            de:
         | 
| 2 | 
            +
              flash:
         | 
| 3 | 
            +
                actions:
         | 
| 4 | 
            +
                  create:
         | 
| 5 | 
            +
                    notice: "%{resource_name} erfolgreich erstellt."
         | 
| 6 | 
            +
                    alert: "%{resource_name} konnte nicht angelegt werden!"
         | 
| 7 | 
            +
                  update:
         | 
| 8 | 
            +
                    notice: "%{resource_name} erfolgreich aktualisiert."
         | 
| 9 | 
            +
                    alert: "%{resource_name} konnte nicht aktualisiert werden!"
         | 
| 10 | 
            +
                  destroy:
         | 
| 11 | 
            +
                    notice: "%{resource_name} erfolgreich gelöscht."
         | 
| 12 | 
            +
                    alert: "%{resource_name} konnte nicht gelöscht werden!"
         |