gaku_helpers 0.0.1
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.
- data/README.md +1 -0
- data/gaku_helpers.gemspec +19 -0
- data/lib/gaku_helpers.rb +1 -0
- data/lib/gaku_helpers/railtie.rb +13 -0
- data/lib/gaku_helpers/view_helpers.rb +7 -0
- data/lib/gaku_helpers/view_helpers/link_helper.rb +224 -0
- data/locales/en.yml +10 -0
- metadata +73 -0
data/README.md
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
View Helpers for Twitter Bootstrap
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
Gem::Specification.new do |s|
|
3
|
+
s.platform = Gem::Platform::RUBY
|
4
|
+
s.name = 'gaku_helpers'
|
5
|
+
s.version = '0.0.1'
|
6
|
+
s.summary = 'Gaku View Helpers'
|
7
|
+
s.description = ''
|
8
|
+
s.required_ruby_version = '>= 1.8.7'
|
9
|
+
|
10
|
+
s.author = 'Vassil Kalkov'
|
11
|
+
s.email = 'vassilkalkov@gmail.com'
|
12
|
+
s.homepage = 'http://kalkov.github.io'
|
13
|
+
|
14
|
+
s.files = `git ls-files`.split("\n")
|
15
|
+
s.test_files = `git ls-files -- {spec}/*`.split("\n")
|
16
|
+
|
17
|
+
s.require_path = 'lib'
|
18
|
+
s.requirements << 'none'
|
19
|
+
end
|
data/lib/gaku_helpers.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require 'gaku_helpers/railtie' if defined?(Rails::Railtie)
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'gaku_helpers/view_helpers'
|
2
|
+
module GakuHelpers
|
3
|
+
class Railtie < Rails::Railtie
|
4
|
+
initializer "gaku_helpers" do
|
5
|
+
I18n.load_path << Dir[File.join(File.expand_path(File.dirname(__FILE__) + '/../../locales'), '*.yml')]
|
6
|
+
I18n.load_path.flatten!
|
7
|
+
end
|
8
|
+
|
9
|
+
initializer "gaku_helpers.view_helpers" do
|
10
|
+
ActionView::Base.send :include, ViewHelpers
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,224 @@
|
|
1
|
+
module GakuHelpers
|
2
|
+
module ViewHelpers
|
3
|
+
module LinkHelper
|
4
|
+
|
5
|
+
def link_to_add_fields(name, f, association)
|
6
|
+
new_object = f.object.send(association).klass.new
|
7
|
+
id = new_object.object_id
|
8
|
+
fields = f.fields_for(association, new_object, child_index: id) do |builder|
|
9
|
+
render(association.to_s.singularize + "_fields", f: builder)
|
10
|
+
end
|
11
|
+
link_to(("<i class='icon-plus icon-white'></i> " + name).html_safe, '#', :class => "btn btn-primary add_fields", data: {id: id, fields: fields.gsub("\n", "")})
|
12
|
+
end
|
13
|
+
|
14
|
+
def button(text, resource, options = {})
|
15
|
+
attributes = {:class => "btn mr-s"}.merge(options)
|
16
|
+
link_to text, resource, attributes
|
17
|
+
end
|
18
|
+
|
19
|
+
def primary_button(text, resource, options = {})
|
20
|
+
attributes = {:class => "btn btn-primary mr-s"}.merge(options)
|
21
|
+
link_to text, resource, attributes
|
22
|
+
end
|
23
|
+
|
24
|
+
def link_to_file(text, resource, options = {})
|
25
|
+
name = ("<i class='icon-white icon-file'></i> " + text).html_safe
|
26
|
+
attributes = {:class => "btn btn-primary"}.merge(options)
|
27
|
+
link_to name, resource, attributes
|
28
|
+
end
|
29
|
+
|
30
|
+
def link_to_upload_image(resource, options = {})
|
31
|
+
name = ("<i class='icon-camera'></i> " + t(:'gaku_helpers.picture.change')).html_safe
|
32
|
+
attributes = {:class => "btn span12 mr-s"}.merge(options)
|
33
|
+
link_to name, resource, attributes
|
34
|
+
end
|
35
|
+
|
36
|
+
def link_to_upload(options = {})
|
37
|
+
text = ("<i class='icon-upload'></i> " + t(:'gaku_helpers.picture.upload')).html_safe
|
38
|
+
attributes = {:class => "btn span12 mr-s"}.merge(options)
|
39
|
+
button_tag(content_tag('span', text), attributes)
|
40
|
+
end
|
41
|
+
|
42
|
+
def link_to_import(text, resource, options = {})
|
43
|
+
name = ('<i class="icon-upload"></i> '+ text).html_safe
|
44
|
+
attributes = {:class => 'mr-s btn'}.merge(options)
|
45
|
+
link_to name, resource, attributes
|
46
|
+
end
|
47
|
+
|
48
|
+
def link_to_export(text, resource, options = {})
|
49
|
+
name = ('<i class="icon-download"></i> '+ text).html_safe
|
50
|
+
attributes = {:class => 'mr-s btn'}.merge(options)
|
51
|
+
link_to name, resource, attributes
|
52
|
+
end
|
53
|
+
|
54
|
+
#needs id, because it is unique
|
55
|
+
def ajax_link_to_new(text, resource, options = {})
|
56
|
+
name = ("<i class='icon-white icon-plus'></i> " + text).html_safe
|
57
|
+
attributes = {
|
58
|
+
:remote => true,
|
59
|
+
:class => "btn btn-primary mr-s"
|
60
|
+
}.merge(options)
|
61
|
+
link_to name, resource, attributes
|
62
|
+
end
|
63
|
+
|
64
|
+
#needs id
|
65
|
+
def link_to_new(text, resource, options = {})
|
66
|
+
name = ("<i class='icon-white icon-plus'></i> " + text).html_safe
|
67
|
+
attributes = {:class => "btn btn-primary"}.merge(options)
|
68
|
+
link_to name, resource, attributes
|
69
|
+
end
|
70
|
+
|
71
|
+
#needs id
|
72
|
+
def submit_button(text, options={})
|
73
|
+
attributes = {:type => 'submit'}.merge(options)
|
74
|
+
button_tag(content_tag('span', text), attributes)
|
75
|
+
end
|
76
|
+
|
77
|
+
def ajax_link_to_recovery(resource, options = {})
|
78
|
+
name = content_tag(:i, nil, :class => 'icon-white icon-repeat')
|
79
|
+
attributes = {
|
80
|
+
:remote => true,
|
81
|
+
:class => "mr-xs btn btn-mini btn-warning recovery-link"
|
82
|
+
}.merge(options)
|
83
|
+
link_to name, resource, attributes
|
84
|
+
end
|
85
|
+
|
86
|
+
def ajax_link_to_delete(resource, options = {})
|
87
|
+
name = ("<i class='icon-white icon-remove'></i>").html_safe
|
88
|
+
attributes = {
|
89
|
+
:remote => true,
|
90
|
+
:method => :delete,
|
91
|
+
:data => { :confirm => t(:'gaku_helpers.are_you_sure') },
|
92
|
+
:class => 'btn btn-mini btn-danger delete-link'
|
93
|
+
}.merge(options)
|
94
|
+
link_to name, resource, attributes
|
95
|
+
end
|
96
|
+
|
97
|
+
def link_to_modal_delete(resource, options = {})
|
98
|
+
name = ("<i class='icon-white icon-trash'></i>").html_safe
|
99
|
+
attributes = {
|
100
|
+
:class => 'btn btn-danger modal-delete-link span12'
|
101
|
+
}.merge(options)
|
102
|
+
link_to name, resource, attributes
|
103
|
+
end
|
104
|
+
|
105
|
+
def ajax_soft_delete(resource, options = {})
|
106
|
+
name = ("<i class='icon-white icon-remove'></i>").html_safe
|
107
|
+
attributes = {
|
108
|
+
:remote => true,
|
109
|
+
:data => { :confirm => t(:'gaku_helpers.are_you_sure') },
|
110
|
+
:class => 'btn btn-mini btn-danger delete-link'
|
111
|
+
}.merge(options)
|
112
|
+
link_to name, resource, attributes
|
113
|
+
end
|
114
|
+
|
115
|
+
|
116
|
+
def primary_checkbox
|
117
|
+
("<i class='icon-white icon-ok'></i>").html_safe
|
118
|
+
end
|
119
|
+
|
120
|
+
def ajax_link_to_make_primary(resource, options = {})
|
121
|
+
attributes = {
|
122
|
+
:remote => true,
|
123
|
+
:method => :post,
|
124
|
+
:data => { :confirm => t(:'gaku_helpers.are_you_sure') },
|
125
|
+
}.merge(options)
|
126
|
+
link_to primary_checkbox, resource, attributes
|
127
|
+
end
|
128
|
+
|
129
|
+
def ajax_link_to_edit(resource, options = {})
|
130
|
+
name = ("<i class='icon-white icon-pencil'></i>").html_safe
|
131
|
+
attributes = {
|
132
|
+
:remote => true,
|
133
|
+
:class => "mr-xs btn btn-mini btn-warning edit-link"
|
134
|
+
}.merge(options)
|
135
|
+
link_to name, resource, attributes
|
136
|
+
end
|
137
|
+
|
138
|
+
|
139
|
+
# Edit button with only pencil image - without text
|
140
|
+
def link_to_edit(resource, options = {})
|
141
|
+
name = ("<i class='icon-white icon-edit'></i>").html_safe
|
142
|
+
attributes = {
|
143
|
+
:class => "mr-xs btn btn-mini btn-inverse edit-link",
|
144
|
+
}.merge(options)
|
145
|
+
link_to name, resource, attributes
|
146
|
+
end
|
147
|
+
|
148
|
+
# Edit button with text "Edit" and pencil image
|
149
|
+
def link_to_edit_with_text(resource, options = {})
|
150
|
+
name = ('<i class="icon-pencil"></i> '+t(:'gaku_helpers.edit')).html_safe
|
151
|
+
attributes = {:class => "span12 btn edit-link"}.merge(options)
|
152
|
+
link_to name, resource, attributes
|
153
|
+
end
|
154
|
+
|
155
|
+
def link_to_edit_with_custom_text(text, resource, options = {})
|
156
|
+
name = ('<i class="icon-pencil"></i> '+ text).html_safe
|
157
|
+
attributes = {:class => "span12 btn edit-link"}.merge(options)
|
158
|
+
link_to name, resource, attributes
|
159
|
+
end
|
160
|
+
|
161
|
+
def ajax_link_to_show(resource, options = {})
|
162
|
+
name = ("<i class='icon-white icon-eye-open'></i>").html_safe
|
163
|
+
attributes = {
|
164
|
+
:remote => true,
|
165
|
+
:class => "mr-xs btn btn-mini btn-info show-link"
|
166
|
+
}.merge(options)
|
167
|
+
link_to name, resource, attributes
|
168
|
+
end
|
169
|
+
|
170
|
+
def link_to_show(resource, options = {})
|
171
|
+
name = ("<i class='icon-white icon-eye-open'></i>").html_safe
|
172
|
+
attributes = {
|
173
|
+
:class => "mr-xs btn btn-mini btn-info show-link"
|
174
|
+
}.merge(options)
|
175
|
+
link_to name, resource, attributes
|
176
|
+
end
|
177
|
+
|
178
|
+
def link_to_cancel(options = {})
|
179
|
+
text = ('<i class="icon-white icon-ban-circle"></i> '+ t(:'gaku_helpers.cancel')).html_safe
|
180
|
+
attributes = {
|
181
|
+
:class => "span6 btn btn-warning cancel-link",
|
182
|
+
:'data-dismiss' => "modal"
|
183
|
+
}.merge(options)
|
184
|
+
link_to text, '#', attributes
|
185
|
+
end
|
186
|
+
|
187
|
+
def link_to_modal_cancel(options = {})
|
188
|
+
name = t(:'gaku_helpers.cancel')
|
189
|
+
attributes = {
|
190
|
+
:class => "span6 btn btn-warning cancel-link"
|
191
|
+
}.merge(options)
|
192
|
+
link_to name, '#', attributes
|
193
|
+
end
|
194
|
+
|
195
|
+
def ajax_link_to_back(resource, options = {})
|
196
|
+
name = ('<i class="icon-white icon-share-alt"></i> ' + t(:'gaku_helpers.back')).html_safe
|
197
|
+
attributes = {
|
198
|
+
:class => "span6 btn btn-warning back-link back-modal-link",
|
199
|
+
:remote => true
|
200
|
+
}.merge(options)
|
201
|
+
|
202
|
+
link_to name, resource, attributes
|
203
|
+
end
|
204
|
+
|
205
|
+
def link_to_back(resource, options = {})
|
206
|
+
name = ('<i class="icon-share-alt"></i> '+ t(:'gaku_helpers.back')).html_safe
|
207
|
+
attributes = {
|
208
|
+
:class => 'span6 btn back-link'
|
209
|
+
}.merge(options)
|
210
|
+
link_to name, resource, attributes
|
211
|
+
end
|
212
|
+
|
213
|
+
def submit_button(text, options={})
|
214
|
+
text = ('<i class="icon-white icon-ok-circle"></i> '+ text).html_safe
|
215
|
+
attributes = {
|
216
|
+
:type => 'submit',
|
217
|
+
:class => 'span6 btn btn-primary button'
|
218
|
+
}.merge(options)
|
219
|
+
button_tag(content_tag('span', text), attributes)
|
220
|
+
end
|
221
|
+
|
222
|
+
end
|
223
|
+
end
|
224
|
+
end
|
data/locales/en.yml
ADDED
metadata
ADDED
@@ -0,0 +1,73 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: gaku_helpers
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 29
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 1
|
10
|
+
version: 0.0.1
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Vassil Kalkov
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2013-04-22 00:00:00 Z
|
19
|
+
dependencies: []
|
20
|
+
|
21
|
+
description: ""
|
22
|
+
email: vassilkalkov@gmail.com
|
23
|
+
executables: []
|
24
|
+
|
25
|
+
extensions: []
|
26
|
+
|
27
|
+
extra_rdoc_files: []
|
28
|
+
|
29
|
+
files:
|
30
|
+
- README.md
|
31
|
+
- gaku_helpers.gemspec
|
32
|
+
- lib/gaku_helpers.rb
|
33
|
+
- lib/gaku_helpers/railtie.rb
|
34
|
+
- lib/gaku_helpers/view_helpers.rb
|
35
|
+
- lib/gaku_helpers/view_helpers/link_helper.rb
|
36
|
+
- locales/en.yml
|
37
|
+
homepage: http://kalkov.github.io
|
38
|
+
licenses: []
|
39
|
+
|
40
|
+
post_install_message:
|
41
|
+
rdoc_options: []
|
42
|
+
|
43
|
+
require_paths:
|
44
|
+
- lib
|
45
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
46
|
+
none: false
|
47
|
+
requirements:
|
48
|
+
- - ">="
|
49
|
+
- !ruby/object:Gem::Version
|
50
|
+
hash: 57
|
51
|
+
segments:
|
52
|
+
- 1
|
53
|
+
- 8
|
54
|
+
- 7
|
55
|
+
version: 1.8.7
|
56
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
hash: 3
|
62
|
+
segments:
|
63
|
+
- 0
|
64
|
+
version: "0"
|
65
|
+
requirements:
|
66
|
+
- none
|
67
|
+
rubyforge_project:
|
68
|
+
rubygems_version: 1.8.15
|
69
|
+
signing_key:
|
70
|
+
specification_version: 3
|
71
|
+
summary: Gaku View Helpers
|
72
|
+
test_files: []
|
73
|
+
|