alchemy_cms 4.4.3 → 4.6.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +23 -17
  3. data/.rubocop.yml +7 -15
  4. data/CHANGELOG.md +35 -1
  5. data/alchemy_cms.gemspec +1 -0
  6. data/app/assets/javascripts/alchemy/admin.js +3 -0
  7. data/app/assets/javascripts/alchemy/alchemy.link_dialog.js.coffee +5 -5
  8. data/app/assets/javascripts/alchemy/alchemy.node_tree.js +66 -0
  9. data/app/assets/javascripts/alchemy/alchemy.utils.js +45 -0
  10. data/app/assets/javascripts/alchemy/templates/index.js +1 -0
  11. data/app/assets/javascripts/alchemy/templates/node_folder.hbs +3 -0
  12. data/app/assets/javascripts/alchemy/templates/page.hbs +1 -1
  13. data/app/assets/stylesheets/alchemy/_mixins.scss +2 -3
  14. data/app/assets/stylesheets/alchemy/_variables.scss +2 -2
  15. data/app/assets/stylesheets/alchemy/lists.scss +0 -8
  16. data/app/assets/stylesheets/alchemy/nodes.scss +6 -1
  17. data/app/assets/stylesheets/alchemy/sitemap.scss +59 -21
  18. data/app/controllers/alchemy/admin/dashboard_controller.rb +1 -1
  19. data/app/controllers/alchemy/admin/nodes_controller.rb +0 -10
  20. data/app/controllers/alchemy/admin/pages_controller.rb +0 -1
  21. data/app/controllers/alchemy/api/nodes_controller.rb +29 -0
  22. data/app/controllers/alchemy/api/pages_controller.rb +2 -0
  23. data/app/decorators/alchemy/content_editor.rb +55 -0
  24. data/app/helpers/alchemy/admin/pages_helper.rb +16 -16
  25. data/app/helpers/alchemy/pages_helper.rb +1 -1
  26. data/app/models/alchemy/content.rb +8 -22
  27. data/app/models/alchemy/node.rb +29 -6
  28. data/app/models/alchemy/page.rb +11 -0
  29. data/app/models/alchemy/page/page_naming.rb +1 -1
  30. data/app/models/alchemy/page/url_path.rb +66 -0
  31. data/app/serializers/alchemy/node_serializer.rb +12 -0
  32. data/app/serializers/alchemy/page_serializer.rb +2 -1
  33. data/app/serializers/alchemy/page_tree_serializer.rb +4 -3
  34. data/app/views/alchemy/admin/layoutpages/index.html.erb +5 -1
  35. data/app/views/alchemy/admin/nodes/_form.html.erb +13 -8
  36. data/app/views/alchemy/admin/nodes/_node.html.erb +10 -20
  37. data/app/views/alchemy/admin/nodes/index.html.erb +7 -17
  38. data/app/views/alchemy/admin/pages/_form.html.erb +1 -1
  39. data/app/views/alchemy/admin/pages/_menu_fields.html.erb +33 -29
  40. data/app/views/alchemy/admin/pages/_page.html.erb +3 -6
  41. data/app/views/alchemy/admin/pages/_sitemap.html.erb +6 -0
  42. data/app/views/alchemy/admin/pages/info.html.erb +1 -1
  43. data/app/views/alchemy/admin/partials/_routes.html.erb +8 -0
  44. data/config/alchemy/config.yml +0 -6
  45. data/config/locales/alchemy.en.yml +14 -6
  46. data/config/routes.rb +8 -5
  47. data/lib/alchemy/config.rb +30 -2
  48. data/lib/alchemy/ssl_protection.rb +3 -1
  49. data/lib/alchemy/upgrader/four_point_six.rb +50 -0
  50. data/lib/alchemy/version.rb +1 -1
  51. data/lib/rails/generators/alchemy/install/install_generator.rb +1 -1
  52. data/lib/rails/generators/alchemy/install/templates/menus.yml.tt +8 -0
  53. data/lib/rails/generators/alchemy/menus/menus_generator.rb +3 -3
  54. data/lib/rails/generators/alchemy/menus/templates/wrapper.html.haml +1 -1
  55. data/lib/rails/generators/alchemy/menus/templates/wrapper.html.slim +1 -1
  56. data/lib/tasks/alchemy/convert.rake +2 -0
  57. data/lib/tasks/alchemy/upgrade.rake +67 -46
  58. data/vendor/assets/javascripts/sortable/Sortable.min.js +2 -0
  59. metadata +29 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9af617bbf653eb9e5c293217f9dfc90060aaa22da0b306f0320c4da5858fbb9c
