beautiful_scaffold 0.3.5 → 2.0.0.pre

Sign up to get free protection for your applications and to get access to all the features.
Files changed (201) hide show
  1. checksums.yaml +7 -0
  2. data/.gitattributes +2 -0
  3. data/.gitignore +1 -0
  4. data/CHANGELOG +66 -1
  5. data/Gemfile +24 -17
  6. data/Gemfile.lock +209 -0
  7. data/README.rdoc +56 -44
  8. data/Rakefile +32 -0
  9. data/beautiful_scaffold.gemspec +8 -5
  10. data/lib/beautiful_scaffold/version.rb +3 -0
  11. data/lib/generators/beautiful_devisecancan_generator.rb +1 -1
  12. data/lib/generators/beautiful_jointable_generator.rb +40 -7
  13. data/lib/generators/beautiful_locale_generator.rb +102 -80
  14. data/lib/generators/beautiful_migration_generator.rb +12 -20
  15. data/lib/generators/beautiful_scaffold_common_methods.rb +88 -29
  16. data/lib/generators/beautiful_scaffold_generator.rb +166 -111
  17. data/lib/generators/templates/app/assets/javascripts/application-bs.js +11 -19
  18. data/lib/generators/templates/app/assets/javascripts/beautiful_scaffold.js +68 -78
  19. data/lib/generators/templates/app/assets/javascripts/bootstrap-datetimepicker-for-beautiful-scaffold.js +23 -42
  20. data/lib/generators/templates/app/assets/javascripts/fixed_menu.js +3 -1
  21. data/lib/generators/templates/app/assets/javascripts/jstree.min.js +6 -0
  22. data/lib/generators/templates/app/assets/stylesheets/application-bs.css +14 -12
  23. data/lib/generators/templates/app/assets/stylesheets/beautiful-scaffold.css.scss +36 -3
  24. data/lib/generators/templates/app/assets/stylesheets/themes/default-dark/32px.png +0 -0
  25. data/lib/generators/templates/app/assets/stylesheets/themes/default-dark/40px.png +0 -0
  26. data/lib/generators/templates/app/assets/stylesheets/themes/default-dark/style.scss +1146 -0
  27. data/lib/generators/templates/app/assets/stylesheets/themes/default-dark/throbber.gif +0 -0
  28. data/lib/generators/templates/app/assets/stylesheets/themes/default/32px.png +0 -0
  29. data/lib/generators/templates/app/assets/stylesheets/themes/default/40px.png +0 -0
  30. data/lib/generators/templates/app/assets/stylesheets/themes/default/style.scss +1102 -0
  31. data/lib/generators/templates/app/assets/stylesheets/themes/default/throbber.gif +0 -0
  32. data/lib/generators/templates/app/controllers/base.rb +32 -15
  33. data/lib/generators/templates/app/controllers/master_base.rb +55 -47
  34. data/lib/generators/templates/app/helpers/beautiful_helper.rb +104 -67
  35. data/lib/generators/templates/app/helpers/model_helper.rb +14 -3
  36. data/lib/generators/templates/app/initializers/link_renderer.rb +24 -17
  37. data/lib/generators/templates/app/initializers/ransack.rb +16 -0
  38. data/lib/generators/templates/app/locales/beautiful_scaffold.ja.yml +50 -0
  39. data/lib/generators/templates/app/models/concerns/fulltext_concern.rb +10 -10
  40. data/lib/generators/templates/app/views/_form.html.erb +5 -2
  41. data/lib/generators/templates/app/views/_form_habtm_tag.html.erb +6 -2
  42. data/lib/generators/templates/app/views/_mass_inserting.html.erb +40 -31
  43. data/lib/generators/templates/app/views/_modal_columns.html.erb +4 -4
  44. data/lib/generators/templates/app/views/edit.html.erb +1 -3
  45. data/lib/generators/templates/app/views/index.html.erb +84 -58
  46. data/lib/generators/templates/app/views/layout.html.erb +29 -47
  47. data/lib/generators/templates/app/views/new.html.erb +0 -2
  48. data/lib/generators/templates/app/views/partials/_forget_password.html.erb +2 -2
  49. data/lib/generators/templates/app/views/partials/_form_field.html.erb +7 -33
  50. data/lib/generators/templates/app/views/partials/_index_batch.html.erb +1 -1
  51. data/lib/generators/templates/app/views/partials/_index_column.html.erb +4 -6
  52. data/lib/generators/templates/app/views/partials/_index_header.html.erb +1 -1
  53. data/lib/generators/templates/app/views/partials/_index_search.html.erb +2 -4
  54. data/lib/generators/templates/app/views/partials/_index_search_default_fields.html.erb +1 -1
  55. data/lib/generators/templates/app/views/partials/_register_form.html.erb +2 -2
  56. data/lib/generators/templates/app/views/partials/_show_field.html.erb +3 -3
  57. data/lib/generators/templates/app/views/partials/_sign_in_form.html.erb +1 -1
  58. data/lib/generators/templates/app/views/partials/_sign_in_sign_out.html.erb +2 -2
  59. data/lib/generators/templates/app/views/show.html.erb +2 -2
  60. data/lib/generators/templates/app/views/treeview.html.erb +8 -5
  61. metadata +43 -188
  62. data/lib/generators/templates/app/assets/javascripts/bootstrap-datepicker.js +0 -834
  63. data/lib/generators/templates/app/assets/javascripts/bootstrap-timepicker.js +0 -797
  64. data/lib/generators/templates/app/assets/javascripts/jquery.jstree.js +0 -4551
  65. data/lib/generators/templates/app/assets/javascripts/jquery.livequery.js +0 -226
  66. data/lib/generators/templates/app/assets/stylesheets/bootstrap_and_overrides.css.less +0 -40
  67. data/lib/generators/templates/app/assets/stylesheets/datepicker.css +0 -224
  68. data/lib/generators/templates/app/assets/stylesheets/reset.css +0 -48
  69. data/lib/generators/templates/app/assets/stylesheets/themes/default/d.gif +0 -0
  70. data/lib/generators/templates/app/assets/stylesheets/themes/default/d.png +0 -0
  71. data/lib/generators/templates/app/assets/stylesheets/themes/default/style.css +0 -74
  72. data/lib/generators/templates/app/assets/stylesheets/timepicker.css +0 -89
  73. data/lib/generators/templates/markitup/jquery.markitup.js +0 -593
  74. data/lib/generators/templates/markitup/sets/bbcode/images/bold.png +0 -0
  75. data/lib/generators/templates/markitup/sets/bbcode/images/clean.png +0 -0
  76. data/lib/generators/templates/markitup/sets/bbcode/images/code.png +0 -0
  77. data/lib/generators/templates/markitup/sets/bbcode/images/fonts.png +0 -0
  78. data/lib/generators/templates/markitup/sets/bbcode/images/italic.png +0 -0
  79. data/lib/generators/templates/markitup/sets/bbcode/images/link.png +0 -0
  80. data/lib/generators/templates/markitup/sets/bbcode/images/list-bullet.png +0 -0
  81. data/lib/generators/templates/markitup/sets/bbcode/images/list-item.png +0 -0
  82. data/lib/generators/templates/markitup/sets/bbcode/images/list-numeric.png +0 -0
  83. data/lib/generators/templates/markitup/sets/bbcode/images/picture.png +0 -0
  84. data/lib/generators/templates/markitup/sets/bbcode/images/preview.png +0 -0
  85. data/lib/generators/templates/markitup/sets/bbcode/images/quotes.png +0 -0
  86. data/lib/generators/templates/markitup/sets/bbcode/images/stroke.png +0 -0
  87. data/lib/generators/templates/markitup/sets/bbcode/images/underline.png +0 -0
  88. data/lib/generators/templates/markitup/sets/bbcode/readme.txt +0 -11
  89. data/lib/generators/templates/markitup/sets/bbcode/set.js +0 -39
  90. data/lib/generators/templates/markitup/sets/bbcode/style.css +0 -47
  91. data/lib/generators/templates/markitup/sets/default/images/bold.png +0 -0
  92. data/lib/generators/templates/markitup/sets/default/images/clean.png +0 -0
  93. data/lib/generators/templates/markitup/sets/default/images/image.png +0 -0
  94. data/lib/generators/templates/markitup/sets/default/images/italic.png +0 -0
  95. data/lib/generators/templates/markitup/sets/default/images/link.png +0 -0
  96. data/lib/generators/templates/markitup/sets/default/images/list-bullet.png +0 -0
  97. data/lib/generators/templates/markitup/sets/default/images/list-numeric.png +0 -0
  98. data/lib/generators/templates/markitup/sets/default/images/picture.png +0 -0
  99. data/lib/generators/templates/markitup/sets/default/images/preview.png +0 -0
  100. data/lib/generators/templates/markitup/sets/default/images/stroke.png +0 -0
  101. data/lib/generators/templates/markitup/sets/default/set.js +0 -30
  102. data/lib/generators/templates/markitup/sets/default/style.css +0 -34
  103. data/lib/generators/templates/markitup/sets/html/images/bold.png +0 -0
  104. data/lib/generators/templates/markitup/sets/html/images/clean.png +0 -0
  105. data/lib/generators/templates/markitup/sets/html/images/h1.png +0 -0
  106. data/lib/generators/templates/markitup/sets/html/images/h2.png +0 -0
  107. data/lib/generators/templates/markitup/sets/html/images/h3.png +0 -0
  108. data/lib/generators/templates/markitup/sets/html/images/h4.png +0 -0
  109. data/lib/generators/templates/markitup/sets/html/images/h5.png +0 -0
  110. data/lib/generators/templates/markitup/sets/html/images/h6.png +0 -0
  111. data/lib/generators/templates/markitup/sets/html/images/image.png +0 -0
  112. data/lib/generators/templates/markitup/sets/html/images/italic.png +0 -0
  113. data/lib/generators/templates/markitup/sets/html/images/link.png +0 -0
  114. data/lib/generators/templates/markitup/sets/html/images/list-bullet.png +0 -0
  115. data/lib/generators/templates/markitup/sets/html/images/list-item.png +0 -0
  116. data/lib/generators/templates/markitup/sets/html/images/list-numeric.png +0 -0
  117. data/lib/generators/templates/markitup/sets/html/images/paragraph.png +0 -0
  118. data/lib/generators/templates/markitup/sets/html/images/picture.png +0 -0
  119. data/lib/generators/templates/markitup/sets/html/images/preview.png +0 -0
  120. data/lib/generators/templates/markitup/sets/html/images/stroke.png +0 -0
  121. data/lib/generators/templates/markitup/sets/html/readme.txt +0 -11
  122. data/lib/generators/templates/markitup/sets/html/set.js +0 -39
  123. data/lib/generators/templates/markitup/sets/html/style.css +0 -59
  124. data/lib/generators/templates/markitup/sets/markdown/images/bold.png +0 -0
  125. data/lib/generators/templates/markitup/sets/markdown/images/code.png +0 -0
  126. data/lib/generators/templates/markitup/sets/markdown/images/h1.png +0 -0
  127. data/lib/generators/templates/markitup/sets/markdown/images/h2.png +0 -0
  128. data/lib/generators/templates/markitup/sets/markdown/images/h3.png +0 -0
  129. data/lib/generators/templates/markitup/sets/markdown/images/h4.png +0 -0
  130. data/lib/generators/templates/markitup/sets/markdown/images/h5.png +0 -0
  131. data/lib/generators/templates/markitup/sets/markdown/images/h6.png +0 -0
  132. data/lib/generators/templates/markitup/sets/markdown/images/italic.png +0 -0
  133. data/lib/generators/templates/markitup/sets/markdown/images/link.png +0 -0
  134. data/lib/generators/templates/markitup/sets/markdown/images/list-bullet.png +0 -0
  135. data/lib/generators/templates/markitup/sets/markdown/images/list-numeric.png +0 -0
  136. data/lib/generators/templates/markitup/sets/markdown/images/picture.png +0 -0
  137. data/lib/generators/templates/markitup/sets/markdown/images/preview.png +0 -0
  138. data/lib/generators/templates/markitup/sets/markdown/images/quotes.png +0 -0
  139. data/lib/generators/templates/markitup/sets/markdown/readme.txt +0 -11
  140. data/lib/generators/templates/markitup/sets/markdown/set.js +0 -52
  141. data/lib/generators/templates/markitup/sets/markdown/style.css +0 -54
  142. data/lib/generators/templates/markitup/sets/textile/images/bold.png +0 -0
  143. data/lib/generators/templates/markitup/sets/textile/images/code.png +0 -0
  144. data/lib/generators/templates/markitup/sets/textile/images/h1.png +0 -0
  145. data/lib/generators/templates/markitup/sets/textile/images/h2.png +0 -0
  146. data/lib/generators/templates/markitup/sets/textile/images/h3.png +0 -0
  147. data/lib/generators/templates/markitup/sets/textile/images/h4.png +0 -0
  148. data/lib/generators/templates/markitup/sets/textile/images/h5.png +0 -0
  149. data/lib/generators/templates/markitup/sets/textile/images/h6.png +0 -0
  150. data/lib/generators/templates/markitup/sets/textile/images/italic.png +0 -0
  151. data/lib/generators/templates/markitup/sets/textile/images/link.png +0 -0
  152. data/lib/generators/templates/markitup/sets/textile/images/list-bullet.png +0 -0
  153. data/lib/generators/templates/markitup/sets/textile/images/list-numeric.png +0 -0
  154. data/lib/generators/templates/markitup/sets/textile/images/paragraph.png +0 -0
  155. data/lib/generators/templates/markitup/sets/textile/images/picture.png +0 -0
  156. data/lib/generators/templates/markitup/sets/textile/images/preview.png +0 -0
  157. data/lib/generators/templates/markitup/sets/textile/images/quotes.png +0 -0
  158. data/lib/generators/templates/markitup/sets/textile/images/stroke.png +0 -0
  159. data/lib/generators/templates/markitup/sets/textile/readme.txt +0 -11
  160. data/lib/generators/templates/markitup/sets/textile/set.js +0 -40
  161. data/lib/generators/templates/markitup/sets/textile/style.css +0 -60
  162. data/lib/generators/templates/markitup/sets/wiki/images/bold.png +0 -0
  163. data/lib/generators/templates/markitup/sets/wiki/images/code.png +0 -0
  164. data/lib/generators/templates/markitup/sets/wiki/images/h1.png +0 -0
  165. data/lib/generators/templates/markitup/sets/wiki/images/h2.png +0 -0
  166. data/lib/generators/templates/markitup/sets/wiki/images/h3.png +0 -0
  167. data/lib/generators/templates/markitup/sets/wiki/images/h4.png +0 -0
  168. data/lib/generators/templates/markitup/sets/wiki/images/h5.png +0 -0
  169. data/lib/generators/templates/markitup/sets/wiki/images/h6.png +0 -0
  170. data/lib/generators/templates/markitup/sets/wiki/images/italic.png +0 -0
  171. data/lib/generators/templates/markitup/sets/wiki/images/link.png +0 -0
  172. data/lib/generators/templates/markitup/sets/wiki/images/list-bullet.png +0 -0
  173. data/lib/generators/templates/markitup/sets/wiki/images/list-numeric.png +0 -0
  174. data/lib/generators/templates/markitup/sets/wiki/images/picture.png +0 -0
  175. data/lib/generators/templates/markitup/sets/wiki/images/preview.png +0 -0
  176. data/lib/generators/templates/markitup/sets/wiki/images/quotes.png +0 -0
  177. data/lib/generators/templates/markitup/sets/wiki/images/stroke.png +0 -0
  178. data/lib/generators/templates/markitup/sets/wiki/images/url.png +0 -0
  179. data/lib/generators/templates/markitup/sets/wiki/readme.txt +0 -11
  180. data/lib/generators/templates/markitup/sets/wiki/set.js +0 -37
  181. data/lib/generators/templates/markitup/sets/wiki/style.css +0 -57
  182. data/lib/generators/templates/markitup/skins/markitup/images/bg-container.png +0 -0
  183. data/lib/generators/templates/markitup/skins/markitup/images/bg-editor-bbcode.png +0 -0
  184. data/lib/generators/templates/markitup/skins/markitup/images/bg-editor-dotclear.png +0 -0
  185. data/lib/generators/templates/markitup/skins/markitup/images/bg-editor-html.png +0 -0
  186. data/lib/generators/templates/markitup/skins/markitup/images/bg-editor-json.png +0 -0
  187. data/lib/generators/templates/markitup/skins/markitup/images/bg-editor-markdown.png +0 -0
  188. data/lib/generators/templates/markitup/skins/markitup/images/bg-editor-textile.png +0 -0
  189. data/lib/generators/templates/markitup/skins/markitup/images/bg-editor-wiki.png +0 -0
  190. data/lib/generators/templates/markitup/skins/markitup/images/bg-editor-xml.png +0 -0
  191. data/lib/generators/templates/markitup/skins/markitup/images/bg-editor.png +0 -0
  192. data/lib/generators/templates/markitup/skins/markitup/images/handle.png +0 -0
  193. data/lib/generators/templates/markitup/skins/markitup/images/menu.png +0 -0
  194. data/lib/generators/templates/markitup/skins/markitup/images/submenu.png +0 -0
  195. data/lib/generators/templates/markitup/skins/markitup/style.css +0 -147
  196. data/lib/generators/templates/markitup/skins/simple/images/handle.png +0 -0
  197. data/lib/generators/templates/markitup/skins/simple/images/menu.png +0 -0
  198. data/lib/generators/templates/markitup/skins/simple/images/submenu.png +0 -0
  199. data/lib/generators/templates/markitup/skins/simple/style.css +0 -118
  200. data/lib/generators/templates/markitup/templates/preview.css +0 -5
  201. data/lib/generators/templates/markitup/templates/preview.html +0 -11
