diff --git a/docs/en/04_Changelogs/4.1.2.md b/docs/en/04_Changelogs/4.1.2.md
new file mode 100644
index 000000000..7a126af84
--- /dev/null
+++ b/docs/en/04_Changelogs/4.1.2.md
@@ -0,0 +1,68 @@
+# 4.1.2
+
+
+
+## Change Log
+
+### Security
+
+ * 2018-05-08 [19fdebfa2](https://github.com/silverstripe/silverstripe-framework/commit/19fdebfa245506626561bc9626d9ac325acb14da) Remove dotm, potm, jar, css, js, xltm from default File.allowed_extensions (Robbie Averill) - See [ss-2018-014](https://www.silverstripe.org/download/security-releases/ss-2018-014)
+ * 2018-04-11 [577138882](https://github.com/silverstripe/silverstripe-framework/commit/577138882163e4b8782ea043487944d30d88e753) Restrict non-admins from being assigned to admin groups (Damian Mooyman) - See [ss-2018-001](https://www.silverstripe.org/download/security-releases/ss-2018-001)
+
+### API Changes
+
+ * 2017-09-12 [c54b07a95](https://github.com/silverstripe/silverstripe-framework/commit/c54b07a9528aeef3907b4342a725af10d9797cd8) Update to use new chromedriver + behat-extension + facebook/webdriver (Damian Mooyman)
+
+### Features and Enhancements
+
+ * 2018-06-15 [8181dc4fd](https://github.com/silverstripe/silverstripe-framework/commit/8181dc4fd285563cee92c879ad39ae0d3b64b838) Ensure extensions are told the internal item request class for gridfield detail form (#8164) (Damian Mooyman)
+ * 2018-04-19 [1509a12fd](https://github.com/silverstripe/silverstripe-framework/commit/1509a12fdf0fe8cbd300271fd5c60c3d76647d84) Only run coverage test as a cron (Damian Mooyman)
+ * 2018-04-18 [3561466](https://github.com/silverstripe/recipe-core/commit/3561466e5ea479ee5602451d9fe2240a952ed56a) Provide default IIS rewriting rules with recipe (Damian Mooyman)
+ * 2018-04-09 [87d69ba7](https://github.com/silverstripe/silverstripe-cms/commit/87d69ba75366ff63563e5b9b159fb643daa4f1d7) Use i18n template for page tree title (Damian Mooyman)
+
+### Bugfixes
+
+ * 2018-06-18 [3f80e2dc6](https://github.com/silverstripe/silverstripe-framework/commit/3f80e2dc6789251a61b0867291c103d3b1f5c517) Don't reload form session data using FormField::setSubmittedValue… (#8184) (Maxime Rainville)
+ * 2018-06-14 [c41438822](https://github.com/silverstripe/silverstripe-framework/commit/c414388220614118d132083697a54c5d81e8fccc) DatetimeFieldTest (Damian Mooyman)
+ * 2018-06-13 [a2a8004](https://github.com/silverstripe/silverstripe-admin/commit/a2a800464b8f430529ee291a8b75e422ceca7914) Update user help link to 4 (Sacha Judd)
+ * 2018-06-13 [02ae2e7ed](https://github.com/silverstripe/silverstripe-framework/commit/02ae2e7ed0dbbaf2f5ec46e405543a6106b356f8) Fix internal date formatting inheriting default locale (Damian Mooyman)
+ * 2018-06-12 [7b04949ca](https://github.com/silverstripe/silverstripe-framework/commit/7b04949caa11d6e5c8cace3453cf2ed29996fb06) Remove duplicate key (Damian Mooyman)
+ * 2018-06-12 [c9bcc07](https://github.com/silverstripe/silverstripe-assets/commit/c9bcc070fdbb76fef49f7564eb98a4a81e2ed65f) Remove duplicate .upgrade.yml keys (Damian Mooyman)
+ * 2018-06-12 [674b92c](https://github.com/silverstripe/silverstripe-admin/commit/674b92c125488cb6bc43cade4c93e9adccb27e9b) Fix invalid .upgrade.yml (Damian Mooyman)
+ * 2018-06-11 [555b168](https://github.com/silverstripe/silverstripe-versioned/commit/555b1687571b76f4f022e3a3f4475eb1f2b9a23b) Prevent custom item handler from being overridden (Damian Mooyman)
+ * 2018-06-11 [2a51f34c3](https://github.com/silverstripe/silverstripe-framework/commit/2a51f34c3e3c44acd603def241ac4447e715b165) Prevent canonical URL causing a redirect on CLI unless explicitly enabled (Damian Mooyman)
+ * 2018-06-07 [29f9b1c18](https://github.com/silverstripe/silverstripe-framework/commit/29f9b1c18fb38dab912a0b9dcae63eacae19335d) linting issues (Damian Mooyman)
+ * 2018-06-07 [e37e3e174](https://github.com/silverstripe/silverstripe-framework/commit/e37e3e1746e56c866ee875f41a7fddf61c926d9f) Fix test that relies on implicit ID order breaking postgres (Damian Mooyman)
+ * 2018-06-07 [66f57bd4d](https://github.com/silverstripe/silverstripe-framework/commit/66f57bd4dac0bd4c8106f8071ddc45103c2643f2) Only set MYSQL_ATTR_INIT_COMMAND when using mysql driver (fixes #8103) (Loz Calver)
+ * 2018-06-06 [c070e989c](https://github.com/silverstripe/silverstripe-framework/commit/c070e989c4de41441d1061d2678b461f3f13d63b) Safely handle empty injector factory responses (Damian Mooyman)
+ * 2018-06-05 [0aa13da0d](https://github.com/silverstripe/silverstripe-framework/commit/0aa13da0d99a94a0a6dc4cc8cf42e37abcf5374a) Backport bugfix for belongs_many_many with many_many through. (Damian Mooyman)
+ * 2018-06-04 [41e601a03](https://github.com/silverstripe/silverstripe-framework/commit/41e601a036307065d9ea2ba8862f67be738d402f) Regression from #8009 (Daniel Hensby)
+ * 2018-06-01 [5a5ba1e5c](https://github.com/silverstripe/silverstripe-framework/commit/5a5ba1e5c001de161fbeb19d6d662391dccc4c1e) negative values in read only currency field (Jonathon Menz)
+ * 2018-06-01 [8064ed822](https://github.com/silverstripe/silverstripe-framework/commit/8064ed8220fae35d35ac9dd9d717a7283bf303fc) Minor updates to unit tests to pass with HTML5 parser and various themes (Robbie Averill)
+ * 2018-06-01 [582c69d32](https://github.com/silverstripe/silverstripe-framework/commit/582c69d32fd8f18e6c06bc0b4c0a7e3e87e67966) Fix issue with Disabled DateField always display (not set). (Maxime Rainville)
+ * 2018-06-01 [7a5c01f2](https://github.com/silverstripe/silverstripe-siteconfig/commit/7a5c01f272931e28d8b924dfe62d20756e1870c5) FIx saving not writing SiteConfig (Damian Mooyman)
+ * 2018-05-29 [1cbf27e0f](https://github.com/silverstripe/silverstripe-framework/commit/1cbf27e0f47c3547914b03193d0f5f77c87ff8d5) PHP 5.3 compat for referencing $this in closure, and make method public for same reason (Robbie Averill)
+ * 2018-05-22 [c308416af](https://github.com/silverstripe/silverstripe-framework/commit/c308416afaa2646d4b4bd3a4a4534a7dbc3285ac) Add macron to Māori language name (Robbie Averill)
+ * 2018-05-14 [ea999e3](https://github.com/silverstripe/silverstripe-admin/commit/ea999e346a5b1a50afa51870822b479aaa8d355c) Coerce textfield value attributes to empty strings (Raissa North)
+ * 2018-05-04 [37b70f6](https://github.com/silverstripe/silverstripe-admin/commit/37b70f6800e7166f8405d22a8cd11933b3379027) Modify z-index values so that TinyMCE is working properly in full view (Raissa North)
+ * 2018-05-03 [bef4d99d](https://github.com/silverstripe/silverstripe-siteconfig/commit/bef4d99dc45ef2dd0568d20960a6eb3cdc89435e) Import SilverStripe\Versioned\RecursivePublishable in SiteConfigLeftAndMain (Daniel Hensby)
+ * 2018-05-02 [80bf0fc48](https://github.com/silverstripe/silverstripe-framework/commit/80bf0fc48774b2a25f95feb24ffcc9df8e5ad77c) bad syntax (Daniel Hensby)
+ * 2018-04-27 [6b39b25e2](https://github.com/silverstripe/silverstripe-framework/commit/6b39b25e209d5f0d5c8e123a6bb2e6aec0d621bf) es a count() php warning without an api change (azt3k)
+ * 2018-04-23 [b07e13d2f](https://github.com/silverstripe/silverstripe-framework/commit/b07e13d2f87d5fc4300e565c813d746941960af6) Fix incorrect installer base tag generation (#8018) (Damian Mooyman)
+ * 2018-04-18 [fe4b90edc](https://github.com/silverstripe/silverstripe-framework/commit/fe4b90edc0ead9c6c77d606101bfbf568a963fb4) Duplicating many_many relationships looses the extra fields in 4.0 (UndefinedOffset)
+ * 2018-04-18 [eef0ef1](https://github.com/silverstripe/silverstripe-campaign-admin/commit/eef0ef1fd73f4998b140fb76514dc99a2e0d0a03) behat for 1.1 branch (Damian Mooyman)
+ * 2018-04-17 [f83691e7f](https://github.com/silverstripe/silverstripe-framework/commit/f83691e7f7e7a75657df1211673b72d9cf4c4b4f) Make invalid dev actions 404 not 500 error (Damian Mooyman)
+ * 2018-04-17 [9a12fac21](https://github.com/silverstripe/silverstripe-framework/commit/9a12fac218900a31c14d9337572b631e3495ad43) Prevent password validator min score producing false negatives (Damian Mooyman)
+ * 2018-04-17 [af3a9f3ec](https://github.com/silverstripe/silverstripe-framework/commit/af3a9f3ec8a5465f841c5aa8ee1faf40c1b76bf4) Duplicating many_many relationships looses the extra fields (fixes #7973) (UndefinedOffset)
+ * 2018-04-17 [a69c181](https://github.com/silverstripe/silverstripe-asset-admin/commit/a69c18188feb47c8b15eee87cfaee52eff33f310) Fix travis install (Damian Mooyman)
+ * 2018-04-13 [478e5dc](https://github.com/silverstripe/recipe-cms/commit/478e5dc84021d45e9abc06747ab81e98d8062b89) invalid htaccess (Damian Mooyman)
+ * 2018-04-10 [e11ba9a2d](https://github.com/silverstripe/silverstripe-framework/commit/e11ba9a2d7c89a1ecea8613589f05399b45a33bf) Fix many_many through crashing ModelAdmin (Damian Mooyman)
+ * 2018-04-08 [eeac1d1](https://github.com/silverstripe/silverstripe-admin/commit/eeac1d11800e70f19055bfa2ba4aec8b6a9b2ccb) Fix issue with selected values in large trees breaking initialisation (#476) (Damian Mooyman)
+ * 2018-04-04 [251276158](https://github.com/silverstripe/silverstripe-framework/commit/25127615874c6498ff4f39a146d00193ec9ee356) invalid markup in SelectionGroup selected values (Will Rossiter)
+ * 2018-03-28 [dd44deacb](https://github.com/silverstripe/silverstripe-framework/commit/dd44deacb462d80dbbda507fdb4e9527f049d3bd) for "too few parameters" error when using DBMultiEnum (Andreas Lindahl)
+ * 2018-03-27 [4307351](https://github.com/silverstripe/silverstripe-assets/commit/43073515653feb0fca23fed2b88ec1a89a3bb91a) Use correct base dir for file migration (Damian Mooyman)
+ * 2018-03-22 [cf5a0984](https://github.com/silverstripe/silverstripe-cms/commit/cf5a0984addf308d2cb10df9b67386be2a080f18) Correct SilverStripeNavigator correctly in templates (Daniel Hensby)
+ * 2018-03-15 [d17d93f7](https://github.com/silverstripe/silverstripe-cms/commit/d17d93f784a6e01f3d396c55adc623d69a90261a) Remove SearchForm results() function from allowed_actions (Steve Dixon)
+ * 2018-03-14 [a9cc4d484](https://github.com/silverstripe/silverstripe-framework/commit/a9cc4d4844907d67b071b2867f6cea4b0d57749a) Ensure consistent return type for FieldList::removeByName (Robbie Averill)
+ * 2018-02-16 [86addea1d](https://github.com/silverstripe/silverstripe-framework/commit/86addea1d2a7b2e28ae8115279ae358bcb46648a) Split HTML manipulation to onadd, so elements are not accidentally duplicated (Christopher Joe)
+ * 2018-01-19 [5849820](https://github.com/silverstripe/silverstripe-asset-admin/commit/58498200190cba086477c158d1fe6112cf3b0a1e) compatibility issue with chromedriver (Damian Mooyman)
diff --git a/lang/af.yml b/lang/af.yml
index ddf2abee0..bbaf0c9cb 100644
--- a/lang/af.yml
+++ b/lang/af.yml
@@ -4,8 +4,6 @@ af:
SilverStripe\Forms\CurrencyField:
CURRENCYSYMBOL: R
SilverStripe\Forms\DateField:
- NOTSET: 'Nie gestel nie'
- TODAY: vandag
VALIDDATEFORMAT2: 'Sleutel asseblief ''n geldige datum formaat in ({format})'
VALIDDATEMAXDATE: 'Jou datum moet gelykstaande of ouer wees as die maksimum toelaatbare datum ({date})'
VALIDDATEMINDATE: 'Jou datum moet net so out of nuwer wees as die minimum toelaatbare datum ({date})'
@@ -36,7 +34,6 @@ af:
RelationSearch: 'Soek vir verwantskap'
ResetFilter: Herstel
SilverStripe\Forms\GridField\GridFieldDeleteAction:
- DELETE_DESCRIPTION: Verwyder
Delete: Verwyder
DeletePermissionsFailure: 'Geen toestemming om te verwyder nie'
UnlinkRelation: Ontkoppel
diff --git a/lang/ar.yml b/lang/ar.yml
index ef2f216cf..19381589f 100644
--- a/lang/ar.yml
+++ b/lang/ar.yml
@@ -5,8 +5,6 @@ ar:
MAXIMUM: 'يجب أن تكون كلمات المرور على الأكثر {الحد الأقصى} حرفاً.'
SHOWONCLICKTITLE: 'تغيير كلمة المرور'
SilverStripe\Forms\DateField:
- NOTSET: 'غير محدد'
- TODAY: اليوم
VALIDDATEFORMAT2: 'الرجاء إدخال صيغة تاريخ صحيحة ({صيغة})'
VALIDDATEMAXDATE: 'التسجيل الخاص بك قد يكون أقدم أو مطابق لأقصى تاريخ مسموح به ({تاريخ})'
VALIDDATEMINDATE: 'التسجيل الخاص بك قد يكون أحدث أو مطابق للحد الأدنى للتاريخ المسموح به ({تاريخ})'
@@ -39,7 +37,6 @@ ar:
RelationSearch: 'ابحث عن علاقة'
ResetFilter: 'إعادة تعيين'
SilverStripe\Forms\GridField\GridFieldDeleteAction:
- DELETE_DESCRIPTION: حذف
Delete: حذف
DeletePermissionsFailure: 'لا يوجد أية تصريحات حذف'
EditPermissionsFailure: 'لا يوجد تصريح لإلغاء الربط بين السجلات'
@@ -51,8 +48,6 @@ ar:
DeletePermissionsFailure: 'لا يوجد تصريحات بالحذف'
Deleted: '{type} {name} تم حذفه'
Save: حفظ
- SilverStripe\Forms\GridField\GridFieldEditButton_ss:
- EDIT: تعديل
SilverStripe\Forms\MoneyField:
FIELDLABELAMOUNT: الكمية
FIELDLABELCURRENCY: العملة
diff --git a/lang/az.yml b/lang/az.yml
index 392264a1b..7629d5d3b 100644
--- a/lang/az.yml
+++ b/lang/az.yml
@@ -1,9 +1,6 @@
az:
SilverStripe\Forms\ConfirmedPasswordField:
SHOWONCLICKTITLE: 'Parolu dəyiş'
- SilverStripe\Forms\DateField:
- NOTSET: 'təyin edilməyib'
- TODAY: 'bu gün'
SilverStripe\Forms\DropdownField:
CHOOSE: (Seçin)
SilverStripe\Forms\Form:
diff --git a/lang/bg.yml b/lang/bg.yml
index 91c831c04..3e1eba6a0 100644
--- a/lang/bg.yml
+++ b/lang/bg.yml
@@ -37,8 +37,6 @@ bg:
SilverStripe\Forms\CurrencyField:
CURRENCYSYMBOL: $
SilverStripe\Forms\DateField:
- NOTSET: 'не е зададена'
- TODAY: днес
VALIDDATEFORMAT2: 'Моля, въведете валиден формат за дата ({format})'
VALIDDATEMAXDATE: 'Датата трябва да бъде същата или преди ({date})'
VALIDDATEMINDATE: 'Датата трябва да бъде същата или след ({date})'
@@ -86,7 +84,6 @@ bg:
RelationSearch: 'Търсене на връзка'
ResetFilter: Изчистване
SilverStripe\Forms\GridField\GridFieldDeleteAction:
- DELETE_DESCRIPTION: Изтриване
Delete: Изтрий
DeletePermissionsFailure: 'Изтриването не е разрешено'
EditPermissionsFailure: 'Нямате права за премахване на връзката'
@@ -98,8 +95,6 @@ bg:
DeletePermissionsFailure: 'Изтриването не е разрешено'
Deleted: 'Изтрити {type} {name}'
Save: Запис
- SilverStripe\Forms\GridField\GridFieldEditButton_ss:
- EDIT: Редактиране
SilverStripe\Forms\GridField\GridFieldPaginator:
OF: от
Page: Страница
diff --git a/lang/bs.yml b/lang/bs.yml
index eca1e7246..3a2ac1a35 100644
--- a/lang/bs.yml
+++ b/lang/bs.yml
@@ -4,9 +4,6 @@ bs:
YESANSWER: Da
SilverStripe\Forms\CurrencyField:
CURRENCYSYMBOL: KM
- SilverStripe\Forms\DateField:
- NOTSET: 'nije postavljeno'
- TODAY: danas
SilverStripe\Forms\DropdownField:
CHOOSE: (Izaberite)
SilverStripe\Forms\Form:
diff --git a/lang/ca.yml b/lang/ca.yml
index b93a85cc0..4ffdc98fe 100644
--- a/lang/ca.yml
+++ b/lang/ca.yml
@@ -3,9 +3,6 @@ ca:
SHOWONCLICKTITLE: 'Canvia la contrasenya'
SilverStripe\Forms\CurrencyField:
CURRENCYSYMBOL: €E
- SilverStripe\Forms\DateField:
- NOTSET: 'no definit'
- TODAY: avui
SilverStripe\Forms\DropdownField:
CHOOSE: (Trieu)
SilverStripe\Forms\Form:
diff --git a/lang/cs.yml b/lang/cs.yml
index 9e7bf5d6a..4a3cae3ab 100644
--- a/lang/cs.yml
+++ b/lang/cs.yml
@@ -13,8 +13,6 @@ cs:
SilverStripe\Forms\CurrencyField:
CURRENCYSYMBOL: Kč
SilverStripe\Forms\DateField:
- NOTSET: nenastaveno
- TODAY: dnes
VALIDDATEFORMAT2: 'Prosím zadejte platný formát datumu ({format})'
VALIDDATEMAXDATE: 'Váš datum musí být starší nebo odpovídající maximu povoleného datumu ({date})'
VALIDDATEMINDATE: 'Váš datum musí být novější nebo odpovídající minimu povoleného datumu ({date})'
@@ -51,7 +49,6 @@ cs:
RelationSearch: 'Vztah hledání'
ResetFilter: Resetovat
SilverStripe\Forms\GridField\GridFieldDeleteAction:
- DELETE_DESCRIPTION: Smazat
Delete: Smazat
DeletePermissionsFailure: 'Žádná oprávnění mazat'
EditPermissionsFailure: 'Žádné oprávnění pro rozpojení záznamu'
@@ -63,8 +60,6 @@ cs:
DeletePermissionsFailure: 'Žádná oprávnění mazat'
Deleted: 'Smazáno {type} {name}'
Save: Uložit
- SilverStripe\Forms\GridField\GridFieldEditButton_ss:
- EDIT: Editovat
SilverStripe\Forms\MoneyField:
FIELDLABELAMOUNT: Částka
FIELDLABELCURRENCY: Měna
diff --git a/lang/de.yml b/lang/de.yml
index 3bbf8cdb5..1e9f16e5e 100644
--- a/lang/de.yml
+++ b/lang/de.yml
@@ -11,8 +11,6 @@ de:
SilverStripe\Forms\CurrencyField:
CURRENCYSYMBOL: €
SilverStripe\Forms\DateField:
- NOTSET: 'nicht gesetzt'
- TODAY: heute
VALIDDATEFORMAT2: 'Bitte geben sie das Datum im korrekten Format ein ({format})'
VALIDDATEMAXDATE: 'Ihr Datum muss vor dem erlaubtem Datum ({date}) liegen oder gleich sein'
VALIDDATEMINDATE: 'Ihr Datum muss nach dem erlaubtem Datum ({date}) liegen oder gleich sein'
@@ -49,7 +47,6 @@ de:
RelationSearch: Relationssuche
ResetFilter: Zurücksetzen
SilverStripe\Forms\GridField\GridFieldDeleteAction:
- DELETE_DESCRIPTION: Löschen
Delete: Löschen
DeletePermissionsFailure: 'Keine Berechtigung zum Löschen'
EditPermissionsFailure: 'Sie haben keine Berechtigung, die Verknüpfung zu lösen'
@@ -61,8 +58,6 @@ de:
DeletePermissionsFailure: 'Keine Berechtigungen zum löschen'
Deleted: 'Gelöscht {type} {name}'
Save: Speichern
- SilverStripe\Forms\GridField\GridFieldEditButton_ss:
- EDIT: Bearbeiten
SilverStripe\Forms\MoneyField:
FIELDLABELAMOUNT: Betrag
FIELDLABELCURRENCY: Währung
diff --git a/lang/eo.yml b/lang/eo.yml
index f0ca41ca2..59806b953 100644
--- a/lang/eo.yml
+++ b/lang/eo.yml
@@ -37,8 +37,6 @@ eo:
SilverStripe\Forms\CurrencyField:
CURRENCYSYMBOL: $
SilverStripe\Forms\DateField:
- NOTSET: 'ne agordita'
- TODAY: hodiaŭ
VALIDDATEFORMAT2: 'Bonvole enigu validan datan formaton ({format})'
VALIDDATEMAXDATE: 'Necesas ke via dato estu pli aĝa ol, aŭ egala al la maksimuma permesita dato ({date})'
VALIDDATEMINDATE: 'Necesas ke via dato estu pli nova ol, aŭ egala al la minimuma permesita dato ({date})'
@@ -86,7 +84,6 @@ eo:
RelationSearch: 'Serĉi rilatojn'
ResetFilter: Restartigi
SilverStripe\Forms\GridField\GridFieldDeleteAction:
- DELETE_DESCRIPTION: Forigi
Delete: Forigi
DeletePermissionsFailure: 'Mankas permeso forigi'
EditPermissionsFailure: 'Mankas permeso malligi rikordon'
@@ -98,8 +95,6 @@ eo:
DeletePermissionsFailure: 'Mankas permeso forigi'
Deleted: 'Forigita {type} {name}'
Save: Konservi
- SilverStripe\Forms\GridField\GridFieldEditButton_ss:
- EDIT: Redakti
SilverStripe\Forms\GridField\GridFieldGroupDeleteAction:
UnlinkSelfFailure: 'Ne povas forigi vin el ĉi tiu grupo; vi perdus administrajn rajtojn'
SilverStripe\Forms\GridField\GridFieldPaginator:
diff --git a/lang/es.yml b/lang/es.yml
index 5251bdbf6..0009c7a4a 100644
--- a/lang/es.yml
+++ b/lang/es.yml
@@ -15,8 +15,6 @@ es:
SilverStripe\Forms\CurrencyField:
CURRENCYSYMBOL: Símbolo
SilverStripe\Forms\DateField:
- NOTSET: 'sin establecer'
- TODAY: hoy
VALIDDATEFORMAT2: 'Por favor, introduzca un formato de fecha válido ({format})'
VALIDDATEMAXDATE: 'La fecha tiene que ser mayor o igual a la fecha máxima permitida ({date})'
VALIDDATEMINDATE: 'La fecha tiene que ser posterior o coincidente a la fecha mínima permitida ({date})'
@@ -55,7 +53,6 @@ es:
RelationSearch: 'Búsqueda de relación'
ResetFilter: Restaurar
SilverStripe\Forms\GridField\GridFieldDeleteAction:
- DELETE_DESCRIPTION: Borrar
Delete: Borrar
DeletePermissionsFailure: 'Sin permiso para borrar'
EditPermissionsFailure: 'No se pudo editar permisos'
@@ -67,8 +64,6 @@ es:
DeletePermissionsFailure: 'Sin permiso para borrar'
Deleted: 'Borrado {type} {name}'
Save: Guardar
- SilverStripe\Forms\GridField\GridFieldEditButton_ss:
- EDIT: Editar
SilverStripe\Forms\MoneyField:
FIELDLABELAMOUNT: Cantidad
FIELDLABELCURRENCY: Moneda
diff --git a/lang/es_AR.yml b/lang/es_AR.yml
index 3539b9101..773d79948 100644
--- a/lang/es_AR.yml
+++ b/lang/es_AR.yml
@@ -1,9 +1,6 @@
es_AR:
SilverStripe\Forms\ConfirmedPasswordField:
SHOWONCLICKTITLE: 'Cambiar Contraseña'
- SilverStripe\Forms\DateField:
- NOTSET: 'no especificada'
- TODAY: hoy
SilverStripe\Forms\DropdownField:
CHOOSE: (Selecciona)
SilverStripe\Forms\Form:
diff --git a/lang/es_MX.yml b/lang/es_MX.yml
index 5fd337559..04baa70a6 100644
--- a/lang/es_MX.yml
+++ b/lang/es_MX.yml
@@ -2,8 +2,6 @@ es_MX:
SilverStripe\Forms\ConfirmedPasswordField:
SHOWONCLICKTITLE: 'Cambiar contraseña'
SilverStripe\Forms\DateField:
- NOTSET: 'no especificada'
- TODAY: ahora
VALIDDATEFORMAT2: 'Por favor ingresar un formato válido de fecha ({format})'
VALIDDATEMAXDATE: 'Tu fecha tiene que ser más antigua o al menos coincidir con la fecha mínima permitida ({date})'
VALIDDATEMINDATE: 'Tu fecha tiene que ser nueva o al menos coincidir con la fecha mínima permitida ({date})'
diff --git a/lang/et_EE.yml b/lang/et_EE.yml
index 2c44eee9b..63fc4cd5d 100644
--- a/lang/et_EE.yml
+++ b/lang/et_EE.yml
@@ -8,8 +8,6 @@ et_EE:
MAXIMUM: 'Parool võib olla kuni {max} märki pikk.'
SHOWONCLICKTITLE: 'Muuda parool'
SilverStripe\Forms\DateField:
- NOTSET: 'Pole seadistatud'
- TODAY: Täna
VALIDDATEFORMAT2: 'Sisestage sobivas vormingus kuupäev ({format})'
VALIDDATEMAXDATE: 'Teie kuupäev peab oleme lubatud kuupäevast ({date}) varasem või ühtima sellega.'
VALIDDATEMINDATE: 'Teie kuupäev peab oleme lubatud kuupäevast ({date}) hilisem või ühtima sellega.'
@@ -41,7 +39,6 @@ et_EE:
RelationSearch: 'Seose otsing'
ResetFilter: Lähtesta
SilverStripe\Forms\GridField\GridFieldDeleteAction:
- DELETE_DESCRIPTION: Kustuta
Delete: Kustuta
DeletePermissionsFailure: 'Kustutamisõigused puuduvad'
UnlinkRelation: 'Tühista linkimine'
@@ -52,8 +49,6 @@ et_EE:
DeletePermissionsFailure: 'Kustutamisõigused puuduvad'
Deleted: '{type} {name} on kustutatud'
Save: Salvesta
- SilverStripe\Forms\GridField\GridFieldEditButton_ss:
- EDIT: Redigeeri
SilverStripe\Forms\MoneyField:
FIELDLABELAMOUNT: Hulk
FIELDLABELCURRENCY: Valuuta
diff --git a/lang/fa_IR.yml b/lang/fa_IR.yml
index 14c967ba9..b292b25d7 100644
--- a/lang/fa_IR.yml
+++ b/lang/fa_IR.yml
@@ -13,8 +13,6 @@ fa_IR:
SilverStripe\Forms\CurrencyField:
CURRENCYSYMBOL: ﷼
SilverStripe\Forms\DateField:
- NOTSET: نامشخص
- TODAY: امروز
VALIDDATEFORMAT2: 'لطفاً یک قالب تاریخ معتبر وارد نمایید ({format})'
VALIDDATEMAXDATE: 'تاریخ شما باید قدیمیتر یا برابر با حداکثر تاریخ مجاز ({date}) باشد'
VALIDDATEMINDATE: 'تاریخ شما باید جدیدتر یا برابر با حداقل تاریخ مجاز ({date}) باشد'
@@ -50,7 +48,6 @@ fa_IR:
RelationSearch: 'جستجوی رابط'
ResetFilter: 'از نو'
SilverStripe\Forms\GridField\GridFieldDeleteAction:
- DELETE_DESCRIPTION: حذف
Delete: حذف
DeletePermissionsFailure: 'دسترسیهای حذف وجود ندارد'
EditPermissionsFailure: 'دسترسیهای حذف لینک وجود ندارد'
@@ -62,8 +59,6 @@ fa_IR:
DeletePermissionsFailure: 'دسترسیهای حذف وجود ندارد'
Deleted: 'حذف شده {type} {name}'
Save: ذخیره
- SilverStripe\Forms\GridField\GridFieldEditButton_ss:
- EDIT: ویرایش
SilverStripe\Forms\MoneyField:
FIELDLABELAMOUNT: مقدار
FIELDLABELCURRENCY: 'واحد پول'
diff --git a/lang/fi.yml b/lang/fi.yml
index 8bbb331f5..364762d3a 100644
--- a/lang/fi.yml
+++ b/lang/fi.yml
@@ -37,8 +37,6 @@ fi:
SilverStripe\Forms\CurrencyField:
CURRENCYSYMBOL: $
SilverStripe\Forms\DateField:
- NOTSET: 'ei asetettu'
- TODAY: tänään
VALIDDATEFORMAT2: 'Ole hyvä ja kirjaa päivämäärä sallitussa muodossa ({format})'
VALIDDATEMAXDATE: 'Päivämäärän on oltava vanhempi tai sovittava asetettuun maksimiin ({date})'
VALIDDATEMINDATE: 'Päivämäärän on oltava uudempi tai sovittava asetettuun minimiin ({date})'
@@ -86,7 +84,6 @@ fi:
RelationSearch: Relaatiohaku
ResetFilter: Nollaa
SilverStripe\Forms\GridField\GridFieldDeleteAction:
- DELETE_DESCRIPTION: Poista
Delete: Poista
DeletePermissionsFailure: 'Ei oikeuksia poistamiseen'
EditPermissionsFailure: 'Ei oikeuksia purkaa linkitystä tietueeseen'
@@ -98,8 +95,6 @@ fi:
DeletePermissionsFailure: 'Ei oikeuksia poistamiseen'
Deleted: 'Poistettiin {type} {name}'
Save: Tallenna
- SilverStripe\Forms\GridField\GridFieldEditButton_ss:
- EDIT: Muokkaa
SilverStripe\Forms\GridField\GridFieldGroupDeleteAction:
UnlinkSelfFailure: 'Et voi siirtää itseäsi pois tästä ryhmästä: menettäisit pääkäyttäjän oikeudet'
SilverStripe\Forms\GridField\GridFieldPaginator:
diff --git a/lang/fo.yml b/lang/fo.yml
index b9f881ac6..e95dfc85c 100644
--- a/lang/fo.yml
+++ b/lang/fo.yml
@@ -1,9 +1,6 @@
fo:
SilverStripe\Forms\ConfirmedPasswordField:
SHOWONCLICKTITLE: 'Broyt loyniorð'
- SilverStripe\Forms\DateField:
- NOTSET: 'ikki ásett'
- TODAY: 'í dag'
SilverStripe\Forms\DropdownField:
CHOOSE: (Áset)
SilverStripe\Forms\Form:
diff --git a/lang/fr.yml b/lang/fr.yml
index 3b533783b..15b6dab42 100644
--- a/lang/fr.yml
+++ b/lang/fr.yml
@@ -37,8 +37,6 @@ fr:
SilverStripe\Forms\CurrencyField:
CURRENCYSYMBOL: $
SilverStripe\Forms\DateField:
- NOTSET: 'non renseigné'
- TODAY: 'aujourd''hui'
VALIDDATEFORMAT2: 'Saisissez une date au format valide ({format})'
VALIDDATEMAXDATE: 'La date doit être antérieure ou égale à celle autorisée ({date})'
VALIDDATEMINDATE: 'La date doit être postérieure ou égale à celle autorisée ({date})'
@@ -86,7 +84,6 @@ fr:
RelationSearch: 'Rechercher relations'
ResetFilter: Réinitialiser
SilverStripe\Forms\GridField\GridFieldDeleteAction:
- DELETE_DESCRIPTION: Supprimer
Delete: Supprimer
DeletePermissionsFailure: 'Vous n’avez pas les autorisations pour supprimer'
EditPermissionsFailure: 'Pas de permissions pour délier l''enregistrement'
@@ -98,8 +95,6 @@ fr:
DeletePermissionsFailure: 'Vous n’avez pas les autorisations pour supprimer'
Deleted: '{type} {name} supprimés'
Save: Enregistrer
- SilverStripe\Forms\GridField\GridFieldEditButton_ss:
- EDIT: Editer
SilverStripe\Forms\GridField\GridFieldGroupDeleteAction:
UnlinkSelfFailure: 'Impossible de retirer votre propre profil de ce groupe, vous perdriez vos droits d''administration'
SilverStripe\Forms\GridField\GridFieldPaginator:
diff --git a/lang/gl_ES.yml b/lang/gl_ES.yml
index c165b63a1..b9773f123 100644
--- a/lang/gl_ES.yml
+++ b/lang/gl_ES.yml
@@ -3,8 +3,6 @@ gl_ES:
SHOWONCLICKTITLE: 'Mudar Contrasinal'
SilverStripe\Forms\CurrencyField:
CURRENCYSYMBOL: €
- SilverStripe\Forms\DateField:
- NOTSET: 'sen establecer'
SilverStripe\Forms\DropdownField:
CHOOSE: (Escoller)
SilverStripe\Forms\Form:
diff --git a/lang/hr.yml b/lang/hr.yml
index c0823ee2b..f7087f039 100644
--- a/lang/hr.yml
+++ b/lang/hr.yml
@@ -7,8 +7,6 @@ hr:
SilverStripe\Forms\CurrencyField:
CURRENCYSYMBOL: $
SilverStripe\Forms\DateField:
- NOTSET: 'nije postavljeno'
- TODAY: danas
VALIDDATEFORMAT2: 'Molimo unesite datum u ispravnom formatu ({format})'
SilverStripe\Forms\DropdownField:
CHOOSE: (Odaberite)
@@ -26,7 +24,6 @@ hr:
Find: Pronađi
Print: Ispiši
SilverStripe\Forms\GridField\GridFieldDeleteAction:
- DELETE_DESCRIPTION: Obriši
Delete: Obriši
SilverStripe\Forms\GridField\GridFieldDetailForm:
CancelBtn: Odustani
@@ -35,8 +32,6 @@ hr:
DeletePermissionsFailure: 'Nema dozvole brisanja'
Deleted: 'Obrisano {type} {name}'
Save: Spremi
- SilverStripe\Forms\GridField\GridFieldEditButton_ss:
- EDIT: Uredi
SilverStripe\Forms\MoneyField:
FIELDLABELCURRENCY: Valuta
SilverStripe\ORM\FieldType\DBBoolean:
diff --git a/lang/id.yml b/lang/id.yml
index 4e8bf8875..d17eac338 100644
--- a/lang/id.yml
+++ b/lang/id.yml
@@ -10,8 +10,6 @@ id:
SilverStripe\Forms\CurrencyField:
CURRENCYSYMBOL: $
SilverStripe\Forms\DateField:
- NOTSET: 'tidak diatur'
- TODAY: 'hari ini'
VALIDDATEFORMAT2: 'Mohon isikan format tanggal yang valid ({format})'
VALIDDATEMAXDATE: 'Tanggal Anda harus lebih lama atau sama dengan tanggal maksimum ({date})'
VALIDDATEMINDATE: 'Tanggal Anda harus lebih baru atau sama dengan tanggal minimum ({date})'
@@ -47,7 +45,6 @@ id:
RelationSearch: 'Cari yang terkait'
ResetFilter: Reset
SilverStripe\Forms\GridField\GridFieldDeleteAction:
- DELETE_DESCRIPTION: Hapus
Delete: Hapus
DeletePermissionsFailure: 'Tidak ada ijin menghapus'
EditPermissionsFailure: 'Tidak ada ijin membuka tautan'
@@ -59,8 +56,6 @@ id:
DeletePermissionsFailure: 'Tidak ada ijin menghapus'
Deleted: '{type} {name} dihapus'
Save: Simpan
- SilverStripe\Forms\GridField\GridFieldEditButton_ss:
- EDIT: Edit
SilverStripe\Forms\MoneyField:
FIELDLABELAMOUNT: Jumlah
FIELDLABELCURRENCY: 'Mata Uang'
diff --git a/lang/id_ID.yml b/lang/id_ID.yml
index 9d4b6a922..22ebcb2e5 100644
--- a/lang/id_ID.yml
+++ b/lang/id_ID.yml
@@ -10,8 +10,6 @@ id_ID:
SilverStripe\Forms\CurrencyField:
CURRENCYSYMBOL: $
SilverStripe\Forms\DateField:
- NOTSET: 'tidak diatur'
- TODAY: 'hari ini'
VALIDDATEFORMAT2: 'Mohon isikan format tanggal yang valid ({format})'
VALIDDATEMAXDATE: 'Tanggal Anda harus lebih lama atau sama dengan tanggal maksimum ({date})'
VALIDDATEMINDATE: 'Tanggal Anda harus lebih baru atau sama dengan tanggal minimum ({date})'
@@ -47,7 +45,6 @@ id_ID:
RelationSearch: 'Cari yang terkait'
ResetFilter: Reset
SilverStripe\Forms\GridField\GridFieldDeleteAction:
- DELETE_DESCRIPTION: Hapus
Delete: Hapus
DeletePermissionsFailure: 'Tidak ada ijin menghapus'
EditPermissionsFailure: 'Tidak ada ijin membuka tautan'
@@ -59,8 +56,6 @@ id_ID:
DeletePermissionsFailure: 'Tidak ada ijin menghapus'
Deleted: '{type} {name} dihapus'
Save: Simpan
- SilverStripe\Forms\GridField\GridFieldEditButton_ss:
- EDIT: Edit
SilverStripe\Forms\MoneyField:
FIELDLABELAMOUNT: Jumlah
FIELDLABELCURRENCY: 'Mata Uang'
diff --git a/lang/is.yml b/lang/is.yml
index 9da7485ab..dd322dfa5 100644
--- a/lang/is.yml
+++ b/lang/is.yml
@@ -3,9 +3,6 @@ is:
SHOWONCLICKTITLE: 'Breyta lykliorði'
SilverStripe\Forms\CurrencyField:
CURRENCYSYMBOL: kr
- SilverStripe\Forms\DateField:
- NOTSET: 'ekki valið'
- TODAY: 'í dag'
SilverStripe\Forms\DropdownField:
CHOOSE: (Veldu)
SilverStripe\Forms\Form:
diff --git a/lang/it.yml b/lang/it.yml
index e3dedc079..05bf5dc83 100644
--- a/lang/it.yml
+++ b/lang/it.yml
@@ -37,8 +37,6 @@ it:
SilverStripe\Forms\CurrencyField:
CURRENCYSYMBOL: $
SilverStripe\Forms\DateField:
- NOTSET: 'non impostato'
- TODAY: oggi
VALIDDATEFORMAT2: 'Inserisci un formato di data valido ({format})'
VALIDDATEMAXDATE: 'La tua data deve essere più vecchia o uguale alla data massima consentita ({date})'
VALIDDATEMINDATE: 'La tua data deve essere più nuova o uguale alla data minima consentita ({date})'
@@ -86,7 +84,6 @@ it:
RelationSearch: 'Cerca relazione'
ResetFilter: Azzera
SilverStripe\Forms\GridField\GridFieldDeleteAction:
- DELETE_DESCRIPTION: Elimina
Delete: Elimina
DeletePermissionsFailure: 'Non hai i permessi per eliminare'
EditPermissionsFailure: 'Non hai i permessi per modificare'
@@ -98,8 +95,6 @@ it:
DeletePermissionsFailure: 'Non hai i permessi per eliminare'
Deleted: 'Eliminato {type} {name}'
Save: Salva
- SilverStripe\Forms\GridField\GridFieldEditButton_ss:
- EDIT: Modifica
SilverStripe\Forms\GridField\GridFieldPaginator:
OF: di
Page: Pagina
diff --git a/lang/ja.yml b/lang/ja.yml
index 7f76ad481..b2f92eb1e 100644
--- a/lang/ja.yml
+++ b/lang/ja.yml
@@ -5,8 +5,6 @@ ja:
MAXIMUM: 'パスワードは{max} 文字以内でなければなりません。'
SHOWONCLICKTITLE: パスワード変更
SilverStripe\Forms\DateField:
- NOTSET: セットされていません
- TODAY: 今日
VALIDDATEFORMAT2: '{{format}}日付フォーマットの正しい日付を入力してください。'
VALIDDATEMAXDATE: '許可されている最も新しい日付{{date}}より古い日付か同じ日付である必要があります。'
VALIDDATEMINDATE: '許可されている最も古い日付{{date}}より新しい日付か同じ日付である必要があります'
@@ -39,7 +37,6 @@ ja:
RelationSearch: 関連検索
ResetFilter: リセット
SilverStripe\Forms\GridField\GridFieldDeleteAction:
- DELETE_DESCRIPTION: 削除
Delete: 削除
DeletePermissionsFailure: 削除権限がありません
EditPermissionsFailure: レコードのリンクを解除するための権限がありません
@@ -51,8 +48,6 @@ ja:
DeletePermissionsFailure: 削除権限がありません
Deleted: '削除済み {type} {name}'
Save: 保存
- SilverStripe\Forms\GridField\GridFieldEditButton_ss:
- EDIT: 編集
SilverStripe\Forms\MoneyField:
FIELDLABELAMOUNT: 総計
FIELDLABELCURRENCY: 通貨
diff --git a/lang/lt.yml b/lang/lt.yml
index 5f70dd239..abdbaea25 100644
--- a/lang/lt.yml
+++ b/lang/lt.yml
@@ -10,8 +10,6 @@ lt:
SilverStripe\Forms\CurrencyField:
CURRENCYSYMBOL: €
SilverStripe\Forms\DateField:
- NOTSET: nenustatyta
- TODAY: šiandien
VALIDDATEFORMAT2: 'Prašome suvesti datą reikiamu formatu ({format})'
VALIDDATEMAXDATE: 'Data privalo būti senesnė arba lygi vėliausiai galimai datai ({date})'
VALIDDATEMINDATE: 'Data privalo būti naujesnė arba lygi anksčiausiai galimai datai ({date})'
@@ -47,7 +45,6 @@ lt:
RelationSearch: 'Sąryšių paieška'
ResetFilter: Atstatyti
SilverStripe\Forms\GridField\GridFieldDeleteAction:
- DELETE_DESCRIPTION: Ištrinti
Delete: Ištrinti
DeletePermissionsFailure: 'Nėra leidimų trynimui'
EditPermissionsFailure: 'Nėra leidimų atjungti įrašą'
@@ -59,8 +56,6 @@ lt:
DeletePermissionsFailure: 'Nėra leidimų trynimui'
Deleted: 'Ištrinta {type} {name}'
Save: Išsaugoti
- SilverStripe\Forms\GridField\GridFieldEditButton_ss:
- EDIT: Redaguoti
SilverStripe\Forms\MoneyField:
FIELDLABELAMOUNT: Kiekis
FIELDLABELCURRENCY: Valiuta
diff --git a/lang/lv.yml b/lang/lv.yml
index d7106a435..cfa2299d9 100644
--- a/lang/lv.yml
+++ b/lang/lv.yml
@@ -3,9 +3,6 @@ lv:
SHOWONCLICKTITLE: 'Mainīt paroli'
SilverStripe\Forms\CurrencyField:
CURRENCYSYMBOL: Ls
- SilverStripe\Forms\DateField:
- NOTSET: 'nav uzstādīts'
- TODAY: šodien
SilverStripe\Forms\DropdownField:
CHOOSE: (Izvēlieties)
SilverStripe\Forms\Form:
diff --git a/lang/mi.yml b/lang/mi.yml
index 954732f27..7a2601ed5 100644
--- a/lang/mi.yml
+++ b/lang/mi.yml
@@ -7,8 +7,6 @@ mi:
SilverStripe\Forms\CurrencyField:
CURRENCYSYMBOL: $
SilverStripe\Forms\DateField:
- NOTSET: 'kāore i tautuhia'
- TODAY: 'tēnei rā'
VALIDDATEFORMAT2: 'Tāurua he hōputu rā tika ({format})'
VALIDDATEMAXDATE: 'Me tawhito ake tō rā, kia ōrite rānei ki te rā mōrahi ({date}) kua whakaaetia'
VALIDDATEMINDATE: 'Me hōu ake tō rā, kia ōrite rānei ki te rā moroiti ({date}) kua whakaaetia'
@@ -41,7 +39,6 @@ mi:
RelationSearch: 'Rapu whanaunga'
ResetFilter: 'Tautuhi anō'
SilverStripe\Forms\GridField\GridFieldDeleteAction:
- DELETE_DESCRIPTION: Muku
Delete: Muku
DeletePermissionsFailure: 'Kāore he muku whakaaetanga'
EditPermissionsFailure: 'Kāore ō whakaaetanga kia wetehono pūkete'
@@ -53,8 +50,6 @@ mi:
DeletePermissionsFailure: 'Kāore he whakaaetanga muku'
Deleted: 'Kua mukua {type} {name}'
Save: Tiaki
- SilverStripe\Forms\GridField\GridFieldEditButton_ss:
- EDIT: Whakatika
SilverStripe\Forms\MoneyField:
FIELDLABELAMOUNT: Rahinga
FIELDLABELCURRENCY: Moni
diff --git a/lang/nb.yml b/lang/nb.yml
index 2825f7543..91dd9f758 100644
--- a/lang/nb.yml
+++ b/lang/nb.yml
@@ -7,8 +7,6 @@ nb:
SilverStripe\Forms\CurrencyField:
CURRENCYSYMBOL: $
SilverStripe\Forms\DateField:
- NOTSET: 'Ikke satt'
- TODAY: 'i dag'
VALIDDATEFORMAT2: 'Vennligst skriv inn et gyldig datoformat ({format})'
VALIDDATEMAXDATE: 'Din dato må være eldre eller i samsvar med maksimum tillatte dato ({date})'
VALIDDATEMINDATE: 'Din dato må være nyere eller i samsvar med minimum tillatte dato ({date})'
@@ -41,7 +39,6 @@ nb:
RelationSearch: Relasjonssøk
ResetFilter: Tilbakestille
SilverStripe\Forms\GridField\GridFieldDeleteAction:
- DELETE_DESCRIPTION: Slett
Delete: Slett
DeletePermissionsFailure: 'Ikke tillatt å slette'
EditPermissionsFailure: 'Ikke tilgang til å fjerne oppføringer'
@@ -53,8 +50,6 @@ nb:
DeletePermissionsFailure: 'Ikke tillatt å slette'
Deleted: 'Slettet {type} {name}'
Save: Lagre
- SilverStripe\Forms\GridField\GridFieldEditButton_ss:
- EDIT: Rediger
SilverStripe\Forms\MoneyField:
FIELDLABELAMOUNT: Mengde
FIELDLABELCURRENCY: Valuta
diff --git a/lang/nl.yml b/lang/nl.yml
index 2903dff05..64f191213 100644
--- a/lang/nl.yml
+++ b/lang/nl.yml
@@ -13,8 +13,6 @@ nl:
SilverStripe\Forms\CurrencyField:
CURRENCYSYMBOL: $
SilverStripe\Forms\DateField:
- NOTSET: 'niet ingesteld'
- TODAY: vandaag
VALIDDATEFORMAT2: 'Vul een geldig datumformaat in ({format})'
VALIDDATEMAXDATE: 'De datum moet ouder of gelijk zijn aan de maximale datum ({date})'
VALIDDATEMINDATE: 'De datum moet nieuwer of gelijk zijn aan de minimale datum ({date})'
@@ -51,7 +49,6 @@ nl:
RelationSearch: 'Zoek relatie'
ResetFilter: Resetten
SilverStripe\Forms\GridField\GridFieldDeleteAction:
- DELETE_DESCRIPTION: Verwijderen
Delete: Verwijder
DeletePermissionsFailure: 'Onvoldoende rechten om te verwijderen'
EditPermissionsFailure: 'Geen toelating om te ontkoppelen'
@@ -63,8 +60,6 @@ nl:
DeletePermissionsFailure: 'Onvoldoende rechten om te verwijderen'
Deleted: '{type} {name} verwijderd'
Save: Opslaan
- SilverStripe\Forms\GridField\GridFieldEditButton_ss:
- EDIT: Bewerken
SilverStripe\Forms\MoneyField:
FIELDLABELAMOUNT: Aantal
FIELDLABELCURRENCY: Munteenheid
diff --git a/lang/pl.yml b/lang/pl.yml
index 03753f33b..c0359c922 100644
--- a/lang/pl.yml
+++ b/lang/pl.yml
@@ -7,8 +7,6 @@ pl:
SilverStripe\Forms\CurrencyField:
CURRENCYSYMBOL: $
SilverStripe\Forms\DateField:
- NOTSET: 'nie ustawiono'
- TODAY: dzisiaj
VALIDDATEFORMAT2: 'Proszę wprowadź prawidłowy format daty ({format})'
VALIDDATEMAXDATE: 'Twoja data musi być wcześniejsza lub taka sama, jak maksymalna dozwolona data ({date})'
VALIDDATEMINDATE: 'Twoja data musi być późniejsza lub taka sama, jak minimalna dozwolona data ({date})'
@@ -41,7 +39,6 @@ pl:
RelationSearch: 'Wyszukiwanie powiązań'
ResetFilter: Resetuj
SilverStripe\Forms\GridField\GridFieldDeleteAction:
- DELETE_DESCRIPTION: Usuń
Delete: Usuń
DeletePermissionsFailure: 'Brak uprawnień do usuwania'
EditPermissionsFailure: 'Nie masz uprawnień, aby odłączyć rekord'
@@ -53,8 +50,6 @@ pl:
DeletePermissionsFailure: 'Brak uprawnień do usuwania'
Deleted: 'Usunięto {type} {name}'
Save: Zapisz
- SilverStripe\Forms\GridField\GridFieldEditButton_ss:
- EDIT: Edytuj
SilverStripe\Forms\MoneyField:
FIELDLABELAMOUNT: Ilość
FIELDLABELCURRENCY: waluta
diff --git a/lang/pt.yml b/lang/pt.yml
index b4b030690..2a7c645d2 100644
--- a/lang/pt.yml
+++ b/lang/pt.yml
@@ -1,9 +1,6 @@
pt:
SilverStripe\Forms\ConfirmedPasswordField:
SHOWONCLICKTITLE: 'Mudar password'
- SilverStripe\Forms\DateField:
- NOTSET: 'Não inserido'
- TODAY: Hoje
SilverStripe\Forms\DropdownField:
CHOOSE: (Escolha)
SilverStripe\Forms\Form:
diff --git a/lang/pt_BR.yml b/lang/pt_BR.yml
index fc7c41713..10d37fa3d 100644
--- a/lang/pt_BR.yml
+++ b/lang/pt_BR.yml
@@ -3,9 +3,6 @@ pt_BR:
SHOWONCLICKTITLE: 'Trocar senha'
SilverStripe\Forms\CurrencyField:
CURRENCYSYMBOL: R$
- SilverStripe\Forms\DateField:
- NOTSET: 'não informado'
- TODAY: hoje
SilverStripe\Forms\DropdownField:
CHOOSE: Selecione
SilverStripe\Forms\Form:
diff --git a/lang/ro.yml b/lang/ro.yml
index aa855a0d0..e02135a75 100644
--- a/lang/ro.yml
+++ b/lang/ro.yml
@@ -4,8 +4,6 @@ ro:
BETWEEN: 'Parola trebuie să conțină între {min} și {max} caractere.'
MAXIMUM: 'Parola trebuie să conțină cel mult {max} caractere.'
SHOWONCLICKTITLE: 'Schimbare Parola'
- SilverStripe\Forms\DateField:
- TODAY: astăzi
SilverStripe\Forms\DropdownField:
CHOOSE: (Alege)
SilverStripe\Forms\GridField\GridField:
diff --git a/lang/ru.yml b/lang/ru.yml
index 5d8cf119d..73602e013 100644
--- a/lang/ru.yml
+++ b/lang/ru.yml
@@ -33,8 +33,6 @@ ru:
SilverStripe\Forms\CurrencyField:
CURRENCYSYMBOL: $
SilverStripe\Forms\DateField:
- NOTSET: 'не установлено'
- TODAY: сегодня
VALIDDATEFORMAT2: 'Пожалуйста, задайте верный формат даты ({format})'
VALIDDATEMAXDATE: 'Требуется значение даты, совпадающее с максимальным ({date}) или более старое'
VALIDDATEMINDATE: 'Требуется значение даты, совпадающее с минимальным ({date}) или более новое'
@@ -82,7 +80,6 @@ ru:
RelationSearch: 'Поиск отношений'
ResetFilter: Сброс
SilverStripe\Forms\GridField\GridFieldDeleteAction:
- DELETE_DESCRIPTION: Удалить
Delete: Удалить
DeletePermissionsFailure: 'Нет прав на удаление'
EditPermissionsFailure: 'Не достаточно прав для удаления записи'
@@ -94,8 +91,6 @@ ru:
DeletePermissionsFailure: 'Нет прав на удаление'
Deleted: 'Удалено {type} {name}'
Save: Сохранить
- SilverStripe\Forms\GridField\GridFieldEditButton_ss:
- EDIT: Редактировать
SilverStripe\Forms\GridField\GridFieldPaginator:
OF: из
Page: Страница
diff --git a/lang/sk.yml b/lang/sk.yml
index 5d82a7d8a..861045fc6 100644
--- a/lang/sk.yml
+++ b/lang/sk.yml
@@ -37,8 +37,6 @@ sk:
SilverStripe\Forms\CurrencyField:
CURRENCYSYMBOL: $
SilverStripe\Forms\DateField:
- NOTSET: nezadané
- TODAY: dnes
VALIDDATEFORMAT2: 'Prosím zadajte platný formát dátumu ({format})'
VALIDDATEMAXDATE: 'Váš dátum musí byť starší alebo odpovedajúci maximu povoleného dátumu ({date})'
VALIDDATEMINDATE: 'Váš dátum musí byť novší alebo odpovedajúci minimu povoleného dátumu ({date})'
@@ -78,7 +76,6 @@ sk:
RelationSearch: 'Vzťah hľadania'
ResetFilter: Reset
SilverStripe\Forms\GridField\GridFieldDeleteAction:
- DELETE_DESCRIPTION: Zmazať
Delete: Zmazať
DeletePermissionsFailure: 'Žiadne oprávnenia zmazať'
EditPermissionsFailure: 'Žiadne oprávnenie pre odpojenie záznamu'
@@ -90,8 +87,6 @@ sk:
DeletePermissionsFailure: 'Žiadne oprávnenia zmazať'
Deleted: 'Zmazané {type} {name}'
Save: Uložiť
- SilverStripe\Forms\GridField\GridFieldEditButton_ss:
- EDIT: Editovať
SilverStripe\Forms\GridField\GridFieldPaginator:
Page: Stránka
SilverStripe\Forms\MoneyField:
diff --git a/lang/sl.yml b/lang/sl.yml
index 7e5138547..bccd51826 100644
--- a/lang/sl.yml
+++ b/lang/sl.yml
@@ -5,8 +5,6 @@ sl:
MAXIMUM: 'Geslo je lahko dolgo največ {max} znakov.'
SHOWONCLICKTITLE: 'Spremeni geslo'
SilverStripe\Forms\DateField:
- NOTSET: 'ni nastavljeno'
- TODAY: danes
VALIDDATEFORMAT2: 'Prosim, vnesite ustrezno obliko datuma ({format})'
VALIDDATEMAXDATE: 'Datum mora biti starejši ali enak največjemu dovoljenemu datumu ({date})'
VALIDDATEMINDATE: 'Datum mora biti novejši ali enak najmanjšemu dovoljenemu datumu ({date})'
@@ -40,7 +38,6 @@ sl:
RelationSearch: 'Povezano iskanje'
ResetFilter: Ponastavi
SilverStripe\Forms\GridField\GridFieldDeleteAction:
- DELETE_DESCRIPTION: Izbriši
Delete: Izbriši
DeletePermissionsFailure: 'Ni dovoljenja za brisanje'
UnlinkRelation: 'Odstrani povezavo'
@@ -51,8 +48,6 @@ sl:
DeletePermissionsFailure: 'Ni dovoljenja za brisanje'
Deleted: 'Izbrisanih {type} {name}'
Save: Shrani
- SilverStripe\Forms\GridField\GridFieldEditButton_ss:
- EDIT: Uredi
SilverStripe\Forms\MoneyField:
FIELDLABELAMOUNT: Znesek
FIELDLABELCURRENCY: Valuta
diff --git a/lang/sl_SI.yml b/lang/sl_SI.yml
index 01fb8b0a3..ec4ad09e8 100644
--- a/lang/sl_SI.yml
+++ b/lang/sl_SI.yml
@@ -7,8 +7,6 @@ sl_SI:
SilverStripe\Forms\CurrencyField:
CURRENCYSYMBOL: €
SilverStripe\Forms\DateField:
- NOTSET: 'ni nastavljeno'
- TODAY: danes
VALIDDATEFORMAT2: 'Prosimo vnesite veljavno obliko datuma ({format})'
SilverStripe\Forms\DropdownField:
CHOOSE: (Izberi)
@@ -24,7 +22,6 @@ sl_SI:
Print: Natisni
ResetFilter: Resetiraj
SilverStripe\Forms\GridField\GridFieldDeleteAction:
- DELETE_DESCRIPTION: Izbriši
Delete: Izbriši
UnlinkRelation: 'Odstrani povezavo'
SilverStripe\Forms\GridField\GridFieldDetailForm:
@@ -34,8 +31,6 @@ sl_SI:
DeletePermissionsFailure: 'Nimate pravic za brisanje'
Deleted: 'Izbrisano {type} {name}'
Save: Shrani
- SilverStripe\Forms\GridField\GridFieldEditButton_ss:
- EDIT: Uredi
SilverStripe\ORM\FieldType\DBBoolean:
NOANSWER: Ne
YESANSWER: Da
diff --git a/lang/sr.yml b/lang/sr.yml
index 4a989ee97..07f642278 100644
--- a/lang/sr.yml
+++ b/lang/sr.yml
@@ -7,8 +7,6 @@ sr:
SilverStripe\Forms\CurrencyField:
CURRENCYSYMBOL: дин.
SilverStripe\Forms\DateField:
- NOTSET: 'није подешено'
- TODAY: данас
VALIDDATEFORMAT2: 'Молимо Вас да унесете исправан формат датума ({format})'
VALIDDATEMAXDATE: 'Датум не сме бити после ({date})'
VALIDDATEMINDATE: 'Датум не сме бити пре ({date})'
@@ -41,7 +39,6 @@ sr:
RelationSearch: 'Претраживање релације'
ResetFilter: 'Врати у пређашње стање'
SilverStripe\Forms\GridField\GridFieldDeleteAction:
- DELETE_DESCRIPTION: Избриши
Delete: Избриши
DeletePermissionsFailure: 'Немате дозволу за брисање'
EditPermissionsFailure: 'Немате дозволу да раскинете линк са записом'
@@ -53,8 +50,6 @@ sr:
DeletePermissionsFailure: 'Немате право брисања'
Deleted: 'Избрисано {type} {name}'
Save: Сачувај
- SilverStripe\Forms\GridField\GridFieldEditButton_ss:
- EDIT: Измени
SilverStripe\Forms\MoneyField:
FIELDLABELAMOUNT: Износ
FIELDLABELCURRENCY: Валута
diff --git a/lang/sr@latin.yml b/lang/sr@latin.yml
index 957457b82..1b210ae51 100644
--- a/lang/sr@latin.yml
+++ b/lang/sr@latin.yml
@@ -7,8 +7,6 @@ sr@latin:
SilverStripe\Forms\CurrencyField:
CURRENCYSYMBOL: din.
SilverStripe\Forms\DateField:
- NOTSET: 'nije podešeno'
- TODAY: danas
VALIDDATEFORMAT2: 'Molimo Vas da unesete ispravan format datuma ({format})'
VALIDDATEMAXDATE: 'Datum ne sme biti posle ({date})'
VALIDDATEMINDATE: 'Datum ne sme biti pre ({date})'
@@ -41,7 +39,6 @@ sr@latin:
RelationSearch: 'Pretraživanje relacije'
ResetFilter: 'Vrati u pređašnje stanje'
SilverStripe\Forms\GridField\GridFieldDeleteAction:
- DELETE_DESCRIPTION: Izbriši
Delete: Izbriši
DeletePermissionsFailure: 'Nemate dozvolu za brisanje'
EditPermissionsFailure: 'Nemate dozvolu da raskinete link sa zapisom'
@@ -53,8 +50,6 @@ sr@latin:
DeletePermissionsFailure: 'Nemate pravo brisanja'
Deleted: 'Izbrisano {type} {name}'
Save: Sačuvaj
- SilverStripe\Forms\GridField\GridFieldEditButton_ss:
- EDIT: Izmeni
SilverStripe\Forms\MoneyField:
FIELDLABELAMOUNT: Iznos
FIELDLABELCURRENCY: Valuta
diff --git a/lang/sr_RS.yml b/lang/sr_RS.yml
index 62d6aef15..fc79812da 100644
--- a/lang/sr_RS.yml
+++ b/lang/sr_RS.yml
@@ -7,8 +7,6 @@ sr_RS:
SilverStripe\Forms\CurrencyField:
CURRENCYSYMBOL: дин.
SilverStripe\Forms\DateField:
- NOTSET: 'није подешено'
- TODAY: данас
VALIDDATEFORMAT2: 'Молимо Вас да унесете исправан формат датума ({format})'
VALIDDATEMAXDATE: 'Датум не сме бити после ({date})'
VALIDDATEMINDATE: 'Датум не сме бити пре ({date})'
@@ -41,7 +39,6 @@ sr_RS:
RelationSearch: 'Претраживање релације'
ResetFilter: 'Врати у пређашње стање'
SilverStripe\Forms\GridField\GridFieldDeleteAction:
- DELETE_DESCRIPTION: Избриши
Delete: Избриши
DeletePermissionsFailure: 'Немате дозволу за брисање'
EditPermissionsFailure: 'Немате дозволу да раскинете линк са записом'
@@ -53,8 +50,6 @@ sr_RS:
DeletePermissionsFailure: 'Немате право брисања'
Deleted: 'Избрисано {type} {name}'
Save: Сачувај
- SilverStripe\Forms\GridField\GridFieldEditButton_ss:
- EDIT: Измени
SilverStripe\Forms\MoneyField:
FIELDLABELAMOUNT: Износ
FIELDLABELCURRENCY: Валута
diff --git a/lang/sr_RS@latin.yml b/lang/sr_RS@latin.yml
index c4c4b6900..f39b36058 100644
--- a/lang/sr_RS@latin.yml
+++ b/lang/sr_RS@latin.yml
@@ -7,8 +7,6 @@ sr_RS@latin:
SilverStripe\Forms\CurrencyField:
CURRENCYSYMBOL: din.
SilverStripe\Forms\DateField:
- NOTSET: 'nije podešeno'
- TODAY: danas
VALIDDATEFORMAT2: 'Molimo Vas da unesete ispravan format datuma ({format})'
VALIDDATEMAXDATE: 'Datum ne sme biti posle ({date})'
VALIDDATEMINDATE: 'Datum ne sme biti pre ({date})'
@@ -41,7 +39,6 @@ sr_RS@latin:
RelationSearch: 'Pretraživanje relacije'
ResetFilter: 'Vrati u pređašnje stanje'
SilverStripe\Forms\GridField\GridFieldDeleteAction:
- DELETE_DESCRIPTION: Izbriši
Delete: Izbriši
DeletePermissionsFailure: 'Nemate dozvolu za brisanje'
EditPermissionsFailure: 'Nemate dozvolu da raskinete link sa zapisom'
@@ -53,8 +50,6 @@ sr_RS@latin:
DeletePermissionsFailure: 'Nemate pravo brisanja'
Deleted: 'Izbrisano {type} {name}'
Save: Sačuvaj
- SilverStripe\Forms\GridField\GridFieldEditButton_ss:
- EDIT: Izmeni
SilverStripe\Forms\MoneyField:
FIELDLABELAMOUNT: Iznos
FIELDLABELCURRENCY: Valuta
diff --git a/lang/sv.yml b/lang/sv.yml
index 27f943efd..f35c2ee99 100644
--- a/lang/sv.yml
+++ b/lang/sv.yml
@@ -37,8 +37,6 @@ sv:
SilverStripe\Forms\CurrencyField:
CURRENCYSYMBOL: $
SilverStripe\Forms\DateField:
- NOTSET: 'inte angivet'
- TODAY: 'i dag'
VALIDDATEFORMAT2: 'Var god att ange datumet i ett giltigt format ({format})'
VALIDDATEMAXDATE: 'Angivet datum måste vara tidigare eller samma som det senaste godkända datumet ({date})'
VALIDDATEMINDATE: 'Angivet datum måste vara senare eller samma som det tidigaste godkända datumet ({date})'
@@ -84,7 +82,6 @@ sv:
RelationSearch: Relationssökning
ResetFilter: Rensa
SilverStripe\Forms\GridField\GridFieldDeleteAction:
- DELETE_DESCRIPTION: Radera
Delete: Radera
DeletePermissionsFailure: 'Rättighet för att radera saknas'
EditPermissionsFailure: 'Rättigheter för avlänkning saknas'
@@ -96,8 +93,6 @@ sv:
DeletePermissionsFailure: 'Rättighet för att radera saknas'
Deleted: 'Raderade {type} {name}'
Save: Spara
- SilverStripe\Forms\GridField\GridFieldEditButton_ss:
- EDIT: Redigera
SilverStripe\Forms\GridField\GridFieldPaginator:
Page: Sida
View: Visa
diff --git a/lang/th.yml b/lang/th.yml
index b30883ed4..a94e91ed4 100644
--- a/lang/th.yml
+++ b/lang/th.yml
@@ -2,9 +2,6 @@ th:
SilverStripe\Forms\ConfirmedPasswordField:
BETWEEN: 'รหัสผ่านต้องมีความยาวตัวอักษรอย่างน้อย {min} ถึง {max} ตัวอักษร'
SHOWONCLICKTITLE: เปลี่ยนรหัสผ่าน
- SilverStripe\Forms\DateField:
- NOTSET: ไม่ต้องตั้งค่า
- TODAY: วันนี้
SilverStripe\Forms\DropdownField:
CHOOSE: (เลือก)
SilverStripe\Forms\EmailField:
@@ -30,7 +27,6 @@ th:
Print: พิมพ์
ResetFilter: รีเซ็ต
SilverStripe\Forms\GridField\GridFieldDeleteAction:
- DELETE_DESCRIPTION: ลบ
Delete: ลบ
DeletePermissionsFailure: ไม่ได้รับสิทธิ์ให้ลบได้
UnlinkRelation: ยกเลิกการลิงก์
diff --git a/lang/tr.yml b/lang/tr.yml
index d354d3444..e40237592 100644
--- a/lang/tr.yml
+++ b/lang/tr.yml
@@ -6,9 +6,6 @@ tr:
SHOWONCLICKTITLE: 'Parola Değiştir'
SilverStripe\Forms\CurrencyField:
CURRENCYSYMBOL: USD
- SilverStripe\Forms\DateField:
- NOTSET: ayarlanmamış
- TODAY: bugün
SilverStripe\Forms\DropdownField:
CHOOSE: (Seçiniz)
SilverStripe\Forms\Form:
diff --git a/lang/uk.yml b/lang/uk.yml
index ca0be2b5a..9c30b7d1f 100644
--- a/lang/uk.yml
+++ b/lang/uk.yml
@@ -4,9 +4,6 @@ uk:
BETWEEN: 'Пароль повинен містити від {min} до {max} символів.'
MAXIMUM: 'Пароль повинен містити не більше ніж {max} символів.'
SHOWONCLICKTITLE: 'Змінити пароль'
- SilverStripe\Forms\DateField:
- NOTSET: 'не встановлено'
- TODAY: сьогодні
SilverStripe\Forms\DropdownField:
CHOOSE: (Оберіть)
SilverStripe\Forms\Form:
diff --git a/lang/zh.yml b/lang/zh.yml
index 792565ac6..26c8e2893 100644
--- a/lang/zh.yml
+++ b/lang/zh.yml
@@ -10,8 +10,6 @@ zh:
SilverStripe\Forms\CurrencyField:
CURRENCYSYMBOL: 货币字符
SilverStripe\Forms\DateField:
- NOTSET: 未设置
- TODAY: 今天
VALIDDATEFORMAT2: '请输入一个有效的日期格式 ({format})'
VALIDDATEMAXDATE: '您的日期必须更早或者符合最大允许日期 ({date})'
VALIDDATEMINDATE: '您的日期必须更迟或者符合最小允许日期 ({date})'
@@ -46,7 +44,6 @@ zh:
RelationSearch: 关系搜索
ResetFilter: 重设
SilverStripe\Forms\GridField\GridFieldDeleteAction:
- DELETE_DESCRIPTION: 删除
Delete: 删除
DeletePermissionsFailure: 没有删除权限
EditPermissionsFailure: 没有解除记录链接的权限
@@ -58,8 +55,6 @@ zh:
DeletePermissionsFailure: 没有删除权限
Deleted: '已删除的 {type} {name}'
Save: 保存
- SilverStripe\Forms\GridField\GridFieldEditButton_ss:
- EDIT: 编辑
SilverStripe\Forms\MoneyField:
FIELDLABELAMOUNT: 金额
FIELDLABELCURRENCY: 货币
diff --git a/src/Forms/Form.php b/src/Forms/Form.php
index 0619f78f5..3f5f95771 100644
--- a/src/Forms/Form.php
+++ b/src/Forms/Form.php
@@ -346,7 +346,7 @@ class Form extends ViewableData implements HasRequestHandler
// load data in from previous submission upon error
$data = $this->getSessionData();
if (isset($data)) {
- $this->loadDataFrom($data);
+ $this->loadDataFrom($data, self::MERGE_AS_INTERNAL_VALUE);
}
return $this;
}
@@ -1317,9 +1317,11 @@ class Form extends ViewableData implements HasRequestHandler
return $result;
}
- const MERGE_DEFAULT = 0;
- const MERGE_CLEAR_MISSING = 1;
- const MERGE_IGNORE_FALSEISH = 2;
+ const MERGE_DEFAULT = 0b0000;
+ const MERGE_CLEAR_MISSING = 0b0001;
+ const MERGE_IGNORE_FALSEISH = 0b0010;
+ const MERGE_AS_INTERNAL_VALUE = 0b0100;
+ const MERGE_AS_SUBMITTED_VALUE = 0b1000;
/**
* Load data from the given DataObject or array.
@@ -1340,6 +1342,7 @@ class Form extends ViewableData implements HasRequestHandler
* {@link saveInto()}.
*
* @uses FieldList->dataFields()
+ * @uses FormField->setSubmittedValue()
* @uses FormField->setValue()
*
* @param array|DataObject $data
@@ -1359,6 +1362,11 @@ class Form extends ViewableData implements HasRequestHandler
* Passing IGNORE_FALSEISH means that any false-ish value in {@link $data} won't replace
* a field's value.
*
+ * Passing MERGE_AS_INTERNAL_VALUE forces the data to be parsed using the internal representation of the matching
+ * form field. This is helpful if you are loading an array of values retrieved from `Form::getData()` and you
+ * do not want them parsed as submitted data. MERGE_AS_SUBMITTED_VALUE does the opposite and forces the data to be
+ * parsed as it would be submitted from a form.
+ *
* For backwards compatibility reasons, this parameter can also be set to === true, which is the same as passing
* CLEAR_MISSING
*
@@ -1389,6 +1397,14 @@ class Form extends ViewableData implements HasRequestHandler
$submitted = false;
}
+ // Using the `MERGE_AS_INTERNAL_VALUE` or `MERGE_AS_SUBMITTED_VALUE` flags users can explicitly specify which
+ // `setValue` method to use.
+ if (($mergeStrategy & self::MERGE_AS_INTERNAL_VALUE) == self::MERGE_AS_INTERNAL_VALUE) {
+ $submitted = false;
+ } elseif (($mergeStrategy & self::MERGE_AS_SUBMITTED_VALUE) == self::MERGE_AS_SUBMITTED_VALUE) {
+ $submitted = true;
+ }
+
// dont include fields without data
$dataFields = $this->Fields()->dataFields();
if (!$dataFields) {
diff --git a/src/Forms/GridField/GridFieldDetailForm.php b/src/Forms/GridField/GridFieldDetailForm.php
index c458fd36b..e32d42370 100644
--- a/src/Forms/GridField/GridFieldDetailForm.php
+++ b/src/Forms/GridField/GridFieldDetailForm.php
@@ -129,7 +129,8 @@ class GridFieldDetailForm implements GridField_URLHandler
protected function getItemRequestHandler($gridField, $record, $requestHandler)
{
$class = $this->getItemRequestClass();
- $this->extend('updateItemRequestClass', $class, $gridField, $record, $requestHandler);
+ $assignedClass = $this->itemRequestClass;
+ $this->extend('updateItemRequestClass', $class, $gridField, $record, $requestHandler, $assignedClass);
/** @var GridFieldDetailForm_ItemRequest $handler */
$handler = Injector::inst()->createWithArgs(
$class,
@@ -234,7 +235,7 @@ class GridFieldDetailForm implements GridField_URLHandler
} elseif (ClassInfo::exists(static::class . "_ItemRequest")) {
return static::class . "_ItemRequest";
} else {
- return __CLASS__ . '_ItemRequest';
+ return GridFieldDetailForm_ItemRequest::class;
}
}
diff --git a/tests/php/Forms/FormTest.php b/tests/php/Forms/FormTest.php
index ae7e1d7bd..3322eb1b5 100644
--- a/tests/php/Forms/FormTest.php
+++ b/tests/php/Forms/FormTest.php
@@ -8,6 +8,7 @@ use SilverStripe\Control\Session;
use SilverStripe\Dev\CSSContentParser;
use SilverStripe\Dev\FunctionalTest;
use SilverStripe\Forms\DateField;
+use SilverStripe\Forms\DatetimeField;
use SilverStripe\Forms\FieldList;
use SilverStripe\Forms\FileField;
use SilverStripe\Forms\Form;
@@ -17,16 +18,20 @@ use SilverStripe\Forms\LookupField;
use SilverStripe\Forms\NumericField;
use SilverStripe\Forms\PasswordField;
use SilverStripe\Forms\Tests\FormTest\ControllerWithSecurityToken;
+use SilverStripe\Forms\Tests\FormTest\ControllerWithSpecialSubmittedValueFields;
use SilverStripe\Forms\Tests\FormTest\ControllerWithStrictPostCheck;
use SilverStripe\Forms\Tests\FormTest\Player;
use SilverStripe\Forms\Tests\FormTest\Team;
use SilverStripe\Forms\Tests\FormTest\TestController;
+use SilverStripe\Forms\Tests\ValidatorTest\TestValidator;
use SilverStripe\Forms\TextareaField;
use SilverStripe\Forms\TextField;
+use SilverStripe\Forms\TimeField;
use SilverStripe\ORM\ValidationResult;
use SilverStripe\Security\NullSecurityToken;
use SilverStripe\Security\RandomGenerator;
use SilverStripe\Security\SecurityToken;
+use SilverStripe\View\ArrayData;
use SilverStripe\View\SSViewer;
/**
@@ -46,6 +51,7 @@ class FormTest extends FunctionalTest
TestController::class,
ControllerWithSecurityToken::class,
ControllerWithStrictPostCheck::class,
+ ControllerWithSpecialSubmittedValueFields::class
];
protected static $disable_themes = true;
@@ -261,6 +267,46 @@ class FormTest extends FunctionalTest
);
}
+ public function testLoadDataFromWithForceSetValueFlag()
+ {
+ // Get our data formatted in internal value and in submitted value
+ // We're using very esoteric date and time format
+ $dataInSubmittedValue = [
+ 'SomeDateTimeField' => 'Fri, Jun 15, \'18 17:28:05',
+ 'SomeTimeField' => '05 o\'clock PM 28 05'
+ ];
+ $dataInInternalValue = [
+ 'SomeDateTimeField' => '2018-06-15 17:28:05',
+ 'SomeTimeField' => '17:28:05'
+ ];
+
+ // Test loading our data with the MERGE_AS_INTERNAL_VALUE
+ $form = $this->getStubFormWithWeirdValueFormat();
+ $form->loadDataFrom($dataInInternalValue, Form::MERGE_AS_INTERNAL_VALUE);
+
+ $this->assertEquals(
+ $dataInInternalValue,
+ $form->getData()
+ );
+
+ // Test loading our data with the MERGE_AS_SUBMITTED_VALUE and an data passed as an object
+ $form = $this->getStubFormWithWeirdValueFormat();
+ $form->loadDataFrom(ArrayData::create($dataInSubmittedValue), Form::MERGE_AS_SUBMITTED_VALUE);
+ $this->assertEquals(
+ $dataInInternalValue,
+ $form->getData()
+ );
+
+ // Test loading our data without the MERGE_AS_INTERNAL_VALUE and without MERGE_AS_SUBMITTED_VALUE
+ $form = $this->getStubFormWithWeirdValueFormat();
+ $form->loadDataFrom($dataInSubmittedValue);
+
+ $this->assertEquals(
+ $dataInInternalValue,
+ $form->getData()
+ );
+ }
+
public function testLookupFieldDisabledSaving()
{
$object = new Team();
@@ -275,10 +321,10 @@ class FormTest extends FunctionalTest
$form->loadDataFrom(
array(
'Players' => array(
- 14,
- 18,
- 22
- ),
+ 14,
+ 18,
+ 22
+ ),
)
);
$form->saveInto($object);
@@ -969,6 +1015,64 @@ class FormTest extends FunctionalTest
}
}
+ /**
+ * This test confirms that when a form validation fails, the submitted value are stored in the session and are
+ * reloaded correctly once the form is re-rendered. This indirectly test `Form::restoreFormState`,
+ * `Form::setSessionData`, `Form::getSessionData` and `Form::clearFormState`.
+ */
+ public function testRestoreFromState()
+ {
+ // Use a specially crafted controlled for this request. The associated form contains fields that override the
+ // `setSubmittedValue` and require an internal format that differs from the submitted format.
+ $this->get('FormTest_ControllerWithSpecialSubmittedValueFields')->getBody();
+
+ // Posting our form. This should fail and redirect us to the form page and preload our submit value
+ $response = $this->post(
+ 'FormTest_ControllerWithSpecialSubmittedValueFields/Form',
+ array(
+ 'SomeDateField' => '15/06/2018',
+ 'SomeFrenchNumericField' => '9 876,5432',
+ 'SomeFrenchMoneyField' => [
+ 'Amount' => '9 876,54',
+ 'Currency' => 'NZD'
+ ]
+ // Validation will fail because we leave out SomeRequiredField
+ ),
+ []
+ );
+
+ // Test our reloaded form field
+ $body = $response->getBody();
+ $this->assertContains(
+ 'assertContains(
+ 'assertContains(
+ 'assertContains(
+ 'assertEmpty(
+ $this->mainSession->session()->get('FormInfo.Form_Form'),
+ 'Our form was reloaded successfully. That should have cleared our session.'
+ );
+ }
+
protected function getStubForm()
{
return new Form(
@@ -978,4 +1082,28 @@ class FormTest extends FunctionalTest
new FieldList()
);
}
+
+ /**
+ * Some fields handle submitted values differently from their internal values. This forms contains 2 such fields
+ * * a SomeDateTimeField that expect a date such as `Fri, Jun 15, '18 17:28:05`,
+ * * a SomeTimeField that expects it's time as `05 o'clock PM 28 05`
+ *
+ * @return Form
+ */
+ protected function getStubFormWithWeirdValueFormat()
+ {
+ return new Form(
+ Controller::curr(),
+ 'Form',
+ new FieldList(
+ $dateField = DatetimeField::create('SomeDateTimeField')
+ ->setHTML5(false)
+ ->setDatetimeFormat("EEE, MMM d, ''yy HH:mm:ss"),
+ $timeField = TimeField::create('SomeTimeField')
+ ->setHTML5(false)
+ ->setTimeFormat("hh 'o''clock' a mm ss") // Swatch Internet Time format
+ ),
+ new FieldList()
+ );
+ }
}
diff --git a/tests/php/Forms/FormTest/ControllerWithSpecialSubmittedValueFields.php b/tests/php/Forms/FormTest/ControllerWithSpecialSubmittedValueFields.php
new file mode 100644
index 000000000..c373b124a
--- /dev/null
+++ b/tests/php/Forms/FormTest/ControllerWithSpecialSubmittedValueFields.php
@@ -0,0 +1,103 @@
+setRequest(Controller::curr()->getRequest());
+ }
+ }
+
+ private static $allowed_actions = array('Form');
+
+ private static $url_handlers = array(
+ '$Action//$ID/$OtherID' => "handleAction",
+ );
+
+ protected $template = 'BlankPage';
+
+ public function Link($action = null)
+ {
+ return Controller::join_links(
+ 'FormTest_ControllerWithSpecialSubmittedValueFields',
+ $this->getRequest()->latestParam('Action'),
+ $this->getRequest()->latestParam('ID'),
+ $action
+ );
+ }
+
+ public function Form()
+ {
+ $form = new Form(
+ $this,
+ 'Form',
+ new FieldList(
+ new TextField('SomeRequiredField'),
+ DateField::create('SomeDateField')
+ ->setHTML5(false)
+ ->setDateFormat('dd/MM/yyyy')
+ ->setValue('2000-01-01'),
+ NumericField::create('SomeFrenchNumericField')
+ ->setHTML5(false)
+ ->setLocale('fr_FR')
+ ->setScale(4)
+ ->setValue(12345.6789),
+ MoneyField::create('SomeFrenchMoneyField')
+ ->setValue('100.5 EUR')
+ ->setLocale('fr_FR')
+ ),
+ new FieldList(
+ FormAction::create('doSubmit')
+ ),
+ new RequiredFields(
+ 'SomeRequiredField'
+ )
+ );
+ $form->setValidationExemptActions(array('doSubmitValidationExempt'));
+ $form->disableSecurityToken(); // Disable CSRF protection for easier form submission handling
+
+ return $form;
+ }
+
+ public function doSubmit($data, $form, $request)
+ {
+ $form->sessionMessage('Test save was successful', 'good');
+ return $this->redirectBack();
+ }
+
+ public function doTriggerException($data, $form, $request)
+ {
+ $result = new ValidationResult();
+ $result->addFieldError('Email', 'Error on Email field');
+ $result->addError('Error at top of form');
+ throw new ValidationException($result);
+ }
+
+ public function getViewer($action = null)
+ {
+ return new SSViewer('BlankPage');
+ }
+}