alchemy_cms 7.0.14 → 7.1.0.pre.b1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (348) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/backport.yml +36 -0
  3. data/.github/workflows/test.yml +3 -2
  4. data/.gitignore +0 -1
  5. data/.standard.yml +1 -1
  6. data/CHANGELOG.md +144 -33
  7. data/Gemfile +7 -11
  8. data/README.md +10 -8
  9. data/alchemy_cms.gemspec +4 -3
  10. data/app/assets/config/alchemy_manifest.js +0 -1
  11. data/app/assets/javascripts/alchemy/admin.js +1 -19
  12. data/app/assets/javascripts/alchemy/alchemy.confirm_dialog.js.coffee +2 -3
  13. data/app/assets/javascripts/alchemy/alchemy.dialog.js.coffee +19 -34
  14. data/app/assets/javascripts/alchemy/alchemy.elements_window.js.coffee +38 -13
  15. data/app/assets/javascripts/alchemy/alchemy.file_progress.js.coffee +1 -1
  16. data/app/assets/javascripts/alchemy/alchemy.fixed_elements.js +32 -25
  17. data/app/assets/javascripts/alchemy/alchemy.growler.js.coffee +1 -1
  18. data/app/assets/javascripts/alchemy/alchemy.image_overlay.coffee +3 -5
  19. data/app/assets/javascripts/alchemy/alchemy.initializer.js.coffee +0 -57
  20. data/app/assets/javascripts/alchemy/alchemy.link_dialog.js.coffee +22 -63
  21. data/app/assets/javascripts/alchemy/alchemy.list_filter.js.coffee +2 -2
  22. data/app/assets/javascripts/alchemy/alchemy.preview.js.coffee +5 -4
  23. data/app/assets/javascripts/alchemy/alchemy.preview_window.js.coffee +5 -5
  24. data/app/assets/javascripts/alchemy/templates/index.js +0 -2
  25. data/app/assets/javascripts/alchemy/templates/node_folder.hbs +1 -1
  26. data/app/assets/javascripts/alchemy/templates/page.hbs +1 -1
  27. data/app/assets/javascripts/alchemy/templates/page_folder.hbs +2 -2
  28. data/app/assets/stylesheets/alchemy/_custom-properties.scss +82 -0
  29. data/app/assets/stylesheets/alchemy/_mixins.scss +38 -30
  30. data/app/assets/stylesheets/alchemy/_variables.scss +12 -5
  31. data/app/assets/stylesheets/alchemy/admin.scss +3 -4
  32. data/app/assets/stylesheets/alchemy/archive.scss +107 -50
  33. data/app/assets/stylesheets/alchemy/attachments.scss +5 -4
  34. data/app/assets/stylesheets/alchemy/buttons.scss +38 -164
  35. data/app/assets/stylesheets/alchemy/dashboard.scss +31 -6
  36. data/app/assets/stylesheets/alchemy/dialogs.scss +12 -28
  37. data/app/assets/stylesheets/alchemy/elements.scss +273 -282
  38. data/app/assets/stylesheets/alchemy/flash.scss +20 -12
  39. data/app/assets/stylesheets/alchemy/forms.scss +21 -34
  40. data/app/assets/stylesheets/alchemy/frame.scss +11 -32
  41. data/app/assets/stylesheets/alchemy/hints.scss +4 -62
  42. data/app/assets/stylesheets/alchemy/image_library.scss +36 -33
  43. data/app/assets/stylesheets/alchemy/labels.scss +4 -1
  44. data/app/assets/stylesheets/alchemy/menubar.scss +7 -6
  45. data/app/assets/stylesheets/alchemy/navigation.scss +27 -15
  46. data/app/assets/stylesheets/alchemy/nodes.scss +11 -7
  47. data/app/assets/stylesheets/alchemy/notices.scss +16 -4
  48. data/app/assets/stylesheets/alchemy/page-select.scss +10 -2
  49. data/app/assets/stylesheets/alchemy/pagination.scss +22 -13
  50. data/app/assets/stylesheets/alchemy/preview_window.scss +4 -8
  51. data/app/assets/stylesheets/alchemy/resource_info.scss +7 -5
  52. data/app/assets/stylesheets/alchemy/selects.scss +49 -42
  53. data/app/assets/stylesheets/alchemy/shoelace.scss +345 -0
  54. data/app/assets/stylesheets/alchemy/sitemap.scss +24 -14
  55. data/app/assets/stylesheets/alchemy/spinner.scss +9 -19
  56. data/app/assets/stylesheets/alchemy/tables.scss +16 -24
  57. data/app/assets/stylesheets/alchemy/tags.scss +4 -0
  58. data/app/assets/stylesheets/alchemy/toolbar.scss +29 -25
  59. data/app/assets/stylesheets/alchemy/upload.scss +140 -89
  60. data/app/assets/stylesheets/tinymce/skins/alchemy/skin.min.css.scss +80 -108
  61. data/app/components/alchemy/admin/node_select.rb +39 -0
  62. data/app/components/alchemy/admin/page_select.rb +42 -0
  63. data/app/components/alchemy/ingredients/audio_view.rb +1 -1
  64. data/app/components/alchemy/ingredients/base_view.rb +1 -1
  65. data/app/components/alchemy/ingredients/boolean_view.rb +1 -1
  66. data/app/components/alchemy/ingredients/datetime_view.rb +1 -1
  67. data/app/components/alchemy/ingredients/file_view.rb +1 -1
  68. data/app/components/alchemy/ingredients/headline_view.rb +7 -16
  69. data/app/components/alchemy/ingredients/link_view.rb +1 -1
  70. data/app/components/alchemy/ingredients/page_view.rb +1 -1
  71. data/app/components/alchemy/ingredients/picture_view.rb +1 -1
  72. data/app/components/alchemy/ingredients/richtext_view.rb +1 -1
  73. data/app/components/alchemy/ingredients/text_view.rb +1 -1
  74. data/app/components/alchemy/ingredients/video_view.rb +1 -1
  75. data/app/controllers/alchemy/admin/base_controller.rb +5 -6
  76. data/app/controllers/alchemy/admin/elements_controller.rb +63 -35
  77. data/app/controllers/alchemy/admin/languages_controller.rb +1 -2
  78. data/app/controllers/alchemy/base_controller.rb +4 -2
  79. data/app/controllers/concerns/alchemy/admin/current_language.rb +1 -5
  80. data/app/controllers/concerns/alchemy/admin/uploader_responses.rb +1 -1
  81. data/app/controllers/concerns/alchemy/site_redirects.rb +1 -1
  82. data/app/decorators/alchemy/element_editor.rb +0 -2
  83. data/app/helpers/alchemy/admin/attachments_helper.rb +6 -5
  84. data/app/helpers/alchemy/admin/base_helper.rb +17 -12
  85. data/app/helpers/alchemy/admin/ingredients_helper.rb +4 -1
  86. data/app/helpers/alchemy/admin/pages_helper.rb +5 -11
  87. data/app/helpers/alchemy/base_helper.rb +47 -13
  88. data/app/javascript/alchemy_admin/components/alchemy_html_element.js +129 -0
  89. data/app/javascript/alchemy_admin/components/button.js +59 -0
  90. data/app/javascript/alchemy_admin/components/char_counter.js +40 -0
  91. data/app/javascript/alchemy_admin/components/datepicker.js +39 -0
  92. data/app/javascript/alchemy_admin/components/dialog_link.js +45 -0
  93. data/app/javascript/alchemy_admin/components/element_editor/publish_element_button.js +36 -0
  94. data/app/javascript/alchemy_admin/components/element_editor.js +553 -0
  95. data/app/javascript/alchemy_admin/components/ingredient_group.js +54 -0
  96. data/app/javascript/alchemy_admin/components/link_buttons/link_button.js +48 -0
  97. data/app/javascript/alchemy_admin/components/link_buttons/unlink_button.js +38 -0
  98. data/app/javascript/alchemy_admin/components/link_buttons.js +79 -0
  99. data/app/javascript/alchemy_admin/components/node_select.js +45 -0
  100. data/app/javascript/alchemy_admin/components/overlay.js +18 -0
  101. data/app/javascript/alchemy_admin/components/page_select.js +63 -0
  102. data/app/javascript/alchemy_admin/components/remote_select.js +134 -0
  103. data/app/javascript/alchemy_admin/components/select.js +12 -0
  104. data/app/javascript/alchemy_admin/components/spinner.js +31 -0
  105. data/app/javascript/alchemy_admin/components/tinymce.js +146 -0
  106. data/app/javascript/alchemy_admin/components/uploader/file_upload.js +266 -0
  107. data/app/javascript/alchemy_admin/components/uploader/progress.js +258 -0
  108. data/app/javascript/alchemy_admin/components/uploader.js +132 -0
  109. data/app/javascript/alchemy_admin/dirty.js +49 -0
  110. data/app/javascript/alchemy_admin/file_editors.js +1 -1
  111. data/app/javascript/alchemy_admin/gui.js +14 -0
  112. data/app/javascript/alchemy_admin/i18n.js +12 -8
  113. data/app/javascript/alchemy_admin/image_cropper.js +6 -3
  114. data/app/javascript/alchemy_admin/image_loader.js +7 -15
  115. data/app/javascript/alchemy_admin/ingredient_anchor_link.js +2 -5
  116. data/app/javascript/alchemy_admin/initializer.js +65 -0
  117. data/app/javascript/alchemy_admin/locales/en.js +31 -0
  118. data/app/javascript/alchemy_admin/picture_editors.js +2 -2
  119. data/app/javascript/alchemy_admin/picture_selector.js +38 -0
  120. data/app/javascript/alchemy_admin/please_wait_overlay.js +8 -0
  121. data/app/javascript/alchemy_admin/sortable_elements.js +78 -0
  122. data/app/javascript/alchemy_admin/spinner.js +36 -0
  123. data/app/javascript/alchemy_admin/tags_autocomplete.js +46 -0
  124. data/app/javascript/alchemy_admin/utils/ajax.js +6 -5
  125. data/app/javascript/alchemy_admin/utils/dom_helpers.js +20 -0
  126. data/app/javascript/alchemy_admin/utils/format.js +11 -0
  127. data/app/javascript/alchemy_admin/utils/string_conversions.js +10 -0
  128. data/app/javascript/alchemy_admin.js +70 -13
  129. data/app/javascript/menubar.js +10 -0
  130. data/app/models/alchemy/attachment.rb +9 -11
  131. data/app/models/alchemy/element.rb +11 -0
  132. data/app/models/alchemy/ingredients/audio.rb +0 -11
  133. data/app/models/alchemy/ingredients/richtext.rb +1 -10
  134. data/app/models/alchemy/ingredients/video.rb +0 -12
  135. data/app/models/alchemy/node.rb +4 -0
  136. data/app/models/alchemy/page/page_elements.rb +2 -11
  137. data/app/models/alchemy/page/page_natures.rb +10 -2
  138. data/app/models/alchemy/page.rb +9 -51
  139. data/app/models/alchemy/picture/url.rb +1 -9
  140. data/app/serializers/alchemy/page_tree_serializer.rb +2 -1
  141. data/app/services/alchemy/copy_page.rb +98 -0
  142. data/app/views/alchemy/_menubar.html.erb +17 -13
  143. data/app/views/alchemy/admin/attachments/_archive_overlay.html.erb +14 -10
  144. data/app/views/alchemy/admin/attachments/_attachment.html.erb +44 -36
  145. data/app/views/alchemy/admin/attachments/_replace_button.html.erb +15 -21
  146. data/app/views/alchemy/admin/attachments/archive_overlay.js.erb +0 -1
  147. data/app/views/alchemy/admin/attachments/assign.js.erb +1 -1
  148. data/app/views/alchemy/admin/attachments/index.html.erb +6 -4
  149. data/app/views/alchemy/admin/attachments/show.html.erb +8 -8
  150. data/app/views/alchemy/admin/clipboard/clear.js.erb +1 -1
  151. data/app/views/alchemy/admin/clipboard/index.html.erb +3 -7
  152. data/app/views/alchemy/admin/clipboard/insert.js.erb +1 -1
  153. data/app/views/alchemy/admin/crop.html.erb +1 -1
  154. data/app/views/alchemy/admin/dashboard/_locked_pages.html.erb +1 -1
  155. data/app/views/alchemy/admin/dashboard/index.html.erb +13 -11
  156. data/app/views/alchemy/admin/dashboard/info.html.erb +7 -7
  157. data/app/views/alchemy/admin/elements/_add_nested_element_form.html.erb +21 -23
  158. data/app/views/alchemy/admin/elements/_element.html.erb +52 -44
  159. data/app/views/alchemy/admin/elements/_footer.html.erb +1 -1
  160. data/app/views/alchemy/admin/elements/_form.html.erb +1 -1
  161. data/app/views/alchemy/admin/elements/_header.html.erb +11 -12
  162. data/app/views/alchemy/admin/elements/_toolbar.html.erb +33 -45
  163. data/app/views/alchemy/admin/elements/create.js.erb +7 -15
  164. data/app/views/alchemy/admin/elements/destroy.js.erb +0 -2
  165. data/app/views/alchemy/admin/elements/index.html.erb +27 -24
  166. data/app/views/alchemy/admin/elements/new.html.erb +9 -11
  167. data/app/views/alchemy/admin/ingredients/_file_fields.html.erb +2 -2
  168. data/app/views/alchemy/admin/ingredients/_picture_fields.html.erb +3 -3
  169. data/app/views/alchemy/admin/ingredients/_video_fields.html.erb +1 -2
  170. data/app/views/alchemy/admin/languages/_form.html.erb +2 -3
  171. data/app/views/alchemy/admin/languages/_language.html.erb +15 -8
  172. data/app/views/alchemy/admin/languages/_table.html.erb +1 -0
  173. data/app/views/alchemy/admin/layoutpages/_layoutpage.html.erb +28 -16
  174. data/app/views/alchemy/admin/layoutpages/index.html.erb +2 -2
  175. data/app/views/alchemy/admin/legacy_page_urls/_legacy_page_url.html.erb +12 -8
  176. data/app/views/alchemy/admin/legacy_page_urls/_new.html.erb +1 -1
  177. data/app/views/alchemy/admin/nodes/_form.html.erb +20 -21
  178. data/app/views/alchemy/admin/nodes/_node.html.erb +39 -34
  179. data/app/views/alchemy/admin/nodes/index.html.erb +1 -1
  180. data/app/views/alchemy/admin/pages/_anchor_link.html.erb +4 -4
  181. data/app/views/alchemy/admin/pages/_create_language_form.html.erb +2 -2
  182. data/app/views/alchemy/admin/pages/_current_page.html.erb +1 -1
  183. data/app/views/alchemy/admin/pages/_external_link.html.erb +4 -4
  184. data/app/views/alchemy/admin/pages/_file_link.html.erb +5 -5
  185. data/app/views/alchemy/admin/pages/_form.html.erb +10 -21
  186. data/app/views/alchemy/admin/pages/_internal_link.html.erb +4 -4
  187. data/app/views/alchemy/admin/pages/_locked_page.html.erb +2 -2
  188. data/app/views/alchemy/admin/pages/_new_page_form.html.erb +4 -17
  189. data/app/views/alchemy/admin/pages/_page.html.erb +76 -72
  190. data/app/views/alchemy/admin/pages/_page_infos.html.erb +23 -7
  191. data/app/views/alchemy/admin/pages/_page_layout_filter.html.erb +2 -1
  192. data/app/views/alchemy/admin/pages/_page_status.html.erb +11 -21
  193. data/app/views/alchemy/admin/pages/_publication_fields.html.erb +2 -5
  194. data/app/views/alchemy/admin/pages/_table.html.erb +1 -1
  195. data/app/views/alchemy/admin/pages/_table_row.html.erb +43 -39
  196. data/app/views/alchemy/admin/pages/_toolbar.html.erb +43 -38
  197. data/app/views/alchemy/admin/pages/configure.html.erb +12 -14
  198. data/app/views/alchemy/admin/pages/edit.html.erb +80 -103
  199. data/app/views/alchemy/admin/pages/info.html.erb +20 -11
  200. data/app/views/alchemy/admin/pages/link.html.erb +22 -16
  201. data/app/views/alchemy/admin/pages/new.html.erb +9 -11
  202. data/app/views/alchemy/admin/pages/unlock.js.erb +10 -3
  203. data/app/views/alchemy/admin/partials/_language_tree_select.html.erb +15 -13
  204. data/app/views/alchemy/admin/partials/_main_navigation_entry.html.erb +3 -5
  205. data/app/views/alchemy/admin/partials/_routes.html.erb +10 -2
  206. data/app/views/alchemy/admin/partials/_site_select.html.erb +6 -5
  207. data/app/views/alchemy/admin/partials/_toolbar_button.html.erb +28 -23
  208. data/app/views/alchemy/admin/pictures/_archive.html.erb +5 -5
  209. data/app/views/alchemy/admin/pictures/_archive_overlay.html.erb +1 -1
  210. data/app/views/alchemy/admin/pictures/_filter_and_size_bar.html.erb +21 -23
  211. data/app/views/alchemy/admin/pictures/_infos.html.erb +2 -6
  212. data/app/views/alchemy/admin/pictures/_picture.html.erb +15 -17
  213. data/app/views/alchemy/admin/pictures/_picture_to_assign.html.erb +17 -16
  214. data/app/views/alchemy/admin/pictures/_tag_list.html.erb +1 -1
  215. data/app/views/alchemy/admin/pictures/archive_overlay.js.erb +1 -1
  216. data/app/views/alchemy/admin/pictures/assign.js.erb +1 -1
  217. data/app/views/alchemy/admin/pictures/index.html.erb +34 -30
  218. data/app/views/alchemy/admin/pictures/show.html.erb +3 -3
  219. data/app/views/alchemy/admin/resources/_filter.html.erb +2 -2
  220. data/app/views/alchemy/admin/resources/_form.html.erb +2 -2
  221. data/app/views/alchemy/admin/resources/_per_page_select.html.erb +1 -1
  222. data/app/views/alchemy/admin/resources/_resource.html.erb +16 -9
  223. data/app/views/alchemy/admin/resources/_table.html.erb +4 -1
  224. data/app/views/alchemy/admin/resources/index.html.erb +22 -19
  225. data/app/views/alchemy/admin/sites/index.html.erb +2 -1
  226. data/app/views/alchemy/admin/styleguide/index.html.erb +54 -28
  227. data/app/views/alchemy/admin/tags/_tag.html.erb +16 -18
  228. data/app/views/alchemy/admin/tags/index.html.erb +15 -12
  229. data/app/views/alchemy/admin/tinymce/_setup.html.erb +29 -0
  230. data/app/views/alchemy/admin/uploader/_button.html.erb +23 -29
  231. data/app/views/alchemy/admin/uploader/_setup.html.erb +3 -8
  232. data/app/views/alchemy/base/500.html.erb +1 -1
  233. data/app/views/alchemy/base/error_notice.js.erb +0 -1
  234. data/app/views/alchemy/ingredients/_boolean_editor.html.erb +1 -1
  235. data/app/views/alchemy/ingredients/_datetime_editor.html.erb +1 -1
  236. data/app/views/alchemy/ingredients/_file_editor.html.erb +5 -5
  237. data/app/views/alchemy/ingredients/_link_editor.html.erb +1 -1
  238. data/app/views/alchemy/ingredients/_node_editor.html.erb +6 -19
  239. data/app/views/alchemy/ingredients/_page_editor.html.erb +7 -19
  240. data/app/views/alchemy/ingredients/_picture_editor.html.erb +2 -2
  241. data/app/views/alchemy/ingredients/_richtext_editor.html.erb +6 -15
  242. data/app/views/alchemy/ingredients/_select_editor.html.erb +2 -1
  243. data/app/views/alchemy/ingredients/_text_editor.html.erb +1 -1
  244. data/app/views/alchemy/ingredients/shared/_anchor.html.erb +1 -1
  245. data/app/views/alchemy/ingredients/shared/_link_tools.html.erb +10 -20
  246. data/app/views/alchemy/ingredients/shared/_picture_tools.html.erb +42 -49
  247. data/app/views/kaminari/alchemy/_first_page.html.erb +4 -2
  248. data/app/views/kaminari/alchemy/_gap.html.erb +1 -1
  249. data/app/views/kaminari/alchemy/_last_page.html.erb +4 -2
  250. data/app/views/kaminari/alchemy/_next_page.html.erb +4 -2
  251. data/app/views/kaminari/alchemy/_prev_page.html.erb +4 -2
  252. data/app/views/layouts/alchemy/admin.html.erb +10 -29
  253. data/config/alchemy/modules.yml +30 -30
  254. data/config/importmap.rb +10 -1
  255. data/config/initializers/rails_live_reload.rb +13 -0
  256. data/config/locales/alchemy.en.yml +23 -9
  257. data/config/routes.rb +2 -1
  258. data/lib/alchemy/auth_accessors.rb +6 -1
  259. data/lib/alchemy/controller_actions.rb +17 -4
  260. data/lib/alchemy/dev_support/live_reload_watcher.rb +5 -0
  261. data/lib/alchemy/engine.rb +8 -2
  262. data/lib/alchemy/forms/builder.rb +18 -12
  263. data/lib/alchemy/modules.rb +2 -2
  264. data/lib/alchemy/resources_helper.rb +3 -3
  265. data/lib/alchemy/routing_constraints.rb +1 -1
  266. data/lib/alchemy/test_support/capybara_helpers.rb +8 -5
  267. data/lib/alchemy/test_support/rspec_matchers.rb +14 -0
  268. data/lib/alchemy/test_support/shared_uploader_examples.rb +1 -1
  269. data/lib/alchemy/tinymce.rb +8 -3
  270. data/lib/alchemy/version.rb +1 -1
  271. data/package.json +14 -5
  272. data/vendor/assets/fonts/remixicon.eot +0 -0
  273. data/vendor/assets/fonts/remixicon.svg +7816 -0
  274. data/vendor/assets/fonts/remixicon.ttf +0 -0
  275. data/vendor/assets/fonts/remixicon.woff +0 -0
  276. data/vendor/assets/fonts/remixicon.woff2 +0 -0
  277. data/vendor/assets/stylesheets/remixicon.scss +10480 -0
  278. metadata +85 -97
  279. data/.gem_release.yml +0 -8
  280. data/app/assets/javascripts/alchemy/alchemy.autocomplete.js.coffee +0 -30
  281. data/app/assets/javascripts/alchemy/alchemy.base.js.coffee +0 -53
  282. data/app/assets/javascripts/alchemy/alchemy.buttons.js.coffee +0 -45
  283. data/app/assets/javascripts/alchemy/alchemy.char_counter.js.coffee +0 -19
  284. data/app/assets/javascripts/alchemy/alchemy.dirty.js.coffee +0 -59
  285. data/app/assets/javascripts/alchemy/alchemy.dragndrop.js.coffee +0 -79
  286. data/app/assets/javascripts/alchemy/alchemy.element_editors.js.coffee +0 -267
  287. data/app/assets/javascripts/alchemy/alchemy.gui.js.coffee +0 -27
  288. data/app/assets/javascripts/alchemy/alchemy.spinner.js +0 -32
  289. data/app/assets/javascripts/alchemy/alchemy.tooltips.coffee +0 -10
  290. data/app/assets/javascripts/alchemy/alchemy.uploader.js.coffee +0 -131
  291. data/app/assets/javascripts/alchemy/menubar.js.coffee +0 -8
  292. data/app/assets/javascripts/alchemy/node_select.js +0 -39
  293. data/app/assets/javascripts/alchemy/page_select.js +0 -46
  294. data/app/assets/javascripts/alchemy/templates/node.hbs +0 -16
  295. data/app/assets/javascripts/alchemy/templates/spinner.hbs +0 -7
  296. data/app/assets/stylesheets/alchemy/jquery-ui.scss +0 -435
  297. data/app/javascript/alchemy_admin/datepicker.js +0 -40
  298. data/app/javascript/alchemy_admin/tinymce.js +0 -146
  299. data/app/javascript/alchemy_admin/translations.js +0 -32
  300. data/app/views/alchemy/admin/elements/fold.js.erb +0 -33
  301. data/app/views/alchemy/admin/elements/order.js.erb +0 -11
  302. data/app/views/alchemy/admin/elements/publish.js.erb +0 -21
  303. data/app/views/alchemy/admin/elements/update.js.erb +0 -27
  304. data/vendor/assets/fonts/fa-regular-400.eot +0 -0
  305. data/vendor/assets/fonts/fa-regular-400.svg +0 -803
  306. data/vendor/assets/fonts/fa-regular-400.ttf +0 -0
  307. data/vendor/assets/fonts/fa-regular-400.woff +0 -0
  308. data/vendor/assets/fonts/fa-regular-400.woff2 +0 -0
  309. data/vendor/assets/fonts/fa-solid-900.eot +0 -0
  310. data/vendor/assets/fonts/fa-solid-900.svg +0 -4938
  311. data/vendor/assets/fonts/fa-solid-900.ttf +0 -0
  312. data/vendor/assets/fonts/fa-solid-900.woff +0 -0
  313. data/vendor/assets/fonts/fa-solid-900.woff2 +0 -0
  314. data/vendor/assets/javascripts/fileupload/jquery.fileupload-process.js +0 -178
  315. data/vendor/assets/javascripts/fileupload/jquery.fileupload-validate.js +0 -125
  316. data/vendor/assets/javascripts/fileupload/jquery.fileupload.js +0 -1502
  317. data/vendor/assets/javascripts/fileupload/jquery.iframe-transport.js +0 -224
  318. data/vendor/assets/javascripts/jquery-ui/data.js +0 -45
  319. data/vendor/assets/javascripts/jquery-ui/ie.js +0 -20
  320. data/vendor/assets/javascripts/jquery-ui/keycode.js +0 -51
  321. data/vendor/assets/javascripts/jquery-ui/plugin.js +0 -49
  322. data/vendor/assets/javascripts/jquery-ui/safe-active-element.js +0 -46
  323. data/vendor/assets/javascripts/jquery-ui/safe-blur.js +0 -27
  324. data/vendor/assets/javascripts/jquery-ui/scroll-parent.js +0 -50
  325. data/vendor/assets/javascripts/jquery-ui/unique-id.js +0 -54
  326. data/vendor/assets/javascripts/jquery-ui/version.js +0 -20
  327. data/vendor/assets/javascripts/jquery-ui/widget.js +0 -754
  328. data/vendor/assets/javascripts/jquery-ui/widgets/draggable.js +0 -1268
  329. data/vendor/assets/javascripts/jquery-ui/widgets/mouse.js +0 -241
  330. data/vendor/assets/javascripts/jquery-ui/widgets/sortable.js +0 -1623
  331. data/vendor/assets/javascripts/jquery-ui/widgets/tabs.js +0 -931
  332. data/vendor/assets/javascripts/jquery_plugins/jquery.scrollTo.min.js +0 -7
  333. data/vendor/assets/javascripts/jquery_plugins/jquery.ui.tabspaging.js +0 -296
  334. data/vendor/assets/stylesheets/fontawesome/_animated.scss +0 -20
  335. data/vendor/assets/stylesheets/fontawesome/_bordered-pulled.scss +0 -20
  336. data/vendor/assets/stylesheets/fontawesome/_core.scss +0 -21
  337. data/vendor/assets/stylesheets/fontawesome/_fixed-width.scss +0 -6
  338. data/vendor/assets/stylesheets/fontawesome/_icons.scss +0 -1441
  339. data/vendor/assets/stylesheets/fontawesome/_larger.scss +0 -23
  340. data/vendor/assets/stylesheets/fontawesome/_list.scss +0 -18
  341. data/vendor/assets/stylesheets/fontawesome/_mixins.scss +0 -56
  342. data/vendor/assets/stylesheets/fontawesome/_rotated-flipped.scss +0 -24
  343. data/vendor/assets/stylesheets/fontawesome/_screen-reader.scss +0 -5
  344. data/vendor/assets/stylesheets/fontawesome/_stacked.scss +0 -31
  345. data/vendor/assets/stylesheets/fontawesome/_variables.scss +0 -1458
  346. data/vendor/assets/stylesheets/fontawesome/fontawesome.scss +0 -16
  347. data/vendor/assets/stylesheets/fontawesome/regular.scss +0 -23
  348. data/vendor/assets/stylesheets/fontawesome/solid.scss +0 -24
