alchemy_cms 3.2.1 → 3.3.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (556) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +28 -0
  3. data/.gitignore +2 -2
  4. data/.travis.yml +11 -3
  5. data/CHANGELOG.md +100 -0
  6. data/CONTRIBUTING.md +1 -1
  7. data/Gemfile +12 -1
  8. data/README.md +25 -7
  9. data/Rakefile +1 -3
  10. data/alchemy_cms.gemspec +7 -15
  11. data/app/assets/fonts/alchemy/icons.eot +0 -0
  12. data/app/assets/fonts/alchemy/icons.svg +28 -66
  13. data/app/assets/fonts/alchemy/icons.ttf +0 -0
  14. data/app/assets/fonts/alchemy/icons.woff +0 -0
  15. data/app/assets/images/alchemy/icons.png +0 -0
  16. data/app/assets/javascripts/alchemy/alchemy.base.js.coffee +10 -3
  17. data/app/assets/javascripts/alchemy/alchemy.buttons.js.coffee +15 -6
  18. data/app/assets/javascripts/alchemy/alchemy.char_counter.js.coffee +1 -1
  19. data/app/assets/javascripts/alchemy/alchemy.datepicker.js.coffee +1 -1
  20. data/app/assets/javascripts/alchemy/alchemy.dialog.js.coffee +10 -4
  21. data/app/assets/javascripts/alchemy/alchemy.dirty.js.coffee +16 -22
  22. data/app/assets/javascripts/alchemy/alchemy.dragndrop.js.coffee +69 -32
  23. data/app/assets/javascripts/alchemy/alchemy.element_editors.js.coffee +147 -83
  24. data/app/assets/javascripts/alchemy/alchemy.file_progress.js.coffee +14 -14
  25. data/app/assets/javascripts/alchemy/alchemy.hotkeys.js.coffee +1 -1
  26. data/app/assets/javascripts/alchemy/alchemy.i18n.js.coffee +1 -1
  27. data/app/assets/javascripts/alchemy/alchemy.image_overlay.coffee +55 -0
  28. data/app/assets/javascripts/alchemy/alchemy.initializer.js.coffee +8 -1
  29. data/app/assets/javascripts/alchemy/alchemy.js +3 -1
  30. data/app/assets/javascripts/alchemy/alchemy.link_dialog.js.coffee +36 -31
  31. data/app/assets/javascripts/alchemy/alchemy.preview.js.coffee +35 -29
  32. data/app/assets/javascripts/alchemy/alchemy.sitemap.js.coffee +51 -5
  33. data/app/assets/javascripts/alchemy/alchemy.tinymce.js.coffee +26 -10
  34. data/app/assets/javascripts/alchemy/{alchemy.windows.js.coffee → alchemy.trash_window.js.coffee} +1 -13
  35. data/app/assets/javascripts/alchemy/alchemy.uploader.js.coffee +15 -17
  36. data/app/assets/javascripts/tinymce/plugins/alchemy_link/plugin.min.js +3 -3
  37. data/app/assets/stylesheets/alchemy/_extends.scss +1 -1
  38. data/app/assets/stylesheets/alchemy/_mixins.scss +27 -0
  39. data/app/assets/stylesheets/alchemy/_variables.scss +1 -0
  40. data/app/assets/stylesheets/alchemy/admin.scss +1 -0
  41. data/app/assets/stylesheets/alchemy/archive.scss +0 -57
  42. data/app/assets/stylesheets/alchemy/base.scss +1 -18
  43. data/app/assets/stylesheets/alchemy/buttons.scss +30 -25
  44. data/app/assets/stylesheets/alchemy/dialogs.scss +25 -9
  45. data/app/assets/stylesheets/alchemy/elements.scss +182 -126
  46. data/app/assets/stylesheets/alchemy/form_fields.scss +14 -8
  47. data/app/assets/stylesheets/alchemy/forms.scss +10 -1
  48. data/app/assets/stylesheets/alchemy/frame.scss +3 -10
  49. data/app/assets/stylesheets/alchemy/icon-font.scss +13 -6
  50. data/app/assets/stylesheets/alchemy/icons.scss +16 -0
  51. data/app/assets/stylesheets/alchemy/image_library.scss +269 -0
  52. data/app/assets/stylesheets/alchemy/selects.scss +1 -0
  53. data/app/assets/stylesheets/alchemy/sitemap.scss +12 -1
  54. data/app/assets/stylesheets/alchemy/toolbar.scss +2 -2
  55. data/app/assets/stylesheets/alchemy/upload.scss +97 -87
  56. data/app/assets/stylesheets/alchemy/welcome.sass +49 -0
  57. data/app/controllers/alchemy/admin/attachments_controller.rb +21 -29
  58. data/app/controllers/alchemy/admin/base_controller.rb +23 -4
  59. data/app/controllers/alchemy/admin/clipboard_controller.rb +0 -1
  60. data/app/controllers/alchemy/admin/contents_controller.rb +2 -4
  61. data/app/controllers/alchemy/admin/dashboard_controller.rb +4 -4
  62. data/app/controllers/alchemy/admin/elements_controller.rb +20 -11
  63. data/app/controllers/alchemy/admin/essence_files_controller.rb +2 -2
  64. data/app/controllers/alchemy/admin/essence_pictures_controller.rb +10 -9
  65. data/app/controllers/alchemy/admin/languages_controller.rb +0 -1
  66. data/app/controllers/alchemy/admin/layoutpages_controller.rb +0 -2
  67. data/app/controllers/alchemy/admin/legacy_page_urls_controller.rb +0 -1
  68. data/app/controllers/alchemy/admin/pages_controller.rb +46 -29
  69. data/app/controllers/alchemy/admin/pictures_controller.rb +44 -55
  70. data/app/controllers/alchemy/admin/resources_controller.rb +8 -75
  71. data/app/controllers/alchemy/admin/tags_controller.rb +10 -8
  72. data/app/controllers/alchemy/admin/trash_controller.rb +0 -6
  73. data/app/controllers/alchemy/api/contents_controller.rb +0 -1
  74. data/app/controllers/alchemy/api/elements_controller.rb +0 -1
  75. data/app/controllers/alchemy/api/pages_controller.rb +4 -1
  76. data/app/controllers/alchemy/attachments_controller.rb +4 -5
  77. data/app/controllers/alchemy/base_controller.rb +6 -5
  78. data/app/controllers/alchemy/elements_controller.rb +1 -1
  79. data/app/controllers/alchemy/messages_controller.rb +9 -4
  80. data/app/controllers/alchemy/pages_controller.rb +133 -137
  81. data/app/controllers/alchemy/pictures_controller.rb +12 -10
  82. data/app/controllers/concerns/alchemy/admin/uploader_responses.rb +41 -0
  83. data/app/controllers/concerns/alchemy/legacy_page_redirects.rb +56 -0
  84. data/app/controllers/concerns/alchemy/locale_redirects.rb +38 -0
  85. data/app/controllers/concerns/alchemy/page_redirects.rb +80 -0
  86. data/app/controllers/concerns/alchemy/site_redirects.rb +22 -0
  87. data/app/helpers/alchemy/admin/attachments_helper.rb +1 -2
  88. data/app/helpers/alchemy/admin/base_helper.rb +36 -62
  89. data/app/helpers/alchemy/admin/contents_helper.rb +6 -80
  90. data/app/helpers/alchemy/admin/elements_helper.rb +36 -15
  91. data/app/helpers/alchemy/admin/essences_helper.rb +15 -8
  92. data/app/helpers/alchemy/admin/form_helper.rb +6 -10
  93. data/app/helpers/alchemy/admin/navigation_helper.rb +4 -7
  94. data/app/helpers/alchemy/admin/pages_helper.rb +14 -35
  95. data/app/helpers/alchemy/admin/pictures_helper.rb +12 -14
  96. data/app/helpers/alchemy/admin/tags_helper.rb +5 -7
  97. data/app/helpers/alchemy/base_helper.rb +9 -17
  98. data/app/helpers/alchemy/elements_block_helper.rb +5 -13
  99. data/app/helpers/alchemy/elements_helper.rb +6 -6
  100. data/app/helpers/alchemy/essences_helper.rb +3 -16
  101. data/app/helpers/alchemy/pages_helper.rb +32 -25
  102. data/app/helpers/alchemy/url_helper.rb +14 -16
  103. data/app/mailers/alchemy/messages.rb +0 -2
  104. data/app/models/alchemy.rb +0 -2
  105. data/app/models/alchemy/attachment.rb +45 -56
  106. data/app/models/alchemy/cell.rb +7 -8
  107. data/app/models/alchemy/content.rb +39 -24
  108. data/app/models/alchemy/content/factory.rb +27 -44
  109. data/app/models/alchemy/element.rb +101 -267
  110. data/app/models/alchemy/element/definitions.rb +9 -8
  111. data/app/models/alchemy/element/element_contents.rb +150 -0
  112. data/app/models/alchemy/element/element_essences.rb +109 -0
  113. data/app/models/alchemy/element/presenters.rb +18 -7
  114. data/app/models/alchemy/essence_date.rb +1 -2
  115. data/app/models/alchemy/essence_file.rb +10 -6
  116. data/app/models/alchemy/essence_html.rb +0 -1
  117. data/app/models/alchemy/essence_picture.rb +12 -4
  118. data/app/models/alchemy/essence_richtext.rb +6 -3
  119. data/app/models/alchemy/language.rb +48 -21
  120. data/app/models/alchemy/language/code.rb +1 -4
  121. data/app/models/alchemy/page.rb +33 -35
  122. data/app/models/alchemy/page/page_cells.rb +6 -10
  123. data/app/models/alchemy/page/page_elements.rb +130 -100
  124. data/app/models/alchemy/page/page_naming.rb +2 -3
  125. data/app/models/alchemy/page/page_natures.rb +50 -16
  126. data/app/models/alchemy/page/page_scopes.rb +7 -7
  127. data/app/models/alchemy/page/page_users.rb +3 -3
  128. data/app/models/alchemy/picture.rb +48 -33
  129. data/app/models/alchemy/picture/transformations.rb +8 -9
  130. data/app/models/alchemy/site.rb +19 -17
  131. data/app/models/alchemy/site/layout.rb +9 -9
  132. data/app/models/alchemy/tag.rb +0 -2
  133. data/app/models/alchemy/tree_node.rb +5 -4
  134. data/app/serializers/alchemy/attachment_serializer.rb +0 -1
  135. data/app/serializers/alchemy/base_serializer.rb +30 -0
  136. data/app/serializers/alchemy/cell_serializer.rb +0 -1
  137. data/app/serializers/alchemy/essence_boolean_serializer.rb +0 -1
  138. data/app/serializers/alchemy/essence_date_serializer.rb +0 -1
  139. data/app/serializers/alchemy/essence_file_serializer.rb +0 -1
  140. data/app/serializers/alchemy/essence_html_serializer.rb +0 -1
  141. data/app/serializers/alchemy/essence_link_serializer.rb +0 -1
  142. data/app/serializers/alchemy/essence_picture_serializer.rb +0 -1
  143. data/app/serializers/alchemy/essence_richtext_serializer.rb +0 -1
  144. data/app/serializers/alchemy/essence_select_serializer.rb +0 -1
  145. data/app/serializers/alchemy/essence_text_serializer.rb +0 -1
  146. data/app/serializers/alchemy/legacy_element_serializer.rb +0 -1
  147. data/app/serializers/alchemy/page_serializer.rb +0 -1
  148. data/app/serializers/alchemy/page_tree_serializer.rb +90 -0
  149. data/app/serializers/alchemy/picture_serializer.rb +0 -1
  150. data/app/views/alchemy/_menubar.html.erb +3 -3
  151. data/app/views/alchemy/admin/attachments/_archive_overlay.html.erb +11 -16
  152. data/app/views/alchemy/admin/attachments/_attachment.html.erb +9 -9
  153. data/app/views/alchemy/admin/attachments/_files_list.html.erb +7 -15
  154. data/app/views/alchemy/admin/attachments/_overlay_file_list.html.erb +1 -1
  155. data/app/views/alchemy/admin/attachments/_tag_list.html.erb +2 -2
  156. data/app/views/alchemy/admin/attachments/edit.html.erb +3 -3
  157. data/app/views/alchemy/admin/attachments/index.html.erb +10 -17
  158. data/app/views/alchemy/admin/clipboard/clear.js.erb +1 -1
  159. data/app/views/alchemy/admin/clipboard/index.html.erb +3 -3
  160. data/app/views/alchemy/admin/clipboard/insert.js.erb +3 -3
  161. data/app/views/alchemy/admin/clipboard/remove.js.erb +2 -2
  162. data/app/views/alchemy/admin/contents/_missing.html.erb +5 -7
  163. data/app/views/alchemy/admin/contents/create.js.erb +1 -1
  164. data/app/views/alchemy/admin/contents/new.html.erb +2 -2
  165. data/app/views/alchemy/admin/dashboard/_locked_pages.html.erb +6 -6
  166. data/app/views/alchemy/admin/dashboard/_recent_pages.html.erb +2 -2
  167. data/app/views/alchemy/admin/dashboard/_users.html.erb +2 -2
  168. data/app/views/alchemy/admin/dashboard/help.html.erb +15 -15
  169. data/app/views/alchemy/admin/dashboard/index.html.erb +6 -6
  170. data/app/views/alchemy/admin/dashboard/info.html.erb +5 -5
  171. data/app/views/alchemy/admin/elements/_add_picture.html.erb +1 -1
  172. data/app/views/alchemy/admin/elements/_element.html.erb +52 -18
  173. data/app/views/alchemy/admin/elements/_element_footer.html.erb +11 -0
  174. data/app/views/alchemy/admin/elements/{_element_head.html.erb → _element_header.html.erb} +8 -8
  175. data/app/views/alchemy/admin/elements/_element_toolbar.html.erb +49 -0
  176. data/app/views/alchemy/admin/elements/_new_element_form.html.erb +7 -6
  177. data/app/views/alchemy/admin/elements/_picture_gallery_editor.html.erb +1 -1
  178. data/app/views/alchemy/admin/elements/_refresh_editor.js.erb +1 -1
  179. data/app/views/alchemy/admin/elements/create.js.erb +13 -8
  180. data/app/views/alchemy/admin/elements/fold.js.erb +12 -7
  181. data/app/views/alchemy/admin/elements/index.html.erb +12 -8
  182. data/app/views/alchemy/admin/elements/list.html.erb +3 -3
  183. data/app/views/alchemy/admin/elements/new.html.erb +4 -4
  184. data/app/views/alchemy/admin/elements/order.js.erb +3 -4
  185. data/app/views/alchemy/admin/elements/publish.js.erb +15 -0
  186. data/app/views/alchemy/admin/elements/trash.js.erb +3 -3
  187. data/app/views/alchemy/admin/elements/update.js.erb +7 -8
  188. data/app/views/alchemy/admin/essence_files/edit.html.erb +16 -13
  189. data/app/views/alchemy/admin/essence_pictures/crop.html.erb +3 -3
  190. data/app/views/alchemy/admin/essence_pictures/edit.html.erb +8 -8
  191. data/app/views/alchemy/admin/languages/_form.html.erb +12 -3
  192. data/app/views/alchemy/admin/languages/_language.html.erb +8 -2
  193. data/app/views/alchemy/admin/languages/_table.html.erb +11 -5
  194. data/app/views/alchemy/admin/languages/index.html.erb +1 -1
  195. data/app/views/alchemy/admin/layoutpages/_layoutpage.html.erb +8 -8
  196. data/app/views/alchemy/admin/layoutpages/edit.html.erb +2 -2
  197. data/app/views/alchemy/admin/layoutpages/index.html.erb +6 -13
  198. data/app/views/alchemy/admin/leave.html.erb +5 -5
  199. data/app/views/alchemy/admin/legacy_page_urls/_form.html.erb +1 -1
  200. data/app/views/alchemy/admin/legacy_page_urls/_legacy_page_url.html.erb +4 -4
  201. data/app/views/alchemy/admin/legacy_page_urls/_new.html.erb +1 -1
  202. data/app/views/alchemy/admin/pages/_create_language_form.html.erb +9 -9
  203. data/app/views/alchemy/admin/pages/_external_link.html.erb +6 -6
  204. data/app/views/alchemy/admin/pages/_file_link.html.erb +6 -6
  205. data/app/views/alchemy/admin/pages/_form.html.erb +6 -6
  206. data/app/views/alchemy/admin/pages/_internal_link.html.erb +9 -11
  207. data/app/views/alchemy/admin/pages/_legacy_urls.html.erb +3 -3
  208. data/app/views/alchemy/admin/pages/_locked_page.html.erb +4 -4
  209. data/app/views/alchemy/admin/pages/_new_page_form.html.erb +2 -2
  210. data/app/views/alchemy/admin/pages/_page.html.erb +95 -80
  211. data/app/views/alchemy/admin/pages/_page_for_links.html.erb +22 -22
  212. data/app/views/alchemy/admin/pages/_page_infos.html.erb +12 -0
  213. data/app/views/alchemy/admin/pages/_page_status.html.erb +7 -9
  214. data/app/views/alchemy/admin/pages/_sitemap.html.erb +35 -6
  215. data/app/views/alchemy/admin/pages/_tinymce_custom_config.html.erb +0 -3
  216. data/app/views/alchemy/admin/pages/configure.html.erb +1 -1
  217. data/app/views/alchemy/admin/pages/configure_external.html.erb +4 -4
  218. data/app/views/alchemy/admin/pages/edit.html.erb +39 -44
  219. data/app/views/alchemy/admin/pages/flush.js.erb +1 -1
  220. data/app/views/alchemy/admin/pages/fold.js.erb +2 -3
  221. data/app/views/alchemy/admin/pages/index.html.erb +15 -22
  222. data/app/views/alchemy/admin/pages/info.html.erb +8 -8
  223. data/app/views/alchemy/admin/pages/link.html.erb +3 -3
  224. data/app/views/alchemy/admin/pages/locked.html.erb +1 -1
  225. data/app/views/alchemy/admin/pages/new.html.erb +4 -4
  226. data/app/views/alchemy/admin/pages/sort.js.erb +1 -2
  227. data/app/views/alchemy/admin/pages/unlock.js.erb +1 -1
  228. data/app/views/alchemy/admin/pages/update.js.erb +3 -3
  229. data/app/views/alchemy/admin/partials/_autocomplete_tag_list.html.erb +1 -1
  230. data/app/views/alchemy/admin/partials/_language_tree_select.html.erb +1 -1
  231. data/app/views/alchemy/admin/partials/_main_navigation_entry.html.erb +1 -1
  232. data/app/views/alchemy/admin/partials/_remote_search_form.html.erb +9 -15
  233. data/app/views/alchemy/admin/partials/_search_form.html.erb +14 -13
  234. data/app/views/alchemy/admin/partials/_sub_navigation.html.erb +1 -1
  235. data/app/views/alchemy/admin/pictures/_archive.html.erb +14 -14
  236. data/app/views/alchemy/admin/pictures/_filter_and_size_bar.html.erb +30 -36
  237. data/app/views/alchemy/admin/pictures/_filter_bar.html.erb +5 -5
  238. data/app/views/alchemy/admin/pictures/{edit.html.erb → _form.html.erb} +7 -6
  239. data/app/views/alchemy/admin/pictures/_infos.html.erb +50 -0
  240. data/app/views/alchemy/admin/pictures/_overlay_picture_list.html.erb +1 -1
  241. data/app/views/alchemy/admin/pictures/_picture.html.erb +17 -51
  242. data/app/views/alchemy/admin/pictures/_picture_to_assign.html.erb +1 -1
  243. data/app/views/alchemy/admin/pictures/_tag_list.html.erb +2 -2
  244. data/app/views/alchemy/admin/pictures/edit_multiple.html.erb +6 -6
  245. data/app/views/alchemy/admin/pictures/index.html.erb +28 -36
  246. data/app/views/alchemy/admin/pictures/show.html.erb +46 -9
  247. data/app/views/alchemy/admin/pictures/update.js.erb +6 -0
  248. data/app/views/alchemy/admin/resources/_form.html.erb +3 -3
  249. data/app/views/alchemy/admin/resources/_resource.html.erb +4 -4
  250. data/app/views/alchemy/admin/resources/_table.html.erb +5 -6
  251. data/app/views/alchemy/admin/resources/index.csv.erb +12 -10
  252. data/app/views/alchemy/admin/resources/index.html.erb +4 -4
  253. data/app/views/alchemy/admin/sites/index.html.erb +1 -1
  254. data/app/views/alchemy/admin/tags/_tag.html.erb +4 -4
  255. data/app/views/alchemy/admin/tags/edit.html.erb +5 -5
  256. data/app/views/alchemy/admin/tags/index.html.erb +8 -8
  257. data/app/views/alchemy/admin/tags/new.html.erb +2 -2
  258. data/app/views/alchemy/admin/trash/clear.js.erb +1 -1
  259. data/app/views/alchemy/admin/trash/index.html.erb +8 -6
  260. data/app/views/alchemy/admin/uploader/_button.html.erb +39 -0
  261. data/app/views/alchemy/admin/uploader/_setup.html.erb +13 -0
  262. data/app/views/alchemy/base/500.html.erb +4 -4
  263. data/app/views/alchemy/elements/_editor_not_found.html.erb +1 -1
  264. data/app/views/alchemy/essences/_essence_boolean_editor.html.erb +3 -4
  265. data/app/views/alchemy/essences/_essence_boolean_view.html.erb +1 -1
  266. data/app/views/alchemy/essences/_essence_date_editor.html.erb +2 -6
  267. data/app/views/alchemy/essences/_essence_date_view.html.erb +1 -1
  268. data/app/views/alchemy/essences/_essence_file_editor.html.erb +9 -11
  269. data/app/views/alchemy/essences/_essence_file_view.html.erb +11 -5
  270. data/app/views/alchemy/essences/_essence_html_editor.html.erb +1 -1
  271. data/app/views/alchemy/essences/_essence_link_editor.html.erb +1 -1
  272. data/app/views/alchemy/essences/_essence_link_view.html.erb +1 -1
  273. data/app/views/alchemy/essences/_essence_picture_editor.html.erb +47 -52
  274. data/app/views/alchemy/essences/_essence_richtext_editor.html.erb +1 -1
  275. data/app/views/alchemy/essences/_essence_richtext_view.html.erb +1 -1
  276. data/app/views/alchemy/essences/_essence_select_editor.html.erb +23 -13
  277. data/app/views/alchemy/essences/_essence_text_editor.html.erb +1 -1
  278. data/app/views/alchemy/essences/_essence_text_view.html.erb +1 -1
  279. data/app/views/alchemy/essences/shared/_essence_picture_tools.html.erb +29 -36
  280. data/app/views/alchemy/essences/shared/_linkable_essence_tools.html.erb +5 -5
  281. data/app/views/alchemy/language_links/_language.html.erb +15 -9
  282. data/app/views/alchemy/messages/contact_form_mail.de.text.erb +1 -1
  283. data/app/views/alchemy/messages/contact_form_mail.en.text.erb +1 -1
  284. data/app/views/alchemy/messages/contact_form_mail.es.text.erb +1 -1
  285. data/app/views/alchemy/navigation/_link.html.erb +0 -1
  286. data/app/views/alchemy/pages/show.rss.builder +6 -4
  287. data/app/views/alchemy/welcome.html.erb +28 -0
  288. data/app/views/layouts/alchemy/admin.html.erb +14 -10
  289. data/bin/alchemy +3 -4
  290. data/bin/rspec +7 -0
  291. data/bin/spring +15 -0
  292. data/config/alchemy/config.yml +16 -17
  293. data/config/initializers/assets.rb +13 -0
  294. data/config/locales/alchemy.de.yml +27 -29
  295. data/config/locales/alchemy.en.yml +23 -29
  296. data/config/locales/alchemy.es.yml +23 -29
  297. data/config/locales/alchemy.fr.yml +19 -28
  298. data/config/locales/alchemy.nl.yml +19 -27
  299. data/config/locales/alchemy.ru.yml +19 -28
  300. data/config/routes.rb +53 -54
  301. data/config/spring.rb +2 -0
  302. data/db/migrate/20130827094554_alchemy_two_point_six.rb +1 -3
  303. data/db/migrate/20150608204610_add_parent_element_id_to_alchemy_elements.rb +6 -0
  304. data/db/migrate/20150729151825_add_link_text_to_alchemy_essence_files.rb +5 -0
  305. data/db/migrate/20150906195818_add_locale_to_alchemy_languages.rb +7 -0
  306. data/lib/alchemy/auth_accessors.rb +1 -1
  307. data/lib/alchemy/cache_digests/template_tracker.rb +7 -13
  308. data/lib/alchemy/config.rb +5 -7
  309. data/lib/alchemy/configuration_methods.rb +11 -1
  310. data/lib/alchemy/controller_actions.rb +9 -12
  311. data/lib/alchemy/engine.rb +11 -28
  312. data/lib/alchemy/errors.rb +0 -1
  313. data/lib/alchemy/essence.rb +20 -20
  314. data/lib/alchemy/filetypes.rb +1 -3
  315. data/lib/alchemy/forms/builder.rb +0 -2
  316. data/lib/alchemy/hints.rb +1 -3
  317. data/lib/alchemy/i18n.rb +81 -53
  318. data/lib/alchemy/kaminari/scoped_pagination_url_helper.rb +0 -2
  319. data/lib/alchemy/locale.rb +0 -1
  320. data/lib/alchemy/logger.rb +1 -3
  321. data/lib/alchemy/modules.rb +3 -3
  322. data/lib/alchemy/mount_point.rb +0 -2
  323. data/lib/alchemy/name_conversions.rb +1 -3
  324. data/lib/alchemy/on_page_layout.rb +37 -23
  325. data/lib/alchemy/on_page_layout/callbacks_runner.rb +34 -0
  326. data/lib/alchemy/page_layout.rb +23 -24
  327. data/lib/alchemy/paths.rb +32 -0
  328. data/lib/alchemy/permissions.rb +20 -20
  329. data/lib/alchemy/picture_attributes.rb +0 -3
  330. data/lib/alchemy/resource.rb +66 -22
  331. data/lib/alchemy/resources_helper.rb +48 -11
  332. data/lib/alchemy/routing_constraints.rb +4 -5
  333. data/lib/alchemy/seeder.rb +1 -4
  334. data/lib/alchemy/shell.rb +12 -14
  335. data/lib/alchemy/tasks/helpers.rb +5 -7
  336. data/lib/alchemy/test_support/essence_shared_examples.rb +24 -24
  337. data/lib/alchemy/test_support/factories.rb +2 -146
  338. data/lib/alchemy/test_support/factories/attachment_factory.rb +9 -0
  339. data/lib/alchemy/test_support/factories/cell_factory.rb +9 -0
  340. data/lib/alchemy/test_support/factories/content_factory.rb +10 -0
  341. data/lib/alchemy/test_support/factories/dummy_user_factory.rb +21 -0
  342. data/lib/alchemy/test_support/factories/element_factory.rb +21 -0
  343. data/lib/alchemy/test_support/factories/essence_file_factory.rb +8 -0
  344. data/lib/alchemy/test_support/factories/essence_picture_factory.rb +8 -0
  345. data/lib/alchemy/test_support/factories/essence_text_factory.rb +7 -0
  346. data/lib/alchemy/test_support/factories/language_factory.rb +28 -0
  347. data/lib/alchemy/test_support/factories/page_factory.rb +45 -0
  348. data/lib/alchemy/test_support/factories/picture_factory.rb +10 -0
  349. data/lib/alchemy/test_support/factories/site_factory.rb +12 -0
  350. data/lib/alchemy/test_support/integration_helpers.rb +0 -3
  351. data/lib/alchemy/tinymce.rb +24 -35
  352. data/lib/alchemy/touching.rb +5 -6
  353. data/lib/alchemy/upgrader.rb +3 -5
  354. data/lib/alchemy/upgrader/tasks/available_contents_upgrader.rb +155 -0
  355. data/lib/alchemy/upgrader/tasks/nestable_elements_migration.rb +71 -0
  356. data/lib/alchemy/upgrader/tasks/three_point_two_task.rb +31 -0
  357. data/lib/alchemy/upgrader/three_point_three.rb +50 -0
  358. data/lib/alchemy/upgrader/three_point_two.rb +3 -32
  359. data/lib/alchemy/upgrader/three_point_zero.rb +0 -1
  360. data/lib/alchemy/version.rb +1 -1
  361. data/lib/rails/generators/alchemy/base.rb +1 -1
  362. data/lib/rails/generators/alchemy/elements/elements_generator.rb +1 -7
  363. data/lib/rails/generators/alchemy/elements/templates/editor.html.erb +5 -7
  364. data/lib/rails/generators/alchemy/elements/templates/editor.html.haml +6 -8
  365. data/lib/rails/generators/alchemy/elements/templates/editor.html.slim +6 -7
  366. data/lib/rails/generators/alchemy/elements/templates/view.html.erb +4 -4
  367. data/lib/rails/generators/alchemy/elements/templates/view.html.haml +3 -3
  368. data/lib/rails/generators/alchemy/elements/templates/view.html.slim +3 -3
  369. data/lib/rails/generators/alchemy/essence/essence_generator.rb +2 -3
  370. data/lib/rails/generators/alchemy/essence/templates/editor.html.erb +1 -1
  371. data/lib/rails/generators/alchemy/install/files/alchemy.de.yml +2 -2
  372. data/lib/rails/generators/alchemy/install/files/alchemy.en.yml +2 -2
  373. data/lib/rails/generators/alchemy/install/files/alchemy.es.yml +3 -3
  374. data/lib/rails/generators/alchemy/install/install_generator.rb +0 -1
  375. data/lib/rails/generators/alchemy/install/templates/elements.yml.tt +2 -2
  376. data/lib/rails/generators/alchemy/install/templates/page_layouts.yml.tt +1 -1
  377. data/lib/rails/generators/alchemy/module/module_generator.rb +1 -1
  378. data/lib/rails/templates/alchemy.rb +2 -2
  379. data/lib/tasks/alchemy/convert.rake +4 -8
  380. data/lib/tasks/alchemy/db.rake +2 -3
  381. data/lib/tasks/alchemy/install.rake +3 -4
  382. data/lib/tasks/alchemy/tidy.rake +4 -5
  383. data/lib/tasks/alchemy/upgrade.rake +2 -4
  384. data/spec/controllers/{admin → alchemy/admin}/attachments_controller_spec.rb +26 -44
  385. data/spec/controllers/{admin → alchemy/admin}/base_controller_spec.rb +14 -1
  386. data/spec/controllers/{admin → alchemy/admin}/clipboard_controller_spec.rb +3 -3
  387. data/spec/controllers/{admin → alchemy/admin}/contents_controller_spec.rb +4 -4
  388. data/spec/controllers/{admin → alchemy/admin}/dashboard_controller_spec.rb +11 -6
  389. data/spec/controllers/{admin → alchemy/admin}/elements_controller_spec.rb +54 -31
  390. data/spec/controllers/{admin → alchemy/admin}/essence_files_controller_spec.rb +8 -3
  391. data/spec/controllers/{admin → alchemy/admin}/essence_pictures_controller_spec.rb +3 -3
  392. data/spec/controllers/{admin → alchemy/admin}/languages_controller_spec.rb +13 -1
  393. data/spec/controllers/{admin → alchemy/admin}/layoutpages_controller_spec.rb +0 -6
  394. data/spec/controllers/{admin → alchemy/admin}/pages_controller_spec.rb +103 -35
  395. data/spec/controllers/{admin → alchemy/admin}/pictures_controller_spec.rb +133 -108
  396. data/spec/controllers/alchemy/admin/resources_controller_spec.rb +81 -0
  397. data/spec/controllers/{admin → alchemy/admin}/trash_controller_spec.rb +12 -13
  398. data/spec/controllers/alchemy/api/contents_controller_spec.rb +12 -13
  399. data/spec/controllers/alchemy/api/elements_controller_spec.rb +8 -9
  400. data/spec/controllers/alchemy/api/pages_controller_spec.rb +40 -7
  401. data/spec/controllers/{attachments_controller_spec.rb → alchemy/attachments_controller_spec.rb} +7 -7
  402. data/spec/controllers/alchemy/base_controller_spec.rb +106 -0
  403. data/spec/controllers/{elements_controller_spec.rb → alchemy/elements_controller_spec.rb} +4 -4
  404. data/spec/controllers/{messages_controller_spec.rb → alchemy/messages_controller_spec.rb} +14 -9
  405. data/spec/controllers/alchemy/on_page_layout_mixin_spec.rb +330 -0
  406. data/spec/controllers/{pages_controller_spec.rb → alchemy/pages_controller_spec.rb} +167 -89
  407. data/spec/controllers/{pictures_controller_spec.rb → alchemy/pictures_controller_spec.rb} +42 -20
  408. data/spec/dummy/app/models/dummy_user.rb +4 -0
  409. data/spec/dummy/app/views/alchemy/elements/_all_you_can_eat_view.html.erb +31 -0
  410. data/spec/dummy/app/views/alchemy/elements/_article_editor.html.erb +6 -10
  411. data/spec/dummy/app/views/alchemy/elements/_article_view.html.erb +9 -24
  412. data/spec/dummy/app/views/alchemy/elements/_bild_editor.html.erb +3 -0
  413. data/spec/dummy/app/views/alchemy/elements/_bild_view.html.erb +5 -0
  414. data/spec/dummy/app/views/alchemy/elements/_contactform_editor.html.erb +6 -0
  415. data/spec/dummy/app/views/alchemy/elements/_contactform_view.html.erb +16 -0
  416. data/spec/dummy/app/views/alchemy/elements/_download_editor.html.erb +3 -0
  417. data/spec/dummy/app/views/alchemy/elements/_download_view.html.erb +5 -0
  418. data/spec/dummy/app/views/alchemy/elements/_erb_element_editor.html.erb +3 -0
  419. data/spec/dummy/app/views/alchemy/elements/_erb_element_view.html.erb +5 -0
  420. data/spec/dummy/app/views/alchemy/elements/_header_editor.html.erb +3 -0
  421. data/spec/dummy/app/views/alchemy/elements/_header_view.html.erb +5 -0
  422. data/spec/dummy/app/views/alchemy/elements/_news_editor.html.erb +5 -0
  423. data/spec/dummy/app/views/alchemy/elements/_search_editor.html.erb +1 -0
  424. data/spec/dummy/app/views/alchemy/elements/_search_view.html.erb +4 -0
  425. data/spec/dummy/app/views/alchemy/elements/_slide_editor.html.erb +3 -0
  426. data/spec/dummy/app/views/alchemy/elements/_slide_view.html.erb +5 -0
  427. data/spec/dummy/app/views/alchemy/elements/_slider_editor.html.erb +2 -0
  428. data/spec/dummy/app/views/alchemy/elements/_slider_view.html.erb +4 -0
  429. data/spec/dummy/app/views/alchemy/elements/_text_editor.html.erb +3 -0
  430. data/spec/dummy/app/views/alchemy/elements/_text_view.html.erb +5 -0
  431. data/spec/dummy/app/views/alchemy/page_layouts/_standard.html.erb +1 -0
  432. data/spec/dummy/config/alchemy/elements.yml +10 -13
  433. data/spec/dummy/config/alchemy/page_layouts.yml +1 -1
  434. data/spec/dummy/config/initializers/alchemy.rb +1 -0
  435. data/spec/dummy/config/locales/kl.yml +2 -0
  436. data/spec/dummy/db/migrate/20150608204610_add_parent_element_id_to_alchemy_elements.rb +1 -0
  437. data/spec/dummy/db/migrate/20150729151825_add_link_text_to_alchemy_essence_files.rb +1 -0
  438. data/spec/dummy/db/migrate/20150906195818_add_locale_to_alchemy_languages.rb +1 -0
  439. data/spec/dummy/db/schema.rb +10 -6
  440. data/spec/factories.rb +13 -0
  441. data/spec/features/admin/admin_layout_spec.rb +14 -0
  442. data/spec/features/admin/dashboard_spec.rb +1 -2
  443. data/spec/features/admin/edit_elements_feature_spec.rb +36 -0
  444. data/spec/features/admin/language_tree_feature_spec.rb +7 -8
  445. data/spec/features/admin/languages_features_spec.rb +65 -0
  446. data/spec/features/admin/legacy_page_url_management_spec.rb +3 -3
  447. data/spec/features/admin/link_overlay_spec.rb +16 -17
  448. data/spec/features/admin/locale_select_feature_spec.rb +1 -1
  449. data/spec/features/admin/modules_integration_spec.rb +0 -1
  450. data/spec/features/admin/navigation_feature_spec.rb +11 -2
  451. data/spec/features/admin/page_creation_feature_spec.rb +5 -5
  452. data/spec/features/admin/page_editing_feature_spec.rb +6 -6
  453. data/spec/features/admin/picture_library_integration_spec.rb +3 -3
  454. data/spec/features/admin/resources_integration_spec.rb +7 -12
  455. data/spec/features/admin/site_select_feature_spec.rb +1 -2
  456. data/spec/features/admin/tinymce_feature_spec.rb +0 -1
  457. data/spec/features/page_feature_spec.rb +57 -158
  458. data/spec/features/page_redirects_spec.rb +358 -0
  459. data/spec/features/picture_security_spec.rb +1 -7
  460. data/spec/fixtures/animated.gif +0 -0
  461. data/spec/helpers/{admin → alchemy/admin}/attachments_helper_spec.rb +0 -0
  462. data/spec/helpers/{admin → alchemy/admin}/base_helper_spec.rb +39 -29
  463. data/spec/helpers/{admin → alchemy/admin}/contents_helper_spec.rb +4 -23
  464. data/spec/helpers/{admin → alchemy/admin}/elements_helper_spec.rb +141 -5
  465. data/spec/helpers/{admin → alchemy/admin}/essences_helper_spec.rb +69 -8
  466. data/spec/helpers/{admin → alchemy/admin}/navigation_helper_spec.rb +43 -37
  467. data/spec/helpers/{admin → alchemy/admin}/pages_helper_spec.rb +6 -38
  468. data/spec/helpers/{admin → alchemy/admin}/pictures_helper_spec.rb +0 -1
  469. data/spec/helpers/{admin → alchemy/admin}/tags_helper_spec.rb +1 -3
  470. data/spec/helpers/{base_helper_spec.rb → alchemy/base_helper_spec.rb} +1 -2
  471. data/spec/helpers/{elements_block_helper_spec.rb → alchemy/elements_block_helper_spec.rb} +3 -3
  472. data/spec/helpers/{elements_helper_spec.rb → alchemy/elements_helper_spec.rb} +18 -19
  473. data/spec/helpers/alchemy/essences_helper_spec.rb +85 -0
  474. data/spec/helpers/{pages_helper_spec.rb → alchemy/pages_helper_spec.rb} +125 -39
  475. data/spec/helpers/alchemy/picture_url_helpers_spec.rb +78 -0
  476. data/spec/helpers/{url_helper_spec.rb → alchemy/url_helper_spec.rb} +66 -40
  477. data/spec/libraries/config_spec.rb +2 -3
  478. data/spec/libraries/controller_actions_spec.rb +18 -18
  479. data/spec/libraries/i18n_spec.rb +7 -0
  480. data/spec/libraries/page_layout_spec.rb +13 -7
  481. data/spec/libraries/paths_spec.rb +15 -0
  482. data/spec/libraries/permissions_spec.rb +6 -7
  483. data/spec/libraries/resource_spec.rb +48 -75
  484. data/spec/libraries/resources_helper_spec.rb +55 -6
  485. data/spec/libraries/shell_spec.rb +0 -4
  486. data/spec/libraries/template_tracker_spec.rb +4 -13
  487. data/spec/libraries/tinymce_spec.rb +53 -9
  488. data/spec/mailers/{messages_spec.rb → alchemy/messages_spec.rb} +0 -2
  489. data/spec/models/{attachment_spec.rb → alchemy/attachment_spec.rb} +43 -20
  490. data/spec/models/{cell_spec.rb → alchemy/cell_spec.rb} +2 -3
  491. data/spec/models/{content_spec.rb → alchemy/content_spec.rb} +179 -70
  492. data/spec/models/{element_spec.rb → alchemy/element_spec.rb} +315 -70
  493. data/spec/models/{element_to_page_spec.rb → alchemy/element_to_page_spec.rb} +0 -1
  494. data/spec/models/{essence_boolean_spec.rb → alchemy/essence_boolean_spec.rb} +0 -0
  495. data/spec/models/{essence_date_spec.rb → alchemy/essence_date_spec.rb} +2 -3
  496. data/spec/models/{essence_file_spec.rb → alchemy/essence_file_spec.rb} +2 -5
  497. data/spec/models/{essence_html_spec.rb → alchemy/essence_html_spec.rb} +1 -1
  498. data/spec/models/{essence_link_spec.rb → alchemy/essence_link_spec.rb} +0 -0
  499. data/spec/models/{essence_picture_spec.rb → alchemy/essence_picture_spec.rb} +101 -29
  500. data/spec/models/{essence_richtext_spec.rb → alchemy/essence_richtext_spec.rb} +7 -2
  501. data/spec/models/{essence_select_spec.rb → alchemy/essence_select_spec.rb} +0 -0
  502. data/spec/models/{essence_text_spec.rb → alchemy/essence_text_spec.rb} +4 -8
  503. data/spec/models/alchemy/language_spec.rb +243 -0
  504. data/spec/models/{legacy_page_url_spec.rb → alchemy/legacy_page_url_spec.rb} +1 -1
  505. data/spec/models/{message_spec.rb → alchemy/message_spec.rb} +0 -0
  506. data/spec/models/{page_spec.rb → alchemy/page_spec.rb} +460 -248
  507. data/spec/models/{picture_spec.rb → alchemy/picture_spec.rb} +118 -30
  508. data/spec/models/{site_spec.rb → alchemy/site_spec.rb} +19 -84
  509. data/spec/models/{tag_spec.rb → alchemy/tag_spec.rb} +1 -3
  510. data/spec/models/dummy_model_spec.rb +1 -2
  511. data/spec/requests/alchemy/admin/resources_requests_spec.rb +26 -0
  512. data/spec/requests/alchemy/admin/site_requests_spec.rb +19 -0
  513. data/spec/requests/alchemy/site_requests_spec.rb +18 -0
  514. data/spec/requests/alchemy/sitemap_spec.rb +56 -0
  515. data/spec/routing/api_routing_spec.rb +1 -1
  516. data/spec/routing/routing_spec.rb +121 -15
  517. data/spec/spec_helper.rb +2 -1
  518. data/spec/support/hint_examples.rb +1 -3
  519. data/spec/support/test_tweaks.rb +3 -3
  520. data/spec/support/transformation_examples.rb +6 -7
  521. data/spec/tasks/helpers_spec.rb +2 -4
  522. data/spec/views/admin/pictures/show_spec.rb +43 -0
  523. data/spec/views/essences/essence_boolean_editor_spec.rb +0 -1
  524. data/spec/views/essences/essence_boolean_view_spec.rb +2 -4
  525. data/spec/views/essences/essence_date_view_spec.rb +0 -1
  526. data/spec/views/essences/essence_file_editor_spec.rb +4 -6
  527. data/spec/views/essences/essence_file_view_spec.rb +56 -3
  528. data/spec/views/essences/essence_link_view_spec.rb +1 -1
  529. data/spec/views/essences/essence_picture_editor_spec.rb +80 -0
  530. data/spec/views/essences/essence_picture_view_spec.rb +0 -1
  531. data/spec/views/essences/essence_select_view_spec.rb +0 -1
  532. data/spec/views/essences/essence_text_view_spec.rb +0 -1
  533. data/vendor/assets/javascripts/handlebars.js +4608 -0
  534. data/vendor/assets/javascripts/tinymce/langs/de.js +19 -0
  535. data/vendor/assets/javascripts/tinymce/langs/es.js +19 -0
  536. data/vendor/assets/javascripts/tinymce/langs/fr.js +23 -4
  537. data/vendor/assets/javascripts/tinymce/langs/nl.js +22 -3
  538. data/vendor/assets/javascripts/tinymce/langs/ru.js +22 -3
  539. data/vendor/assets/javascripts/tinymce/plugins/paste/plugin.min.js +1 -1
  540. data/vendor/assets/javascripts/tinymce/plugins/table/plugin.min.js +1 -1
  541. data/vendor/assets/javascripts/tinymce/themes/modern/theme.min.js +1 -1
  542. data/vendor/assets/javascripts/tinymce/tinymce.min.js +12 -13
  543. metadata +274 -256
  544. data/app/views/alchemy/admin/attachments/create.js.erb +0 -11
  545. data/app/views/alchemy/admin/attachments/new.html.erb +0 -14
  546. data/app/views/alchemy/admin/elements/_element_foot.html.erb +0 -36
  547. data/app/views/alchemy/admin/partials/_upload_form.html.erb +0 -67
  548. data/app/views/alchemy/admin/pictures/info.html.erb +0 -38
  549. data/app/views/alchemy/admin/pictures/new.html.erb +0 -16
  550. data/lib/alchemy/middleware/rescue_old_cookies.rb +0 -27
  551. data/spec/controllers/admin/resources_controller_spec.rb +0 -53
  552. data/spec/controllers/base_controller_spec.rb +0 -51
  553. data/spec/helpers/essences_helper_spec.rb +0 -156
  554. data/spec/helpers/picture_url_helpers_spec.rb +0 -35
  555. data/spec/libraries/on_page_layout_spec.rb +0 -112
  556. data/spec/models/language_spec.rb +0 -123
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: de51add0fe9d89790f0765d73717dc03a11ff1e5
4
- data.tar.gz: b09da429c3263550fc7a1d91d769c1621e0a74c2
3
+ metadata.gz: 0aceaeeaef206172b82d634ae32252349217f322
4
+ data.tar.gz: 649efbc4c49f43b6d42bd57455c0fffceae6b28f
5
5
  SHA512:
