kms 0.9.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (409) hide show
  1. checksums.yaml +4 -4
  2. data/{vendor/assets/bower_components/Responsive-Dashboard/src/img → app/assets/images}/avatar.jpg +0 -0
  3. data/app/assets/javascripts/kms/application.js +3 -0
  4. data/app/assets/javascripts/kms/application/controllers/assets_controller.coffee.erb +14 -7
  5. data/app/assets/javascripts/kms/application/controllers/pages_controller.coffee.erb +11 -3
  6. data/app/assets/javascripts/kms/application/controllers/snippets_controller.coffee.erb +3 -0
  7. data/app/assets/javascripts/kms/application/controllers/templates_controller.coffee.erb +3 -0
  8. data/app/assets/javascripts/kms/application/controllers/users_controller.coffee +4 -4
  9. data/app/assets/javascripts/kms/application/routes.coffee.erb +1 -1
  10. data/app/assets/javascripts/kms/application/services/transliteration_service.js +160 -0
  11. data/app/assets/javascripts/templates/assets/edit.html.slim +24 -2
  12. data/app/assets/javascripts/templates/assets/form.html.slim +23 -0
  13. data/app/assets/javascripts/templates/assets/index.html.slim +13 -12
  14. data/app/assets/javascripts/templates/assets/new.html.slim +1 -15
  15. data/app/assets/javascripts/templates/help.html.slim +1 -1
  16. data/app/assets/javascripts/templates/pages/index.html.slim +16 -5
  17. data/app/assets/javascripts/templates/snippets/index.html.slim +16 -5
  18. data/app/assets/javascripts/templates/templates/index.html.slim +16 -6
  19. data/app/assets/stylesheets/kms/application.css +2 -2
  20. data/app/assets/stylesheets/kms/custom.css.scss +38 -0
  21. data/app/controllers/kms/assets_controller.rb +8 -9
  22. data/app/controllers/kms/pages_controller.rb +10 -11
  23. data/app/controllers/kms/public/pages_controller.rb +5 -4
  24. data/app/controllers/kms/public/search_controller.rb +2 -0
  25. data/app/controllers/kms/settings_controller.rb +1 -1
  26. data/app/controllers/kms/snippets_controller.rb +2 -1
  27. data/app/controllers/kms/templates_controller.rb +6 -5
  28. data/app/controllers/kms/users_controller.rb +11 -8
  29. data/app/models/ability.rb +1 -0
  30. data/app/models/concerns/kms/permalinkable.rb +1 -1
  31. data/app/models/kms/page.rb +13 -4
  32. data/app/serializers/kms/asset_serializer.rb +6 -0
  33. data/app/serializers/kms/page_serializer.rb +5 -0
  34. data/app/serializers/kms/template_serializer.rb +5 -0
  35. data/app/serializers/kms/user_serializer.rb +5 -0
  36. data/app/services/kms/page_fetcher.rb +30 -0
  37. data/app/services/kms/search_service.rb +28 -3
  38. data/app/services/kms/template_processor.rb +19 -0
  39. data/app/views/devise/passwords/edit.html.erb +1 -1
  40. data/app/views/devise/passwords/new.html.erb +1 -1
  41. data/app/views/devise/registrations/new.html.erb +1 -1
  42. data/app/views/devise/sessions/new.html.erb +1 -1
  43. data/app/views/layouts/kms/devise.html.erb +1 -1
  44. data/app/views/layouts/kms/kms.html.erb +47 -18
  45. data/config/initializers/externals.rb +6 -32
  46. data/config/initializers/search.rb +1 -0
  47. data/config/locales/en.yml +17 -1
  48. data/config/locales/ru.yml +17 -1
  49. data/config/routes.rb +7 -6
  50. data/lib/kms/dependencies.rb +1 -4
  51. data/lib/kms/engine.rb +1 -2
  52. data/lib/kms/search_item.rb +18 -0
  53. data/lib/kms/version.rb +1 -1
  54. data/spec/controllers/kms/assets_controller_spec.rb +51 -0
  55. data/spec/controllers/kms/pages_controller_spec.rb +82 -0
  56. data/spec/controllers/kms/public/pages_controller_spec.rb +30 -0
  57. data/spec/controllers/kms/snippets_controller_spec.rb +61 -47
  58. data/spec/controllers/kms/templates_controller_spec.rb +51 -0
  59. data/spec/controllers/kms/users_controller_spec.rb +56 -0
  60. data/spec/factories/assets.rb +8 -0
  61. data/spec/factories/pages.rb +33 -0
  62. data/spec/factories/templates.rb +20 -0
  63. data/spec/factories/users.rb +9 -4
  64. data/spec/internal/config/routes.rb +12 -1
  65. data/spec/internal/log/test.log +81239 -0
  66. data/spec/internal/public/404.html +67 -0
  67. data/spec/internal/public/avatar.jpg +0 -0
  68. data/spec/internal/public/style.css +1 -0
  69. data/spec/internal/public/uploads/kms/asset/file/1/avatar.jpg +0 -0
  70. data/spec/internal/public/uploads/kms/asset/file/2/avatar.jpg +0 -0
  71. data/spec/internal/public/uploads/kms/asset/file/2/style.css +1 -0
  72. data/spec/internal/public/uploads/kms/asset/file/3/style.css +1 -0
  73. data/spec/internal/public/uploads/kms/asset/file/4/style.css +1 -0
  74. data/spec/internal/public/uploads/tmp/1500976987-41025-0002-0883/style.css +1 -0
  75. data/spec/internal/public/uploads/tmp/1500977082-41195-0002-6495/style.css +1 -0
  76. data/spec/internal/public/uploads/tmp/1500977109-41364-0002-4518/style.css +1 -0
  77. data/spec/internal/public/uploads/tmp/1500977152-41405-0002-2345/style.css +1 -0
  78. data/spec/internal/public/uploads/tmp/1500977327-41694-0002-5448/style.css +1 -0
  79. data/spec/internal/public/uploads/tmp/1500977376-41732-0002-7916/style.css +1 -0
  80. data/spec/internal/public/uploads/tmp/1500977392-41759-0002-7593/style.css +1 -0
  81. data/spec/internal/public/uploads/tmp/1500977410-42259-0002-7527/style.css +1 -0
  82. data/spec/internal/public/uploads/tmp/1500977429-42306-0002-5937/style.css +1 -0
  83. data/spec/internal/public/uploads/tmp/1500977437-42324-0002-5880/style.css +1 -0
  84. data/spec/internal/public/uploads/tmp/1500983228-53594-0002-4559/style.css +1 -0
  85. data/spec/internal/public/uploads/tmp/1500983284-53632-0002-6590/style.css +1 -0
  86. data/spec/internal/public/uploads/tmp/1500983360-53784-0002-7289/style.css +1 -0
  87. data/spec/internal/public/uploads/tmp/1500983469-54321-0002-0386/avatar.jpg +0 -0
  88. data/spec/internal/public/uploads/tmp/1500983469-54321-0004-5691/style.css +1 -0
  89. data/spec/internal/public/uploads/tmp/1500983511-54352-0002-5720/avatar.jpg +0 -0
  90. data/spec/internal/public/uploads/tmp/1500983511-54352-0004-1399/style.css +1 -0
  91. data/spec/internal/public/uploads/tmp/1500983610-54507-0002-4280/avatar.jpg +0 -0
  92. data/spec/internal/public/uploads/tmp/1500983610-54507-0004-9758/style.css +1 -0
  93. data/spec/internal/public/uploads/tmp/1500984466-57012-0002-4146/avatar.jpg +0 -0
  94. data/spec/internal/public/uploads/tmp/1500984466-57012-0004-5895/style.css +1 -0
  95. data/spec/internal/public/uploads/tmp/1500984509-57158-0002-9657/avatar.jpg +0 -0
  96. data/spec/internal/public/uploads/tmp/1500984509-57158-0004-5003/style.css +1 -0
  97. data/spec/internal/public/uploads/tmp/1500984616-57697-0002-7201/avatar.jpg +0 -0
  98. data/spec/internal/public/uploads/tmp/1500984616-57697-0004-6255/style.css +1 -0
  99. data/spec/internal/public/uploads/tmp/1500985257-58947-0002-3629/avatar.jpg +0 -0
  100. data/spec/internal/public/uploads/tmp/1500985257-58947-0004-5338/style.css +1 -0
  101. data/spec/internal/public/uploads/tmp/1500985407-58947-0006-5929/style.css +1 -0
  102. data/spec/internal/public/uploads/tmp/1500985473-59264-0002-0397/avatar.jpg +0 -0
  103. data/spec/internal/public/uploads/tmp/1500985473-59264-0004-6493/style.css +1 -0
  104. data/spec/internal/public/uploads/tmp/1500985475-59264-0007-8674/style.css +1 -0
  105. data/spec/internal/public/uploads/tmp/1500985538-59468-0002-9206/avatar.jpg +0 -0
  106. data/spec/internal/public/uploads/tmp/1500985538-59468-0004-2586/style.css +1 -0
  107. data/spec/internal/public/uploads/tmp/1500985538-59468-0007-6200/style.css +1 -0
  108. data/spec/internal/public/uploads/tmp/1500988358-65877-0002-4528/avatar.jpg +0 -0
  109. data/spec/internal/public/uploads/tmp/1500988358-65877-0004-5904/style.css +1 -0
  110. data/spec/internal/public/uploads/tmp/1500988358-65877-0007-7320/style.css +1 -0
  111. data/spec/internal/public/uploads/tmp/1500988407-65916-0002-3138/avatar.jpg +0 -0
  112. data/spec/internal/public/uploads/tmp/1500988407-65916-0004-5400/style.css +1 -0
  113. data/spec/internal/public/uploads/tmp/1500988407-65916-0007-1655/style.css +1 -0
  114. data/spec/internal/public/uploads/tmp/1500988421-65950-0002-9415/avatar.jpg +0 -0
  115. data/spec/internal/public/uploads/tmp/1500988421-65950-0004-7130/style.css +1 -0
  116. data/spec/internal/public/uploads/tmp/1500988421-65950-0007-9886/style.css +1 -0
  117. data/spec/internal/public/uploads/tmp/1500988435-65981-0002-3228/avatar.jpg +0 -0
  118. data/spec/internal/public/uploads/tmp/1500988435-65981-0004-3682/style.css +1 -0
  119. data/spec/internal/public/uploads/tmp/1500988435-65981-0007-1582/style.css +1 -0
  120. data/spec/internal/public/uploads/tmp/1500988475-66122-0002-9516/avatar.jpg +0 -0
  121. data/spec/internal/public/uploads/tmp/1500988475-66122-0004-5634/style.css +1 -0
  122. data/spec/internal/public/uploads/tmp/1500988530-66122-0007-2272/style.css +1 -0
  123. data/spec/internal/public/uploads/tmp/1500988554-66315-0002-6262/avatar.jpg +0 -0
  124. data/spec/internal/public/uploads/tmp/1500988554-66315-0004-6099/style.css +1 -0
  125. data/spec/internal/public/uploads/tmp/1500988554-66315-0007-1632/style.css +1 -0
  126. data/spec/internal/public/uploads/tmp/1500991751-73722-0002-9937/avatar.jpg +0 -0
  127. data/spec/internal/public/uploads/tmp/1500991751-73722-0004-8034/style.css +1 -0
  128. data/spec/internal/public/uploads/tmp/1500991751-73722-0007-7763/style.css +1 -0
  129. data/spec/internal/public/uploads/tmp/1501233238-34385-0002-3210/avatar.jpg +0 -0
  130. data/spec/internal/public/uploads/tmp/1501233238-34385-0004-5881/style.css +1 -0
  131. data/spec/internal/public/uploads/tmp/1501233238-34385-0007-6280/style.css +1 -0
  132. data/spec/models/kms/page_spec.rb +31 -0
  133. data/spec/models/kms/template_spec.rb +15 -0
  134. data/spec/services/kms/page_fetcher_spec.rb +36 -0
  135. data/spec/services/kms/search_service_spec.rb +53 -0
  136. data/spec/services/kms/template_processor_spec.rb +20 -0
  137. data/spec/support/controller_macros.rb +9 -1
  138. data/vendor/assets/bower.json +3 -2
  139. data/vendor/assets/bower_components/angular-ui-select/CHANGELOG.md +169 -0
  140. data/vendor/assets/bower_components/angular-ui-select/CONTRIBUTING.md +161 -0
  141. data/vendor/assets/bower_components/angular-ui-select/README.md +27 -13
  142. data/vendor/assets/bower_components/angular-ui-select/bower.json +6 -3
  143. data/vendor/assets/bower_components/angular-ui-select/composer.json +29 -0
  144. data/vendor/assets/bower_components/angular-ui-select/deploy-docs.sh +31 -0
  145. data/vendor/assets/bower_components/angular-ui-select/dist/select.css +48 -2
  146. data/vendor/assets/bower_components/angular-ui-select/dist/select.js +454 -111
  147. data/vendor/assets/bower_components/angular-ui-select/dist/select.min.css +2 -2
  148. data/vendor/assets/bower_components/angular-ui-select/dist/select.min.js +2 -2
  149. data/vendor/assets/bower_components/angular-ui-select/docs/assets/app.js +1 -0
  150. data/vendor/assets/bower_components/angular-ui-select/docs/assets/demo.js +461 -0
  151. data/vendor/assets/bower_components/angular-ui-select/docs/assets/docs.css +339 -0
  152. data/vendor/assets/bower_components/angular-ui-select/docs/assets/plunkr.js +110 -0
  153. data/vendor/assets/bower_components/angular-ui-select/docs/index.html +191 -0
  154. data/vendor/assets/bower_components/angular-ui-select/docs/partials/_footer.html +2 -0
  155. data/vendor/assets/bower_components/angular-ui-select/docs/partials/_header.html +64 -0
  156. data/vendor/assets/bower_components/angular-ui-select/index.js +2 -0
  157. data/vendor/assets/bower_components/angular-ui-select/package.json +36 -15
  158. data/vendor/assets/bower_components/bootstrap/CHANGELOG.md +5 -0
  159. data/vendor/assets/bower_components/bootstrap/Gemfile +6 -0
  160. data/vendor/assets/bower_components/bootstrap/Gemfile.lock +43 -0
  161. data/vendor/assets/bower_components/bootstrap/Gruntfile.js +176 -145
  162. data/vendor/assets/bower_components/bootstrap/ISSUE_TEMPLATE.md +22 -0
  163. data/vendor/assets/bower_components/bootstrap/LICENSE +1 -1
  164. data/vendor/assets/bower_components/bootstrap/README.md +55 -40
  165. data/vendor/assets/bower_components/bootstrap/bower.json +5 -9
  166. data/vendor/assets/bower_components/bootstrap/dist/css/bootstrap-theme.css +204 -59
  167. data/vendor/assets/bower_components/bootstrap/dist/css/bootstrap-theme.css.map +1 -1
  168. data/vendor/assets/bower_components/bootstrap/dist/css/bootstrap-theme.min.css +4 -3
  169. data/vendor/assets/bower_components/bootstrap/dist/css/bootstrap-theme.min.css.map +1 -0
  170. data/vendor/assets/bower_components/bootstrap/dist/css/{bootstrap.less → bootstrap.css} +881 -327
  171. data/vendor/assets/bower_components/bootstrap/dist/css/bootstrap.css.map +1 -1
  172. data/vendor/assets/bower_components/bootstrap/dist/css/bootstrap.min.css +6 -0
  173. data/vendor/assets/bower_components/bootstrap/dist/css/bootstrap.min.css.map +1 -0
  174. data/vendor/assets/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.eot +0 -0
  175. data/vendor/assets/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.svg +272 -213
  176. data/vendor/assets/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf +0 -0
  177. data/vendor/assets/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff +0 -0
  178. data/vendor/assets/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 +0 -0
  179. data/vendor/assets/bower_components/bootstrap/dist/js/bootstrap.js +549 -286
  180. data/vendor/assets/bower_components/bootstrap/dist/js/bootstrap.min.js +5 -4
  181. data/vendor/assets/bower_components/bootstrap/dist/js/npm.js +13 -0
  182. data/vendor/assets/bower_components/bootstrap/fonts/glyphicons-halflings-regular.eot +0 -0
  183. data/vendor/assets/bower_components/bootstrap/fonts/glyphicons-halflings-regular.svg +272 -213
  184. data/vendor/assets/bower_components/bootstrap/fonts/glyphicons-halflings-regular.ttf +0 -0
  185. data/vendor/assets/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff +0 -0
  186. data/vendor/assets/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff2 +0 -0
  187. data/vendor/assets/bower_components/bootstrap/grunt/bs-commonjs-generator.js +30 -0
  188. data/vendor/assets/bower_components/bootstrap/grunt/bs-glyphicons-data-generator.js +5 -4
  189. data/vendor/assets/bower_components/bootstrap/grunt/bs-lessdoc-parser.js +13 -12
  190. data/vendor/assets/bower_components/bootstrap/grunt/bs-raw-files-generator.js +6 -8
  191. data/vendor/assets/bower_components/bootstrap/grunt/change-version.js +109 -0
  192. data/vendor/assets/bower_components/bootstrap/grunt/configBridge.json +46 -0
  193. data/vendor/assets/bower_components/bootstrap/grunt/npm-shrinkwrap.json +2679 -0
  194. data/vendor/assets/bower_components/bootstrap/grunt/sauce_browsers.yml +5 -5
  195. data/vendor/assets/bower_components/bootstrap/js/affix.js +46 -26
  196. data/vendor/assets/bower_components/bootstrap/js/alert.js +8 -6
  197. data/vendor/assets/bower_components/bootstrap/js/button.js +34 -19
  198. data/vendor/assets/bower_components/bootstrap/js/carousel.js +35 -21
  199. data/vendor/assets/bower_components/bootstrap/js/collapse.js +69 -27
  200. data/vendor/assets/bower_components/bootstrap/js/dropdown.js +55 -41
  201. data/vendor/assets/bower_components/bootstrap/js/modal.js +91 -32
  202. data/vendor/assets/bower_components/bootstrap/js/popover.js +5 -10
  203. data/vendor/assets/bower_components/bootstrap/js/scrollspy.js +28 -26
  204. data/vendor/assets/bower_components/bootstrap/js/tab.js +45 -18
  205. data/vendor/assets/bower_components/bootstrap/js/tooltip.js +117 -54
  206. data/vendor/assets/bower_components/bootstrap/js/transition.js +2 -2
  207. data/vendor/assets/bower_components/bootstrap/less/alerts.less +5 -0
  208. data/vendor/assets/bower_components/bootstrap/less/badges.less +14 -3
  209. data/vendor/assets/bower_components/bootstrap/less/bootstrap.less +6 -0
  210. data/vendor/assets/bower_components/bootstrap/less/button-groups.less +22 -18
  211. data/vendor/assets/bower_components/bootstrap/less/buttons.less +19 -10
  212. data/vendor/assets/bower_components/bootstrap/less/carousel.less +34 -7
  213. data/vendor/assets/bower_components/bootstrap/less/close.less +1 -0
  214. data/vendor/assets/bower_components/bootstrap/less/code.less +1 -0
  215. data/vendor/assets/bower_components/bootstrap/less/component-animations.less +3 -1
  216. data/vendor/assets/bower_components/bootstrap/less/dropdowns.less +9 -8
  217. data/vendor/assets/bower_components/bootstrap/less/forms.less +123 -50
  218. data/vendor/assets/bower_components/bootstrap/less/glyphicons.less +75 -3
  219. data/vendor/assets/bower_components/bootstrap/less/input-groups.less +8 -3
  220. data/vendor/assets/bower_components/bootstrap/less/jumbotron.less +10 -4
  221. data/vendor/assets/bower_components/bootstrap/less/list-group.less +10 -11
  222. data/vendor/assets/bower_components/bootstrap/less/media.less +40 -30
  223. data/vendor/assets/bower_components/bootstrap/less/mixins.less +1 -0
  224. data/vendor/assets/bower_components/bootstrap/less/mixins/background-variant.less +2 -1
  225. data/vendor/assets/bower_components/bootstrap/less/mixins/buttons.less +19 -4
  226. data/vendor/assets/bower_components/bootstrap/less/mixins/forms.less +5 -1
  227. data/vendor/assets/bower_components/bootstrap/less/mixins/grid-framework.less +4 -4
  228. data/vendor/assets/bower_components/bootstrap/less/mixins/grid.less +4 -4
  229. data/vendor/assets/bower_components/bootstrap/less/mixins/hide-text.less +2 -2
  230. data/vendor/assets/bower_components/bootstrap/less/mixins/image.less +0 -1
  231. data/vendor/assets/bower_components/bootstrap/less/mixins/labels.less +1 -1
  232. data/vendor/assets/bower_components/bootstrap/less/mixins/list-group.less +2 -1
  233. data/vendor/assets/bower_components/bootstrap/less/mixins/pagination.less +2 -1
  234. data/vendor/assets/bower_components/bootstrap/less/mixins/reset-text.less +18 -0
  235. data/vendor/assets/bower_components/bootstrap/less/mixins/responsive-visibility.less +1 -1
  236. data/vendor/assets/bower_components/bootstrap/less/mixins/tab-focus.less +3 -3
  237. data/vendor/assets/bower_components/bootstrap/less/mixins/text-emphasis.less +2 -1
  238. data/vendor/assets/bower_components/bootstrap/less/mixins/vendor-prefixes.less +8 -5
  239. data/vendor/assets/bower_components/bootstrap/less/modals.less +3 -3
  240. data/vendor/assets/bower_components/bootstrap/less/navbar.less +30 -25
  241. data/vendor/assets/bower_components/bootstrap/less/navs.less +1 -1
  242. data/vendor/assets/bower_components/bootstrap/less/normalize.less +12 -13
  243. data/vendor/assets/bower_components/bootstrap/less/pager.less +1 -2
  244. data/vendor/assets/bower_components/bootstrap/less/pagination.less +5 -4
  245. data/vendor/assets/bower_components/bootstrap/less/panels.less +33 -5
  246. data/vendor/assets/bower_components/bootstrap/less/popovers.less +5 -7
  247. data/vendor/assets/bower_components/bootstrap/less/print.less +96 -96
  248. data/vendor/assets/bower_components/bootstrap/less/progress-bars.less +1 -19
  249. data/vendor/assets/bower_components/bootstrap/less/responsive-embed.less +10 -9
  250. data/vendor/assets/bower_components/bootstrap/less/scaffolding.less +13 -2
  251. data/vendor/assets/bower_components/bootstrap/less/tables.less +14 -13
  252. data/vendor/assets/bower_components/bootstrap/less/theme.less +49 -16
  253. data/vendor/assets/bower_components/bootstrap/less/thumbnails.less +1 -1
  254. data/vendor/assets/bower_components/bootstrap/less/tooltip.less +13 -7
  255. data/vendor/assets/bower_components/bootstrap/less/type.less +2 -13
  256. data/vendor/assets/bower_components/bootstrap/less/utilities.less +0 -2
  257. data/vendor/assets/bower_components/bootstrap/less/variables.less +45 -22
  258. data/vendor/assets/bower_components/bootstrap/nuget/MyGet.ps1 +8 -0
  259. data/vendor/assets/bower_components/bootstrap/nuget/bootstrap.less.nuspec +28 -0
  260. data/vendor/assets/bower_components/bootstrap/nuget/bootstrap.nuspec +28 -0
  261. data/vendor/assets/bower_components/bootstrap/package.js +32 -0
  262. data/vendor/assets/bower_components/bootstrap/package.json +49 -41
  263. data/vendor/assets/bower_components/flow.js/README.md +79 -64
  264. data/vendor/assets/bower_components/flow.js/bower.json +6 -2
  265. data/vendor/assets/bower_components/flow.js/dist/flow.js +1635 -1532
  266. data/vendor/assets/bower_components/flow.js/dist/flow.min.js +2 -2
  267. data/vendor/assets/bower_components/flow.js/package.js +24 -0
  268. data/vendor/assets/bower_components/flow.js/travis.sh +19 -0
  269. data/vendor/assets/bower_components/font-awesome/scss/_path.scss +5 -5
  270. data/vendor/assets/bower_components/font-awesome/scss/_variables.scss +1 -2
  271. data/vendor/assets/bower_components/ng-flow/bower.json +1 -1
  272. data/vendor/assets/bower_components/ng-flow/dist/ng-flow-standalone.js +1655 -1542
  273. data/vendor/assets/bower_components/ng-flow/dist/ng-flow-standalone.min.js +2 -2
  274. data/vendor/assets/bower_components/ng-flow/dist/ng-flow.js +19 -9
  275. data/vendor/assets/bower_components/ng-flow/dist/ng-flow.min.js +2 -2
  276. data/vendor/assets/bower_components/ng-flow/index.js +3 -0
  277. data/vendor/assets/bower_components/ng-flow/package.js +25 -0
  278. data/vendor/assets/bower_components/ng-flow/src/directives/drag-events.js +2 -1
  279. data/vendor/assets/bower_components/ng-flow/src/directives/events.js +2 -1
  280. data/vendor/assets/bower_components/ng-flow/src/directives/init.js +7 -1
  281. data/vendor/assets/bower_components/ng-flow/travis.sh +19 -0
  282. data/vendor/assets/bower_components/{Responsive-Dashboard → rdash-ui}/LICENSE +21 -21
  283. data/vendor/assets/bower_components/rdash-ui/README.md +55 -0
  284. data/vendor/assets/bower_components/rdash-ui/bower.json +33 -0
  285. data/vendor/assets/bower_components/rdash-ui/dist/css/rdash.min.css +1 -0
  286. data/vendor/assets/bower_components/rdash-ui/dist/css/rdash.scss +489 -0
  287. data/vendor/assets/bower_components/{Responsive-Dashboard/src → rdash-ui/dist}/fonts/montserrat-regular-webfont.eot +0 -0
  288. data/vendor/assets/bower_components/{Responsive-Dashboard/src → rdash-ui/dist}/fonts/montserrat-regular-webfont.svg +1316 -1316
  289. data/vendor/assets/bower_components/{Responsive-Dashboard/src → rdash-ui/dist}/fonts/montserrat-regular-webfont.ttf +0 -0
  290. data/vendor/assets/bower_components/{Responsive-Dashboard/src → rdash-ui/dist}/fonts/montserrat-regular-webfont.woff +0 -0
  291. metadata +227 -180
  292. data/config/initializers/bower_rails.rb +0 -16
  293. data/vendor/assets/bower_components/Responsive-Dashboard/CONTRIBUTING.md +0 -21
  294. data/vendor/assets/bower_components/Responsive-Dashboard/README.md +0 -119
  295. data/vendor/assets/bower_components/Responsive-Dashboard/bower.json +0 -32
  296. data/vendor/assets/bower_components/Responsive-Dashboard/gulpfile.js +0 -81
  297. data/vendor/assets/bower_components/Responsive-Dashboard/package.json +0 -21
  298. data/vendor/assets/bower_components/Responsive-Dashboard/src/index.html +0 -413
  299. data/vendor/assets/bower_components/Responsive-Dashboard/src/js/dashboard/controllers/alerts-ctrl.js +0 -19
  300. data/vendor/assets/bower_components/Responsive-Dashboard/src/js/dashboard/controllers/master-ctrl.js +0 -51
  301. data/vendor/assets/bower_components/Responsive-Dashboard/src/js/dashboard/directives/loading.js +0 -13
  302. data/vendor/assets/bower_components/Responsive-Dashboard/src/js/dashboard/directives/widget-body.js +0 -16
  303. data/vendor/assets/bower_components/Responsive-Dashboard/src/js/dashboard/directives/widget-header.js +0 -17
  304. data/vendor/assets/bower_components/Responsive-Dashboard/src/js/dashboard/directives/widget.js +0 -16
  305. data/vendor/assets/bower_components/Responsive-Dashboard/src/js/dashboard/module.js +0 -1
  306. data/vendor/assets/bower_components/Responsive-Dashboard/src/js/dashboard/routes.js +0 -22
  307. data/vendor/assets/bower_components/Responsive-Dashboard/src/less/dashboard/content.less +0 -19
  308. data/vendor/assets/bower_components/Responsive-Dashboard/src/less/dashboard/hamburg.less +0 -29
  309. data/vendor/assets/bower_components/Responsive-Dashboard/src/less/dashboard/header.less +0 -92
  310. data/vendor/assets/bower_components/Responsive-Dashboard/src/less/dashboard/loading.less +0 -40
  311. data/vendor/assets/bower_components/Responsive-Dashboard/src/less/dashboard/main.less +0 -73
  312. data/vendor/assets/bower_components/Responsive-Dashboard/src/less/dashboard/mixins.less +0 -5
  313. data/vendor/assets/bower_components/Responsive-Dashboard/src/less/dashboard/sidebar.less +0 -122
  314. data/vendor/assets/bower_components/Responsive-Dashboard/src/less/dashboard/variables.less +0 -10
  315. data/vendor/assets/bower_components/Responsive-Dashboard/src/less/dashboard/widgets.less +0 -95
  316. data/vendor/assets/bower_components/bootstrap/dist/css/bootstrap.min.css.erb +0 -5
  317. data/vendor/assets/bower_components/flow.js/CHANGELOG.md +0 -37
  318. data/vendor/assets/bower_components/flow.js/Gruntfile.js +0 -132
  319. data/vendor/assets/bower_components/flow.js/karma.conf.js +0 -114
  320. data/vendor/assets/bower_components/flow.js/package.json +0 -50
  321. data/vendor/assets/bower_components/flow.js/src/flow.js +0 -1532
  322. data/vendor/assets/bower_components/jquery/MIT-LICENSE.txt +0 -21
  323. data/vendor/assets/bower_components/jquery/bower.json +0 -27
  324. data/vendor/assets/bower_components/jquery/dist/jquery.js +0 -9190
  325. data/vendor/assets/bower_components/jquery/dist/jquery.min.js +0 -5
  326. data/vendor/assets/bower_components/jquery/dist/jquery.min.map +0 -1
  327. data/vendor/assets/bower_components/jquery/src/ajax.js +0 -806
  328. data/vendor/assets/bower_components/jquery/src/ajax/jsonp.js +0 -89
  329. data/vendor/assets/bower_components/jquery/src/ajax/load.js +0 -75
  330. data/vendor/assets/bower_components/jquery/src/ajax/parseJSON.js +0 -13
  331. data/vendor/assets/bower_components/jquery/src/ajax/parseXML.js +0 -28
  332. data/vendor/assets/bower_components/jquery/src/ajax/script.js +0 -64
  333. data/vendor/assets/bower_components/jquery/src/ajax/var/nonce.js +0 -5
  334. data/vendor/assets/bower_components/jquery/src/ajax/var/rquery.js +0 -3
  335. data/vendor/assets/bower_components/jquery/src/ajax/xhr.js +0 -135
  336. data/vendor/assets/bower_components/jquery/src/attributes.js +0 -11
  337. data/vendor/assets/bower_components/jquery/src/attributes/attr.js +0 -143
  338. data/vendor/assets/bower_components/jquery/src/attributes/classes.js +0 -158
  339. data/vendor/assets/bower_components/jquery/src/attributes/prop.js +0 -96
  340. data/vendor/assets/bower_components/jquery/src/attributes/support.js +0 -35
  341. data/vendor/assets/bower_components/jquery/src/attributes/val.js +0 -163
  342. data/vendor/assets/bower_components/jquery/src/callbacks.js +0 -205
  343. data/vendor/assets/bower_components/jquery/src/core.js +0 -498
  344. data/vendor/assets/bower_components/jquery/src/core/access.js +0 -60
  345. data/vendor/assets/bower_components/jquery/src/core/init.js +0 -123
  346. data/vendor/assets/bower_components/jquery/src/core/parseHTML.js +0 -39
  347. data/vendor/assets/bower_components/jquery/src/core/ready.js +0 -97
  348. data/vendor/assets/bower_components/jquery/src/core/var/rsingleTag.js +0 -4
  349. data/vendor/assets/bower_components/jquery/src/css.js +0 -451
  350. data/vendor/assets/bower_components/jquery/src/css/addGetHookIf.js +0 -24
  351. data/vendor/assets/bower_components/jquery/src/css/curCSS.js +0 -57
  352. data/vendor/assets/bower_components/jquery/src/css/defaultDisplay.js +0 -70
  353. data/vendor/assets/bower_components/jquery/src/css/hiddenVisibleSelectors.js +0 -15
  354. data/vendor/assets/bower_components/jquery/src/css/support.js +0 -91
  355. data/vendor/assets/bower_components/jquery/src/css/swap.js +0 -28
  356. data/vendor/assets/bower_components/jquery/src/css/var/cssExpand.js +0 -3
  357. data/vendor/assets/bower_components/jquery/src/css/var/getStyles.js +0 -5
  358. data/vendor/assets/bower_components/jquery/src/css/var/isHidden.js +0 -13
  359. data/vendor/assets/bower_components/jquery/src/css/var/rmargin.js +0 -3
  360. data/vendor/assets/bower_components/jquery/src/css/var/rnumnonpx.js +0 -5
  361. data/vendor/assets/bower_components/jquery/src/data.js +0 -179
  362. data/vendor/assets/bower_components/jquery/src/data/Data.js +0 -181
  363. data/vendor/assets/bower_components/jquery/src/data/accepts.js +0 -20
  364. data/vendor/assets/bower_components/jquery/src/data/var/data_priv.js +0 -5
  365. data/vendor/assets/bower_components/jquery/src/data/var/data_user.js +0 -5
  366. data/vendor/assets/bower_components/jquery/src/deferred.js +0 -149
  367. data/vendor/assets/bower_components/jquery/src/deprecated.js +0 -13
  368. data/vendor/assets/bower_components/jquery/src/dimensions.js +0 -50
  369. data/vendor/assets/bower_components/jquery/src/effects.js +0 -649
  370. data/vendor/assets/bower_components/jquery/src/effects/Tween.js +0 -114
  371. data/vendor/assets/bower_components/jquery/src/effects/animatedSelector.js +0 -13
  372. data/vendor/assets/bower_components/jquery/src/event.js +0 -868
  373. data/vendor/assets/bower_components/jquery/src/event/alias.js +0 -39
  374. data/vendor/assets/bower_components/jquery/src/event/support.js +0 -9
  375. data/vendor/assets/bower_components/jquery/src/exports/amd.js +0 -24
  376. data/vendor/assets/bower_components/jquery/src/exports/global.js +0 -32
  377. data/vendor/assets/bower_components/jquery/src/intro.js +0 -44
  378. data/vendor/assets/bower_components/jquery/src/jquery.js +0 -36
  379. data/vendor/assets/bower_components/jquery/src/manipulation.js +0 -582
  380. data/vendor/assets/bower_components/jquery/src/manipulation/_evalUrl.js +0 -18
  381. data/vendor/assets/bower_components/jquery/src/manipulation/support.js +0 -31
  382. data/vendor/assets/bower_components/jquery/src/manipulation/var/rcheckableType.js +0 -3
  383. data/vendor/assets/bower_components/jquery/src/offset.js +0 -204
  384. data/vendor/assets/bower_components/jquery/src/outro.js +0 -1
  385. data/vendor/assets/bower_components/jquery/src/queue.js +0 -142
  386. data/vendor/assets/bower_components/jquery/src/queue/delay.js +0 -22
  387. data/vendor/assets/bower_components/jquery/src/selector-native.js +0 -172
  388. data/vendor/assets/bower_components/jquery/src/selector-sizzle.js +0 -14
  389. data/vendor/assets/bower_components/jquery/src/selector.js +0 -1
  390. data/vendor/assets/bower_components/jquery/src/serialize.js +0 -111
  391. data/vendor/assets/bower_components/jquery/src/sizzle/dist/sizzle.js +0 -2044
  392. data/vendor/assets/bower_components/jquery/src/sizzle/dist/sizzle.min.js +0 -3
  393. data/vendor/assets/bower_components/jquery/src/sizzle/dist/sizzle.min.map +0 -1
  394. data/vendor/assets/bower_components/jquery/src/traversing.js +0 -200
  395. data/vendor/assets/bower_components/jquery/src/traversing/findFilter.js +0 -100
  396. data/vendor/assets/bower_components/jquery/src/traversing/var/rneedsContext.js +0 -6
  397. data/vendor/assets/bower_components/jquery/src/var/arr.js +0 -3
  398. data/vendor/assets/bower_components/jquery/src/var/class2type.js +0 -4
  399. data/vendor/assets/bower_components/jquery/src/var/concat.js +0 -5
  400. data/vendor/assets/bower_components/jquery/src/var/hasOwn.js +0 -5
  401. data/vendor/assets/bower_components/jquery/src/var/indexOf.js +0 -5
  402. data/vendor/assets/bower_components/jquery/src/var/pnum.js +0 -3
  403. data/vendor/assets/bower_components/jquery/src/var/push.js +0 -5
  404. data/vendor/assets/bower_components/jquery/src/var/rnotwhite.js +0 -3
  405. data/vendor/assets/bower_components/jquery/src/var/slice.js +0 -5
  406. data/vendor/assets/bower_components/jquery/src/var/strundefined.js +0 -3
  407. data/vendor/assets/bower_components/jquery/src/var/support.js +0 -4
  408. data/vendor/assets/bower_components/jquery/src/var/toString.js +0 -5
  409. data/vendor/assets/bower_components/jquery/src/wrap.js +0 -78