4
- data.tar.gz: 405d140847ff533931bc8e759fc2cd1ae934ca0c856fe4e27cf346426f950867
3
+ metadata.gz: d09503d403038880c93066f8ff4606496ab8023f406c2fdb7fd36dd62749b3d4
4
+ data.tar.gz: 97518f445dadcb7fe00626ba6cd5aa78c9e04ef596abdf7229828ebf6dd9644b
5
5
  SHA512:
6
- metadata.gz: af4468b1a30d64e3ddbaad1aaeacd20f65b417651a23768ee6196348d9a9f0bb34734a9800fc5d236dc88e6ab4e6f50ba0e40c7baea490de5d97383b501bfdca
7
- data.tar.gz: 88f2e7796ef2bd46b9cde670f0acd6f14e664bea97bc0170c607258c62cfd114aa8474754e7f5223e86b86cd58c09b1a9c9fc27da3aa118b90b60fb85d3a8cf4
6
+ metadata.gz: 8030842fd29540fa6a7e20e5ad4b5866cb5b8d214911e11a8370c37ae71542c81f65173addcde23ffd3e7c7c01c8f77c15f3934c555c49f03d5b37da7384fd46
7
+ data.tar.gz: 200eb39b0a8b6517896e0b799053a1e1d179dab67933b991ac3508370e7e664c7b0eba8bcfc6dbabdaaab4301ba3f6b6e28d84aa34dcdefbf3e9e2513fe8c32b
@@ -19,9 +19,9 @@ jobs:
19
19
  - postgresql
20
20
  env:
21
21
  DB: ${{ matrix.database }}
22
- MYSQL_PASSWORD: root
23
- POSTGRES_USER: postgres
24
- POSTGRES_PASSWORD: password
22
+ DB_USER: alchemy_user
23
+ DB_PASSWORD: password
24
+ DB_HOST: '127.0.0.1'
25
25
  RAILS_ENV: test
26
26
  RAILS_VERSION: ${{ matrix.rails }}
27
27
  CC_TEST_REPORTER_ID: bca4349e32f97919210ac8a450b04904b90683fcdd57d65a22c0f5065482bc22
@@ -29,11 +29,20 @@ jobs:
29
29
  postgres:
30
30
  image: postgres:11
31
31
  env:
32
- POSTGRES_USER: postgres
32
+ POSTGRES_USER: alchemy_user
33
33
  POSTGRES_PASSWORD: password
34
34
  POSTGRES_DB: alchemy_cms_dummy_test
35
35
  ports: ['5432:5432']
36
36
  options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
37
+ mysql:
38
+ image: mysql:latest
39
+ ports: ['3306:3306']
40
+ env:
41
+ MYSQL_USER: alchemy_user
42
+ MYSQL_PASSWORD: password
43
+ MYSQL_DATABASE: alchemy_cms_dummy_test
44
+ MYSQL_ROOT_PASSWORD: password
45
+ options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=5
37
46
  steps:
38
47
  - uses: actions/checkout@v1
39
48
  - name: Set up Ruby
@@ -52,15 +61,15 @@ jobs:
52
61
  if: matrix.database == 'postgresql'
53
62
  run: |
54
63
  mkdir -p /home/runner/apt/cache
