alchemy_cms 3.0.0.rc8 → 3.0.0
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.
- 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
|