@@ -1,4 +1,15 @@
1
1
  # encoding : utf-8
2
- require "beautiful_helper"
3
- module <%= namespace_for_class %><%= model_pluralize.camelize %>Helper
4
- end
2
+ require "<%= engine_name %>beautiful_helper"
3
+ <%
4
+ if engine_name.blank?
5
+ b_module = e_module = space_indent = ""
6
+ else
7
+ b_module = "module #{engine_camel}"
8
+ e_module = "end"
9
+ space_indent = " "
10
+ end
11
+ %>
12
+ <%= b_module %>
13
+ <%= space_indent %>module <%= namespace_for_class %><%= model_pluralize.camelize %>Helper
14
+ <%= space_indent %>end
15
+ <%= e_module %>
@@ -1,37 +1,44 @@
1
+ require 'will_paginate/view_helpers/action_view'
2
+
1
3
  module WillPaginate
2
- module ViewHelpers
3
- # This class does the heavy lifting of actually building the pagination
4
- # links. It is used by +will_paginate+ helper internally.
5
- class LinkRenderer < LinkRendererBase
4
+ module ActionView
5
+ class BootstrapLinkRenderer < LinkRenderer
6
+
7
+ protected
6
8
 
7
- protected
8
-
9
9
  def page_number(page)
10
- unless page == current_page
11
- link(page, page, :rel => rel_value(page), :class => "btn btn-default")
10
+ is_current_page = (page == current_page)
11
+ temphtml = '<li class="page-item ' + (is_current_page ? 'active' : '') + '">'
12
+ unless is_current_page
13
+ temphtml += link(page, page, :rel => rel_value(page), :class => 'page-link')
12
14
  else
