wallaby 4.1.6

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.
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 %>