spina 1.1.1 → 2.0.0.alpha

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of spina might be problematic. Click here for more details.

Files changed (204) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +23 -244
  3. data/app/assets/fonts/spina/Metropolis-Black.woff2 +0 -0
  4. data/app/assets/fonts/spina/Metropolis-BlackItalic.woff2 +0 -0
  5. data/app/assets/fonts/spina/Metropolis-Bold.woff2 +0 -0
  6. data/app/assets/fonts/spina/Metropolis-BoldItalic.woff2 +0 -0
  7. data/app/assets/fonts/spina/Metropolis-ExtraBold.woff2 +0 -0
  8. data/app/assets/fonts/spina/Metropolis-ExtraBoldItalic.woff2 +0 -0
  9. data/app/assets/fonts/spina/Metropolis-ExtraLight.woff2 +0 -0
  10. data/app/assets/fonts/spina/Metropolis-ExtraLightItalic.woff2 +0 -0
  11. data/app/assets/fonts/spina/Metropolis-Light.woff2 +0 -0
  12. data/app/assets/fonts/spina/Metropolis-LightItalic.woff2 +0 -0
  13. data/app/assets/fonts/spina/Metropolis-Medium.woff2 +0 -0
  14. data/app/assets/fonts/spina/Metropolis-MediumItalic.woff2 +0 -0
  15. data/app/assets/fonts/spina/Metropolis-Regular.woff2 +0 -0
  16. data/app/assets/fonts/spina/Metropolis-RegularItalic.woff2 +0 -0
  17. data/app/assets/fonts/spina/Metropolis-SemiBold.woff2 +0 -0
  18. data/app/assets/fonts/spina/Metropolis-SemiBoldItalic.woff2 +0 -0
  19. data/app/assets/fonts/spina/Metropolis-Thin.woff2 +0 -0
  20. data/app/assets/fonts/spina/Metropolis-ThinItalic.woff2 +0 -0
  21. data/app/assets/fonts/spina/ics_spina.eot +0 -0
  22. data/app/assets/fonts/spina/ics_spina.svg +285 -267
  23. data/app/assets/fonts/spina/ics_spina.ttf +0 -0
  24. data/app/assets/fonts/spina/ics_spina.woff +0 -0
  25. data/app/assets/fonts/spina/ics_spina.woff2 +0 -0
  26. data/app/assets/icons/spina/bold.svg +1 -1
  27. data/app/assets/icons/spina/code.svg +1 -1
  28. data/app/assets/icons/spina/image.svg +1 -10
  29. data/app/assets/icons/spina/indent.svg +1 -0
  30. data/app/assets/icons/spina/italic.svg +1 -1
  31. data/app/assets/icons/spina/link.svg +1 -1
  32. data/app/assets/icons/spina/list-ol.svg +1 -0
  33. data/app/assets/icons/spina/list.svg +1 -0
  34. data/app/assets/icons/spina/outdent.svg +1 -0
  35. data/app/assets/icons/spina/preview/ics_spina-preview.html +121 -1
  36. data/app/assets/icons/spina/quote-right.svg +1 -0
  37. data/app/assets/icons/spina/redo.svg +1 -0
  38. data/app/assets/icons/spina/strikethrough.svg +1 -0
  39. data/app/assets/icons/spina/undo.svg +1 -0
  40. data/app/assets/images/spina/favicon.png +0 -0
  41. data/app/assets/javascripts/spina/admin/application.js +1 -2
  42. data/app/assets/javascripts/spina/admin/controllers/attachment_picker_controller.js +15 -0
  43. data/app/assets/javascripts/spina/admin/controllers/image_form_controller.js +5 -4
  44. data/app/assets/javascripts/spina/admin/controllers/infinite_scroll_controller.js +20 -22
  45. data/app/assets/javascripts/spina/admin/controllers/media_picker_controller.js +171 -0
  46. data/app/assets/javascripts/spina/admin/controllers/modal_controller.js +18 -0
  47. data/app/assets/javascripts/spina/admin/controllers/repeater_form_controller.js +38 -0
  48. data/app/assets/javascripts/spina/admin/media_gallery.coffee +0 -3
  49. data/app/assets/javascripts/spina/admin/notifications.coffee +1 -1
  50. data/app/assets/javascripts/spina/admin/pages.coffee.erb +3 -20
  51. data/app/assets/javascripts/spina/admin/scaffold.coffee +0 -3
  52. data/app/assets/javascripts/spina/admin/trix.coffee.erb +14 -18
  53. data/app/assets/stylesheets/spina.sass +10 -10
  54. data/app/assets/stylesheets/spina/_buttons.sass +58 -32
  55. data/app/assets/stylesheets/spina/_configuration.sass.erb +2 -2
  56. data/app/assets/stylesheets/spina/_fonts.sass +32 -0
  57. data/app/assets/stylesheets/spina/_forms.sass +65 -76
  58. data/app/assets/stylesheets/spina/_gallery.sass +22 -4
  59. data/app/assets/stylesheets/spina/_ics_spina.scss +8 -0
  60. data/app/assets/stylesheets/spina/_media_picker.sass +133 -0
  61. data/app/assets/stylesheets/spina/_modal.sass +35 -2
  62. data/app/assets/stylesheets/spina/_notifications.sass +20 -14
  63. data/app/assets/stylesheets/spina/_pages.sass +131 -0
  64. data/app/assets/stylesheets/spina/_sortable_lists.sass +14 -8
  65. data/app/assets/stylesheets/spina/_tables.sass +7 -4
  66. data/app/assets/stylesheets/spina/_trix_custom.sass +15 -28
  67. data/app/controllers/concerns/spina/frontend.rb +9 -0
  68. data/app/controllers/spina/admin/accounts_controller.rb +9 -13
  69. data/app/controllers/spina/admin/attachments_controller.rb +0 -22
  70. data/app/controllers/spina/admin/images_controller.rb +1 -1
  71. data/app/controllers/spina/admin/media_folders_controller.rb +10 -0
  72. data/app/controllers/spina/admin/media_picker_controller.rb +18 -19
  73. data/app/controllers/spina/admin/pages_controller.rb +3 -7
  74. data/app/controllers/spina/admin/resources_controller.rb +9 -4
  75. data/app/controllers/spina/application_controller.rb +1 -1
  76. data/app/helpers/spina/admin/pages_helper.rb +22 -20
  77. data/app/helpers/spina/{files_helper.rb → attachments_helper.rb} +1 -1
  78. data/app/helpers/spina/images_helper.rb +14 -0
  79. data/app/helpers/spina/pages_helper.rb +23 -4
  80. data/app/models/concerns/spina/partable.rb +19 -7
  81. data/app/models/concerns/spina/translated_content.rb +19 -0
  82. data/app/models/spina/account.rb +3 -10
  83. data/app/models/spina/attachment.rb +0 -4
  84. data/app/models/spina/current.rb +1 -0
  85. data/app/models/spina/image.rb +0 -4
  86. data/app/models/spina/page.rb +19 -20
  87. data/app/models/spina/parts/attachment.rb +17 -0
  88. data/app/models/spina/parts/base.rb +12 -0
  89. data/app/models/spina/parts/image.rb +30 -0
  90. data/app/models/spina/parts/image_collection.rb +23 -0
  91. data/app/models/spina/parts/line.rb +7 -0
  92. data/app/models/spina/parts/option.rb +13 -0
  93. data/app/models/spina/parts/repeater.rb +10 -0
  94. data/app/models/spina/parts/repeater_content.rb +15 -0
  95. data/app/models/spina/parts/text.rb +7 -0
  96. data/app/models/spina/resource.rb +4 -12
  97. data/app/presenters/spina/content_presenter.rb +58 -0
  98. data/app/presenters/spina/menu_presenter.rb +2 -1
  99. data/app/views/layouts/spina/admin/admin.html.haml +3 -4
  100. data/app/views/layouts/spina/admin/pages.html.haml +5 -4
  101. data/app/views/spina/admin/accounts/_form.html.haml +13 -7
  102. data/app/views/spina/admin/accounts/analytics.html.haml +5 -3
  103. data/app/views/spina/admin/accounts/style.html.haml +26 -21
  104. data/app/views/spina/admin/images/index.html.haml +7 -5
  105. data/app/views/spina/admin/media_folders/_form.html.haml +5 -2
  106. data/app/views/spina/admin/media_folders/edit.js.erb +1 -0
  107. data/app/views/spina/admin/media_folders/show.html.haml +2 -1
  108. data/app/views/spina/admin/media_picker/_image.html.haml +3 -0
  109. data/app/views/spina/admin/media_picker/_media_picker.html.haml +32 -0
  110. data/app/views/spina/admin/media_picker/_media_picker_grid.html.haml +25 -0
  111. data/app/views/spina/admin/media_picker/infinite_scroll.js.erb +4 -4
  112. data/app/views/spina/admin/media_picker/select.js.erb +2 -0
  113. data/app/views/spina/admin/media_picker/show.html.haml +1 -0
  114. data/app/views/spina/admin/media_picker/show.js.erb +1 -1
  115. data/app/views/spina/admin/pages/_form.html.haml +10 -8
  116. data/app/views/spina/admin/pages/_form_advanced.html.haml +19 -17
  117. data/app/views/spina/admin/pages/_form_page_content.html.haml +14 -13
  118. data/app/views/spina/admin/pages/_form_page_seo.html.haml +15 -4
  119. data/app/views/spina/admin/pages/_page.html.haml +5 -3
  120. data/app/views/spina/admin/pages/_page_nested_list.html.haml +2 -3
  121. data/app/views/spina/admin/pages/index.html.haml +5 -4
  122. data/app/views/spina/admin/parts/attachments/_form.html.haml +6 -0
  123. data/app/views/spina/admin/parts/image_collections/_fields.html.haml +7 -0
  124. data/app/views/spina/admin/parts/image_collections/_form.html.haml +12 -0
  125. data/app/views/spina/admin/parts/images/_form.html.haml +18 -0
  126. data/app/views/spina/admin/parts/lines/_form.html.haml +2 -0
  127. data/app/views/spina/admin/parts/options/_form.html.haml +3 -0
  128. data/app/views/spina/admin/parts/repeaters/_fields.html.haml +15 -0
  129. data/app/views/spina/admin/parts/repeaters/_form.html.haml +18 -0
  130. data/app/views/spina/admin/parts/texts/_form.html.haml +6 -0
  131. data/app/views/spina/admin/resources/edit.html.haml +28 -12
  132. data/app/views/spina/admin/resources/show.html.haml +6 -3
  133. data/app/views/spina/admin/shared/_notifications.html.haml +4 -4
  134. data/config/locales/TH.yml +220 -205
  135. data/config/locales/bg.yml +219 -211
  136. data/config/locales/de.yml +218 -190
  137. data/config/locales/en.yml +218 -208
  138. data/config/locales/es.yml +219 -206
  139. data/config/locales/fr.yml +219 -190
  140. data/config/locales/id.yml +219 -189
  141. data/config/locales/it.yml +225 -152
  142. data/config/locales/nl.yml +220 -197
  143. data/config/locales/pl.yml +218 -185
  144. data/config/locales/pt-BR.yml +218 -205
  145. data/config/locales/ro.yml +258 -225
  146. data/config/locales/ru.yml +231 -171
  147. data/config/locales/sv.yml +218 -183
  148. data/config/locales/tr.yml +224 -151
  149. data/config/locales/zh-CN.yml +225 -175
  150. data/db/migrate/11_create_spina_resources.rb +0 -2
  151. data/db/migrate/12_add_url_title_to_spina_page_translations.rb +5 -0
  152. data/db/migrate/13_add_json_attributes_to_spina_accounts.rb +5 -0
  153. data/db/migrate/14_add_json_attributes_to_spina_pages.rb +5 -0
  154. data/db/migrate/15_add_slug_to_spina_resources.rb +5 -0
  155. data/lib/generators/spina/templates/app/views/demo/pages/demo.html.haml +13 -21
  156. data/lib/generators/spina/templates/app/views/demo/pages/homepage.html.haml +1 -1
  157. data/lib/generators/spina/templates/config/initializers/themes/default.rb +4 -4
  158. data/lib/generators/spina/templates/config/initializers/themes/demo.rb +32 -44
  159. data/lib/spina.rb +2 -0
  160. data/lib/spina/attr_json_spina_parts_model.rb +29 -0
  161. data/lib/spina/engine.rb +13 -3
  162. data/lib/spina/part.rb +19 -0
  163. data/lib/spina/theme.rb +1 -1
  164. data/lib/spina/version.rb +1 -1
  165. data/vendor/assets/javascripts/spina/sortable.js +2 -2
  166. metadata +71 -45
  167. data/app/assets/javascripts/spina/admin/account.coffee +0 -16
  168. data/app/models/concerns/spina/image_collectable.rb +0 -23
  169. data/app/models/concerns/spina/optionable.rb +0 -12
  170. data/app/models/concerns/spina/part.rb +0 -38
  171. data/app/models/spina/attachment_collection.rb +0 -20
  172. data/app/models/spina/image_collection.rb +0 -23
  173. data/app/models/spina/image_collections_image.rb +0 -6
  174. data/app/models/spina/layout_part.rb +0 -22
  175. data/app/models/spina/line.rb +0 -10
  176. data/app/models/spina/option.rb +0 -17
  177. data/app/models/spina/page_part.rb +0 -22
  178. data/app/models/spina/structure.rb +0 -14
  179. data/app/models/spina/structure_item.rb +0 -22
  180. data/app/models/spina/structure_part.rb +0 -20
  181. data/app/models/spina/text.rb +0 -10
  182. data/app/views/dummy/show.html.haml +0 -1
  183. data/app/views/spina/admin/attachments/_attachment_collection.html.haml +0 -2
  184. data/app/views/spina/admin/attachments/_select.html.haml +0 -17
  185. data/app/views/spina/admin/attachments/_select_collection.html.haml +0 -18
  186. data/app/views/spina/admin/attachments/insert.js.erb +0 -5
  187. data/app/views/spina/admin/attachments/insert_collection.js.coffee +0 -7
  188. data/app/views/spina/admin/attachments/select.js.erb +0 -2
  189. data/app/views/spina/admin/attachments/select_collection.js.erb +0 -2
  190. data/app/views/spina/admin/image_collections/_image_collection.html.haml +0 -5
  191. data/app/views/spina/admin/layout_partables/lines/_form.html.haml +0 -2
  192. data/app/views/spina/admin/partables/attachment_collections/_form.html.haml +0 -14
  193. data/app/views/spina/admin/partables/attachments/_form.html.haml +0 -13
  194. data/app/views/spina/admin/partables/image_collections/_form.html.haml +0 -16
  195. data/app/views/spina/admin/partables/images/_form.html.haml +0 -21
  196. data/app/views/spina/admin/partables/lines/_form.html.haml +0 -5
  197. data/app/views/spina/admin/partables/options/_form.html.haml +0 -7
  198. data/app/views/spina/admin/partables/photo_collections/_form.html.haml +0 -4
  199. data/app/views/spina/admin/partables/photos/_form.html.haml +0 -4
  200. data/app/views/spina/admin/partables/structures/_form.html.haml +0 -21
  201. data/app/views/spina/admin/partables/texts/_form.html.haml +0 -8
  202. data/app/views/spina/admin/structure_items/_fields.html.haml +0 -15
  203. data/app/views/spina/admin/structure_partables/attachment_collections/_form.html.haml +0 -14
  204. data/app/views/spina/admin/structure_partables/attachments/_form.html.haml +0 -13
