Commit Graph

860 Commits

Author SHA1 Message Date
Andre Kiste
cc712892a9 NEW Port betterbuttons to framework (#8569)
* MINOR: Add `Previous`, `Next` and `Create New` actions in edit form

If the form is opened via a grid field, the filters will be retained so the previous/next record opened will be correct

* MINOR: Add ability to customise the visibility of the `Previous`, `Next` and `Add` buttons at a `GridField` level

* Fix invalid action when pressing the `New` button in an edit form unless `betterbuttons` module was installed

* - Merge `showPrevious` and `showNext` to `showPagination` for grid fields
- Update documentation
- Improve performance for next/previous buttons by not fetching all list records
- Refactoring

* Refactor to fail gracefully on GridFieldPaginator
2018-11-19 11:06:47 +13:00
Christopher Darling
c186c8ea68
DOCS fix link to XHProf article 2018-11-14 21:56:57 +00:00
Robbie Averill
71eeaa090e DOCS Add documentation for configuring a HistoryViewerField for custom DataObjects
[ci skip]
2018-11-14 14:08:06 +02:00
Robbie Averill
cbea5006b3 DOCS Fix incorrect injector class reference in "replacing the logger" 2018-11-13 11:08:28 +02:00
Robbie Averill
731c865684 DOCS Clarify that the file path in stream logging is relative to index.php folder 2018-11-13 11:08:28 +02:00
Robbie Averill
18293f7afe FIX Rename pushHandler to pushLogger 2018-11-13 11:08:28 +02:00
Robbie Averill
1faf59fc54 DOCS Update documentation for separated logging interfaces 2018-11-13 11:08:28 +02:00
Robbie Averill
af8d268cc7 DOCS Update documentation for password validation rule configuration 2018-11-13 10:55:26 +02:00
Thor Chen
bda7653ae3 DOC: Fix outdated information and make enhancements for 2018-11-12 18:24:37 +13:00
Sam Minnee
0cc39af382 DOC: Added documentation for strict type changes 2018-11-09 11:08:36 +13:00
Robbie Averill
64c2938c96 Merge branch '4.3' into 4 2018-11-06 11:05:22 +01:00
Michael Strong
55f95b7bc8 BUGFIX many many through not sorting by join table (#8534)
* BUGFIX many many through not sorting by join table

* #8534 added docs to support many many sorting fix

* #8534 added test cases for many_many default sorting
2018-11-01 14:17:15 +13:00
Michael Strong
7086f2ea3a BUGFIX many many through not sorting by join table (#8534)
* BUGFIX many many through not sorting by join table

* #8534 added docs to support many many sorting fix

* #8534 added test cases for many_many default sorting
2018-11-01 13:42:27 +13:00
Andre Kiste
bed1906f73
Fix typo 2018-10-25 15:59:02 +13:00
Daniel Hensby
b47d9abd7c
Merge pull request #8488 from open-sausages/pulls/4/update-pattern-lib-doc
MINOR Update doc to explain how to use and build the pattern lib
2018-10-24 17:33:46 +01:00
Aaron Carlino
a3a4f48cb7 MINOR Update doc to explain how to use and build the pattern lib 2018-10-24 16:48:29 +13:00
Maxime Rainville
40e542de2d DOC Remove buggy example form the _Show Help Text on CMS Form Fields_ article 2018-10-23 16:04:54 +13:00
Robbie Averill
9ceef59e1b Merge branch '4.3' into 4 2018-10-20 18:31:04 +02:00
Aaron Carlino
3fcbeaddef Reverse argument signature of pathed query properties 2018-10-18 11:22:51 +13:00
Aaron Carlino
1f6a84bd8b Add docs for new args/fields API 2018-10-18 11:22:51 +13:00
DorsetDigital
97091db863
Update admin example code
Added an additional config block to the example code to set the AdminRootController.url_base config option as well and updated the description.
2018-10-16 11:45:02 +01:00
DorsetDigital
b4201fcf74
Fix example code
Add namespace to sample code for updating the CMS url.
Remove code highlighting from links to API
2018-10-16 08:45:24 +01:00
Federico Jaramillo Martínez
8e5ca9be38
Change rule names in array example 2018-10-11 10:12:38 -05:00
Federico Jaramillo Martínez
b9222cf421
Example to override a value that is an array.
Add an example for how to override a configuration value that has is array.
2018-10-11 10:09:40 -05:00
John Milmine
1fb4c6f39f Correcting docs around summary field relabelling
Although this is weird that it doesn't use the same logic and searchable fields.
2018-10-11 12:49:32 +01:00
Loz Calver
554c34eff7
DOCS: Add YAML example for including extra JS in the CMS 2018-10-11 12:33:53 +01:00
Maxime Rainville
d68f02ad25
Merge pull request #8393 from sachajudd/pulls/4/document-help-menu
DOCS Add docs for CMS help menu links
2018-10-05 14:02:14 +13:00
Sacha Judd
f5b6ce01cf DOCS Add docs for CMS help menu links
[ci skip]
2018-10-04 10:50:57 +13:00
Sebastian Kalicki
9051fb923d
removed http... 2018-10-02 05:19:27 +02:00
Sebastian Kalicki
c6c9ce8fbf
added an http / https switch 2018-10-02 00:10:55 +02:00
DorsetDigital
da38505446
Doc update - add FQCN to example code
Add fully qualified classname to aggregate caching example
2018-09-27 10:21:01 +01:00
Carlo1139
748409e61a
Typo in code snippet
Changed $ction to $action
2018-09-25 10:35:19 +02:00
Ingo Schommer
a2bb70c46d FIX Don't flush manifests in tests by default
It's massively slowing down test execution,
particularly for rapid execution through test-driven-development (TDD)
2018-09-24 18:12:35 +12:00
Robbie Averill
3b7802bb51
Merge pull request #8388 from sminnee/showqueries-backtrace
NEW: Add ?showqueries=backtrace
2018-09-19 11:21:36 +02:00
Sam Minnee
40dde226fd NEW: Add ?showqueries=backtrace
This variant of showqueries will include a backtrace after each query.
This is extremely verbose but can be helpful when diagnosing where
queries have come from.

This is something that I have frequently added as a local hack on my
environment, I figured that exposing it as a formal feature would be
useful.
2018-09-19 14:28:40 +12:00
Luke Edwards
d9d22a2895 Update docs to reflect prop-types change 2018-09-19 10:05:49 +12:00
Luke Edwards
a33866ff4c
Merge pull request #8353 from open-sausages/pulls/4.2/2227-show-link-tracking
API: Add Link Tracking section to Relations developer guide
2018-09-13 14:23:34 +12:00
bergice
01db5c9e98 API: Add Link Tracking section to Relations developer guide and describe show_sitetree_link_tracking, show_file_link_tracking.
Refactor form scaffolder.
2018-09-13 11:02:09 +12:00
Robbie Averill
54ebcc7ae4
DOCS Update references to extending Object in extensions doc 2018-09-12 16:39:59 +02:00
Robbie Averill
093b6b1646
Merge pull request #8369 from jmfederico/patch-2
Update 01_Extensions.md - Fix small typo
2018-09-12 16:35:17 +02:00
Federico Jaramillo Martínez
8244fe3a48
Update 01_Syntax.md - Fix How To's links 2018-09-09 15:59:58 -05:00
Federico Jaramillo Martínez
81dc13d2e7
Update 01_Extensions.md - Fix small typo 2018-09-09 15:47:03 -05:00
Federico Jaramillo Martínez
6e2b4c2558
Update 05_Template_Inheritance.md
Documentation mentions themes when talking about modules.
2018-09-09 10:07:49 -05:00
Martin D
b1563b73bf DOCS How to specify textual name with Email::admin_email (#8337)
* Allow use of display names with SwiftMailer

The syntax to allow display names with SwiftMailer is as follow:
`->setFrom(['john@doe.com' => 'John Doe'])`

Just like you set the `Email.admin_email`, you can set the default sender display name through the `Email.admin_email_displayname` configuration setting.

Refs:
- https://swiftmailer.symfony.com/docs/introduction.html#basic-usage
- https://docs.silverstripe.org/en/4/developer_guides/email/#administrator-emails

* Update Email.php

Simpler code using `Email.admin_email` as an associative array

* Update index.md

Added documentation showing how to add an email display name.
2018-08-29 11:42:12 +12:00
maks
b9922a7314
$has_one docs
The ` $has_one` can be used both for `1-to-1` and `many-to-1` relations, depending on how is configured the inverse mapping on the related class. The documentation seems to suggest that `$has_one` implies a `1-to-1` relation, but then it gives an example of a `many-to-1` relationship. Since we are focusing on `$has_one` I would also put the `Player` class before the `Team` class.
2018-08-18 15:06:08 +02:00
Andrew Aitken-Fincham
a97e22c8f1
Update 07_Permissions.md
Added `$context` to `canCreate()` to reflect actual method signature.
2018-08-17 13:46:29 +12:00
Robbie Averill
b22f33ae84 Merge branch '4.2' into 4 2018-08-15 13:23:27 +12:00
Robbie Averill
48c6dec47d Merge branch '4.1' into 4.2 2018-08-15 13:23:07 +12:00
Robbie Averill
1ad2d6535e Merge branch '4.0' into 4.1 2018-08-15 13:22:46 +12:00
Bernard Hamlin
25c84709f1 Add detail to negation docs
I felt the negation docs didn't cover checking if a value was *not* another value and didn't point out that `not` can't be combined with other operators.

[ci skip]
2018-08-15 13:19:35 +12:00
Scott Hutchinson
3bd2cbf199 DOCS indentation on pagination guide [ci skip]
For all those copy + paste fiends
2018-08-14 15:36:52 +12:00
Ingo Schommer
2d6964c243
Merge pull request #8261 from open-sausages/pulls/4/secure-remember-me-cookie
NEW Option for secure "remember me" cookie
2018-07-31 09:19:15 +12:00
Ingo Schommer
114b0a5ea7
NEW Option for secure "remember me" cookie
Fixes #8234
2018-07-30 16:41:49 +01:00
Daniel Hensby
d0598c02c5
Merge branch '4.2' into 4 2018-07-30 11:07:15 +01:00
Loz Calver
ef335a8a30 Update many-many-through docs (closes #8290) 2018-07-27 09:30:13 +01:00
Daniel Hensby
ae00147de1
Merge pull request #8280 from open-sausages/pulls/4/simpler-vary-header
FIX: Remove X-Requested-With from default Vary header
2018-07-24 01:45:07 +01:00
Ingo Schommer
9300e802f7
Updated caching docs (out of sync with implementation)
See https://github.com/silverstripe/silverstripe-framework/issues/8272
2018-07-23 19:09:10 +01:00
Sam Minnee
bde3121a33
FIX: Remove X-Requested-With from default Vary header
3.x forward port of https://github.com/silverstripe/silverstripe-framework/pull/8242
2018-07-23 14:18:05 +01:00
Daniel Hensby
ef97164c0a
DOCS Update docs to reflect true config merge priorities 2018-07-23 14:15:25 +01:00
lhasselb
06349f409b
Update 02_Sessions.md 2018-07-21 12:27:12 +02:00
DorsetDigital
4b90bb264a
Add use statement to example
Add the relevant 'use' statement to the sample code to remind people that it's needed!
2018-07-16 14:06:28 +01:00
Daniel Hensby
ac5c3416a4
Merge branch '4.2' into 4 2018-07-13 17:06:51 +01:00
Daniel Hensby
bd2abc7a12
Merge branch '4.1' into 4.2 2018-07-13 16:44:23 +01:00
Daniel Hensby
ec9281ee02
Merge branch '4.0' into 4.1 2018-07-13 16:42:00 +01:00
Daniel Hensby
d80ef3d9e6
DOCS Update docs to reflect true config merge priorities 2018-07-13 15:43:56 +01:00
Ingo Schommer
dd9b8c94a5 DOCS Minor versioned edits
[ci skip]
2018-07-02 15:55:09 +12:00
Maxime Rainville
6108fbf2b4 Correct typo 2018-07-02 15:41:48 +12:00
Maxime Rainville
e0762d5a95 Complete version doc rewrite. 2018-07-02 15:41:48 +12:00
Maxime Rainville
d0a16bacd2 Documenting how to rollback and restore versioned DataObjects. 2018-07-02 15:41:47 +12:00
Maxime Rainville
81d27fcf9c Redrafting versioning doc WIP. 2018-07-02 15:41:47 +12:00
Maxime Rainville
bc7ada58b3 Restructure iversioning doc. 2018-07-02 15:41:47 +12:00
Juan Molina
5cd3180e85
Replace broken link to tutorial 2018-06-29 16:03:32 +02:00
Ingo Schommer
259aa06010 DOCS More resilient example domain
myapp.com is owned, example.com is specifically reserved for documentation use cases:
https://en.wikipedia.org/wiki/Example.com

[ci skip]
2018-06-26 10:13:36 +12:00
Ingo Schommer
2e1e8e07b9 DOCS Consistent app/ folder and composer use
- Stronger wording around "use composer"
- Consistent domain and email address naming
- Removed example for publishing non-composer modules (those shouldn't be encouraged)
- Removed instructions for installing modules from archives

[ci skip]
2018-06-25 10:40:19 +12:00
Ingo Schommer
3b96a2c9ac DOCS Vendor paths for test docs
[ci-skip]
2018-06-25 08:53:57 +12:00
Ingo Schommer
3625b2553d List deprecated APIs in changelog 2018-06-14 14:13:28 +12:00
Ingo Schommer
4c30c9ac2f Clarified cases in which forms prevent caching 2018-06-14 14:12:35 +12:00
Ingo Schommer
015b897d82 Link to caching docs from "form security" docs 2018-06-14 10:30:13 +12:00
Ingo Schommer
6008457f3e Clearer deprecation of HTTP in docs 2018-06-14 10:30:01 +12:00
Daniel Hensby
0b308c871d
DOCS Update doc errors 2018-06-13 15:29:03 +01:00
Damian Mooyman
3ea98cdb13
Migrate documentation from 3.x 2018-06-13 14:50:02 +12:00
Aaron Carlino
23bf8d2b3c add docs for new file extension process 2018-06-11 15:45:36 +12:00
Juan Molina
4e6f45c2ea
Fix updateCMSFields example 2018-06-09 19:41:33 +02:00
Juan Molina
35943ac68a
Update 03_Requirements.md 2018-06-03 14:25:05 +02:00
Juan Molina
031f8b23ec
Update 03_Requirements.md
Update Blocking section to reflect new vendor path
2018-06-02 19:30:12 +02:00
DorsetDigital
86b755f12a
Update 00_Introduction.md
Update filename in example for clarity
2018-05-31 11:47:42 +01:00
DorsetDigital
a7c5e60195
Update 04_Static_Publishing.md
Update link to current static publisher module
2018-05-31 10:55:13 +01:00
Robbie Averill
e0993043f8 Merge branch '4.1' into 4 2018-05-30 15:08:39 +12:00
Robbie Averill
c8b0bc0ad7 Merge branch '4.0' into 4.1
# Conflicts:
  #	src/ORM/DataObject.php
  #	tests/php/ORM/DataObjectDuplicationTest.php
  #	tests/php/ORM/DataObjectDuplicationTest/Class1.php
2018-05-30 14:52:07 +12:00
Luke Edwards
385e9e105c Create GridField Actions Menu component (#8083)
* WIP GridField action menu work, the gist of the idea is using a new gridfield component

* Add delete action to actions menu

* Actions are added automatically to action menu (allows for extension)

* Add test and minor changes

* Add docs and minor changes

* Refactor ActionMenuItem into distinct types, general ActionMenu cleanup

* Add icons and fix title

* Pass columnName, so it can be used by components

* Update test to open and find action menu buttons

* Add section in changelog upgrade section for GridField_ActionMenu
2018-05-29 16:10:52 +12:00
Robbie Averill
a0d0564369
Merge pull request #60 from silverstripe-security/pulls/4/ss-2018-003
[ss-2018-003] Update docs for oembed
2018-05-28 18:58:04 +12:00
Robbie Averill
c3e5ab2258
Merge pull request #65 from silverstripe-security/pulls/4.2/ss-2018-009
[SS-2018-009] Allow forced redirects to HTTPS for responses with basic authentication
2018-05-28 18:57:38 +12:00
Robbie Averill
ea16e28aa7 Merge branch '4.1' into 4 2018-05-28 18:33:56 +12:00
Robbie Averill
6d98a912c9 Merge branch 'heads/4.1.1' into 4.1 2018-05-28 18:26:20 +12:00
Robbie Averill
3a537bc745 Merge branch 'heads/4.0.4' into 4.0 2018-05-28 17:50:07 +12:00
Juan Molina
5e45a4be88
Update 05_Template_Inheritance.md
Minor grammar fix.
2018-05-25 14:17:28 +02:00
Robbie Averill
722202fef4 Merge remote-tracking branch 'origin/4.0.4' into 4.1.1
# Conflicts:
  #	src/Control/Director.php
2018-05-24 15:41:11 +12:00
Mark Anderson
da91a36098
Corrected Classname for DBFile
The wrong classname was being used in the "Creating custom image functions" section
2018-05-23 11:23:36 +01:00
Ingo Schommer
9097a95de2 Cookie lifetime docs 2018-05-21 11:36:53 +12:00
Ingo Schommer
5445a0d3fc Corrected login data usage docs 2018-05-21 11:36:45 +12:00
Philipp Staender
71fed747e5
SINGULARNAME and PLURALNAME are without underscore 2018-05-17 15:10:01 +02:00
Ingo Schommer
78fe189c6d
Merge pull request #8003 from open-sausages/pulls/4/docs-personal-data
Docs for personal data usage in core
2018-05-17 17:11:56 +12:00
DorsetDigital
8e03956176
DOCS Update translatable module link to fluent
Change recommended multilingual module to Fluent
2018-05-16 09:56:19 +01:00
Damian Mooyman
299131ed22 [ss-2018-012] File security documentation 2018-05-14 17:16:36 +12:00
vincentneuts
ceb5feab5e
DOCS: Import HTTPRequest missing in Controller example 2018-05-04 11:11:23 +12:00
Kairat Jenishev
b4ba3cbd1f
DOCS Fix broken links and headers 2018-05-03 16:42:52 +01:00
Al
83ae96d2e1
config *method* 2018-04-26 11:01:46 +12:00
Al
5e134355f4
Adjust wording 2018-04-26 10:59:03 +12:00
Al
4a0148a2bf
Document requirements for Configurable trait 2018-04-26 10:49:38 +12:00
blueskies79
84ae5ba321
Added FQCN for Image and File in use statements
Sorry, first pull request. I added the Image and File use statements as requested. And surrounded the has_many example with the class name so it makes more sense.
2018-04-24 10:49:45 +02:00
Robbie Averill
1505a89a63 Update to include note about auto redirect to HTTPS for basic auth 2018-04-24 16:42:52 +12:00
blueskies79
8b36a2ceae
Add documentation on relating to core classes
Adding a relationship to core classes brings some extra syntax issues. I think it would be usefull to not that core classes are realted through Image::class and that a has-one-relationship needed on a core class when relating them thru has_many, can be set up through yml.
2018-04-23 15:33:07 +02:00
Maxime Rainville
4585b0b382 Fix a broken link to the versioning page. 2018-04-19 10:53:36 +12:00
DorsetDigital
67fbaf3423
Update 06_Themes.md
Remove reference to theme picker in settings page which was removed in SS4
2018-04-13 12:12:55 +01:00
Ingo Schommer
1b882e802e Docs for personal data usage in core
See https://github.com/silverstripe/silverstripe-framework/issues/7791
2018-04-13 13:23:05 +12:00
Damian Mooyman
7c2886d87c
[ss-2018-003] Update docs for oembed 2018-04-10 16:50:51 +12:00
Damian Mooyman
ff7e9e5d8e
Merge pull request #7956 from open-sausages/pulls/4/answer-my-query-queries
Documentation for graphql customisation
2018-04-06 14:47:29 +12:00
Kairat Jenishev
c4c598000b
Update 02_Routing.md 2018-03-29 14:07:57 +06:00
Aaron Carlino
9cb974c619 Fix several mistakes in example code 2018-03-29 14:35:56 +13:00
Aaron Carlino
b2e9ed673e Minor docs update 2018-03-29 14:35:56 +13:00
Aaron Carlino
0368a98888 Minor documentation updates 2018-03-29 14:35:56 +13:00
Aaron Carlino
364a5e84a3 Documentation for graphql customisation 2018-03-29 14:35:56 +13:00
Daniel Hensby
18cbf996d3
Merge branch '4.1' into 4 2018-03-28 11:25:41 +01:00
Daniel Hensby
773511a6c3
Merge branch '4.0' into 4.1 2018-03-28 11:18:08 +01:00
Robbie Averill
24de98980e
DOCS Fix link to Redux website 2018-03-27 14:24:01 +13:00
Steve Dixon
da18412df4 DOCS: fixed links in Images doc (#7952)
* DOCS: fixed links in Images doc

* DOCS: format API link labels with code backticks
2018-03-23 11:18:28 +00:00
Ingo Schommer
983a724ea5
Merge pull request #7399 from dhensby/pulls/4/reduce-dependence-on-session-for-reading-mode
Reduce dependence on session state for accessing draft stages
2018-03-23 16:19:26 +13:00
Ingo Schommer
92f5147e36 Updated versioned examples to changed API 2018-03-22 11:27:28 +13:00
Damian Mooyman
257ff69e32 API Implement many_many through polymorphic (from only) (#7928)
* API Support many_many through polymorphic relations (from side only)
Fixes #7911
Fixes #3136

* Add extra docs and allow optional arguments

* ENHANCEMENT Enable quiet to be turned off

* BUG Fix issue with manymanythroughlist duplication
2018-03-22 10:26:25 +13:00
Ingo Schommer
e6ff8bc681 Docs for new versioned get param behaviour
See https://github.com/silverstripe/silverstripe-cms/issues/1578
2018-03-20 16:54:04 +13:00
Michael James
f139569ba3
Missing semicolon 2018-03-18 06:06:30 +00:00
Loz Calver
cd6923965c DOCS: fix memcached example (closes #7934) 2018-03-16 16:30:48 +00:00
Damian Mooyman
8b9c292509
Merge remote-tracking branch 'origin/4.1' into 4 2018-03-13 14:26:39 +13:00
Damian Mooyman
625f7b4eee
Merge remote-tracking branch 'origin/4.0' into 4.1 2018-03-13 14:26:18 +13:00
DorsetDigital
72c5d5244f
Update 02_Sessions.md
Add additional 'use' statement (for Injector) in example of getting a session outside a controller.
2018-03-09 20:03:46 +00:00
Daniel Hensby
da5e73c115
Merge pull request #7918 from silverstripe-terraformers/pulls/updated-docs
Updated docs for Rate Limiting.
2018-03-09 10:52:12 +00:00
Christopher Darling
278f19068e
DOCS add missing trailing ; in code block 2018-03-08 20:41:11 +00:00
cpenny
fdbf4c2134 Updated docs for Rate Limiting. 2018-03-09 08:15:11 +13:00
Robbie Averill
048caf16cf DOCS Fix API references for classes in versioning docs 2018-03-07 09:33:37 +13:00
Daniel Hensby
e0b94e6971
Merge pull request #7910 from open-sausages/pulls/4/api-tinymce-content-css
API Add getContentCSS() / setContentCSS() to allow per-config customisation of content_css
2018-03-05 16:12:54 +00:00
Damian Mooyman
3a1c813b28
API Add getContentCSS() / setContentCSS() to allow per-config customisation of content_css
Fixes #7873
2018-03-05 16:10:44 +13:00
Damian Mooyman
d86fbdea58
DOCS Fix reference to force_resample
Fixes https://github.com/silverstripe/silverstripe-assets/issues/21
2018-03-05 13:00:23 +13:00
Andrew Aitken-Fincham
70c28b0475
Update 02_Routing.md
To something that works
2018-02-27 16:42:20 +00:00
DorsetDigital
4974996cbe
Update 01_Error_Handling.md
Add use statements in initial code sample for completeness and hopefully avoid errors when code is copy & pasted
Add a 'be' to dependency injection paragraph so it reads properly
2018-02-26 19:31:44 +00:00
Daniel Hensby
ade88ef0ea
DOCS update email docs to use correct config syntax 2018-02-23 11:49:13 +00:00
Daniel Hensby
dace2f179d
Merge branch '4.1' into 4 2018-02-21 13:58:45 +00:00
Daniel Hensby
c04ff8c55a
Merge branch '4.0' into 4.1 2018-02-21 13:40:30 +00:00
Fred Condo
2f2390be59 DOCS: remove backticks from Markdown link
Markdown does not render links within backticks.
2018-02-20 16:54:18 -08:00
Damian Mooyman
12e701c8ed
Merge remote-tracking branch 'origin/4.1' into 4 2018-02-15 09:28:14 +13:00
Damian Mooyman
e809c0fd62
Merge remote-tracking branch 'origin/4.0' into 4.1 2018-02-15 09:27:51 +13:00