6
- metadata.gz: f352e7caa3e7eafe1b69e5f4ff0fb5722c8a7903d8e457740be20ca68f063699f185e40f59010f5dc59e648350e92afc2da2a54f8c5e3312dc3f794261bf3752
7
- data.tar.gz: 8bbf53881813c47c4cc2b9bce3e27ddcb229362a12efa7f0e8a73b58ec0f6915b181e05401d529ffaf2953be31a1a5feb1c33833a5b2fe716d9d2ae92bae7766
6
+ metadata.gz: 1520b2d1092a8a0341ea3e01bd45a981f94559112208b0405c84c5bbdf199c3e0f84789df79b03776ce7a2c5e5e9f837c44ee537dff7edf1f56715aaefc43f9c
7
+ data.tar.gz: eadd3e19d0eb0bab2b9f929beb66a25989e71e086bdb104e42944342da5ce8ec07c5510e8d8eec35da6466d1110ee5e45110c0803137afb7f470ee6aebbb98ed
@@ -0,0 +1,28 @@
1
+ ---
2
+ engines:
3
+ brakeman:
4
+ enabled: true
5
+ csslint:
6
+ enabled: false
7
+ coffeelint:
8
+ enabled: false
9
+ duplication:
10
+ enabled: true
11
+ config:
12
+ languages:
13
+ - ruby
14
+ eslint:
15
+ enabled: false
16
+ fixme:
17
+ enabled: false
18
+ rubocop:
19
+ enabled: false
20
+ ratings:
21
+ paths:
22
+ - Gemfile.lock
23
+ - "**.erb"
24
+ - "**.rb"
25
+ exclude_paths:
26
+ - config/
27
+ - db/
28
+ - spec/
data/.gitignore CHANGED
@@ -12,11 +12,11 @@ log
12
12
  spec/dummy/uploads/
