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 +4 -4
- data/README.md +4 -4
- data/alchemy_cms.gemspec +2 -2
- data/app/assets/javascripts/alchemy/alchemy.dialog.js.coffee +16 -12
- data/app/assets/stylesheets/alchemy/base.scss +4 -0
- data/app/assets/stylesheets/alchemy/dialogs.scss +9 -3
- data/app/controllers/alchemy/admin/pages_controller.rb +1 -1
- data/config/locales/alchemy.nl.yml +37 -37
- data/db/migrate/20140701160159_add_taggings_counter_cache_to_tags.rb +14 -0
- data/db/migrate/20140701160225_add_missing_taggable_index.rb +9 -0
- data/lib/alchemy/version.rb +1 -1
- data/spec/controllers/admin/pages_controller_spec.rb +18 -0
- data/spec/dummy/db/migrate/20140701160159_add_taggings_counter_cache_to_tags.rb +14 -0
- data/spec/dummy/db/migrate/20140701160225_add_missing_taggable_index.rb +9 -0
- data/spec/dummy/db/schema.rb +4 -2
- metadata +20 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 611a1e37fe56a17099be81544930085f61508212
|
4
|
+
data.tar.gz: cd2ec040d0c1099bd916761ff305f976b20c7908
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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/
|
14
|
-
or the [latest stable branch (
|
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',
|
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
|
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
|
|
data/alchemy_cms.gemspec
CHANGED
@@ -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.
|
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', '
|
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
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
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
|
-
|
145
|
-
@
|
146
|
-
|
147
|
-
|
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
|
@@ -1,5 +1,6 @@
|
|
1
1
|
.alchemy-dialog-container {
|
2
|
-
position:
|
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:
|
33
|
+
z-index: 30;
|
33
34
|
width: 100%;
|
34
35
|
height: 100%;
|
35
|
-
background-color: rgba(0, 0, 0, 0.
|
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": "
|
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
|
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": "
|
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": "
|
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": "
|
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: "
|
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: "
|
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:
|
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
|
390
|
-
"Close current dialog": "
|
391
|
-
"Open logout dialog": "Open
|
392
|
-
"Focus search field": "
|
393
|
-
"Create a new record": "
|
394
|
-
"Show page infos": "
|
395
|
-
"Create new element": "
|
396
|
-
"Edit page properties": "
|
397
|
-
"Reload the preview": "
|
398
|
-
"Leave the page": "
|
399
|
-
"Open upload form": "Open upload
|
400
|
-
"Select all pictures": "
|
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:
|
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:
|
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: "
|
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: "
|
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: '-
|
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
|
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: "
|
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.": "
|
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: "
|
579
|
-
"You are about to leave Alchemy": "
|
580
|
-
"Do you want to": "
|
581
|
-
"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
|
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
|
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: "
|
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
|
data/lib/alchemy/version.rb
CHANGED
@@ -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
|
data/spec/dummy/db/schema.rb
CHANGED
@@ -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:
|
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
|
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
|
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-
|
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.
|
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.
|
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:
|
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
|