simple_resource 0.2.0 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.md +5 -0
- data/app/controllers/simple_resource/base_controller.rb +5 -1
- data/app/helpers/simple_resource/base_helper.rb +22 -3
- data/lib/simple_resource/configuration.rb +40 -0
- data/lib/simple_resource/version.rb +1 -1
- data/lib/simple_resource.rb +2 -0
- data/spec/helpers/base_helper_spec.rb +21 -21
- metadata +4 -3
data/CHANGELOG.md
CHANGED
@@ -4,7 +4,11 @@ module SimpleResource
|
|
4
4
|
load_and_authorize_resource
|
5
5
|
|
6
6
|
rescue_from CanCan::AccessDenied do |exception|
|
7
|
-
|
7
|
+
if !current_user && respond_to?(:new_user_session_url)
|
8
|
+
redirect_to new_user_session_url, alert: exception.message
|
9
|
+
else
|
10
|
+
redirect_to root_url, alert: exception.message
|
11
|
+
end
|
8
12
|
end
|
9
13
|
end
|
10
14
|
|
@@ -26,7 +26,7 @@ module SimpleResource
|
|
26
26
|
end
|
27
27
|
|
28
28
|
def new_resource_link
|
29
|
-
link_to(new_resource_link_title, new_resource_path)
|
29
|
+
link_to(icon_for(:new) + new_resource_link_title, new_resource_path, class: button_classes_for(:new))
|
30
30
|
end
|
31
31
|
|
32
32
|
def edit_resource_title
|
@@ -67,10 +67,10 @@ module SimpleResource
|
|
67
67
|
def link_to_action(action_name, title, path)
|
68
68
|
action_name = action_name.to_sym
|
69
69
|
if action_name == :delete
|
70
|
-
link_to(t("simple_resource.#{action_name.to_s}", default: title), path,
|
70
|
+
link_to(icon_for(action_name) + t("simple_resource.#{action_name.to_s}", default: title), path, class: button_classes_for(action_name, true),
|
71
71
|
method: :delete, confirm: t("simple_resource.messages.delete_confirmation"))
|
72
72
|
else
|
73
|
-
link_to(t("simple_resource.#{action_name.to_s}", default: title), path)
|
73
|
+
link_to(icon_for(action_name) + t("simple_resource.#{action_name.to_s}", default: title), path, class: button_classes_for(action_name, true))
|
74
74
|
end
|
75
75
|
end
|
76
76
|
|
@@ -82,6 +82,25 @@ module SimpleResource
|
|
82
82
|
html.join("\n").html_safe
|
83
83
|
end
|
84
84
|
|
85
|
+
def icon_for(action)
|
86
|
+
return "" if !SimpleResource::Configuration.respond_to?("icon_classes_for_#{action.to_s}")
|
87
|
+
icon_classes = Array.new
|
88
|
+
icon_classes << SimpleResource::Configuration.icon_classes
|
89
|
+
icon_classes << SimpleResource::Configuration.send("icon_classes_for_#{action.to_s}")
|
90
|
+
content_tag(:i, "", class: icon_classes.join(" ").strip).html_safe + " "
|
91
|
+
end
|
92
|
+
|
93
|
+
def button_classes_for(action, mini = false)
|
94
|
+
button_classes = Array.new
|
95
|
+
button_classes << SimpleResource::Configuration.button_classes
|
96
|
+
button_classes << SimpleResource::Configuration.mini_button_classes if mini
|
97
|
+
button_classes << (
|
98
|
+
SimpleResource::Configuration.respond_to?("button_classes_for_#{action.to_s}") ?
|
99
|
+
SimpleResource::Configuration.send("button_classes_for_#{action.to_s}") :
|
100
|
+
"")
|
101
|
+
button_classes.join(" ").strip
|
102
|
+
end
|
103
|
+
|
85
104
|
def controller_namespaces
|
86
105
|
namespaces = controller_path.split("/")
|
87
106
|
namespaces.pop
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module SimpleResource
|
2
|
+
module Configuration
|
3
|
+
mattr_accessor :button_classes
|
4
|
+
self.button_classes = "btn"
|
5
|
+
|
6
|
+
mattr_accessor :mini_button_classes
|
7
|
+
self.mini_button_classes = "btn-mini"
|
8
|
+
|
9
|
+
mattr_accessor :button_classes_for_new
|
10
|
+
self.button_classes_for_new = ""
|
11
|
+
|
12
|
+
mattr_accessor :button_classes_for_show
|
13
|
+
self.button_classes_for_show = ""
|
14
|
+
|
15
|
+
mattr_accessor :button_classes_for_edit
|
16
|
+
self.button_classes_for_edit = ""
|
17
|
+
|
18
|
+
mattr_accessor :button_classes_for_delete
|
19
|
+
self.button_classes_for_delete = "btn-danger"
|
20
|
+
|
21
|
+
mattr_accessor :icon_classes
|
22
|
+
self.icon_classes = ""
|
23
|
+
|
24
|
+
mattr_accessor :icon_classes_for_new
|
25
|
+
self.icon_classes_for_new = "icon-plus-sign"
|
26
|
+
|
27
|
+
mattr_accessor :icon_classes_for_show
|
28
|
+
self.icon_classes_for_show = "icon-zoom-in"
|
29
|
+
|
30
|
+
mattr_accessor :icon_classes_for_edit
|
31
|
+
self.icon_classes_for_edit = "icon-edit"
|
32
|
+
|
33
|
+
mattr_accessor :icon_classes_for_delete
|
34
|
+
self.icon_classes_for_delete = "icon-trash icon-white"
|
35
|
+
|
36
|
+
def configure
|
37
|
+
yield self if block_given?
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
data/lib/simple_resource.rb
CHANGED
@@ -74,12 +74,12 @@ describe SimpleResource::BaseHelper do
|
|
74
74
|
|
75
75
|
describe "#new_resource_link" do
|
76
76
|
it "returns default version of new resource link" do
|
77
|
-
helper.new_resource_link.should eq('<a href="/languages/new">New Language</a>')
|
77
|
+
helper.new_resource_link.should eq('<a href="/languages/new" class="btn"><i class="icon-plus-sign"></i> New Language</a>')
|
78
78
|
end
|
79
79
|
|
80
80
|
it "returns translated version of new resource link" do
|
81
81
|
set_locale
|
82
|
-
helper.new_resource_link.should eq('<a href="/languages/new">Uusi Kieli</a>')
|
82
|
+
helper.new_resource_link.should eq('<a href="/languages/new" class="btn"><i class="icon-plus-sign"></i> Uusi Kieli</a>')
|
83
83
|
reset_locale
|
84
84
|
end
|
85
85
|
end
|
@@ -176,43 +176,43 @@ describe SimpleResource::BaseHelper do
|
|
176
176
|
describe "#link_to_action" do
|
177
177
|
context "with action :show" do
|
178
178
|
it "returns show link" do
|
179
|
-
helper.link_to_action(:show, "Show", "/languages/1").should eq('<a href="/languages/1">Show</a>')
|
179
|
+
helper.link_to_action(:show, "Show", "/languages/1").should eq('<a href="/languages/1" class="btn btn-mini"><i class="icon-zoom-in"></i> Show</a>')
|
180
180
|
end
|
181
181
|
|
182
182
|
it "returns translated show link" do
|
183
183
|
set_locale
|
184
|
-
helper.link_to_action(:show, "Näytä", "/languages/1").should eq('<a href="/languages/1">Näytä</a>')
|
184
|
+
helper.link_to_action(:show, "Näytä", "/languages/1").should eq('<a href="/languages/1" class="btn btn-mini"><i class="icon-zoom-in"></i> Näytä</a>')
|
185
185
|
reset_locale
|
186
186
|
end
|
187
187
|
end
|
188
188
|
|
189
189
|
context "with action :edit" do
|
190
190
|
it "returns edit link" do
|
191
|
-
helper.link_to_action(:edit, "Edit", "/languages/1/edit").should eq('<a href="/languages/1/edit">Edit</a>')
|
191
|
+
helper.link_to_action(:edit, "Edit", "/languages/1/edit").should eq('<a href="/languages/1/edit" class="btn btn-mini"><i class="icon-edit"></i> Edit</a>')
|
192
192
|
end
|
193
193
|
|
194
194
|
it "returns translated edit link" do
|
195
195
|
set_locale
|
196
|
-
helper.link_to_action(:edit, "Muokkaa", "/languages/1/edit").should eq('<a href="/languages/1/edit">Muokkaa</a>')
|
196
|
+
helper.link_to_action(:edit, "Muokkaa", "/languages/1/edit").should eq('<a href="/languages/1/edit" class="btn btn-mini"><i class="icon-edit"></i> Muokkaa</a>')
|
197
197
|
reset_locale
|
198
198
|
end
|
199
199
|
end
|
200
200
|
|
201
201
|
context "with action :delete" do
|
202
202
|
it "returns delete link" do
|
203
|
-
helper.link_to_action(:delete, "Delete", "/languages/1").should eq('<a href="/languages/1" data-confirm="Are you sure?" data-method="delete" rel="nofollow">Delete</a>')
|
203
|
+
helper.link_to_action(:delete, "Delete", "/languages/1").should eq('<a href="/languages/1" class="btn btn-mini btn-danger" data-confirm="Are you sure?" data-method="delete" rel="nofollow"><i class="icon-trash icon-white"></i> Delete</a>')
|
204
204
|
end
|
205
205
|
|
206
206
|
it "returns translated delete link" do
|
207
207
|
set_locale
|
208
|
-
helper.link_to_action(:delete, "Poista", "/languages/1").should eq('<a href="/languages/1" data-confirm="Oletko varma?" data-method="delete" rel="nofollow">Poista</a>')
|
208
|
+
helper.link_to_action(:delete, "Poista", "/languages/1").should eq('<a href="/languages/1" class="btn btn-mini btn-danger" data-confirm="Oletko varma?" data-method="delete" rel="nofollow"><i class="icon-trash icon-white"></i> Poista</a>')
|
209
209
|
reset_locale
|
210
210
|
end
|
211
211
|
end
|
212
212
|
|
213
213
|
context "with custom action" do
|
214
214
|
it "returns link to custom action" do
|
215
|
-
helper.link_to_action(:children, "Children", "/languages/1/children").should eq('<a href="/languages/1/children">Children</a>')
|
215
|
+
helper.link_to_action(:children, "Children", "/languages/1/children").should eq('<a href="/languages/1/children" class="btn btn-mini">Children</a>')
|
216
216
|
end
|
217
217
|
end
|
218
218
|
end
|
@@ -222,10 +222,10 @@ describe SimpleResource::BaseHelper do
|
|
222
222
|
|
223
223
|
it "returns default actions for given resource" do
|
224
224
|
collection.each do |resource|
|
225
|
-
expected = %Q(<a href="/languages/#{resource.id}">Show</a>\n)
|
226
|
-
expected += %Q(<a href="/languages/#{resource.id}/edit">Edit</a>\n)
|
227
|
-
expected += %Q(<a href="/languages/#{resource.id}" data-confirm="Are you sure?")
|
228
|
-
expected += %Q( data-method="delete" rel="nofollow">Delete</a>)
|
225
|
+
expected = %Q(<a href="/languages/#{resource.id}" class="btn btn-mini"><i class="icon-zoom-in"></i> Show</a>\n)
|
226
|
+
expected += %Q(<a href="/languages/#{resource.id}/edit" class="btn btn-mini"><i class="icon-edit"></i> Edit</a>\n)
|
227
|
+
expected += %Q(<a href="/languages/#{resource.id}" class="btn btn-mini btn-danger" data-confirm="Are you sure?")
|
228
|
+
expected += %Q( data-method="delete" rel="nofollow"><i class="icon-trash icon-white"></i> Delete</a>)
|
229
229
|
helper.default_actions_for(resource).should eq(expected)
|
230
230
|
end
|
231
231
|
end
|
@@ -315,10 +315,10 @@ describe SimpleResource::BaseHelper do
|
|
315
315
|
|
316
316
|
it "returns actions for given resource in HTML" do
|
317
317
|
collection.each do |resource|
|
318
|
-
expected = %Q(<a href="/languages/#{resource.id}">Show</a>\n)
|
319
|
-
expected += %Q(<a href="/languages/#{resource.id}/edit">Edit</a>\n)
|
320
|
-
expected += %Q(<a href="/languages/#{resource.id}" data-confirm="Are you sure?")
|
321
|
-
expected += %Q( data-method="delete" rel="nofollow">Delete</a>\n)
|
318
|
+
expected = %Q(<a href="/languages/#{resource.id}" class="btn btn-mini"><i class="icon-zoom-in"></i> Show</a>\n)
|
319
|
+
expected += %Q(<a href="/languages/#{resource.id}/edit" class="btn btn-mini"><i class="icon-edit"></i> Edit</a>\n)
|
320
|
+
expected += %Q(<a href="/languages/#{resource.id}" class="btn btn-mini btn-danger" data-confirm="Are you sure?")
|
321
|
+
expected += %Q( data-method="delete" rel="nofollow"><i class="icon-trash icon-white"></i> Delete</a>\n)
|
322
322
|
helper.render_actions_for(resource).should eq(expected)
|
323
323
|
end
|
324
324
|
end
|
@@ -337,10 +337,10 @@ describe SimpleResource::BaseHelper do
|
|
337
337
|
|
338
338
|
collection.each do |resource|
|
339
339
|
expected += %Q(<tr><td>#{resource.name}</td><td class="actions">)
|
340
|
-
expected += %Q(<a href="/languages/#{resource.id}">Show</a>)
|
341
|
-
expected += %Q(<a href="/languages/#{resource.id}/edit">Edit</a>)
|
342
|
-
expected += %Q(<a href="/languages/#{resource.id}" data-confirm="Are you sure?")
|
343
|
-
expected += %Q( data-method="delete" rel="nofollow">Delete</a>)
|
340
|
+
expected += %Q(<a href="/languages/#{resource.id}" class="btn btn-mini"><i class="icon-zoom-in"></i> Show</a>)
|
341
|
+
expected += %Q(<a href="/languages/#{resource.id}/edit" class="btn btn-mini"><i class="icon-edit"></i> Edit</a>)
|
342
|
+
expected += %Q(<a href="/languages/#{resource.id}" class="btn btn-mini btn-danger" data-confirm="Are you sure?")
|
343
|
+
expected += %Q( data-method="delete" rel="nofollow"><i class="icon-trash icon-white"></i> Delete</a>)
|
344
344
|
expected += %Q(</td></tr>)
|
345
345
|
end
|
346
346
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simple_resource
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -249,6 +249,7 @@ files:
|
|
249
249
|
- app/views/simple_resource/builders/_simple_form.html.erb
|
250
250
|
- config/locales/en.yml
|
251
251
|
- lib/simple_resource.rb
|
252
|
+
- lib/simple_resource/configuration.rb
|
252
253
|
- lib/simple_resource/engine.rb
|
253
254
|
- lib/simple_resource/version.rb
|
254
255
|
- script/rails
|
@@ -316,7 +317,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
316
317
|
version: '0'
|
317
318
|
segments:
|
318
319
|
- 0
|
319
|
-
hash:
|
320
|
+
hash: 2164673244938550078
|
320
321
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
321
322
|
none: false
|
322
323
|
requirements:
|
@@ -325,7 +326,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
325
326
|
version: '0'
|
326
327
|
segments:
|
327
328
|
- 0
|
328
|
-
hash:
|
329
|
+
hash: 2164673244938550078
|
329
330
|
requirements: []
|
330
331
|
rubyforge_project:
|
331
332
|
rubygems_version: 1.8.24
|