@@ -0,0 +1,18 @@
1
+ (() => {
2
+ const application = Stimulus.Application.start()
3
+
4
+ application.register("modal", class extends Stimulus.Controller {
5
+ static get targets() {
6
+ return []
7
+ }
8
+
9
+ connect() {
10
+ this.element[this.identifier] = this
11
+ }
12
+
13
+ close() {
14
+ document.querySelector('body').removeChild(this.element)
15
+ }
16
+
17
+ })
18
+ })()
@@ -0,0 +1,38 @@
1
+ (() => {
2
+ const application = Stimulus.Application.start()
3
+
4
+ application.register("repeater-form", class extends Stimulus.Controller {
5
+ static get targets() {
6
+ return ["list", "listItem", "content", "pane"]
7
+ }
8
+
9
+ connect() {
10
+ Sortable.create(this.listTarget, {
11
+ handle: '.sortable-handle',
12
+ onUpdate: function(event) {
13
+ let order_of_ids = [...this.listTarget.children].map(function(item) {
14
+ return parseInt(item.dataset.partId)
15
+ })
16
+
17
+ // Sort the DOM elements containing the repeater fields
18
+ let array = [...this.contentTarget.children]
19
+ array.sort(function(a, b) {
20
+ return order_of_ids.indexOf(parseInt(a.dataset.partId)) > order_of_ids.indexOf(parseInt(b.dataset.partId))
21
+ }).map(node => this.contentTarget.appendChild(node))
22
+ }.bind(this)
23
+ })
24
+ }
25
+
26
+ delete(event) {
27
+ event.preventDefault()
28
+ let part_id = event.currentTarget.dataset.partId
29
+
30
+ let pane = this.element.querySelector(`.structure-form-pane[data-part-id="${part_id}"]`)
31
+ let listItem = this.element.querySelector(`.structure-form-menu li[data-part-id="${part_id}"]`)
32
+
33
+ pane.parentElement.removeChild(pane)
34
+ listItem.parentElement.removeChild(listItem)
35
+ }
36
+
37
+ })
38
+ })()
@@ -4,9 +4,6 @@ $(document).on 'direct-uploads:start', 'form', (e) ->
4
4
  $(document).on 'direct-uploads:end', 'form', (e) ->
