matestack-ui-core 0.7.0 → 0.7.4

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 (249) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +16 -12
  3. data/Rakefile +32 -0
  4. data/app/concepts/matestack/ui/core/abbr/abbr.haml +5 -0
  5. data/app/concepts/matestack/ui/core/abbr/abbr.rb +12 -0
  6. data/app/concepts/matestack/ui/core/action/action.js +51 -29
  7. data/app/concepts/matestack/ui/core/action/action.rb +3 -0
  8. data/app/concepts/matestack/ui/core/actionview/dynamic.haml +6 -0
  9. data/app/concepts/matestack/ui/core/actionview/dynamic.rb +28 -0
  10. data/app/concepts/matestack/ui/core/actionview/static.haml +1 -0
  11. data/app/concepts/matestack/ui/core/actionview/static.rb +28 -0
  12. data/app/concepts/matestack/ui/core/address/address.haml +5 -0
  13. data/app/concepts/matestack/ui/core/address/address.rb +5 -0
  14. data/app/concepts/matestack/ui/core/app/app.js +7 -4
  15. data/app/concepts/matestack/ui/core/app/app.rb +3 -28
  16. data/app/concepts/matestack/ui/core/app/location.js +10 -0
  17. data/app/concepts/matestack/ui/core/app/store.js +1 -2
  18. data/app/concepts/matestack/ui/core/area/area.haml +1 -0
  19. data/app/concepts/matestack/ui/core/area/area.rb +18 -0
  20. data/app/concepts/matestack/ui/core/article/article.haml +5 -0
  21. data/app/concepts/matestack/ui/core/article/article.rb +5 -0
  22. data/app/concepts/matestack/ui/core/aside/aside.haml +3 -0
  23. data/app/concepts/matestack/ui/core/aside/aside.rb +5 -0
  24. data/app/concepts/matestack/ui/core/async/async.haml +1 -1
  25. data/app/concepts/matestack/ui/core/async/async.js +24 -5
  26. data/app/concepts/matestack/ui/core/async/async.rb +8 -6
  27. data/app/concepts/matestack/ui/core/b/b.haml +5 -0
  28. data/app/concepts/matestack/ui/core/b/b.rb +5 -0
  29. data/app/concepts/matestack/ui/core/bdi/bdi.haml +5 -0
  30. data/app/concepts/matestack/ui/core/bdi/bdi.rb +4 -0
  31. data/app/concepts/matestack/ui/core/bdo/bdo.haml +5 -0
  32. data/app/concepts/matestack/ui/core/bdo/bdo.rb +11 -0
  33. data/app/concepts/matestack/ui/core/blockquote/blockquote.haml +5 -0
  34. data/app/concepts/matestack/ui/core/blockquote/blockquote.rb +11 -0
  35. data/app/concepts/matestack/ui/core/button/button.haml +4 -6
  36. data/app/concepts/matestack/ui/core/button/button.rb +6 -0
  37. data/app/concepts/matestack/ui/core/caption/caption.haml +5 -0
  38. data/app/concepts/matestack/ui/core/caption/caption.rb +5 -0
  39. data/app/concepts/matestack/ui/core/cite/cite.haml +5 -0
  40. data/app/concepts/matestack/ui/core/cite/cite.rb +5 -0
  41. data/app/concepts/matestack/ui/core/code/code.haml +5 -0
  42. data/app/concepts/matestack/ui/core/code/code.rb +5 -0
  43. data/app/concepts/matestack/ui/core/collection/content/content.js +98 -0
  44. data/app/concepts/matestack/ui/core/collection/content/content.rb +18 -0
  45. data/app/concepts/matestack/ui/core/collection/content/next/next.haml +3 -0
  46. data/app/concepts/matestack/ui/core/collection/content/next/next.rb +5 -0
  47. data/app/concepts/matestack/ui/core/collection/content/page/link/link.haml +3 -0
  48. data/app/concepts/matestack/ui/core/collection/content/page/link/link.rb +5 -0
  49. data/app/concepts/matestack/ui/core/collection/content/previous/previous.haml +3 -0
  50. data/app/concepts/matestack/ui/core/collection/content/previous/previous.rb +5 -0
  51. data/app/concepts/matestack/ui/core/collection/filter/filter.js +48 -0
  52. data/app/concepts/matestack/ui/core/collection/filter/filter.rb +17 -0
  53. data/app/concepts/matestack/ui/core/collection/filter/input/input.haml +2 -0
  54. data/app/concepts/matestack/ui/core/collection/filter/input/input.rb +25 -0
  55. data/app/concepts/matestack/ui/core/collection/filter/reset/reset.haml +3 -0
  56. data/app/concepts/matestack/ui/core/collection/filter/reset/reset.rb +5 -0
  57. data/app/concepts/matestack/ui/core/collection/filter/submit/submit.haml +3 -0
  58. data/app/concepts/matestack/ui/core/collection/filter/submit/submit.rb +5 -0
  59. data/app/concepts/matestack/ui/core/collection/helper.rb +113 -0
  60. data/app/concepts/matestack/ui/core/collection/order/order.js +56 -0
  61. data/app/concepts/matestack/ui/core/collection/order/order.rb +17 -0
  62. data/app/concepts/matestack/ui/core/collection/order/toggle/indicator/indicator.rb +13 -0
  63. data/app/concepts/matestack/ui/core/collection/order/toggle/toggle.haml +3 -0
  64. data/app/concepts/matestack/ui/core/collection/order/toggle/toggle.rb +5 -0
  65. data/app/concepts/matestack/ui/core/component/anonym-dynamic-component.js +1 -1
  66. data/app/concepts/matestack/ui/core/component/component.js +3 -4
  67. data/app/concepts/matestack/ui/core/component/dynamic.rb +38 -33
  68. data/app/concepts/matestack/ui/core/data/data.haml +5 -0
  69. data/app/concepts/matestack/ui/core/data/data.rb +9 -0
  70. data/app/concepts/matestack/ui/core/dd/dd.haml +5 -0
  71. data/app/concepts/matestack/ui/core/dd/dd.rb +5 -0
  72. data/app/concepts/matestack/ui/core/del/del.haml +5 -0
  73. data/app/concepts/matestack/ui/core/del/del.rb +4 -0
  74. data/app/concepts/matestack/ui/core/details/details.haml +3 -0
  75. data/app/concepts/matestack/ui/core/details/details.rb +5 -0
  76. data/app/concepts/matestack/ui/core/dfn/dfn.haml +5 -0
  77. data/app/concepts/matestack/ui/core/dfn/dfn.rb +6 -0
  78. data/app/concepts/matestack/ui/core/dialog/dialog.haml +5 -0
  79. data/app/concepts/matestack/ui/core/dialog/dialog.rb +9 -0
  80. data/app/concepts/matestack/ui/core/div/div.rb +0 -1
  81. data/app/concepts/matestack/ui/core/dl/dl.haml +5 -0
  82. data/app/concepts/matestack/ui/core/dl/dl.rb +5 -0
  83. data/app/concepts/matestack/ui/core/dt/dt.haml +5 -0
  84. data/app/concepts/matestack/ui/core/dt/dt.rb +5 -0
  85. data/app/concepts/matestack/ui/core/em/em.haml +5 -0
  86. data/app/concepts/matestack/ui/core/em/em.rb +5 -0
  87. data/app/concepts/matestack/ui/core/fieldset/fieldset.haml +5 -0
  88. data/app/concepts/matestack/ui/core/fieldset/fieldset.rb +9 -0
  89. data/app/concepts/matestack/ui/core/figure/figure.haml +3 -0
  90. data/app/concepts/matestack/ui/core/figure/figure.rb +5 -0
  91. data/app/concepts/matestack/ui/core/form/form.js +42 -6
  92. data/app/concepts/matestack/ui/core/form/input/input.haml +4 -6
  93. data/app/concepts/matestack/ui/core/form/select/select.haml +10 -6
  94. data/app/concepts/matestack/ui/core/html/html.js +1 -1
  95. data/app/concepts/matestack/ui/core/icon/icon.haml +2 -3
  96. data/app/concepts/matestack/ui/core/iframe/iframe.haml +5 -0
  97. data/app/concepts/matestack/ui/core/iframe/iframe.rb +14 -0
  98. data/app/concepts/matestack/ui/core/img/img.haml +1 -1
  99. data/app/concepts/matestack/ui/core/img/img.rb +10 -0
  100. data/app/concepts/matestack/ui/core/ins/ins.haml +5 -0
  101. data/app/concepts/matestack/ui/core/ins/ins.rb +10 -0
  102. data/app/concepts/matestack/ui/core/isolate/isolate.haml +2 -0
  103. data/app/concepts/matestack/ui/core/isolate/isolate.rb +11 -0
  104. data/app/concepts/matestack/ui/core/js/core.js +15 -12
  105. data/app/concepts/matestack/ui/core/js/helpers/query-params-helper.js +56 -0
  106. data/app/concepts/matestack/ui/core/kbd/kbd.haml +5 -0
  107. data/app/concepts/matestack/ui/core/kbd/kbd.rb +4 -0
  108. data/app/concepts/matestack/ui/core/label/label.haml +4 -6
  109. data/app/concepts/matestack/ui/core/label/label.rb +6 -1
  110. data/app/concepts/matestack/ui/core/legend/legend.haml +5 -0
  111. data/app/concepts/matestack/ui/core/legend/legend.rb +5 -0
  112. data/app/concepts/matestack/ui/core/li/li.haml +2 -3
  113. data/app/concepts/matestack/ui/core/link/link.haml +5 -6
  114. data/app/concepts/matestack/ui/core/link/link.rb +5 -2
  115. data/app/concepts/matestack/ui/core/map/map.haml +3 -0
  116. data/app/concepts/matestack/ui/core/map/map.rb +11 -0
  117. data/app/concepts/matestack/ui/core/mark/mark.haml +5 -0
  118. data/app/concepts/matestack/ui/core/mark/mark.rb +4 -0
  119. data/app/concepts/matestack/ui/core/meter/meter.haml +4 -0
  120. data/app/concepts/matestack/ui/core/meter/meter.rb +14 -0
  121. data/app/concepts/matestack/ui/core/noscript/noscript.haml +5 -0
  122. data/app/concepts/matestack/ui/core/noscript/noscript.rb +5 -0
  123. data/app/concepts/matestack/ui/core/object/object.haml +1 -0
  124. data/app/concepts/matestack/ui/core/object/object.rb +15 -0
  125. data/app/concepts/matestack/ui/core/onclick/onclick.haml +1 -1
  126. data/app/concepts/matestack/ui/core/onclick/onclick.js +2 -3
  127. data/app/concepts/matestack/ui/core/onclick/onclick.rb +1 -2
  128. data/app/concepts/matestack/ui/core/optgroup/optgroup.haml +3 -0
  129. data/app/concepts/matestack/ui/core/optgroup/optgroup.rb +10 -0
  130. data/app/concepts/matestack/ui/core/option/option.haml +5 -0
  131. data/app/concepts/matestack/ui/core/option/option.rb +12 -0
  132. data/app/concepts/matestack/ui/core/output/output.haml +5 -0
  133. data/app/concepts/matestack/ui/core/output/output.rb +11 -0
  134. data/app/concepts/matestack/ui/core/page/content.js +1 -1
  135. data/app/concepts/matestack/ui/core/page/page.rb +63 -23
  136. data/app/concepts/matestack/ui/core/paragraph/paragraph.haml +4 -7
  137. data/app/concepts/matestack/ui/core/param/param.haml +1 -0
  138. data/app/concepts/matestack/ui/core/param/param.rb +10 -0
  139. data/app/concepts/matestack/ui/core/pg/pg.haml +4 -7
  140. data/app/concepts/matestack/ui/core/picture/picture.haml +3 -0
  141. data/app/concepts/matestack/ui/core/picture/picture.rb +4 -0
  142. data/app/concepts/matestack/ui/core/plain/plain.rb +1 -2
  143. data/app/concepts/matestack/ui/core/pre/pre.haml +5 -0
  144. data/app/concepts/matestack/ui/core/pre/pre.rb +5 -0
  145. data/app/concepts/matestack/ui/core/q/q.haml +5 -0
  146. data/app/concepts/matestack/ui/core/q/q.rb +11 -0
  147. data/app/concepts/matestack/ui/core/rp/rp.haml +5 -0
  148. data/app/concepts/matestack/ui/core/rp/rp.rb +5 -0
  149. data/app/concepts/matestack/ui/core/rt/rt.haml +5 -0
  150. data/app/concepts/matestack/ui/core/rt/rt.rb +5 -0
  151. data/app/concepts/matestack/ui/core/ruby/ruby.haml +5 -0
  152. data/app/concepts/matestack/ui/core/ruby/ruby.rb +5 -0
  153. data/app/concepts/matestack/ui/core/s/s.haml +5 -0
  154. data/app/concepts/matestack/ui/core/s/s.rb +6 -0
  155. data/app/concepts/matestack/ui/core/samp/samp.haml +5 -0
  156. data/app/concepts/matestack/ui/core/samp/samp.rb +4 -0
  157. data/app/concepts/matestack/ui/core/small/small.haml +5 -0
  158. data/app/concepts/matestack/ui/core/small/small.rb +5 -0
  159. data/app/concepts/matestack/ui/core/span/span.haml +3 -1
  160. data/app/concepts/matestack/ui/core/strong/strong.haml +5 -0
  161. data/app/concepts/matestack/ui/core/strong/strong.rb +5 -0
  162. data/app/concepts/matestack/ui/core/sub/sub.haml +5 -0
  163. data/app/concepts/matestack/ui/core/sub/sub.rb +5 -0
  164. data/app/concepts/matestack/ui/core/summary/summary.haml +5 -0
  165. data/app/concepts/matestack/ui/core/summary/summary.rb +5 -0
  166. data/app/concepts/matestack/ui/core/sup/sup.haml +5 -0
  167. data/app/concepts/matestack/ui/core/sup/sup.rb +5 -0
  168. data/app/concepts/matestack/ui/core/tbody/tbody.haml +3 -0
  169. data/app/concepts/matestack/ui/core/tbody/tbody.rb +5 -0
  170. data/app/concepts/matestack/ui/core/td/td.haml +4 -7
  171. data/app/concepts/matestack/ui/core/template/template.haml +3 -0
  172. data/app/concepts/matestack/ui/core/template/template.rb +4 -0
  173. data/app/concepts/matestack/ui/core/tfoot/tfoot.haml +3 -0
  174. data/app/concepts/matestack/ui/core/tfoot/tfoot.rb +5 -0
  175. data/app/concepts/matestack/ui/core/th/th.haml +4 -7
  176. data/app/concepts/matestack/ui/core/thead/thead.haml +3 -0
  177. data/app/concepts/matestack/ui/core/thead/thead.rb +5 -0
  178. data/app/concepts/matestack/ui/core/transition/transition.haml +4 -6
  179. data/app/concepts/matestack/ui/core/transition/transition.js +1 -1
  180. data/app/concepts/matestack/ui/core/u/u.haml +5 -0
  181. data/app/concepts/matestack/ui/core/u/u.rb +6 -0
  182. data/app/concepts/matestack/ui/core/unescaped/unescaped.rb +7 -0
  183. data/app/concepts/matestack/ui/core/var/var.haml +5 -0
  184. data/app/concepts/matestack/ui/core/var/var.rb +4 -0
  185. data/app/concepts/matestack/ui/core/video/video.haml +3 -0
  186. data/app/concepts/matestack/ui/core/video/video.rb +23 -0
  187. data/app/concepts/matestack/ui/core/wbr/wbr.haml +1 -0
  188. data/app/concepts/matestack/ui/core/wbr/wbr.rb +4 -0
  189. data/app/concepts/matestack/ui/core/youtube/youtube.haml +1 -0
  190. data/app/concepts/matestack/ui/core/youtube/youtube.rb +26 -0
  191. data/app/helpers/matestack/ui/core/application_helper.rb +3 -1
  192. data/app/javascript/matestack-ui-core/index.js +22 -0
  193. data/app/javascript/matestack-ui-core/styles/index.scss +5 -0
  194. data/app/javascript/packs/matestack-ui-core.js +8 -0
  195. data/app/lib/matestack/ui/core/component_node.rb +30 -12
  196. data/app/lib/matestack/ui/core/has_view_context.rb +10 -0
  197. data/app/lib/matestack/ui/core/page_node.rb +40 -6
  198. data/app/lib/matestack/ui/core/render.rb +89 -0
  199. data/app/lib/matestack/ui/core/to_cell.rb +3 -1
  200. data/app/lib/matestack/ui/dynamic_actionview_component.rb +1 -0
  201. data/app/lib/matestack/ui/static_actionview_component.rb +1 -0
  202. data/config/routes.rb +0 -1
  203. data/lib/generators/matestack/app/USAGE +21 -0
  204. data/lib/generators/matestack/app/app_generator.rb +25 -0
  205. data/lib/generators/matestack/app/templates/app/controllers/%file_name%_controller.rb.tt +5 -0
  206. data/lib/generators/matestack/app/templates/app/matestack/apps/%file_name%.rb.tt +28 -0
  207. data/lib/generators/matestack/component/USAGE +20 -0
  208. data/lib/generators/matestack/component/component_generator.rb +29 -0
  209. data/lib/generators/matestack/component/templates/app/matestack/components/%namespace%/%file_name%.haml.tt +5 -0
  210. data/lib/generators/matestack/component/templates/app/matestack/components/%namespace%/%file_name%.js.tt +17 -0
  211. data/lib/generators/matestack/component/templates/app/matestack/components/%namespace%/%file_name%.rb.tt +11 -0
  212. data/lib/generators/matestack/component/templates/app/matestack/components/%namespace%/%file_name%.scss.tt +1 -0
  213. data/lib/generators/matestack/core/component/USAGE +16 -0
  214. data/lib/generators/matestack/core/component/component_generator.rb +23 -0
  215. data/lib/generators/matestack/core/component/templates/app/concepts/matestack/ui/core/%file_name%/%file_name%.haml.tt +5 -0
  216. data/lib/generators/matestack/core/component/templates/app/concepts/matestack/ui/core/%file_name%/%file_name%.rb.tt +4 -0
  217. data/lib/generators/matestack/core/component/templates/docs/components/%file_name%.md.tt +45 -0
  218. data/lib/generators/matestack/core/component/templates/spec/usage/components/%file_name%_spec.rb +31 -0
  219. data/lib/generators/matestack/page/USAGE +28 -0
  220. data/lib/generators/matestack/page/page_generator.rb +54 -0
  221. data/lib/generators/matestack/page/templates/app/matestack/pages/%app_name%/%namespace%/%file_name%.rb.tt +29 -0
  222. data/lib/matestack/ui/core.rb +1 -0
  223. data/lib/matestack/ui/core/cell.rb +33 -0
  224. data/lib/matestack/ui/core/version.rb +1 -1
  225. data/vendor/assets/javascripts/dist/manifest.json +18 -0
  226. data/vendor/assets/javascripts/dist/manifest.json.br +0 -0
  227. data/vendor/assets/javascripts/dist/manifest.json.gz +0 -0
  228. data/vendor/assets/javascripts/dist/matestack-ui-core.css +3 -0
  229. data/vendor/assets/javascripts/dist/matestack-ui-core.css.map +1 -0
  230. data/vendor/assets/javascripts/dist/matestack-ui-core.js +16523 -0
  231. data/vendor/assets/javascripts/dist/matestack-ui-core.js.map +1 -0
  232. data/vendor/assets/javascripts/dist/matestack-ui-core.min.css +0 -0
  233. data/vendor/assets/javascripts/dist/matestack-ui-core.min.js +3 -0
  234. data/vendor/assets/javascripts/dist/matestack-ui-core.min.js.LICENSE.txt +18 -0
  235. data/vendor/assets/javascripts/dist/matestack-ui-core.min.js.br +0 -0
  236. data/vendor/assets/javascripts/dist/matestack-ui-core.min.js.gz +0 -0
  237. data/vendor/assets/javascripts/dist/matestack-ui-core.min.js.map +1 -0
  238. data/vendor/assets/javascripts/dist/matestack-ui-core.min.js.map.br +0 -0
  239. data/vendor/assets/javascripts/dist/matestack-ui-core.min.js.map.gz +0 -0
  240. data/vendor/assets/javascripts/matestack-ui-core.js.erb +2 -0
  241. data/vendor/assets/stylesheets/dist +1 -0
  242. data/vendor/assets/stylesheets/matestack-ui-core.css.erb +2 -0
  243. metadata +203 -19
  244. data/app/concepts/matestack/ui/core/view/view.haml +0 -2
  245. data/app/concepts/matestack/ui/core/view/view.js +0 -42
  246. data/app/concepts/matestack/ui/core/view/view.rb +0 -7
  247. data/vendor/assets/javascripts/manifest.json +0 -4
  248. data/vendor/assets/javascripts/matestack-ui-core.js +0 -15055
  249. data/vendor/assets/javascripts/matestack-ui-core.js.map +0 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 99d5baa395a0bbd08fb3dd6ba51de334b3408399aa7bde23057fc1e2c6fd7f8a
