scrivito_sdk 0.60.0.rc1 → 0.60.0.rc2
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/.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
|
+
MIIFcDCCA1igAwIBAgIEAJiWjTANBgkqhkiG9w0BAQsFADBYMQswCQYDVQQGEwJOTDEeMBwGA1UE
|
4498
|
+
CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSkwJwYDVQQDDCBTdGFhdCBkZXIgTmVkZXJsYW5kZW4g
|
4499
|
+
RVYgUm9vdCBDQTAeFw0xMDEyMDgxMTE5MjlaFw0yMjEyMDgxMTEwMjhaMFgxCzAJBgNVBAYTAk5M
|
4500
|
+
MR4wHAYDVQQKDBVTdGFhdCBkZXIgTmVkZXJsYW5kZW4xKTAnBgNVBAMMIFN0YWF0IGRlciBOZWRl
|
4501
|
+
cmxhbmRlbiBFViBSb290IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA48d+ifkk
|
4502
|
+
SzrSM4M1LGns3Amk41GoJSt5uAg94JG6hIXGhaTK5skuU6TJJB79VWZxXSzFYGgEt9nCUiY4iKTW
|
4503
|
+
O0Cmws0/zZiTs1QUWJZV1VD+hq2kY39ch/aO5ieSZxeSAgMs3NZmdO3dZ//BYY1jTw+bbRcwJu+r
|
4504
|
+
0h8QoPnFfxZpgQNH7R5ojXKhTbImxrpsX23Wr9GxE46prfNeaXUmGD5BKyF/7otdBwadQ8QpCiv8
|
4505
|
+
Kj6GyzyDOvnJDdrFmeK8eEEzduG/L13lpJhQDBXd4Pqcfzho0LKmeqfRMb1+ilgnQ7O6M5HTp5gV
|
4506
|
+
XJrm0w912fxBmJc+qiXbj5IusHsMX/FjqTf5m3VpTCgmJdrV8hJwRVXj33NeN/UhbJCONVrJ0yPr
|
4507
|
+
08C+eKxCKFhmpUZtcALXEPlLVPxdhkqHz3/KRawRWrUgUY0viEeXOcDPusBCAUCZSCELa6fS/ZbV
|
4508
|
+
0b5GnUngC6agIk440ME8MLxwjyx1zNDFjFE7PZQIZCZhfbnDZY8UnCHQqv0XcgOPvZuM5l5Tnrmd
|
4509
|
+
74K74bzickFbIZTTRTeU0d8JOV3nI6qaHcptqAqGhYqCvkIH1vI4gnPah1vlPNOePqc7nvQDs/nx
|
4510
|
+
fRN0Av+7oeX6AHkcpmZBiFxgV6YuCcS6/ZrPpx9Aw7vMWgpVSzs4dlG4Y4uElBbmVvMCAwEAAaNC
|
4511
|
+
MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFP6rAJCYniT8qcwa
|
4512
|
+
ivsnuL8wbqg7MA0GCSqGSIb3DQEBCwUAA4ICAQDPdyxuVr5Os7aEAJSrR8kN0nbHhp8dB9O2tLsI
|
4513
|
+
eK9p0gtJ3jPFrK3CiAJ9Brc1AsFgyb/E6JTe1NOpEyVa/m6irn0F3H3zbPB+po3u2dfOWBfoqSmu
|
4514
|
+
c0iH55vKbimhZF8ZE/euBhD/UcabTVUlT5OZEAFTdfETzsemQUHSv4ilf0X8rLiltTMMgsT7B/Zq
|
4515
|
+
5SWEXwbKwYY5EdtYzXc7LMJMD16a4/CrPmEbUCTCwPTxGfARKbalGAKb12NMcIxHowNDXLldRqAN
|
4516
|
+
b/9Zjr7dn3LDWyvfjFvO5QxGbJKyCqNMVEIYFRIYvdr8unRu/8G2oGTYqV9Vrp9canaW2HNnh/tN
|
4517
|
+
f1zuacpzEPuKqf2evTY4SUmH9A4U8OmHuD+nT3pajnnUk+S7aFKErGzp85hwVXIy+TSrK0m1zSBi
|
4518
|
+
5Dp6Z2Orltxtrpfs/J92VoguZs9btsmksNcFuuEnL5O7Jiqik7Ab846+HUCjuTaPPoIaGl6I6lD4
|
4519
|
+
WeKDRikL40Rc4ZW2aZCaFG+XroHPaO+Zmr615+F/+PoTRxZMzG0IQOeLeG9QgkRQP2YGiqtDhFZK
|
4520
|
+
DyAthg710tvSeopLzaXoTvFeJiUBWSOgftL2fiFX1ye8FVdMpEbB4IMeDExNH08GGeL5qPQ6gqGy
|
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
|