5
5
  $(this).find('.customfile').removeClass('loading')
6
6
 
7
- $(document).on 'direct-upload:progress', 'input', (e) ->
8
- console.log(e.detail.progress)
9
-
10
7
  $(document).on 'change', 'input[type="file"]', (e) ->
11
8
  $form = $(this).parents('form')
12
9
  $form.find('input[type="submit"]').click()
@@ -1,6 +1,6 @@
1
1
  $(document).on 'click', '.notification [data-close-notification]', (e) ->
2
2
  $notification = $(this).parents('.notification')
3
- $notification.removeClass('fadeInRight').addClass('fadeOutRight')
3
+ $notification.removeClass('fadeInLeft').addClass('fadeOutLeft')
4
4
  setTimeout ->
5
5
  $notification.remove()
6
6
  , 400
@@ -3,33 +3,14 @@ ready = ->
3
3
  $('.dd').nestable
4
4
  maxDepth: "<%= Spina.config.max_page_depth %>"
5
5
 
6
- if $('.page-template').length > 0
7
- page_parts = $('.page-template').data('page-parts')
8
- show_page_parts(page_parts)
9
-
10
6
  $('.sortable-grid').sortable().bind 'sortupdate', (e) ->
11
7
  position_array = []
12
8
  $(e.target).find('li.image').each (index) ->