55
- sudo apt-get update -qq
56
- sudo apt-get install -qq --fix-missing libpq-dev -o dir::cache::archives="/home/runner/apt/cache"
64
+ sudo apt update -qq
65
+ sudo apt install -qq --fix-missing libpq-dev -o dir::cache::archives="/home/runner/apt/cache"
57
66
  sudo chown -R runner /home/runner/apt/cache
58
67
  - name: Install MySQL headers
59
68
  if: matrix.database == 'mysql'
60
69
  run: |
61
70
  mkdir -p /home/runner/apt/cache
62
- sudo apt-get update -qq
63
- sudo apt-get install -qq --fix-missing libmysqlclient-dev -o dir::cache::archives="/home/runner/apt/cache"
71
+ sudo apt update -qq
72
+ sudo apt install -qq --fix-missing libmysqlclient-dev -o dir::cache::archives="/home/runner/apt/cache"
64
73
  sudo chown -R runner /home/runner/apt/cache
65
74
  - name: Install bundler
66
75
  run: |
@@ -80,15 +89,12 @@ jobs:
80
89
  - name: Prepare database
81
90
  run: |
82
91
  bundle exec rake alchemy:spec:prepare
83
- - name: Install code climate test reporter
84
- run: |
85
- curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
86
- chmod +x ./cc-test-reporter
87
- ./cc-test-reporter before-build
88
- - name: Test with RSpec
89
- run: |
90
- bundle exec rspec
91
- ./cc-test-reporter after-build --exit-code $?
92
+ - name: Run tests & publish code coverage
93
+ uses: paambaati/codeclimate-action@v2.5.7
94
+ env:
95
+ CC_TEST_REPORTER_ID: bca4349e32f97919210ac8a450b04904b90683fcdd57d65a22c0f5065482bc22
96
+ with:
97
+ coverageCommand: bundle exec rspec
92
98
  - uses: actions/upload-artifact@master
93
99
  if: failure()
94
100
  with:
@@ -9,17 +9,12 @@ AllCops:
9
9
  - 'alchemy_cms.gemspec'
10
10
  - 'Rakefile'
11
11
 
12
- TargetRubyVersion: 2.3
12
+ TargetRubyVersion: 2.4
13
13
 
14
14
  # Really, rubocop?
15
15
  Bundler/OrderedGems:
16
16
  Enabled: false
17
17
 
18
- # Sometimes I believe this reads better
19
- # This also causes spacing issues on multi-line fixes
20
- Style/BracesAroundHashParameters:
21
- Enabled: false
22
-
23
18
  Style/EmptyLiteral:
24
19
  Enabled: false
25
20
 
@@ -55,13 +50,10 @@ Style/MixinUsage:
55
50
  Exclude:
56
51
  - spec/**/*
57
52
 
58
- Performance/Count:
59
- Enabled: false
60
-
61
- Layout/AlignHash:
53
+ Layout/HashAlignment:
62
54
  Enabled: false
63
55
 
64
- Layout/AlignParameters:
56
+ Layout/ParameterAlignment:
65
57
  Enabled: false
66
58
 
67
59
  Layout/ClosingParenthesisIndentation:
@@ -77,13 +69,13 @@ Layout/ElseAlignment:
77
69
  Layout/EmptyLineAfterMagicComment:
78
70
  Enabled: false
79
71
 
80
- Layout/IndentArray:
72
+ Layout/FirstArrayElementIndentation:
81
73
  Enabled: false
82
74
 
83
- Layout/IndentHash:
75
+ Layout/FirstHashElementIndentation:
84
76
  Enabled: false
85
77
 
86
- Layout/IndentHeredoc:
78
+ Layout/HeredocIndentation:
87
79
  EnforcedStyle: active_support
88
80
 
89
81
  Layout/IndentationWidth:
@@ -115,7 +107,7 @@ Layout/SpaceInsideParens:
115
107
  Layout/EndAlignment:
116
108
  Enabled: false