4
- data.tar.gz: 3cc9af9f8129174ae0628119476dc6c4760ffe49d6edca24478afacb74494818
3
+ metadata.gz: e645c4e03f7a9cbc1104d1d84b20c108125a384534dc3da249aad457fa7974a7
4
+ data.tar.gz: c6bb027cd246f3ad8ca3ce317362b9437e09a88fe8fcc7ce61e8c2e2909e0033
5
5
  SHA512:
6
- metadata.gz: b998a602726e454b65525852bfe72e7c604c18ac4f9f789afbd0c6321c0cc752ad9837cc4b90da71789080bfc1f672d768d3b1240029e0f4c740e8b72edd7dd8
7
- data.tar.gz: acf096659352f4eca3c0f7861e291e3cbe022b8a0cb17c5391163057a60941cceef4cf604c9b3dfc26b8553f8475d466959880ed60116ff28a842985728712f0
6
+ metadata.gz: a13177effcfb1a6d26f7cb920f71a10dee6946c0d7a2c8d3dc09d4c18651c642e62bbf79f7793e4ae9e36cfbcd9ac645e7ab8c7fabea611d27930ae17c7aa628
7
+ data.tar.gz: 3896719f9b477a9745fd2cec800669dcb8257e21f87f2bc8fd10d7f26ca79610e77caaa04642c571e6a2ded10e64270a2d6f862d9f5a03c74d8a8e2a6bbcdc9d
data/README.md CHANGED
@@ -1,6 +1,7 @@
1
- [![CircleCI](https://circleci.com/gh/basemate/matestack-ui-core/tree/master.svg?style=shield)](https://circleci.com/gh/basemate/matestack-ui-core/tree/master)
1
+ ![](https://github.com/matestack/matestack-ui-core/workflows/specs/badge.svg)
2
2
  [![Gitter](https://badges.gitter.im/basemate/community.svg)](https://gitter.im/basemate/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
3
3
  [![Gem Version](https://badge.fury.io/rb/matestack-ui-core.svg)](https://badge.fury.io/rb/matestack-ui-core)
4
+ [![Docs](https://img.shields.io/badge/docs-matestack-blue.svg)](https://www.matestack.org/docs/install)
4
5
 
5
6
  ![matestack logo](./logo.png)
6
7
 
@@ -19,6 +20,17 @@ matestack can progressively replace the classic Rails-View-Layer. You are able t
19
20
  it alongside your classic views and incrementally turn your Rails-App into a
20
21
  dynamic Web-App.
21
22
 
23
+ ### Current State:
24
+
25
+ We love to see more and more people using and contributing to matestack-ui-core. Our current version is 0.7.4 and it's not perfect yet. We recommend you to start using matestack-ui-core in a side project and report issues as this helps us to push matestack-ui-core towards a production ready 1.0.0. At matestack, we already use matestack-ui-core in production as we know how to handle current issues and bypass them with deep insights of the core implementation. We plan to invest time and money (yes, we're hiring) on following improvements:
26
+
27
+ * debugging and error handling
28
+ * core refactoring, increased core maintainability and code quality
29
+ * better integration in existing rails apps
30
+ * improved documentation
31
+ * improved dynamic core components (especially form components)
32
+
33
+
22
34
  ### Installation:
23
35
 
24
36
  Click here to see how you can add Matestack UI to your existing Rails application: [Installation Guide](./docs/install)
@@ -30,7 +42,7 @@ Click here to see how you can add Matestack UI to your existing Rails applicatio
30
42
  class Pages::MyPage < Matestack::Ui::Page
31
43
 
32
44
  def prepare
33
- @technologies = ["Rails", "Vue.js", "Trailblazer", "Rspec", "Capybara"]
45
+ @technologies = ["Rails", "Vue.js", "Trailblazer", "RSpec", "Capybara"]
34
46
  end
35
47
 
36
48
  def response
@@ -205,7 +217,7 @@ ActionCable.server.broadcast("matestack_ui_core", {
205
217
 
206
218
  ### Documentation
207
219
 
208
- Documentation can be found [here](./docs)
220
+ Documentation can be found [here](https://www.matestack.org/docs/install)
209
221
 
210
222
  ### Changelog
211
223
 
@@ -213,15 +225,7 @@ Changelog can be found [here](./CHANGELOG.md)
213
225
 
214
226
  ### Roadmap
215
227
 
216
- Scheduled for 0.7.0:
217
- - Better naming conventions
218
- - Webpacker/Yarn Integration
219
- - Advanced Websockets Integration
220
- - 1:n Relations in Form components
221
- - More Form Components (Multi Select Components)
222
- - Component Based Caching
223
- - Rails View Integration
224
- - Dockerized Core Development
228
+ In order to see what we planned to add and release the upcoming months, just have a look at our future [milestones](https://github.com/basemate/matestack-ui-core/milestones) and get in touch via our [chat](https://gitter.im/basemate/community) for feedback! The upcoming issues and feature requests will be added to one of these milestones regarding priority and implementation effort.
225
229
 
226
230
  ### Community
227
231
 
data/Rakefile CHANGED
@@ -32,3 +32,35 @@ require 'rake/testtask'
32
32
  # end
33
33
  #
34
34
  # task default: :test
35
+
36
+ task :webpack => 'webpack:build'
37
+
38
+ namespace :webpack do
39
+ task :build => ['build:development', 'build:production']
40
+
41
+ namespace :build do
42
+ task :development => 'yarn:install' do
43
+ Bundler.with_unbundled_env do
44
+ sh "cd builder && bin/webpack"
45
+ end
46
+ end
47
+ task :production => 'yarn:install' do
48
+ Bundler.with_unbundled_env do
49
+ sh "cd builder && bin/rake webpacker:compile"
50
+ end
51
+ end
52
+ end
53
+
54
+ task :watch => 'yarn:install' do
55
+ Bundler.with_unbundled_env do
56
+ sh "cd builder && bin/webpack --watch"
57
+ end
58
+ end
59
+
60
+ namespace :yarn do
61
+ task :install do
62
+ sh "yarn install && cd builder && yarn install"
63
+ end
64
+ end
65
+ end
66
+
@@ -0,0 +1,5 @@
1
+ %abbr{@tag_attributes}
2
+ - if options[:text].blank? && block_given?
3
+ = yield
4
+ - else
5
+ = options[:text]
@@ -0,0 +1,12 @@
1
+ module Matestack::Ui::Core::Abbr
2
+ class Abbr < Matestack::Ui::Core::Component::Static
3
+ REQUIRED_KEYS = [:title]
4
+
5
+ def setup
6
+ @tag_attributes.merge!({
7
+ "title": options[:title]
8
+ })
9
+ end
10
+
11
+ end
12
+ end
@@ -2,9 +2,8 @@ import Vue from 'vue/dist/vue.esm'
2
2
  import Vuex from 'vuex'
3
3
  import axios from 'axios'
4
4
 
5
- import matestackEventHub from 'js/event-hub'
6
-
7
- import componentMixin from 'component/component'
5
+ import matestackEventHub from '../js/event-hub'
6
+ import componentMixin from '../component/component'
8
7
 
9
8
  const componentDef = {
10
9
  mixins: [componentMixin],
@@ -14,32 +13,55 @@ const componentDef = {
14
13
  methods: {
15
14
  perform: function(){
16
15
  const self = this
17
- axios({
18
- method: self.componentConfig["method"],
19
- url: self.componentConfig["action_path"],
20
- data: self.componentConfig["data"],
21
- headers: {
22
- 'X-CSRF-Token': document.getElementsByName("csrf-token")[0].getAttribute('content')
23
- }
24
- })
25
- .then(function(response){
26
- if (self.componentConfig["success"] != undefined && self.componentConfig["success"]["emit"] != undefined) {
27
- matestackEventHub.$emit(self.componentConfig["success"]["emit"], response.data);
28
- }
29
- if (self.componentConfig["success"] != undefined && self.componentConfig["success"]["transition"] != undefined && self.$store != undefined) {
30
- let path = self.componentConfig["success"]["transition"]["path"]
31
- self.$store.dispatch('navigateTo', {url: path, backwards: false})
32
- }
33
- })
34
- .catch(function(error){
35
- if (self.componentConfig["failure"] != undefined && self.componentConfig["failure"]["emit"] != undefined) {
36
- matestackEventHub.$emit(self.componentConfig["failure"]["emit"], error.response.data);
37
- }
38
- if (self.componentConfig["failure"] != undefined && self.componentConfig["failure"]["transition"] != undefined && self.$store != undefined) {
39
- let path = self.componentConfig["failure"]["transition"]["path"]
40
- self.$store.dispatch('navigateTo', {url: path, backwards: false})
41
- }
42
- })
16
+ if (
17
+ (self.componentConfig["confirm"] == undefined) || confirm(self.componentConfig["confirm_text"])
18
+ )
19
+ {
20
+ axios({
21
+ method: self.componentConfig["method"],
22
+ url: self.componentConfig["action_path"],
23
+ data: self.componentConfig["data"],
24
+ headers: {
25
+ 'X-CSRF-Token': document.getElementsByName("csrf-token")[0].getAttribute('content')
26
+ }
27
+ })
28
+ .then(function(response){
29
+ if (self.componentConfig["success"] != undefined && self.componentConfig["success"]["emit"] != undefined) {
30
+ matestackEventHub.$emit(self.componentConfig["success"]["emit"], response.data);
31
+ }
32
+ if (self.componentConfig["success"] != undefined
33
+ && self.componentConfig["success"]["transition"] != undefined
34
+ && (
35
+ self.componentConfig["success"]["transition"]["follow_response"] == undefined
36
+ ||
37
+ self.componentConfig["success"]["transition"]["follow_response"] === false
38
+ )
39
+ && self.$store != undefined
40
+ ) {
41
+ let path = self.componentConfig["success"]["transition"]["path"]
42
+ self.$store.dispatch('navigateTo', {url: path, backwards: false})
43
+ return;
44
+ }
45
+ if (self.componentConfig["success"] != undefined
46
+ && self.componentConfig["success"]["transition"] != undefined
47
+ && self.componentConfig["success"]["transition"]["follow_response"] === true
48
+ && self.$store != undefined
49
+ ) {
50
+ let path = response.data["transition_to"] || response.request.responseURL;
51
+ self.$store.dispatch('navigateTo', {url: path, backwards: false});
52
+ return;
53
+ }
54
+ })
55
+ .catch(function(error){
56
+ if (self.componentConfig["failure"] != undefined && self.componentConfig["failure"]["emit"] != undefined) {
57
+ matestackEventHub.$emit(self.componentConfig["failure"]["emit"], error.response.data);
58
+ }
59
+ if (self.componentConfig["failure"] != undefined && self.componentConfig["failure"]["transition"] != undefined && self.$store != undefined) {
60
+ let path = self.componentConfig["failure"]["transition"]["path"]
61
+ self.$store.dispatch('navigateTo', {url: path, backwards: false})
62
+ }
63
+ })
64
+ }
43
65
  }
44
66
  }
45
67
  }
@@ -19,6 +19,9 @@ module Matestack::Ui::Core::Action
19
19
  if options[:notify].nil?
20
20
  @component_config[:notify] = true
21
21
  end
22
+ if @component_config[:confirm] = options[:confirm]
23
+ @component_config[:confirm_text] = options[:confirm].try(:[], :text) || "Are you sure?"
24
+ end
22
25
  end
23
26
 
24
27
  def action_path
@@ -0,0 +1,6 @@
1
+ %component{dynamic_tag_attributes}
2
+ %div
3
+ %div{"v-if": "asyncTemplate == null"}
4
+ = render_content
5
+ %div{"v-if": "asyncTemplate != null"}
6
+ %v-runtime-template{":template":"asyncTemplate"}
@@ -0,0 +1,28 @@
1
+ module Matestack::Ui::Core::Actionview
2
+ class Dynamic < Matestack::Ui::Core::Component::Dynamic
3
+
4
+ include ActionView::Helpers::ActiveModelHelper
5
+ include ActionView::Helpers::ActiveModelInstanceTag
6
+ include ActionView::Helpers::AssetTagHelper
7
+ include ActionView::Helpers::AssetUrlHelper
8
+ include ActionView::Helpers::AtomFeedHelper
9
+ include ActionView::Helpers::CacheHelper
10
+ include ActionView::Helpers::CaptureHelper
11
+ include ActionView::Helpers::CspHelper
12
+ include ActionView::Helpers::CsrfHelper
13
+ include ActionView::Helpers::DateHelper
14
+ include ActionView::Helpers::DebugHelper
15
+ include ActionView::Helpers::FormHelper
16
+ include ActionView::Helpers::FormOptionsHelper
17
+ include ActionView::Helpers::FormTagHelper
18
+ include ActionView::Helpers::JavaScriptHelper
19
+ include ActionView::Helpers::NumberHelper
20
+ include ActionView::Helpers::OutputSafetyHelper
21
+ include ActionView::Helpers::SanitizeHelper
22
+ include ActionView::Helpers::TagHelper
23
+ include ActionView::Helpers::TextHelper
24
+ include ActionView::Helpers::TranslationHelper
25
+ include ActionView::Helpers::UrlHelper
26
+
27
+ end
28
+ end
@@ -0,0 +1,28 @@
1
+ module Matestack::Ui::Core::Actionview
2
+ class Static < Matestack::Ui::Core::Component::Static
3
+
4
+ include ActionView::Helpers::ActiveModelHelper
5
+ include ActionView::Helpers::ActiveModelInstanceTag
6
+ include ActionView::Helpers::AssetTagHelper
7
+ include ActionView::Helpers::AssetUrlHelper
8
+ include ActionView::Helpers::AtomFeedHelper
9
+ include ActionView::Helpers::CacheHelper
10
+ include ActionView::Helpers::CaptureHelper
11
+ include ActionView::Helpers::CspHelper
12
+ include ActionView::Helpers::CsrfHelper
13
+ include ActionView::Helpers::DateHelper
14
+ include ActionView::Helpers::DebugHelper
15
+ include ActionView::Helpers::FormHelper
16
+ include ActionView::Helpers::FormOptionsHelper
17
+ include ActionView::Helpers::FormTagHelper
18
+ include ActionView::Helpers::JavaScriptHelper
19
+ include ActionView::Helpers::NumberHelper
20
+ include ActionView::Helpers::OutputSafetyHelper
21
+ include ActionView::Helpers::SanitizeHelper
22
+ include ActionView::Helpers::TagHelper
23
+ include ActionView::Helpers::TextHelper
24
+ include ActionView::Helpers::TranslationHelper
25
+ include ActionView::Helpers::UrlHelper
26
+
27
+ end
28
+ end
@@ -0,0 +1,5 @@
1
+ %address{@tag_attributes}
2
+ - if options[:text].nil? && block_given?
3
+ = yield
4
+ - else
5
+ = options[:text]
@@ -0,0 +1,5 @@
1
+ module Matestack::Ui::Core::Address
2
+ class Address < Matestack::Ui::Core::Component::Static
3
+
4
+ end
5
+ end
@@ -1,7 +1,7 @@
1
1
  import Vue from 'vue/dist/vue.esm'
2
- import axios from 'axios'
3
2
  import VRuntimeTemplate from "v-runtime-template"
4
3
  import Vuex from 'vuex'
4
+ import isNavigatingToAnotherPage from "./location"
5
5
 
6
6
  const componentDef = {
7
7
  props: ['appConfig', 'params'],
@@ -12,9 +12,10 @@ const componentDef = {
12
12
  asyncTemplate: state => state.pageTemplate,
13
13
  }),
14
14
  mounted: function(){
15
- const self = this;
16
- window.onpopstate = function(event) {
17
- self.$store.dispatch("navigateTo", {url: document.location.pathname, backwards: true} );
15
+ window.onpopstate = (event) => {
16
+ if (isNavigatingToAnotherPage(document.location, event)) {
17
+ this.$store.dispatch("navigateTo", {url: document.location.pathname, backwards: true} );
18
+ };
18
19
  }
19
20
  },
20
21
  components: {
@@ -22,6 +23,8 @@ const componentDef = {
22
23
  }
23
24
  }
24
25
 
26
+
27
+
25
28
  let component = Vue.component('matestack-ui-core-app', componentDef)
26
29
 
27
30
  export default componentDef
@@ -1,33 +1,9 @@
1
1
  module Matestack::Ui::Core::App
2
2
  class App < Trailblazer::Cell
3
- include ActionView::Helpers::ActiveModelHelper
4
- include ActionView::Helpers::ActiveModelInstanceTag
5
- include ActionView::Helpers::AssetTagHelper
6
- include ActionView::Helpers::AssetUrlHelper
7
- include ActionView::Helpers::AtomFeedHelper
8
- include ActionView::Helpers::CacheHelper
9
- include ActionView::Helpers::CaptureHelper
10
- include ActionView::Helpers::CspHelper
11
- include ActionView::Helpers::CsrfHelper
12
- include ActionView::Helpers::DateHelper
13
- include ActionView::Helpers::DebugHelper
14
- include ActionView::Helpers::FormHelper
15
- include ActionView::Helpers::FormOptionsHelper
16
- include ActionView::Helpers::FormTagHelper
17
- include ActionView::Helpers::JavaScriptHelper
18
- include ActionView::Helpers::NumberHelper
19
- include ActionView::Helpers::OutputSafetyHelper
20
- include ActionView::Helpers::RecordTagHelper
21
- # include ActionView::Helpers::RenderingHelper
22
- include ActionView::Helpers::SanitizeHelper
23
- include ActionView::Helpers::TagHelper
24
- include ActionView::Helpers::TextHelper
25
- include ActionView::Helpers::TranslationHelper
26
- include ActionView::Helpers::UrlHelper
27
- include ::Cell::Haml
3
+
4
+ include Matestack::Ui::Core::Cell
28
5
  include Matestack::Ui::Core::ApplicationHelper
29
6
  include Matestack::Ui::Core::ToCell
30
- # include ::Rails.application.routes.url_helpers
31
7
 
32
8
  view_paths << "#{Matestack::Ui::Core::Engine.root}/app/concepts"
33
9
 
@@ -53,7 +29,6 @@ module Matestack::Ui::Core::App
53
29
  return ""
54
30
  end
55
31
 
56
-
57
32
  def initialize(model=nil, options={})
58
33
  super
59
34
  @nodes = {}
@@ -87,7 +62,7 @@ module Matestack::Ui::Core::App
87
62
  @nodes = Matestack::Ui::Core::AppNode.build(self, &block)
88
63
 
89
64
  @nodes.each do |key, node|
90
- @cells[key] = to_cell(key, node["component_name"], node["config"], node["argument"], node["components"], nil)
65
+ @cells[key] = to_cell(key, node["component_name"], node["config"], node["argument"], node["components"], nil, node["cached_params"])
91
66
  end
92
67
  end
93
68
 
@@ -0,0 +1,10 @@
1
+ const isNavigatingToAnotherPage = function(currentLocation, popstateEvent) {
2
+ const targetLocation = popstateEvent.target.location;
3
+
4
+ // omits hash by design
5
+ return currentLocation.pathname !== targetLocation.pathname ||
6
+ currentLocation.origin !== targetLocation.origin ||
7
+ currentLocation.search !== targetLocation.search
8
+ }
9
+
10
+ export default isNavigatingToAnotherPage
@@ -1,8 +1,7 @@
1
1
  import Vue from 'vue/dist/vue.esm'
2
2
  import Vuex from 'vuex'
3
3
  import axios from 'axios'
4
-
5
- import matestackEventHub from 'js/event-hub'
4
+ import matestackEventHub from '../js/event-hub'
6
5
 
7
6
  Vue.use(Vuex)
8
7
 
@@ -0,0 +1 @@
1
+ %area{@tag_attributes}
@@ -0,0 +1,18 @@
1
+ module Matestack::Ui::Core::Area
2
+ class Area < Matestack::Ui::Core::Component::Static
3
+ def setup
4
+ @tag_attributes.merge!({
5
+ alt: options[:alt],
6
+ coords: options[:coords].join(','),
7
+ download: options[:download],
8
+ href: options[:href],
9
+ hreflang: options[:hreflang],
10
+ media: options[:media],
11
+ rel: options[:rel],
12
+ shape: options[:shape],
13
+ target: options[:target],
14
+ type: options[:type]
15
+ })
16
+ end
17
+ end
18
+ end