Commit Graph

1278 Commits

Author SHA1 Message Date
Vojta Svoboda bafd057f8c Optimize theme recognition (#3220)
Credit to @vojtasvoboda. Will avoid asking the database for the currently active theme if there is only one theme present and its code matches the code set in cms.activeTheme
2019-09-25 12:26:54 -06:00
Samuell 33d149fe1a Replace caching of Theme config with generic YAML caching (#4526)
Credit to @Samuell1. Fixes issues related to complexity of the existing approach / cache invalidation by just using the caching built in to YAML::parseFile().
2019-09-25 11:36:35 -06:00
Dan Harrin 7b8fecaa51 Replace use of parseJSON with JSON.parse (#4517)
Credit to @DanHarrin
2019-09-14 06:25:18 -06:00
Samuel Georges 3212fc5b35
Merge pull request #4503 from ghost/role-form
Add role-form to all forms
2019-09-10 17:55:40 +10:00
Ben Thomson 0240c21af6 Fail CSRF token checks if the session expires. (#4598)
Fixes #4595. Credit to @bennothommo
2019-09-04 21:33:10 -06:00
Ben Thomson 5723cd4b2a
Match save method signature in Theme Export/Import 2019-09-05 10:58:22 +08:00
Ayumi Hamasaki 6942e38615 Remove the IE5 - IE7 Holly Hack support (#4594)
Credit to @ayumihamsaki
2019-09-04 09:32:29 -06:00
Dan Harrin 9521dd795c Minor Formatting Corrections in Usage Comments (#4541)
Credit to @DanHarrin
2019-08-15 09:14:54 -06:00
Dan Harrin 188c565d69 Hide active theme's Delete button (#4528)
Credit to @DanHarrin.
2019-08-15 11:42:25 +08:00
Dan Harrin 4434808549 Remove theme data on theme deletion (#4529)
Credit to @DanHarrin. Fixes #1292.
2019-08-15 11:41:03 +08:00
Dan Harrin 967fd02d8c Fix minor spelling errors and inconsistencies (#4543)
Credit to @DanHarrin.
2019-08-15 11:39:26 +08:00
Dan Harrin 67c9decb20 Standardise use of [] vs array() (#4548)
Credit to @DanHarrin
2019-08-14 20:46:36 -06:00
RickAcb 0383af6282 Update __isset function to comply with the same checks as __get (#4514)
Credit to @RickAcb.
2019-08-04 19:56:15 +08:00
Ayumi Hamasaki 432dd5d91a Add role-form to all forms 2019-07-31 15:46:20 +01:00
Luke Towers 99777f5977 Fix issue with AJAX framework load order on the frontend.
Partially reverts f4e50ddd1a in response to https://github.com/octobercms/october/pull/4285#issuecomment-513566437. Functionality can be re-added at a later date under an optional parameter added to the {% framework %} tag. Replaces https://github.com/octobercms/october/pull/4469
2019-07-29 16:30:14 -06:00
Anurat Chapanond 02ba765a9e Added Thai translation (#4472)
Credit to @anurat.
2019-07-26 14:52:52 -06:00
Samuell df81ea182b Remove alert to prevent showing same popup twice (#4470)
Credit to @Samuell1
2019-07-24 12:33:18 -06:00
Luke Towers 1587c7f49c Warn developers to not be silly. Fixes #4466. 2019-07-23 11:17:56 -06:00
Samuell 36c69a063b Add support for tab icons in theme customization (#4464)
Fixes #4131. Credit to @Samuell1
2019-07-21 23:45:30 -06:00
Ben Thomson a59d3b83eb Code quality clean up (#4449)
Credit to @bennothommo
2019-07-18 08:50:37 -06:00
Ayumi Hamasaki ae5f1a4282 Clean up output of Twig dump() function (#4460)
Credit to @ayumihamsaki. Fixes #4446.
2019-07-17 22:54:24 -06:00
Kallef Alexandre 94a71ff3da Improved Brazilian Portuguese translations (#4450)
Credit to @prhost
2019-07-13 16:42:43 -06:00
Long Wen 2613141870 Update zh-cn/lang.php file (#4447)
Credit to @wenlong-date.
2019-07-11 17:21:24 +03:00
Luke Towers e0e951dfcd
Disable searching and sorting on any_template
Fixes #4441. Make the new template and old template columns visible and sort by them instead if you need to sort by that column.
2019-07-09 08:38:30 -06:00
Luke Towers 6f583b3920
Disable theme config cache when debug mode enabled 2019-07-08 16:25:25 -06:00
Long Wen 07a852ed8a Fix selection issue for similar-named CMS objects (#4433)
CMS objects with the same name as another object (eg. "test.htm" for a page and "test.htm" for a partial) were unable to be selected (selecting the partial selected the page).

Credit to @wenlong-date.
2019-07-05 16:47:30 +08:00
Ayumi Hamasaki f4e50ddd1a Add new Performance API's to October CMS (#4285)
PR adds a new Priority Hints API, Preload API and async to the October CMS AJAX injected code and a new Priority Hints API to the loaded assets in the head section.

Credit to @ayumihamsaki. Related #4277, #4030
2019-06-17 01:17:34 +03:00
Luke Towers 1aff1e0a1e Changed calls to the Cache to use DateTime instances instead of integers representing minutes as 5.8 changed integers into meaning seconds instead. 2019-06-12 02:33:26 -06:00
Luke Towers 46c867e4b5 Improve API docs
Resolves #4214
2019-06-12 00:33:30 -06:00
Ben Thomson a777c44cb4
Remove typehints for database template methods.
Instead check the CmsObject class inheritence in the methods. Fixes #4376
2019-06-09 23:33:38 +08:00
Sebastiaan Kloos f921af4199 Fix menus not being displayed with database templates (#4362)
Credit to @SebastiaanKloos.
2019-06-06 21:05:38 +08:00
Samuel Georges e7ec0be0c1
Merge pull request #3908 from octobercms/wip/halcyon-db-datasource
Database layer for the CMS objects
2019-06-01 14:28:34 +10:00
Samuel Georges 8c398e7ad5 cms_theme_contents -> cms_theme_templates 2019-06-01 12:45:29 +10:00
Samuel Georges 17cea816d8 enableDatabaseLayer -> databaseTemplates 2019-06-01 12:40:17 +10:00
HOOP Mediaclinic 5055c830e9 Finnish language update (#4177)
* Finnish language update
* Fixed missing ] and added 'scopes'
* Tabs to spaces, removed comma
* Translation file fixes
Removed tabs, fixed indentation
2019-05-03 18:51:44 +03:00
Samuell 0fdd3c32cb Properly isolate theme's config cache (#4284)
Fixes support for switching between themes. Credit to @Samuell1 and @w20k
2019-04-21 18:16:29 -06:00
Luke Towers 7c7ff31cd6 Return 404 when attempting to access /error directly in production
Replaces #2212
2019-04-19 15:29:00 -06:00
Samuell a69455d409 Cache the theme config (#4270)
Fixes #4265. Credit to @Samuell1
2019-04-19 10:59:27 -06:00
Ben Thomson 7b2a772525 Finish theme:sync command (#4276)
Credit to @bennothommo
2019-04-19 09:07:48 -06:00
Ben Thomson 28ac50ab28 Fix for models that don't yet exist
Credit to @bennothommo. Fixes https://github.com/octobercms/october/pull/3908#issuecomment-447291101

Co-Authored-By: LukeTowers <github@luketowers.ca>
2019-04-12 00:13:39 -06:00
Ben Thomson ab6023f3e9 Fixed typo
Credit to @bennothommo

Co-Authored-By: LukeTowers <github@luketowers.ca>
2019-04-11 23:36:13 -06:00
Luke Towers 630d543959 Merge branch 'develop' into wip/halcyon-db-datasource 2019-04-11 12:30:29 -06:00
Luke Towers 49f3cd632e Ensure that widget aliases remain the same between requests. Refs: #4230 2019-04-04 00:01:14 -06:00
Samuel Georges 5190c8177b Avoid terminating the app using exit() or die()
Refs #3783
Refs #3746
2019-03-29 07:10:07 +11:00
Luke Towers 936525f99b Always provide a string to TwigSource. Fixes #4209. 2019-03-27 13:17:26 -06:00
Luke Towers c86bec7f08 Replace deprecated Twig class references, refs: #4209. 2019-03-27 13:15:17 -06:00
Luke Towers 164e9877f7 Improve the UX when user can customize a theme but not manage all themes
Fixes #3301. Sponsored by @gavinworks
2019-03-14 10:59:34 -06:00
Mahmut Namli 7077a1cef3 Improved Turkish translation (#4121)
Credit to @mahony0
2019-02-07 09:18:42 -06:00
Denis Denisov ec2a0d5fb0 Tabs and tabels scrolling fix (#4069)
Fixes #4037. Credit to @w20k
2019-01-21 23:35:27 -06:00
Nathan van der Werf 7232e7a29d Escape output to prevent XSS injection (#4074)
Credit to @nathan-van-der-werf
2019-01-18 10:26:56 -06:00
Luke Towers 42f3ecfa19 Merge branch 'wip/halcyon-db-datasource' of https://github.com/octobercms/october into wip/halcyon-db-datasource 2018-12-16 09:44:01 -06:00
Luke Towers 5f78fd4df9 Initial implementation attempt for theme:sync command 2018-12-16 09:43:33 -06:00
Luke Towers 4438ddc47e
Merge pull request #3963 from ayumihamsaki2/master
Sets the Folders in Code Editor to Collapsed by default. Fixes #3962. Credit to @ayumihamsaki2
2018-12-05 21:13:00 -06:00
Ayumi Hamasaki 1e0d045c74 Sets Folders in Code Editor to Collapse by Default
This fixes the github Issue found here: https://github.com/octobercms/october/issues/3962
2018-12-06 00:39:31 +00:00
Farrow 52fe8586e3 Make Inspector element available outside of dragscroll contexts
Credit to @Farrow. Update to the javascript cmsPage onInspectorShowing event handler to make it check whether the event target has a dragScroll attached to it (which it previously assumed it did). This allows the inspector to be used in other locations on the backend which are outside of a dragscroll without causing a javascript error.
2018-12-01 12:36:40 -06:00
Luke Towers a7bbfe2d9d Split out last modified button into it's own partial 2018-11-30 15:33:53 -06:00
Teranode 82a38bdfb6 Add ability to delete asset files (#3933)
Fixes: #3925. Credit to @Teranode
2018-11-28 11:08:39 -06:00
Luke Towers 80b5c41825 Improve compatibility with RainLab.Pages 2018-11-23 14:41:18 -06:00
Luke Towers a4f5e1b96e Finished initial implementation of Commit / Reset buttons 2018-11-23 13:35:51 -06:00
Luke Towers 878bb890b9 Passed the buck to the AutoDatasource to implement pushToSource and removeFromSource, added type hinting to AutoDatasource parameters 2018-11-23 11:28:34 -06:00
Luke Towers 7ebd8b9ffc Implement canCommitTemplate and canResetTemplate checks, added UX for commit / reset buttons (load indicator & success flash messages) 2018-11-23 11:07:36 -06:00
vosco88 2d1a904512 Extend opcache check if it is enabled (#3664)
Credit to @vosco88. 
When trying to deploy October on shared hosting (www.websupport.sk) it is possible to receive the following error when accessing the frontend pages - ErrorException:> Zend OPcache API is restricted by "restrict_api" configuration directive. This checks not only if the opcache_invalidate exists but also if opcache is enabled. Same check is actually present in twig vendor files - but so far it is working without having the check there.
2018-11-23 09:36:24 -06:00
Tschallacka 852ea7d8d8 Added missing use statement (#3041)
Credit to @tschallacka
2018-11-23 00:36:06 -06:00
Luke Towers f730fc85e1 Fix import statement 2018-11-22 16:54:35 -06:00
Luke Towers 7809f9ada5 Added a Theme::databaseLayerEnabled method to make checking for the db layer easier 2018-11-22 13:41:11 -06:00
Luke Towers 0a8450b21c Added base structure of the Commit & Reset buttons, NOTE: Have not actually implemented the logic for them yet, just added the initial shells / UI for them. 2018-11-22 13:34:19 -06:00
Luke Towers 1920d5b4b6 Fix bug where updating records that didn't exist in the DB yet would cause both the original and new records to display 2018-11-22 12:04:41 -06:00
Teranode 9699aacaed CSS fix for component close button in Firefox (#3585)
Fixes #3554. Credit to @Teranode
2018-11-20 10:23:44 -06:00
Luke Towers 38fe4af1e6 Fixed minor oversight in delete() method on AutoDatasource 2018-11-15 15:14:05 -06:00
Luke Towers 45bd2654fc Added Meta CmsObject, fixed bug in AutoDatasource 2018-11-14 16:52:46 -06:00
Luke Towers e622defed1 Initial implementation of insert() and update() on the AutoDatasource 2018-11-06 16:00:27 -06:00
Luke Towers e5518e0976 Update AutoDatasource->getAvailablePaths implementation to match updated interface 2018-11-06 14:48:47 -06:00
Luke Towers 0efae6dc33 AutoDatasource deletions now occur only on first datasource 2018-11-06 14:38:19 -06:00
Luke Towers 4887519e27 AutoDatasource bug fixes and performance improvements
Properly remove deleted paths from results returned by AutoDatasource->select() and utilize the cache exclusively when only selecting the fileName column preventing calls to the source datasources.
2018-11-06 14:22:05 -06:00
Luke Towers 65e0c9d7b6 Add initial support for deleted paths 2018-11-05 16:02:12 -06:00
Luke Towers 32c7891942 Minor changes 2018-11-05 14:35:58 -06:00
Luke Towers e14ded4be6 Initial work on the AutoDatasource 2018-11-02 16:04:35 -06:00
Luke Towers 5dbfa133e7 Config file change and cms_themes_contents table migration 2018-11-01 21:53:16 -06:00
Alwin Drenth 00122108b1 Update Dutch (NL) translation (#3895)
Credit to @adrenth
2018-10-26 09:14:56 -06:00
Christian 5d6354ba88 Fixes from #3880 (#3885)
Fixes #3880. Credit to @Teranode & @gergo85.
2018-10-22 15:30:44 -06:00
Danilo Cuculić 35cb96ef40 Improve linking from ActiveTheme report widget with permissions (#3869)
Fixes #3855. Credit to @Eoler.
2018-10-16 09:11:14 -06:00
Szabó Gergő 9522deff4e Add filters to log pages (#3815)
Credit to @gergo85. Thanks to @petehalverson for octodock to test this with
2018-10-16 09:09:41 -06:00
Szabó Gergő 3ac740d2c3 Add last modified date to Pages, Partials, Layouts and Content (#3865)
Credit to @gergo85. Thanks to @petehalverson for Octodock to test it.
2018-10-16 09:06:43 -06:00
Luke Towers 1dc6f944ac Documented cms.router.beforeRoute 2018-10-11 20:31:36 -06:00
Luke Towers 900220b079 Documented more inline events:
cms.page.beforeDisplay
cms.page.display
cms.page.init
cms.page.beforeRenderPage
cms.page.start
cms.page.end
cms.page.postprocess
cms.page.initComponents
cms.page.render
cms.page.beforeRenderPartial
cms.page.renderPartial
cms.page.beforeRenderContent
cms.page.renderContent
2018-10-11 20:10:28 -06:00
Luke Towers 10aa5a6296 Documented cms.template.processTwigContent 2018-10-11 19:28:17 -06:00
Luke Towers 69d22518c6 Documented internal events
cms.template.save
cms.template.delete
cms.template.processSettingsAfterLoad
cms.template.processSettingsBeforeLoad
2018-10-11 19:19:12 -06:00
Luke Towers 11ad4f6329 Documented cms.theme.getEditTheme & cms.theme.setActiveTheme 2018-10-11 18:53:52 -06:00
Luke Towers 96127f0d91
Check that getProperties method returns an array (#3853)
Fixes #3851.
2018-10-10 08:48:37 -06:00
Szabó Gergő ef32d45cd4 Change the delete buttons style to danger (#3852)
Credit to @gergo85
2018-10-10 08:40:03 -06:00
Samuel Georges a0ec7652f8 Remove stub method
This is a very old stub method included to point out an override is available, in the process it prevents the viewBag property from being populated by the underlying CmsCompoundObject base class, thereby preventing anyone from extending the Layout or Page with custom form fields.
Refs #3769
2018-10-01 10:29:03 +10:00
Alexander Shapoval 709790a05d Added method getLayout() to Controller (#3765)
Credit to @ebashu-on-holidays
2018-09-09 18:55:10 -06:00
Samuel Georges 4ec3b525e0 Fixes event implementation
The array_merge approach will only shallow merge the arrays preventing a second event from contributing form fields properly. Passing by reference is the logical thing to do here.
2018-09-06 17:08:05 +10:00
Szabó Gergő 82b45268c7 Change the lang code in the html templates (#3754)
Credit to @gergo85
2018-09-04 11:54:26 -06:00
Samuel Georges 38cea8d037 Annotate class methods 2018-08-30 13:50:15 +10:00
Nathan van der Werf 8fd16d4db6
Merge branch 'develop' into feature/cleanup
# Conflicts:
#	modules/backend/formwidgets/FileUpload.php
2018-08-24 19:52:54 +02:00
Nathan van der Werf 0f0d108da0
Remove unused imports 2018-08-24 19:51:59 +02:00
Nathan van der Werf 66fa03f17e
Revert "Remove unused imports"
This reverts commit 742a5f415b.
2018-08-24 19:40:40 +02:00
Samuel Georges eb2419cc74 Typo 2018-08-21 13:28:12 +10:00
Samuel Georges 8383466508 Introduce events for extending Theme configuration 2018-08-21 13:18:22 +10:00
Luke Towers 1032fd0cc1 Added more inline API event docs:
Added docs for:
cms.component.beforeRunAjaxHandler
cms.component.runAjaxHandler

Improved docs for:
cms.ajax.beforeRunHandler
2018-08-18 09:05:38 -06:00
Nathan van der Werf 4142c9c9e6 Modify sorting icon from "desc" to "asc" (#3705)
Credit to @nathan-van-der-werf
2018-08-17 15:12:41 -06:00
SeriousKen 5707508dbc Update ThemeLog when file name is changed (#3696)
Credit to @SeriousKen
2018-08-17 10:25:18 -06:00
Maria Vilaró 5c72ad1474 Add translations for Catalan (#3694)
Credit to @mariavilaro.
2018-08-16 08:14:26 -06:00
Nathan van der Werf 0716101bc8 Merge unset statements 2018-08-15 19:26:49 +02:00
Nathan van der Werf 8b6f11e6ac Extract child instructions 2018-08-15 19:25:42 +02:00
Nathan van der Werf fbca3bea92 Remove redundant variables 2018-08-15 19:23:12 +02:00
Nathan van der Werf 2cdbb37a36 Remove duplicate array keys in language files 2018-08-15 19:18:26 +02:00
Nathan van der Werf 62c59a4903 Refactor ternary operators to null coalescing operators 2018-08-15 19:15:13 +02:00
Nathan van der Werf a3d7a028b4 Replace is_null with "=== null" comparison 2018-08-15 18:54:46 +02:00
Nathan van der Werf 77b6f07291 Modify conditions to use elvis operators 2018-08-15 18:53:11 +02:00
Nathan van der Werf bc17975634 Remove alias functions 2018-08-15 18:51:25 +02:00
Nathan van der Werf 123145fd54 Remove unnecessary parentheses 2018-08-15 18:49:52 +02:00
Nathan van der Werf a075be206b Replace class references with "self" 2018-08-15 18:47:06 +02:00
Nathan van der Werf 02bd38cfb1 Merge if constructs 2018-08-15 18:45:37 +02:00
Nathan van der Werf 0947406343 Remove senseless proxy functions 2018-08-15 18:35:15 +02:00
Nathan van der Werf 3a918ad200 Remove "null" assignments 2018-08-15 18:33:24 +02:00
Nathan van der Werf 742a5f415b Remove unused imports 2018-08-15 18:27:36 +02:00
vosco88 7e6800ea6e Added Slovak translations (#3671)
Credit to @vosco88.
2018-08-05 18:16:27 -06:00
Jim Cottrell bfee483805 Adds support for minifying framework assets (#3240)
Fixes #2753. Credit to @jimcottrell
2018-07-05 17:57:17 -04:00
Samuel Georges fb2aa1730c Fixes security issue
Refs #3604
2018-06-22 22:57:38 +10:00
whsol 15cdf6e71f Make code parser data cache key configurable (#3373)
Credit to @whsol
2018-06-05 10:10:35 -06:00
QuangTrọngOnline 3ef571da3c Added Vietnamese translation (#3514)
Credit to @quangtrongonline.
2018-04-24 11:41:01 -06:00
Luke Towers 92e346296e Added cms.ajax.beforeRunHandler event 2018-04-19 10:26:50 -06:00
Luke Towers 4f7a08954d Updating links in composer files 2018-04-16 02:33:08 -06:00
Luke Towers df5b2afc06
Re-add Backend facade 2018-03-24 09:19:30 -06:00
Arthur Kushman c78b3ef786 Code formatting changes (#3363)
Code formatting improvements submitted by @arthurkushman.
2018-03-22 10:55:13 -06:00
Mohamed Ali Behiry e3635b80e7 Added partial Arabic translation (#3296)
Credit to @mabehiry
2018-03-20 13:20:09 -06:00
Miro Rauhala 610452078d Update Finnish translations (#3460)
Credit to @mirorauhala
2018-03-19 15:36:53 -06:00
CaptainTF 7a6f1d3c85 Improved Simplified Chinese (zh-CN) translation (#3447)
Credit to @CaptainTF
2018-03-12 23:26:34 -06:00
interworks-morr 0206a6811f Improve cache reliability (#3421)
Reported and fixed by @interworks-morr: 
"Occasionally with certain IIS setups, the file will contain an out-of-date class name. This patch will verify the class name from the file before returning, and clear the cache if invalid."
2018-03-02 20:00:05 -06:00
Alexander Shapoval 7552464779 Updated Russian Translations (#3414)
Credit to @PopcornPHP
2018-02-25 21:25:12 -06:00
Sajjad Servatjoo 708b1e3a75 Update Persian Language (#3396)
Credit to @sajjad-ser
2018-02-13 10:55:06 -06:00
Matteo 678916854e Add config to enable Twig strict_variables (#3370)
Adds the cms.enableTwigStrictVariables config option to enable strict_variables in Twig for debugging purposes. See https://twig.symfony.com/doc/2.x/api.html#environment-options. Credit to @matteotrubini
2018-01-26 10:59:45 -06:00
Arthur Kushman bbc33710c1 >= PHP7.0 refactoring (#3343)
* Fix loosly comparison to strict + argument types and return types for >=7.0
* Change hard-coded strings to ::class, 
* Fix unit-tests failures - some relative to 7.0 phpunit env deployment
* Fix exception string + format return types
* Change string representation of new classes in traceLog to ::class
Credit to @arthurkushman
2018-01-12 00:23:20 -06:00
viamage 7ffb79a5fd Fix typo (#3326)
Fixed typo, added CmsCompoundObject::getComponentProperties method test. Credit to @viamage
2017-12-27 13:31:34 -06:00
Miro Rauhala d54c3b18e9 Initialize missing variable (#3318)
Fixes #3317. Credit to @mirorauhala
2017-12-21 16:06:56 -06:00
Miro Rauhala 1d3828c36e Bring Finnish language up to date (#3316)
Credit to @mirorauhala
2017-12-21 11:16:01 -06:00
Samuel Georges 9f1fe611e4 File cleaned up as part of review 2017-11-25 21:17:07 +11:00
Samuel Georges 0a428423af Twig partial() function should not throw exception
This allows checking if a partial exists
2017-11-19 14:58:47 +11:00
Luke Towers f850b5d7ca Removes unnecessary blocking head placeholders. Refs: https://github.com/rainlab/pages-plugin/issues/239 2017-11-15 20:26:48 -06:00
Miro Rauhala da295a83df Add Finnish language (#3237)
Credit to @mirorauhala
2017-11-11 18:36:55 -06:00
Samuel Georges e6de2a5521 Fixes exception on empty token 2017-11-02 19:53:20 +11:00
Samuel Georges 4a6e0e1e0e Implement CSRF token by default
Implement CSRF protection on CMS for postback handling
2017-10-30 09:00:17 +11:00
Samuel Georges 9309d826d0 Update zh-tw MM lang 2017-10-15 01:31:04 +11:00
Samuel Georges 4790f8b7a7 Update zh-cn MM lang 2017-10-15 01:29:13 +11:00
Samuel Georges 75d16dab26 Update uk MM lang 2017-10-15 01:27:28 +11:00
Samuel Georges 79b5094aed Update tr MM lang 2017-10-15 01:25:09 +11:00
Samuel Georges 974bbf1303 Update sv MM lang 2017-10-15 01:21:15 +11:00
Samuel Georges a7b6250e74 Update ro MM lang 2017-10-15 01:03:26 +11:00