13
- tag(:a, page, :class => 'current active btn btn-default')
15
+ temphtml += tag(:a, page, :class => 'current active page-link')
14
16
  end
17
+ temphtml += '</li>'
18
+ temphtml
15
19
  end
16
-
20
+
17
21
  def gap
18
22
  text = @template.will_paginate_translate(:page_gap) { '&hellip;' }
19
23
  %(<a class="gap btn btn-default disabled">#{text}</a>)
20
24
  end
21
-
25
+
22
26
  def previous_or_next_page(page, text, classname)
27
+ temphtml = '<li class="page-item">'
23
28
  if page
24
- link(text, page, :class => classname + ' btn btn-default')
29
+ temphtml += link(text, page, :class => classname + ' page-link')
25
30
  else
26
- tag(:a, text, :class => classname + ' disabled btn btn-default')
31
+ temphtml += tag(:a, text, :class => classname + ' page-link')
27
32
  end
33
+ temphtml += '</li>'
34
+ temphtml
28
35
  end
29
-
36
+
30
37
  def html_container(html)
31
- html
38
+ '<ul class="pagination pagination-sm justify-content-end mb-0">' + html + '</ul>'
32
39
  end
33
-
34
- private
40
+
41
+ private
35
42
 
36
43
  def param_name
37
44
  @options[:param_name].to_s
@@ -0,0 +1,16 @@
1
+ Ransack.configure do |config|
2
+
3
+ # Change default search parameter key name.
4
+ # Default key name is :q
5
+ config.search_key = :q
6
+
7
+ # Raise errors if a query contains an unknown predicate or attribute.
8
+ # Default is true (do not raise error on unknown conditions).
9
+ config.ignore_unknown_conditions = false
10
+
11
+ # Globally display sort links without the order indicator arrow.
12
+ # Default is false (sort order indicators are displayed).
13
+ # This can also be configured individually in each sort link (see the README).
14
+ config.hide_sort_order_indicators = true
15
+
16
+ end
@@ -0,0 +1,50 @@
1
+ # encoding : utf-8
2
+ ja:
3
+ edit: "更新"
4
+ editing: "更新:"
5
+ update: "更新"
6
+ show: "表示"
7
+ showing: "表示:"
8
+ delete: "削除"
9
+ destroy: "削除"
10
+ are_you_sure: "続行していいですか?"
11
+ new: "新規作成"
12
+ create: "新規作成"
13
+ listing: "一覧:"
14
+ filter: "検索"
15
+ cancel: "キャンセル"
16
+ export: "エクスポート"
17
+ search: "検索"
18
+ sort: "Sort"
19
+ download: "ダウンロード"
20
+ "yes": "はい"
21
+ "no": "いいえ"
22
+ all: "すべて"
23
+ back: "戻る"
24
+ manage: "管理"
25
+ settrueforattr: "%{attr} を「はい」にする"
26
+ setfalseforattr: "%{attr} を「いいえ」にする"
27
+ processing: "実行中"
28
+ process: "実行"
29
+ batch: "一括処理"
30
+ create_success: "%{model} を作成しました。"
31
+ update_success: "%{model} を更新しました。"
32
+ greater_than: "以上"
33
+ smaller_than: "以下"
34
+ select_columns: "項目選択"
35
+ treeview: "ツリー表示"
36
+ profile: "プロファイル"
37
+ sign_out: "サイン・アウト"
38
+ sign_in: "サインイン"
39
+ sign_up: "サイン・アップ"
40
+ login: "ログイン"
41
+ remember_me: "ログインを維持する"
42
+ email: "メールアドレス"
43
+ password: "パスワード"
44
+ password_confirmation: "パスワード (確認)"
45
+ forgot_your_password: "パスワードを忘れましたか?"
46
+ send_me_reset_password_instructions: "パスワードのリセット方法を送る"
47
+ register: "登録"
48
+ search_and_filter: "検索条件"
49
+ more_options: "追加オプション..."
50
+
@@ -30,18 +30,18 @@ module FulltextConcern
30
30
 
31
31
  def htmlize(text, type)
32
32
  case type
33
- when 'bbcode' then
34
- require 'bb-ruby'
35
- html = text.bbcode_to_html
33
+ #when 'bbcode' then
34
+ # require 'bb-ruby'
35
+ # html = text.bbcode_to_html
36
36
  when 'html' then
37
37
  html = text
38
- when 'textile' then
39
- html = RedCloth.new(text).to_html
40
- when 'markdown' then
41
- require 'rdiscount'
42
- html = RDiscount.new(text).to_html
43
- when 'wiki' then
44
- html = WikiCloth::Parser.new({:data => text}).to_html
38
+ #when 'textile' then
39
+ # html = RedCloth.new(text).to_html
40
+ #when 'markdown' then
41
+ # require 'rdiscount'
42
+ # html = RDiscount.new(text).to_html
43
+ #when 'wiki' then
44
+ # html = WikiCloth::Parser.new({:data => text}).to_html
45
45
  else
46
46
  html
47
47
  end
@@ -1,6 +1,6 @@
1
1
  <%-
2
2
  strformfor = "@#{singular_table_name}"
3
- if not namespace_alone.blank? then
3
+ if !namespace_alone.blank?
4
4
  strformfor = "[:#{namespace_alone}, @#{singular_table_name} ]"
5
5
  end
6
6
  -%>
@@ -17,7 +17,10 @@ end
17
17
  <%% end %>
18
18
  <%= render_partial 'app/views/partials/_form_field.html.erb' %><!-- Beautiful_scaffold - AddField - Do not remove -->
19
19
  <div>
20
- <%%= f.submit :class => "btn btn-primary" %>
20
+ <%%= link_to <%= namespace_for_route %><%= plural_table_name %>_path, :class => "btn btn-light" do %>
21
+ <i class="fa fa-chevron-left"></i> <%%= t(:back, :default => "Back") %>
22
+ <%% end %>
23
+ <%%= f.submit :class => "btn btn-primary", :data => { :disable_with => t(:saving, :default => "Saving...") } %>
21
24
  </div>
22
25
  <%% end %>
23
26
 
@@ -6,17 +6,21 @@
6
6
  :linked_model_name => "tag",
7
7
  :plural_linked_model_name => "tags",
8
8
  :namespace_bs => "admin",
9
+ :engine_bs => "YOUR_ENGINE_OR_EMPTY_STRING",
9
10
  :field_to_search_for_linked_model => "name",
11
+ :attr_to_show => "caption",
10
12
  :f => f
11
13
  }