@@ -3,11 +3,11 @@
3
3
  <% else %>
4
4
  <div class="locked_page wide" id="locked_page_<%= locked_page.id %>">
5
5
  <%= link_to alchemy.edit_admin_page_path(locked_page) do %>
6
- <%= render 'alchemy/admin/pages/page_status', page: locked_page, truncate: true %>
6
+ <%= render 'alchemy/admin/pages/page_infos', page: locked_page, truncate: true %>
7
7
  <% end %>
8
8
  <%= form_tag(alchemy.unlock_admin_page_path(locked_page), remote: true) do %>
9
9
  <button class="icon_button small" title="<%= Alchemy.t(:explain_unlocking) %>">
10
- <%= render_icon(:times, size: 'xs') %>
10
+ <%= render_icon(:close, size: '1x') %>
11
11
  </button>
12
12
  <% end %>
13
13
  </div>
@@ -3,7 +3,9 @@
3
3
  <%= f.hidden_field(:parent_id) %>
4
4
  <% else %>
5
5
  <% @page.parent = @current_language.root_page %>
6
- <%= f.input :parent_id, as: :string, input_html: { class: 'alchemy_selectbox' } %>
6
+ <%= render Alchemy::Admin::PageSelect.new(@page.parent) do %>
7
+ <%= f.input :parent_id, as: :string %>
8
+ <% end %>
7
9
  <% end %>
