wallaby 4.1.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (209) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/Rakefile +29 -0
  4. data/app/assets/javascripts/wallaby/application.js +15 -0
  5. data/app/assets/javascripts/wallaby/form.js +8 -0
  6. data/app/assets/stylesheets/wallaby/application.scss +51 -0
  7. data/app/assets/stylesheets/wallaby/base/_functions.scss +0 -0
  8. data/app/assets/stylesheets/wallaby/base/_layout.scss +14 -0
  9. data/app/assets/stylesheets/wallaby/base/_mixins.scss +0 -0
  10. data/app/assets/stylesheets/wallaby/base/_normalize.scss +0 -0
  11. data/app/assets/stylesheets/wallaby/base/_reset.scss +0 -0
  12. data/app/assets/stylesheets/wallaby/base/_vars.scss +5 -0
  13. data/app/assets/stylesheets/wallaby/components/_forms.scss +53 -0
  14. data/app/assets/stylesheets/wallaby/components/_nav.scss +19 -0
  15. data/app/assets/stylesheets/wallaby/components/_pagination.scss +105 -0
  16. data/app/assets/stylesheets/wallaby/components/_tables.scss +78 -0
  17. data/app/assets/stylesheets/wallaby/components/_text.scss +11 -0
  18. data/app/assets/stylesheets/wallaby/form.scss +11 -0
  19. data/app/assets/stylesheets/wallaby/summernote.scss.erb +7 -0
  20. data/app/controllers/wallaby/application_controller.rb +21 -0
  21. data/app/controllers/wallaby/core_controller.rb +28 -0
  22. data/app/controllers/wallaby/resources_controller.rb +134 -0
  23. data/app/controllers/wallaby/secure_controller.rb +42 -0
  24. data/app/routes/wallaby/resources_router.rb +52 -0
  25. data/app/security/ability.rb +33 -0
  26. data/app/views/layouts/wallaby/_footer.html.erb +2 -0
  27. data/app/views/layouts/wallaby/_header.html.erb +57 -0
  28. data/app/views/layouts/wallaby/_navs.html.erb +1 -0
  29. data/app/views/layouts/wallaby/application.html.erb +22 -0
  30. data/app/views/layouts/wallaby/error.html.erb +20 -0
  31. data/app/views/wallaby/core/home.html.erb +5 -0
  32. data/app/views/wallaby/errors/access_denied.html.erb +1 -0
  33. data/app/views/wallaby/errors/not_authenticated.html.erb +1 -0
  34. data/app/views/wallaby/errors/not_found.html.erb +6 -0
  35. data/app/views/wallaby/errors/unprocessable_entity.erb +1 -0
  36. data/app/views/wallaby/resources/_form.html.erb +12 -0
  37. data/app/views/wallaby/resources/_index_actions.html.erb +1 -0
  38. data/app/views/wallaby/resources/_resource_actions.html.erb +3 -0
  39. data/app/views/wallaby/resources/edit.html.erb +14 -0
  40. data/app/views/wallaby/resources/form/_belongs_to.html.erb +21 -0
  41. data/app/views/wallaby/resources/form/_bigint.html.erb +9 -0
  42. data/app/views/wallaby/resources/form/_binary.html.erb +12 -0
  43. data/app/views/wallaby/resources/form/_bit.html.erb +9 -0
  44. data/app/views/wallaby/resources/form/_bit_varying.html.erb +9 -0
  45. data/app/views/wallaby/resources/form/_boolean.html.erb +14 -0
  46. data/app/views/wallaby/resources/form/_cidr.html.erb +9 -0
  47. data/app/views/wallaby/resources/form/_citext.html.erb +21 -0
  48. data/app/views/wallaby/resources/form/_color.html.erb +20 -0
  49. data/app/views/wallaby/resources/form/_date.html.erb +29 -0
  50. data/app/views/wallaby/resources/form/_daterange.html.erb +37 -0
  51. data/app/views/wallaby/resources/form/_datetime.html.erb +30 -0
  52. data/app/views/wallaby/resources/form/_decimal.html.erb +9 -0
  53. data/app/views/wallaby/resources/form/_email.html.erb +5 -0
  54. data/app/views/wallaby/resources/form/_float.html.erb +9 -0
  55. data/app/views/wallaby/resources/form/_has_and_belongs_to_many.html.erb +13 -0
  56. data/app/views/wallaby/resources/form/_has_many.html.erb +13 -0
  57. data/app/views/wallaby/resources/form/_has_one.html.erb +7 -0
  58. data/app/views/wallaby/resources/form/_hstore.html.erb +25 -0
  59. data/app/views/wallaby/resources/form/_inet.html.erb +9 -0
  60. data/app/views/wallaby/resources/form/_int4range.html.erb +18 -0
  61. data/app/views/wallaby/resources/form/_int8range.html.erb +18 -0
  62. data/app/views/wallaby/resources/form/_integer.html.erb +9 -0
  63. data/app/views/wallaby/resources/form/_json.html.erb +23 -0
  64. data/app/views/wallaby/resources/form/_jsonb.html.erb +23 -0
  65. data/app/views/wallaby/resources/form/_ltree.html.erb +5 -0
  66. data/app/views/wallaby/resources/form/_macaddr.html.erb +9 -0
  67. data/app/views/wallaby/resources/form/_money.html.erb +12 -0
  68. data/app/views/wallaby/resources/form/_numrange.html.erb +18 -0
  69. data/app/views/wallaby/resources/form/_password.html.erb +5 -0
  70. data/app/views/wallaby/resources/form/_point.html.erb +18 -0
  71. data/app/views/wallaby/resources/form/_string.html.erb +5 -0
  72. data/app/views/wallaby/resources/form/_text.html.erb +21 -0
  73. data/app/views/wallaby/resources/form/_time.html.erb +29 -0
  74. data/app/views/wallaby/resources/form/_tsrange.html.erb +38 -0
  75. data/app/views/wallaby/resources/form/_tstzrange.html.erb +38 -0
  76. data/app/views/wallaby/resources/form/_tsvector.html.erb +5 -0
  77. data/app/views/wallaby/resources/form/_uuid.html.erb +9 -0
  78. data/app/views/wallaby/resources/form/_xml.html.erb +23 -0
  79. data/app/views/wallaby/resources/index/_belongs_to.html.erb +1 -0
  80. data/app/views/wallaby/resources/index/_bigint.html.erb +1 -0
  81. data/app/views/wallaby/resources/index/_binary.html.erb +1 -0
  82. data/app/views/wallaby/resources/index/_bit.html.erb +5 -0
  83. data/app/views/wallaby/resources/index/_bit_varying.html.erb +5 -0
  84. data/app/views/wallaby/resources/index/_boolean.html.erb +5 -0
  85. data/app/views/wallaby/resources/index/_cidr.html.erb +6 -0
  86. data/app/views/wallaby/resources/index/_citext.html.erb +12 -0
  87. data/app/views/wallaby/resources/index/_color.html.erb +5 -0
  88. data/app/views/wallaby/resources/index/_date.html.erb +7 -0
  89. data/app/views/wallaby/resources/index/_daterange.html.erb +8 -0
  90. data/app/views/wallaby/resources/index/_datetime.html.erb +7 -0
  91. data/app/views/wallaby/resources/index/_decimal.html.erb +1 -0
  92. data/app/views/wallaby/resources/index/_email.html.erb +1 -0
  93. data/app/views/wallaby/resources/index/_float.html.erb +1 -0
  94. data/app/views/wallaby/resources/index/_has_and_belongs_to_many.html.erb +11 -0
  95. data/app/views/wallaby/resources/index/_has_many.html.erb +11 -0
  96. data/app/views/wallaby/resources/index/_has_one.html.erb +1 -0
  97. data/app/views/wallaby/resources/index/_hstore.html.erb +12 -0
  98. data/app/views/wallaby/resources/index/_inet.html.erb +6 -0
  99. data/app/views/wallaby/resources/index/_int4range.html.erb +7 -0
  100. data/app/views/wallaby/resources/index/_int8range.html.erb +7 -0
  101. data/app/views/wallaby/resources/index/_integer.html.erb +1 -0
  102. data/app/views/wallaby/resources/index/_json.html.erb +12 -0
  103. data/app/views/wallaby/resources/index/_jsonb.html.erb +12 -0
  104. data/app/views/wallaby/resources/index/_ltree.html.erb +12 -0
  105. data/app/views/wallaby/resources/index/_macaddr.html.erb +5 -0
  106. data/app/views/wallaby/resources/index/_money.html.erb +1 -0
  107. data/app/views/wallaby/resources/index/_numrange.html.erb +7 -0
  108. data/app/views/wallaby/resources/index/_point.html.erb +6 -0
  109. data/app/views/wallaby/resources/index/_string.html.erb +12 -0
  110. data/app/views/wallaby/resources/index/_text.html.erb +12 -0
  111. data/app/views/wallaby/resources/index/_time.html.erb +6 -0
  112. data/app/views/wallaby/resources/index/_tsrange.html.erb +8 -0
  113. data/app/views/wallaby/resources/index/_tstzrange.html.erb +8 -0
  114. data/app/views/wallaby/resources/index/_tsvector.html.erb +12 -0
  115. data/app/views/wallaby/resources/index/_uuid.html.erb +12 -0
  116. data/app/views/wallaby/resources/index/_xml.html.erb +12 -0
  117. data/app/views/wallaby/resources/index.html.erb +66 -0
  118. data/app/views/wallaby/resources/new.html.erb +14 -0
  119. data/app/views/wallaby/resources/shared/_resource_nav.html.erb +29 -0
  120. data/app/views/wallaby/resources/show/_belongs_to.html.erb +7 -0
  121. data/app/views/wallaby/resources/show/_bigint.html.erb +1 -0
  122. data/app/views/wallaby/resources/show/_binary.html.erb +1 -0
  123. data/app/views/wallaby/resources/show/_bit.html.erb +5 -0
  124. data/app/views/wallaby/resources/show/_bit_varying.html.erb +5 -0
  125. data/app/views/wallaby/resources/show/_boolean.html.erb +5 -0
  126. data/app/views/wallaby/resources/show/_cidr.html.erb +6 -0
  127. data/app/views/wallaby/resources/show/_citext.html.erb +1 -0
  128. data/app/views/wallaby/resources/show/_color.html.erb +5 -0
  129. data/app/views/wallaby/resources/show/_date.html.erb +7 -0
  130. data/app/views/wallaby/resources/show/_daterange.html.erb +7 -0
  131. data/app/views/wallaby/resources/show/_datetime.html.erb +6 -0
  132. data/app/views/wallaby/resources/show/_decimal.html.erb +1 -0
  133. data/app/views/wallaby/resources/show/_email.html.erb +1 -0
  134. data/app/views/wallaby/resources/show/_float.html.erb +1 -0
  135. data/app/views/wallaby/resources/show/_has_and_belongs_to_many.html.erb +5 -0
  136. data/app/views/wallaby/resources/show/_has_many.html.erb +5 -0
  137. data/app/views/wallaby/resources/show/_has_one.html.erb +1 -0
  138. data/app/views/wallaby/resources/show/_hstore.html.erb +5 -0
  139. data/app/views/wallaby/resources/show/_inet.html.erb +6 -0
  140. data/app/views/wallaby/resources/show/_int4range.html.erb +7 -0
  141. data/app/views/wallaby/resources/show/_int8range.html.erb +7 -0
  142. data/app/views/wallaby/resources/show/_integer.html.erb +1 -0
  143. data/app/views/wallaby/resources/show/_json.html.erb +5 -0
  144. data/app/views/wallaby/resources/show/_jsonb.html.erb +5 -0
  145. data/app/views/wallaby/resources/show/_ltree.html.erb +1 -0
  146. data/app/views/wallaby/resources/show/_macaddr.html.erb +5 -0
  147. data/app/views/wallaby/resources/show/_money.html.erb +1 -0
  148. data/app/views/wallaby/resources/show/_numrange.html.erb +7 -0
  149. data/app/views/wallaby/resources/show/_point.html.erb +6 -0
  150. data/app/views/wallaby/resources/show/_string.html.erb +1 -0
  151. data/app/views/wallaby/resources/show/_text.html.erb +1 -0
  152. data/app/views/wallaby/resources/show/_time.html.erb +6 -0
  153. data/app/views/wallaby/resources/show/_tsrange.html.erb +7 -0
  154. data/app/views/wallaby/resources/show/_tstzrange.html.erb +7 -0
  155. data/app/views/wallaby/resources/show/_tsvector.html.erb +1 -0
  156. data/app/views/wallaby/resources/show/_uuid.html.erb +5 -0
  157. data/app/views/wallaby/resources/show/_xml.html.erb +5 -0
  158. data/app/views/wallaby/resources/show.html.erb +31 -0
  159. data/app/views/wallaby/shared/_flash_messages.html.erb +13 -0
  160. data/config/locales/en.yml +29 -0
  161. data/config/routes.rb +34 -0
  162. data/lib/adaptors/wallaby/active_record/model_decorator/fields_builder.rb +105 -0
  163. data/lib/adaptors/wallaby/active_record/model_decorator/title_field_finder.rb +18 -0
  164. data/lib/adaptors/wallaby/active_record/model_decorator.rb +81 -0
  165. data/lib/adaptors/wallaby/active_record/model_finder.rb +12 -0
  166. data/lib/adaptors/wallaby/active_record/model_operator/normalizer.rb +44 -0
  167. data/lib/adaptors/wallaby/active_record/model_operator/permitter.rb +50 -0
  168. data/lib/adaptors/wallaby/active_record/model_operator/querier.rb +47 -0
  169. data/lib/adaptors/wallaby/active_record/model_operator/validator.rb +16 -0
  170. data/lib/adaptors/wallaby/active_record/model_operator.rb +82 -0
  171. data/lib/adaptors/wallaby/active_record.rb +2 -0
  172. data/lib/decorators/wallaby/resource_decorator.rb +78 -0
  173. data/lib/errors/wallaby/deprecated.rb +4 -0
  174. data/lib/errors/wallaby/general_error.rb +4 -0
  175. data/lib/errors/wallaby/invalid_error.rb +4 -0
  176. data/lib/errors/wallaby/model_not_found.rb +4 -0
  177. data/lib/errors/wallaby/not_authenticated.rb +4 -0
  178. data/lib/errors/wallaby/not_implemented.rb +4 -0
  179. data/lib/errors/wallaby/operation_not_found.rb +4 -0
  180. data/lib/errors/wallaby/resource_not_found.rb +4 -0
  181. data/lib/forms/wallaby/form_builder.rb +30 -0
  182. data/lib/handlers/wallaby/cached_compiled_erb.rb +14 -0
  183. data/lib/helpers/wallaby/application_helper.rb +30 -0
  184. data/lib/helpers/wallaby/core_helper.rb +50 -0
  185. data/lib/helpers/wallaby/form_helper.rb +21 -0
  186. data/lib/helpers/wallaby/links_helper.rb +83 -0
  187. data/lib/helpers/wallaby/paginatable_helper.rb +9 -0
  188. data/lib/helpers/wallaby/resources_helper.rb +55 -0
  189. data/lib/helpers/wallaby/secure_helper.rb +25 -0
  190. data/lib/helpers/wallaby/sorting_helper.rb +43 -0
  191. data/lib/helpers/wallaby/styling_helper.rb +57 -0
  192. data/lib/interfaces/wallaby/mode.rb +18 -0
  193. data/lib/interfaces/wallaby/model_decorator.rb +58 -0
  194. data/lib/interfaces/wallaby/model_finder.rb +5 -0
  195. data/lib/interfaces/wallaby/model_operator.rb +31 -0
  196. data/lib/services/wallaby/decorator_finder.rb +16 -0
  197. data/lib/services/wallaby/lookup_context_wrapper.rb +40 -0
  198. data/lib/services/wallaby/map.rb +53 -0
  199. data/lib/services/wallaby/model_servicer.rb +38 -0
  200. data/lib/services/wallaby/servicer_finder.rb +5 -0
  201. data/lib/tasks/wallaby_tasks.rake +4 -0
  202. data/lib/utils/wallaby/utils.rb +31 -0
  203. data/lib/wallaby/configuration/models.rb +17 -0
  204. data/lib/wallaby/configuration/security.rb +30 -0
  205. data/lib/wallaby/configuration.rb +49 -0
  206. data/lib/wallaby/engine.rb +89 -0
  207. data/lib/wallaby/version.rb +3 -0
  208. data/lib/wallaby.rb +5 -0
  209. metadata +459 -0
