alchemy_cms 3.1.0.beta1 → 3.1.0.beta2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.travis.yml +4 -2
  4. data/README.md +9 -1
  5. data/alchemy_cms.gemspec +24 -13
  6. data/app/assets/javascripts/alchemy/alchemy.autocomplete.js.coffee +1 -1
  7. data/app/assets/javascripts/alchemy/alchemy.element_editors.js.coffee +1 -1
  8. data/app/assets/javascripts/alchemy/alchemy.initializer.js.coffee +9 -0
  9. data/app/assets/javascripts/alchemy/alchemy.js +4 -0
  10. data/app/assets/javascripts/alchemy/alchemy.preview.js.coffee +3 -2
  11. data/app/assets/javascripts/alchemy/alchemy.preview_window.js.coffee +2 -0
  12. data/app/assets/javascripts/alchemy/alchemy.translations.js.coffee +43 -1
  13. data/app/assets/stylesheets/alchemy/_mixins.scss +1 -2
  14. data/app/assets/stylesheets/alchemy/archive.scss +1 -1
  15. data/app/assets/stylesheets/alchemy/base.scss +18 -1
  16. data/app/assets/stylesheets/alchemy/buttons.scss +5 -0
  17. data/app/assets/stylesheets/alchemy/dialogs.scss +0 -1
  18. data/app/assets/stylesheets/alchemy/frame.scss +17 -10
  19. data/app/assets/stylesheets/alchemy/menubar.css.scss +3 -0
  20. data/app/assets/stylesheets/alchemy/tables.scss +30 -8
  21. data/app/controllers/alchemy/admin/attachments_controller.rb +9 -1
  22. data/app/controllers/alchemy/admin/essence_files_controller.rb +3 -4
  23. data/app/controllers/alchemy/pages_controller.rb +20 -2
  24. data/app/models/alchemy/content.rb +2 -1
  25. data/app/models/alchemy/element.rb +1 -1
  26. data/app/views/alchemy/admin/attachments/_files_list.html.erb +22 -18
  27. data/app/views/alchemy/admin/attachments/index.html.erb +1 -1
  28. data/app/views/alchemy/admin/languages/_table.html.erb +29 -25
  29. data/app/views/alchemy/admin/languages/index.html.erb +1 -1
  30. data/app/views/alchemy/admin/pictures/info.html.erb +3 -2
  31. data/app/views/alchemy/admin/resources/_table.html.erb +17 -13
  32. data/app/views/alchemy/admin/resources/index.html.erb +1 -1
  33. data/app/views/alchemy/admin/sites/index.html.erb +1 -1
  34. data/app/views/alchemy/admin/tags/edit.html.erb +1 -1
  35. data/app/views/alchemy/admin/tags/index.html.erb +14 -10
  36. data/app/views/alchemy/essences/_essence_file_editor.html.erb +20 -24
  37. data/app/views/alchemy/messages/contact_form_mail.es.text.erb +12 -0
  38. data/app/views/layouts/alchemy/admin.html.erb +2 -0
  39. data/bin/alchemy +58 -26
  40. data/config/locales/alchemy.en.yml +2 -1
  41. data/config/locales/alchemy.es.yml +958 -0
  42. data/config/locales/alchemy.fr.yml +1 -1
  43. data/config/locales/alchemy.ru.yml +837 -0
  44. data/config/locales/simple_form.es.yml +6 -0
  45. data/config/locales/simple_form.ru.yml +25 -0
  46. data/lib/alchemy/engine.rb +11 -0
  47. data/lib/alchemy/essence.rb +12 -1
  48. data/lib/alchemy/resources_helper.rb +3 -1
  49. data/lib/alchemy/test_support/essence_shared_examples.rb +37 -0
  50. data/lib/alchemy/test_support/factories.rb +2 -0
  51. data/lib/alchemy/version.rb +1 -1
  52. data/lib/rails/generators/alchemy/module/templates/module_config.rb.tt +4 -2
  53. data/lib/rails/generators/alchemy/scaffold/files/alchemy.es.yml +31 -0
  54. data/lib/rails/generators/alchemy/scaffold/scaffold_generator.rb +1 -0
  55. data/lib/rails/templates/alchemy.rb +2 -0
  56. data/lib/tasks/alchemy/install.rake +11 -7
  57. data/spec/controllers/admin/attachments_controller_spec.rb +21 -0
  58. data/spec/controllers/admin/essence_files_controller_spec.rb +13 -12
  59. data/spec/controllers/alchemy/api/contents_controller_spec.rb +4 -4
  60. data/spec/controllers/attachments_controller_spec.rb +18 -0
  61. data/spec/controllers/pages_controller_spec.rb +20 -3
  62. data/spec/dummy/db/migrate/20121026104128_create_events.rb +2 -0
  63. data/spec/dummy/db/schema.rb +5 -3
  64. data/spec/features/admin/resources_integration_spec.rb +5 -0
  65. data/spec/features/page_feature_spec.rb +20 -0
  66. data/spec/models/content_spec.rb +24 -2
  67. data/spec/models/element_spec.rb +11 -0
  68. data/spec/views/essences/essence_file_editor_spec.rb +61 -0
  69. data/vendor/assets/javascripts/jquery_plugins/jquery.floatThead.min.js +3 -0
  70. data/vendor/assets/javascripts/tinymce/langs/es.js +197 -0
  71. data/vendor/assets/javascripts/tinymce/langs/ru.js +197 -0
  72. metadata +53 -38
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d8ff921fd176dd5ee1ffbbb6c23b73d3a03f6f05
4
- data.tar.gz: 09825c9d513e598cab488839e88f80ef301f2c67
3
+ metadata.gz: d3f9fd30a6baa86b0499dff4647278d18e65596e
4
+ data.tar.gz: 2391c52bfedb51e86cd9221e30af4a262734e524
5
5
  SHA512:
6
- metadata.gz: 5baf66ef54d6670f7f8f05d5a55bdfef93d7725c9084d12dd84cd430851ff261190473837555fb767fd9822326582474c71b15e088a53dbf4e96e44473a3d85d
7
- data.tar.gz: e3cfe5a46b73571a77da7296df1b1d8c978b7ab6004e6f7ce9e8b9c42e1910cd0e24cac3ab81f1edc5238e7d7a492889d9e266b3cfa47f975de6daa1a5b11e1a
6
+ metadata.gz: 9f2c4f1c5e7da9afab852f2d8a73cd1e9832e4e98ceb52b2fce51f8a67dc324499f6733b1c35749d6c386040eb36b29d7816a9156ac6f55dde55bb4cfcbb63f8
7
+ data.tar.gz: 716c636e3c9770bdc2eddc5c5f25beec76e2dd2bbbb44020997dca8a5f661b250494e29e175fd158d29d595204726d3c556778829656a28c09020a6b97aa3a50
data/.gitignore CHANGED
@@ -24,3 +24,4 @@ spec/dummy/config/locales/**/*
24
24
  /.ruby-version
25
25
  /index/
26
26
  /.bundle/
27
+ .rbenv-version
@@ -1,4 +1,6 @@
1
1
  language: ruby
2
+ sudo: false
3
+ cache: bundler
2
4
  rvm:
3
5
  - 1.9.3
4
6
  - 2.0.0
@@ -6,8 +8,8 @@ rvm:
6
8
  branches:
7
9
  only:
8
10
  - master
9
- before_script: 'rake alchemy:spec:prepare'
10
- script: rspec
11
+ before_script: 'bundle exec rake alchemy:spec:prepare'
12
+ script: 'bundle exec rspec'
11
13
  env:
12
14
  - DB=mysql
13
15
  - DB=postgresql
data/README.md CHANGED
@@ -80,6 +80,14 @@ gem 'alchemy_cms', github: 'magiclabs/alchemy_cms', branch: 'master'
80
80
 
81
81
  **NOTE:** You normally want to use a stable branch, like `3.0-stable`.
82
82
 
83
+ If you want to use Russian translation and have better i18n support, you should put:
84
+
85
+ ```ruby
86
+ gem 'russian', '~> 0.6.0'
87
+ ```
88
+
89
+ or gem with similar functionality into your Gemfile.
90
+
83
91
  #### 2. Update your bundle:
84
92
 
