Commit Graph

4487 Commits

Author SHA1 Message Date
Ayumi 06b1f57755 Expand the character limit of error messages in Event log list (#4830) 2020-01-16 20:37:38 +08:00
Ben Thomson c046466913 Set Dropzone.js uploaders to have no time limit (#4878)
The upgrade to the latest Dropzone.js brought in a new `timeout` configuration variable, which defaults to 30s. This removes the time limit and restores original functionality.

Fixes #4869
2020-01-14 16:47:25 -06:00
Flynsarmy 0bbc12af45 Remove excess spaces from tab title hovers (#4876) 2020-01-14 19:58:54 +08:00
jacobdekeizer 3a28771c2c Fix registerSchedule typehint in PluginBase (#4871) 2020-01-10 11:55:54 +08:00
Samuel Georges d46accfc4f Don't force highlight nothing element
Causes "Uncaught TypeError: Cannot read property 'element' of undefined at DecoratedClass.SelectOnClose._handleSelectOnClose"

Refs #4867
2020-01-07 07:04:25 +11:00
Luke Towers 64d7464ed3
Improve cms.combiner.beforePrepare event docs
Related: #4865
2020-01-06 11:40:20 -06:00
Samuel Georges 8ce9525b44 Take 2
Refs #4867
2020-01-06 22:12:14 +11:00
Samuel Georges ec0918e284 Fixes removal of first item from taglist
Tested #4867 but it broke the use of pressing TAB after entering a tag to lock it in. This seems to retain that functionality and yet still fix the issue

Replaces #4867
2020-01-06 21:19:12 +11:00
Samuel Georges 4a1295162c List support for tr.nolink class
The `nolink` CSS class can now be applied to table rows elements (TR) in addition to table data elements (TD) to disable the click event
2020-01-06 19:44:06 +11:00
Samuel Georges 06da92e06d Fixes multi click issue
When the popup is hidden during its loading sequence, the invisible buttons are still clickable and prone to misclicks

Fixes #4729
2020-01-06 18:56:28 +11:00
Szabó Gergő b9a7dab177 Apply custom secondary color to Media (#4863) 2020-01-03 21:17:50 +11:00
Samuel Georges cd4f56c64c Broken link report
Refs https://github.com/octobercms/docs/issues/427
2019-12-30 09:55:38 +11:00
Samuel Georges 321f7eaa1f Catch fatal errors after cycling page action
This is a complex issues where a "model not found" exception is getting thrown during the `pageAction` cycle, then getting suppressed by the fatal error handler:

try {
    // RelationController throws error here
}
catch (Exception $ex) {
    $this->controller->handleError($ex);
}

Fixes #4784
2019-12-29 15:40:28 +11:00
Samuel Georges e19f8b287d Db::getConfig has no second arg
Currently returns null via Arr::get(arr, key, default=null)
2019-12-29 11:46:01 +11:00
Samuel Georges 160ae441ff Shorten default string length
- Introduce varcharmax config item, this default eventually should be increased to 255, when MySQL 5.6 support is dropped
- Config item can be kept to retain legacy support
- Only apply to mysql driver, previously was impacting other drivers
- Source true config values, previously was sourcing hard coded "mysql" connection values
2019-12-29 11:43:27 +11:00
Samuell 90e9b2e2c6 Typo fix in SK translation (#4852)
Credit to @Samuell1
2019-12-27 12:23:15 -06:00
Samuel Georges 4fb897ff12 Fixes bug showing the entered password 2019-12-24 18:10:17 +11:00
Samuel Georges 2b45c3f322 Simplify wording to sound more DOS-era robotic 2019-12-24 17:43:25 +11:00
Ben Thomson a66310bd56
Allow changing of Backend user passwords through CLI. (#4836)
Adds an Artisan command "october:passwd" to change the password of a Backend User through CLI. This command may only be run through CLI - it will not work if called through a web handler.

Refs: #3521, #4835. Docs: 1f3bfc719e
2019-12-23 08:19:15 +08:00
Ayumi 0436165a90 Improve UX for checkboxlists on mobile (#4841)
Credit to @ayumi-cloud.
2019-12-22 13:39:22 -06:00
Samuel Georges 953061797d Remove hard coded widget name for lazy tabs (#4839)
- The widget alias may not always be form, so pass the handler name
- No need to spam non-lazy tabs with useless data tags
2019-12-22 16:39:45 +11:00
Marc Jauvin 3a49b5fa7a allow loading of lazy tabs for secondary tabs as well (#4839) 2019-12-22 15:24:42 +11:00
Samuel Georges adb303a53c Always sort plugins by key, then dependencies
This has been benchmarked and appears to have minimal impact on performance and solves unnecessary randomness and race conditions during the app's registration and boot cycle

Fixes #4826
2019-12-21 20:50:28 +11:00
Samuel Georges 21f8c5f272 Fixes styling issue when quick select is forced
Replaces #4827
2019-12-21 13:46:06 +11:00
Samuel Georges cbc620c3e8 Rollback for Build 462
This change should be revisited since it doesn't account for database-based templates which have no file path. Upon revisit, we might want to consider adding this logic in to the afterFetch() event with detection of file based mode, or even at the lower levels where the file is first extracted from the filesystem. TBA
2019-12-19 17:42:25 +11:00
Luke Towers a51215b9b3
Revert "Added additional robots meta fields to CMS pages (#4685)" (#4832)
This reverts commit 8303e0dbb2. Reverts #4685. Should be implemented as a plugin instead.
2019-12-18 13:51:50 -06:00
Nick Khaetsky 8303e0dbb2 Added additional robots meta fields to CMS pages (#4685)
Credit to @FlusherDock1
2019-12-18 10:16:36 -06:00
Dan Harrin 3fc7f6aa76 Refresh Relation Manager on Unlink and Delete (#4741)
Credit to @DanHarrin. Fixes #3470 and #4718. Replaces #3476.
2019-12-17 23:16:55 +08:00
Ben Thomson a53cc52752
Correctly display HTML entities in event log (#4566)
This changes the event log to use a partial for the log message which double-encodes the data. When using formatted view in the log viewer widget, the HTML entites are allowed by decoding back a step. When in raw view, the HTML entities are kept double-encoded.

Fixes #4558.
2019-12-17 22:43:44 +08:00
Ayumi 56eab50260 Documented session.http_only (#4743)
Credit to @ayumi-cloud
2019-12-14 11:14:23 -06:00
Samuel Georges 7902cfa58a Simplify security check
Logic in ComponentPartial was rolled back and moved to the Controller. Since there are issues with throwing exceptions inside the component partial lookup logic (exceptions are conditionally suppressed), it seems like it would be better to bubble up the security logic to the controller level as a simple base dir security check, which is no longer concerned about any suppression logic. This looks to have logic parity with the previous solution

Refs #4652
2019-12-14 12:37:44 +11:00
Tobias Kündig 80f870c313 Allow partial overrides in subfolders (#4652)
* Allow partial overrides in subfolders + security checker
2019-12-14 12:22:30 +11:00
Samuel Georges 6277f9b44c Event goes off not on 2019-12-13 21:56:39 +11:00
Samuel Georges 0a98afbff8 Remove GPU enablement
It is unsure why this was ever needed, but it appears to fix the overflow issues with the sortable plugin

Refs https://github.com/rainlab/pages-plugin/issues/384
Refs 11be3fede3
2019-12-13 21:44:37 +11:00
Samuel Georges ed2eec6afb Move placeholder upon mouse scroll
This is one step closer to fixing the sorting issues when a scrollbar is present. It still doesn't quite fix the issue, still need to find a way to get the container dimensions to update

Refs https://github.com/rainlab/pages-plugin/issues/384
Refs 1d91c221b0
2019-12-13 21:34:59 +11:00
Samuel Georges 22db1299ae Exception handling
$widget->secondaryTabs['fields'] may not always be present
2019-12-12 22:02:39 +11:00
Ben Thomson c17cb58aa1 More strict checking of addItem request for child repeaters (#4814)
Similarly named repeater fields being used in viewBag variables were being assigned aliases which succeeded the `strpos` check on line 407. This will more clearly look for a child repeater form and index.

Fixes #4808
2019-12-12 21:44:10 +11:00
Samuel Georges 5839b6869a Recompile assets 2019-12-10 20:41:19 +11:00
Philipp Lang d4d1874311 Allow setting customview path for relation list (#4680) 2019-12-10 20:21:56 +11:00
Blaž Oražem 8abed1794f Slovenian language added (#4796)
* Add Slovenian language
2019-12-10 20:17:42 +11:00
Robin Bonnes 9145955978 Adds the ability to override the column header label in import/export. (#4737)
Now we can use the `backend.list.overrideHeaderValue` event also in the import/export.
2019-12-10 20:06:10 +11:00
Samuel Georges 70e57120d0 ApplicationException -> SystemException
This appears to be a typoe. It doesn't make sense to ever log "user errors", only "system errors"

Fixes #4569
2019-12-10 19:59:49 +11:00
Samuel Georges 260e1f503f Rollback d31006ae1a 2019-12-10 03:12:12 +11:00
Marc Jauvin 864816f7f2 Make CMS object code editor read-only in safe mode (#4769)
Adds a dismissable message to the CMS object code editor indicating that the PHP code section of a CMS object cannot be edited when `cms.enableSafeMode` is `true` (or when debugging is disabled if `null`).

Credit to @mjauvin.
2019-12-09 21:05:50 +08:00
Samuel Georges 63729e401b Fixes typo in merge conflict 2019-12-09 20:58:16 +11:00
Tobias Kündig 4704f85096 Added lazy loading for backend form tabs (#4658)
* Added lazy loading for backend form tabs
2019-12-09 20:45:26 +11:00
Samuel Georges 1e449c82b6 Prevents erratic rendering issues
This occurs due to a race condition in the rendering where the scrollbars enable and disable over and over because of a slow height calculation. Giving any height number appears to close the loop by never letting the height resolve to 0

Refs #4632
2019-12-08 10:27:59 +11:00
Samuel Georges b22021db3b Minor continuity change
Let's save this for L6 upgrade. Although PHP 7 partially support this, we should revisit once the PHP version is bumped + better support for it
2019-12-07 11:37:06 +11:00
Tobias Kündig a4359c91e9 Explicitly pass focused item along as it is already known (#4807)
If the DataTable widget is loaded in a Popup, the .focus() call does not
seem to focus the target element correctly, which leads to the problem,
that the updateCellFromFocusedItem method fails to find the focused
item.
This commit passes the target item along since it is already known.
2019-12-07 11:33:06 +11:00
Larry Barker 2b05d01c6c Support additional file name and path characters in media manager (#4564)
* Support additional file name and path characters in media manager

When working with abstract file names that may contain additional characters, such as quotes or ampersands, the media manager would throw an error. This PR adds two additional characters to the character whitelist.

* Add unicode filename to tests
2019-12-05 19:44:04 +11:00
Philipp Fehr 9dc54baddd Fix race condition when clearing recordfinder value (#4802)
Credit to @TheFehr. Fixes #4800.
2019-12-04 10:14:19 -06:00
Luke Towers 5f8a5454ee Narrow the scope of when Lists orderBy conditions are reset.
Credit to @bennothommo & @daftspunk
Replaces: 9f8d8ec9fa. Refs: #4439
2019-12-04 02:36:51 -06:00
empower-josh 4ab464cede Add public methods to access Lists widget's sort direction & column (#4746)
Credit to @empower-josh.
2019-12-04 02:29:24 -06:00
Samuel Georges aa31667952 Make fake-infinity precise to 4 bytes 2019-12-04 18:30:32 +11:00
Samuel Georges ee4078ac44 Tweak chart markup to not depend on an external class
This fixes the rendering of the example markup. The line chart has no styles but just needs to know the display height
2019-12-04 08:25:44 +11:00
Samuel Georges 905e5fbb72 Fix for strict SQL languages (Pgsql)
When the value is null [id >= ''] an error is thrown, not being an integer, while [id >= null] will return nil results, curiously. Here we emulate infinity by using a large-ish number instead of null. In future if this becomes a problem we may need to resort to multiple condition definitions as a more verbose solution, for example:

- For when both are set (conditions: id >= ':min' and id <= ':max')
- For when min is set (conditionsMin: id >= ':min')
- For when max is set (conditionsMax: id >= ':max')
2019-12-02 17:27:43 +11:00
Ben Thomson 9f8d8ec9fa
Force ordering when list widget column is sorted
When ordering is applied externally, ie. by a relation config, the orderBy call in the List widget simply adds an additional field to the ordering clauses, which prevents lists in these scenarios from being re-ordered correctly. This changes the order clause so that the ordering is reset and only the specified column is ordered when the user sorts a column.

Developers can continue to use the `extendQuery` event to do specialised custom ordering if required.

Fixes #4439.
2019-12-02 09:27:25 +08:00
Ben Thomson 1283121069
Trigger "change" event when time picker is changed
This allows dependent fields (ie. dependsOn) to trigger correctly when a time field, or the time part of a datetime field, is changed.

Fixes #4268
2019-11-30 00:09:49 +08:00
Tobias Kündig 61129b48ec Only put sortOptions to the session if the List query succeeded 2019-11-29 08:26:37 +01:00
Luke Towers 7e98e199a4 Revert #4567, fixes #4648.
If including the asset extension is important, this can be done by listening to the `system.assets.beforeAddAsset(&$type, &$path, &$attributes)` event introduced in Build 460.
2019-11-28 10:32:34 -06:00
Ben Thomson 9b72c2d181
Number range filter improvements (#4789)
- Allow minimum or maximum to be unspecified, meaning you want everything up to maximum, or everything above minimum.
- Allow for zero values to work
- Tweak display of infinite values

Fixes #3982.
2019-11-28 22:23:28 +08:00
Samuel Georges 566f138eab Fixes touch events in sortable plugin
Refs #4791
Refs #4777
Refs #3755
2019-11-28 21:03:32 +11:00
Ben Thomson e9abdf7783
Parenthesise some double ternary conditions in Asset Combiner.
Improve compatibility with PHP 7.4, where "Unparenthesized `a ? b : c ?: d` is deprecated"

Fixes #4790.
2019-11-28 09:21:03 +08:00
Samuel Georges 18398a8318 Add touch events back to modernizer 2019-11-25 16:59:20 +11:00
Marc Jauvin 992e84e602 Add missing documentation comment blocks for fired events (#4788)
Credit to @mjauvin.
2019-11-24 23:59:00 -06:00
Luke Towers 106756d656 Fixed conflict between JS input trigger plugin & JS filter plugin.
Related: https://github.com/octobercms/october/issues/3202#issuecomment-556042766
2019-11-22 18:39:25 -06:00
Samuell 5d13788f16 Improved Slovak translation (#4778)
Credit to @Samuell1
2019-11-20 11:09:33 -06:00
Jim Cottrell b5ed0b313a Restore support for Select2 data format in custom select control (#4712)
Credit to @jimcottrell. Refs: #4413
2019-11-19 15:13:08 +08:00
Marek Erben 1b4147212d Improved Czech translations in /modules/system/lang (#4773)
Credit to @maraerben.
2019-11-19 11:49:05 +08:00
Ben Thomson 68c9feb622
Fix copy and paste on alert popups (#4740) 2019-11-16 16:27:37 +08:00
Luke Towers 14387b74b4 Minor cleanup from #4764 2019-11-15 15:40:57 -06:00
Luke Towers 19ce51ba4a Implemented client side refresh of dependent options & server side checking of valid filter values before applying them to the query 2019-11-13 13:55:06 -06:00
Luke Towers 17b8ba75af re-add accidentally removed comment 2019-11-12 17:07:10 -06:00
Luke Towers 6f0e4afbbd cleanup 2019-11-12 17:06:23 -06:00
Luke Towers 70107c6376 Initial WIP on implementing dependsOn support for filter scopes.
Still need to resolve an issue where if the slave filter has values set when the master filter updates, thus triggering a change of the available options to the slave, the original values are still set on the slave but not actually visible in the popup as options because they're no longer valid options. To fix this we'll need the ability to get the browser to refresh the slave filter's selected values (count icon basically since it already forces the options popup to refresh) when its masters update; while at the same rechecking the slave's scope values set on the server to ensure that they're all valid and there aren't values left over from the previous request that are no longer valid but are still being applied to the query.
2019-11-12 17:02:25 -06:00
Luke Towers 85fadbfef3 Check user permission for the mediafinder formwidget.
Fixes #4216. Replaces #4669. Credit to @gergo85.
2019-11-12 12:32:17 -06:00
Tomasz Strojny 8fb9c59ee1 Removed double checking if file is protected in FileUpload widget (#4753)
Credit to @tomaszstrojny. Cleanup from 4f7c5cc1e7.
2019-11-11 12:34:58 -06:00
Christophe Vuagniaux f0db465f46 Avoid array_intersect error if argv is not defined (#4751)
Credit to @ChVuagniaux. Can be triggered when attempting to run Laravel HTTP tests on OctoberCMS (https://laravel.com/docs/6.x/http-tests)
2019-11-10 10:52:36 -06:00
Luke Towers 615c4cdb04 Change default of cms.backendForceSecure to reflect the config default that's been in place since 2016. 2019-11-07 12:14:32 -06:00
Luke Towers 07ac19f7b3 cleanup from last commit 2019-11-07 12:03:10 -06:00
Luke Towers d56dded458 Restore middleware support in backend controllers.
Reverts f73d8e6d49.  While there are other ways to achieve some of the same end results, this code existed in the code base for 8 months without issues and is included in the official docs. This means that there could be devs that are depending on this behavior. Additionally, while this may make the internal logic to the BackendController class more complex, it simplifies the developer experience by bringing the Backend\Classes\Controller base class more in line with the standard Laravel controller class.
2019-11-07 11:59:00 -06:00
Luke Towers 490b1d6b00 minor formatting fix 2019-11-06 16:56:46 -06:00
Luke Towers c9df45a87d Fixed typo 2019-11-06 16:55:16 -06:00
Ben Thomson e97057246a
Fix empty Richeditor class lists from breaking widget (#4725) 2019-11-06 17:44:46 +08:00
Samuel Georges 8da798a5cd Remove XSRF cookie
This was a contentious change is generally a bad idea to blanket all requests with a dependant cookie. We will try something else.

Revert enableXsrfCookies setting. Fixes UX issue introduced where the token expires. This should be replaced by a CSRF policy that determines whether this is needed on the front end.
2019-11-04 09:06:05 +11:00
Samuel Georges c5bd5f0e0a Apply ResponseMaker to backend AJAX and cms.page.display event 2019-11-03 08:02:28 +11:00
Samuel Georges 1df8e72e4a Remove unused import 2019-11-02 19:42:09 +11:00
Samuel Georges 63f65a3f25 Add XSRF to backend, simplify CMS controller run() method
runInternal has been removed because we do not want to blanket our response logic over every single response, only the happy path. This is because it is impossible to remove. So it is better to take the inverted approach, where if you want the CMS' headers in your custom response, add them yourself. This becomes easy via the new makeResponse() method
2019-11-02 19:14:45 +11:00
Samuel Georges 9d120ad66b Add header and cookie support to ResponseMaker 2019-11-02 18:57:32 +11:00
Samuel Georges ff8f899fbe Move response common functions to ResponseMaker trait 2019-11-02 18:21:22 +11:00
Samuel Georges f269901d72
Merge pull request #4732 from octobercms/remove_double_middleware
Remove double middleware
2019-11-02 18:06:50 +11:00
Samuel Georges 92bd8360b9 Fixes issue where behaviors are not booting 2019-11-02 16:30:33 +11:00
Samuel Georges f73d8e6d49 Removes double middleware layer
For some reason it was decided to allow October controllers to support Laravel middleware, this has been reverted because it is a convoluted solution that doesn't respect the original architecture. There are other ways to handle middleware requirements

The original use case appeared to be to simply allow backend controllers to inject headers. This is something easily solvable whilst keeping the simple and original workflow
2019-11-02 16:16:32 +11:00
Samuel Georges b1fa45ee3a Combine common CSRF logic to a trait 2019-11-02 15:15:18 +11:00
Samuel Georges 49d68f0671 Cookies are no longer serialized
Based on update to library 09e859a13e we no longer serialize cookies, so the decrypter no longer needs to apply a serialization layer
2019-11-02 14:52:00 +11:00
Luke Towers 959b85f56c Add cms.enableXsrfCookies config value (default true) to configure whether or not the XSRF cookie is automatically sent or if CSRF tokens are solely relied on.
Related: https://github.com/octobercms/october/pull/4701#issuecomment-547773385 & https://github.com/laravel/framework/pull/24726
2019-10-30 08:08:54 -06:00
Luke Towers 457466c5af Fix typehint 2019-10-29 16:33:49 -06:00
Luke Towers eb4648972f Ensure that the XSRF cookie can always be added to the response, no matter the source of the response 2019-10-28 13:33:07 -06:00
Luke Towers 096ccf875d Implement suggestions from @bennothommo 2019-10-28 12:58:07 -06:00
Samuel Georges f542ca8e90 Implement XSRF checking for AJAX handlers
Refs #4699
Refs #4701
2019-10-24 20:19:20 +11:00