8
10
  <%= f.hidden_field(:language_id) %>
9
11
  <%= f.hidden_field(:layoutpage) %>
@@ -13,22 +15,7 @@
13
15
  include_blank: @page_layouts.length == 1 ? nil : Alchemy.t('Please choose'),
14
16
  required: true,
15
17
  selected: @page_layouts.length == 1 ? @page_layouts.first : nil,
16
- input_html: {class: 'alchemy_selectbox'} %>
18
+ input_html: {is: 'alchemy-select'} %>
17
19
  <%= f.input :name %>
18
20
  <%= f.submit Alchemy.t(:create) %>
19
21
  <% end %>
20
-
21
- <script>
22
- $('input[type="text"]#page_parent_id').alchemyPageSelect({
23
- placeholder: "<%= Alchemy.t(:search_page) %>",
24
- url: "<%= alchemy.api_pages_path %>",
25
- allowClear: false,
26
- <% if @page.parent %>
27
- initialSelection: {
28
- id: <%= @page.parent.id %>,
29
- text: "<%= @page.parent.name %>",
30
- url_path: "<%= @page.parent.url_path %>"
31
- }
32
- <% end %>
33
- })
34
- </script>
@@ -6,137 +6,141 @@
6
6
  <%= page_layout_missing_warning %>
