scrivito_sdk 0.60.0.rc1 → 0.60.0.rc2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.yardopts +1 -0
- data/app/controllers/scrivito/objs_controller.rb +21 -21
- data/app/models/scrivito/content_widget.rb +2 -0
- data/app/views/scrivito/fallback_thumbnail.html.erb +3 -0
- data/config/ca-bundle.crt +219 -24
- data/lib/scrivito/attribute_content.rb +57 -16
- data/lib/scrivito/attribute_definition_migrator.rb +80 -0
- data/lib/scrivito/attribute_deserializer.rb +12 -3
- data/lib/scrivito/basic_obj.rb +13 -2
- data/lib/scrivito/basic_widget.rb +1 -2
- data/lib/scrivito/cache/file_store.rb +5 -0
- data/lib/scrivito/cms_field_tag.rb +2 -1
- data/lib/scrivito/migrations/migration.rb +3 -51
- data/lib/scrivito/string_tagging.rb +1 -1
- data/lib/tasks/migration.rake +0 -5
- metadata +3 -5
- data/app/views/scrivito/widget_thumbnail.html.erb +0 -9
- data/lib/assets/images/180x120.gif +0 -0
- data/lib/scrivito/migrations/installer.rb +0 -45
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 712c28035633619477bfc444b11996dab6d76fc6
|
4
|
+
data.tar.gz: 32d66f14ac294339b7303c4283fd81b0a4d7d0b7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f09d10a74b5949b591ce41cdd6469c2c95da7413156d33dc133e8bac84e931dc9d7d75345c0b9e76987c6f1741e6717629462b752e97b853e29d95a34f7af48f
|
7
|
+
data.tar.gz: 19d63941f41c476ceb5e5e8e914cc8b6b2186e64bf5053e7731bfcc6277e304fceb624692f89337907701dc56d7a0090736f9caf67ad55384d66978d3048d9c7
|
data/.yardopts
CHANGED
@@ -98,27 +98,15 @@ module Scrivito
|
|
98
98
|
|
99
99
|
def page_class_selection
|
100
100
|
@page_class_markup = valid_page_classes.map do |page_class_name|
|
101
|
-
|
102
|
-
markup = render_to_string("#{page_class_name.underscore}/thumbnail", formats: :html)
|
103
|
-
{name: page_class_name, markup: markup}
|
104
|
-
rescue ActionView::MissingTemplate
|
105
|
-
end
|
101
|
+
build_selection_option(page_class_name)
|
106
102
|
end
|
107
|
-
@page_class_markup.compact!
|
108
103
|
end
|
109
104
|
|
110
105
|
def widget_class_selection
|
111
106
|
load_obj
|
112
107
|
|
113
108
|
@widgets_classes = valid_widget_classes.map do |widget_class_name|
|
114
|
-
|
115
|
-
markup = begin
|
116
|
-
render_to_string(template_path, layout: false, formats: :html)
|
117
|
-
rescue ActionView::MissingTemplate
|
118
|
-
render_to_string('scrivito/widget_thumbnail', layout: false, formats: :html,
|
119
|
-
locals: {widget_class_name: widget_class_name, template_path: template_path})
|
120
|
-
end
|
121
|
-
{name: widget_class_name, markup: markup}
|
109
|
+
build_selection_option(widget_class_name)
|
122
110
|
end
|
123
111
|
end
|
124
112
|
|
@@ -188,21 +176,33 @@ module Scrivito
|
|
188
176
|
name ? Configuration.obj_formats[name] : proc { |obj, _| obj.id }
|
189
177
|
end
|
190
178
|
|
179
|
+
def build_selection_option(class_name)
|
180
|
+
template_path = "#{class_name.underscore}/thumbnail"
|
181
|
+
markup = begin
|
182
|
+
render_to_string(template_path, layout: false, formats: :html)
|
183
|
+
rescue ActionView::MissingTemplate
|
184
|
+
render_to_string('scrivito/fallback_thumbnail', layout: false, formats: :html,
|
185
|
+
locals: {class_name: class_name, template_path: template_path})
|
186
|
+
end
|
187
|
+
{name: class_name, markup: markup}
|
188
|
+
end
|
189
|
+
|
191
190
|
def valid_page_classes
|
192
|
-
(page_classes_from_obj
|
191
|
+
without_hidden_classes(page_classes_from_obj).map(&:to_s)
|
193
192
|
end
|
194
193
|
|
195
194
|
def page_classes_from_obj
|
196
|
-
Obj.
|
195
|
+
Obj.valid_page_ruby_classes_beneath(params[:parent_path])
|
197
196
|
end
|
198
197
|
|
199
|
-
def
|
200
|
-
|
198
|
+
def valid_widget_classes
|
199
|
+
widget_classes = current_widget_or_obj.valid_widget_ruby_classes_for(params[:field_name])
|
200
|
+
|
201
|
+
without_hidden_classes(widget_classes).map(&:to_s)
|
201
202
|
end
|
202
203
|
|
203
|
-
def
|
204
|
-
|
205
|
-
['Scrivito::ContentWidget']
|
204
|
+
def without_hidden_classes(obj_types)
|
205
|
+
obj_types.reject(&:hide_from_editor?)
|
206
206
|
end
|
207
207
|
|
208
208
|
def current_widget_or_obj
|
data/config/ca-bundle.crt
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
##
|
2
2
|
## Bundle of CA Root Certificates
|
3
3
|
##
|
4
|
-
## Certificate data from Mozilla as of:
|
4
|
+
## Certificate data from Mozilla as of: Mon Apr 27 14:17:45 2015
|
5
5
|
##
|
6
6
|
## This is a bundle of X.509 certificates of public Certificate Authorities
|
7
7
|
## (CA). These were automatically extracted from Mozilla's root certificates
|
@@ -14,7 +14,7 @@
|
|
14
14
|
## Just configure this file as the SSLCACertificateFile.
|
15
15
|
##
|
16
16
|
## Conversion done with mk-ca-bundle.pl version 1.25.
|
17
|
-
## SHA1:
|
17
|
+
## SHA1: ed3c0bbfb7912bcc00cd2033b0cb85c98d10559c
|
18
18
|
##
|
19
19
|
|
20
20
|
|
@@ -2790,28 +2790,6 @@ yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5tHMN1Rq41Bab2XD0h7lbwyYIi
|
|
2790
2790
|
LXpUq3DDfSJlgnCW
|
2791
2791
|
-----END CERTIFICATE-----
|
2792
2792
|
|
2793
|
-
E-Guven Kok Elektronik Sertifika Hizmet Saglayicisi
|
2794
|
-
===================================================
|
2795
|
-
-----BEGIN CERTIFICATE-----
|
2796
|
-
MIIDtjCCAp6gAwIBAgIQRJmNPMADJ72cdpW56tustTANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQG
|
2797
|
-
EwJUUjEoMCYGA1UEChMfRWxla3Ryb25payBCaWxnaSBHdXZlbmxpZ2kgQS5TLjE8MDoGA1UEAxMz
|
2798
|
-
ZS1HdXZlbiBLb2sgRWxla3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhZ2xheWljaXNpMB4XDTA3
|
2799
|
-
MDEwNDExMzI0OFoXDTE3MDEwNDExMzI0OFowdTELMAkGA1UEBhMCVFIxKDAmBgNVBAoTH0VsZWt0
|
2800
|
-
cm9uaWsgQmlsZ2kgR3V2ZW5saWdpIEEuUy4xPDA6BgNVBAMTM2UtR3V2ZW4gS29rIEVsZWt0cm9u
|
2801
|
-
aWsgU2VydGlmaWthIEhpem1ldCBTYWdsYXlpY2lzaTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
|
2802
|
-
AQoCggEBAMMSIJ6wXgBljU5Gu4Bc6SwGl9XzcslwuedLZYDBS75+PNdUMZTe1RK6UxYC6lhj71vY
|
2803
|
-
8+0qGqpxSKPcEC1fX+tcS5yWCEIlKBHMilpiAVDV6wlTL/jDj/6z/P2douNffb7tC+Bg62nsM+3Y
|
2804
|
-
jfsSSYMAyYuXjDtzKjKzEve5TfL0TW3H5tYmNwjy2f1rXKPlSFxYvEK+A1qBuhw1DADT9SN+cTAI
|
2805
|
-
JjjcJRFHLfO6IxClv7wC90Nex/6wN1CZew+TzuZDLMN+DfIcQ2Zgy2ExR4ejT669VmxMvLz4Bcpk
|
2806
|
-
9Ok0oSy1c+HCPujIyTQlCFzz7abHlJ+tiEMl1+E5YP6sOVkCAwEAAaNCMEAwDgYDVR0PAQH/BAQD
|
2807
|
-
AgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFJ/uRLOU1fqRTy7ZVZoEVtstxNulMA0GCSqG
|
2808
|
-
SIb3DQEBBQUAA4IBAQB/X7lTW2M9dTLn+sR0GstG30ZpHFLPqk/CaOv/gKlR6D1id4k9CnU58W5d
|
2809
|
-
F4dvaAXBlGzZXd/aslnLpRCKysw5zZ/rTt5S/wzw9JKp8mxTq5vSR6AfdPebmvEvFZ96ZDAYBzwq
|
2810
|
-
D2fK/A+JYZ1lpTzlvBNbCNvj/+27BrtqBrF6T2XGgv0enIu1De5Iu7i9qgi0+6N8y5/NkHZchpZ4
|
2811
|
-
Vwpm+Vganf2XKWDeEaaQHBkc7gGWIjQ0LpH5t8Qn0Xvmv/uARFoW5evg1Ao4vOSR49XrXMGs3xtq
|
2812
|
-
fJ7lddK2l4fbzIcrQzqECK+rPNv3PGYxhrCdU3nt+CPeQuMtgvEP5fqX
|
2813
|
-
-----END CERTIFICATE-----
|
2814
|
-
|
2815
2793
|
GlobalSign Root CA - R3
|
2816
2794
|
=======================
|
2817
2795
|
-----BEGIN CERTIFICATE-----
|
@@ -4482,3 +4460,220 @@ jP8DOr3Wnfrn3Ja5GmQ+xP3ZCrZlnrqlqFj8OyLwolfuildHnHfHJeGsNAVN84J+QSO6tFfz58YB
|
|
4482
4460
|
ZddNiZkcaU1eePbrcnE9ssSVAZ9dDLcvJaZceUHvnsRnPKGdf3E60JWX7HhCdJhuvj5oTFc8qJNB
|
4483
4461
|
hwvkua+R+1BMDLrAJCfRFdtlSCEKL9fcfqDMZX55
|
4484
4462
|
-----END CERTIFICATE-----
|
4463
|
+
|
4464
|
+
Staat der Nederlanden Root CA - G3
|
4465
|
+
==================================
|
4466
|
+
-----BEGIN CERTIFICATE-----
|
4467
|
+
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
|
4492
|
+
-----END CERTIFICATE-----
|
4493
|
+
|
4494
|
+
Staat der Nederlanden EV Root CA
|
4495
|
+
================================
|
4496
|
+
-----BEGIN CERTIFICATE-----
|
4497
|
+
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
|
4521
|
+
eUN51q1veieQA6TqJIc/2b3Z6fJfUEkc7uzXLg==
|
4522
|
+
-----END CERTIFICATE-----
|
4523
|
+
|
4524
|
+
IdenTrust Commercial Root CA 1
|
4525
|
+
==============================
|
4526
|
+
-----BEGIN CERTIFICATE-----
|
4527
|
+
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
|
4551
|
+
cGzM7vRX+Bi6hG6H
|
4552
|
+
-----END CERTIFICATE-----
|
4553
|
+
|
4554
|
+
IdenTrust Public Sector Root CA 1
|
4555
|
+
=================================
|
4556
|
+
-----BEGIN CERTIFICATE-----
|
4557
|
+
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
|
4581
|
+
3Wl9af0AVqW3rLatt8o+Ae+c
|
4582
|
+
-----END CERTIFICATE-----
|
4583
|
+
|
4584
|
+
S-TRUST Universal Root CA
|
4585
|
+
=========================
|
4586
|
+
-----BEGIN CERTIFICATE-----
|
4587
|
+
MIID2DCCAsCgAwIBAgIQYFbFSyNAW2TU7SXa2dYeHjANBgkqhkiG9w0BAQsFADCBhTELMAkGA1UE
|
4588
|
+
BhMCREUxKTAnBgNVBAoTIERldXRzY2hlciBTcGFya2Fzc2VuIFZlcmxhZyBHbWJIMScwJQYDVQQL
|
4589
|
+
Ex5TLVRSVVNUIENlcnRpZmljYXRpb24gU2VydmljZXMxIjAgBgNVBAMTGVMtVFJVU1QgVW5pdmVy
|
4590
|
+
c2FsIFJvb3QgQ0EwHhcNMTMxMDIyMDAwMDAwWhcNMzgxMDIxMjM1OTU5WjCBhTELMAkGA1UEBhMC
|
4591
|
+
REUxKTAnBgNVBAoTIERldXRzY2hlciBTcGFya2Fzc2VuIFZlcmxhZyBHbWJIMScwJQYDVQQLEx5T
|
4592
|
+
LVRSVVNUIENlcnRpZmljYXRpb24gU2VydmljZXMxIjAgBgNVBAMTGVMtVFJVU1QgVW5pdmVyc2Fs
|
4593
|
+
IFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCo4wvfETeFgpq1bGZ8YT/A
|
4594
|
+
RxodRuOwVWTluII5KAd+F//0m4rwkYHqOD8heGxI7GsvotOKcrKn19nqf7TASWswJYmM67fVQGGY
|
4595
|
+
4tw8IJLNZUpynxqOjPolFb/zIYMoDYuvWRGCQ1ybTSVRf1gYY2A7s7WKi1hjN0hIkETCQN1d90Np
|
4596
|
+
KZhcEmVeq5CSS2bf1XUSU1QYpt6K1rtXAzlZmRgFDPn9FcaQZEYXgtfCSkE9/QC+V3IYlHcbU1qJ
|
4597
|
+
AfYzcg6TOtzoHv0FBda8c+CI3KtP7LUYhk95hA5IKmYq3TLIeGXIC51YAQVx7YH1aBduyw20S9ih
|
4598
|
+
7K446xxYL6FlAzQvAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G
|
4599
|
+
A1UdDgQWBBSafdfr639UmEUptCCrbQuWIxmkwjANBgkqhkiG9w0BAQsFAAOCAQEATpYS2353XpIn
|
4600
|
+
niEXGIJ22D+8pQkEZoiJrdtVszNqxmXEj03zMjbceQSWqXcy0Zf1GGuMuu3OEdBEx5LxtESO7YhS
|
4601
|
+
SJ7V/Vn4ox5R+wFS5V/let2qJE8ii912RvaloA812MoPmLkwXSBvwoEevb3A/hXTOCoJk5gnG5N7
|
4602
|
+
0Cs0XmilFU/RUsOgyqCDRR319bdZc11ZAY+qwkcvFHHVKeMQtUeTJcwjKdq3ctiR1OwbSIoi5MEq
|
4603
|
+
9zpok59FGW5Dt8z+uJGaYRo2aWNkkijzb2GShROfyQcsi1fc65551cLeCNVUsldOKjKNoeI60RAg
|
4604
|
+
Ijl9NEVvcTvDHfz/sk+o4vYwHg==
|
4605
|
+
-----END CERTIFICATE-----
|
4606
|
+
|
4607
|
+
Entrust Root Certification Authority - G2
|
4608
|
+
=========================================
|
4609
|
+
-----BEGIN CERTIFICATE-----
|
4610
|
+
MIIEPjCCAyagAwIBAgIESlOMKDANBgkqhkiG9w0BAQsFADCBvjELMAkGA1UEBhMCVVMxFjAUBgNV
|
4611
|
+
BAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVy
|
4612
|
+
bXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ug
|
4613
|
+
b25seTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIw
|
4614
|
+
HhcNMDkwNzA3MTcyNTU0WhcNMzAxMjA3MTc1NTU0WjCBvjELMAkGA1UEBhMCVVMxFjAUBgNVBAoT
|
4615
|
+
DUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVybXMx
|
4616
|
+
OTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25s
|
4617
|
+
eTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIwggEi
|
4618
|
+
MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6hLZy254Ma+KZ6TABp3bqMriVQRrJ2mFOWHLP
|
4619
|
+
/vaCeb9zYQYKpSfYs1/TRU4cctZOMvJyig/3gxnQaoCAAEUesMfnmr8SVycco2gvCoe9amsOXmXz
|
4620
|
+
HHfV1IWNcCG0szLni6LVhjkCsbjSR87kyUnEO6fe+1R9V77w6G7CebI6C1XiUJgWMhNcL3hWwcKU
|
4621
|
+
s/Ja5CeanyTXxuzQmyWC48zCxEXFjJd6BmsqEZ+pCm5IO2/b1BEZQvePB7/1U1+cPvQXLOZprE4y
|
4622
|
+
TGJ36rfo5bs0vBmLrpxR57d+tVOxMyLlbc9wPBr64ptntoP0jaWvYkxN4FisZDQSA/i2jZRjJKRx
|
4623
|
+
AgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqciZ6
|
4624
|
+
0B7vfec7aVHUbI2fkBJmqzANBgkqhkiG9w0BAQsFAAOCAQEAeZ8dlsa2eT8ijYfThwMEYGprmi5Z
|
4625
|
+
iXMRrEPR9RP/jTkrwPK9T3CMqS/qF8QLVJ7UG5aYMzyorWKiAHarWWluBh1+xLlEjZivEtRh2woZ
|
4626
|
+
Rkfz6/djwUAFQKXSt/S1mja/qYh2iARVBCuch38aNzx+LaUa2NSJXsq9rD1s2G2v1fN2D807iDgi
|
4627
|
+
nWyTmsQ9v4IbZT+mD12q/OWyFcq1rca8PdCE6OoGcrBNOTJ4vz4RnAuknZoh8/CbCzB428Hch0P+
|
4628
|
+
vGOaysXCHMnHjf87ElgI5rY97HosTvuDls4MPGmHVHOkc8KT/1EQrBVUAdj8BbGJoX90g5pJ19xO
|
4629
|
+
e4pIb4tF9g==
|
4630
|
+
-----END CERTIFICATE-----
|
4631
|
+
|
4632
|
+
Entrust Root Certification Authority - EC1
|
4633
|
+
==========================================
|
4634
|
+
-----BEGIN CERTIFICATE-----
|
4635
|
+
MIIC+TCCAoCgAwIBAgINAKaLeSkAAAAAUNCR+TAKBggqhkjOPQQDAzCBvzELMAkGA1UEBhMCVVMx
|
4636
|
+
FjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVn
|
4637
|
+
YWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDEyIEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXpl
|
4638
|
+
ZCB1c2Ugb25seTEzMDEGA1UEAxMqRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5
|
4639
|
+
IC0gRUMxMB4XDTEyMTIxODE1MjUzNloXDTM3MTIxODE1NTUzNlowgb8xCzAJBgNVBAYTAlVTMRYw
|
4640
|
+
FAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0L2xlZ2Fs
|
4641
|
+
LXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxMiBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhvcml6ZWQg
|
4642
|
+
dXNlIG9ubHkxMzAxBgNVBAMTKkVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAt
|
4643
|
+
IEVDMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABIQTydC6bUF74mzQ61VfZgIaJPRbiWlH47jCffHy
|
4644
|
+
AsWfoPZb1YsGGYZPUxBtByQnoaD41UcZYUx9ypMn6nQM72+WCf5j7HBdNq1nd67JnXxVRDqiY1Ef
|
4645
|
+
9eNi1KlHBz7MIKNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE
|
4646
|
+
FLdj5xrdjekIplWDpOBqUEFlEUJJMAoGCCqGSM49BAMDA2cAMGQCMGF52OVCR98crlOZF7ZvHH3h
|
4647
|
+
vxGU0QOIdeSNiaSKd0bebWHvAvX7td/M/k7//qnmpwIwW5nXhTcGtXsI/esni0qU+eH6p44mCOh8
|
4648
|
+
kmhtc9hvJqwhAriZtyZBWyVgrtBIGu4G
|
4649
|
+
-----END CERTIFICATE-----
|
4650
|
+
|
4651
|
+
CFCA EV ROOT
|
4652
|
+
============
|
4653
|
+
-----BEGIN CERTIFICATE-----
|
4654
|
+
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
|
4679
|
+
-----END CERTIFICATE-----
|
@@ -25,6 +25,7 @@ module AttributeContent
|
|
25
25
|
%w[html string],
|
26
26
|
%w[multienum stringlist],
|
27
27
|
%w[string html],
|
28
|
+
%w[string text],
|
28
29
|
%w[widgetlist widget],
|
29
30
|
]
|
30
31
|
|
@@ -43,8 +44,6 @@ module AttributeContent
|
|
43
44
|
'widgetlist' => [],
|
44
45
|
}
|
45
46
|
|
46
|
-
extend ActiveSupport::Concern
|
47
|
-
|
48
47
|
delegate :attribute_definitions, to: :class
|
49
48
|
|
50
49
|
def has_attribute?(attribute_name)
|
@@ -52,7 +51,8 @@ module AttributeContent
|
|
52
51
|
end
|
53
52
|
|
54
53
|
def has_custom_attribute?(attribute_name)
|
55
|
-
if revision.workspace.uses_obj_classes && attribute_definitions.blank?
|
54
|
+
if revision.workspace.uses_obj_classes && attribute_definitions.blank? &&
|
55
|
+
!self.class.special_class?
|
56
56
|
Scrivito.raise_obj_class_deprecated_error
|
57
57
|
end
|
58
58
|
!!attribute_definitions[attribute_name]
|
@@ -108,15 +108,18 @@ module AttributeContent
|
|
108
108
|
def valid_widget_classes_for(field_name)
|
109
109
|
end
|
110
110
|
|
111
|
-
def
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
111
|
+
def valid_widget_ruby_classes_for(field)
|
112
|
+
computed_classes = valid_widget_classes_for(field)
|
113
|
+
|
114
|
+
return Scrivito.models.widgets.to_a unless computed_classes
|
115
|
+
|
116
|
+
type_computer = Widget.type_computer
|
117
|
+
ruby_classes = self.class.convert_to_obj_classes(computed_classes, type_computer) do |name|
|
118
|
+
Rails.logger.warn("Invalid widget class #{name} returned by #valid_widget_classes_for.")
|
116
119
|
end
|
117
|
-
class_names
|
118
|
-
end
|
119
120
|
|
121
|
+
ruby_classes.select { |ruby_class| ruby_class.valid_inside_container?(self.class) }
|
122
|
+
end
|
120
123
|
|
121
124
|
def modification_for_attribute(attribute_name, revision=Workspace.current.base_revision)
|
122
125
|
return Modification::UNMODIFIED unless revision
|
@@ -174,8 +177,9 @@ module AttributeContent
|
|
174
177
|
def find_attribute_containing_widget(widget_id)
|
175
178
|
attribute_definitions.each do |attribute_definition|
|
176
179
|
if attribute_definition.widgetlist?
|
177
|
-
|
178
|
-
|
180
|
+
widgetlist_name = attribute_definition.name
|
181
|
+
widgetlist_value = data_from_cms.value_of(widgetlist_name)
|
182
|
+
return widgetlist_name if widgetlist_value && widgetlist_value.include?(widget_id)
|
179
183
|
end
|
180
184
|
end
|
181
185
|
nil
|
@@ -404,6 +408,47 @@ module AttributeContent
|
|
404
408
|
AttributeDefinitionCollection.new(all_attribute_definitions)
|
405
409
|
end
|
406
410
|
|
411
|
+
# @api public
|
412
|
+
#
|
413
|
+
# This method disables the creation of +Objs+ or +Widgets+ of the given type using the UI.
|
414
|
+
# It does not prevent adding these objects programatically.
|
415
|
+
#
|
416
|
+
# By default +hide_from_editor+ is +false+.
|
417
|
+
#
|
418
|
+
# @example Hiding error pages
|
419
|
+
# class ErrorPage < Obj
|
420
|
+
# hide_from_editor
|
421
|
+
# end
|
422
|
+
#
|
423
|
+
# @example Hiding admin widgets
|
424
|
+
# class AdminWidget < Widget
|
425
|
+
# hide_from_editor
|
426
|
+
# end
|
427
|
+
def hide_from_editor
|
428
|
+
@hide_from_editor = true
|
429
|
+
end
|
430
|
+
|
431
|
+
def hide_from_editor?
|
432
|
+
!!@hide_from_editor
|
433
|
+
end
|
434
|
+
|
435
|
+
def special_class?
|
436
|
+
type_computer.special_class?(self)
|
437
|
+
end
|
438
|
+
|
439
|
+
def convert_to_obj_classes(class_names, type_computer)
|
440
|
+
class_names.inject([]) do |classes, class_name|
|
441
|
+
widget_class = type_computer.compute_type_without_fallback(class_name.to_s)
|
442
|
+
|
443
|
+
if widget_class
|
444
|
+
classes << widget_class
|
445
|
+
else
|
446
|
+
yield class_name
|
447
|
+
end
|
448
|
+
classes
|
449
|
+
end
|
450
|
+
end
|
451
|
+
|
407
452
|
protected
|
408
453
|
|
409
454
|
def assert_valid_attribute_name(name)
|
@@ -431,10 +476,6 @@ module AttributeContent
|
|
431
476
|
|
432
477
|
private
|
433
478
|
|
434
|
-
def special_class?
|
435
|
-
type_computer.special_class?(self)
|
436
|
-
end
|
437
|
-
|
438
479
|
def prepare_obj_class_attribute(attributes)
|
439
480
|
if obj_class = attributes['_obj_class']
|
440
481
|
assert_valid_obj_class(obj_class)
|
@@ -17,6 +17,7 @@ class AttributeDefinitionMigrator
|
|
17
17
|
Dir[Rails.root + 'app/models/**/*.rb'].each do |model_path|
|
18
18
|
new(model_path).migrate
|
19
19
|
end
|
20
|
+
check_abandoned_obj_classes
|
20
21
|
end
|
21
22
|
|
22
23
|
def migrate
|
@@ -26,6 +27,8 @@ class AttributeDefinitionMigrator
|
|
26
27
|
if obj_class
|
27
28
|
say_status :migrating, relative_path
|
28
29
|
inject_attribute_definitions
|
30
|
+
inject_hide_from_editor if hidden_from_editor?
|
31
|
+
check_model_name
|
29
32
|
else
|
30
33
|
with_padding do
|
31
34
|
say %{[warning] Model "#{model_class}" has no corresponding ObjClass in published workspace.
|
@@ -56,10 +59,22 @@ class AttributeDefinitionMigrator
|
|
56
59
|
model_class.ancestors.include?(BasicWidget) && model_class != ::Widget
|
57
60
|
end
|
58
61
|
|
62
|
+
def inject_hide_from_editor
|
63
|
+
inject_into_class(path, model_class, " hide_from_editor\n\n")
|
64
|
+
end
|
65
|
+
|
59
66
|
def inject_attribute_definitions
|
60
67
|
inject_into_class(path, model_class, "#{attribute_definitions.join}\n", verbose: false)
|
61
68
|
end
|
62
69
|
|
70
|
+
def hidden_from_editor?
|
71
|
+
!obj_class.active? || (page_model? && !template_exists?)
|
72
|
+
end
|
73
|
+
|
74
|
+
def template_exists?
|
75
|
+
lookup_context.template_exists?("#{class_name.underscore}/thumbnail")
|
76
|
+
end
|
77
|
+
|
63
78
|
def class_name
|
64
79
|
@class_name ||= path.gsub(/^.*\/app\/models/, '').gsub('.rb', '').classify
|
65
80
|
end
|
@@ -99,10 +114,75 @@ class AttributeDefinitionMigrator
|
|
99
114
|
end
|
100
115
|
end
|
101
116
|
|
117
|
+
def lookup_context
|
118
|
+
ActionView::LookupContext.new(ActionController::Base.view_paths)
|
119
|
+
end
|
120
|
+
|
102
121
|
def obj_class
|
103
122
|
@obj_class = ObjClass.find(model_class.name)
|
104
123
|
rescue Scrivito::ResourceNotFound
|
105
124
|
end
|
125
|
+
|
126
|
+
def check_model_name
|
127
|
+
name = model_class.name
|
128
|
+
|
129
|
+
if page_model? && !name.ends_with?('Page')
|
130
|
+
is_binary = if obj_class.legacy_type?
|
131
|
+
obj_class.binary?
|
132
|
+
else
|
133
|
+
obj_class.attributes.any? { |attr| attr.name == 'blob' && attr.type == 'binary' }
|
134
|
+
end
|
135
|
+
|
136
|
+
unless is_binary
|
137
|
+
with_padding do
|
138
|
+
say %{[warning] The class name of the non-binary obj model "#{name}" does not end with "Page".
|
139
|
+
Class names of page models should end with "Page" in order to be automatically identified by Scrivito as pages.
|
140
|
+
Please ignore this warning if "#{name}" is not a page by design.
|
141
|
+
Otherwise you need to tell Scrivito about this page explicitly. Please add following to an initializer:
|
142
|
+
|
143
|
+
Scrivito.models.define { page "#{name}" }
|
144
|
+
}, :yellow
|
145
|
+
end
|
146
|
+
end
|
147
|
+
end
|
148
|
+
|
149
|
+
if widget_model? && !name.ends_with?('Widget') &&
|
150
|
+
Scrivito.models.widgets.none? { |w| w.name == name }
|
151
|
+
with_padding do
|
152
|
+
say %{[warning] The class name of the widget model "#{name}" does not end with "Widget".
|
153
|
+
Class names of widget models should end with "Widget" in order to be automatically identified by Scrivito as widgets.
|
154
|
+
You need to tell Scrivito about this widget explicitly. Please add following to an initializer:
|
155
|
+
|
156
|
+
Scrivito.models.define { widget "#{name}" }
|
157
|
+
}, :yellow
|
158
|
+
end
|
159
|
+
end
|
160
|
+
end
|
161
|
+
|
162
|
+
class << self
|
163
|
+
include Thor::Actions
|
164
|
+
include Thor::Base
|
165
|
+
include Thor::Shell
|
166
|
+
|
167
|
+
private
|
168
|
+
|
169
|
+
def check_abandoned_obj_classes
|
170
|
+
ObjClass.all.each do |obj_class|
|
171
|
+
next if obj_class.name == 'MigrationStore'
|
172
|
+
begin
|
173
|
+
obj_class.name.constantize
|
174
|
+
rescue NameError
|
175
|
+
with_padding do
|
176
|
+
say %{[warning] Could not find a ruby class for ObjClass "#{obj_class.name}".
|
177
|
+
Plase create a ruby class for that ObjClass and run this script again.
|
178
|
+
|
179
|
+
}, :yellow
|
180
|
+
end
|
181
|
+
end
|
182
|
+
end
|
183
|
+
|
184
|
+
end
|
185
|
+
end
|
106
186
|
end
|
107
187
|
|
108
188
|
end
|
@@ -12,6 +12,7 @@ class AttributeDeserializer < Struct.new(:model, :workspace)
|
|
12
12
|
when 'multienum' then deserialize_multienum_value(attribute_value, attribute_definition)
|
13
13
|
when 'reference' then deserialize_reference_value(attribute_value)
|
14
14
|
when 'referencelist' then deserialize_referencelist_value(attribute_value)
|
15
|
+
when 'string' then deserialize_string_value(attribute_value)
|
15
16
|
when 'widget' then deserialize_legacy_widget_value(attribute_value, attribute_definition)
|
16
17
|
when 'widgetlist' then deserialize_widgetlist_value(attribute_value, attribute_definition)
|
17
18
|
else attribute_value
|
@@ -35,7 +36,7 @@ class AttributeDeserializer < Struct.new(:model, :workspace)
|
|
35
36
|
end
|
36
37
|
|
37
38
|
def deserialize_html_value(attribute_value)
|
38
|
-
StringTagging.tag_as_html(attribute_value)
|
39
|
+
StringTagging.tag_as_html(attribute_value || '')
|
39
40
|
end
|
40
41
|
|
41
42
|
def deserialize_link_value(attribute_value)
|
@@ -64,7 +65,11 @@ class AttributeDeserializer < Struct.new(:model, :workspace)
|
|
64
65
|
end
|
65
66
|
|
66
67
|
def deserialize_multienum_value(attribute_value, attribute_definition)
|
67
|
-
attribute_value
|
68
|
+
if attribute_value
|
69
|
+
attribute_value & attribute_definition.values
|
70
|
+
else
|
71
|
+
[]
|
72
|
+
end
|
68
73
|
end
|
69
74
|
|
70
75
|
def deserialize_reference_value(attribute_value)
|
@@ -72,7 +77,7 @@ class AttributeDeserializer < Struct.new(:model, :workspace)
|
|
72
77
|
end
|
73
78
|
|
74
79
|
def deserialize_referencelist_value(attribute_value)
|
75
|
-
workspace.objs.find(attribute_value).compact
|
80
|
+
attribute_value ? workspace.objs.find(attribute_value).compact : []
|
76
81
|
end
|
77
82
|
|
78
83
|
def deserialize_internal_link(attribute_value)
|
@@ -85,6 +90,10 @@ class AttributeDeserializer < Struct.new(:model, :workspace)
|
|
85
90
|
Link.new(attribute_value.slice('url', 'title', 'target').symbolize_keys)
|
86
91
|
end
|
87
92
|
|
93
|
+
def deserialize_string_value(attribute_value)
|
94
|
+
attribute_value || ''
|
95
|
+
end
|
96
|
+
|
88
97
|
def deserialize_legacy_widget_value(widget_ids, attribute_definition)
|
89
98
|
if workspace.uses_obj_classes
|
90
99
|
deserialize_widgetlist_value(widget_ids, attribute_definition)
|
data/lib/scrivito/basic_obj.rb
CHANGED
@@ -12,8 +12,6 @@ module Scrivito
|
|
12
12
|
# @api public
|
13
13
|
#
|
14
14
|
class BasicObj
|
15
|
-
# @!parse extend Scrivito::AttributeContent::ClassMethods
|
16
|
-
|
17
15
|
PublicSystemAttributeDefinition = Class.new(AttributeDefinition)
|
18
16
|
|
19
17
|
SYSTEM_ATTRIBUTES = AttributeDefinitionCollection.new(
|
@@ -43,6 +41,7 @@ module Scrivito
|
|
43
41
|
].freeze
|
44
42
|
|
45
43
|
extend ActiveModel::Naming
|
44
|
+
extend AttributeContent::ClassMethods
|
46
45
|
|
47
46
|
include AttributeContent
|
48
47
|
include ModelIdentity
|
@@ -289,6 +288,18 @@ module Scrivito
|
|
289
288
|
def self.valid_page_classes_beneath(parent_path)
|
290
289
|
end
|
291
290
|
|
291
|
+
def self.valid_page_ruby_classes_beneath(parent_path)
|
292
|
+
computed_classes = valid_page_classes_beneath(parent_path)
|
293
|
+
|
294
|
+
return Scrivito.models.pages.to_a unless computed_classes
|
295
|
+
|
296
|
+
convert_to_obj_classes(computed_classes, Obj.type_computer) do |class_name|
|
297
|
+
Rails.logger.warn(
|
298
|
+
"Invalid page class #{class_name} returned by #valid_page_classes_beneath."
|
299
|
+
)
|
300
|
+
end
|
301
|
+
end
|
302
|
+
|
292
303
|
# Update the {Scrivito::BasicObj Obj} with the attributes provided.
|
293
304
|
#
|
294
305
|
# For an overview of which values you can set via this method see the
|
@@ -21,6 +21,11 @@ module Cache
|
|
21
21
|
internal_store.write(key, value, expires_in: expires_in)
|
22
22
|
end
|
23
23
|
|
24
|
+
def transform_key(key)
|
25
|
+
# Workaround for rails/rails#15616. Will be fixed in Rails 4.2.
|
26
|
+
Digest::SHA1.hexdigest(key)
|
27
|
+
end
|
28
|
+
|
24
29
|
def forward_write?(key, value, expires_in)
|
25
30
|
super && !expires_in
|
26
31
|
end
|
@@ -73,7 +73,8 @@ class CmsFieldTag < Struct.new(:view, :tag_name, :obj_or_widget, :field_name)
|
|
73
73
|
private
|
74
74
|
|
75
75
|
def build_valid_widget_classes
|
76
|
-
obj_or_widget.
|
76
|
+
obj_or_widget.valid_widget_ruby_classes_for(field_name).map do |widget_class|
|
77
|
+
widget_class = widget_class.to_s
|
77
78
|
{
|
78
79
|
name: widget_class,
|
79
80
|
description: description_for_widget_class(widget_class),
|
@@ -1,57 +1,9 @@
|
|
1
1
|
module Scrivito
|
2
2
|
module Migrations
|
3
|
-
# CMS Migrations can alter the structure and content of the CMS and allow
|
4
|
-
# other developers to simultaneously apply changes. Migrations provide a set
|
5
|
-
# of methods to create, update or delete CMS objects, attributes and object
|
6
|
-
# classes.
|
7
|
-
#
|
8
|
-
# @example Simple Migration
|
9
|
-
#
|
10
|
-
# class CreateTestAttribute < Scrivito::Migrations::Migration
|
11
|
-
# def up
|
12
|
-
# ObjClass.find('Homepage').attributes.add(Attribute.new(name: 'test', type: :string))
|
13
|
-
# end
|
14
|
-
# end
|
15
3
|
class Migration
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
FileUtils.mkdir_p(destination)
|
20
|
-
end
|
21
|
-
|
22
|
-
destination_migrations = Scrivito::Migrations::Migrator.determine_migrations(destination)
|
23
|
-
last = destination_migrations.last
|
24
|
-
|
25
|
-
sources.each do |scope, path|
|
26
|
-
source_migrations = Scrivito::Migrations::Migrator.determine_migrations(path)
|
27
|
-
|
28
|
-
source_migrations.each do |migration|
|
29
|
-
next if duplicate_migration?(destination_migrations, migration.name, scope)
|
30
|
-
|
31
|
-
name = migration.name
|
32
|
-
version = next_migration_number(last ? last.version : 0)
|
33
|
-
filename = File.join(destination, "#{version}_#{name.underscore}.#{scope}.rb")
|
34
|
-
|
35
|
-
new_migration = self.new(name, version, filename, scope)
|
36
|
-
|
37
|
-
FileUtils.cp(migration.filename, new_migration.filename)
|
38
|
-
|
39
|
-
last = new_migration
|
40
|
-
destination_migrations << new_migration
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
def duplicate_migration?(migrations, name, scope)
|
46
|
-
migrations.detect do |migration|
|
47
|
-
migration.name == name && migration.scope == scope.to_s
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
def next_migration_number(current_migration_number)
|
52
|
-
migration_number = current_migration_number + 1
|
53
|
-
[Time.now.utc.strftime('%Y%m%d%H%M%S'), '%.14d' % migration_number].max
|
54
|
-
end
|
4
|
+
def self.next_migration_number(current_migration_number)
|
5
|
+
migration_number = current_migration_number + 1
|
6
|
+
[Time.now.utc.strftime('%Y%m%d%H%M%S'), '%.14d' % migration_number].max
|
55
7
|
end
|
56
8
|
|
57
9
|
attr_accessor :name
|
data/lib/tasks/migration.rake
CHANGED
@@ -26,10 +26,5 @@ namespace :scrivito do
|
|
26
26
|
puts exception.message
|
27
27
|
end
|
28
28
|
end
|
29
|
-
|
30
|
-
desc 'Copy CMS migrations from Engines. Specify Engines to use with FROM=engine1,engine2'
|
31
|
-
task :install => :environment do
|
32
|
-
Scrivito::Migrations::Installer.new(ENV['FROM']).install
|
33
|
-
end
|
34
29
|
end
|
35
30
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: scrivito_sdk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.60.0.
|
4
|
+
version: 0.60.0.rc2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Infopark AG
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-04-
|
11
|
+
date: 2015-04-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: addressable
|
@@ -173,6 +173,7 @@ files:
|
|
173
173
|
- app/views/scrivito/_editing_auth_warning.html.erb
|
174
174
|
- app/views/scrivito/blobs/upload_permission.json.jbuilder
|
175
175
|
- app/views/scrivito/content_widget/show.html.erb
|
176
|
+
- app/views/scrivito/fallback_thumbnail.html.erb
|
176
177
|
- app/views/scrivito/objs/copy_widget.html.erb
|
177
178
|
- app/views/scrivito/objs/create_widget.html.erb
|
178
179
|
- app/views/scrivito/objs/destroy.json.jbuilder
|
@@ -190,7 +191,6 @@ files:
|
|
190
191
|
- app/views/scrivito/users/suggest.json.jbuilder
|
191
192
|
- app/views/scrivito/webservice/empty.json
|
192
193
|
- app/views/scrivito/webservice/error.json.jbuilder
|
193
|
-
- app/views/scrivito/widget_thumbnail.html.erb
|
194
194
|
- app/views/scrivito/workspaces/_workspace.json.jbuilder
|
195
195
|
- app/views/scrivito/workspaces/check.json.jbuilder
|
196
196
|
- app/views/scrivito/workspaces/create.json.jbuilder
|
@@ -206,7 +206,6 @@ files:
|
|
206
206
|
- config/locales/en.scrivito.models.yml
|
207
207
|
- config/precedence_routes.rb
|
208
208
|
- config/routes.rb
|
209
|
-
- lib/assets/images/180x120.gif
|
210
209
|
- lib/assets/images/scrivito/image_placeholder.png
|
211
210
|
- lib/assets/javascripts/scrivito_sdk.js
|
212
211
|
- lib/assets/javascripts/scrivito_ui.js
|
@@ -314,7 +313,6 @@ files:
|
|
314
313
|
- lib/scrivito/migration.rb
|
315
314
|
- lib/scrivito/migrations.rb
|
316
315
|
- lib/scrivito/migrations/cms_backend.rb
|
317
|
-
- lib/scrivito/migrations/installer.rb
|
318
316
|
- lib/scrivito/migrations/migration.rb
|
319
317
|
- lib/scrivito/migrations/migration_store.rb
|
320
318
|
- lib/scrivito/migrations/migrator.rb
|
@@ -1,9 +0,0 @@
|
|
1
|
-
<div class="scrivito_editing_widget_visualization">
|
2
|
-
<%= image_tag '180x120.gif' %>
|
3
|
-
</div>
|
4
|
-
<div class="scrivito_editing_widget_title">
|
5
|
-
<%= widget_class_name %>
|
6
|
-
</div>
|
7
|
-
<div class="scrivito_editing_widget_description">
|
8
|
-
Missing template "app/views/<%= template_path %>". Please provide one.
|
9
|
-
</div>
|
Binary file
|
@@ -1,45 +0,0 @@
|
|
1
|
-
module Scrivito
|
2
|
-
module Migrations
|
3
|
-
class Installer
|
4
|
-
def initialize(from)
|
5
|
-
@to_load = from.blank? ? :all : from.split(',').map(&:strip)
|
6
|
-
end
|
7
|
-
|
8
|
-
def install
|
9
|
-
Scrivito::Migrations::Migration.copy(destination, find_engines_with_migrations)
|
10
|
-
end
|
11
|
-
|
12
|
-
private
|
13
|
-
|
14
|
-
def destination
|
15
|
-
Scrivito::Migrations::Migrator.migrations_path
|
16
|
-
end
|
17
|
-
|
18
|
-
def find_engines_with_migrations
|
19
|
-
Rails.application.railties.inject({}) do |railties, railtie|
|
20
|
-
next railties unless @to_load == :all || @to_load.include?(railtie.railtie_name)
|
21
|
-
|
22
|
-
if path = railtie_migration_path_for(railtie)
|
23
|
-
railties[railtie.railtie_name] = path
|
24
|
-
end
|
25
|
-
|
26
|
-
railties
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
def railtie_migration_path_for(railtie)
|
31
|
-
if railtie.respond_to?(:paths)
|
32
|
-
path = railtie.paths.path + relative_migration_path
|
33
|
-
|
34
|
-
if File.exist?(path)
|
35
|
-
path
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
def relative_migration_path
|
41
|
-
Scrivito::Configuration.migration_path
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|