13
13
  spec/dummy/db/*.sqlite3*
14
14
  spec/dummy/public/assets
15
- spec/dummy/config/locales/**/*
16
15
  .rvmrc
17
16
  /coverage/
18
17
  *.gem
19
18
  /index/
20
19
  /.bundle/
21
20
  .rbenv-version
22
- .ruby-*
21
+ .ruby-gemset
22
+ .ruby-version
@@ -2,12 +2,14 @@ language: ruby
2
2
  sudo: false
3
3
  cache: bundler
4
4
  rvm:
5
- - 2.0.0
6
5
  - 2.1
7
- - 2.2.0
6
+ - 2.2
7
+ - 2.3.0
8
8
  branches:
9
9
  only:
10
- - master
10
+ - master
11
+ before_install:
12
+ - gem install bundler
11
13
  before_script: bundle exec rake alchemy:spec:prepare
12
14
  script: bundle exec rspec
13
15
  env:
@@ -22,6 +24,12 @@ notifications:
22
24
  - irc.freenode.org#alchemy_cms
23
25
  slack:
24
26
  secure: QzOFw1Ph69pzwWBFgtIVkOnjbcRxB9HPRQ+RYjK+2tg+fsbiTJ+wYgHcZL49tPYcLAls4kymkFWzWBF3PCAXJMfKgUCqXzdQ2FuJC/JoVRTLll4wDnZFPG33jsm5tVznmycZ3ma4+ZWfJQ+C+elEBOba6v1kG9eGIy6sH2cvXfE=