@@ -0,0 +1,9 @@
1
+ <div class="form-group <%= form.error_class field_name %>">
2
+ <%= form.label field_name, metadata[:label] %>
3
+ <div class="row">
4
+ <div class="col-xs-6 col-sm-3">
5
+ <%= form.number_field field_name, class: 'form-control' %>
6
+ </div>
7
+ </div>
8
+ <%= form.error_messages field_name %>
9
+ </div>
@@ -0,0 +1,23 @@
1
+ <div class="form-group <%= form.error_class field_name %>">
2
+ <%= form.label field_name, metadata[:label] %>
3
+ <%= form.text_area field_name, value: (JSON.pretty_generate(value) rescue nil), class: 'form-control', data: { init: 'codemirror', mode: 'javascript' } %>
4
+ <%= form.error_messages field_name %>
5
+ </div>
6
+
7
+ <% unless @codemirror_init %>
8
+ <% @codemirror_init = true %>
9
+ <% content_for :custom_javascript do %>
10
+ <% javascript_tag do %>
11
+ jQuery(function($) {
12
+ $('textarea[data-init="codemirror"]').each(function (index, element) {
13
+ CodeMirror.fromTextArea(element, {
14
+ mode: $(element).data('mode'),
15
+ theme: "default",
16
+ lineNumbers: true
17
+ });
18
+
19
+ })
20
+ })
21
+ <% end %>
22
+ <% end %>
23
+ <% end %>
@@ -0,0 +1,23 @@
1
+ <div class="form-group <%= form.error_class field_name %>">
2
+ <%= form.label field_name, metadata[:label] %>
3
+ <%= form.text_area field_name, value: (JSON.pretty_generate(value) rescue nil), class: 'form-control', data: { init: 'codemirror', mode: 'javascript' } %>
4
+ <%= form.error_messages field_name %>
5
+ </div>
6
+
7
+ <% unless @codemirror_init %>
8
+ <% @codemirror_init = true %>
9
+ <% content_for :custom_javascript do %>
10
+ <% javascript_tag do %>
11
+ jQuery(function($) {
12
+ $('textarea[data-init="codemirror"]').each(function (index, element) {
13
+ CodeMirror.fromTextArea(element, {
14
+ mode: $(element).data('mode'),
15
+ theme: "default",
16
+ lineNumbers: true
17
+ });
18
+
19
+ })
20
+ })
21
+ <% end %>
22
+ <% end %>
23
+ <% end %>
@@ -0,0 +1,5 @@
1
+ <div class="form-group <%= form.error_class field_name %>">
2
+ <%= form.label field_name, metadata[:label] %>
3
+ <%= form.text_field field_name, class: 'form-control' %>
4
+ <%= form.error_messages field_name %>
5
+ </div>
@@ -0,0 +1,9 @@
1
+ <div class="form-group <%= form.error_class field_name %>">
2
+ <%= form.label field_name, metadata[:label] %>
3
+ <div class="row">
4
+ <div class="col-xs-6 col-sm-3">
5
+ <%= form.text_field field_name, class: 'form-control' %>
6
+ </div>
7
+ </div>
8
+ <%= form.error_messages field_name %>
9
+ </div>
@@ -0,0 +1,12 @@
1
+ <div class="form-group <%= form.error_class field_name %>">
2
+ <%= form.label field_name, metadata[:label] %>
3
+ <div class="row">
4
+ <div class="col-xs-6 col-sm-3">
5
+ <div class="input-group">
6
+ <span class="input-group-addon">$</span>
7
+ <%= form.text_field field_name, class: 'form-control' %>
8
+ </div>
9
+ </div>
10
+ </div>
11
+ <%= form.error_messages field_name %>
12
+ </div>
@@ -0,0 +1,18 @@
1
+ <div class="form-group <%= form.error_class field_name %>">
2
+ <%= form.label field_name, metadata[:label] %>
3
+ <div class="row">
4
+ <div class="col-xs-6 col-sm-3">
5
+ <div class="input-group">
6
+ <span class="input-group-addon">F</span>
7
+ <%= form.number_field field_name, value: value.try(:first), multiple: true, class: 'form-control' %>
8
+ </div>
9
+ </div>
10
+ <div class="col-xs-6 col-sm-3">
11
+ <div class="input-group">
12
+ <span class="input-group-addon">T</span>
13
+ <%= form.number_field field_name, value: value.try(:last), multiple: true, class: 'form-control' %>
14
+ </div>
15
+ </div>
16
+ </div>
17
+ <%= form.error_messages field_name %>
18
+ </div>
@@ -0,0 +1,5 @@
1
+ <div class="form-group <%= form.error_class field_name %>">
2
+ <%= form.label field_name, metadata[:label] %>
3
+ <%= form.password_field field_name, class: 'form-control', value: '' %>
4
+ <%= form.error_messages field_name %>
5
+ </div>
@@ -0,0 +1,18 @@
1
+ <div class="form-group <%= form.error_class field_name %>">
2
+ <%= form.label field_name, metadata[:label] %>
3
+ <div class="row">
4
+ <div class="col-xs-6 col-sm-3">
5
+ <div class="input-group">
6
+ <span class="input-group-addon">X</span>
7
+ <%= form.number_field field_name, value: value.try(:first), multiple: true, class: 'form-control' %>
8
+ </div>
9
+ </div>
10
+ <div class="col-xs-6 col-sm-3">
11
+ <div class="input-group">
12
+ <span class="input-group-addon">Y</span>
13
+ <%= form.number_field field_name, value: value.try(:last), multiple: true, class: 'form-control' %>
14
+ </div>
15
+ </div>
16
+ </div>
17
+ <%= form.error_messages field_name %>
18
+ </div>
@@ -0,0 +1,5 @@
1
+ <div class="form-group <%= form.error_class field_name %>">
2
+ <%= form.label field_name, metadata[:label] %>
3
+ <%= form.text_field field_name, class: 'form-control' %>
4
+ <%= form.error_messages field_name %>
5
+ </div>
@@ -0,0 +1,21 @@
1
+ <div class="form-group <%= form.error_class field_name %>">
2
+ <%= form.label field_name, metadata[:label] %>
3
+ <%= form.text_area field_name, class: 'form-control', data: { init: 'summernote' } %>
4
+ <%= form.error_messages field_name %>
5
+ </div>
6
+
7
+ <% unless @summernote_init %>
8
+ <% @summernote_init = true %>
9
+ <% content_for :custom_javascript do %>
10
+ <% javascript_tag do %>
11
+ jQuery(function($) {
12
+ $('textarea[data-init="summernote"]').summernote({
13
+ height: 150,
14
+ codemirror: { // codemirror options
15
+ theme: 'monokai'
16
+ }
17
+ })
18
+ })
19
+ <% end %>
20
+ <% end %>
21
+ <% end %>
@@ -0,0 +1,29 @@
1
+ <div class="form-group <%= form.error_class field_name %>">
2
+ <%= form.label field_name, metadata[:label] %>
3
+ <div class="row">
4
+ <div class="col-xs-6 col-sm-3">
5
+ <div class="input-group date" data-init='timepicker'>
6
+ <%= form.time_field field_name, value: value, class: 'form-control' %>
7
+ <span class="input-group-addon"><%= icon 'time' %></span>
8
+ </div>
9
+ </div>
10
+ </div>
11
+ <%= form.error_messages field_name %>
12
+ </div>
13
+
14
+ <% unless @timepicker_init %>
15
+ <% @timepicker_init = true %>
16
+ <% content_for :custom_javascript do %>
17
+ <% javascript_tag do %>
18
+ jQuery(function($) {
19
+ $('[data-init="timepicker"]').each(function() {
20
+ var $input = $('input', this)
21
+ $input.val(moment($input.attr('value')).format('HH:mm'))
22
+ $(this).datetimepicker({
23
+ format: 'HH:mm'
24
+ })
25
+ })
26
+ })
27
+ <% end %>
28
+ <% end %>
29
+ <% end %>
@@ -0,0 +1,38 @@
1
+ <div class="form-group <%= form.error_class field_name %>">
2
+ <%= form.label field_name, metadata[:label] %>
3
+ <div class="row">
4
+ <div class="col-xs-6 col-sm-3">
5
+ <div class="input-group date" data-init='datetimepicker'>
6
+ <span class="input-group-addon">F</span>
7
+ <%= form.text_field field_name, value: value.try(:first), multiple: true, class: 'form-control' %>
8
+ <span class="input-group-addon"><%= icon 'calendar' %></span>
9
+ </div>
10
+ </div>
11
+ <div class="col-xs-6 col-sm-3">
12
+ <div class="input-group date" data-init='datetimepicker'>
13
+ <span class="input-group-addon">T</span>
14
+ <%= form.text_field field_name, value: value.try(:last), multiple: true, class: 'form-control' %>
15
+ <span class="input-group-addon"><%= icon 'calendar' %></span>
16
+ </div>
17
+ </div>
18
+ </div>
19
+ <%= form.error_messages field_name %>
20
+ </div>
21
+
22
+ <% unless @datetimepicker_init %>
23
+ <% @datetimepicker_init = true %>
24
+ <% content_for :custom_javascript do %>
25
+ <% javascript_tag do %>
26
+ jQuery(function($) {
27
+ $('[data-init="datetimepicker"]').each(function() {
28
+ var $input = $('input', this)
29
+ $input.val(moment($input.attr('value')).format('YYYY-MM-DD HH:mm'))
30
+ $(this).datetimepicker({
31
+ format: 'YYYY-MM-DD HH:mm',
32
+ sideBySide: true
33
+ })
34
+ })
35
+ })
36
+ <% end %>
37
+ <% end %>
38
+ <% end %>
@@ -0,0 +1,38 @@
1
+ <div class="form-group <%= form.error_class field_name %>">
2
+ <%= form.label field_name, metadata[:label] %>
3
+ <div class="row">
4
+ <div class="col-xs-6 col-sm-3">
5
+ <div class="input-group date" data-init='datetimepicker'>
6
+ <span class="input-group-addon">F</span>
7
+ <%= form.text_field field_name, value: value.try(:first), multiple: true, class: 'form-control' %>
8
+ <span class="input-group-addon"><%= icon 'calendar' %></span>
9
+ </div>
10
+ </div>
11
+ <div class="col-xs-6 col-sm-3">
12
+ <div class="input-group date" data-init='datetimepicker'>
13
+ <span class="input-group-addon">T</span>
14
+ <%= form.text_field field_name, value: value.try(:last), multiple: true, class: 'form-control' %>
15
+ <span class="input-group-addon"><%= icon 'calendar' %></span>
16
+ </div>
17
+ </div>
18
+ </div>
19
+ <%= form.error_messages field_name %>
20
+ </div>
21
+
22
+ <% unless @datetimepicker_init %>
23
+ <% @datetimepicker_init = true %>
24
+ <% content_for :custom_javascript do %>
25
+ <% javascript_tag do %>
26
+ jQuery(function($) {
27
+ $('[data-init="datetimepicker"]').each(function() {
28
+ var $input = $('input', this)
29
+ $input.val(moment($input.attr('value')).format('YYYY-MM-DD HH:mm'))
30
+ $(this).datetimepicker({
31
+ format: 'YYYY-MM-DD HH:mm',
32
+ sideBySide: true
33
+ })
34
+ })
35
+ })
36
+ <% end %>
37
+ <% end %>
38
+ <% end %>
@@ -0,0 +1,5 @@
1
+ <div class="form-group <%= form.error_class field_name %>">
2
+ <%= form.label field_name, metadata[:label] %>
3
+ <%= form.text_area field_name, class: 'form-control' %>
4
+ <%= form.error_messages field_name %>
5
+ </div>
@@ -0,0 +1,9 @@
1
+ <div class="form-group <%= form.error_class field_name %>">
2
+ <%= form.label field_name, metadata[:label] %>
3
+ <div class="row">
4
+ <div class="col-xs-6 col-sm-3">
5
+ <%= form.text_field field_name, class: 'form-control' %>
6
+ </div>
7
+ </div>
8
+ <%= form.error_messages field_name %>
9
+ </div>
@@ -0,0 +1,23 @@
1
+ <div class="form-group <%= form.error_class field_name %>">
2
+ <%= form.label field_name, metadata[:label] %>
3
+ <%= form.text_area field_name, class: 'form-control', data: { init: 'codemirror', mode: 'xml' } %>
4
+ <%= form.error_messages field_name %>
5
+ </div>
6
+
7
+ <% unless @codemirror_init %>
8
+ <% @codemirror_init = true %>
9
+ <% content_for :custom_javascript do %>
10
+ <% javascript_tag do %>
11
+ jQuery(function($) {
12
+ $('textarea[data-init="codemirror"]').each(function (index, element) {
13
+ CodeMirror.fromTextArea(element, {
14
+ mode: $(element).data('mode'),
15
+ theme: "default",
16
+ lineNumbers: true
17
+ });
18
+
19
+ })
20
+ })
21
+ <% end %>
22
+ <% end %>
23
+ <% end %>
@@ -0,0 +1 @@
1
+ <%= value.present? ? show_link(value) : null %>
@@ -0,0 +1 @@
1
+ <%= value || null %>
@@ -0,0 +1 @@
1
+ <%= value ? na : null %>
@@ -0,0 +1,5 @@
1
+ <% if value.nil? %>
2
+ <%= null %>
3
+ <% else %>
4
+ <code><%= value %></code>
5
+ <% end %>
@@ -0,0 +1,5 @@
1
+ <% if value.nil? %>
2
+ <%= null %>
3
+ <% else %>
4
+ <code><%= value %></code>
5
+ <% end %>
@@ -0,0 +1,5 @@
1
+ <% if value.nil? %>
2
+ <%= null %>
3
+ <% else %>
4
+ <%= value ? icon('check') : icon('unchecked') %>
5
+ <% end %>
@@ -0,0 +1,6 @@
1
+ <% if value.nil? %>
2
+ <%= null %>
3
+ <% else %>
4
+ <code><%= value %></code>
5
+ <%= link_to icon('new-window'), "http://ip-api.com/##{ value }", target: :_blank, class: 'text-info' %>
6
+ <% end %>
@@ -0,0 +1,12 @@
1
+ <% if value.nil? %>
2
+ <%= null %>
3
+ <% else %>
4
+ <% max = metadata[:max] || 20 %>
5
+ <% value = value.to_s %>
6
+ <% if value.length > max %>
7
+ <span><%= value.truncate max %></span>
8
+ <%= imodal metadata[:label], value %>
9
+ <% else %>
10
+ <%= value %>
11
+ <% end %>
12
+ <% end %>
@@ -0,0 +1,5 @@
1
+ <% if value.nil? %>
2
+ <%= null %>
3
+ <% else %>
4
+ <%= content_tag :span, nil, style: "background-color: #{ value };", class: 'color-square' %><span class="text-uppercase"><%= value %></span>
5
+ <% end %>
@@ -0,0 +1,7 @@
1
+ <% if value.nil? %>
2
+ <%= null %>
3
+ <% else %>
4
+ <% value = Time.zone.parse value if value.is_a? String %>
5
+ <% value = value.to_date if value.is_a? Time %>
6
+ <%= I18n.l value %>
7
+ <% end %>
@@ -0,0 +1,8 @@
1
+ <% if value.nil? %>
2
+ <%= null %>
3
+ <% else %>
4
+ <span class="from"><%= I18n.l value.first, format: :short %></span>
5
+ ...
6
+ <span class="to"><%= I18n.l value.last, format: :short %></span>
7
+ <%= itooltip "#{ I18n.l value.first } ... #{ I18n.l value.last }", 'time' %>
8
+ <% end %>
@@ -0,0 +1,7 @@
1
+ <% if value.nil? %>
2
+ <%= null %>
3
+ <% else %>
4
+ <% value = Time.zone.parse value if value.is_a? String %>
5
+ <span><%= I18n.l value, format: :short %></span>
6
+ <%= itooltip I18n.l(value), 'time' %>
7
+ <% end %>
@@ -0,0 +1 @@
1
+ <%= value || null %>
@@ -0,0 +1 @@
1
+ <%= value.nil? ? null : mail_to(value) %>
@@ -0,0 +1 @@
1
+ <%= value.try(:to_f) || null %>
@@ -0,0 +1,11 @@
1
+ <% unique_collection = value.uniq %>
2
+ <%= raw unique_collection.first(2).map{ |item| show_link item }.join(', ') %>
3
+
4
+ <% if unique_collection.length > 2 %>
5
+ <% title = metadata[:label] %>
6
+ <% body = unique_collection.map{ |item| show_link item }.to_sentence.html_safe %>
7
+ <% label = "#{ unique_collection.length - 2 } more" %>
8
+ and <%= imodal title, body, label: label %>
9
+ <% elsif unique_collection.blank? %>
10
+ <%= null %>
11
+ <% end %>
@@ -0,0 +1,11 @@
1
+ <% unique_collection = value.uniq %>
2
+ <%= raw unique_collection.first(2).map{ |item| show_link item }.join(', ') %>
3
+
4
+ <% if unique_collection.length > 2 %>
5
+ <% title = metadata[:label] %>
6
+ <% body = unique_collection.map{ |item| show_link item }.to_sentence.html_safe %>
7
+ <% label = "#{ unique_collection.length - 2 } more" %>
8
+ and <%= imodal title, body, label: label %>
9
+ <% elsif unique_collection.blank? %>
10
+ <%= null %>
11
+ <% end %>
@@ -0,0 +1 @@
1
+ <%= value.present? ? show_link(value) : null %>
@@ -0,0 +1,12 @@
1
+ <% if value.nil? %>
2
+ <%= null %>
3
+ <% else %>
4
+ <% max = metadata[:max] || 20 %>
5
+ <% value = value.to_json %>
6
+ <% if value.length > max %>
7
+ <code><%= value.truncate max %></code>
8
+ <%= imodal metadata[:label], "<pre>#{ h value }</pre>".html_safe %>
9
+ <% else %>
10
+ <code><%= value %></code>
11
+ <% end %>
12
+ <% end %>
@@ -0,0 +1,6 @@
1
+ <% if value.nil? %>
2
+ <%= null %>
3
+ <% else %>
4
+ <code><%= value %></code>
5
+ <%= link_to icon('new-window'), "http://ip-api.com/##{ value }", target: :_blank, class: 'text-info' %>
6
+ <% end %>
@@ -0,0 +1,7 @@
1
+ <% if value.nil? %>
2
+ <%= null %>
3
+ <% else %>
4
+ <span class="from"><%= value.first %></span>
5
+ ...
6
+ <span class="to"><%= value.last %></span>
7
+ <% end %>
@@ -0,0 +1,7 @@
1
+ <% if value.nil? %>
2
+ <%= null %>
3
+ <% else %>
4
+ <span class="from"><%= value.first %></span>
5
+ ...
6
+ <span class="to"><%= value.last %></span>
7
+ <% end %>
@@ -0,0 +1 @@
1
+ <%= value.try(:to_i) || null %>
@@ -0,0 +1,12 @@
1
+ <% if value.nil? %>
2
+ <%= null %>
3
+ <% else %>
4
+ <% max = metadata[:max] || 20 %>
5
+ <% value = value.to_json %>
6
+ <% if value.length > max %>
7
+ <code><%= value.truncate max %></code>
8
+ <%= imodal metadata[:label], "<pre>#{ h value }</pre>".html_safe %>
9
+ <% else %>
10
+ <code><%= value %></code>
11
+ <% end %>
12
+ <% end %>
@@ -0,0 +1,12 @@
1
+ <% if value.nil? %>
2
+ <%= null %>
3
+ <% else %>
4
+ <% max = metadata[:max] || 20 %>
5
+ <% value = value.to_json %>
6
+ <% if value.length > max %>
7
+ <code><%= value.truncate max %></code>
8
+ <%= imodal metadata[:label], "<pre>#{ h value }</pre>".html_safe %>
9
+ <% else %>
10
+ <code><%= value %></code>
11
+ <% end %>
12
+ <% end %>
@@ -0,0 +1,12 @@
1
+ <% if value.nil? %>
2
+ <%= null %>
3
+ <% else %>
4
+ <% max = metadata[:max] || 20 %>
5
+ <% value = value.to_s %>
6
+ <% if value.length > max %>
7
+ <span><%= value.truncate max %></span>
8
+ <%= imodal metadata[:label], value %>
9
+ <% else %>
10
+ <%= value %>
11
+ <% end %>
12
+ <% end %>
@@ -0,0 +1,5 @@
1
+ <% if value.nil? %>
2
+ <%= null %>
3
+ <% else %>
4
+ <code><%= value %></code>
5
+ <% end %>
@@ -0,0 +1 @@
1
+ <%= value || null %>
@@ -0,0 +1,7 @@
1
+ <% if value.nil? %>
2
+ <%= null %>
3
+ <% else %>
4
+ <span class="from"><%= value.first %></span>
5
+ ...
6
+ <span class="to"><%= value.last %></span>
7
+ <% end %>
@@ -0,0 +1,6 @@
1
+ <% if value.nil? %>
2
+ <%= null %>
3
+ <% else %>
4
+ (<span class="x"><%= value.first %></span>,
5
+ <span class="y"><%= value.last %></span>)
6
+ <% end %>
@@ -0,0 +1,12 @@
1
+ <% if value.nil? %>
2
+ <%= null %>
3
+ <% else %>
4
+ <% max = metadata[:max] || 20 %>
5
+ <% value = value.to_s %>
6
+ <% if value.length > max %>
7
+ <span><%= value.truncate max %></span>
8
+ <%= itooltip value %>
9
+ <% else %>
10
+ <%= value %>
11
+ <% end %>
12
+ <% end %>
@@ -0,0 +1,12 @@
1
+ <% if value.nil? %>
2
+ <%= null %>
3
+ <% else %>
4
+ <% max = metadata[:max] || 20 %>
5
+ <% value = value.to_s %>
6
+ <% if value.length > max %>
7
+ <span><%= value.truncate max %></span>
8
+ <%= imodal metadata[:label], value %>
9
+ <% else %>
10
+ <%= value %>
11
+ <% end %>
12
+ <% end %>
@@ -0,0 +1,6 @@
1
+ <% if value.nil? %>
2
+ <%= null %>
3
+ <% else %>
4
+ <% value = Time.zone.parse value if value.is_a? String %>
5
+ <%= value.strftime '%H:%M:%S' %>
6
+ <% end %>
@@ -0,0 +1,8 @@
1
+ <% if value.nil? %>
2
+ <%= null %>
3
+ <% else %>
4
+ <span class="from"><%= I18n.l value.first, format: :short %></span>
5
+ ...
6
+ <span class="to"><%= I18n.l value.last, format: :short %></span>
7
+ <%= itooltip "#{ I18n.l value.first } ... #{ I18n.l value.last }", 'time' %>
8
+ <% end %>
@@ -0,0 +1,8 @@
1
+ <% if value.nil? %>
2
+ <%= null %>
3
+ <% else %>
4
+ <span class="from"><%= I18n.l value.first, format: :short %></span>
5
+ ...
6
+ <span class="to"><%= I18n.l value.last, format: :short %></span>
7
+ <%= itooltip "#{ I18n.l value.first } ... #{ I18n.l value.last }", 'time' %>
8
+ <% end %>
@@ -0,0 +1,12 @@
1
+ <% if value.nil? %>
2
+ <%= null %>
3
+ <% else %>
4
+ <% max = metadata[:max] || 20 %>
5
+ <% value = value.to_s %>
6
+ <% if value.length > max %>
7
+ <span><%= value.truncate max %></span>
8
+ <%= imodal metadata[:label], value %>
9
+ <% else %>
10
+ <%= value %>
11
+ <% end %>
12
+ <% end %>
@@ -0,0 +1,12 @@
1
+ <% if value.nil? %>
2
+ <%= null %>
3
+ <% else %>
4
+ <% max = metadata[:max] || 17 %>
5
+ <% value = value.to_s %>
6
+ <% if value.length > max %>
7
+ <span><%= value.truncate max %></span>
8
+ <%= itooltip value %>
9
+ <% else %>
10
+ <%= value %>
11
+ <% end %>
12
+ <% end %>