@@ -1,16 +1,2 @@
1
1
  .row
2
- .col-lg-12 flow-init="{headers: setHeaders}" flow-files-submitted="$flow.upload()" flow-file-success="$file.msg = $message" flow-complete="$state.go('assets')"
3
- /! The table listing the files available for upload/download
4
- .form-group
5
- button.btn.btn-primary flow-btn="" = I18n.t(:upload_assets)
6
- table.table.table-striped.files.ng-cloak
7
- tr ng-repeat="file in $flow.files"
8
- td
9
- img flow-img="file" width="50" height="50" ng-show="isImageType(file)"
10
- td
11
- | {{ file.name }}
12
- td
13
- .progress.progress-striped ng-class="{active: file.isUploading()}"
14
- .progress-bar role="progressbar" ng-style="{width: (file.progress() * 100) + '%'}"
15
- td
16
- | {{ file.msg }}
2
+ ng-include src="'assets/form.html'"
@@ -5,7 +5,7 @@
5
5
  a href="#liquor" Liquor
6
6
  - Kms::HelpService.templates.each_with_index do |(engine_class, _),index|
7
7
  li role="presentation" ng-class="{active: isActiveTab(#{index + 1})}" ng-click="setActive(#{index + 1})"
8
- a href="##{engine_class.engine_name}" = engine_class.engine_name.humanize
8
+ a href="##{engine_class.engine_name}" = engine_class.engine_name.humanize.gsub('Kms', 'APIQ')
9
9
  div class="tab-content"