13
9
  position_array.push $(this).data('image-id')
14
10
  $(e.target).parents('.horizontal-form-content').find('.image-positions').val(position_array.join(","))
15
11
 
16
- $('.structure-form-menu ul').sortable().bind 'sortupdate', (e) ->
17
- $(e.target).find('li').each (index) ->
18
- id = $(this).data('structure-item-id')
19
- $(".structure_form_pane_#{id}_position").val(index)
20
-
21
12
  $(document).on 'turbolinks:load', ready
22
13
 
23
- # Change templates makes page parts appear and disappear
24
- $(document).on 'change', '.page-template select', ->
25
- page_parts = $(this).find('option:selected').data('page-parts').split(" ")
26
- show_page_parts(page_parts)
27
-
28
- show_page_parts = (page_parts) ->
29
- $('.horizontal-form-group.page-part').hide()
30
- for page_part in page_parts
31
- $('.horizontal-form-group.page-part[data-name=' + page_part + ']').show()
32
-
33
14
  # Dynamically add and remove structures
34
15
  $(document).on 'click', 'form .add_structure_item_fields', (event) ->
35
16
  $structureForm = $(this).parents('.structure-form')
@@ -39,7 +20,7 @@ $(document).on 'click', 'form .add_structure_item_fields', (event) ->
39
20
  $fields = $($(this).data('fields').replace(regexp, time))
