alchemy_cms 3.0.0.rc8 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: dcb7647a1797d45f8881a956cde924671bc30f2d
4
- data.tar.gz: 7b9dee0e4b299543fe51364f7c3be41b70e6e2e5
3
+ metadata.gz: 611a1e37fe56a17099be81544930085f61508212
4
+ data.tar.gz: cd2ec040d0c1099bd916761ff305f976b20c7908
5
5
  SHA512:
6
- metadata.gz: 3d184d7e8aac2c27eea62560fa1ff1140500ee0b59a07a6009fbcf4ec33ca2926c5a789953e7bb70bd9ed8bc0da662394bde3d8692ba9e6afacac8107fcd08a8
7
- data.tar.gz: ec05398a5321e6a0e709329aec857b6bc4b3031eb8f160a59ea39d66b0e95ac1b52c7fa0043aa4751dbc0ce4dd52bed366444ceaf18570ce5b5052e3376ea90d
6
+ metadata.gz: 7345ebd721ad3d3823c25d0ea98f768684fd8187df860bba180967060a272d7f03a08b0c7d0b68bf610d38da1a268909857f080b0bb9196be2322fd61d615f58
7
+ data.tar.gz: c957bfb8d7512694346a4213c91c7e0714365ad1593dd34ecf9252937b2767f258792f45f6b543862a143a0fa2f4d41e353bf596f2e59c7fd6dc26ec746cbb1d
data/README.md CHANGED
@@ -10,8 +10,8 @@ Alchemy is the most powerful, userfriendly and flexible Rails CMS.
10
10
 