10
10
  div role="tabpanel" class="tab-pane" ng-class="{active: isActiveTab(0)}" id="liquor"
11
11
  .widget
@@ -7,11 +7,10 @@ script type="text/ng-template" id="nodes_renderer.html"
7
7
  a ui-sref="pages.edit({id: node.id})" data-nodrag=""
8
8
  | {{node.title}} 
9
9
  i.fa.fa-cogs style="font-size:18px !important" ng-if="node.templatable"
10
+ i.fa.fa-exclamation-circle style="font-size:18px !important" ng-if="node.slug == '404'"
10
11
  div style="width:30%;float:left;height:30px;line-height:30px;"
11
12
  | {{ node.fullpath }}
12
13
  .btn-group.pull-right
13
- /a.btn.btn-sm.btn-info data-nodrag="" ui-sref="pages.edit({id: node.id})"
14
- /i.fa.fa-pencil
15
14
  a.btn.btn-sm.btn-danger data-nodrag="" ng-click="destroy(node)" style="margin-right: 8px;"
16
15
  i.fa.fa-times
17
16
  ol ui-tree-nodes="pages" ng-model="node.children" ng-class="{hidden: collapsed}"
@@ -19,16 +18,28 @@ script type="text/ng-template" id="nodes_renderer.html"
19
18
 