12
14
  # Example to put in a _form.html.erb
13
15
  %>
14
- <% path_namespace = '/' + namespace_bs if not namespace_bs.blank? %>
16
+ <% path_namespace = "/" %>
17
+ <% path_namespace += "#{engine_bs}/" if engine_bs.present? %>
18
+ <% path_namespace += "/#{namespace_bs}/" if namespace_bs.present? %>
15
19
 
16
20
  <div class="form-group">
17
21
  <%= f.label plural_linked_model_name.to_sym, t(plural_linked_model_name.to_sym, :default => plural_linked_model_name.capitalize), :class => "control-label" %>
18
22
  <div>
19
- <ul class="bs-tagit" id="<%= model_name %>_<%= linked_model_name %>_ids" name="<%= model_name %>[<%= linked_model_name %>_ids][]" data-url="<%= path_namespace %>/<%= plural_linked_model_name %>/search_and_filter.json" data-param="q[<%= field_to_search_for_linked_model %>_cont]" data-result="caption">
23
+ <ul class="bs-tagit" id="<%= model_name %>_<%= linked_model_name %>_ids" name="<%= model_name %>[<%= linked_model_name %>_ids][]" data-url="<%= path_namespace %><%= plural_linked_model_name %>/search_and_filter.json" data-param="q[<%= field_to_search_for_linked_model %>_cont]" data-result="<%= attr_to_show %>">
20
24
  <% begin %>