40
21
  $structureForm.find('.structure-form-content').append($fields)
41
22
 
42
- $link = $("<li><a href='#structure_form_pane_#{time}'><i class='icon icon-bars'></i> </a></li>")
23
+ $link = $("<li data-part-id='#{time}'><a href='#structure_form_pane_#{time}'><i class='icon icon-bars'></i> </a></li>")
43
24
 
44
25
  $structureForm.find('.structure-form-menu ul').append($link)
45
26
  $fields.attr('id', "structure_form_pane_#{time}")
@@ -60,6 +41,8 @@ $(document).on 'click', 'form .remove_structure_item_fields', (event) ->
60
41
  $previousLink.find('a').trigger('click')
61
42
  $link.hide()
62
43
  $pane.hide()
44
+ $link.remove()
45
+ $pane.remove()
63
46
  event.preventDefault()
64
47
 
65
48
  $(document).on 'change', '.structure-form-pane .structure-form-part:first-child input', (event) ->
@@ -73,9 +73,6 @@ ready = ->
73
73
  $('input[type="file"][data-customfileinput]:visible').each ->
74
74
  $(this).customFileInput()
75
75
 
76
- $(".structure-form-menu ul").sortable
77
- handle: '.sortable-handle'
78
-
79
76
  # Switch
80
77
  if $('input[data-switch]').length > 0
81
78
  $('input[data-switch]').spinaSwitch()
@@ -44,7 +44,6 @@ Trix.config.toolbar =
44
44
  <span class="trix-button-group trix-button-group--text-tools" data-trix-button-group="text-tools">
45
45
  <button type="button" class="trix-button trix-button--icon trix-button--icon-bold" data-trix-attribute="bold" data-trix-key="b" title="#{Trix.config.lang.bold}" tabindex="-1">#{Trix.config.lang.bold}</button>
46
46
  <button type="button" class="trix-button trix-button--icon trix-button--icon-italic" data-trix-attribute="italic" data-trix-key="i" title="#{Trix.config.lang.italic}" tabindex="-1">#{Trix.config.lang.italic}</button>
47
- <button type="button" class="trix-button trix-button--icon trix-button--icon-strike" data-trix-attribute="strike" title="#{Trix.config.lang.strike}" tabindex="-1">#{Trix.config.lang.strike}</button>
48
47
  <button type="button" class="trix-button trix-button--icon trix-button--icon-link" data-trix-attribute="href" data-trix-action="link" data-trix-key="k" title="#{Trix.config.lang.link}" tabindex="-1">#{Trix.config.lang.link}</button>