20
19
 
21
20
 
22
- .row
21
+ .row ng-show="pages.length"
23
22
  .col-lg-12
24
23
  .widget
25
24
  .widget-header
26
25
  i.fa.fa-sitemap
27
26
  = Kms::Page.model_name.human(count: 1.1)
28
- /a.pull-right href="#" Manage
29
27
  a.btn.btn-sm.btn-primary.pull-right ui-sref="pages.new"
30
28
  = I18n.t("add_page")
31
29
  .widget-body.no-padding
32
30
  div ui-tree="pages" callbacks="treeOptions"
33
- ol ui-tree-nodes="" ng-model="pages" id="tree-root"
31
+ ol ui-tree-nodes="" ng-model="pages" id="tree-root" data-nodrop-enabled="true"
34
32
  li ng-repeat="node in pages" ui-tree-node="" ng-include="'nodes_renderer.html'" data-id="{{node.id}}"
33
+ .row ng-show="!pages.length"
34
+ .center-block
35
+ .jumbotron.vertical-center.text-center
36
+ .container
37
+ h1
38
+ span.fa-stack.fa-lg
39
+ i.fa.fa-circle.fa-stack-2x
40
+ i.fa.fa-sitemap.fa-stack-1x
41
+ p = I18n.t(:pages_description)
42
+ h5 ng-show="!templates.length" = I18n.t(:no_templates_yet)
43
+ p
44
+ a.btn.btn-primary.btn-lg ng-show="templates.length" ui-sref="pages.new" role="button" = I18n.t(:create_first_page)
45
+ a.btn.btn-primary.btn-lg ng-show="!templates.length" ui-sref="templates.new" role="button" = I18n.t(:create_first_template)
@@ -1,10 +1,9 @@
1
- .row
1
+ .row ng-show="snippets.length"
2
2
  .col-lg-12