21
25
  <% for elt in model_class.send(plural_linked_model_name) %>
22
26
  <li data-value="<%= elt.id %>"><%= elt.caption %></li>
@@ -1,36 +1,45 @@
1
+ <% model = ("#{(engine.blank? ? '' : "#{engine.camelize}::")}#{model_name.camelize}").constantize %>
1
2
  <% formparams = [] %>
2
- <% if not namespace.blank? then %>
3
+ <% if !namespace.blank? %>
3
4
  <% formparams << namespace %>
4
5
  <% end %>
5
- <% formparams << model_name.camelize.constantize.new %>
6
- <%= form_for formparams, :method => :post, :html => { :class => "well well-small form-inline mass-inserting #{(params[:mass_inserting] ? 'setfocus' : '')}" } do |f| %>
7
- <%= hidden_field_tag :mass_inserting, true %>
8
- <% for col in model_columns %>
9
- <div <%= visible_column(model_name, col, 'inline') %> class="col-<%= col %>">
10
- <%=
11
- ar = model_name.camelize.constantize.columns_hash[col]
12
- if not ar.nil? then
13
- case ar.type
14
- when :integer then
15
- if col =~ /.*_id/ then
16
- f.collection_select((col).to_sym, col.camelize.constantize.all, :id, :caption, { :include_blank => true, :selected => (begin params[:q][col + "_eq"].to_i rescue '' end) }, {:class => "form-control"})
17
- else
18
- f.text_field(col.to_sym, :placeholder => t(i18n_translate_path(model_name, col)).capitalize, :class => "form-control")
19
- end
20
- when :boolean then
21
- (
22
- "<label class='bs-label-ib'>#{f.check_box(col.to_sym, {}, true, false)}#{t(i18n_translate_path(model_name, col)).capitalize}</label>".html_safe
23
- )
24
- else
25
- f.text_field(col.to_sym, :placeholder => t(i18n_translate_path(model_name, col)).capitalize, :class => "form-control")
26
- end
27
- else
28
- f.collection_select((col + '_id').to_sym, col.camelize.constantize.all, :id, :caption, { :include_blank => true, :selected => (begin params[:q][col + "_id_eq"].to_i rescue '' end) }, {:class => "form-control"})
29
- end
30
- %>
6
+ <% formparams << model.new %>
7
+ <div class="container-fluid mb-3">
8
+ <div class="row">
9
+ <div class="col-md">
10
+ <div class="card card-body bg-light">
11
+ <%= form_for formparams, :method => :post, :html => { :class => "form-inline mass-inserting #{(params[:mass_inserting] ? 'setfocus' : '')}" } do |f| %>
12
+ <%= hidden_field_tag :mass_inserting, true %>
13
+ <% for col in model_columns %>
14
+ <div <%= visible_column(model_name, col, 'inline') %> class="form-group mr-sm-2 col-<%= col %>">
15
+ <%=
16
+ ar = model.columns_hash[col]
17
+ if !ar.nil?
18
+ case ar.type
19
+ when :integer then
20
+ if col =~ /.*_id/
21
+ f.collection_select((col).to_sym, col.camelize.constantize.all, :id, :caption, { :include_blank => true, :selected => (begin params[:q]["#{col}_eq"].to_i rescue '' end) }, {:class => "form-control"})
22
+ else
23
+ f.text_field(col.to_sym, :placeholder => t(i18n_translate_path(model_name, col), default: "#{model_name}.#{col}").capitalize, :class => "form-control")
24
+ end
25
+ when :boolean then
26
+ (
27
+ "<label class='bs-label-ib'>#{f.check_box(col.to_sym, {}, true, false)}#{t(i18n_translate_path(model_name, col), default: "#{model_name}.#{col}").capitalize}</label>".html_safe
28
+ )
29
+ else
30
+ f.text_field(col.to_sym, :placeholder => t(i18n_translate_path(model_name, col), default: "#{model_name}.#{col}").capitalize, :class => "form-control")
31
+ end
32
+ else
33
+ f.collection_select(("#{false ? "#{engine}_" : ''}#{col}_id").to_sym, ("#{(engine.blank? ? '' : "#{engine.camelize}::")}#{col.camelize}").constantize.all, :id, :caption, { :include_blank => true, :selected => (begin params[:q]["#{col}_id_eq"].to_i rescue '' end) }, {:class => "form-control"})
34
+ end
35
+ %>
36
+ </div>
37
+ <% end %>
38
+ <div class="form-group">
39
+ <%= f.submit t(:create, :default => "Create"), :class => "btn btn-outline-secondary", :data => { :disable_with => t(:saving, :default => "Saving...") } %>
40
+ </div>
41
+ <% end %>
42
+ </div>
31
43
  </div>
32
- <% end %>
33
- <div style="display:inline;">
34
- <%= f.submit t(:create, :default => "Create"), :class => "btn btn-default" %>
35
44
  </div>
36
- <% end %>
45
+ </div>
@@ -2,19 +2,19 @@
2
2
  <div class="modal-dialog">
3
3
  <div class="modal-content">
4
4
  <div class="modal-header">
5
+ <h5 class="modal-title"><%= t(:select_columns, :default => "Select Columns") %></h5>
5
6
  <button type="button" class="close" data-dismiss="modal">×</button>
6
- <h3><%= t(:select_columns, :default => "Select Columns") %></h3>
7
7
  </div>
8
8
  <div class="modal-body">
9
9
  <% for field in model_columns %>
10
10
  <label class="checkbox">
11
- <input type="checkbox" name="field[]" value="<%= field %>" <%= "checked" if session[:fields][model_name].include?(field) %>> <%= t("app.models.#{model_name}.bs_attributes.#{field}", :default => field.capitalize) %>
11
+ <input type="checkbox" name="field[]" value="<%= field %>" <%= "checked" if session['fields'][model_name.to_s].include?(field) %>> <%= t("app.models.#{model_name}.bs_attributes.#{field}", :default => field.capitalize) %>
12
12
  </label><br />
13
13
  <% end %>
14
14
  </div>
15
15
  <div class="modal-footer">
16
- <button type="button" class="btn btn-primary" id="filter-columns" data-url="/<%= model_name %>/select_fields">Ok</button>
17
- <button type="button" class="btn btn-default" id="cancel-filter-columns"><%= t(:cancel, :default => "Cancel") %></button>
16
+ <button type="button" class="btn btn-primary" id="filter-columns" data-url="<%= select_fields_url(model_name) %>">Ok</button>
17
+ <button type="button" class="btn btn-light" id="cancel-filter-columns"><%= t(:cancel, :default => "Cancel") %></button>
18
18
  </div>
19
19
  </div>
20
20
  </div>
@@ -1,5 +1,3 @@
1
1
  <h2><%%= t(:editing, :default => 'Editing') %> <%%= <%= i18n_t_m(singular_table_name) %> %></h2>
2
2
 
3
- <%%= render 'form' %>
4
-
5
- <%%= link_to t(:back, :default => "Back"), <%= namespace_for_route %><%= plural_table_name %>_path, :class => "btn btn-default" %>
3
+ <%%= render 'form' %>
@@ -1,50 +1,75 @@
1
- <h2><%%= t(:listing, :default => "Listing") %> <%%= <%= i18n_t_m_p(singular_table_name) %> %></h2>
2
-
3
- <p>
4
- <%%= link_to '<i class="fa fa-plus"></i> '.html_safe + t(:new, :default => "New") + ' ' + <%= i18n_t_m(model) %>, new_<%= namespace_for_route %><%= singular_table_name %>_path, :class => "btn btn-default" %>
5
- <%% if <%= model_camelize %>.columns.map(&:name).include?("<%= model %>_id") then %>
6
- <%%= link_to '<i class="fa fa-folder-close"></i> '.html_safe + t(:treeview, :default => "Treeview") + ' ' + <%= i18n_t_m(model) %>, treeview_<%= namespace_for_route %><%= model_pluralize %>_path, :class => "btn btn-default" %>
7
- <%% end %>
8
- </p>
1
+ <div class="container-fluid">
2
+ <div class="row">
3
+ <div class="col-md">
4
+ <h2 class="title-index"><%%= t(:listing, :default => "Listing") %> <%%= <%= i18n_t_m_p(singular_table_name) %> %></h2>
5
+ <p>
6
+ <%%= link_to '<i class="fa fa-plus"></i> '.html_safe + t(:new, :default => "New") + ' ' + <%= i18n_t_m(model) %>, new_<%= namespace_for_route %><%= singular_table_name %>_path, :class => "btn btn-outline-secondary" %>
7
+ <%% if <%= model_with_engine_camelize %>.columns.map(&:name).include?("<%= model %>_id") %>
8
+ <%%= link_to '<i class="fa fa-folder-close"></i> '.html_safe + t(:treeview, :default => "Treeview") + ' ' + <%= i18n_t_m(model) %>, treeview_<%= namespace_for_route %><%= model_pluralize %>_path, :class => "btn btn-outline-secondary" %>
9
+ <%% end %>
10
+ </p>
11
+ </div>
12
+ </div>
13
+ </div>
9
14
 
10
- <%%= render :partial => "layouts/mass_inserting", :locals => { :namespace => '<%= namespace_alone %>', :model_name => '<%= model %>', :model_columns => [<%= attributes.map{ |e| "'#{e.name}'" }.join(',') %>] } %>
15
+ <%%= render :partial => "layouts/mass_inserting", :locals => { :engine => '<%= engine_opt %>', :namespace => '<%= namespace_alone %>', :model_name => '<%= model %>', :model_columns => [<%= attributes.map{ |e| "'#{e.name}'" }.join(',') %>] } %>
11
16
 
12
17
  <%%# Set your scopes below (string in array) %>
13
18
  <%% scopes = [] %>
14
- <%% if not scopes.blank? then %>
15
- <div class="btn-toolbar">
16
- <div class="btn-group">
17
- <%%= link_to "All (#{@<%= model %>_scope_for_scope.count})", <%= namespace_for_route %><%= plural_table_name %>_path(:scope => ""), :class => "btn btn-default #{((session[:scope][:<%= model %>].to_s == '') ? 'active' : '')}" %>
18
- <%% for scope in scopes %>
19
- <%%= link_to "#{scope} (#{@<%= model %>_scope_for_scope.send(scope).count})", <%= namespace_for_route %><%= plural_table_name %>_path(:scope => scope), :class => "btn btn-default #{((session[:scope][:<%= model %>].to_s == scope) ? 'active' : '')}" %>
20
- <%% end %>
19
+ <%% if !scopes.blank? %>
20
+ <div class="container-fluid mb-3" id="scopes-div" data-present-title="<%%= t(:help_scope, :default => "Filter by scope") %>" data-present-description="<%%= t(:help_scope_description, :default => "Filter by scope") %>" data-present-order="1">
21
+ <div class="row">
22
+ <div class="col-md btn-toolbar">
23
+ <div class="btn-group">
24
+ <%%= link_to "All (#{@<%= model %>_scope_for_scope.count})", <%= namespace_for_route %><%= plural_table_name %>_path(:scope => ""), :class => "btn btn-outline-secondary #{((session[:scope][:<%= model %>].to_s == '') ? 'active' : '')}" %>
25
+ <%% for scope in scopes %>
26
+ <%%= link_to "#{scope} (#{@<%= model %>_scope_for_scope.send(scope).count})", <%= namespace_for_route %><%= plural_table_name %>_path(:scope => scope), :class => "btn btn-outline-secondary #{((session[:scope][:<%= model %>].to_s == scope) ? 'active' : '')}" %>
27
+ <%% end %>
28
+ </div>
29
+ </div>
21
30
  </div>
22
31
  </div>
23
32
  <%% end %>
24
33
 
34
+ <div class="container-fluid">
25
35
  <div class="row">
26
36
  <div class="col-md-9">
27
- <%%= form_tag batch_<%= namespace_for_route %><%= plural_table_name %>_path, :class => "form-inline" do %>
28
- <div class="well well-small">
29
- <label class="control-label" for="select01"><%%= t(:batch, :default => "Batch") %></label>
37
+ <%%= form_tag batch_<%= namespace_for_route %><%= plural_table_name %>_path do %>
38
+ <div class="card card-body bg-light mb-3">
39
+ <div class="row">
40
+ <div class="form-inline col-md" id="batch-div" data-present-title="<%%= t(:help_batch, :default => "Batch processing") %>" data-present-description="<%%= t(:help_batch_description, :default => "Batch processing description") %>" data-present-order="2">
41
+ <label class="control-label mb-2 mr-sm-2" for="select01"><%%= t(:batch, :default => "Batch") %></label>
30
42
 
31
- <select id="select01" name="actionprocess" class="form-control">
32
- <option value="destroy"><%%= t(:destroy, :default => "Destroy") %></option>
33
- <%= render_partial 'app/views/partials/_index_batch.html.erb' %>
34
- <!-- Beautiful_scaffold - AddField - Batch - Do not remove -->
35
- </select>
36
- <button class="btn btn-default" type="submit"><i class="fa fa-ok"></i> <%%= t(:process, :default => "Process") %></button>
43
+ <select id="select01" name="actionprocess" class="custom-select mb-2 mr-sm-2">
44
+ <option value="destroy"><%%= t(:destroy, :default => "Destroy") %></option>
45
+ <option value="touch"><%%= t(:touch, :default => "Touch") %></option>
46
+ <%= render_partial 'app/views/partials/_index_batch.html.erb' %>
47
+ <!-- Beautiful_scaffold - AddField - Batch - Do not remove -->
48
+ </select>
49
+ <button class="btn btn-outline-secondary mb-2 mr-sm-2" type="submit"><i class="fa fa-ok"></i> <%%= t(:process, :default => "Process") %></button>
50
+ </div>
51
+ <div class="col-md">
52
+ <a class="btn btn-xs btn-light float-right" id="hide-search-btn">
53
+ <i class="fa fa-caret-right"></i>
54
+ <i class="fa fa-caret-right"></i>
55
+ </a>
56
+ <a class="btn btn-xs btn-light float-right" id="show-search-btn">
57
+ <i class="fa fa-caret-left"></i>
58
+ <i class="fa fa-caret-left"></i>
59
+ </a>
60
+ </div>
61
+ </div>
37
62
  </div>
38
63
 
39
- <%%= render :partial => "layouts/modal_columns", :locals => { :model_name => "<%= singular_table_name %>", :model_columns => [<%= (attributes.map{ |e| "'#{e.name}'" }.to_a + ["'created_at'", "'updated_at'"]).join(',') %>] } %>
64
+ <%%= render :partial => "layouts/modal_columns", :locals => { :engine_name => '<%= engine_opt %>', :model_name => "<%= singular_table_name %>", :model_columns => [<%= (attributes.map{ |e| "'#{e.name}'" }.to_a + ["'created_at'", "'updated_at'"]).join(',') %>] } %>
40
65
 
41
- <table class="table table-striped table-bordered table-condensed">
66
+ <table class="table table-striped table-bordered table-sm">
42
67
  <thead>
43
68
  <tr>
44
69
  <th class="ac">
45
70
  <a class="" data-toggle="modal" href="#modal-columns" title="<%%= t(:select_columns, :default => "Select Columns") %>" ><i class="fa fa-th-list"></i></a>
46
71
  </th>
47
- <th>
72
+ <th id="checkall-div" data-present-title="<%%= t(:help_checkall, :default => "Check all elements") %>" data-present-description="<%%= t(:help_checkall_description, :default => "Check all elements visible on the page") %>" data-present-order="3">
48
73
  <%%= check_box_tag :checkall, '' %>
49
74
  </th>
50
75
  <%= render_partial 'app/views/partials/_index_header.html.erb' %>
@@ -56,7 +81,7 @@
56
81
  <%%= sorting_header("<%= singular_table_name %>", "updated_at", "<%= namespace_alone %>") %>
57
82
  </th>
58
83
  <th colspan="3">
59
- <label class="checkbox">
84
+ <label class="checkbox mb-0" id="checkallall-div" data-present-title="<%%= t(:help_checkallall, :default => "Check all elements") %>" data-present-description="<%%= t(:help_checkallall_description, :default => "Check all elements, that match current filter even if they are not visible on the page") %>" data-present-order="4">
60
85
  <%%= check_box_tag :checkallelt, 'all' %>
61
86
  <%%= pluralize(@<%= singular_table_name %>_scope.count, <%= i18n_t_m(singular_table_name) %>, <%= i18n_t_m_p(singular_table_name) %>) %>
62
87
  </label>
@@ -76,7 +101,7 @@
76
101
  <%%= l(<%= singular_table_name %>.updated_at, :format => :long) %>
77
102
  </td>
78
103
  <td class="ac am"><%%= link_to '<i class="fa fa-search"></i>'.html_safe, <%= namespace_for_route %><%= singular_table_name %>_path(<%= singular_table_name %>), :title => t(:show, :default => "Show") %></td>
79
- <td class="ac am"><%%= link_to '<i class="fa fa-pencil"></i>'.html_safe, edit_<%= namespace_for_route %><%= singular_table_name %>_path(<%= singular_table_name %>), :title => t(:edit, :default => "Edit") %></td>
104
+ <td class="ac am"><%%= link_to '<i class="fa fa-edit"></i>'.html_safe, edit_<%= namespace_for_route %><%= singular_table_name %>_path(<%= singular_table_name %>), :title => t(:edit, :default => "Edit") %></td>
80
105
  <td class="ac am"><%%= link_to '<i class="fa fa-times"></i>'.html_safe, <%= namespace_for_route %><%= singular_table_name %>_path(<%= singular_table_name %>), :data => { :confirm => t(:are_you_sure, :default => "Are you sure?") }, :method => :delete, :title => t(:destroy, :default => "Destroy") %></td>
81
106
  </tr>
82
107
  <%% end %>
@@ -90,45 +115,46 @@
90
115
  :inner_window => 0,
91
116
  :outer_window => 0,
92
117
  :previous_label => t(:prev, :default => "Previous"),
93
- :next_label => t(:next, :default => "Next") %>
118
+ :next_label => t(:next, :default => "Next"),
119
+ :renderer => WillPaginate::ActionView::BootstrapLinkRenderer
120
+ %>
94
121
 
95
122
  </div>
96
- <div class="btn-group pull-right">
97
- <%%= link_to '<i class="fa fa-download"></i> CSV'.html_safe, <%= namespace_for_route %><%= plural_table_name %>_path(:format => :csv), :class => "btn btn-default" %>
98
- <%%= link_to '<i class="fa fa-download"></i> XML'.html_safe, <%= namespace_for_route %><%= plural_table_name %>_path(:format => :xml), :class => "btn btn-default" %>
99
- <%%= link_to '<i class="fa fa-download"></i> JSON'.html_safe, <%= namespace_for_route %><%= plural_table_name %>_path(:format => :json), :class => "btn btn-default" %>
100
- <%%= link_to '<i class="fa fa-download"></i> PDF'.html_safe, <%= namespace_for_route %><%= plural_table_name %>_path(:format => :pdf), :class => "btn btn-default" %>
123
+ <div class="btn-group btn-group-sm float-right">
124
+ <%%= link_to '<i class="fa fa-download"></i> CSV'.html_safe, <%= namespace_for_route %><%= plural_table_name %>_path(:format => :csv), :class => "btn btn-outline-secondary" %>
125
+ <%%= link_to '<i class="fa fa-download"></i> XML'.html_safe, <%= namespace_for_route %><%= plural_table_name %>_path(:format => :xml), :class => "btn btn-outline-secondary" %>
126
+ <%%= link_to '<i class="fa fa-download"></i> JSON'.html_safe, <%= namespace_for_route %><%= plural_table_name %>_path(:format => :json), :class => "btn btn-outline-secondary" %>
127
+ <%%= link_to '<i class="fa fa-download"></i> PDF'.html_safe, <%= namespace_for_route %><%= plural_table_name %>_path(:format => :pdf), :class => "btn btn-outline-secondary" %>
101
128
  </div>
102
129
  </div>
103
130
  <%% end %>
104
131
  </div>
105
132
  <div class="col-md-3">
106
- <%%= search_form_for @q, :url => <%= namespace_for_route + 'search_' + model_pluralize + '_path' %>, :html => { :class => "well well-small search-and-filter" }, :method => :post do |f| %>
107
-
108
- <h3><%%= t("search_and_filter", :default => "Search & filter") %></h3>
109
-
110
- <%= render_partial 'app/views/partials/_index_search.html.erb' %>
111
-
112
- <!-- Beautiful_scaffold - AddField - Search - Do not remove -->
113
-
114
- <div class="panel-group">
115
- <div class="panel panel-default">
116
- <div class="panel-heading">
117
- <a class="accordion-toggle" data-toggle="collapse-next">
118
- <%%= t(:more_options, :default => "More options...") %>
119
- </a>
120
- </div>
121
- <div class="panel-collapse collapse">
122
- <div class="panel-body">
123
- <%= render_partial 'app/views/partials/_index_search_default_fields.html.erb' %>
133
+ <%%= search_form_for @q, :url => <%= namespace_for_route + 'search_' + model_pluralize + '_path' %>, :html => { :class => "card bg-light mb-3 search-and-filter" }, :method => :post do |f| %>
134
+ <div class="card-header"><%%= t("search_and_filter", :default => "Search & filter") %></div>
135
+ <div class="card-body">
136
+ <div class="card-text">
137
+ <%= render_partial 'app/views/partials/_index_search.html.erb' %>
138
+ <!-- Beautiful_scaffold - AddField - Search - Do not remove -->
139
+ <div class="panel-group">
140
+ <div class="panel panel-default">
141
+ <div class="panel-heading">
142
+ <a class="badge badge-light accordion-toggle" data-toggle="collapse-next">
143
+ <%%= t(:more_options, :default => "More options...") %>
144
+ </a>
145
+ </div>
146
+ <div class="panel-collapse collapse">
147
+ <div class="panel-body">
148
+ <%= render_partial 'app/views/partials/_index_search_default_fields.html.erb' %>
149
+ </div>
150
+ </div>
124
151
  </div>
125
152
  </div>
153
+ <%%= f.submit t(:filter, :default => "Filter"), :class => "btn btn-primary btn-sm btn-block" %>
154
+ <%%= link_to t(:cancel, :default => "Cancel"), <%= namespace_for_route %><%= model_pluralize %>_path(:nosearch => "ok"), :class => "btn btn-light btn-sm btn-block" %>
126
155
  </div>
127
156
  </div>
128
-
129
-
130
- <%%= f.submit t(:filter, :default => "Filter"), :class => "btn btn-primary" %>
131
- <%%= link_to t(:cancel, :default => "Cancel"), <%= namespace_for_route %><%= model_pluralize %>_path(:nosearch => "ok"), :class => "btn btn-default" %>
132
157
  <%% end %>
133
158
  </div>
134
159
  </div>
160
+ </div>