49
48
  </span>
50
49
  <span class="trix-button-group trix-button-group--block-tools" data-trix-button-group="block-tools">
@@ -52,16 +51,8 @@ Trix.config.toolbar =
52
51
  <button type="button" class="trix-button trix-button--text" data-trix-attribute="heading2" title="#{Trix.config.lang.heading2}" tabindex="-1">#{Trix.config.lang.heading2}</button>
53
52
  <button type="button" class="trix-button trix-button--text" data-trix-attribute="heading3" title="#{Trix.config.lang.heading3}" tabindex="-1">#{Trix.config.lang.heading3}</button>
54
53
  <button type="button" class="trix-button trix-button--text" data-trix-attribute="heading4" title="#{Trix.config.lang.heading4}" tabindex="-1">#{Trix.config.lang.heading4}</button>
55
- <button type="button" class="trix-button trix-button--text" data-trix-attribute="heading5" title="#{Trix.config.lang.heading5}" tabindex="-1">#{Trix.config.lang.heading5}</button>
56
- <button type="button" class="trix-button trix-button--text" data-trix-attribute="heading6" title="#{Trix.config.lang.heading6}" tabindex="-1">#{Trix.config.lang.heading6}</button>
57
54
  </span>
58
- <span class="trix-button-group-spacer"></span>
59
- <span class="trix-button-group trix-button-group--history-tools" data-trix-button-group="history-tools">
60
- <button type="button" class="trix-button trix-button--icon trix-button--icon-undo" data-trix-action="undo" data-trix-key="z" title="#{Trix.config.lang.undo}" tabindex="-1">#{Trix.config.lang.undo}</button>
61
- <button type="button" class="trix-button trix-button--icon trix-button--icon-redo" data-trix-action="redo" data-trix-key="shift+z" title="#{Trix.config.lang.redo}" tabindex="-1">#{Trix.config.lang.redo}</button>
62
- </span>
63
- </div>
64
- <div class="trix-button-row">
55
+
65
56
  <span class="trix-button-group trix-button-group--block-tools">
66
57
  <button type="button" class="trix-button trix-button--icon trix-button--icon-image" data-trix-attribute="image" data-trix-action="image" title="#{Trix.config.lang.image}" tabindex="-1">#{Trix.config.lang.image}</button>
67
58
  <button type="button" class="trix-button trix-button--icon trix-button--icon-quote" data-trix-attribute="quote" title="#{Trix.config.lang.quote}" tabindex="-1">#{Trix.config.lang.quote}</button>
@@ -71,6 +62,11 @@ Trix.config.toolbar =
71
62
  <button type="button" class="trix-button trix-button--icon trix-button--icon-decrease-nesting-level" data-trix-action="decreaseNestingLevel" title="#{Trix.config.lang.outdent}" tabindex="-1">#{Trix.config.lang.outdent}</button>
72
63
  <button type="button" class="trix-button trix-button--icon trix-button--icon-increase-nesting-level" data-trix-action="increaseNestingLevel" title="#{Trix.config.lang.indent}" tabindex="-1">#{Trix.config.lang.indent}</button>
73
64
  </span>
65
+
66
+ <span class="trix-button-group-spacer"></span>
67
+ </div>
68
+ <div class="trix-button-row">
69
+
74
70
  </div>
75
71
  <div class="trix-dialogs" data-trix-dialogs>
76
72
  <div class="trix-dialog trix-dialog--link" data-trix-dialog="href" data-trix-dialog-attribute="href">
@@ -88,21 +84,21 @@ Trix.config.toolbar =
88
84
  class Spina.TrixAttachment
89
85
  @imageSelect: (e) ->
90
86
  toolbar_id = $(this).closest('trix-toolbar').attr('id')
91
- $.get("<%= Spina::Engine.routes.url_helpers.admin_media_picker_path %>" + "?trix_toolbar_id=#{toolbar_id}")
87
+ $.getScript("<%= Spina::Engine.routes.url_helpers.admin_media_picker_path %>" + "?input=#{toolbar_id}&mode=trix")
92
88
 
93
- @imageInsert: (e, url, alt = "", link_to_url = "") ->
89
+ @imageInsert: (e) ->
94
90
  labels = []
95
- labels.push "✍️ #{alt}" if alt != ""
96
- labels.push "🔗 #{link_to_url}" if link_to_url != ""
91
+ labels.push "✍️ #{e.detail.alt}" if e.detail.alt != ""
92
+ labels.push "🔗 #{e.detail.link_to_url}" if e.detail.link_to_url != ""
97
93
  label = labels.join("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;")
98
94
 