3
3
  .widget
4
4
  .widget-header
5
5
  i.fa.fa-bookmark
6
6
  = Kms::Snippet.model_name.human(count: 1.1)
7
- /a.pull-right href="#" Manage
8
7
  a.btn.btn-sm.btn-primary.pull-right ui-sref="snippets.new" ng-show="currentUser.admin"
9
8
  = I18n.t("add_snippet")
10
9
  .widget-body.no-padding
@@ -12,12 +11,24 @@
12
11
  table.table
13
12
  tbody
14
13
  tr ng-repeat="snippet in snippets"
15
- td style="width: 80%"
14
+ td style="width: 70%"
16
15
  a ui-sref="snippets.edit({id: snippet.id})"
17
16
  | {{ snippet.name }}
17
+ td style="width: 20%"
18
+ em
19
+ | {{ snippet.slug }}
18
20
  td
19
21
  .btn-group.pull-right
20
- /a.btn.btn-sm.btn-info ui-sref="snippets.edit({id: snippet.id})" ng-show="currentUser.admin"
21
- /i.fa.fa-pencil
22
22
  a.btn.btn-sm.btn-danger ng-click="destroy(snippet)" ng-show="currentUser.admin"
23
23
  i.fa.fa-times
24
+ .row ng-show="!snippets.length"
25
+ .center-block
26
+ .jumbotron.vertical-center.text-center
27
+ .container
28
+ h1
29
+ span.fa-stack.fa-lg
30
+ i.fa.fa-circle.fa-stack-2x
31
+ i.fa.fa-bookmark.fa-stack-1x
32
+ p = I18n.t(:snippets_description)
33
+ p
34
+ a.btn.btn-primary.btn-lg ui-sref="snippets.new" role="button" = I18n.t(:create_first_snippet)
@@ -1,23 +1,33 @@
1
- .row
1
+ .row ng-show="templates.length"
2
2
  .col-lg-12