27
+ webhooks:
28
+ urls:
29
+ - https://webhooks.gitter.im/e/4dc02992aca8b4fd883b
30
+ on_success: always
31
+ on_failure: always
32
+ on_start: never
25
33
  addons:
26
34
  code_climate:
27
35
  secure: qmOMqc4FUBRP25XqaYIKuxZQ/GrGLKjIc3vUqZa+XfkQKh6xLXvOF7YUM/XJZ5u6D6hk0Ly8UxjctvDY+tQxEAK49lFwK51i7bODfkQjfVBrFzfht7QhxY5HJKx7F0HHmpyNJet4n8mR0gGlhwVyXv+Tz7Rm6O3Hq3+TEbY9+pk=
@@ -0,0 +1,100 @@
1
+ # Change Log
2
+
3
+ ## 3.3.0 (unreleased)
4
+
5
+ __New Features__
6
+
7
+ * Add support for Sprockets 3
8
+ * Add support for jquery-rails 4.1
9
+ * Show a welcome page, if no users or pages are present yet
10
+ * Namespace spec files
11
+ * Image library slideshow
12
+ * Global "current locked pages" tabs
13
+ * New option `linkable: false` for `EssencePicture`
14
+ * Allow custom routing for admin backend
15
+ * Resource forms can now have Tinymce enabled by adding `.tinymce` class
16
+ * `Alchemy::EssenceFile` now has a `link_text` attribute, so the editor is able to change the linked text of the download link.
17
+ * Enable to pass multiple page layout names to `on_page_layout` callbacks
18
+ * Client side rendering of the pages admin _(not merged yet)_
19
+ * Deprecate `redirect_index` configuration _(not merged yet)_
20
+ * Add Nestable elements feature
21
+
22
+ __Notable Changes__
23
+
24
+ * Essence generator does not namespace the model into `Alchemy` namespace anymore
25
+ * New simplified uploader that allows to drag and drop images onto the archive everywhere in your app
26
+ - Model names in uploader `allowed_filetypes` setting are now namespaced.
27
+ Please be sure to run `rake alchemy:upgrade` to update your settings.
28
+ * Allow uppercase country codes
29
+ * Uses Time.current instead of Time.now for proper timezone support
30
+ * Adds year to `created_at` column of attachments table
31
+ * Removes "available contents" feature.
32
+ * Use Ransack for Admin Resources filtering, sorting and searching
33
+ * Renames Alchemy translation helpers from `_t` to `Alchemy.t`
34
+ * Do not append geometry string to preprocess option
35
+ * Skip the default locale in urls
36
+ * Add a proper index route and do not redirect to page anymore
37
+ * Updates Tinymce to 4.2.3
38
+ * Moves page status info into reusable partial
39
+ * Refactors factories into individual requirable files
40
+ * Do not raise error if `element_ids` params is missing while ordering elements
41
+ * Removes old middleware for rescueing legacy sessions
42
+ * Use rails tag helpers instead of plain HTML for meta tags
43
+ * Remove the duplication of `#decription` vs. `#definition`
44
+ * Resource CSV export now includes ID column and does not truncate large text columns anymore
45
+ * `Alchemy::Attachment#urlname` now returns always an escaped urlname w/o format suffix and does not convert the `file_name` once on create anymore
46
+ * Speed up the admin interface significantly when handling a large amount of pages
47
+
48
+ __Fixed Bugs__
49
+
50
+ * Add `locale` to `Alchemy::Language` to avoid errors for languages with missing locale files #831
51
+ * Fixes `Alchemy::PageLayout.get_all_by_attributes`
52
+ * Fix tag list display in picture library
53
+ * Animated GIFs display correctly
54
+ * EssenceSelect grouped options tags
55
+ * Add missing element partials for dummy app
56
+ * Eliminate an SQL lookup on frontend cached element partials
57
+ * Add missing german and spanish translation for element toolbar
58
+ * Use the site_id parameter and the session only in the Admin area
59
+
60
+ [Full Change Log](https://github.com/AlchemyCMS/alchemy_cms/compare/v3.2.0...HEAD)
61
+
62
+ ## 3.2.0 (2015-07-31)
63
+
64
+ [Release Notes](https://github.com/AlchemyCMS/alchemy_cms/releases/tag/v3.2.0)
65
+
66
+ ## 3.1.3 (2016-01-21)
67
+
68
+ [Full Change Log](https://github.com/AlchemyCMS/alchemy_cms/compare/v3.1.1...v3.1.3)
69
+
70
+ ## 3.1.2 (yanked)
71
+
72
+ No changes
73
+
74
+ ## 3.1.1 (2015-03-17)
75
+
76
+ [Full Change Log](https://github.com/AlchemyCMS/alchemy_cms/compare/v3.1.0...v3.1.1)
77
+
78
+ ## 3.1.0 (2015-02-24)
79
+
80
+ [Release Notes](https://github.com/AlchemyCMS/alchemy_cms/releases/tag/v3.1.0)
81
+
82
+ ## 3.0.4 (2015-03-17)
83
+
84
+ [Full Change Log](https://github.com/AlchemyCMS/alchemy_cms/compare/v3.0.3...v3.0.4)
85
+
86
+ ## 3.0.3 (2014-12-24)
87
+
88
+ [Full Change Log](https://github.com/AlchemyCMS/alchemy_cms/compare/v3.0.2...v3.0.3)
89
+
90
+ ## 3.0.2 (2014-09-30)
91
+
92
+ [Full Change Log](https://github.com/AlchemyCMS/alchemy_cms/compare/v3.0.1...v3.0.2)
93
+
94
+ ## 3.0.1 (2014-09-11)
95
+
96
+ [Full Change Log](https://github.com/AlchemyCMS/alchemy_cms/compare/v3.0.0...v3.0.1)
97
+
98
+ ## 3.0.0 (2014-07-03)
99
+
100
+ [Release Notes](https://github.com/AlchemyCMS/alchemy_cms/releases/tag/v3.0.0)
@@ -1,5 +1,5 @@
1
1
  Alchemy CMS is an open source project and we encourage contributions. Please read these
2
- contributors guidelines before contributing.
2
+ contributors guidelines and our code of conduct before contributing.
3
3
 
4
4
  ## Filing an issue
5
5
 
data/Gemfile CHANGED
@@ -3,7 +3,7 @@ source 'https://rubygems.org'
3
3
  gemspec
4
4
 
5
5
  gem 'sqlite3' if ENV['DB'].nil? || ENV['DB'] == 'sqlite'
6
- gem 'mysql2' if ENV['DB'] == 'mysql'
6
+ gem 'mysql2', '~> 0.3.18' if ENV['DB'] == 'mysql'
7
7
  gem 'pg' if ENV['DB'] == 'postgresql'
8
8
 
9
9
  group :development, :test do
@@ -25,6 +25,17 @@ group :development, :test do
25
25
  gem 'spring-commands-rspec'
26
26
  gem 'rubocop', require: false
27
27
  end
28
+ gem 'capybara', '~> 2.4'
29
+ gem 'database_cleaner', '~> 1.3'
30
+ gem 'factory_girl_rails', '~> 4.5'
31
+ gem 'poltergeist', '~> 1.5'
32
+ gem 'rspec-activemodel-mocks', '~> 1.0'
33
+ gem 'rspec-rails', '~> 3.0'
34
+ end
35
+
36
+ # We need this if we want to start the dummy app in development mode
37
+ group :development, :production do
38
+ gem 'quiet_assets'
28
39
  end
29
40
 
30
41
  # We need this if we want to start the dummy app in production, ie on Teatro.io
data/README.md CHANGED
@@ -1,5 +1,10 @@
1
1
  [![Gem Version](https://badge.fury.io/rb/alchemy_cms.svg)](http://badge.fury.io/rb/alchemy_cms)
2
- [![Build Status](https://travis-ci.org/AlchemyCMS/alchemy_cms.svg?branch=3.2-stable)](https://travis-ci.org/AlchemyCMS/alchemy_cms) [![Code Climate](https://codeclimate.com/github/AlchemyCMS/alchemy_cms.svg)](https://codeclimate.com/github/AlchemyCMS/alchemy_cms) [![Test Coverage](https://codeclimate.com/github/AlchemyCMS/alchemy_cms/badges/coverage.svg)](https://codeclimate.com/github/AlchemyCMS/alchemy_cms)
2
+ [![Build Status](https://travis-ci.org/AlchemyCMS/alchemy_cms.svg?branch=master)](https://travis-ci.org/AlchemyCMS/alchemy_cms)
3
+ [![Code Climate](https://codeclimate.com/github/AlchemyCMS/alchemy_cms.svg)](https://codeclimate.com/github/AlchemyCMS/alchemy_cms)
4
+ [![Test Coverage](https://codeclimate.com/github/AlchemyCMS/alchemy_cms/badges/coverage.svg)](https://codeclimate.com/github/AlchemyCMS/alchemy_cms)
5
+ [![Slack Status](http://slack.alchemy-cms.com/badge.svg)](http://slack.alchemy-cms.com)
6
+
7
+ **CAUTION: This master branch is a development branch that *can* contain bugs. For productive environments you should use the [current Ruby gem version](https://rubygems.org/gems/alchemy_cms/versions/3.2.0), or the [latest stable branch (3.2-stable)](https://github.com/AlchemyCMS/alchemy_cms/tree/3.2-stable).**
3
8
 
4
9
 
5
10
  ## About
@@ -29,7 +34,7 @@ Read more about Alchemy on the [website](http://alchemy-cms.com) and in the [gui
29
34
 
30
35
  ## Rails Version
31
36
 
32
- **This version of Alchemy CMS runs with Rails 4.2 only**
37
+ **This version of Alchemy CMS runs with Rails 4.2**
33
38
 
34
39
  * For a Rails 4.0/4.1 compatible version use the [`3.1-stable` branch](https://github.com/AlchemyCMS/alchemy_cms/tree/3.1-stable).
35
40
  * For a Rails 3.2 compatible version use the [`2.8-stable` branch](https://github.com/AlchemyCMS/alchemy_cms/tree/2.8-stable).
@@ -54,7 +59,7 @@ For a Ruby 1.8.7 compatible version use the [`2.3-stable` branch](https://github
54
59
  Use the installer:
55
60
 
56
61
  ```shell
57
- $ gem install alchemy_cms
62
+ $ gem install alchemy_cms --pre
58
63
  $ alchemy new my_magicpage
59
64
  ```
60
65
 
@@ -73,7 +78,7 @@ $ alchemy --help
73
78
  Put this into your `Gemfile`:
74
79
 
75
80
  ```ruby
76
- gem 'alchemy_cms', github: 'AlchemyCMS/alchemy_cms', branch: '3.2-stable'
81
+ gem 'alchemy_cms', github: 'AlchemyCMS/alchemy_cms', branch: 'master'
77
82
  ```
78
83
 
79
84
  **NOTE:** You normally want to use a stable branch, like `3.0-stable`.
@@ -102,7 +107,7 @@ the Devise based user model that Alchemy provides and was extracted [into its ow
102
107
  If you don't have your own user class, you can use the Alchemy user model. Just add the following gem into your `Gemfile`:
103
108
 
104
109
  ```ruby
105
- gem 'alchemy-devise', github: 'AlchemyCMS/alchemy-devise', branch: '3.2-stable'
110
+ gem 'alchemy-devise', github: 'AlchemyCMS/alchemy-devise', branch: 'master'
106
111
  ```
107
112
 
108
113
  **NOTE:** You normally want to use a stable branch, like `2.0-stable`.
@@ -145,7 +150,7 @@ def alchemy_roles
145
150
  end
146
151
  ```
147
152
 
148
- Please follow [this guide](http://guides.alchemy-cms.com/edge/custom_authentication.html) for further instructions on how to customize your user class even more.
153
+ Please follow [this guide](http://guides.alchemy-cms.com/stable/custom_authentication.html) for further instructions on how to customize your user class even more.
149
154
 
150
155
  #### 4. Install Alchemy into your app:
151
156
 
@@ -164,13 +169,26 @@ Now everything should be set up and you should be able to visit the Alchemy Dash
164
169
 
165
170
  ## Customizing
166
171
 
167
- Alchemy has very flexible ways to organize and manage content. Please be sure to read [the introduction guide](http://guides.alchemy-cms.com/edge/index.html) in order to understand the basic idea of how Alchemy works.
172
+ Alchemy has very flexible ways to organize and manage content. Please be sure to read [the introduction guide](http://guides.alchemy-cms.com/stable/index.html) in order to understand the basic idea of how Alchemy works.
168
173
 
169
174
 
170
175
  ### Custom Controllers
171
176
 
172
177
  Beginning with Alchemy 3.1 we do not patch the `ApplicationController` anymore. If you have controllers that loads Alchemy content or uses Alchemy helpers in the views (i.e. `render_navigation` or `render_elements`) you can either inherit from `Alchemy::BaseController` or you `include Alchemy::ControllerActions` in your controller (**that's the recommended way**).
173
178
 
179
+ ### Custom admin interface routing
180
+
181
+ By default, Alchemy Dashboard is accessible at <http://example.com/admin>. You can change this by setting `Alchemy.admin_path` and `Alchemy.admin_constraints`.
182
+ For example, these settings:
183
+
184
+ ```ruby
185
+ # config/initializers/alchemy.rb
186
+
187
+ Alchemy.admin_path = '/backend'
188
+ Alchemy.admin_constraints = {subdomain: 'hidden'}
189
+ ```
190
+
191
+ will move the dashboard to <http://hidden.example.com/backend>.
174
192
 
175
193
  ## Upgrading
176
194
 
data/Rakefile CHANGED
@@ -32,17 +32,15 @@ require 'rspec/core/rake_task'
32
32
 
33
33
  RSpec::Core::RakeTask.new(:spec)
34
34
 
35
- task :default => ['alchemy:spec:prepare', :spec]
35
+ task default: ['alchemy:spec:prepare', :spec]
36
36
 
37
37
  Bundler::GemHelper.install_tasks
38
38
 
39
39
  namespace :alchemy do
40
40
  namespace :spec do
41
-
42
41
  desc "Prepares database for testing Alchemy"
43
42
  task :prepare do
44
43
  system 'cd spec/dummy && RAILS_ENV=test bundle exec rake db:setup && cd -'
45
44
  end
46
-
47
45
  end
48
46
  end
@@ -11,7 +11,7 @@ Gem::Specification.new do |gem|
11
11
  gem.homepage = 'http://alchemy-cms.com'
12
12
  gem.summary = 'A powerful, userfriendly and flexible CMS for Rails 4'
13
13
  gem.description = 'Alchemy is a powerful, userfriendly and flexible Rails 4 CMS.'
14
- gem.requirements << 'ImageMagick (libmagick), v6.6 or greater.'
14
+ gem.requirements << 'ImageMagick (libmagick), v6.6 or greater.'
15
15
  gem.required_ruby_version = '>= 2.0.0'
16
16
  gem.license = 'BSD New'
17
17
  gem.files = `git ls-files`.split("\n")
@@ -26,32 +26,24 @@ Gem::Specification.new do |gem|
26
26
  gem.add_runtime_dependency 'awesome_nested_set', ['~> 3.0.0']
27
27
  gem.add_runtime_dependency 'cancancan', ['~> 1.9']
28
28
  gem.add_runtime_dependency 'coffee-rails', ['~> 4.0']
29
- gem.add_runtime_dependency 'compass-rails', ['~> 2.0', '>= 2.0.4']
29
+ gem.add_runtime_dependency 'compass-rails', ['>= 2.0.4', '< 4.0']
30
30
  gem.add_runtime_dependency 'dragonfly', ['~> 1.0.1']
31
- gem.add_runtime_dependency 'jquery-rails', ['~> 4.0.3']
31
+ gem.add_runtime_dependency 'jquery-rails', ['~> 4.0']
32
32
  gem.add_runtime_dependency 'jquery-ui-rails', ['~> 5.0.0']
33
33
  gem.add_runtime_dependency 'kaminari', ['~> 0.15']
34
34
  gem.add_runtime_dependency 'magiclabs-userstamp', ['~> 2.1.0']
35
- gem.add_runtime_dependency 'non-stupid-digest-assets', ['~> 1.0.3']
35
+ gem.add_runtime_dependency 'non-stupid-digest-assets', ['~> 1.0.8']
36
36
  gem.add_runtime_dependency 'rails', ['>= 4.2.0', '< 5.0']
37
- gem.add_runtime_dependency 'request_store', ['~> 1.1.0']
37
+ gem.add_runtime_dependency 'ransack', ['~> 1.4']
38
+ gem.add_runtime_dependency 'request_store', ['~> 1.2']
38
39
  gem.add_runtime_dependency 'responders', ['~> 2.0']
39
40
  gem.add_runtime_dependency 'sass-rails', ['~> 5.0']
40
41
  gem.add_runtime_dependency 'sassy-buttons', ['~> 0.2.6']
41
42
  gem.add_runtime_dependency 'select2-rails', ['>= 3.5.9.1', '< 4.0']
42
43
  gem.add_runtime_dependency 'simple_form', ['~> 3.0']
43
- gem.add_runtime_dependency 'spinner.rb'
44
44
  gem.add_runtime_dependency 'turbolinks', ['~> 2.5']
45
- gem.add_runtime_dependency 'tvdeyen-handles_sortable_columns', ['~> 0.1.5']
46
45
 
47
- gem.add_development_dependency 'capybara', ['~> 2.4']
48
- gem.add_development_dependency 'database_cleaner', ['~> 1.3']
49
- gem.add_development_dependency 'factory_girl_rails', ['~> 4.5']
50
- gem.add_development_dependency 'poltergeist', ['~> 1.5']
51
- gem.add_development_dependency 'rspec-activemodel-mocks', ['~> 1.0']
52
- gem.add_development_dependency 'rspec-rails', ['~> 3.0']
53
-
54
- gem.post_install_message =<<-MSG
46
+ gem.post_install_message = <<-MSG
55
47
  -------------------------------------------------------------
56
48
  Thank you for installing Alchemy CMS
57
49
  -------------------------------------------------------------
@@ -1,71 +1,33 @@
1
1
  <?xml version="1.0" standalone="no"?>
2
2
  <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
3
3
  <svg xmlns="http://www.w3.org/2000/svg">
4
- <metadata>
5
- This is a custom SVG font generated by IcoMoon.
6
- <iconset grid="20"></iconset>
7
- </metadata>
4
+ <metadata>Generated by IcoMoon</metadata>
8
5
  <defs>
9
- <font id="Alchemy-Icons" horiz-adv-x="640" >
10
- <font-face units-per-em="640" ascent="608" descent="-32" />
11
- <missing-glyph horiz-adv-x="640" />
12
- <glyph unicode="&#xe000;" d="M 512.00,544.00L 128.00,544.00 C 92.80,544.00, 64.00,515.20, 64.00,480.00l0.00-384.00 c0.00-35.20, 28.80-64.00, 64.00-64.00l 384.00,0.00 c 35.20,0.00, 64.00,28.80, 64.00,64.00L 576.00,480.00 C 576.00,515.20, 547.20,544.00, 512.00,544.00z M 480.00,256.00l-128.00,0.00 l0.00-128.00 L 288.00,128.00 l0.00,128.00 L 160.00,256.00 L 160.00,320.00 l 128.00,0.00 L 288.00,448.00 l 64.00,0.00 l0.00-128.00 l 128.00,0.00 L 480.00,256.00 z" />
13
- <glyph unicode="&#xe001;" d="M 512.00,544.00L 128.00,544.00 C 92.80,544.00, 64.00,515.20, 64.00,480.00l0.00-384.00 c0.00-35.20, 28.80-64.00, 64.00-64.00l 384.00,0.00 c 35.20,0.00, 64.00,28.80, 64.00,64.00L 576.00,480.00 C 576.00,515.20, 547.20,544.00, 512.00,544.00z M 480.00,256.00L 160.00,256.00 L 160.00,320.00 l 320.00,0.00 L 480.00,256.00 z" />
14
- <glyph unicode="&#xe004;" d="M 459.168,187.136L 370.912,288.00l 88.256,100.864c 15.008,15.008, 15.008,39.328,0.00,54.304c-15.008,14.976-39.328,14.976-54.304,0.00L 320.00,346.176
15
- l-84.832,96.96c-15.008,15.008-39.328,15.008-54.304,0.00c-14.976-15.008-14.976-39.328,0.00-54.304L 269.088,288.00l-88.256-100.864
16
- c-14.976-15.008-14.976-39.264,0.00-54.24c 15.008-15.008, 39.328-15.008, 54.304,0.00L 320.00,229.824l 84.832-96.928c 15.008-15.008, 39.328-15.008, 54.304,0.00
17
- S 474.144,172.128, 459.168,187.136z" />
18
- <glyph unicode="&#xe005;" d="M 486.368,320.00l-134.40,0.00 L 351.968,454.40 c0.00,17.664-14.304,19.20-32.00,19.20c-17.664,0.00-32.00-1.504-32.00-19.20L 287.968,320.00 L 153.60,320.00 c-17.696,0.00-19.20-14.336-19.20-32.00s 1.504-32.00, 19.20-32.00l 134.368,0.00
19
- l0.00-134.40 c0.00-17.664, 14.336-19.20, 32.00-19.20c 17.696,0.00, 32.00,1.536, 32.00,19.20L 351.968,256.00 l 134.40,0.00 c 17.696,0.00, 19.232,14.336, 19.232,32.00S 504.064,320.00, 486.368,320.00z" />
20
- <glyph unicode="&#xe006;" d="M 486.368,320.00L 153.60,320.00 c-17.696,0.00-19.20-14.336-19.20-32.00s 1.504-32.00, 19.20-32.00l 332.768,0.00 c 17.696,0.00, 19.232,14.336, 19.232,32.00S 504.064,320.00, 486.368,320.00z" />
21
- <glyph unicode="&#xe007;" d="M 529.952,497.984c-46.144,46.176-80.80,39.264-80.80,39.264L 287.456,375.552L 102.72,190.816L 70.40,38.40l 152.416,32.32l 184.736,184.736l 161.664,161.664
22
- C 569.216,417.12, 576.16,451.776, 529.952,497.984z M 213.728,89.056l-51.936-11.20c-5.024,9.376-11.072,18.752-22.112,29.824
23
- c-11.04,11.04-20.448,17.056-29.824,22.08l 11.232,51.968l 15.008,15.008c0.00,0.00, 28.288-0.576, 60.192-32.48c 31.936-31.936, 32.512-60.224, 32.512-60.224
24
- L 213.728,89.056z" />
25
- <glyph unicode="&#xe034;" d="M 96.747,279.653L 345.147,528.00L 558.48,528.00 l0.00-213.333 l -248.40-248.373c -16.747-16.747, -43.893-16.747, -60.64,0.00l -152.693,152.72
26
- C 80.00,235.733, 80.00,262.88, 96.747,279.653z M 438.48,354.667c 29.467,0.00 53.333,23.867 53.333,53.333s -23.867,53.333, -53.333,53.333c -29.467,0.08, -53.333-23.867, -53.333-53.333S 409.067,354.667, 438.48,354.667
27
- z" />
28
- <glyph unicode="&#xe008;" d="M 316.064,582.368c-162.56-2.176-292.608-135.744-290.432-298.336c 2.176-162.496, 135.744-292.576, 298.304-290.40
29
- c 162.56,2.176, 292.608,135.744, 290.432,298.336C 612.224,454.496, 478.624,584.544, 316.064,582.368z M 348.704,484.256c 29.92,0.00, 38.752-17.344, 38.752-37.216
30
- c0.00-24.80-19.872-47.744-53.76-47.744c-28.352,0.00-41.824,14.272-41.024,37.824C 292.672,456.992, 309.312,484.256, 348.704,484.256z M 271.968,104.00
31
- c-20.448,0.00-35.424,12.416-21.12,67.008l 23.456,96.768c 4.064,15.52, 4.736,21.728,0.00,21.728c-6.112,0.00-32.672-10.72-48.384-21.28l-10.208,16.736
32
- c 49.76,41.536, 106.976,65.92, 131.488,65.92c 20.448,0.00, 23.84-24.192, 13.632-61.408l-26.88-101.76c-4.736-17.984-2.688-24.192, 2.048-24.192
33
- c 6.112,0.00, 26.24,7.424, 46.016,22.976l 11.552-15.52C 345.216,122.624, 292.448,104.00, 271.968,104.00z" />
34
- <glyph unicode="&#xe009;" d="M 624.384,32.576L 339.328,532.768C 335.392,539.68, 328.00,543.936, 320.00,543.936c-8.00,0.00-15.36-4.256-19.328-11.168L 15.648,32.576
35
- c-3.872-6.784-3.808-15.072, 0.16-21.792s 11.264-10.848, 19.136-10.848l 570.08,0.00 c 7.808,0.00, 15.136,4.128, 19.136,10.848
36
- C 628.128,17.504, 628.192,25.792, 624.384,32.576z M 355.20,63.936L 284.80,63.936 l0.00,64.00 l 70.40,0.00 L 355.20,63.936 z M 355.20,175.936L 284.80,175.936 l0.00,192.00 l 70.40,0.00 L 355.20,175.936 z" />
37
- <glyph unicode="&#xe00a;" d="M 265.44,64.00c-13.92,0.00-27.104,6.496-35.552,17.696L 115.52,232.672c-14.88,19.648-11.008,47.616, 8.64,62.496
38
- c 19.68,14.912, 47.616,11.008, 62.496-8.64l 75.232-99.328l 189.184,303.712c 13.024,20.896, 40.544,27.296, 61.472,14.272
39
- c 20.896-12.992, 27.296-40.544, 14.24-61.44L 303.328,85.024c-7.776-12.512-21.184-20.352-35.872-20.992C 266.784,64.00, 266.112,64.00, 265.44,64.00z" />
40
- <glyph unicode="&#xe00b;" d="M 359.232,550.40c-142.24,0.00-257.92-113.984-261.408-255.84L 19.20,294.56 l 117.728-131.20l 117.696,131.20L 163.232,294.56 C 166.688,400.192, 253.088,484.80, 359.232,484.80
41
- c 108.384,0.00, 196.192-88.096, 196.192-196.80s-87.808-196.80-196.192-196.80c-43.424,0.00-83.552,14.208-116.064,38.176l-44.992-48.128
42
- C 242.56,46.40, 298.464,25.60, 359.232,25.60c 144.48,0.00, 261.60,117.472, 261.60,262.40C 620.80,432.928, 503.68,550.40, 359.232,550.40z" />
43
- <glyph unicode="&#xf014;" d="M 182.857,345.143l0.00-205.714 q0.00-5.00 -3.214-8.214t-8.214-3.214l-22.857,0.00 q-5.00,0.00 -8.214,3.214t-3.214,8.214l0.00,205.714 q0.00,5.00 3.214,8.214t 8.214,3.214l 22.857,0.00 q 5.00,0.00 8.214-3.214t 3.214-8.214zM 274.286,345.143l0.00-205.714 q0.00-5.00 -3.214-8.214t-8.214-3.214l-22.857,0.00 q-5.00,0.00 -8.214,3.214t-3.214,8.214l0.00,205.714 q0.00,5.00 3.214,8.214t 8.214,3.214l 22.857,0.00 q 5.00,0.00 8.214-3.214t 3.214-8.214zM 365.714,345.143l0.00-205.714 q0.00-5.00 -3.214-8.214t-8.214-3.214l-22.857,0.00 q-5.00,0.00 -8.214,3.214t-3.214,8.214l0.00,205.714 q0.00,5.00 3.214,8.214t 8.214,3.214l 22.857,0.00 q 5.00,0.00 8.214-3.214t 3.214-8.214zM 411.429,86.571l0.00,338.571 l-320.00,0.00 l0.00-338.571 q0.00-7.857 2.50-14.464t 5.179-9.643t 3.75-3.036l 297.143,0.00 q 1.071,0.00 3.75,3.036t 5.179,9.643t 2.50,14.464zM 171.429,470.857l 160.00,0.00 l-17.143,41.786q-2.50,3.214 -6.071,3.929l-113.214,0.00 q-3.571-0.714 -6.071-3.929zM 502.857,459.429l0.00-22.857 q0.00-5.00 -3.214-8.214t-8.214-3.214l-34.286,0.00 l0.00-338.571 q0.00-29.643 -16.786-51.25t-40.357-21.607l-297.143,0.00 q-23.571,0.00 -40.357,20.893t-16.786,50.536l0.00,340.00 l-34.286,0.00 q-5.00,0.00 -8.214,3.214t-3.214,8.214l0.00,22.857 q0.00,5.00 3.214,8.214t 8.214,3.214l 110.357,0.00 l 25.00,59.643q 5.357,13.214 19.286,22.50t 28.214,9.286l 114.286,0.00 q 14.286,0.00 28.214-9.286t 19.286-22.50l 25.00-59.643l 110.357,0.00 q 5.00,0.00 8.214-3.214t 3.214-8.214z" horiz-adv-x="502.8571428571429" />
44
- <glyph unicode="&#xe00e;" d="M 320.00,556.80c-148.48,0.00-268.80-120.384-268.80-268.80c0.00-148.48, 120.352-268.80, 268.80-268.80c 148.448,0.00, 268.80,120.352, 268.80,268.80C 588.80,436.448, 468.448,556.80, 320.00,556.80z
45
- M 375.328,288.00l 97.952-97.952l-55.328-55.328L 320.00,232.672l-97.952-97.952l-55.296,55.328L 264.672,288.00l-97.92,97.92l 55.296,55.328L 320.00,343.328l 97.952,97.92
46
- l 55.328-55.296L 375.328,288.00z" />
47
- <glyph unicode="&#xe00f;" d="M 548.00,378.464l-65.472,180.352c-4.832,13.312-19.04,20.352-31.648,15.744L 15.776,415.744C 3.136,411.168-3.232,396.64, 1.60,383.328
48
- l 69.024-190.144L 70.624,295.104 c0.00,45.984, 36.736,83.36, 81.952,83.36l 114.976,0.00 l 137.12,96.256l 79.36-96.256L 548.00,378.464 z M 615.616,320.736L 152.576,320.736
49
- c-13.44,0.00-24.384-11.488-24.384-25.664l0.00-301.472 c0.00-14.144, 10.912-25.664, 24.384-25.664l 463.04,0.00 c 13.472,0.00, 24.384,11.488, 24.384,25.664L 640.00,295.104
50
- C 640.00,309.248, 629.088,320.736, 615.616,320.736z M 580.288,32.096L 196.448,32.096 l0.00,55.008 l 59.04,137.44l 88.608-109.984l 83.104,85.184l 106.848,38.56l 46.24-103.104
51
- L 580.288,32.096 z" />
52
- <glyph unicode="&#xe010;" d="M 320.00,608.00L 172.80,374.40l 294.368,0.00L 320.00,608.00z M 320.032-32.00l 147.168,233.60L 172.80,201.632L 320.032-32.00z" />
53
- <glyph unicode="&#xe011;" d="M 402.66,608.00C 271.88,608.00, 165.46,501.60, 165.46,370.74c0.00-31.32, 6.40-61.02, 17.42-88.36L0.00,99.48L 131.40-32.00l 182.96,183.04
54
- c 27.34-11.10, 57.04-17.50, 88.28-17.50c 130.86,0.00, 237.34,106.40, 237.34,237.16C 640.00,501.60, 533.52,608.00, 402.66,608.00z M 402.66,213.46
55
- c-86.64,0.00-157.26,70.62-157.26,157.24c0.00,86.72, 70.62,157.34, 157.26,157.34c 86.80,0.00, 157.42-70.62, 157.42-157.34
56
- C 560.08,284.10, 489.46,213.46, 402.66,213.46z" />
57
- <glyph unicode="&#xe01e;" d="M 491.72,59.72L 583.44-32.00L 640.00,24.56L 548.28,116.28L 640.00,208.00L 400.00,208.00L 400.00-32.00 zM0.00,368.00L 240.00,368.00L 240.00,608.00L 148.28,516.28L 57.50,607.14L 0.94,550.58L 91.72,459.72 zM0.00,24.56L 56.56-32.00L 148.28,59.72L 240.00-32.00L 240.00,208.00L0.00,208.00L 91.72,116.28 zM 400.00,368.00L 640.00,368.00L 548.28,459.72L 639.22,550.58L 582.66,607.14L 491.72,516.28L 400.00,608.00 z" />
58
- <glyph unicode="&#xe00c;" d="M 316.096,582.368c-162.592-2.176-292.64-135.744-290.464-298.336c 2.176-162.496, 135.744-292.576, 298.336-290.40
59
- c 162.528,2.176, 292.608,135.744, 290.40,298.336C 612.224,454.496, 478.656,584.544, 316.096,582.368z M 315.232,108.80L 313.60,108.80 c-25.024,0.736-42.688,19.20-41.984,43.872
60
- c 0.704,24.224, 18.784,41.856, 43.008,41.856l 1.472-0.032c 25.728-0.768, 43.20-19.04, 42.432-44.416C 357.824,125.792, 340.00,108.80, 315.232,108.80z
61
- M 420.544,317.824c-5.92-8.352-18.848-18.752-35.168-31.456l-17.984-12.416c-9.856-7.68-15.808-14.88-18.016-21.952
62
- c-1.792-5.632-2.624-7.072-2.784-18.432l-0.032-2.912L 277.984,230.656 l 0.192,5.824c 0.832,23.872, 1.44,37.888, 11.328,49.504
63
- c 15.52,18.208, 49.76,40.256, 51.20,41.184c 4.896,3.712, 9.024,7.904, 12.128,12.384c 7.20,9.92, 10.368,17.76, 10.368,25.408
64
- c0.00,10.656-3.168,20.512-9.408,29.28c-6.016,8.48-17.44,12.768-33.952,12.768c-16.384,0.00-27.584-5.216-34.304-15.872
65
- C 278.592,380.16, 275.136,368.672, 275.136,356.896l0.00-2.944 l-70.72,0.00 l 0.128,3.072c 1.824,43.328, 17.28,74.496, 45.952,92.704C 268.48,461.344, 290.88,467.20, 316.992,467.20
66
- c 34.208,0.00, 63.136-8.32, 85.856-24.704c 23.04-16.608, 34.72-41.504, 34.72-73.952C 437.568,350.368, 431.84,333.312, 420.544,317.824z" />
67
- <glyph unicode="&#xe01d;" d="M 548.28,116.28L 456.56,208.00L 400.00,151.44L 491.72,59.72L 400.00-32.00L 640.00-32.00L 640.00,208.00 zM 240.00,608.00L0.00,608.00L0.00,368.00L 91.72,459.72L 182.58,368.94L 239.14,425.50L 148.28,516.28 zM 240.00,151.44L 183.44,208.00L 91.72,116.28L0.00,208.00L0.00-32.00L 240.00-32.00L 148.28,59.72 zM 640.00,608.00L 400.00,608.00L 491.72,516.28L 400.86,425.50L 457.42,368.94L 548.28,459.72L 640.00,368.00 z" />
68
- <glyph unicode="&#xf013;" d="M 365.714,288.00q0.00,37.857 -26.786,64.643t-64.643,26.786t-64.643-26.786t-26.786-64.643t 26.786-64.643t 64.643-26.786t 64.643,26.786t 26.786,64.643zM 548.571,326.929l0.00-79.286 q0.00-4.286 -2.857-8.214t-7.143-4.643l-66.071-10.00q-6.786-19.286 -13.929-32.50q 12.50-17.857 38.214-49.286q 3.571-4.286 3.571-8.929t-3.214-8.214q-9.643-13.214 -35.357-38.571t-33.571-25.357q-4.286,0.00 -9.286,3.214l-49.286,38.571q-15.714-8.214 -32.50-13.571 q-5.714-48.571 -10.357-66.429q-2.50-10.00 -12.857-10.00l-79.286,0.00 q-5.00,0.00 -8.75,3.036t-4.107,7.679l-10.00,65.714q-17.50,5.714 -32.143,13.214l-50.357-38.214q-3.571-3.214 -8.929-3.214q-5.00,0.00 -8.929,3.929q-45.00,40.714 -58.929,60.00q-2.50,3.571 -2.50,8.214q0.00,4.286 2.857,8.214q 5.357,7.50 18.214,23.75t 19.286,25.179q-9.643,17.857 -14.643,35.357l-65.357,9.643q-4.643,0.714 -7.50,4.464t-2.857,8.393l0.00,79.286 q0.00,4.286 2.857,8.214t 6.786,4.643 l 66.429,10.00q 5.00,16.429 13.929,32.857q-14.286,20.357 -38.214,49.286q-3.571,4.286 -3.571,8.571q0.00,3.571 3.214,8.214q 9.286,12.857 35.179,38.393t 33.75,25.536q 4.643,0.00 9.286-3.571l 49.286-38.214q 15.714,8.214 32.50,13.571q 5.714,48.571 10.357,66.429q 2.50,10.00 12.857,10.00l 79.286,0.00 q 5.00,0.00 8.75-3.036t 4.107-7.679l 10.00-65.714q 17.50-5.714 32.143-13.214l 50.714,38.214q 3.214,3.214 8.571,3.214q 4.643,0.00 8.929-3.571q 46.071-42.50 58.929-60.714q 2.50-2.857 2.50-7.857 q0.00-4.286 -2.857-8.214q-5.357-7.50 -18.214-23.75t-19.286-25.179q 9.286-17.857 14.643-35.00l 65.357-10.00q 4.643-0.714 7.50-4.464t 2.857-8.393z" horiz-adv-x="548.5714285714286" />
69
- <glyph unicode="&#x20;" horiz-adv-x="320" />
70
- <glyph class="hidden" unicode="&#xf000;" d="M0,608L 640 -32L0 -32 z" horiz-adv-x="0" />
6
+ <font id="Alchemy-Icons" horiz-adv-x="1024">
7
+ <font-face units-per-em="1024" ascent="960" descent="-64" />
8
+ <missing-glyph horiz-adv-x="1024" />
9
+ <glyph unicode="&#x20;" horiz-adv-x="512" d="" />
10
+ <glyph unicode="&#xe000;" glyph-name="plus" d="M819.2 836.267h-614.4c-56.32 0-102.4-46.080-102.4-102.4v-614.4c0-56.32 46.080-102.4 102.4-102.4h614.4c56.32 0 102.4 46.080 102.4 102.4v614.4c0 56.32-46.080 102.4-102.4 102.4zM768 375.467h-204.8v-204.8h-102.4v204.8h-204.8v102.4h204.8v204.8h102.4v-204.8h204.8v-102.4z" />
11
+ <glyph unicode="&#xe001;" glyph-name="minus" d="M819.2 836.267h-614.4c-56.32 0-102.4-46.080-102.4-102.4v-614.4c0-56.32 46.080-102.4 102.4-102.4h614.4c56.32 0 102.4 46.080 102.4 102.4v614.4c0 56.32-46.080 102.4-102.4 102.4zM768 375.467h-512v102.4h512v-102.4z" />
12
+ <glyph unicode="&#xe004;" glyph-name="cross" d="M734.669 265.285l-141.21 161.382 141.21 161.382c24.013 24.013 24.013 62.925 0 86.886s-62.925 23.962-86.886 0l-135.782-155.187-135.731 155.136c-24.013 24.013-62.925 24.013-86.886 0s-23.962-62.925 0-86.886l141.158-161.331-141.21-161.382c-23.962-24.013-23.962-62.822 0-86.784 24.013-24.013 62.925-24.013 86.886 0l135.782 155.085 135.731-155.085c24.013-24.013 62.925-24.013 86.886 0s24.013 62.771 0.051 86.784z" />
13
+ <glyph unicode="&#xe005;" glyph-name="plus-2" d="M778.189 477.867h-215.040v215.040c0 28.262-22.886 30.72-51.2 30.72-28.262 0-51.2-2.406-51.2-30.72v-215.040h-214.989c-28.314 0-30.72-22.938-30.72-51.2s2.406-51.2 30.72-51.2h214.989v-215.040c0-28.262 22.938-30.72 51.2-30.72 28.314 0 51.2 2.458 51.2 30.72v215.040h215.040c28.314 0 30.771 22.938 30.771 51.2s-2.458 51.2-30.771 51.2z" />
14
+ <glyph unicode="&#xe006;" glyph-name="minus-2" d="M778.189 477.867h-532.429c-28.314 0-30.72-22.938-30.72-51.2s2.406-51.2 30.72-51.2h532.429c28.314 0 30.771 22.938 30.771 51.2s-2.458 51.2-30.771 51.2z" />
15
+ <glyph unicode="&#xe007;" glyph-name="pencil" d="M847.923 762.641c-73.83 73.882-129.28 62.822-129.28 62.822l-554.291-554.291-51.712-243.866 243.866 51.712 554.24 554.24c0 0 11.11 55.45-62.822 129.382zM341.965 108.357l-83.098-17.92c-8.038 15.002-17.715 30.003-35.379 47.718-17.664 17.664-32.717 27.29-47.718 35.328l17.971 83.149 24.013 24.013c0 0 45.261-0.922 96.307-51.968 51.098-51.098 52.019-96.358 52.019-96.358l-24.115-23.962z" />
16
+ <glyph unicode="&#xe008;" glyph-name="info" d="M505.702 897.656c-260.096-3.482-468.173-217.19-464.691-477.338 3.482-259.994 217.19-468.122 477.286-464.64s468.173 217.19 464.691 477.338c-3.43 260.045-217.19 468.122-477.286 464.64zM557.926 740.677c47.872 0 62.003-27.75 62.003-59.546 0-39.68-31.795-76.39-86.016-76.39-45.363 0-66.918 22.835-65.638 60.518 0 31.795 26.624 75.418 89.651 75.418zM435.149 132.267c-32.717 0-56.678 19.866-33.792 107.213l37.53 154.829c6.502 24.832 7.578 34.765 0 34.765-9.779 0-52.275-17.152-77.414-34.048l-16.333 26.778c79.616 66.458 171.162 105.472 210.381 105.472 32.717 0 38.144-38.707 21.811-98.253l-43.008-162.816c-7.578-28.774-4.301-38.707 3.277-38.707 9.779 0 41.984 11.878 73.626 36.762l18.483-24.832c-77.363-77.363-161.792-107.162-194.56-107.162z" />
17
+ <glyph unicode="&#xe009;" glyph-name="warning" d="M999.014 17.989l-456.090 800.307c-6.298 11.059-18.125 17.869-30.925 17.869s-24.576-6.81-30.925-17.869l-456.038-800.307c-6.195-10.854-6.093-24.115 0.256-34.867s18.022-17.357 30.618-17.357h912.128c12.493 0 24.218 6.605 30.618 17.357 6.349 10.752 6.451 24.013 0.358 34.867zM568.32 68.165h-112.64v102.4h112.64v-102.4zM568.32 247.365h-112.64v307.2h112.64v-307.2z" />
18
+ <glyph unicode="&#xe00a;" glyph-name="checkmark" d="M424.704 68.267c-22.272 0-43.366 10.394-56.883 28.314l-182.989 241.562c-23.808 31.437-17.613 76.186 13.824 99.994 31.488 23.859 76.186 17.613 99.994-13.824l120.371-158.925 302.694 485.939c20.838 33.434 64.87 43.674 98.355 22.835 33.434-20.787 43.674-64.87 22.784-98.304l-357.53-573.952c-12.442-20.019-33.894-32.563-57.395-33.587-1.075-0.051-2.15-0.051-3.226-0.051z" />
19
+ <glyph unicode="&#xe00b;" glyph-name="ccw" d="M574.771 846.507c-227.584 0-412.672-182.374-418.253-409.344h-125.798l188.365-209.92 188.314 209.92h-146.227c5.53 169.011 143.77 304.384 313.6 304.384 173.414 0 313.907-140.954 313.907-314.88s-140.493-314.88-313.907-314.88c-69.478 0-133.683 22.733-185.702 61.082l-71.987-77.005c71.014-55.757 160.461-89.037 257.69-89.037 231.168 0 418.56 187.955 418.56 419.84-0.051 231.885-187.443 419.84-418.56 419.84z" />
20
+ <glyph unicode="&#xe00c;" glyph-name="help" d="M505.754 897.656c-260.147-3.482-468.224-217.19-464.742-477.338 3.482-259.994 217.19-468.122 477.338-464.64 260.045 3.482 468.173 217.19 464.64 477.338-3.43 260.045-217.139 468.122-477.235 464.64zM504.371 139.947h-2.611c-40.038 1.178-68.301 30.72-67.174 70.195 1.126 38.758 30.054 66.97 68.813 66.97l2.355-0.051c41.165-1.229 69.12-30.464 67.891-71.066-1.126-38.861-29.645-66.048-69.274-66.048zM672.87 474.385c-9.472-13.363-30.157-30.003-56.269-50.33l-28.774-19.866c-15.77-12.288-25.293-23.808-28.826-35.123-2.867-9.011-4.198-11.315-4.454-29.491l-0.051-4.659h-109.722l0.307 9.318c1.331 38.195 2.304 60.621 18.125 79.206 24.832 29.133 79.616 64.41 81.92 65.894 7.834 5.939 14.438 12.646 19.405 19.814 11.52 15.872 16.589 28.416 16.589 40.653 0 17.050-5.069 32.819-15.053 46.848-9.626 13.568-27.904 20.429-54.323 20.429-26.214 0-44.134-8.346-54.886-25.395-11.11-17.562-16.64-35.942-16.64-54.784v-4.71h-113.152l0.205 4.915c2.918 69.325 27.648 119.194 73.523 148.326 28.774 18.586 64.614 27.955 106.394 27.955 54.733 0 101.018-13.312 137.37-39.526 36.864-26.573 55.552-66.406 55.552-118.323 0-29.082-9.165-56.371-27.238-81.152z" />
21
+ <glyph unicode="&#xe00e;" glyph-name="cross-2" d="M512 856.747c-237.568 0-430.080-192.614-430.080-430.080 0-237.568 192.563-430.080 430.080-430.080s430.080 192.563 430.080 430.080c0 237.517-192.563 430.080-430.080 430.080zM600.525 426.667l156.723-156.723-88.525-88.525-156.723 156.723-156.723-156.723-88.474 88.525 156.672 156.723-156.672 156.672 88.474 88.525 156.723-156.672 156.723 156.672 88.525-88.474-156.723-156.723z" />
22
+ <glyph unicode="&#xe00f;" glyph-name="pictures" d="M876.8 571.409l-104.755 288.563c-7.731 21.299-30.464 32.563-50.637 25.19l-696.166-254.106c-20.224-7.322-30.413-30.566-22.682-51.866l110.438-304.23v163.072c0 73.574 58.778 133.376 131.123 133.376h183.962l219.392 154.010 126.976-154.010h102.349zM984.986 479.045h-740.864c-21.504 0-39.014-18.381-39.014-41.062v-482.355c0-22.63 17.459-41.062 39.014-41.062h740.864c21.555 0 39.014 18.381 39.014 41.062v482.406c0 22.63-17.459 41.011-39.014 41.011zM928.461 17.221h-614.144v88.013l94.464 219.904 141.773-175.974 132.966 136.294 170.957 61.696 73.984-164.966v-164.966z" />
23
+ <glyph unicode="&#xe010;" glyph-name="menu" d="M512 938.667l-235.52-373.76h470.989l-235.469 373.76zM512.051-85.333l235.469 373.76-471.040 0.051 235.571-373.811z" />
24
+ <glyph unicode="&#xe011;" glyph-name="magnifying-glass" d="M644.256 938.667c-209.248 0-379.52-170.24-379.52-379.616 0-50.112 10.24-97.632 27.872-141.376l-292.608-292.64 210.24-210.368 292.736 292.864c43.744-17.76 91.264-28 141.248-28 209.376 0 379.744 170.24 379.744 379.456 0.032 209.44-170.336 379.68-379.712 379.68zM644.256 307.403c-138.624 0-251.616 112.992-251.616 251.584 0 138.752 112.992 251.744 251.616 251.744 138.88 0 251.872-112.992 251.872-251.744 0-138.56-112.992-251.584-251.872-251.584z" />
25
+ <glyph unicode="&#xe01d;" glyph-name="fullscreen" d="M877.248 151.915l-146.752 146.752-90.496-90.496 146.752-146.752-146.752-146.752h384v384zM384 938.667h-384v-384l146.752 146.752 145.376-145.248 90.496 90.496-145.376 145.248zM384 208.171l-90.496 90.496-146.752-146.752-146.752 146.752v-384h384l-146.752 146.752zM1024 938.667h-384l146.752-146.752-145.376-145.248 90.496-90.496 145.376 145.248 146.752-146.752z" />
26
+ <glyph unicode="&#xe01e;" glyph-name="fullscreen-exit" d="M786.752 61.419l146.752-146.752 90.496 90.496-146.752 146.752 146.752 146.752h-384v-384zM0 554.667h384v384l-146.752-146.752-145.248 145.376-90.496-90.496 145.248-145.376zM0 5.163l90.496-90.496 146.752 146.752 146.752-146.752v384h-384l146.752-146.752zM640 554.667h384l-146.752 146.752 145.504 145.376-90.496 90.496-145.504-145.376-146.752 146.752z" />
27
+ <glyph unicode="&#xe034;" glyph-name="tag" d="M154.795 413.312l397.44 397.355h341.333v-341.333l-397.44-397.397c-26.795-26.795-70.229-26.795-97.024 0l-244.309 244.352c-26.795 26.75-26.795 70.186 0 97.022zM701.568 533.334c47.147 0 85.333 38.187 85.333 85.333s-38.187 85.333-85.333 85.333c-47.147 0.128-85.333-38.187-85.333-85.333s38.272-85.333 85.333-85.333z" />
28
+ <glyph unicode="&#xf013;" glyph-name="cog" horiz-adv-x="877" d="M585.142 426.667q0 60.571-42.858 103.429t-103.429 42.858-103.429-42.858-42.858-103.429 42.858-103.429 103.429-42.858 103.429 42.858 42.858 103.429zM877.714 488.953v-126.858q0-6.858-4.571-13.142t-11.429-7.429l-105.714-16q-10.858-30.858-22.286-52 20-28.571 61.142-78.858 5.714-6.858 5.714-14.286t-5.142-13.142q-15.429-21.142-56.571-61.714t-53.714-40.571q-6.858 0-14.858 5.142l-78.858 61.714q-25.142-13.142-52-21.714-9.142-77.714-16.571-106.286-4-16-20.571-16h-126.858q-8 0-14 4.858t-6.571 12.286l-16 105.142q-28 9.142-51.429 21.142l-80.571-61.142q-5.714-5.142-14.286-5.142-8 0-14.286 6.286-72 65.142-94.286 96-4 5.714-4 13.142 0 6.858 4.571 13.142 8.571 12 29.142 38t30.858 40.286q-15.429 28.571-23.429 56.571l-104.571 15.429q-7.429 1.142-12 7.142t-4.571 13.429v126.858q0 6.858 4.571 13.142t10.858 7.429l106.286 16q8 26.286 22.286 52.571-22.858 32.571-61.142 78.858-5.714 6.858-5.714 13.714 0 5.714 5.142 13.142 14.858 20.571 56.286 61.429t54 40.858q7.429 0 14.858-5.714l78.858-61.142q25.142 13.142 52 21.714 9.142 77.714 16.571 106.286 4 16 20.571 16h126.858q8 0 14-4.858t6.571-12.286l16-105.142q28-9.142 51.429-21.142l81.142 61.142q5.142 5.142 13.714 5.142 7.429 0 14.286-5.714 73.714-68 94.286-97.142 4-4.571 4-12.571 0-6.858-4.571-13.142-8.571-12-29.142-38t-30.858-40.286q14.858-28.571 23.429-56l104.571-16q7.429-1.142 12-7.142t4.571-13.429z" />
29
+ <glyph unicode="&#xf014;" glyph-name="trash" horiz-adv-x="803" d="M292.571 518.096v-329.142q0-8-5.142-13.142t-13.142-5.142h-36.571q-8 0-13.142 5.142t-5.142 13.142v329.142q0 8 5.142 13.142t13.142 5.142h36.571q8 0 13.142-5.142t5.142-13.142zM438.858 518.096v-329.142q0-8-5.142-13.142t-13.142-5.142h-36.571q-8 0-13.142 5.142t-5.142 13.142v329.142q0 8 5.142 13.142t13.142 5.142h36.571q8 0 13.142-5.142t5.142-13.142zM585.142 518.096v-329.142q0-8-5.142-13.142t-13.142-5.142h-36.571q-8 0-13.142 5.142t-5.142 13.142v329.142q0 8 5.142 13.142t13.142 5.142h36.571q8 0 13.142-5.142t5.142-13.142zM658.286 104.381v541.714h-512v-541.714q0-12.571 4-23.142t8.286-15.429 6-4.858h475.429q1.714 0 6 4.858t8.286 15.429 4 23.142zM274.286 719.238h256l-27.429 66.858q-4 5.142-9.714 6.286h-181.142q-5.714-1.142-9.714-6.286zM804.571 700.953v-36.571q0-8-5.142-13.142t-13.142-5.142h-54.858v-541.714q0-47.429-26.858-82t-64.571-34.571h-475.429q-37.714 0-64.571 33.429t-26.858 80.858v544h-54.858q-8 0-13.142 5.142t-5.142 13.142v36.571q0 8 5.142 13.142t13.142 5.142h176.571l40 95.429q8.571 21.142 30.858 36t45.142 14.858h182.858q22.858 0 45.142-14.858t30.858-36l40-95.429h176.571q8 0 13.142-5.142t5.142-13.142z" />
30
+ <glyph unicode="&#xf101;" glyph-name="angle-double-right" horiz-adv-x="585" d="M340 390.096q0-7.429-5.714-13.143l-266.286-266.286q-5.714-5.714-13.143-5.714t-13.143 5.714l-28.571 28.571q-5.714 5.714-5.714 13.143t5.714 13.143l224.571 224.571-224.571 224.571q-5.714 5.714-5.714 13.143t5.714 13.143l28.571 28.571q5.714 5.714 13.143 5.714t13.143-5.714l266.286-266.286q5.714-5.714 5.714-13.143zM559.429 390.096q0-7.429-5.714-13.143l-266.286-266.286q-5.714-5.714-13.143-5.714t-13.143 5.714l-28.571 28.571q-5.714 5.714-5.714 13.143t5.714 13.143l224.571 224.571-224.571 224.571q-5.714 5.714-5.714 13.143t5.714 13.143l28.571 28.571q5.714 5.714 13.143 5.714t13.143-5.714l266.286-266.286q5.714-5.714 5.714-13.143z" />
31
+ <glyph unicode="&#xf104;" glyph-name="angle-left" horiz-adv-x="366" d="M358.286 627.81q0-7.429-5.714-13.143l-224.571-224.571 224.571-224.571q5.714-5.714 5.714-13.143t-5.714-13.143l-28.571-28.571q-5.714-5.714-13.143-5.714t-13.143 5.714l-266.286 266.286q-5.714 5.714-5.714 13.143t5.714 13.143l266.286 266.286q5.714 5.714 13.143 5.714t13.143-5.714l28.571-28.571q5.714-5.714 5.714-13.143z" />
32
+ <glyph unicode="&#xf105;" glyph-name="angle-right" horiz-adv-x="366" d="M340 390.096q0-7.429-5.714-13.143l-266.286-266.286q-5.714-5.714-13.143-5.714t-13.143 5.714l-28.571 28.571q-5.714 5.714-5.714 13.143t5.714 13.143l224.571 224.571-224.571 224.571q-5.714 5.714-5.714 13.143t5.714 13.143l28.571 28.571q5.714 5.714 13.143 5.714t13.143-5.714l266.286-266.286q5.714-5.714 5.714-13.143z" />
71
33
  </font></defs></svg>