Commit Graph

415 Commits

Author SHA1 Message Date
Samuel Georges 1e0741e407 Fixes CodeParser concurrent access errors
Big thanks to @shina, @BearishSun and @MarcoROG for their help with finding a solution
Fixes #1250
2016-08-27 12:45:56 +10:00
Samuel Georges c8d8d4e931 Introduce new Cms helper
This is modeled after the Backend helper. Primarily used to generate URLs for the frontend, these are piped through the CmsController action. It would also be a good place to add a hook, if necessary later.
2016-08-20 14:43:49 +10:00
Samuel Georges 3698f13acb URL -> Url 2016-08-20 14:26:21 +10:00
Samuel Georges 556b951e63 Calling dynamic methods for extended components
In the spirit of #2288
2016-08-06 09:55:42 +10:00
Samuel Georges 78a4067564 Make logic more explicit
This tightens up the rules of 7baea87068
2016-07-23 15:50:48 +10:00
Samuel Georges 7baea87068 Allow AJAX handlers to pipe objects to Laravel
Treat non scalar, non array, non RedirectResponse, non null as a Laravel compatible response
This brings AJAX handlers in line with page cycles, which do the same thing if the response is not a string. However in AJAX we should treat any scalar as a "result", not just a string. For all else (where not null), let Laravel handle it as a custom response object -- could be a model for serialization, or anything compatible.
Importantly to note when a custom redirect is sent, October's workflow is completely wiped out, so any partial updates, redirects, etc. will not occur. This is a normal and fair expectation.
Fixes #1784
2016-07-23 11:57:15 +10:00
Samuel Georges 676196d304 Use starts_with instead of regex 2016-07-16 15:34:20 +10:00
Samuel Georges e970d80443 Align AJAX logic: merge custom response last
This is to allow overriding the standard values
Refs #2209
2016-07-16 13:11:10 +10:00
Anže Časar 68deb59265 Pass the router reference on beforeRoute event 2016-07-15 17:05:25 +02:00
Samuel Georges 6ca828a1fa Always return an active theme and data 2016-06-16 08:01:34 +10:00
Samuel Georges 0111100990 Shared view vars now passed to content blocks and mail templates 2016-06-04 07:26:16 +10:00
Samuel Georges 27dc84c59b ThemeData can now pass variables to the combiner
Add support for fileuploads to ThemeData
Fixes #1539
2016-06-02 05:23:05 +10:00
Samuel Georges 74a6a71bcb Parameters -> Parameter
(Models should be singular)
2016-05-31 08:17:48 +10:00
Samuel Georges ebc7929ada MaintenanceSettings -> MaintenanceSetting 2016-05-27 07:49:13 +10:00
Samuel Georges cdb35f5070 UserPreferences -> UserPreference
(Models should be singular)
2016-05-27 07:35:32 +10:00
Samuel Georges d730f9af9d Merge branch 'froala' into develop 2016-05-24 05:46:39 +10:00
Samuel Georges af19341c01 "Quick Uploads" are dumped in a special folder via media manager
Refs #2005
Remove the active state on media manager table data for consistency with other view modes
2016-05-22 07:24:04 +10:00
Jérémy Gaulin e3812036da Allow usage of namespace alias in the code section a a CMS page, with
unit test. Fixes #2006
2016-05-21 16:27:15 +02:00
Samuel Georges adbde0ad09 If the cache should fail, don't bring down the whole app 2016-04-27 05:44:32 +10:00
Samuel Georges a5acbc7bff Add before/after events for component::onRun 2016-04-27 05:44:32 +10:00
Samuel Georges 87a4de40de Address serialize/unserialize issues
This will require a cache clear for the combiner
Ref https://davidwalsh.name/php-serialize-unserialize-issues
2016-04-16 08:22:31 +10:00
Samuel Georges b534006f35 DbDongle -> App::hasDatabase 2016-04-16 07:44:18 +10:00
Samuel Georges cafd5d7ffa ComponentPartial properties should be publically accessible
Fixes caching issue when updating a component partial
2016-04-16 04:42:34 +10:00
Samuel Georges f68eb3f20f Move halcyon registration to model boot
Attempt to fix issue where service provider looks at system_preferences database table that doesn't exist yet as part of the boot() method
Fixes #1897
2016-04-04 18:37:56 +10:00
Samuel Georges ca3e13ed33 Fixes issue related to PHP 5.5.12
For some reason the closure did not like static calls inside, bye bye array_map(...)
2016-04-02 17:39:23 +11:00
Pásztor Gábor 9f3fcf27ed Update AssetsList 2016-03-30 18:17:18 +02:00
Pásztor Gábor 40269cb6e2 Clean up 2016-03-29 14:55:25 +02:00
Pásztor Gábor 87a5ff339e Fix error in Maintenance Settings 2016-03-28 15:41:47 +02:00
Samuel Georges 86d4ae491e Minor 2016-03-25 18:42:39 +11:00
Samuel Georges 2a7dbdd74a Merge branch 'stable' into ui
Conflicts:
	modules/cms/classes/CmsObject.php
	modules/cms/widgets/MediaManager.php