3
3
  .widget
4
4
  .widget-header
5
5
  i.fa.fa-support
6
6
  = Kms::Template.model_name.human(count: 1.1)
7
- /a.pull-right href="#" Manage
8
7
  a.btn.btn-sm.btn-primary.pull-right ui-sref="templates.new" ng-show="currentUser.admin"
9
- = I18n.t("add_template")
8
+ = I18n.t(:add_template)
10
9
  .widget-body.no-padding
11
10
  .table-responsive
12
11
  table.table
13
12
  tbody
14
13
  tr ng-repeat="template in templates"
15
14
  td style="width: 80%"
16
- a ui-sref="templates.edit({id: template.id})"
15
+ a ui-sref="templates.edit({id: template.id})" ng-show="currentUser.admin"
16
+ | {{ template.name }}
17
+ span ng-hide="currentUser.admin"
17
18
  | {{ template.name }}
18
19
  td
19
20
  .btn-group.pull-right
20
- /a.btn.btn-sm.btn-info ui-sref="templates.edit({id: template.id})" ng-show="currentUser.admin"
21
- /i.fa.fa-pencil
22
21
  a.btn.btn-sm.btn-danger ng-click="destroy(template)" ng-show="currentUser.admin"
23
22
  i.fa.fa-times
23
+ .row ng-show="!templates.length"
24
+ .center-block
25
+ .jumbotron.vertical-center.text-center
26
+ .container
27
+ h1
28
+ span.fa-stack.fa-lg
29
+ i.fa.fa-circle.fa-stack-2x
30
+ i.fa.fa-support.fa-stack-1x
31
+ p = I18n.t(:templates_description)
32
+ p
33
+ a.btn.btn-primary.btn-lg ui-sref="templates.new" role="button" = I18n.t(:create_first_template)
@@ -11,7 +11,7 @@
11
11
  * file per style scope.
