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!"
|