2016-03-25 18:42:13 +11:00
Samuel Georges 4ddc8055c6 Merge branch 'develop' into stable 2016-03-25 18:39:16 +11:00
Samuel Georges 3cac52afd4 Default is null, not false 2016-03-25 10:42:14 +11:00
Samuel Georges f1aa720086 Create a safe mode to disable code field in the CMS
Fixes #1756
2016-03-25 10:05:04 +11:00
Samuel Georges 680887f452 Fixes component access issue 2016-03-25 09:56:36 +11:00
Samuel Georges 7c08b10fa2 Add cms.theme.setActiveTheme event
Bring other event names in to line with convention
Complete getConfigArray method
2016-03-23 20:11:55 +11:00
Samuel Georges 0b74734fae Make room to load theme options from files
For example:
form: path/to/fields.yaml
2016-03-22 20:03:00 +11:00
Samuel Georges 6e7fa7de88 Allow CmsObjects to define their own Twig cache key 2016-03-21 13:42:03 +11:00
Samuel Georges 4922d6d284 Retain previous listInTheme cache functionality 2016-03-20 16:04:27 +11:00
Samuel Georges fad028bc40 Add local cmsObject.fillViewBagArray event
Tidy up some inline docs
2016-03-19 13:22:08 +11:00
Samuel Georges 792b7fed2a Fixes CmsException on bad INI
No need for Cms SectionParser.php anymore
2016-03-19 10:30:42 +11:00
Samuel Georges c244aef2f8 Clean up 2016-03-18 19:54:27 +11:00
Samuel Georges 7f209d2df9 Bring Asset in line with inTheme 2016-03-17 19:28:29 +11:00
Samuel Georges 045d186960 Finishing porting old functionality
- Add validation to Cms Objects
- Add local viewBag logic
- Implement new initCacheItem process
- Implement getter for viewBag/settings properties
2016-03-17 19:25:50 +11:00
Samuel Georges dcc63baffd Theme -> Datasource 2016-03-17 19:22:37 +11:00
Samuel Georges 864d38b77e Why are these static?
...seriously, why are they static?
2016-03-12 15:49:37 +11:00
Samuel Georges 24a620e890 Convert CmsObject and CmsCompoundObject to use Halcyon
getFullPath -> getFilePath
2016-03-12 15:32:16 +11:00
Samuel Georges 855a97b35e Set the default theme as part of the boot process
Themes can also register themselves gracefully with Halycon after loading
2016-03-12 12:14:19 +11:00
Samuel Georges 1bc647f978 Decouple Asset object
Add extensible to ComponentPartial
2016-03-12 10:17:07 +11:00
Samuel Georges c34f72b821 Decouple ComponentPartial from CmsObject 2016-03-09 21:01:57 +11:00
Samuel Georges 07132ffbd6 Returns original setter functionality
To protected things like $this->page->title = "foo";
Template -> Bracket
2016-03-05 10:49:24 +11:00
Pásztor Gábor ed1c84b8b1 PHPDoc fixes. 2016-03-04 16:50:58 +01:00
Samuel Georges 94c6ef4da0 Let Cms Objects use behaviors 2016-03-02 18:13:00 +11:00
alekseybobkov 387c75c5cd Fixed a bug where changing a letter case in a folder name in Media Manager deletes the folder. Added ability to move files and folders to the root directory in Media Manager. Fixed a bug where numeric folder names are displayed incorrectly in the folder path in Media Manager. Fixes #1765, fixes #1173, fixes #1085. 2016-02-29 21:50:07 -08:00
Samuel Georges fd16f38b11 Implement file definitions (extensions + ignore files)
Block "unsafe" extensions from being uploaded to the Media manager
Fixes #1801
2016-02-29 18:12:26 +11:00
Samuel Georges 136ec18084 This allows AJAX to function on maintenance and 404 pages 2016-02-27 22:39:26 +11:00
Samuel Georges 63451aab50 Fixes validatePath for Windows
(DIRECTORY_SEPARATOR is normalized in code above)
2016-02-27 15:04:07 +11:00
Samuel Georges d76863a3ec Merge branch 'develop' into stable
Conflicts:
	composer.json