12
12
  *
13
13
  *= require bootstrap/dist/css/bootstrap
14
- *= require font-awesome/less/font-awesome
14
+ *= require font-awesome/scss/font-awesome
15
15
  *= require angular-ui-tree/dist/angular-ui-tree.min
16
16
  *= require codemirror/lib/codemirror
17
17
  *= require codemirror/addon/display/fullscreen
@@ -23,7 +23,7 @@
23
23
  *= require alertify/themes/alertify.bootstrap
24
24
  *= require angular-xeditable/dist/css/xeditable
25
25
  *= require ng-sortable/dist/ng-sortable
26
- *= require kms/responsive_dashboard
26
+ *= require rdash-ui/dist/css/rdash
27
27
  *= require kms/custom
28
28
  *= require application
29
29
  *= require_self
@@ -64,7 +64,16 @@ table td {
64
64
  }
65
65
  .CodeMirror {
66
66
  height: 500px;
67
+ font-size: 16px;
68
+ // pre {
69
+ // font-family: 'casperregular';
70
+ // }
67
71
  }
72
+ // .cm-s-default {
73
+ // .cm-tag, .cm-attribute, .cm-string, .cm-comment {
74
+ // font-family: monospace;
75
+ // }
76
+ // }
68
77
  .assets-block {
69
78
  a.btn.add-asset {
70
79
  border: none;
@@ -86,3 +95,32 @@ table td {
86
95
  .widget .widget-header table i {
87
96
  margin-right: 0px;
88
97
  }
98
+ .vertical-center {
99
+ min-height: 80%; /* Fallback for browsers do NOT support vh unit */
100
+ min-height: 80vh; /* These two lines are counted as one :-) */
101
+
102
+ display: flex;
103
+ align-items: center;
104
+ }
105
+ .jumbotron {
106
+ background-color: inherit;
107
+ i.fa-stack-1x {
108
+ color: #ff5274;
109
+ }
110
+ i.fa-stack-2x {
111
+ color: white;
112
+ }
113
+ }
114
+ .row.header .meta .page {
115
+ padding-top: 17px;
116
+ }
117
+ svg.logo {
118
+ vertical-align: top;
119
+ margin-right: -10px;
120
+ }
121
+ ul.sidebar .sidebar-main {
122
+ height: 75px;
123
+ a {
124
+ line-height: 70px;
125
+ }
126
+ }
@@ -2,14 +2,16 @@ module Kms
2
2
  class AssetsController < ApplicationController
3
3
  load_and_authorize_resource
4
4
  skip_before_action :verify_authenticity_token, only: :ckeditor
5
+ wrap_parameters :asset, include: [:file, :text, :performing_plain_text]
5
6
 
6
7
  def index
7
- render json: Asset.all.to_json(methods: [:filename, :url])
8
+ render json: Asset.all
8
9
  end
9
10
 
10
11
  def create
11
12
  @asset = Asset.new(asset_params)
12
13
  if @asset.save
14
+ # special json for ng-flow
13
15
  render json: {success: true, files: [@asset]}.to_json
14
16
  else
15
17
  render text: '', status: :unprocessable_entity
@@ -31,28 +33,25 @@ module Kms
31
33
 
32
34
  def update
33
35
  @asset = Asset.find(params[:id])
34
- asset_params.merge!(text: params[:text], performing_plain_text: params[:performing_plain_text]) if params[:text]
35
- @asset.update_attributes(asset_params)
36
- render json: @asset.to_json
36
+ @asset.update(asset_params)
37
+ render json: @asset
37
38
  end
38
39
 
39
40
  def show
40
41
  @asset = Asset.find(params[:id])
41
- attrs = {}
42
- attrs.merge!(methods: [:filename, :text]) if @asset.stylesheet_or_javascript?
43
- render json: @asset.to_json(attrs)
42
+ render json: @asset
44
43
  end
45
44
 
46
45
  def destroy
47
46
  @asset = Asset.find(params[:id])
48
47
  @asset.destroy
49
- render json: @asset.to_json
48
+ head :no_content
50
49
  end
51
50
 
52
51
  protected
53
52
 
54
53
  def asset_params
55
- params.require(:asset).permit!
54
+ params.require(:asset).permit(:file, :text, :performing_plain_text)
56
55
  end
57
56
  end
58
57
  end
@@ -4,37 +4,36 @@ module Kms
4
4
  wrap_parameters :page, include: [:title, :slug, :content, :published, :template_id, :templatable,:templatable_type,:position,:hidden, :parent_id]
5
5
 
6
6
  def index
7
- #render json: Page.order("created_at asc").to_json(methods: :parent_id, except: :ancestry)
8
- render json: Page.arrange_serializable(order: :position).to_json
7
+ render json: Page.arrange_serializable(order: :position)
9
8
  end
10
9
 
11
10
  def create
12
11
  @page = Page.new(page_params)
13
12
  if @page.save
14
- render json: @page.to_json
13
+ head :no_content
15
14
  else
16
- render json: @page.to_json(except: :ancestry, methods: :errors), status: :unprocessable_entity
15
+ render json: {errors: @page.errors}.to_json, status: :unprocessable_entity
17
16
  end
18
17
  end
19
18
 
20
19
  def update
21
20
  @page = Page.find(params[:id])
22
- if @page.update_attributes(page_params)
23
- render json: @page.to_json
21
+ if @page.update(page_params)
22
+ head :no_content
24
23
  else
25
- render json: @page.to_json(except: :ancestry, methods: :errors), status: :unprocessable_entity
24
+ render json: {errors: @page.errors}.to_json, status: :unprocessable_entity
26
25
  end
27
26
  end
28
27
 
29
28
  def show
30
29
  @page = Page.find(params[:id])
31
- render json: @page.to_json(methods: :parent_id, except: :ancestry)
30
+ render json: @page
32
31
  end
33
32
 
34
33
  def destroy
35
34
  @page = Page.find(params[:id])
36
35
  @page.destroy
37
- render json: @page.to_json
36
+ head :no_content
38
37
  end
39
38
 
40
39
  def sorting
@@ -44,7 +43,7 @@ module Kms
44
43
  p.update_attribute(:position, index)
45
44
  sort(page["id"], page["children"]) if page["children"].present?
46
45
  end
47
- render json: Page.arrange_serializable(order: :position).to_json
46
+ render json: Page.arrange_serializable(order: :position)
48
47
  end
49
48
 
50
49
  protected
@@ -61,7 +60,7 @@ module Kms
61
60
  end
62
61
 
63
62
  def page_params
64
- params.require(:page).permit!
63
+ params.require(:page).permit(:title, :slug, :content, :published, :hidden, :template_id, :parent_id, :position, :templatable, :templatable_type)
65
64
  end
66
65
  end
67
66
  end
@@ -1,14 +1,15 @@
1
1
  module Kms
2
2
  class Public::PagesController < ActionController::Base
3
+ protect_from_forgery with: :exception
3
4
 
4
5
  before_action :eval_externals
5
6
 
6
7
  def show
7
- page_result = Kms.template_manager.render(@page.register_id, @externals)
8
- result = Kms.template_manager.render(@template.register_id, @externals.
9
- merge(_inner_template: page_result))
8
+ page_result = Kms.template_manager.render(@page.register_id, @externals)
9
+ result = Kms.template_manager.render(@template.register_id,
10
+ @externals.merge(_inner_template: page_result))
10
11
 
11
- render html: result.html_safe
12
+ render html: result.html_safe, status: (@page.not_found? ? :not_found : :ok)
12
13
  end
13
14
 
14
15
  protected
@@ -1,5 +1,7 @@
1
1
  module Kms
2
2
  class Public::SearchController < ActionController::Base
3
+ protect_from_forgery with: :exception
4
+
3
5
  def search
4
6
  results = Page.advanced_search(params[:query]).to_drop#.split(' ').join('|').to_drop
5
7
  if params[:result_page] and @page = Page.find_by_fullpath(params[:result_page])
@@ -8,7 +8,7 @@ module Kms
8
8
 
9
9
  def update
10
10
  @settings = Settings.instance
11
- if @settings.update_attributes(settings_params)
11
+ if @settings.update(settings_params)
12
12
  render json: @settings
13
13
  else
14
14
  render json: @settings.to_json(methods: :errors), status: :unprocessable_entity
@@ -1,5 +1,6 @@
1
1
  module Kms
2
2
  class SnippetsController < ApplicationController
3
+ load_and_authorize_resource
3
4
  respond_to :json
4
5
 
5
6
  def index
@@ -38,7 +39,7 @@ module Kms
38
39
  protected
39
40
 
40
41
  def snippet_params
41
- params.require(:snippet).permit!
42
+ params.require(:snippet).permit(:name, :slug, :content)
42
43
  end
43
44
  end
44
45
  end
@@ -2,21 +2,22 @@ module Kms
2
2
  class TemplatesController < ApplicationController
3
3
  load_and_authorize_resource
4
4
  def index
5
- render json: Template.all.to_json
5
+ render json: Template.all
6
6
  end
7
7
 
8
8
  def create
9
9
  @template = Template.new(template_params)
10
+ @template.content = TemplateProcessor.new(@template).process
10
11
  if @template.save
11
- render json: @template.to_json
12
+ head :no_content
12
13
  else
13
- render json: @template.to_json(methods: :errors), status: :unprocessable_entity
14
+ render json: {errors: @template.errors}.to_json, status: :unprocessable_entity
14
15
  end
15
16
  end
16
17
 
17
18
  def update
18
19
  @template = Template.find(params[:id])
19
- if @template.update_attributes(template_params)
20
+ if @template.update(template_params)
20
21
  render json: @template.to_json
21
22
  else
22
23
  render json: @template.to_json(methods: :errors), status: :unprocessable_entity
@@ -37,7 +38,7 @@ module Kms
37
38
  protected
38
39
 
39
40
  def template_params
40
- params.require(:template).permit(:name,:content)
41
+ params.require(:template).permit(:name, :content)
41
42
  end
42
43
  end
43
44
  end
@@ -3,32 +3,35 @@ module Kms
3
3
  before_action :authenticate_kms_user!
4
4
  load_and_authorize_resource
5
5
  skip_authorize_resource only: :kms_user
6
+ wrap_parameters :user, include: [:email, :password, :password_confirmation, :role]
6
7
 
7
8
  def index
8
- render json: User.all.to_json(except: [:created_at, :updated_at], methods: :localized_role)
9
+ render json: User.all
9
10
  end
10
11
 
11
12
  def create
12
- user_params.merge!(password: params[:password], password_confirmation: params[:password_confirmation]) if params[:password]
13
13
  @user = User.new(user_params)
14
- @user.save
15
- render json: @user.to_json
14
+ if @user.save
15
+ head :no_content
16
+ else
17
+ render json: {errors: @user.errors}.to_json, status: :unprocessable_entity
18
+ end
16
19
  end
17
20
 
18
- def destroy
21
+ def destroy
19
22
  @user = User.find(params[:id])
20
23
  @user.destroy
21
- render json: @user.to_json
24
+ head :no_content
22
25
  end
23
26
 
24
27
  def kms_user
25
- render json: current_kms_user.to_json
28
+ render json: current_kms_user
26
29
  end
27
30
 
28
31
  protected
29
32
 
30
33
  def user_params
31
- params.require(:user).permit!
34
+ params.require(:user).permit(:email, :password, :password_confirmation, :role)
32
35
  end
33
36
 
34
37