85
93
  ```shell
@@ -275,7 +283,7 @@ $ bundle exec rake
275
283
 
276
284
  **A note about RSpec version:**
277
285
 
278
- Alchemy specs are written **in RSpec 3**. Please **do not use depricated RSpec 2.x syntax**. Thanks
286
+ Alchemy specs are written **in RSpec 3**. Please **do not use deprecated RSpec 2.x syntax**. Thanks
279
287
 
280
288
 
281
289
  Getting Help
@@ -31,18 +31,17 @@ Gem::Specification.new do |gem|
31
31
  gem.add_runtime_dependency 'simple_form', '~> 3.0'
32
32
  gem.add_runtime_dependency 'jquery-rails', '~> 3.1.0'
33
33
  gem.add_runtime_dependency 'jquery-ui-rails', '~> 5.0.0'
34
- gem.add_runtime_dependency 'sass-rails', '>= 4.0.4'
35
- gem.add_runtime_dependency 'sass', '>= 3.2.19'
34
+ gem.add_runtime_dependency 'sass-rails', '~> 4.0.5'
36
35
  gem.add_runtime_dependency 'uglifier', '>= 1.3.0'
37
36
  gem.add_runtime_dependency 'coffee-rails', '~> 4.0.0'
38
37
  gem.add_runtime_dependency 'compass-rails', '>= 1.1.2'
39
38
  gem.add_runtime_dependency 'sassy-buttons', '~> 0.2.6'
40
- gem.add_runtime_dependency 'select2-rails', '~> 3.4'
39
+ gem.add_runtime_dependency 'select2-rails', '>= 3.5.9.1', '< 4.0'
41
40
  gem.add_runtime_dependency 'tvdeyen-handles_sortable_columns', '~> 0.1.5'
42
41
  gem.add_runtime_dependency 'spinner.rb'
43
- gem.add_runtime_dependency 'turbolinks', '~> 2.0'
42
+ gem.add_runtime_dependency 'turbolinks', '~> 2.5'
44
43
  gem.add_runtime_dependency 'non-stupid-digest-assets', '~> 1.0.3'
45
- gem.add_runtime_dependency 'active_model_serializers', '>= 0.8.1', '< 0.10.0'
44
+ gem.add_runtime_dependency 'active_model_serializers', '>= 0.8.1', '< 0.9.1'
46
45
  gem.add_runtime_dependency 'request_store', '~> 1.1.0'
47
46
 
48
47
  gem.add_development_dependency 'rspec-rails', '~> 3.0'
@@ -50,18 +49,30 @@ Gem::Specification.new do |gem|
50
49
  gem.add_development_dependency 'factory_girl_rails'
51
50
 
52
51
  gem.post_install_message =<<-MSG
53
- To complete the installation of Alchemy please run:
52
+ -------------------------------------------------------------
53
+ Thank you for installing Alchemy CMS
54
+ -------------------------------------------------------------
54
55
 
55
- $ bin/rake alchemy:install
56
+ - Create a new standalone Alchemy project:
56
57
 
57
- To upgrade former Alchemy intallations please run:
58
+ $ alchemy new my_project_name
58
59
 
59
- $ bin/rake alchemy:upgrade
60
+ - Complete the installation in an existing Rails application:
60
61
 
61
- Thanks for installing Alchemy!
62
+ $ bin/rake alchemy:install
63
+
64
+ - Complete the upgrade of an existing Alchemy installation:
65
+
66
+ $ bin/rake alchemy:upgrade
67
+
68
+ and follow the onscreen instructions.
69
+
70
+ Need help? Try:
71
+
72
+ * http://stackoverflow.com/questions/tagged/alchemy-cms
73
+ * http://groups.google.com/group/alchemy-cms
74
+ * irc://irc.freenode.net#alchemy_cms
75
+ -------------------------------------------------------------
62
76
 
63
- Need help?
64
- Try https://groups.google.com/forum/#!forum/alchemy-cms
65
- or #alchemy_cms on irc.freenode.net
66
77
  MSG
67
78
  end
@@ -26,5 +26,5 @@ Alchemy.Autocomplete =
26
26
  _initializeSelection: (element, callback) ->
27
27
  data = []
28
28
  $(element.val().split(",")).each ->
29
- data.push id: this, text: this
29
+ data.push id: $.trim(this), text: this
30
30
  callback(data)
@@ -47,7 +47,7 @@ Alchemy.ElementEditors =
47
47
  self.scrollToElement this
48
48
  self.selectElementInPreview id
49
49
 
50
- # Selcts and scrolls to element with given id in the preview window.
50
+ # Selects and scrolls to element with given id in the preview window.
51
51
  #
52
52
  selectElementInPreview: (id) ->
53
53
  $frame_elements = document.getElementById("alchemy_preview_window").contentWindow.jQuery("[data-alchemy-element]")
@@ -43,6 +43,15 @@ Alchemy.Initializer = ->
43
43
  tagName = (event.target || event.srcElement).tagName
44
44
  key.isPressed('esc') || !(tagName == 'INPUT' || tagName == 'SELECT' || tagName == 'TEXTAREA')
45
45
 
46
+ # Sticky table headers
47
+ $('table.list').floatThead
48
+ useAbsolutePositioning: false,
49
+ scrollingTop: 122,
50
+ zIndex: 1
51
+
52
+ # Enabling the Turbolinks Progress Bar
53
+ Turbolinks.enableProgressBar()
54
+
46
55
  # Turbolinks DOM Ready
47
56
  $(document).on 'page:change', ->
48
57
  Alchemy.Initializer()
@@ -16,6 +16,10 @@
16
16
  //= require requestAnimationFrame
17
17
  //= require select2
18
18
  //= require select2_locale_de
19
+ //= require select2_locale_es
20
+ //= require select2_locale_fr
21
+ //= require select2_locale_nl
22
+ //= require select2_locale_ru
19
23
  //= require alchemy/alchemy.base
20
24
  //= require alchemy/alchemy.autocomplete
21
25
  //= require alchemy/alchemy.browser
@@ -63,12 +63,13 @@ Alchemy.initAlchemyPreviewMode = ($) ->
63
63
  $el = $(e.delegateTarget)
64
64
  $elements = @$previewElements
65
65
  offset = @scrollOffset
66
+ el_offset = $el.offset()
66
67
  e.preventDefault()
67
68
  $elements.removeClass("selected").css(@getStyle("reset"))
68
69
  $el.addClass("selected").css(@getStyle("selected"))
69
70
  $("html, body").animate
70
- scrollTop: $el.offset().top - offset
71
- scrollLeft: $el.offset().left - offset
71
+ scrollTop: el_offset.top - offset
72
+ scrollLeft: el_offset.left - offset
72
73
  , 400
73
74
  return
74
75
 
@@ -29,6 +29,8 @@ Alchemy.PreviewWindow =
29
29
  refresh: (callback) ->
30
30
  $iframe = $('#alchemy_preview_window')
31
31
  @_showSpinner()
32
+ # We need to be sure that no load event is binded on the preview frame.
33
+ $iframe.off('load')
32
34
  $iframe.load (e) =>
33
35
  @_hideSpinner()
34
36
  if callback
@@ -87,4 +87,46 @@ Alchemy.translations =
87
87
  'File is too small': 'Le fichier est trop petit.'
88
88
  'File type not allowed': 'Type de document non autorisé.'
89
89
  'Maximum number of files exceeded': 'Le nombre maximum de fichiers est atteint.'
90
- 'Uploaded bytes exceed file size': 'Taille de fichier maximale autorisée atteint.'
90
+ 'Uploaded bytes exceed file size': 'Taille de fichier maximale autorisée atteint.'
91
+
92
+ # Russian
93
+ ru:
94
+ allowed_chars: '%{count} знаков'
95
+ cancel: 'Отмена'
96
+ cancelled: 'Отменено'
97
+ click_to_edit: 'нажмите, чтобы редактировать'
98
+ complete: 'Завершено'
99
+ element_dirty_notice: 'Для этого элемента есть несохраненные изменения. Вы действительно хотите их сбросить?'
100
+ help: 'Помощь'
101
+ ok: 'Ок'
102
+ page_dirty_notice: 'На странице есть несохраненные изменения. Если вы продолжите, то они пропадут.'
103
+ page_found: 'Страница найдена'
104
+ pages_found: 'Страницы найдены'
105
+ url_validation_failed: 'Адрес (URL) имеет неверный формат.'
106
+ warning: 'Внимание!'
107
+ 'File is too large': 'Файл слишком большой'
108
+ 'File is too small': 'Файл слишком маленький'
109
+ 'File type not allowed': 'Этот тип файла не разрешен'
110
+ 'Maximum number of files exceeded': 'Исчерпано максимальное количество файлов.'
111
+ 'Uploaded bytes exceed file size': 'Превышен максимальный размер файла'
112
+
113
+ # Spanish
114
+ es:
115
+ allowed_chars: 'de %{count} caracteres'
116
+ cancel: 'Cancelar'
117
+ cancelled: 'Cancelado'
118
+ click_to_edit: 'Pulsar para editar'
119
+ complete: 'Completado'
120
+ element_dirty_notice: 'Este elemento tiene cambios sin guardar. ¿Realmente quieres plegarlo?'
121
+ help: 'Ayuda'
122
+ ok: 'Aceptar'
123
+ page_dirty_notice: 'Tienes cambios sin guardar en esta página. Si continúas se perderán.'
124
+ page_found: 'Página encontrada'
125
+ pages_found: 'Páginas encontradas'
126
+ url_validation_failed: 'La url no tiene un formato válido.'
127
+ warning: '¡Atención!'
128
+ 'File is too large': 'El archivo es demasiado grande'
129
+ 'File is too small': 'El archivo es demasiado pequeño'
130
+ 'File type not allowed': 'El tipo de archivo no está permitido'
131
+ 'Maximum number of files exceeded': 'Número máximo de archivos excedido.'
132
+ 'Uploaded bytes exceed file size': 'Los bytes subidos exceden el tamaño del archivo'
@@ -1,8 +1,7 @@
1
1
  @mixin default-focus-style {
2
2
  border-color: $blue;
3
- @include box-shadow(0 0 2px 2px $blue);
3
+ @include box-shadow(0 0 1px 2px $blue);
4
4
  outline: none;
5
- @include transition(all 0.25s ease-in-out);
6
5
 
7
6
  &::-moz-focus-inner {
8
7
  border: none !important;
@@ -216,7 +216,7 @@ div#library_sidebar {
216
216
  padding-top: 96px;
217
217
  padding: 84px 4*$default-padding 0 4*$default-padding;
218
218
  height: 100%;
219
- z-index: 0;
219
+ z-index: 3;
220
220
  background-color: $light-gray;
221
221
 
222
222
  h2 {
@@ -1,5 +1,11 @@
1
1
  html {
2
2
  height: 100%;
3
+
4
+ &.turbolinks-progress-bar::before {
5
+ background-color: $blue !important;
6
+ height: 3px !important;
7
+ z-index: 400001;
8
+ }
3
9
  }
4
10
 
5
11
  noscript {
@@ -37,10 +43,21 @@ body {
37
43
  }
38
44
 
39
45
  h1 {
40
- margin: 8px;
41
46
  padding: 0;
47
+ margin: 8px;
42
48
  font-weight: bold;
43
49
  font-size: $default-font-size;
50
+
51
+ &.resources-header {
52
+ position: fixed;
53
+ width: 100%;
54
+ top: 75px;
55
+ left: 74px;
56
+ z-index: 2;
57
+ margin: 0 -8px;
58
+ padding: 16px;
59
+ background-color: $light-gray;
60
+ }
44
61
  }
45
62
 
46
63
  h2 {
@@ -196,6 +196,11 @@ button.icon_button {
196
196
  border: $default-border;
197
197
  padding: 2px;
198
198
  @extend %rounded-border;
199
+
200
+ &:focus {
201
+ border: 0;
202
+ padding: 3px;
203
+ }
199
204
  }
200
205
 
201
206
  .select2-container {
@@ -48,7 +48,6 @@
48
48
  .alchemy-dialog {
49
49
  position: relative;
50
50
  max-width: 100%;
51
- max-height: 100%;
52
51
  display: inline-block;
53
52
  vertical-align: middle;
54
53
  text-align: left;
@@ -122,12 +122,12 @@ div#overlay_text_box {
122
122
  left: 0;
123
123
  text-align: center;
124
124
  width: 65px;
125
- padding-top: 4px;
126
- padding-bottom: 8px;
127
125
  background: $light-blue;
128
126
 
129
127
  a {
130
128
  display: block;
129
+ padding-top: 4px;
130
+ padding-bottom: 8px;
131
131
 
132
132
  &:hover {
133
133
  text-decoration: none;
@@ -142,7 +142,7 @@ div#overlay_text_box {
142
142
  #main_content {
143
143
  @include box-sizing(border-box);
144
144
  background-color: $light-gray;
145
- padding: 73px 8px 8px 74px;
145
+ padding: 75px 8px 8px 74px;
146
146
  z-index: 0;
147
147
  width: 100%;
148
148
  height: 100%;
@@ -154,6 +154,10 @@ div#overlay_text_box {
154
154
  &.with_tag_filter {
155
155
  padding-right: 230px;
156
156
  }
157
+
158
+ &.resources-table-wrapper {
159
+ padding-top: 47px;
160
+ }
157
161
  }
158
162
 
159
163
  div#user_info {
@@ -197,20 +201,22 @@ div#user_info {
197
201
  text-shadow: 0px 1px 1px #FFFFFF;
198
202
  @extend .disable-user-select;
199
203
  cursor: default;
200
- line-height: 22px;
204
+ line-height: 27px;
201
205
  float: left;
202
206
  @extend .top-rounded-border;
203
207
  border: $default-border;
204
208
  border-bottom-style: none;
205
209
  height: 24px;
206
210
  margin-right: 1px;
211
+
212
+ .page_name {
213
+ position: relative;
214
+ bottom: 2px;
215
+ }
207
216
  }
208
217
 
209
218
  .page_name {
210
- position: relative;
211
219
  margin-right: $default-margin;
212
- line-height: 27px;
213
- bottom: 2px;
214
220
  }
215
221
 
216
222
  .page_language {
@@ -228,7 +234,6 @@ div#user_info {
228
234
 
229
235
  .subnavi_tab {
230
236
  float: left;
231
- padding: 0px 8px;
232
237
  line-height: 21px;
233
238
  height: 23px;
234
239
  text-shadow: #fff 0 0px 4px;
@@ -257,9 +262,7 @@ div#user_info {
257
262
  }
258
263
 
259
264
  &.active {
260
- float: left;
261
265
  position: relative;
262
- padding: 0px 8px;
263
266
  height: 24px;
264
267
  color: $text-color;
265
268
  background-color: $medium-gray;
@@ -268,6 +271,10 @@ div#user_info {
268
271
  cursor: default;
269
272
  z-index: 10;
270
273
  }
274
+
275
+ > a {
276
+ padding: 0px 8px;
277
+ }
271
278
  }
272
279
  }
273
280
 
@@ -70,8 +70,11 @@
70
70
  line-height: 14px;
71
71
  font-weight: normal;
72
72
  text-decoration: none !important;
73
+ text-transform: none;
73
74
  color: $text-color !important;
74
75
  font-family: $default-font-face;
76
+
77
+ &:after { display: none }
75
78
  }
76
79
  }
77
80
  }
@@ -21,36 +21,58 @@ table {
21
21
  border-left: 1px solid $medium-gray
22
22
  }
23
23
 
24
+ .list th {
25
+ position: relative;
26
+
27
+ &.icon {
28
+ border-bottom: 1px solid $medium-gray;
29
+ }
30
+ }
31
+
32
+ .floatThead-container {
33
+ background: $light-gray;
34
+ overflow: visible !important; // the javascript author thought that, but ....
35
+
36
+ &:after {
37
+ position: absolute;
38
+ bottom: -4px;
39
+ left: 0;
40
+ width: 100%;
41
+ height: 4px;
42
+ @include background(linear-gradient(top, $light-gray 0%, rgba($light-gray, .0) 100%));
43
+ content: '';
44
+ }
45
+ }
46
+
24
47
  th {
25
48
  white-space: nowrap;
26
49
  text-align: left;
27
50
  vertical-align: top;
28
- @include background(linear-gradient(top, lighten($light-gray, 10) 0%, $light-gray 30%, $light-gray 90%, darken($light-gray, 10) 100%));
29
- border-top: 1px solid $medium-gray;
30
- color: #666;
51
+ background: $light-gray;
52
+ border-bottom: 1px solid $medium-gray;
31
53
  font-weight: normal;
54
+ text-transform: uppercase;
32
55
 
33
56
  i {
34
57
  font-style: normal;
35
58
  position: absolute;
36
59
  right: 2px;
37
60
  top: 4px;
38
- color: #999;
39
- @include text-shadow(1px 1px 0px #fff);
61
+ @include text-shadow(1px 1px 1px #fff);
40
62
  }
41
63
 
42
64
  a {
43
- @include text-shadow(1px 1px 0px #fff);
44
65
 
45
66
  &.sortable {
46
67
  display: block;
47
68
  margin: -4px -8px;
48
69
  padding: 4px 18px 4px 8px;
70
+ @include text-shadow(1px 1px 1px #fff);
49
71
  }
50
72
 
51
73
  &.sorted {
52
74
  position: relative;
53
- @include background(linear-gradient(top, lighten($light-gray, 10) 0%, $very-light-blue 50%, $light-gray 90%, darken($light-gray, 10) 100%));
75
+ background: $medium-gray;
54
76
  }
55
77
  }
56
78
  }
@@ -91,7 +113,7 @@ td.heading {
91
113
  .list td.icon, .list th.icon {
92
114
  background-color: $light-gray;
93
115
  background-image: none;
94
- border: 0 none;
116
+ border-left: 0 none;
95
117
  padding: 0;
96
118
  border-right: 1px solid $medium-gray;
97
119
  text-align: center;