2016-02-27 14:55:52 +11:00
Samuel Georges 8e9ae8e53e Clean up from #1631
- Files in the media library can now contain two dots
- Retina Images Support
2016-02-27 14:49:38 +11:00
Samuel Georges 423360b2d2 Merge pull request #1631 from JoelESvensson/develop
Files in the media library can now contain two dots
2016-02-27 14:36:38 +11:00
Samuel Georges b88e78ffb4 Minor 2016-02-27 14:22:56 +11:00
Breno Douglas Araujo Souza ec03b7b2f8 Access paramater in onStart method in the partial
Variables passed in parameter partils not accessed in onStart method in the partial.

With merged vars before render partial, stays like this::

```php
function onStart() {
   $this['param'];
}
```
2016-02-27 14:18:22 +11:00
Samuel Georges fbed1dd2ed Merge pull request #1799 from mcustiel/feature-component-autowiring
Added the ability to inject dependencies into components
2016-02-27 14:09:14 +11:00
Mariano Custiel c94706ed05 Added the ability to create instances of components from factories to allow injection of dependencies in components
Fixed descriptions

Added missing new lines at the end of fixture components

Fixed problem with include path

Fixed code as suggested. Now everything is solved through app::make

Removed tests that are not needed anymore since last changes
2016-02-22 09:44:14 +01:00
Samuel Georges 337cf36150 Access variables as variables, not methods
Fixes #1721
Really not sure why viewBag is using the __call() magic method to access properties. Switched to using __get() + __isset() to keep everything in black and white. If this turns out to be a mistake, roll it back and ensure the reason is documented accordingly.
2016-02-13 15:26:52 +11:00
Samuel Georges 97daebfa9e Use BadMethodCallException for graceful failure (Twig only)
Fixes #1571
This also fixes method inheritance for behaviors by using parent::__call() to look for any methods provided by extensions, catches the exception, then continues with BAU
2016-02-13 15:23:53 +11:00
Samuel Georges acfb35cbed Merge branch 'develop' into stable 2016-02-10 20:03:51 +11:00
Samuel Georges 03e7c19a5d Fixes issue where twig passed null
Minor update to dropdown docs
2016-02-09 17:58:37 +11:00
Jens Herlevsen 2350e30853 Make default 404 page use 404 status code 2016-01-24 19:04:22 +01:00
Samuel Georges af4f42e208 Add 503 header when maintenance mode enabled.
Fixes #1655
2016-01-21 20:16:53 +11:00
Samuel Georges b5aef97133 Alt fix for #1680 2016-01-04 17:49:11 +11:00
Samuel Georges ecb54ff92c Rollback #1672 2016-01-02 13:40:32 +11:00
DQ Sully 2fae5a30b9 Fix Twig Caching
When October would load a file from its changed source, Twig would not see the message until it had gone. See Cms\Classes\Loader->isFresh. This meant a template would not update unless you deleted the Twig cache, or that template's TTL expired. Fix: add another variable (freshness) that would only change after being observed, and accurately reflected if a template's source had been modified
2015-12-28 10:09:15 -07:00
Daniel Müller 01c63d6e32 fixed some PHPDocs
removed my prior changes to the code behaviour

removed errorous PHPDocs

fixed some PHPDocs

removed my prior changes to the code behaviour

