comfortable_mexican_sofa 2.0.6 → 2.0.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (243) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +2 -2
  3. data/.gitattributes +2 -2
  4. data/.gitignore +1 -1
  5. data/.travis.yml +21 -7
  6. data/Gemfile +10 -7
  7. data/app/assets/javascripts/comfy/admin/cms/application.js.coffee +24 -22
  8. data/app/assets/javascripts/comfy/admin/cms/base.js.coffee +2 -3
  9. data/app/assets/javascripts/comfy/admin/cms/uploader.js.coffee +13 -9
  10. data/app/assets/javascripts/comfy/vendor/Moxie.swf +0 -0
  11. data/app/assets/javascripts/comfy/vendor/Moxie.xap +0 -0
  12. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/bootstrap.min.js +0 -0
  13. data/app/assets/javascripts/comfy/vendor/codemirror.js +9653 -0
  14. data/app/assets/javascripts/comfy/vendor/codemirror/addon/edit/closetag.js +169 -0
  15. data/app/assets/javascripts/comfy/vendor/codemirror/mode/css/css.js +832 -0
  16. data/app/assets/javascripts/comfy/vendor/codemirror/mode/htmlmixed/htmlmixed.js +152 -0
  17. data/app/assets/javascripts/comfy/vendor/codemirror/mode/javascript/javascript.js +875 -0
  18. data/app/assets/javascripts/comfy/vendor/codemirror/mode/markdown/markdown.js +861 -0
  19. data/app/assets/javascripts/comfy/vendor/codemirror/mode/xml/xml.js +394 -0
  20. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/diff/diff_match_patch.min.js +0 -0
  21. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/diff/pretty_text_diff.js +0 -0
  22. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/flatpickr.min.js +0 -0
  23. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/flatpickr/i18n/ar.js +0 -0
  24. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/flatpickr/i18n/bg.js +0 -0
  25. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/flatpickr/i18n/bn.js +0 -0
  26. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/flatpickr/i18n/ca.js +0 -0
  27. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/flatpickr/i18n/cs.js +0 -0
  28. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/flatpickr/i18n/cy.js +0 -0
  29. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/flatpickr/i18n/da.js +0 -0
  30. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/flatpickr/i18n/de.js +0 -0
  31. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/flatpickr/i18n/default.js +0 -0
  32. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/flatpickr/i18n/eo.js +0 -0
  33. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/flatpickr/i18n/es.js +0 -0
  34. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/flatpickr/i18n/et.js +0 -0
  35. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/flatpickr/i18n/fa.js +0 -0
  36. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/flatpickr/i18n/fi.js +0 -0
  37. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/flatpickr/i18n/fr.js +0 -0
  38. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/flatpickr/i18n/gr.js +0 -0
  39. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/flatpickr/i18n/he.js +0 -0
  40. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/flatpickr/i18n/hi.js +0 -0
  41. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/flatpickr/i18n/hr.js +0 -0
  42. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/flatpickr/i18n/hu.js +0 -0
  43. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/flatpickr/i18n/id.js +0 -0
  44. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/flatpickr/i18n/it.js +0 -0
  45. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/flatpickr/i18n/ja.js +0 -0
  46. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/flatpickr/i18n/ko.js +0 -0
  47. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/flatpickr/i18n/lt.js +0 -0
  48. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/flatpickr/i18n/lv.js +0 -0
  49. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/flatpickr/i18n/mk.js +0 -0
  50. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/flatpickr/i18n/mn.js +0 -0
  51. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/flatpickr/i18n/ms.js +0 -0
  52. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/flatpickr/i18n/my.js +0 -0
  53. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/flatpickr/i18n/nl.js +0 -0
  54. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/flatpickr/i18n/no.js +0 -0
  55. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/flatpickr/i18n/pa.js +0 -0
  56. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/flatpickr/i18n/pl.js +0 -0
  57. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/flatpickr/i18n/pt-BR.js +0 -0
  58. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/flatpickr/i18n/pt.js +0 -0
  59. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/flatpickr/i18n/ro.js +0 -0
  60. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/flatpickr/i18n/ru.js +0 -0
  61. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/flatpickr/i18n/si.js +0 -0
  62. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/flatpickr/i18n/sk.js +0 -0
  63. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/flatpickr/i18n/sl.js +0 -0
  64. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/flatpickr/i18n/sq.js +0 -0
  65. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/flatpickr/i18n/sr.js +0 -0
  66. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/flatpickr/i18n/sv.js +0 -0
  67. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/flatpickr/i18n/th.js +0 -0
  68. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/flatpickr/i18n/tr.js +0 -0
  69. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/flatpickr/i18n/uk.js +0 -0
  70. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/flatpickr/i18n/vn.js +0 -0
  71. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/flatpickr/i18n/zh-CN.js +0 -0
  72. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/flatpickr/i18n/zh-TW.js +0 -0
  73. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/fontawesome.js +0 -0
  74. data/app/assets/javascripts/comfy/vendor/moxie.min.js +16 -0
  75. data/app/assets/javascripts/comfy/vendor/plupload.dev.js +2497 -0
  76. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/popper.min.js +0 -0
  77. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/redactor.js +0 -0
  78. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/redactor/definedlinks.js +0 -0
  79. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/redactor/filemanager.js +0 -0
  80. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/redactor/i18n/ar.js +0 -0
  81. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/redactor/i18n/az.js +0 -0
  82. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/redactor/i18n/ba.js +0 -0
  83. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/redactor/i18n/bg.js +0 -0
  84. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/redactor/i18n/by.js +0 -0
  85. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/redactor/i18n/ca.js +0 -0
  86. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/redactor/i18n/cs.js +0 -0
  87. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/redactor/i18n/da.js +0 -0
  88. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/redactor/i18n/de.js +0 -0
  89. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/redactor/i18n/el.js +0 -0
  90. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/redactor/i18n/en.js +0 -0
  91. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/redactor/i18n/eo.js +0 -0
  92. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/redactor/i18n/es.js +0 -0
  93. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/redactor/i18n/es_AR.js +0 -0
  94. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/redactor/i18n/fa.js +0 -0
  95. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/redactor/i18n/fi.js +0 -0
  96. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/redactor/i18n/fr.js +0 -0
  97. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/redactor/i18n/ge.js +0 -0
  98. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/redactor/i18n/gr.js +0 -0
  99. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/redactor/i18n/he.js +0 -0
  100. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/redactor/i18n/hr.js +0 -0
  101. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/redactor/i18n/hu.js +0 -0
  102. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/redactor/i18n/id.js +0 -0
  103. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/redactor/i18n/it.js +0 -0
  104. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/redactor/i18n/ja.js +0 -0
  105. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/redactor/i18n/kn.js +0 -0
  106. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/redactor/i18n/ko.js +0 -0
  107. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/redactor/i18n/lt.js +0 -0
  108. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/redactor/i18n/lv.js +0 -0
  109. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/redactor/i18n/mk.js +0 -0
  110. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/redactor/i18n/nb.js +0 -0
  111. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/redactor/i18n/nl.js +0 -0
  112. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/redactor/i18n/pl.js +0 -0
  113. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/redactor/i18n/pt-BR.js +0 -0
  114. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/redactor/i18n/pt.js +0 -0
  115. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/redactor/i18n/ro.js +0 -0
  116. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/redactor/i18n/ru.js +0 -0
  117. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/redactor/i18n/sk.js +0 -0
  118. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/redactor/i18n/sl.js +0 -0
  119. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/redactor/i18n/sq.js +0 -0
  120. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/redactor/i18n/sr-CIR.js +0 -0
  121. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/redactor/i18n/sr-LAT.js +0 -0
  122. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/redactor/i18n/sv.js +0 -0
  123. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/redactor/i18n/th.js +0 -0
  124. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/redactor/i18n/tr.js +0 -0
  125. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/redactor/i18n/ua.js +0 -0
  126. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/redactor/i18n/uk.js +0 -0
  127. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/redactor/i18n/vi.js +0 -0
  128. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/redactor/i18n/zh-CN.js +0 -0
  129. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/redactor/i18n/zh-TW.js +0 -0
  130. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/redactor/imagemanager.js +0 -0
  131. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/redactor/table.js +0 -0
  132. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/redactor/video.js +0 -0
  133. data/app/assets/javascripts/comfy/{admin/cms/lib → vendor}/sortable.min.js +0 -0
  134. data/app/assets/stylesheets/comfy/admin/cms/application.sass +7 -5
  135. data/app/assets/stylesheets/comfy/admin/cms/codemirror_overrides.sass +6 -14
  136. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/_bootstrap.scss +0 -0
  137. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/_alert.scss +0 -0
  138. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/_badge.scss +0 -0
  139. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/_breadcrumb.scss +0 -0
  140. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/_button-group.scss +0 -0
  141. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/_buttons.scss +0 -0
  142. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/_card.scss +0 -0
  143. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/_carousel.scss +0 -0
  144. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/_close.scss +0 -0
  145. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/_code.scss +0 -0
  146. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/_custom-forms.scss +0 -0
  147. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/_dropdown.scss +0 -0
  148. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/_forms.scss +0 -0
  149. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/_functions.scss +0 -0
  150. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/_grid.scss +0 -0
  151. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/_images.scss +0 -0
  152. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/_input-group.scss +0 -0
  153. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/_jumbotron.scss +0 -0
  154. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/_list-group.scss +0 -0
  155. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/_media.scss +0 -0
  156. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/_mixins.scss +0 -0
  157. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/_modal.scss +0 -0
  158. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/_nav.scss +0 -0
  159. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/_navbar.scss +0 -0
  160. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/_pagination.scss +0 -0
  161. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/_popover.scss +0 -0
  162. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/_print.scss +0 -0
  163. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/_progress.scss +0 -0
  164. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/_reboot.scss +0 -0
  165. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/_root.scss +0 -0
  166. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/_tables.scss +0 -0
  167. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/_tooltip.scss +0 -0
  168. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/_transitions.scss +0 -0
  169. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/_type.scss +0 -0
  170. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/_utilities.scss +0 -0
  171. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/_variables.scss +0 -0
  172. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/mixins/_alert.scss +0 -0
  173. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/mixins/_background-variant.scss +0 -0
  174. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/mixins/_badge.scss +0 -0
  175. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/mixins/_border-radius.scss +0 -0
  176. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/mixins/_box-shadow.scss +0 -0
  177. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/mixins/_breakpoints.scss +0 -0
  178. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/mixins/_buttons.scss +0 -0
  179. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/mixins/_caret.scss +0 -0
  180. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/mixins/_clearfix.scss +0 -0
  181. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/mixins/_float.scss +0 -0
  182. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/mixins/_forms.scss +0 -0
  183. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/mixins/_gradients.scss +0 -0
  184. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/mixins/_grid-framework.scss +0 -0
  185. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/mixins/_grid.scss +0 -0
  186. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/mixins/_hover.scss +0 -0
  187. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/mixins/_image.scss +0 -0
  188. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/mixins/_list-group.scss +0 -0
  189. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/mixins/_lists.scss +0 -0
  190. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/mixins/_nav-divider.scss +0 -0
  191. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/mixins/_navbar-align.scss +0 -0
  192. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/mixins/_pagination.scss +0 -0
  193. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/mixins/_reset-text.scss +0 -0
  194. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/mixins/_resize.scss +0 -0
  195. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/mixins/_screen-reader.scss +0 -0
  196. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/mixins/_size.scss +0 -0
  197. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/mixins/_table-row.scss +0 -0
  198. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/mixins/_text-emphasis.scss +0 -0
  199. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/mixins/_text-hide.scss +0 -0
  200. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/mixins/_text-truncate.scss +0 -0
  201. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/mixins/_transition.scss +0 -0
  202. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/mixins/_visibility.scss +0 -0
  203. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/utilities/_align.scss +0 -0
  204. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/utilities/_background.scss +0 -0
  205. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/utilities/_borders.scss +0 -0
  206. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/utilities/_clearfix.scss +0 -0
  207. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/utilities/_display.scss +0 -0
  208. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/utilities/_embed.scss +0 -0
  209. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/utilities/_flex.scss +0 -0
  210. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/utilities/_float.scss +0 -0
  211. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/utilities/_position.scss +0 -0
  212. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/utilities/_screenreaders.scss +0 -0
  213. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/utilities/_sizing.scss +0 -0
  214. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/utilities/_spacing.scss +0 -0
  215. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/utilities/_text.scss +0 -0
  216. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/bootstrap/utilities/_visibility.scss +0 -0
  217. data/app/assets/stylesheets/comfy/vendor/codemirror.css +346 -0
  218. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/flatpickr.min.css +0 -0
  219. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/fontawesome.css +0 -0
  220. data/app/assets/stylesheets/comfy/{admin/cms/lib → vendor}/redactor.css +0 -0
  221. data/app/models/comfy/cms/layout.rb +4 -2
  222. data/app/views/comfy/admin/cms/files/destroy.js.coffee +1 -1
  223. data/comfortable_mexican_sofa.gemspec +0 -2
  224. data/lib/comfortable_mexican_sofa/engine.rb +0 -3
  225. data/lib/comfortable_mexican_sofa/extensions/acts_as_tree.rb +1 -1
  226. data/lib/comfortable_mexican_sofa/extensions/has_revisions.rb +1 -1
  227. data/lib/comfortable_mexican_sofa/version.rb +1 -1
  228. data/public/favicon.ico +0 -0
  229. data/test/controllers/comfy/admin/cms/sites_controller_test.rb +1 -1
  230. data/test/fixtures/comfy/cms/layouts.yml +4 -4
  231. data/test/fixtures/comfy/cms/sites.yml +1 -1
  232. data/test/gemfiles/Gemfile.rails.5.2 +9 -3
  233. data/test/integration/seeds_test.rb +1 -1
  234. data/test/integration/sites_test.rb +6 -6
  235. data/test/lib/seeds/layouts_test.rb +9 -9
  236. data/test/models/page_test.rb +6 -6
  237. data/test/models/site_test.rb +13 -13
  238. data/test/system/layouts_frontend_test.rb +15 -0
  239. data/test/system/pages_frontend_test.rb +15 -0
  240. data/test/system/sites_frontend_test.rb +11 -0
  241. data/test/system/snippets_frontend_test.rb +15 -0
  242. data/test/test_helper.rb +25 -12
  243. metadata +216 -227