99
- if link_to_url != ""
100
- attachment = new Trix.Attachment({content: "<a href='#{link_to_url}' class='trix-attachment-spina-image' data-label='#{label}'>
101
- <img src='#{url}' alt='#{alt}' />
95
+ if e.detail.link_to_url != ""
96
+ attachment = new Trix.Attachment({content: "<a href='#{e.detail.link_to_url}' class='trix-attachment-spina-image' data-label='#{label}'>
97
+ <img src='#{e.detail.url}' alt='#{e.detail.alt}' />
102
98
  </a>"})
103
99
  else
104
100
  attachment = new Trix.Attachment({content: "<span class='trix-attachment-spina-image' data-label='#{label}'>
105
- <img src='#{url}' alt='#{alt}' />
101
+ <img src='#{e.detail.url}' alt='#{e.detail.alt}' />
106
102
  </span>"})
107
103
 
108
104
  this.editor.insertAttachment(attachment)
@@ -1,6 +1,4 @@
1
1
  // Configuration
2
- @import font_awesome5_webfont
3
- @import font_awesome5
4
2
  @import spina/trix
5
3
 
6
4
  @import spina/configuration
@@ -31,6 +29,8 @@
31
29
  @import spina/trix_custom
32
30
  @import spina/wizard
33
31
  @import spina/notifications
32
+ @import spina/pages
33
+ @import spina/media_picker
34
34
 
35
35
 
36
36
  html
@@ -269,12 +269,12 @@ nav#secondary
269
269
  small
270
270
  display: block
271
271
  font-size: 12px
272
- font-weight: 400
272
+ font-weight: 500
273
273
 
274
274
  &.permanent-notice-info
275
- background: #eef6fe
276
- border-color: #def
277
- color: #12659b
275
+ background: lighten($primary-color-light, 33%)
276
+ border-color: lighten($primary-color-light, 28%)
277
+ color: $primary-color
278
278
 
279
279
  p
280
280
  color: inherit
@@ -429,7 +429,7 @@ section#main
429
429
  margin-left: 12px
430
430
  vertical-align: middle
431
431
 
432
- a
432
+ & > a:not(.button)
433
433
  color: #999
434
434
 
435
435
  &:hover
@@ -447,9 +447,9 @@ section#main
447
447
 
448
448
  .well
449
449
  background: #fff
450
- border: 1px solid #eee
451
- border-radius: 3px
452
- margin: 24px -20px
450
+ border-radius: 6px
451
+ box-shadow: 0 1px 1px rgba(0, 0, 0, .05)
452
+ margin: 24px -15px
453
453
  padding: 20px
454
454
 
455
455
  hr.divider
@@ -6,17 +6,17 @@ button, input[type="submit"], input[type="button"]
6
6
 
7
7
  .button
8
8
  background: #efefef
9
- border-radius: 3px
9
+ border-radius: 6px
10
10
  color: #444
11
11
  display: inline-block
12
12
  font-size: 14px
13
- font-weight: bold
14
- line-height: 20px
13
+ font-weight: 600
14
+ line-height: 18px
15
15
  margin: 0 4px 4px 0
16
16
  outline: none
17
17
  padding: 8px 16px
18
18
  text-decoration: none
19
- transition: all .3s ease
19
+ transition: all .2s ease
20
20
 
21
21
  &:hover
22
22
  background: shade(#efefef, 5%)
@@ -31,12 +31,34 @@ button, input[type="submit"], input[type="button"]
31
31
  &:focus
32
32
  outline: none
33
33
 
34
+ &.button-default
35
+ background: white
36
+ border: 1px solid #ddd
37
+ box-shadow: 0 1px 1px rgba(0, 0, 0, .05)
38
+
39
+ &:hover
40
+ background: #f5f5f5
41
+ border: 1px solid #ccc
42
+ box-shadow: 0 1px 2px rgba(0, 0, 0, .1)
43
+
44
+ &:active
45
+ background: #eee
46
+ border: 1px solid #c9c9c9
47
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, .1)
48
+
34
49
  &.button-primary
35
50
  background: $primary-color
51
+ border: 1px solid darken($primary-color, 5%)
52
+ box-shadow: 0 1px 1px rgba(0, 0, 0, .1)
36
53
  color: #fff
37
54
 
38
55
  &:hover
39
- background: shade($primary-color, 10%)
56
+ background: shade($primary-color, 15%)
57
+ box-shadow: 0 1px 1px rgba(0, 0, 0, .2)
58
+
59
+ &:active
60
+ background: shade($primary-color, 25%)
61
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, .4)
40
62
 
41
63
  &.button-shaded:hover
42
64
  background: $primary-color
@@ -46,16 +68,23 @@ button, input[type="submit"], input[type="button"]
46
68
 
47
69
  &.button-success
48
70
  background: $success-color
71
+ border-color: $success-color
72
+ box-shadow: 0 1px 1px rgba(0, 0, 0, .1)
49
73
  color: #fff
50
74
 
51
75
  &:hover
52
- background: tint($success-color, 20%)
76
+ background: darken($success-color, 10%)
77
+ border-color: darken($success-color, 15%)
78
+ box-shadow: 0 1px 1px rgba(0, 0, 0, .2)
79
+
80
+ &:active
81
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, .4)
53
82
 
54
83
  &.button-shaded:hover
55
84
  background: $success-color
56
85
 
57
86
  &:active, &.button-active, &.button-shaded, &.button-shaded:active
58
- background: shade($success-color, 10%)
87
+ background: darken($success-color, 10%)
59
88
 
60
89
  &.button-danger
61
90
  color: $danger-color
@@ -64,6 +93,10 @@ button, input[type="submit"], input[type="button"]
64
93
  display: block
65
94
  text-align: center
66
95
 
96
+ &.button-white
97
+ background: white
98
+ border: 1px solid #ccc
99
+
67
100
  &.button-link
68
101
  background: none
69
102
  font-weight: 600
@@ -76,7 +109,6 @@ button, input[type="submit"], input[type="button"]
76
109
 
77
110
  i.icon
78
111
  margin-right: 8px
79
- margin-top: -2px
80
112
 
81
113
  &.icon-only
82
114
  &:before, i.icon
@@ -86,18 +118,18 @@ button, input[type="submit"], input[type="button"]
86
118
  margin-right: 4px
87
119
 
88
120
  &.button-large
89
- border-radius: 4px
121
+ border-radius: 6px
90
122
  padding: 11px 18px
91
123
 
92
124
  &:before
93
125
  margin-right: 10px
94
126
 
95
127
  &.button-small
96
- font-size: 13px
128
+ font-size: 12px
97
129
  padding: 6px 12px
98
130
 
99
131
  i.icon
100
- margin-right: 4px
132
+ margin-right: 6px
101
133
 
102
134
  &.button-mini
103
135
  font-size: 12px
@@ -126,6 +158,12 @@ button, input[type="submit"], input[type="button"]
126
158
  animation: rotate 3.0s linear infinite
127
159
  display: inline-block
128
160
 
161
+ // Aligning button content
162
+ .button-content
163
+ align-items: center
164
+ display: flex
165
+ justify-content: center
166
+
129
167
  @keyframes rotate
130
168
  from
131
169
  transform: rotate(0deg)
@@ -144,10 +182,13 @@ button, input[type="submit"], input[type="button"]
144
182
  margin-right: 0
145
183
 
146
184
  .button:first-child
147
- border-radius: 3px 0 0 3px
185
+ border-top-left-radius: 3px
186
+ border-bottom-left-radius: 3px
148
187
 
149
188
  .button:last-child
150
- border-radius: 0 3px 3px 0
189
+ border-left: none
190
+ border-top-right-radius: 3px
191
+ border-bottom-right-radius: 3px
151
192
 
152
193
  &:after
153
194
  clear: both
@@ -201,7 +242,7 @@ button, input[type="submit"], input[type="button"]
201
242
  ul, .sliding-dropdown
202
243
  background: #fff
203
244
  border: 1px solid #ccc
204
- border-radius: 3px
245
+ border-radius: 6px
205
246
  box-shadow: 0 5px 20px rgba(0, 0, 0, .15)
206
247
  display: none
207
248
  list-style: none
@@ -323,35 +364,20 @@ button, input[type="submit"], input[type="button"]
323
364
  .slide
324
365
  display: none
325
366
  text-align: center
367
+ padding-bottom: 15px
326
368
 
327
369
  &.active
328
370
  display: block
329
371
 
330
372
  p
331
373
  color: #333
332
- font-size: 14px
333
- font-weight: 400
374
+ font-size: 13px
375
+ font-weight: 500
334
376
  margin: 16px
335
377
 
336
378
  p.muted
337
379
  color: #999
338
380
 
339
- .button
340
- border-top-left-radius: 0
341
- border-top-right-radius: 0
342
- margin: -1px
343
- width: 300px
344
-
345
- &.button-primary
346
- background: lighten($primary-color, 40%)
347
- border: 1px solid lighten($primary-color, 30%)
348
- color: $primary-color
349
-
350
- &:hover
351
- background: $primary-color
352
- border: 1px solid $primary-color
353
- color: #fff
354
-
355
381
  .slide-dots
356
382
  margin: 12px
357
383
  text-align: center