removed errorous PHPDocs
2015-12-12 11:34:27 +11:00
Joel E. Svensson 8f1e2ff8a3 Files in the media library can now contain two dots 2015-12-06 18:55:51 +01:00
Samuel Georges 5e5e99cd46 Make it easier to pick the component name from the error 2015-11-01 13:16:43 +11:00
Samuel Georges 3b4ee3340e * Build 305
Fix bug when property values are array
2015-10-17 14:52:50 +11:00
Vojta Svoboda 16eb704793 Add missing PHPDoc @return tag 2015-10-17 09:17:37 +11:00
alekseybobkov a5b217ff0b Merge branch 'develop' into builder-ui
Conflicts:
	modules/backend/widgets/table/assets/js/build-min.js
	modules/backend/widgets/table/assets/js/table.js
2015-10-15 17:32:19 -07:00
alekseybobkov e26271bc01 Minor fix in Inspector styles. Minor fix in the component helper. 2015-10-15 17:10:56 -07:00
Samuel Georges 84a95af93b whereComponent doesn't rely on the component object 2015-10-09 05:32:24 +11:00
Samuel Georges 3531793ca3 Add where and whereComponent to CMS objects 2015-10-08 07:28:20 +11:00
Samuel Georges 1847018b99 Switch to October flavored INI 2015-10-03 08:52:52 +10:00
Samuel Georges 91d3d4dbde Swap FileHelper methods for new Ini parser 2015-10-03 07:30:11 +10:00
Samuel Georges 8ed6a3cc51 Fixes exception ref 2015-10-03 07:29:08 +10:00
Samuel Georges c30851d684 Remove dead ns ref 2015-09-30 20:54:00 +10:00
Samuel Georges 2ecf2db311 Remove dependency on IntlDateFormatter 2015-09-30 20:52:31 +10:00
Samuel Georges 8d11fe1257 Minor touch up to #1462 2015-09-26 08:51:13 +10:00
Samuel Georges 25f59a3b27 Merge pull request #1462 from dshoreman/localised-dates
Localise last modified date for mediaManager items
2015-09-26 08:47:41 +10:00
Dave Shoreman faf682e30e Localise last modified date for mediaManager items
Updates the string version of the date to use PHP's IntlDateFormatter
which gives us translated dates in the appropriate format, based on
the user's locale set in backend preferences.

If ever there's a case where locale wasn't set or didn't match anything,
it would default to the system locale.
2015-09-24 19:11:32 +01:00
flynsarmy 6e85290c9e Allow \ character in Page URLs. Fixes #1441 2015-09-22 10:38:35 +10:00
Samuel Georges 51c7878e8f Fixes rendering 2 shared component partials nukes context 2015-08-30 11:56:44 +10:00
Samuel Georges 2c5f9eba6b Write tests that verify the truth of #1373 2015-08-15 13:39:44 +10:00
Samuel Georges 85933facbc Stack partials, store components, unstack partials - Fixes #1373
Fixes instances where nested repeating partials are destroying the partial component stack and causing breaking errors.
Nesting example:

Partial (with components)
^-> Calls component default markup
^-> Refers to partial override (with repeating partial calls)
^-> Calls another partial (with components)
^-> Components not found (destroyed by repeating calls above)
2015-08-15 11:05:30 +10:00
Samuel Georges d537cef720 Merge pull request #1347 from powelski/resolve-1272
Escape HTML for .txt contents
2015-08-08 11:40:58 +10:00
Samuel Georges 2cf1d707ad The API response for insert / insert+crop should be identical
This is because the 'onInsert' callback is used for both actions, yet yielded different results causing breakages
Fixes #1281
Also improved code readability in some places
2015-08-08 11:17:56 +10:00
Krzysztof Powelski 9c3f83c54f Escape HTML for .txt contents 2015-08-05 00:00:43 +02:00
Samuel Georges 0f215785f3 Rollback the idea of using $visible on CmsCompoundObjects
This feature should be reserved for serializing the object (in future maybe) rather than defining visible properties, these should be relaxed.
2015-07-25 11:07:36 +10:00
Samuel Georges 52ea4a73c8 Performance improvements, rename scopes to standard 2015-07-21 20:46:35 +10:00
Samuel Georges f9c921a797 Adds getAjaxHandler() API to controllers
Fixes bug where update process fails midway
2015-06-30 08:56:53 +10:00
Samuel Georges 3e95ee555f Merge pull request #1224 from scottbedard/patch-4
Translate component group
2015-06-27 09:26:18 +10:00