11
11
  Read more on the [website](http://alchemy-cms.com) and in the [guidelines](http://guides.alchemy-cms.com).
12
12
 
13
- **This master branch is a development branch that can contain bugs. For productive environments you should use the [current Ruby gem version](http://rubygems.org/gems/alchemy_cms/versions/2.8.1),
14
- or the [latest stable branch (2.8-stable)](https://github.com/magiclabs/alchemy_cms/tree/2.8-stable).**
13
+ **This master branch is a development branch that can contain bugs. For productive environments you should use the [current Ruby gem version](http://rubygems.org/gems/alchemy_cms/versions/3.0.0),
14
+ or the [latest stable branch (3.0-stable)](https://github.com/magiclabs/alchemy_cms/tree/3.0-stable).**
15
15
 
16
16
  Features
17
17
  --------
@@ -99,7 +99,7 @@ With Version 3.0 we extracted the Alchemy user model [into its own gem](https://
99
99
 
100
100
  In order to get the former Alchemy user model back, add the following gem into your Gemfile:
101
101
 
102
- gem 'alchemy-devise', github: 'magiclabs/alchemy-devise', branch: 'master'
102
+ gem 'alchemy-devise', '~> 2.0'
103
103
 
104
104
  Run in terminal:
105
105
 
@@ -172,7 +172,7 @@ If you have your own Capistrano receipts, you should require the Alchemy tasks i
172
172
  # deploy.rb
173
173
  require 'alchemy/capistrano'
174
174
 
175
- If you don't use Capistrano you have to **make shure that the `uploads`, `tmp/cache/assets`, `public/assets` and `public/pictures` cache folders get shared** between deployments, otherwise you **will loose data**.
175
+ If you don't use Capistrano you have to **make sure that the `uploads`, `tmp/cache/assets`, `public/assets` and `public/pictures` cache folders get shared** between deployments, otherwise you **will loose data**.
176
176
 
177
177
  Please take a look into the `lib/alchemy/capistrano.rb` file, to see how to achieve this.
178
178
 
@@ -22,7 +22,7 @@ Gem::Specification.new do |gem|
22
22
  gem.add_runtime_dependency 'rails', '>= 4.0', '< 5.0'
23
23
  gem.add_runtime_dependency 'actionpack-page_caching', '~> 1.0.0'
24
24
  gem.add_runtime_dependency 'awesome_nested_set', '~> 3.0.0.rc.2'
25
- gem.add_runtime_dependency 'acts-as-taggable-on', '~> 3.0.0'
25
+ gem.add_runtime_dependency 'acts-as-taggable-on', '~> 3.1'
26
26
  gem.add_runtime_dependency 'cancan', '~> 1.6.10'
27
27
  gem.add_runtime_dependency 'dragonfly', '~> 1.0.1'
28
28
  gem.add_runtime_dependency 'kaminari', '~> 0.15.0'
@@ -41,7 +41,7 @@ Gem::Specification.new do |gem|
41
41
  gem.add_runtime_dependency 'spinner.rb'
42
42
  gem.add_runtime_dependency 'turbolinks', '~> 2.0'
43
43
  gem.add_runtime_dependency 'non-stupid-digest-assets', '~> 1.0.3'
44
- gem.add_runtime_dependency 'active_model_serializers', '~> 0.8.1'
44
+ gem.add_runtime_dependency 'active_model_serializers', '>= 0.8.1', '< 0.10.0'
45
45
 
46
46
  gem.add_development_dependency 'rspec-rails', '~> 2.0'
47
47
  gem.add_development_dependency 'capybara'
@@ -33,11 +33,12 @@ class window.Alchemy.Dialog
33
33
  @bind_close_events()
34
34
  window.requestAnimationFrame =>
35
35
  @dialog_container.addClass('open')
36
- unless @options.modal
37
- @dialog.draggable
38
- iframeFix: true
39
- handle: '.alchemy-dialog-title'
40
- containment: 'parent'
36
+ @overlay.addClass('open') if @overlay?
37
+ @dialog.draggable
38
+ iframeFix: true
39
+ handle: '.alchemy-dialog-title'
40
+ containment: 'parent'
41
+ @$body.addClass('prevent-scrolling')
41
42
  Alchemy.currentDialogs.push(this)
42
43
  @load()
43
44
  true
@@ -46,9 +47,12 @@ class window.Alchemy.Dialog
46
47
  close: ->
47
48
  @$document.off 'keydown'
48
49
  @dialog_container.removeClass('open')
50
+ @overlay.removeClass('open') if @overlay?
49
51
  @$document.on 'webkitTransitionEnd transitionend oTransitionEnd', =>
50
52
  @$document.off 'webkitTransitionEnd transitionend oTransitionEnd'
51
53
  @dialog_container.remove()
54
+ @overlay.remove() if @overlay?
55
+ @$body.removeClass('prevent-scrolling')
52
56
  Alchemy.currentDialogs.pop(this)
53
57
  if @options.closed?
54
58
  @options.closed()
@@ -141,10 +145,10 @@ class window.Alchemy.Dialog
141
145
  @close_button.click =>
142
146
  @close()
143
147
  false
144
- if @overlay
145
- @overlay.addClass('closable').click =>
146
- @close()
147
- false
148
+ @dialog_container.addClass('closable').click (e) =>
149
+ return true if e.target != @dialog_container.get(0)
150
+ @close()
151
+ false
148
152
  @$document.keydown (e) =>
149
153
  if e.which == 27
150
154
  @close()
@@ -165,12 +169,12 @@ class window.Alchemy.Dialog
165
169
  @dialog_header.append(@close_button)
166
170
  @dialog.append(@dialog_header)
167
171
  @dialog.append(@dialog_body)
168
- if @options.modal
169
- @overlay = $('<div class="alchemy-dialog-overlay" />')
170
- @dialog_container.append(@overlay)
171
172
  @dialog_container.append(@dialog)
172
173
  @dialog.addClass('modal') if @options.modal
173
174
  @dialog_body.addClass('padded') if @options.padding
175
+ if @options.modal
176
+ @overlay = $('<div class="alchemy-dialog-overlay" />')
177
+ @$body.append(@overlay)
174
178
  @$body.append(@dialog_container)
175
179
  @resize()
176
180
  @dialog
@@ -30,6 +30,10 @@ body {
30
30
 
31
31
  // Fix for strange element window offset
32
32
  &.pages.edit { overflow: hidden }
33
+
34
+ &.prevent-scrolling {
35
+ overflow: hidden;
36
+ }
33
37
  }
34
38
 
35
39
  h1 {
@@ -1,5 +1,6 @@
1
1
  .alchemy-dialog-container {
2
- position: absolute;
2
+ position: fixed;
3
+ overflow: auto;
3
4
  top: 0;
4
5
  left: 0;
5
6
  z-index: 100;
@@ -29,10 +30,15 @@
29
30
  position: fixed;
30
31
  top: 0;
31
32
  left: 0;
32
- z-index: 0;
33
+ z-index: 30;
33
34
  width: 100%;
34
35
  height: 100%;
35
- background-color: rgba(0, 0, 0, 0.4);
36
+ background-color: rgba(0, 0, 0, 0.0);
37
+ @include transition(background-color 200ms linear);
38
+
39
+ &.open {
40
+ background-color: rgba(0, 0, 0, 0.4);
41
+ }
36
42
 
37
43
  &.closable {
38
44
  cursor: pointer;
@@ -287,7 +287,7 @@ module Alchemy
287
287
  # A children node
288
288
  #
289
289
  def process_url(ancestors_path, item)
290
- default_urlname = (ancestors_path.blank? ? "" : "#{ancestors_path}/") + item['slug']
290
+ default_urlname = (ancestors_path.blank? ? "" : "#{ancestors_path}/") + item['slug'].to_s
291
291
 
292
292
  pair = {my_urlname: default_urlname, children_path: default_urlname}
293
293
 
@@ -161,7 +161,7 @@ nl:
161
161
  create_tree_as_new_language: "%{language} aanmaken als nieuwe boomstructuur"
162
162
  "Active Pages": "Actieve pagina's"
163
163
  "Add global page": "Nieuwe globale pagina"
164
- "Add page link": "Verweis hinzufügen"
164
+ "Add page link": "Voeg pagina link toe"
165
165
  "Adobe Website": "Adobe Website"
166
166
  "Alchemy is open software and itself uses open software and free resources:": "Alchemy is open software en maakt zelf ook gebruik van open software en gratis bronnen"
167
167
  "Alchemy is up to date": "Alchemy is up to date"
@@ -186,7 +186,7 @@ nl:
186
186
  "Edit image": "Afbeelding bewerken"
187
187
  "Edit multiple pictures": "Meerdere afbeeldingen bewerken"
188
188
  "Elements": "Elementen"
189
- "Element trashed": "Element trashed" # ToDo: translate this
189
+ "Element trashed": "Element verwijderd"
190
190
  "Error with the Flash® Uploader!": "Fout in de Flash® Uploader!"
191
191
  "Excerpt": "fragment"
192
192
  "File uploaded succesfully": "Bestand %{name} geüploadet"
@@ -196,7 +196,7 @@ nl:
196
196
  "Filter by tag": "Op tag filteren"
197
197
  "Flush page cache": "Paginacache leegmaken"
198
198
  "Flush picture cache": "Afbeeldingscache leegmaken"
199
- "Global shortcuts": "Global shortcuts" # ToDo: translate this
199
+ "Global shortcuts": "Globale snelkoppelingen"
200
200
  "Hide childpages": "Onderliggende pagina's verbergen"
201
201
  "Hide Elements": "Elementen verbergen"
202
202
  "If you have any problems using the Flash uploader you can switch to": "Bij problemen met de Flash® Uploader kunt u gebruik maken van %{link}"
@@ -207,14 +207,14 @@ nl:
207
207
  "Language successfully updated": "Taal is aangepast."
208
208
  "Language tree": "Taalboom"
209
209
  "Layout default": "Standaard layout"
210
- "Library shortcuts": "Library shortcuts" # ToDo: translate this
210
+ "Library shortcuts": "Bibliotheek snelkoppelingen"
211
211
  "Logged in as": "Aangemeld als"
212
212
  "Mandatory": "Verplichte velden"
213
213
  "Name": "Naam"
214
214
  "New": "Nieuw"
215
215
  "New Element": "Nieuw element"
216
216
  "New page": "Nieuwe pagina"
217
- "No page links for this page found": "No page links for this page found" # ToDo: translate this
217
+ "No page links for this page found": "Geen pagina links voor deze pagina gevonden"
218
218
  "New password": "Nieuw wachtwoord"
219
219
  "New Tag": "Nieuwe tag"
220
220
  "New Tag Created": "Nieuwe tag is gemaakt"
@@ -299,7 +299,7 @@ nl:
299
299
  "Your last updated pages": "Your last updated pages"
300
300
  "Your trash is empty": "De prullenbak is leeg"
301
301
  above: "er boven"
302
- add: "toevoegen"
302
+ add: "Toevoegen"
303
303
  "add new content": "Element toevoegen"
304
304
  add_image_to_element: "Afbeelding toevoegen"
305
305
  align_in_text: "Tekstuitlijning"
@@ -342,8 +342,8 @@ nl:
342
342
  create_language_tree_heading: "Nieuwe lege boomstructuur voor taal maken"
343
343
  create_page: "Nieuwe subpagina maken"
344
344
  currently_edited_by: "Deze pagina is vergrendeld door"
345
- cut_element: "Element knippen."
346
- delete_file: "Bestand van de server verwijderen."
345
+ cut_element: "Element knippen"
346
+ delete_file: "Bestand van de server verwijderen"
347
347
  delete_image: "Deze afbeelding verwijderen"
348
348
  delete_language: "Deze taal verwijderen"
349
349
  delete_page: "Deze pagina verwijderen"
@@ -357,7 +357,7 @@ nl:
357
357
  edit_file_properties: "Eigenschappen van het bestand aanpassen"
358
358
  edit_image_properties: "Eigenschappen van de afbeelding aanpassen"
359
359
  edit_language: "Taal aanpassen"
360
- edit_page: "Deze pagina aanpassen"
360
+ edit_page: "Pagina aanpassen"
361
361
  edit_page_properties: "Eigenschappen van de pagina aanpassen"
362
362
  edit_tag: 'Tag bearbeiten'
363
363
  edit_selected_pictures: "Geselecteerde afbeeldingen aanpassen"
@@ -381,23 +381,23 @@ nl:
381
381
  female: "Vrouw"
382
382
  file: "Bestand"
383
383
  file_rename_error: "Fout bij hernoemen van het bestand."
384
- files: Files # ToDo: translate this
384
+ files: "Bestanden"
385
385
  from_at: "door %{by} op %{at}"
386
386
  height: "Hoogte"
387
387
  help:
388
388
  shortcuts:
389
- "Open help window": "Open help window" # ToDo: translate this
390
- "Close current dialog": "Close current dialog" # ToDo: translate this
391
- "Open logout dialog": "Open logout dialog" # ToDo: translate this
392
- "Focus search field": "Focus search field" # ToDo: translate this
393
- "Create a new record": "Create a new record" # ToDo: translate this
394
- "Show page infos": "Show page info" # ToDo: translate this
395
- "Create new element": "Create new element" # ToDo: translate this
396
- "Edit page properties": "Edit page properties" # ToDo: translate this
397
- "Reload the preview": "Reload the preview" # ToDo: translate this
398
- "Leave the page": "Leave the page" # ToDo: translate this
399
- "Open upload form": "Open upload form" # ToDo: translate this
400
- "Select all pictures": "Select all pictures" # ToDo: translate this
389
+ "Open help window": "Open help venster"
390
+ "Close current dialog": "Sluit huidig venster"
391
+ "Open logout dialog": "Open afmeld venster"
392
+ "Focus search field": "Selecteer zoekveld"
393
+ "Create a new record": "Maak een nieuwe regel"
394
+ "Show page infos": "Laat pagina info zien"
395
+ "Create new element": "Creëer nieuw element"
396
+ "Edit page properties": "Pas pagina eigenschappen aan"
397
+ "Reload the preview": "Herlaad de voorvertoning"
398
+ "Leave the page": "Verlaat de pagina"
399
+ "Open upload form": "Open upload venster"
400
+ "Select all pictures": "Selecteer alle foto's"
401
401
  hide_element_content: "Content van dit element verbergen."
402
402
  dashboard: "Dashboard"
403
403
  image_alt_tag: "Alt-tag"
@@ -426,7 +426,7 @@ nl:
426
426
  file: "Bestand"
427
427
  internal: "Intern"
428
428
  link_title: "Linktitel"
429
- login: login # ToDo: translate this
429
+ login: "log in"
430
430
  logout: "afmelden"
431
431
  mail_to: "ontvanger"
432
432
  main_content: "inhoud"
@@ -494,7 +494,7 @@ nl:
494
494
  update:
495
495
  comma_seperated: "Komma gescheiden"
496
496
  password: "Wachtwoord"
497
- paste: paste # ToDo: translate this
497
+ paste: "plakken"
498
498
  picture_gallery_editor: 'Afbeeldingen'
499
499
  picture_library:
500
500
  filter:
@@ -507,7 +507,7 @@ nl:
507
507
  please_confirm: "Graag bevestigen"
508
508
  please_wait: "Even geduld"
509
509
  position_in_text: "tekstpositie"
510
- preview_size: "previewgrootte"
510
+ preview_size: "Voorvertoning grootte"
511
511
  preview_sizes:
512
512
  '240': '240px (kleine telefoon)'
513
513
  '320': '320px (iPhone)'
@@ -517,24 +517,24 @@ nl:
517
517
  '1280': '1280px (Desktop)'
518
518
  recently_uploaded_only: 'recent geüpload'
519
519
  "regular method": "normale Methode"
520
- remove: "verwijderen"
520
+ remove: "Verwijderen"
521
521
  rename_file: "Dit bestand hernoemen."
522
522
  rename: hernoemen
523
523
  replace: vervangen
524
524
  'Replaced Tag': "De tag '%{old_tag}' wordt door de tag '%{new_tag}' vervangen"
525
525
  resources:
526
526
  relation_select:
527
- blank: '- none -'
527
+ blank: '- geen -'
528
528
  right: "rechts"
529
529
  robot_follow: "robot mag links volgen."
530
530
  robot_index: "robot mag index volgen."
531
531
  save: "Opslaan"
532
- "save order": "Sortering opslan"
532
+ "save order": "Sortering opslaan"
533
533
  saved_link: "Link opgeslagen."
534
534
  search: "zoeken"
535
535
  search_engines: "Zoekmachines"
536
536
  select_element: "Selecteer element"
537
- seperate_tags_with_comma: "Seperate tags with comma" # ToDo: translate this
537
+ seperate_tags_with_comma: "Markeer verschillende tags met komma's ertussen"
538
538
  show_element_content: "Content van dit element weergeven."
539
539
  show_elements_from_page: "Alle elementen van deze pagina weergeven"
540
540
  show_eq: "EQ weergeven"
@@ -566,7 +566,7 @@ nl:
566
566
  visible: "zichtbaar"
567
567
  want_to_create_new_language: "Nieuwe boomstructuur aanmaken?"
568
568
  want_to_make_copy_of_existing_language: "Een boomstructuur kopieren?"
569
- "We need at least one default.": "A default language must exist." # ToDo: translate this
569
+ "We need at least one default.": "Er moet een standarad taal zijn."
570
570
  welcome_note: "Welkom %{name}"
571
571
  welcome_back_note: "Welkom terug %{name}"
572
572
  welcome_please_identify_notice: "Welkom! voer uw gegevens in."
@@ -575,10 +575,10 @@ nl:
575
575
  you_can_rename_this_tag: "U kunt deze tag hernoemen"
576
576
  zoom_image: "Afbeelding vergroten"
577
577
  "Leave Alchemy": "Alchemy verlaten"
578
- leave: "verlaten"
579
- "You are about to leave Alchemy": "You are about to leave Alchemy"
580
- "Do you want to": "Do you want to"
581
- "stay logged in": "stay logged in"
578
+ leave: "Afmelden"
579
+ "You are about to leave Alchemy": "U staat op het punt de NVM Regiosite te verlaten"
580
+ "Do you want to": "Wilt u"
581
+ "stay logged in": "ingelogd blijven"
582
582
  "or to completly": "of compleet"
583
583
  "Are you sure?": "Weet u het zeker?"
584
584
  "Create": "Aanmaken"
@@ -759,7 +759,7 @@ nl:
759
759
  page_layout:
760
760
  blank: "^Kies een paginalayout."
761
761
  urlname:
762
- too_short: "^De urlnaam van de pagina is te kort (minimaal 3 karaters)."
762
+ too_short: "^De URL-naam van de pagina is te kort (minimaal 3 karaters)."
763
763
  taken: "^URL-Naam is al gebruikt"
764
764
  exclusion: "^URL-Naam is gereserveerd"
765
765
  alchemy/picture:
@@ -872,7 +872,7 @@ nl:
872
872
  public: "Publiek"
873
873
 
874
874
  alchemy/legacy_page_url:
875
- urlname: "URL path"
875
+ urlname: "URL pad"
876
876
 
877
877
  alchemy/page:
878
878
  created_at: "Aangemaakt op"
@@ -891,7 +891,7 @@ nl:
891
891
  tag_list: Tags
892
892
  title: "Titel"
893
893
  updated_at: "Bijgewerkt op"
894
- urlname: "Urlnaam"
894
+ urlname: "URL-naam"
895
895
  visible: "zichtbaar in navigatie"
896
896
 
897
897
  alchemy/picture:
@@ -0,0 +1,14 @@
1
+ class AddTaggingsCounterCacheToTags < ActiveRecord::Migration
2
+ def self.up
3
+ add_column :tags, :taggings_count, :integer, default: 0
4
+
5
+ ActsAsTaggableOn::Tag.reset_column_information
6
+ ActsAsTaggableOn::Tag.find_each do |tag|
7
+ ActsAsTaggableOn::Tag.reset_counters(tag.id, :taggings)
8
+ end
9
+ end
10
+
11
+ def self.down
12
+ remove_column :tags, :taggings_count
13
+ end
14
+ end
@@ -0,0 +1,9 @@
1
+ class AddMissingTaggableIndex < ActiveRecord::Migration
2
+ def self.up
3
+ add_index :taggings, [:taggable_id, :taggable_type, :context]
4
+ end
5
+
6
+ def self.down
7
+ remove_index :taggings, [:taggable_id, :taggable_type, :context]
8
+ end
9
+ end
@@ -1,5 +1,5 @@
1
1
  module Alchemy
2
- VERSION = "3.0.0.rc8"
2
+ VERSION = "3.0.0"
3
3
 
4
4
  def self.version
5
5
  VERSION
@@ -176,6 +176,24 @@ module Alchemy
176
176
  end
177
177
  end
178
178
 
179
+ context 'with page having number as slug' do
180
+ let(:page_item_2) do
181
+ {
182
+ id: page_2.id,
183
+ slug: 42,
184
+ children: [page_item_3]
185
+ }
186
+ end
187
+
188
+ it "does not raise error" do
189
+ expect {
190
+ xhr :post, :order, set: set_of_pages.to_json
191
+ }.to_not raise_error(TypeError)
192
+ [page_1, page_2, page_3].map(&:reload)
193
+ expect(page_3.urlname).to eq("#{page_1.slug}/#{page_2.slug}/#{page_3.slug}")
194
+ end
195
+ end
196
+
179
197
  it "creates legacy urls" do
180
198
  xhr :post, :order, set: set_of_pages.to_json
181
199
  [page_2, page_3].map(&:reload)
@@ -0,0 +1,14 @@
1
+ class AddTaggingsCounterCacheToTags < ActiveRecord::Migration
2
+ def self.up
3
+ add_column :tags, :taggings_count, :integer, default: 0
4
+
5
+ ActsAsTaggableOn::Tag.reset_column_information
6
+ ActsAsTaggableOn::Tag.find_each do |tag|
7
+ ActsAsTaggableOn::Tag.reset_counters(tag.id, :taggings)
8
+ end
9
+ end
10
+
11
+ def self.down
12
+ remove_column :tags, :taggings_count
13
+ end
14
+ end
@@ -0,0 +1,9 @@
1
+ class AddMissingTaggableIndex < ActiveRecord::Migration
2
+ def self.up
3
+ add_index :taggings, [:taggable_id, :taggable_type, :context]
4
+ end
5
+
6
+ def self.down
7
+ remove_index :taggings, [:taggable_id, :taggable_type, :context]
8
+ end
9
+ end
@@ -11,7 +11,7 @@
11
11
  #
12
12
  # It's strongly recommended that you check this file into your version control system.
13
13
 
14
- ActiveRecord::Schema.define(version: 20140107192720) do
14
+ ActiveRecord::Schema.define(version: 20140701160225) do
15
15
 
16
16
  create_table "alchemy_attachments", force: true do |t|
17
17
  t.string "name"
@@ -304,9 +304,11 @@ ActiveRecord::Schema.define(version: 20140107192720) do
304
304
  end
305
305
 
306
306
  add_index "taggings", ["tag_id", "taggable_id", "taggable_type", "context", "tagger_id", "tagger_type"], name: "taggings_idx", unique: true
307
+ add_index "taggings", ["taggable_id", "taggable_type", "context"], name: "index_taggings_on_taggable_id_and_taggable_type_and_context"
307
308
 
308
309
  create_table "tags", force: true do |t|
309
- t.string "name"
310
+ t.string "name"
311
+ t.integer "taggings_count", default: 0
310
312
  end
311
313
 
312
314
  add_index "tags", ["name"], name: "index_tags_on_name", unique: true
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: alchemy_cms
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0.rc8
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thomas von Deyen
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2014-06-18 00:00:00.000000000 Z
15
+ date: 2014-07-03 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: rails
@@ -68,14 +68,14 @@ dependencies:
68
68
  requirements:
69
69
  - - "~>"
70
70
  - !ruby/object:Gem::Version
71
- version: 3.0.0
71
+ version: '3.1'
72
72
  type: :runtime
73
73
  prerelease: false
74
74
  version_requirements: !ruby/object:Gem::Requirement
75
75
  requirements:
76
76
  - - "~>"
77
77
  - !ruby/object:Gem::Version
78
- version: 3.0.0
78
+ version: '3.1'
79
79
  - !ruby/object:Gem::Dependency
80
80
  name: cancan
81
81
  requirement: !ruby/object:Gem::Requirement
@@ -332,16 +332,22 @@ dependencies:
332
332
  name: active_model_serializers
333
333
  requirement: !ruby/object:Gem::Requirement
334
334
  requirements:
335
- - - "~>"
335
+ - - ">="
336
336
  - !ruby/object:Gem::Version
337
337
  version: 0.8.1
338
+ - - "<"
339
+ - !ruby/object:Gem::Version
340
+ version: 0.10.0
338
341
  type: :runtime
339
342
  prerelease: false
340
343
  version_requirements: !ruby/object:Gem::Requirement
341
344
  requirements:
342
- - - "~>"
345
+ - - ">="
343
346
  - !ruby/object:Gem::Version
344
347
  version: 0.8.1
348
+ - - "<"
349
+ - !ruby/object:Gem::Version
350
+ version: 0.10.0
345
351
  - !ruby/object:Gem::Dependency
346
352
  name: rspec-rails
347
353
  requirement: !ruby/object:Gem::Requirement
@@ -803,6 +809,8 @@ files:
803
809
  - db/migrate/20130828121120_remove_do_not_index_from_alchemy_essence_richtexts.rb
804
810
  - db/migrate/20130918201742_add_published_at_to_alchemy_pages.rb
805
811
  - db/migrate/20140107192720_add_missing_unique_indices_to_tags_and_taggings.rb
812
+ - db/migrate/20140701160159_add_taggings_counter_cache_to_tags.rb
813
+ - db/migrate/20140701160225_add_missing_taggable_index.rb
806
814
  - lib/alchemy/auth_accessors.rb
807
815
  - lib/alchemy/cache_digests/template_tracker.rb
808
816
  - lib/alchemy/capistrano.rb
@@ -951,6 +959,8 @@ files:
951
959
  - spec/dummy/db/migrate/20130918201742_add_published_at_to_alchemy_pages.rb
952
960
  - spec/dummy/db/migrate/20131209225243_create_dummy_users.rb
953
961
  - spec/dummy/db/migrate/20140107192720_add_missing_unique_indices_to_tags_and_taggings.rb
962
+ - spec/dummy/db/migrate/20140701160159_add_taggings_counter_cache_to_tags.rb
963
+ - spec/dummy/db/migrate/20140701160225_add_missing_taggable_index.rb
954
964
  - spec/dummy/db/schema.rb
955
965
  - spec/dummy/lib/assets/.gitkeep
956
966
  - spec/dummy/public/404.html
@@ -1109,9 +1119,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
1109
1119
  version: 1.9.3
1110
1120
  required_rubygems_version: !ruby/object:Gem::Requirement
1111
1121
  requirements:
1112
- - - ">"
1122
+ - - ">="
1113
1123
  - !ruby/object:Gem::Version
1114
- version: 1.3.1
1124
+ version: '0'
1115
1125
  requirements:
1116
1126
  - ImageMagick (libmagick), v6.6 or greater.
1117
1127
  rubyforge_project:
@@ -1191,6 +1201,8 @@ test_files:
1191
1201
  - spec/dummy/db/migrate/20130918201742_add_published_at_to_alchemy_pages.rb
1192
1202
  - spec/dummy/db/migrate/20131209225243_create_dummy_users.rb
1193
1203
  - spec/dummy/db/migrate/20140107192720_add_missing_unique_indices_to_tags_and_taggings.rb
1204
+ - spec/dummy/db/migrate/20140701160159_add_taggings_counter_cache_to_tags.rb
1205
+ - spec/dummy/db/migrate/20140701160225_add_missing_taggable_index.rb
1194
1206
  - spec/dummy/db/schema.rb
1195
1207
  - spec/dummy/lib/assets/.gitkeep
1196
1208
  - spec/dummy/public/404.html