@@ -0,0 +1,394 @@
1
+ // CodeMirror, copyright (c) by Marijn Haverbeke and others
2
+ // Distributed under an MIT license: http://codemirror.net/LICENSE
3
+
4
+ (function(mod) {
5
+ if (typeof exports == "object" && typeof module == "object") // CommonJS
6
+ mod(require("../../lib/codemirror"));
7
+ else if (typeof define == "function" && define.amd) // AMD
8
+ define(["../../lib/codemirror"], mod);
9
+ else // Plain browser env
10
+ mod(CodeMirror);
11
+ })(function(CodeMirror) {
12
+ "use strict";
13
+
14
+ var htmlConfig = {
15
+ autoSelfClosers: {'area': true, 'base': true, 'br': true, 'col': true, 'command': true,
16
+ 'embed': true, 'frame': true, 'hr': true, 'img': true, 'input': true,
17
+ 'keygen': true, 'link': true, 'meta': true, 'param': true, 'source': true,
18
+ 'track': true, 'wbr': true, 'menuitem': true},
19
+ implicitlyClosed: {'dd': true, 'li': true, 'optgroup': true, 'option': true, 'p': true,
20
+ 'rp': true, 'rt': true, 'tbody': true, 'td': true, 'tfoot': true,
21
+ 'th': true, 'tr': true},
22
+ contextGrabbers: {
23
+ 'dd': {'dd': true, 'dt': true},
24
+ 'dt': {'dd': true, 'dt': true},
25
+ 'li': {'li': true},
26
+ 'option': {'option': true, 'optgroup': true},
27
+ 'optgroup': {'optgroup': true},
28
+ 'p': {'address': true, 'article': true, 'aside': true, 'blockquote': true, 'dir': true,
29
+ 'div': true, 'dl': true, 'fieldset': true, 'footer': true, 'form': true,
30
+ 'h1': true, 'h2': true, 'h3': true, 'h4': true, 'h5': true, 'h6': true,
31
+ 'header': true, 'hgroup': true, 'hr': true, 'menu': true, 'nav': true, 'ol': true,
32
+ 'p': true, 'pre': true, 'section': true, 'table': true, 'ul': true},
33
+ 'rp': {'rp': true, 'rt': true},
34
+ 'rt': {'rp': true, 'rt': true},
35
+ 'tbody': {'tbody': true, 'tfoot': true},
36
+ 'td': {'td': true, 'th': true},
37
+ 'tfoot': {'tbody': true},
38
+ 'th': {'td': true, 'th': true},
39
+ 'thead': {'tbody': true, 'tfoot': true},
40
+ 'tr': {'tr': true}
41
+ },
42
+ doNotIndent: {"pre": true},
43
+ allowUnquoted: true,
44
+ allowMissing: true,
45
+ caseFold: true
46
+ }
47
+
48
+ var xmlConfig = {
49
+ autoSelfClosers: {},
50
+ implicitlyClosed: {},
51
+ contextGrabbers: {},
52
+ doNotIndent: {},
53
+ allowUnquoted: false,
54
+ allowMissing: false,
55
+ caseFold: false
56
+ }
57
+
58
+ CodeMirror.defineMode("xml", function(editorConf, config_) {
59
+ var indentUnit = editorConf.indentUnit
60
+ var config = {}
61
+ var defaults = config_.htmlMode ? htmlConfig : xmlConfig
62
+ for (var prop in defaults) config[prop] = defaults[prop]
63
+ for (var prop in config_) config[prop] = config_[prop]
64
+
65
+ // Return variables for tokenizers
66
+ var type, setStyle;
67
+
68
+ function inText(stream, state) {
69
+ function chain(parser) {
70
+ state.tokenize = parser;
71
+ return parser(stream, state);
72
+ }
73
+
74
+ var ch = stream.next();
75
+ if (ch == "<") {
76
+ if (stream.eat("!")) {
77
+ if (stream.eat("[")) {
78
+ if (stream.match("CDATA[")) return chain(inBlock("atom", "]]>"));
79
+ else return null;
80
+ } else if (stream.match("--")) {
81
+ return chain(inBlock("comment", "-->"));
82
+ } else if (stream.match("DOCTYPE", true, true)) {
83
+ stream.eatWhile(/[\w\._\-]/);
84
+ return chain(doctype(1));
85
+ } else {
86
+ return null;
87
+ }
88
+ } else if (stream.eat("?")) {
89
+ stream.eatWhile(/[\w\._\-]/);
90
+ state.tokenize = inBlock("meta", "?>");
91
+ return "meta";
92
+ } else {
93
+ type = stream.eat("/") ? "closeTag" : "openTag";
94
+ state.tokenize = inTag;
95
+ return "tag bracket";
96
+ }
97
+ } else if (ch == "&") {
98
+ var ok;
99
+ if (stream.eat("#")) {
100
+ if (stream.eat("x")) {
101
+ ok = stream.eatWhile(/[a-fA-F\d]/) && stream.eat(";");
102
+ } else {
103
+ ok = stream.eatWhile(/[\d]/) && stream.eat(";");
104
+ }
105
+ } else {
106
+ ok = stream.eatWhile(/[\w\.\-:]/) && stream.eat(";");
107
+ }
108
+ return ok ? "atom" : "error";
109
+ } else {
110
+ stream.eatWhile(/[^&<]/);
111
+ return null;
112
+ }
113
+ }
114
+ inText.isInText = true;
115
+
116
+ function inTag(stream, state) {
117
+ var ch = stream.next();
118
+ if (ch == ">" || (ch == "/" && stream.eat(">"))) {
119
+ state.tokenize = inText;
120
+ type = ch == ">" ? "endTag" : "selfcloseTag";
121
+ return "tag bracket";
122
+ } else if (ch == "=") {
123
+ type = "equals";
124
+ return null;
125
+ } else if (ch == "<") {
126
+ state.tokenize = inText;
127
+ state.state = baseState;
128
+ state.tagName = state.tagStart = null;
129
+ var next = state.tokenize(stream, state);
130
+ return next ? next + " tag error" : "tag error";
131
+ } else if (/[\'\"]/.test(ch)) {
132
+ state.tokenize = inAttribute(ch);
133
+ state.stringStartCol = stream.column();
134
+ return state.tokenize(stream, state);
135
+ } else {
136
+ stream.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/);
137
+ return "word";
138
+ }
139
+ }
140
+
141
+ function inAttribute(quote) {
142
+ var closure = function(stream, state) {
143
+ while (!stream.eol()) {
144
+ if (stream.next() == quote) {
145
+ state.tokenize = inTag;
146
+ break;
147
+ }
148
+ }
149
+ return "string";
150
+ };
151
+ closure.isInAttribute = true;
152
+ return closure;
153
+ }
154
+
155
+ function inBlock(style, terminator) {
156
+ return function(stream, state) {
157
+ while (!stream.eol()) {
158
+ if (stream.match(terminator)) {
159
+ state.tokenize = inText;
160
+ break;
161
+ }
162
+ stream.next();
163
+ }
164
+ return style;
165
+ };
166
+ }
167
+ function doctype(depth) {
168
+ return function(stream, state) {
169
+ var ch;
170
+ while ((ch = stream.next()) != null) {
171
+ if (ch == "<") {
172
+ state.tokenize = doctype(depth + 1);
173
+ return state.tokenize(stream, state);
174
+ } else if (ch == ">") {
175
+ if (depth == 1) {
176
+ state.tokenize = inText;
177
+ break;
178
+ } else {
179
+ state.tokenize = doctype(depth - 1);
180
+ return state.tokenize(stream, state);
181
+ }
182
+ }
183
+ }
184
+ return "meta";
185
+ };
186
+ }
187
+
188
+ function Context(state, tagName, startOfLine) {
189
+ this.prev = state.context;
190
+ this.tagName = tagName;
191
+ this.indent = state.indented;
192
+ this.startOfLine = startOfLine;
193
+ if (config.doNotIndent.hasOwnProperty(tagName) || (state.context && state.context.noIndent))
194
+ this.noIndent = true;
195
+ }
196
+ function popContext(state) {
197
+ if (state.context) state.context = state.context.prev;
198
+ }
199
+ function maybePopContext(state, nextTagName) {
200
+ var parentTagName;
201
+ while (true) {
202
+ if (!state.context) {
203
+ return;
204
+ }
205
+ parentTagName = state.context.tagName;
206
+ if (!config.contextGrabbers.hasOwnProperty(parentTagName) ||
207
+ !config.contextGrabbers[parentTagName].hasOwnProperty(nextTagName)) {
208
+ return;
209
+ }
210
+ popContext(state);
211
+ }
212
+ }
213
+
214
+ function baseState(type, stream, state) {
215
+ if (type == "openTag") {
216
+ state.tagStart = stream.column();
217
+ return tagNameState;
218
+ } else if (type == "closeTag") {
219
+ return closeTagNameState;
220
+ } else {
221
+ return baseState;
222
+ }
223
+ }
224
+ function tagNameState(type, stream, state) {
225
+ if (type == "word") {
226
+ state.tagName = stream.current();
227
+ setStyle = "tag";
228
+ return attrState;
229
+ } else {
230
+ setStyle = "error";
231
+ return tagNameState;
232
+ }
233
+ }
234
+ function closeTagNameState(type, stream, state) {
235
+ if (type == "word") {
236
+ var tagName = stream.current();
237
+ if (state.context && state.context.tagName != tagName &&
238
+ config.implicitlyClosed.hasOwnProperty(state.context.tagName))
239
+ popContext(state);
240
+ if ((state.context && state.context.tagName == tagName) || config.matchClosing === false) {
241
+ setStyle = "tag";
242
+ return closeState;
243
+ } else {
244
+ setStyle = "tag error";
245
+ return closeStateErr;
246
+ }
247
+ } else {
248
+ setStyle = "error";
249
+ return closeStateErr;
250
+ }
251
+ }
252
+
253
+ function closeState(type, _stream, state) {
254
+ if (type != "endTag") {
255
+ setStyle = "error";
256
+ return closeState;
257
+ }
258
+ popContext(state);
259
+ return baseState;
260
+ }
261
+ function closeStateErr(type, stream, state) {
262
+ setStyle = "error";
263
+ return closeState(type, stream, state);
264
+ }
265
+
266
+ function attrState(type, _stream, state) {
267
+ if (type == "word") {
268
+ setStyle = "attribute";
269
+ return attrEqState;
270
+ } else if (type == "endTag" || type == "selfcloseTag") {
271
+ var tagName = state.tagName, tagStart = state.tagStart;
272
+ state.tagName = state.tagStart = null;
273
+ if (type == "selfcloseTag" ||
274
+ config.autoSelfClosers.hasOwnProperty(tagName)) {
275
+ maybePopContext(state, tagName);
276
+ } else {
277
+ maybePopContext(state, tagName);
278
+ state.context = new Context(state, tagName, tagStart == state.indented);
279
+ }
280
+ return baseState;
281
+ }
282
+ setStyle = "error";
283
+ return attrState;
284
+ }
285
+ function attrEqState(type, stream, state) {
286
+ if (type == "equals") return attrValueState;
287
+ if (!config.allowMissing) setStyle = "error";
288
+ return attrState(type, stream, state);
289
+ }
290
+ function attrValueState(type, stream, state) {
291
+ if (type == "string") return attrContinuedState;
292
+ if (type == "word" && config.allowUnquoted) {setStyle = "string"; return attrState;}
293
+ setStyle = "error";
294
+ return attrState(type, stream, state);
295
+ }
296
+ function attrContinuedState(type, stream, state) {
297
+ if (type == "string") return attrContinuedState;
298
+ return attrState(type, stream, state);
299
+ }
300
+
301
+ return {
302
+ startState: function(baseIndent) {
303
+ var state = {tokenize: inText,
304
+ state: baseState,
305
+ indented: baseIndent || 0,
306
+ tagName: null, tagStart: null,
307
+ context: null}
308
+ if (baseIndent != null) state.baseIndent = baseIndent
309
+ return state
310
+ },
311
+
312
+ token: function(stream, state) {
313
+ if (!state.tagName && stream.sol())
314
+ state.indented = stream.indentation();
315
+
316
+ if (stream.eatSpace()) return null;
317
+ type = null;
318
+ var style = state.tokenize(stream, state);
319
+ if ((style || type) && style != "comment") {
320
+ setStyle = null;
321
+ state.state = state.state(type || style, stream, state);
322
+ if (setStyle)
323
+ style = setStyle == "error" ? style + " error" : setStyle;
324
+ }
325
+ return style;
326
+ },
327
+
328
+ indent: function(state, textAfter, fullLine) {
329
+ var context = state.context;
330
+ // Indent multi-line strings (e.g. css).
331
+ if (state.tokenize.isInAttribute) {
332
+ if (state.tagStart == state.indented)
333
+ return state.stringStartCol + 1;
334
+ else
335
+ return state.indented + indentUnit;
336
+ }
337
+ if (context && context.noIndent) return CodeMirror.Pass;
338
+ if (state.tokenize != inTag && state.tokenize != inText)
339
+ return fullLine ? fullLine.match(/^(\s*)/)[0].length : 0;
340
+ // Indent the starts of attribute names.
341
+ if (state.tagName) {
342
+ if (config.multilineTagIndentPastTag !== false)
343
+ return state.tagStart + state.tagName.length + 2;
344
+ else
345
+ return state.tagStart + indentUnit * (config.multilineTagIndentFactor || 1);
346
+ }
347
+ if (config.alignCDATA && /<!\[CDATA\[/.test(textAfter)) return 0;
348
+ var tagAfter = textAfter && /^<(\/)?([\w_:\.-]*)/.exec(textAfter);
349
+ if (tagAfter && tagAfter[1]) { // Closing tag spotted
350
+ while (context) {
351
+ if (context.tagName == tagAfter[2]) {
352
+ context = context.prev;
353
+ break;
354
+ } else if (config.implicitlyClosed.hasOwnProperty(context.tagName)) {
355
+ context = context.prev;
356
+ } else {
357
+ break;
358
+ }
359
+ }
360
+ } else if (tagAfter) { // Opening tag spotted
361
+ while (context) {
362
+ var grabbers = config.contextGrabbers[context.tagName];
363
+ if (grabbers && grabbers.hasOwnProperty(tagAfter[2]))
364
+ context = context.prev;
365
+ else
366
+ break;
367
+ }
368
+ }
369
+ while (context && context.prev && !context.startOfLine)
370
+ context = context.prev;
371
+ if (context) return context.indent + indentUnit;
372
+ else return state.baseIndent || 0;
373
+ },
374
+
375
+ electricInput: /<\/[\s\w:]+>$/,
376
+ blockCommentStart: "<!--",
377
+ blockCommentEnd: "-->",
378
+
379
+ configuration: config.htmlMode ? "html" : "xml",
380
+ helperType: config.htmlMode ? "html" : "xml",
381
+
382
+ skipAttribute: function(state) {
383
+ if (state.state == attrValueState)
384
+ state.state = attrState
385
+ }
386
+ };
387
+ });
388
+
389
+ CodeMirror.defineMIME("text/xml", "xml");
390
+ CodeMirror.defineMIME("application/xml", "xml");
391
+ if (!CodeMirror.mimeModes.hasOwnProperty("text/html"))
392
+ CodeMirror.defineMIME("text/html", {name: "xml", htmlMode: true});
393
+
394
+ });