7
7
  {{else}}
8
8
  {{#if permissions.edit_content}}
9
- {{#if locked}}
10
- <span class="with-hint">
11
- <i class="icon fas fa-edit fa-fw"></i>
12
- <span class="hint-bubble">
13
- {{locked_notice}}
14
- </span>
15
- </span>
16
- {{else}}
17
9
  <span class="{{#unless root}}handle{{/unless}}">
18
- <i class="icon far fa-file fa-lg"></i>
10
+ {{#if locked}}
11
+ <sl-tooltip content="{{locked_notice}}" class="like-hint-tooltip" placement="bottom-start">
12
+ <i class="icon ri-file-edit-line ri-fw ri-xl"></i>
13
+ </sl-tooltip>
14
+ {{else}}
15
+ <i class="icon ri-file-line ri-fw ri-xl"></i>
16
+ {{/if}}
19
17
  </span>
20
- {{/if}}
21
18
  {{else}}
22
- <span class="with-hint">
23
- <i class="icon fas fa-ban fa-fw"></i>
24
- <span class="hint-bubble">
25
- <%= Alchemy.t("Your user role does not allow you to edit this page") %>
26
- </span>
27
- </span>
19
+ <sl-tooltip content="<%= Alchemy.t("Your user role does not allow you to edit this page") %>" class="like-hint-tooltip" placement="bottom-start">
20
+ <i class="icon ri-file-forbid-line ri-fw ri-xl"></i>
21
+ </sl-tooltip>
28
22
  {{/if}}
29
23
  {{/if}}
30
24
  </div>
31
25
  <div class="sitemap_right_tools">
32
26
  {{#if permissions.info}}
33
- <div class="button_with_label sitemap_tool">
27
+ <sl-tooltip content="<%= Alchemy.t(:page_infos) %>">
34
28
  <%= link_to_dialog(
35
- render_icon("info-circle"),
29
+ render_icon("information"),
36
30
  alchemy.info_admin_page_path(id: "__ID__"),
37
31
  {
38
32
  title: Alchemy.t(:page_infos),
39
33
  size: "520x290"
40
- }
34
+ },
35
+ class: "icon_button"
41
36
  ) %>
42
- <label class="center"><%= Alchemy.t(:page_infos) %></label>
37
+ </sl-tooltip>
43
38
  {{else}}
44
- <div class="sitemap_tool disabled with-hint">
45
- <%= render_icon("info-circle") %>
46
- <span class="hint-bubble">
47
- <%= Alchemy.t("Your user role does not allow you to edit this page") %>
48
- </span>
49
- {{/if}}
39
+ <div class="sitemap_tool disabled">
40
+ <sl-tooltip content="<%= Alchemy.t("Your user role does not allow you to edit this page") %>" class="like-hint-tooltip" placement="bottom-start">
41
+ <%= render_icon("information") %>
42
+ </sl-tooltip>
50
43
  </div>
44
+ {{/if}}
51
45
  {{#if permissions.configure}}
52
- <div class="button_with_label sitemap_tool">
46
+ <sl-tooltip content="<%= Alchemy.t(:edit_page_properties) %>">
53
47
  <%= link_to_dialog(
54
- render_icon(:cog),
48
+ render_icon("settings-3"),
55
49
  alchemy.configure_admin_page_path(id: "__ID__"),
56
50
  {
57
51
  title: Alchemy.t(:edit_page_properties),
58
52
  size: "450x680"
59
- }
53
+ },
54
+ class: "icon_button"
60
55
  ) -%>
61
- <label class="center"><%= Alchemy.t(:edit_page_properties) %></label>
56
+ </sl-tooltip>
62
57
  {{else}}
63
- <div class="sitemap_tool disabled with-hint">
64
- <%= render_icon(:cog) %>
65
- <span class="hint-bubble">
66
- <%= Alchemy.t("Your user role does not allow you to edit this page") %>
67
- </span>
68
- {{/if}}
58
+ <div class="sitemap_tool disabled">
59
+ <sl-tooltip content="<%= Alchemy.t("Your user role does not allow you to edit this page") %>" class="like-hint-tooltip" placement="bottom-start">
60
+ <%= render_icon("settings-3") %>
61
+ </sl-tooltip>
69
62
  </div>
63
+ {{/if}}
70
64
  {{#if permissions.copy}}
71
- <div class="button_with_label sitemap_tool">
65
+ <sl-tooltip content="<%= Alchemy.t(:copy_page) %>">
72
66
  <%= link_to(
73
- render_icon(:copy),
67
+ render_icon("file-copy"),
74
68
  alchemy.insert_admin_clipboard_path(
75
69
  remarkable_type: :pages,
76
70
  remarkable_id: "__ID__",
77
71
  ),
78
72
  remote: true,
79
- method: :post
73
+ method: :post,
74
+ class: "icon_button"
80
75
  ) %>
81
- <label class="center"><%= Alchemy.t(:copy_page) %></label>
76
+ </sl-tooltip>
82
77
  {{else}}
83
- <div class="sitemap_tool disabled with-hint">
84
- <%= render_icon(:copy) %>
85
- <span class="hint-bubble">
86
- <%= Alchemy.t("Your user role does not allow you to edit this page") %>
87
- </span>
88
- {{/if}}
78
+ <div class="sitemap_tool disabled">
79
+ <sl-tooltip content="<%= Alchemy.t("Your user role does not allow you to edit this page") %>" class="like-hint-tooltip" placement="bottom-start">
80
+ <%= render_icon("file-copy") %>
81
+ </sl-tooltip>
89
82
  </div>
83
+ {{/if}}
90
84
  {{#if permissions.destroy}}
91
- <div class="button_with_label sitemap_tool">
85
+ <sl-tooltip content="<%= Alchemy.t(:delete_page) %>">
92
86
  <%= link_to_confirm_dialog(
93
- render_icon(:minus),
87
+ render_icon("delete-bin-2"),
94
88
  Alchemy.t(:confirm_to_delete_page),
95
89
  url_for(
96
90
  controller: "pages",
97
91
  action: "destroy",
98
92
  id: "__ID__"
99
- )
93
+ ),
94
+ class: "icon_button"
100
95
  ) -%>
101
- <label class="center"><%= Alchemy.t(:delete_page) %></label>
96
+ </sl-tooltip>
102
97
  {{else}}
103
- <div class="sitemap_tool disabled with-hint">
104
- <%= render_icon(:minus) %>
105
- <span class="hint-bubble">
106
- <%= Alchemy.t("Your user role does not allow you to edit this page") %>
107
- </span>
108
- {{/if}}
98
+ <div class="sitemap_tool disabled">
99
+ <sl-tooltip content="<%= Alchemy.t("Your user role does not allow you to edit this page") %>" class="like-hint-tooltip" placement="bottom-start">
100
+ <%= render_icon("delete-bin-2") %>
101
+ </sl-tooltip>
109
102
  </div>
103
+ {{/if}}
110
104
  {{#if permissions.create}}
111
- <div class="button_with_label sitemap_tool">
105
+ <sl-tooltip content="<%= Alchemy.t(:create_page) %>">
112
106
  <%= link_to_dialog(
113
- render_icon(:plus),
107
+ render_icon(:add),
114
108
  alchemy.new_admin_page_path(parent_id: "__ID__"),
115
109
  {
116
110
  title: Alchemy.t(:create_page),
117
111
  size: "340x165",
118
112
  overflow: true
119
- }
113
+ },
114
+ class: "icon_button"
120
115
  ) -%>
121
- <label class="left"><%= Alchemy.t(:create_page) %></label>
116
+ </sl-tooltip>
122
117
  {{else}}
123
- <div class="sitemap_tool disabled with-hint">
124
- <%= render_icon(:plus) %>
125
- <span class="hint-bubble">
126
- <%= Alchemy.t("Your user role does not allow you to edit this page") %>
127
- </span>
128
- {{/if}}
118
+ <div class="sitemap_tool disabled">
119
+ <sl-tooltip content="<%= Alchemy.t("Your user role does not allow you to edit this page") %>" class="like-hint-tooltip" placement="bottom-start">
120
+ <%= render_icon("file-add") %>
121
+ </sl-tooltip>
129
122
  </div>
123
+ {{/if}}
130
124
  </div>
131
125
  <div class="page_infos">
132
- <span class="page_status with-hint">
133
- <i class="icon fas fa-fw fa-compass {{#unless public}}disabled{{/unless}}" data-fa-transform="shrink-2"></i>
134
- <span class="hint-bubble">{{status_titles.public}}</span>
126
+ {{#if locked}}
127
+ <span class="page_status locked">
128
+ <i class="icon ri-fw ri-1x ri-edit-line"></i>
129
+ {{status_titles.locked}}
135
130
  </span>
136
- <span class="page_status with-hint">
137
- <i class="icon fas fa-fw fa-lock {{#unless restricted}}disabled{{/unless}}" data-fa-transform="shrink-2"></i>
138
- <span class="hint-bubble">{{status_titles.restricted}}</span>
131
+ {{/if}}
132
+ {{#if restricted}}
133
+ <span class="page_status">
134
+ <i class="icon ri-fw ri-1x ri-lock-line"></i>
135
+ {{status_titles.restricted}}
136
+ </span>
137
+ {{/if}}
138
+ {{#unless public}}
139
+ <span class="page_status">
140
+ <i class="icon ri-fw ri-1x ri-cloud-off-line"></i>
141
+ {{status_titles.public}}
139
142
  </span>
143
+ {{/unless}}
140
144
  </div>
141
145
  <div class="sitemap_url" title="{{url_path}}">
142
146
  {{ url_path }}
@@ -1,8 +1,24 @@
1
- <span class="page_status with-hint">
2
- <%= render_icon(:compass, transform: 'shrink-2', class: @page.public? ? nil : 'disabled') %>
3
- <span class="hint-bubble"><%= page.status_title(:public) %></span>
4
- </span>
5
- <span class="page_status with-hint">
6
- <%= render_icon(:lock, transform: 'shrink-2', class: @page.restricted? ? nil : 'disabled') %>
7
- <span class="hint-bubble"><%= page.status_title(:restricted) %></span>
1
+ <% if page.definition.blank? %>
2
+ <%= page_layout_missing_warning %>
3
+ <% end %>
4
+ <span class="page_name" title="<%= page.name %>">
5
+ <% if local_assigns[:truncate] %>
6
+ <%= truncate page.name, length: 15 %>
7
+ <% else %>
8
+ <%= page.name %>
9
+ <% end %>
8
10
  </span>
11
+ <%- if multi_site? -%>
12
+ <span class="page_site" title="<%= page.site_name %>">
13
+ <% if local_assigns[:truncate] %>
14
+ <%= truncate page.site_name, length: 15 %>
15
+ <% else %>
16
+ <%= page.site_name %>
17
+ <% end %>
18
+ </span>
19
+ <%- end -%>
20
+ <%- if page.site_languages.many? -%>
21
+ <span class="page_language" title="<%= page.language.name %>">
22
+ <%= page.language_code %>
23
+ </span>
24
+ <%- end -%>
@@ -13,7 +13,8 @@
13
13
  search_filter_params[:page_layout]
14
14
  ),
15
15
  include_blank: Alchemy.t(:all, scope: ["resources", "page", "filters"]),
16
- class: "alchemy_selectbox full_width"
16
+ class: "full_width",
17
+ is: "alchemy-select"
17
18
  ) %>
18
19
  </label>
19
20
  </div>
@@ -1,24 +1,14 @@
1
- <% if page.definition.blank? %>
2
- <%= page_layout_missing_warning %>
3
- <% end %>
4
- <span class="page_name" title="<%= page.name %>">
5
- <% if local_assigns[:truncate] %>
6
- <%= truncate page.name, length: 15 %>
1
+ <span class="page_status">
2
+ <% if page.public? %>
3
+ <%= render_icon(:cloud, size: "1x", class: "disabled") %>
7
4
  <% else %>
8
- <%= page.name %>
5
+ <%= render_icon("cloud-off", size: "1x") %>
6
+ <% end %>
7
+ </span>
8
+ <span class="page_status">
9
+ <% if page.restricted? %>
10
+ <%= render_icon(:lock, size: "1x") %>
11
+ <% else %>
12
+ <%= render_icon("lock-unlock", size: "1x", class: "disabled") %>
9
13
  <% end %>
10
14
  </span>
11
- <%- if multi_site? -%>
12
- <span class="page_site" title="<%= page.site_name %>">
13
- <% if local_assigns[:truncate] %>
14
- <%= truncate page.site_name, length: 15 %>
15
- <% else %>
16
- <%= page.site_name %>
17
- <% end %>
18
- </span>
19
- <%- end -%>
20
- <%- if page.site_languages.many? -%>
21
- <span class="page_language" title="<%= page.language.name %>">
22
- <%= page.language_code %>
23
- </span>
24
- <%- end -%>
@@ -2,13 +2,10 @@
2
2
 
3
3
  <label class="checkbox">
4
4
  <% if @page.attribute_fixed?(:public_on) || @page.attribute_fixed?(:public_until) %>
5
- <span class="with-hint">
5
+ <sl-tooltip class="like-hint-tooltip" content="<%= Alchemy.t(:attribute_fixed) %>" placement="bottom-start">
6
6
  <%= checkbox %>
7
7
  <%= Alchemy::Page.human_attribute_name :public %>
8
- <span class="hint-bubble">
9
- <%= Alchemy.t(:attribute_fixed) %>
10
- </span>
11
- </span>
8
+ </sl-tooltip>
12
9
  <% else %>
13
10
  <%= checkbox %>
14
11
  <%= Alchemy::Page.human_attribute_name :public %>
@@ -17,7 +17,7 @@
17
17
  Alchemy::Page.human_attribute_name(:updated_at),
18
18
  default_order: "desc" %>
19
19
  </th>
20
- <th class="status center"><%= Alchemy::Page.human_attribute_name(:status) %></th>
20
+ <th class="status right"><%= Alchemy::Page.human_attribute_name(:status) %></th>
21
21
  <th class="tools"></th>
22
22
  </tr>
23
23
  </thead>
@@ -1,23 +1,17 @@
1
- <tr class="<%= cycle(:even, :odd) %>" data-page-id="<%= page.id %>">
1
+ <tr class="<%= cycle(:even, :odd) %>" data-page-id="<%= page.id %>" id="page_<%= page.id %>">
2
2
  <td class="icon">
3
3
  <% if can?(:edit_content, page) %>
4
4
  <% if page.locked? %>
5
- <span class="with-hint">
6
- <i class="icon fas fa-edit fa-fw"></i>
7
- <span class="hint-bubble">
8
- <%= Alchemy.t("This page is locked", name: page.locker_name) %>
9
- </span>
10
- </span>
5
+ <sl-tooltip class="like-hint-tooltip" content="<%= Alchemy.t("This page is locked", name: page.locker_name) %>" placement="bottom-start">
6
+ <i class="icon ri-file-edit-line ri-fw ri-xl"></i>
7
+ </sl-tooltip>
11
8
  <% else %>
12
- <i class="icon far fa-file fa-lg"></i>
9
+ <i class="icon ri-file-line ri-fw ri-xl"></i>
13
10
  <% end %>
14
11
  <% else %>
15
- <span class="with-hint">
16
- <i class="icon fas fa-ban fa-fw"></i>
17
- <span class="hint-bubble">
18
- <%= Alchemy.t("Your user role does not allow you to edit this page") %>
19
- </span>
20
- </span>
12
+ <sl-tooltip class="like-hint-tooltip" content="<%= Alchemy.t("Your user role does not allow you to edit this page") %>" placement="bottom-start">
13
+ <i class="icon ri-file-forbid-line ri-fw ri-xl"></i>
14
+ </sl-tooltip>
21
15
  <% end %>
22
16
  </td>
23
17
  <td class="string name">
@@ -42,45 +36,55 @@
42
36
  <td class="date">
43
37
  <%= l(page.updated_at, format: :"alchemy.default") %>
44
38
  </td>
45
- <td class="status center">
46
- <span class="page_status with-hint">
47
- <i class="icon fas fa-fw fa-compass <% unless page.public? %>disabled<% end %>" data-fa-transform="shrink-2"></i>
48
- <span class="hint-bubble"><%= page.status_title(:public) %></span>
49
- </span>
50
- <span class="page_status with-hint">
51
- <i class="icon fas fa-fw fa-lock <% unless page.restricted? %>disabled<% end %>" data-fa-transform="shrink-2"></i>
52
- <span class="hint-bubble"><%= page.status_title(:restricted) %></span>
53
- </span>
39
+ <td class="status right">
40
+ <% if page.locked? %>
41
+ <span class="page_status locked">
42
+ <%= render_icon(:edit, size: "1x") %>
43
+ <%= page.status_title(:locked) %>
44
+ </span>
45
+ <% end %>
46
+ <% if page.restricted? %>
47
+ <span class="page_status">
48
+ <%= render_icon(:lock, size: "1x") %>
49
+ <%= page.status_title(:restricted) %>
50
+ </span>
51
+ <% end %>
52
+ <% unless page.public? %>
53
+ <span class="page_status">
54
+ <%= render_icon("cloud-off", size: "1x") %>
55
+ <%= page.status_title(:public) %>
56
+ </span>
57
+ <% end %>
54
58
  </td>
55
59
  <td class="tools">
56
60
  <% if can?(:info, page) %>
57
- <div class="button_with_label">
61
+ <sl-tooltip content="<%= Alchemy.t(:page_infos) %>">
58
62
  <%= link_to_dialog(
59
63
  render_icon('info-circle'),
60
64
  alchemy.info_admin_page_path(page),
61
65
  {
62
66
  title: Alchemy.t(:page_infos),
63
67
  size: '520x290'
64
- }
68
+ },
69
+ class: "icon_button"
65
70
  ) %>
66
- <label class="center"><%= Alchemy.t(:page_infos) %></label>
67
- </div>
71
+ </sl-tooltip>
68
72
  <% end %>
69
73
  <% if can?(:configure, page) %>
70
- <div class="button_with_label sitemap_tool">
74
+ <sl-tooltip content="<%= Alchemy.t(:edit_page_properties) %>">
71
75
  <%= link_to_dialog(
72
76
  render_icon(:cog),
73
77
  alchemy.configure_admin_page_path(page),
74
78
  {
75
79
  title: Alchemy.t(:edit_page_properties),
76
80
  size: '450x680'
77
- }
81
+ },
82
+ class: "icon_button"
78
83
  ) -%>
79
- <label class="center"><%= Alchemy.t(:edit_page_properties) %></label>
80
- </div>
84
+ </sl-tooltip>
81
85
  <% end %>
82
86
  <% if can?(:copy, page) %>
83
- <div class="button_with_label sitemap_tool">
87
+ <sl-tooltip content="<%= Alchemy.t(:copy_page) %>">
84
88
  <%= link_to(
85
89
  render_icon(:copy),
86
90
  alchemy.insert_admin_clipboard_path(
@@ -88,20 +92,20 @@
88
92
  remarkable_id: page.id,
89
93
  ),
90
94
  remote: true,
91
- method: :post
95
+ method: :post,
96
+ class: "icon_button"
92
97
  ) %>
93
- <label class="center"><%= Alchemy.t(:copy_page) %></label>
94
- </div>
98
+ </sl-tooltip>
95
99
  <% end %>
96
100
  <% if can?(:destroy, page) %>
97
- <div class="button_with_label">
101
+ <sl-tooltip content="<%= Alchemy.t(:delete_page) %>">
98
102
  <%= link_to_confirm_dialog(
99
103
  render_icon(:minus),
100
104
  Alchemy.t(:confirm_to_delete_page),
101
- alchemy.admin_page_path(page)
105
+ alchemy.admin_page_path(page),
106
+ class: "icon_button"
102
107
  ) -%>
103
- <label class="center"><%= Alchemy.t(:delete_page) %></label>
104
- </div>
108
+ </sl-tooltip>
105
109
  <% end %>
106
110
  </td>
107
111
  </tr>
@@ -2,61 +2,66 @@
2
2
  <%= render "alchemy/admin/partials/site_select" %>
3
3
  <%= render "alchemy/admin/partials/language_tree_select" %>
4
4
  <%= toolbar_button(
5
- icon: :plus,
5
+ icon: "file-add",
6
6
  url: alchemy.new_admin_page_path(language: @current_language),
7
7
  hotkey: 'alt+n',
8
+ tooltip_placement: "top-start",
8
9
  dialog_options: {
9
10
  title: Alchemy.t('Add a page'),
10
11
  size: '340x215',
11
12
  overflow: true
12
13
  },
13
- title: Alchemy.t('Add a page'),
14
14
  label: Alchemy.t('Add a page'),
15
15
  if_permitted_to: [:create, Alchemy::Page]
16
16
  ) %>
17
17
  <div class="toolbar_spacer"></div>
18
18
  <% if can?(:flush, Alchemy::Page) %>
19
- <div class="button_with_label">
20
- <%= link_to(
21
- render_icon(:eraser),
22
- alchemy.flush_admin_pages_path,
23
- remote: true,
24
- method: :post,
25
- class: "icon_button please_wait",
26
- title: Alchemy.t("Flush page cache")
27
- ) %>
28
- <label><%= Alchemy.t("Flush page cache") %></label>
19
+ <div class="toolbar_button">
20
+ <sl-tooltip content="<%= Alchemy.t("Flush page cache") %>">
21
+ <%= link_to(
22
+ render_icon(:eraser),
23
+ alchemy.flush_admin_pages_path,
24
+ remote: true,
25
+ method: :post,
26
+ class: "icon_button please_wait",
27
+ title: Alchemy.t("Flush page cache")
28
+ ) %>
29
+ </sl-tooltip>
29
30
  </div>
30
31
  <% end %>
31
- <div class="button_with_label" id="clipboard_button">
32
- <%= link_to_dialog(
33
- render_icon(clipboard_empty?("pages") ? :clipboard : :paste),
34
- alchemy.admin_clipboard_path(remarkable_type: "pages"),
35
- {
36
- title: Alchemy.t("Clipboard"),
37
- size: "380x305"
38
- },
39
- class: "icon_button",
40
- title: Alchemy.t("Show clipboard")
41
- ) %>
42
- <label><%= Alchemy.t("Show clipboard") %></label>
32
+ <div class="toolbar_button">
33
+ <sl-tooltip content="<%= Alchemy.t("Show clipboard") %>">
34
+ <%= link_to_dialog(
35
+ render_icon(:clipboard, style: clipboard_empty?("pages") ? "line" : "fill"),
36
+ alchemy.admin_clipboard_path(remarkable_type: "pages"),
37
+ {
38
+ title: Alchemy.t("Clipboard"),
39
+ size: "380x305"
40
+ },
41
+ class: "icon_button",
42
+ title: Alchemy.t("Show clipboard"),
43
+ id: "clipboard_button"
44
+ ) %>
45
+ </sl-tooltip>
43
46
  </div>
44
47
  <div class="toolbar_spacer"></div>
45
- <div class="button_with_label<%= @view != "list" ? " active" : nil %>">
46
- <%= link_to(
47
- render_icon(:stream),
48
- alchemy.admin_pages_path(view: "tree"),
49
- class: "icon_button"
50
- ) %>
51
- <label><%= Alchemy.t("Hierarchical") %></label>
48
+ <div class="toolbar_button">
49
+ <sl-tooltip content="<%= Alchemy.t("Hierarchical") %>">
50
+ <%= link_to(
51
+ render_icon(:"menu-2"),
52
+ alchemy.admin_pages_path(view: "tree"),
53
+ class: ["icon_button", @view != "list" && "active"].compact
54
+ ) %>
55
+ </sl-tooltip>
52
56
  </div>
53
- <div class="button_with_label<%= @view == "list" ? " active" : nil %>">
54
- <%= link_to(
55
- render_icon("sort-amount-down-alt"),
56
- alchemy.admin_pages_path(view: "list"),
57
- class: "icon_button"
58
- ) %>
59
- <label><%= Alchemy.t("Sortable List") %></label>
57
+ <div class="toolbar_button">
58
+ <sl-tooltip content="<%= Alchemy.t("Sortable List") %>">
59
+ <%= link_to(
60
+ render_icon("sort-desc", style: nil),
61
+ alchemy.admin_pages_path(view: "list"),
62
+ class: ["icon_button", @view == "list" && "active"].compact
63
+ ) %>
64
+ </sl-tooltip>
60
65
  </div>
61
66
  </div>
62
67
  <% search_filter_params[:view] = "list" %>
@@ -1,16 +1,14 @@
1
- <div id="overlay_tabs">
2
- <ul>
3
- <li><a href="#page_properties"><%= Alchemy.t('Properties') %></a></li>
4
- <li>
5
- <a href="#legacy_urls" id="legacy_urls_label">
6
- <%= render 'alchemy/admin/legacy_page_urls/label', count: @page.legacy_urls.size %>
7
- </a>
8
- </li>
9
- </ul>
10
- <div id="page_properties">
1
+ <sl-tab-group id="overlay_tabs">
2
+ <sl-tab slot="nav" panel="page_properties">
3
+ <%= Alchemy.t('Properties') %>
4
+ </sl-tab>
5
+ <sl-tab slot="nav" panel="legacy_urls" id="legacy_urls_label">
6
+ <%= render 'alchemy/admin/legacy_page_urls/label', count: @page.legacy_urls.size %>
7
+ </sl-tab>
8
+ <sl-tab-panel name="page_properties">
11
9
  <%= render 'form' %>
12
- </div>
13
- <div id="legacy_urls">
10
+ </sl-tab-panel>
11
+ <sl-tab-panel name="legacy_urls">
14
12
  <%= render 'legacy_urls' %>
15
- </div>
16
- </div>
13
+ </sl-tab-panel>
14
+ </sl-tab-group>