117
109
 
118
- Lint/HandleExceptions:
110
+ Lint/SuppressedException:
119
111
  Exclude:
120
112
  - 'config/initializers/mini_profiler.rb'
121
113
 
@@ -1,4 +1,38 @@
1
- ## 5.0.0 (unreleased)
1
+ ## 4.6.2 (2020-09-07)
2
+
3
+ - Fix tri-Boolean check in PageNaming Module [#1931](https://github.com/AlchemyCMS/alchemy_cms/pull/1931) ([mamhoff](https://github.com/mamhoff))
4
+
5
+ ## 4.6.1 (2020-06-04)
6
+
7
+ - Fix 4.6 upgrader
8
+
9
+ ## 4.6.0 (2020-06-04)
10
+
11
+ - Use apt update instead of apt-get in GH action [#1865](https://github.com/AlchemyCMS/alchemy_cms/pull/1865) ([tvdeyen](https://github.com/tvdeyen))
12
+ - Use depth for page tree serializer root_or_leaf [#1864](https://github.com/AlchemyCMS/alchemy_cms/pull/1864) ([tvdeyen](https://github.com/tvdeyen))
13
+ - Fix sitemap wrapper height [#1861](https://github.com/AlchemyCMS/alchemy_cms/pull/1861) ([tvdeyen](https://github.com/tvdeyen))
14
+ - Do not return the root page with API responses. [#1860](https://github.com/AlchemyCMS/alchemy_cms/pull/1860) ([tvdeyen](https://github.com/tvdeyen))
15
+ - Introduce page.url_path and use it for alchemyPageSelect [#1859](https://github.com/AlchemyCMS/alchemy_cms/pull/1859) ([tvdeyen](https://github.com/tvdeyen))
16
+ - Update Urlname translation [#1857](https://github.com/AlchemyCMS/alchemy_cms/pull/1857) ([tvdeyen](https://github.com/tvdeyen))
17
+ - Show url name in Page tree [#1856](https://github.com/AlchemyCMS/alchemy_cms/pull/1856) ([tvdeyen](https://github.com/tvdeyen))
18
+ - Deprecate Page#visible attribute [#1855](https://github.com/AlchemyCMS/alchemy_cms/pull/1855) ([tvdeyen](https://github.com/tvdeyen))
19
+ - 4.6: Re-add `auto_logout_time` configuration option [#1852](https://github.com/AlchemyCMS/alchemy_cms/pull/1852) ([mamhoff](https://github.com/mamhoff))
20
+ - Backport ContentEditor to 4.6, deprecate removed methods on `Alchemy::Content` [#1847](https://github.com/AlchemyCMS/alchemy_cms/pull/1847) ([mamhoff](https://github.com/mamhoff))
21
+ - Deprecate auto_logout_time (4.6) [#1843](https://github.com/AlchemyCMS/alchemy_cms/pull/1843) ([tvdeyen](https://github.com/tvdeyen))
22
+ - Deprecate require_ssl (4.6) [#1842](https://github.com/AlchemyCMS/alchemy_cms/pull/1842) ([tvdeyen](https://github.com/tvdeyen))
23
+ - Deprecate url_nesting configuration (4.6) [#1841](https://github.com/AlchemyCMS/alchemy_cms/pull/1841) ([tvdeyen](https://github.com/tvdeyen))
24
+ - Allow page visible toggle (4.6) [#1838](https://github.com/AlchemyCMS/alchemy_cms/pull/1838) ([tvdeyen](https://github.com/tvdeyen))
25
+
26
+ ## 4.5.0 (2020-03-30)
27
+
28
+ - Sortable menus [#1758](https://github.com/AlchemyCMS/alchemy_cms/pull/1758) ([mamhoff](https://github.com/mamhoff))
29
+ - Programmatic menus [#1756](https://github.com/AlchemyCMS/alchemy_cms/pull/1756) ([mamhoff](https://github.com/mamhoff))
30
+ - Fix syntax in non-erb Menu templates [#1751]((https://github.com/AlchemyCMS/alchemy_cms/pull/1751)) ([Alexander ADAM](https://github.com/alexanderadam))
31
+ - Fix `render_menu` for custom controllers [#1746]((https://github.com/AlchemyCMS/alchemy_cms/pull/1746)) ([Alexander ADAM](https://github.com/alexanderadam))
32
+
33
+ ## 4.4.4 (2020-02-28)
34
+
35
+ - Fix new menu form [#1740](https://github.com/AlchemyCMS/alchemy_cms/pull/1740) ([tvdeyen](https://github.com/tvdeyen))
2
36
 
3
37
  ## 4.4.3 (2020-02-26)
4
38
 
@@ -51,6 +51,7 @@ Gem::Specification.new do |gem|
51
51
  gem.add_development_dependency 'rspec-rails', ['>= 4.0.0.beta2']
52
52
  gem.add_development_dependency 'simplecov', ['~> 0.17.1']
53
53
  gem.add_development_dependency 'webdrivers', ['~> 4.0']
54
+ gem.add_development_dependency 'webmock', ['~> 3.3']
54
55
  gem.add_development_dependency 'shoulda-matchers', ['~> 4.0']
55
56
 
56
57
  gem.post_install_message = <<-MSG
@@ -15,8 +15,10 @@
15
15
  //= require requestAnimationFrame
16
16
  //= require select2
17
17
  //= require handlebars
18
+ //= require sortable/Sortable.min
18
19
  //= require alchemy/templates
19
20
  //= require alchemy/alchemy.base
21
+ //= require alchemy/alchemy.utils
20
22
  //= require alchemy/alchemy.autocomplete
21
23
  //= require alchemy/alchemy.browser
22
24
  //= require alchemy/alchemy.buttons
@@ -39,6 +41,7 @@
39
41
  //= require alchemy/alchemy.link_dialog
40
42
  //= require alchemy/alchemy.list_filter
41
43
  //= require alchemy/alchemy.initializer
44
+ //= require alchemy/alchemy.node_tree
42
45
  //= require alchemy/alchemy.page_sorter
43
46
  //= require alchemy/alchemy.uploader
44
47
  //= require alchemy/alchemy.preview_window
@@ -76,16 +76,16 @@ class window.Alchemy.LinkDialog extends Alchemy.Dialog
76
76
  meta = data.meta
77
77
  results:
78
78
  data.pages.map (page) ->
79
- id: "/#{page.urlname}"
79
+ id: page.url_path
80
80
  name: page.name
81
- urlname: page.urlname
81
+ url_path: page.url_path
82
82
  page_id: page.id
83
83
  more: meta.page * meta.per_page < meta.total_count
84
84
  initSelection: ($element, callback) =>
85
85
  urlname = $element.val()
86
86
  $.get Alchemy.routes.api_pages_path,
87
87
  q:
88
- urlname_eq: urlname.replace(/^\//, '')
88
+ urlname_eq: urlname.replace(/^\/([a-z]{2}(-[A-Z]{2})?\/)?/, '')
89
89
  page: 1
90
90
  per_page: 1,
91
91
  (data) =>
@@ -93,9 +93,9 @@ class window.Alchemy.LinkDialog extends Alchemy.Dialog
93
93
  if page
94
94
  @initElementSelect(page.id)
95
95
  callback
96
- id: "/#{page.urlname}"
96
+ id: page.url_path
97
97
  name: page.name
98
- urlname: page.name
98
+ url_path: page.url_path
99
99
  page_id: page.id
100
100
  formatSelection: (page) ->
101
101
  page.name
@@ -0,0 +1,66 @@
1
+ Alchemy.NodeTree = {
2
+ onFinishDragging: function (evt) {
3
+ var url = Alchemy.routes.move_api_node_path(evt.item.dataset.id)
4
+ var data = {
5
+ target_parent_id: evt.to.dataset.nodeId,
6
+ new_position: evt.newIndex
7
+ };
8
+ var ajax = Alchemy.ajax('PATCH', url, data)
9
+
10
+ ajax.then(function(response) {
11
+ Alchemy.growl('Successfully moved menu item.')
12
+ Alchemy.NodeTree.displayNodeFolders()
13
+ }).catch(function() {
14
+ Alchemy.growl(error.message || error);
15
+ })
16
+ },
17
+
18
+ displayNodeFolders: function () {
19
+ document.querySelectorAll('li.menu-item').forEach(function (el) {
20
+ var leftIconArea = el.querySelector('.nodes_tree-left_images')
21
+ var list = el.querySelector('ul')
22
+ var node = { folded: el.dataset.folded === 'true', id: el.dataset.id }
23
+
24
+ if (list.children.length > 0 || node.folded ) {
25
+ leftIconArea.innerHTML = HandlebarsTemplates.node_folder({ node: node })
26
+ } else {
27
+ leftIconArea.innerHTML = '&nbsp;'
28
+ }
29
+ });
30
+ },
31
+
32
+ handleNodeFolders: function() {
33
+ Alchemy.on('click', '.nodes_tree', '.node_folder', function(evt) {
34
+ var nodeId = this.dataset.nodeId
35
+ var menu_item = this.closest('li.menu-item')
36
+ var url = Alchemy.routes.toggle_folded_api_node_path(nodeId)
37
+ var list = menu_item.querySelector('.children')
38
+ var ajax = Alchemy.ajax('PATCH', url)
39
+
40
+ ajax.then(function() {
41
+ list.classList.toggle('folded')
42
+ menu_item.dataset.folded = menu_item.dataset.folded == 'true' ? 'false' : 'true'
43
+ Alchemy.NodeTree.displayNodeFolders();
44
+ }).catch(function(error){
45
+ Alchemy.growl(error.message || error);
46
+ });
47
+ });
48
+ },
49
+
50
+ init: function() {
51
+ this.handleNodeFolders()
52
+ this.displayNodeFolders()
53
+
54
+ document.querySelectorAll('.nodes_tree ul.children').forEach(function (el) {
55
+ new Sortable(el, {
56
+ group: 'nodes',
57
+ animation: 150,
58
+ fallbackOnBody: true,
59
+ swapThreshold: 0.65,
60
+ handle: '.node_name',
61
+ invertSwap: true,
62
+ onEnd: Alchemy.NodeTree.onFinishDragging
63
+ });
64
+ });
65
+ }
66
+ }
@@ -0,0 +1,45 @@
1
+ Alchemy.on = function (eventName, baseSelector, targetSelector, callback) {
2
+ var baseNode = document.querySelector(baseSelector)
3
+ baseNode.addEventListener(eventName, function (evt) {
4
+ var targets = Array.from(baseNode.querySelectorAll(targetSelector))
5
+ var currentNode = evt.target
6
+ while (currentNode !== baseNode) {
7
+ if (targets.includes(currentNode)) {
8
+ callback.call(currentNode, evt)
9
+ return
10
+ }
11
+ currentNode = currentNode.parentElement
12
+ }
13
+ });
14
+ }
15
+
16
+ Alchemy.ajax = function(method, url, data) {
17
+ var xhr = new XMLHttpRequest()
18
+ var token = document.querySelector('meta[name="csrf-token"]').attributes.content.textContent
19
+ var promise = new Promise(function (resolve, reject) {
20
+ xhr.onload = function() {
21
+ try {
22
+ resolve({
23
+ data: JSON.parse(xhr.responseText),
24
+ status: xhr.status
25
+ })
26
+ } catch (error) {
27
+ reject(new Error(JSON.parse(xhr.responseText).error))
28
+ }
29
+ };
30
+ xhr.onerror = function() {
31
+ reject(new Error(xhr.statusText))
32
+ }
33
+ });
34
+ xhr.open(method, url);
35
+ xhr.setRequestHeader('Content-type', 'application/json; charset=utf-8');
36
+ xhr.setRequestHeader('Accept', 'application/json');
37
+ xhr.setRequestHeader('X-CSRF-Token', token)
38
+ if (data) {
39
+ xhr.send(JSON.stringify(data))
40
+ } else {
41
+ xhr.send()
42
+ }
43
+
44
+ return promise
45
+ }
@@ -1,2 +1,3 @@
1
1
  //= require alchemy/templates/spinner
2
2
  //= require alchemy/templates/page
3
+ //= require alchemy/templates/node_folder
@@ -0,0 +1,3 @@
1
+ <a class="node_folder" data-node-id="{{ node.id }}">
2
+ <i class="far fa-{{#if node.folded }}plus{{else}}minus{{/if}}-square fa-fw"></i>
3
+ </a>
@@ -4,6 +4,6 @@
4
4
  {{ page.name }}
5
5
  </span>
6
6
  <span class="page-select--page-urlname">
7
- /{{ page.urlname }}
7
+ {{ page.url_path }}
8
8
  </span>
9
9
  </div>
@@ -49,9 +49,8 @@
49
49
  border-color: $hover-border-color;
50
50
  }
51
51
 
52
- &:active, &:active:focus {
53
- border-color: $hover-border-color;
54
- box-shadow: none;
52
+ &:active, &.active {
53
+ box-shadow: inset $button-box-shadow;
55
54
  }
56
55
 
57
56
  &:focus {
@@ -76,7 +76,7 @@ $button-text-shadow: none !default;
76
76
  $button-box-shadow: 0px 1px 1px -1px #333 !default;
77
77
  $button-focus-box-shadow: 0px 1px 1px 0px $button-focus-border-color !default;
78
78
  $button-padding: 0.55em 2em !default;
79
- $small-button-padding: 0.4em 1.25em !default;
79
+ $small-button-padding: 0.4em 0.8em !default;
80
80
  $button-margin: $form-field-margin !default;
81
81
 
82
82
  $secondary-button-bg-color: transparent !default;
@@ -108,7 +108,7 @@ $form-right-width: 65% !default;
108
108
  $sitemap-line-height: 32px !default;
109
109
  $sitemap-page-background-color: rgba($white, 0.75) !default;
110
110
  $sitemap-page-hover-color: rgba($light_yellow, 0.5) !default;
111
- $sitemap-info-background-color: rgba($linked-color, 0.5) !default;
111
+ $sitemap-info-background-color: rgba($white, 0.5) !default;
112
112
  $sitemap-highlight-color: rgba(#fffba5, 0.5) !default;
113
113
 
114
114
  $main-menu-width: 150px !default;
@@ -13,14 +13,6 @@ ul.list {
13
13
  padding: 0;
14
14
  list-style-type: none;
15
15
 
16
- &#layoutpages {
17
- margin-top: 16px;
18
-
19
- li {
20
- margin-left: 8px;
21
- }
22
- }
23
-
24
16
  li {
25
17
  list-style-type: none;
26
18
  display: block;
@@ -18,7 +18,7 @@
18
18
 
19
19
  .node_page,
20
20
  .node_url {
21
- width: 200px;
21
+ width: 250px;
22
22
  max-width: 45%;
23
23
  white-space: nowrap;
24
24
  text-overflow: ellipsis;
@@ -63,6 +63,10 @@
63
63
  ul {
64
64
  margin: 0;
65
65
  padding: 0;
66
+
67
+ .folded > li {
68
+ display: none;
69
+ }
66
70
  }
67
71
 
68
72
  li {
@@ -106,6 +110,7 @@
106
110
  text-decoration: none;
107
111
  overflow: hidden;
108
112
  background-color: $sitemap-page-background-color;
113
+ cursor: move;
109
114
 
110
115
  &.without-status {
111
116
  @include border-right-radius($default-border-radius);