Commit Graph

290 Commits

Author SHA1 Message Date
Samuel Georges 4fd1ca824f Introduce concept of system roles
These are roles defined by a special API code, once a system role code is detected, the role becomes locked and its permissions are sourced from the AuthManager. All permissions are granted to system roles by default, unless otherwise specified. This should make it easier to create client accounts as "Publishers", hiding developer tools like the CMS and Builder plugins by default.
2017-07-13 19:29:50 +10:00
Samuel Georges 1db67af8e8 Merge remote-tracking branch 'remotes/origin/develop' into l55upgrade
Conflicts:
	modules/system/lang/en/lang.php
2017-07-11 10:48:54 +10:00
Samuel Georges c0aa03a400 Create an error making trait
Widgets can throw fatal errors too
2017-06-11 22:38:03 +10:00
Samuel Georges f020479b91 Move session logic to SessionMaker
This allows controller behaviors to access session utils
2017-06-10 04:58:29 +10:00
Samuel Georges edcd899a79 Base getLoadValue to look at form field first
Fixes https://github.com/octobercms/october/pull/2663
Adding to build 420+ because this might cause some issues, although it shouldn't. Hoping we don't ever have to roll this back because it fixes another inconsistency when using the model `filterFields` method... some will change values via $field->value (field accessor) and others will change via $this->value ($model accessor). This now puts the field accessor at a consistent priority (first) while retaining the fallback to model.
2017-06-06 20:44:15 +10:00
Samuel Georges 41cc1744f1 Tab panes now support CSS spec
See form docs > paneCssClass
2017-06-05 17:37:13 +10:00
Oscar Arzola 8a40e1cc89 Update Report widget docblock 2017-06-02 23:53:27 -05:00
Oscar Arzola a7d20211ae Fixed Formatting and added docblock 2017-06-02 09:51:13 -05:00
Oscar Arzola 0bd12cf0e6 Added Extensibility to ReportWidgets 2017-05-30 16:49:35 -05:00
Samuel Georges 04f89dc5bb getToken -> token 2017-05-20 13:19:51 +10:00
Samuel Georges 7e76f39e6c Add app.name config
Various other refittings
2017-05-16 18:50:41 +10:00
Quezler cc17b679f1 Code dusting (#2826)
Code cleaning according to PSR-2 w/ exemptions (mostly dust).
2017-04-24 21:38:19 +10:00
Samuel Georges 015b34fe88 Block media manager entirely if user lacks access 2017-04-11 08:40:39 +10:00
Luke Towers d1c9b1a6f1 Support updating existing sidemenus
Fixes #2757, #2777
2017-03-24 09:05:35 -06:00
Samuel Georges 0a981a25f7 API docs progress
Controller -> SystemController for consistency
2017-03-16 17:08:20 +11:00
Samuel Georges 18c6bb63a2 API docs progress 2017-03-15 18:03:26 +11:00
Samuel Georges 462c9cd4e8 Introduce theme logging + log settings
CmsObject changes can now be tracked (disabled by default)
Request logging is now disabled by default (security vector)
2017-02-08 05:44:04 +11:00
Samuel Georges 0d1fc43212 Add isSelected() helper to form field
Fixes an issue where dropdown NULL and 0 are treated as the same
Fixes #2612
2017-02-03 06:35:23 +11:00
Samuel Georges 5b5e23bfb8 Minor touch up from #2604 2017-01-26 11:30:26 +11:00
Samuel Georges 5e729f9978 Merge pull request #2604 from dubcanada/patch-1
If CMS module is loaded (and MediaManager exists) bind it
2017-01-26 11:27:56 +11:00
dubcanada 0a4390b4d9 If CMS module is loaded (and MediaManager exists) bind it
I am using OctoberCMS without the CMS module (removed from modules directory and turned off in cms.php) and I am getting an error in the backend regarding missing `MediaManager` class. I wrapped this in a class_exists to check that MediaManager exists before binding it.

Let me know your thoughts.
2017-01-10 13:45:59 -04:00
Samuel Georges 6af6ebe733 Added config backendForceSecure used to force HTTPS
Refs https://security.googleblog.com/2016/09/moving-towards-more-secure-web.html
2016-12-17 10:16:02 +11:00
Samuel Georges c644f8b66d Fixes issue where nested columns forcibly hide
Eg: "myrelation[attribute]" as a column name would cause the list setup to hide these fields with no ability to bring them back
2016-12-14 19:14:41 +11:00
Samuel Georges 0a2b343047 Simplify system events
This pipes all event calls through a new EventEmitter trait, which substitutes the October Rain event emitter trait. The view event has been moved to this trait also.
Pass some variables by reference to allow multi-extension.
Fixes #2420
2016-12-10 09:02:06 +11:00
Samuel Georges 29040b416c Allow redirect: false on importExportController
Implement getFieldName() method
2016-11-28 07:50:06 +11:00
Samuel Georges 35296c5b26 Adds getFieldName helper to FormWidgetBase
Refs https://github.com/octobercms/docs/pull/207
2016-11-24 08:59:07 +11:00
Samuel Georges 46c473e2f2 Fixes fetching multi tiered pivot relation values
Refs https://github.com/daftspunk/oc-crm-plugin/issues/3
Minor code clean on select.js
2016-11-08 07:02:31 +11:00
Samuel Georges 6173ff177b Typo in variable name 2016-11-02 08:58:07 +11:00
Samuel Georges 0aadcc6675 Merge paths and vars when calling widget handler
When an AJAX handler is called for a widget, the view paths and specified variables should be merged in to the controller. This sets the appropriate context:

1) Look at the widget first
2) Fall back to the controller

Fixes #2432
2016-11-02 08:50:15 +11:00
Samuel Georges bc165078de Removes redundant code
The form widget label and widgetDetails() method was intended for use by the Builder plugin, since it ended up using its own internal registration system, this is not used anywhere so is removed.

Refs https://github.com/octobercms/docs/issues/200
2016-11-01 08:15:03 +11:00
Samuel Georges 0b345ad592 Add 'readOnly' spec to form field
Same as disabled except data is still posted back
2016-09-27 16:50:52 +10:00
soulshockers e10c162667 Fixed calling dynamic methods for dynamically extended widgets. 2016-08-05 18:51:27 +03: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 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
Luke Towers b73811fefc Moves AJAX handler response handling
Fixes octobercms/october#2208
2016-07-13 09:51:18 -06:00
Samuel Georges bcff1d3ecd Widget classes are now extendable
Fixes #2078
Fixes #1586
2016-06-15 17:10:46 +10:00
Samuel Georges 171b14c6ab Nicer error message when no DB and backend access attempt
This is for flat-file sites that don't use a database. If debug mode is on, it will show an error page with advice to set up the database. If debug mode is off, it will simply show a 404 page. Previously it was a nasty exception/plain error page.
2016-06-05 07:16:11 +10:00
Samuel Georges e9be15cc15 Preferences -> Preference
Rename brandsetting config folder
2016-05-27 07:46:50 +10:00
Samuel Georges cdb35f5070 UserPreferences -> UserPreference
(Models should be singular)
2016-05-27 07:35:32 +10:00
Samuel Georges 6c081d9265 Combine editor preferences and backend preferences
Add backend timezone setting used for converting display dates
2016-04-23 05:31:05 +10:00
Samuel Georges 0504da41f2 Add hasFields methods
formHasOutsideFields, formHasPrimaryTabs + formHasSecondaryTabs
2016-04-23 05:13:08 +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
Pásztor Gábor 9f3fcf27ed Update AssetsList 2016-03-30 18:17:18 +02:00
Samuel Georges a035acdc2c Tidy up some logic, restore firstRowTitles setting
Refs #1856
2016-03-26 14:10:05 +11:00
Jérémy Gaulin 2a60e34558 Import options to configure the CSV reader + patch to prevent unfriendly error to be thrown due to bad import source file encoding (on AJAX request) 2016-03-26 12:54:13 +11:00
Samuel Georges 0aef151d9a Add showSearch option to dropdown
This is a highly specific option, so we shouldn't add it to the FormField class itself
2016-03-25 18:21:58 +11:00
Samuel Georges 23f4d40ef2 Merge common functionality in to FormModelWidget 2016-03-25 18:01:58 +11:00
Samuel Georges 1241f584d0 Merge remote-tracking branch 'remotes/origin/stable' into ui 2016-03-01 07:02:07 +11:00
Samuel Georges 21f3ac93c1 Add support for HTML comments
Fixes #1808
2016-02-27 09:46:00 +11:00
alekseybobkov a943708b99 UI updates 2016-02-19 22:12:41 -08:00
Joshua Wilson 6f3d7a58f2 Phpdoc cleanup for System\Traits
removed in WidgetMaker trait

phpdoc cleanup of backend traits and classes

Minor fix for cases when file is not found
2016-02-13 14:06:50 +11:00
Samuel Georges 3cfc7b6a5d Move widget classes that are exclusive to their own space 2016-01-16 16:02:28 +11:00
Pásztor Gábor 31457bd2ee Cleanup 2016-01-15 10:20:57 +01:00
Samuel Georges 2213c6f28c Fix string comparison function
Flush stray output on view errors
2016-01-02 16:13:30 +11:00
Samuel Georges a186a60c43 Fixes the datepicker saving an empty value when disabled
Refs https://github.com/responsiv/campaign-plugin/issues/4
2015-12-09 08:19:53 +11:00
Samuel Georges 04e61adac3 Add official support for "nolink" columns - Fixes #1599
To make a row non-clickable, use the `clickable` option in the list column definition
2015-12-05 10:05:42 +11:00
Samuel Georges 33d39c8b34 Minor 2015-10-17 10:51:54 +11:00
Samuel Georges f446f8acd4 Merge pull request #1506 from tschallacka/FormFieldCatchForEmptyYaml
Fixed form field parsing to accept no config
2015-10-17 10:23:58 +11:00
Samuel Georges ef22ac934d DRY up code from #1504 2015-10-17 10:16:49 +11:00
tschallacka c4fffbd6f7 Fixed form field parsing to accept no config
If a programmer would define a yaml like

    fields:

        shortcut:

        country:

It would fail with message

    "array_key_exists() expects parameter 2 to be array, null given" on line 275 of ..\modules\backend\classes\FormField.php

The yaml parsing returns a null. This check intercepts that null value being passed to the function and turns it into a proper array.
2015-10-09 16:06:23 +02:00
flynsarmy 82c2787f39 Add support for default values in form widgets 2015-10-09 13:51:33 +10:00
Samuel Georges 1c8d021a35 Adds the ability to remove navigation items
Included tests
Refs #1413
2015-09-12 08:45:58 +10:00
Samuel Georges 2a6b58a3fe Merge pull request #1425 from Flynsarmy/getPublicActions
Add getPublicActions controller method
2015-09-08 12:48:44 +10:00
flynsarmy 98e1d0fe4d Add getPublicActions controller method 2015-09-07 14:17:09 +10:00
Samuel Georges 917cfd437f Make sure a tab is defined always - Refs #1397 2015-08-29 16:45:01 +10:00
Jérémy GAULIN 2872e80a14 Merge branch 'develop' of https://github.com/octobercms/october into fix-extending-plugin 2015-08-03 18:20:20 +02:00
Jérémy GAULIN f22a16d482 Fix NavigationManager error when extending a side menu by adding a new item.
The code and owner were not set in the value array.
2015-08-03 18:07:56 +02:00
Samuel Georges bb4c2da404 Revert change from #1315, fixes original issue, write tests 2015-07-28 18:52:12 +10:00
Samuel Georges 48b4a137fa Allow passing explicit content to hints 2015-07-25 09:34:47 +10:00
Samuel Georges d453f922dc Improve the hint API, add inset mode to loader 2015-07-25 09:23:34 +10:00
Samuel Georges fc490b18e9 Add actionUrl() helper to backend controller
Used for generating URLs to the current controller
2015-07-23 19:44:54 +10:00
Samuel Georges 846feb6a33 FileUpload now triggers dependsOn event
form.beforeRefresh event now uses dataholder pattern
Improve exception handling in ControllerBehavior
2015-07-18 08:50:31 +10:00
Samuel Georges 606892143b Added new security config option cms.enableCsrfProtection 2015-07-04 09:31:28 +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 c9a9c6ea16 List columns now support specifying a default option used when the value would otherwise be null. 2015-06-27 10:39:07 +10:00
Samuel Georges d9dfa21372 Adds CSRF protection to the backend - Refs #105 2015-06-20 21:17:58 +10:00
Samuel Georges cd1d62d8d7 AJAX requests can only use the POST method 2015-06-20 20:18:58 +10:00
Samuel Georges 37e5b2328f Form text/password/number fields now support maxlength attribute - Fixes #1210 2015-06-20 12:00:37 +10:00
Samuel Georges e71025de09 Tidy up from #1219 2015-06-18 18:46:03 +10:00
flynsarmy 9a9a525180 Remove empty tabs when removing form fields 2015-06-18 14:44:43 +10:00
Samuel Georges 9ed73e0cba Updates for new symbolizePath API, requires latest rain lib code
Backend layouts can now be provided by plugins
2015-05-30 15:54:47 +10:00
Samuel Georges a1291c3716 Restyle Administrator pages 2015-05-21 22:55:08 +10:00
Samuel Georges cceae62812 Apply incremental default order values on side menu items
Refs #1079
2015-05-02 10:47:06 +10:00
Samuel Georges 7c205c7ceb Merge pull request #1079 from dshoreman/sortable-sidenavs
Add support for sorting sideMenu items
2015-05-02 10:28:55 +10:00
Samuel Georges 9173e3bb9a Merge branch 'develop' into media-manager 2015-04-23 18:09:18 +10:00
Dave Shoreman e6342dbd8a Add support for sorting sideMenu items
Up until now, only main menu items have supported the 'order' parameter
to set the sort order. This adds the same support to side menus, which
is especially useful when one plugin extends the side menu of another.

There is one downside: any existing plugins that use the side menu will
inevitably end up with their menu items appearing out of order, until
the author adds the 'order' parameter to their sideMenu array.
2015-04-22 22:16:06 +01:00
Samuel Georges 1a037bad04 Add the ability to include middleware in CMS / Backend controllers
Add init.php script to plugins
Fixes https://github.com/octobercms/library/issues/106
2015-04-21 20:07:34 +10:00
alekseybobkov c1740c479c Media Manager: implemented insert link, insert image, and crop and insert features. Minor fixes in October core and third-party JS plugins. 2015-04-11 18:55:02 -07:00
Samuel Georges 7e9e5adfb5 Merge pull request #1032 from keiosweb/fix_hhvm_relation_formfield_issue
fixes HHVM relation formfield
2015-04-01 19:02:08 +11:00
Samuel Georges c4027b8bc6 Added a defaultFrom option to form fields
Default context of manage and pivot forms is now create and update respectively, instead of the old value relation
2015-03-28 16:14:22 +11:00
Łukasz Biały e19759c9f9 fixes HHVM relation formfield (belongsToMany in particular) issue in which no data is pulled from relation 2015-03-27 23:03:38 +01:00
Samuel Georges a743d78658 List Column of type switch now has text-center CSS
List Column now have getName and getId accessors
2015-03-25 19:35:00 +11:00
Samuel Georges 0916c7a650 Fixes #1008 - typo in code 2015-03-18 05:41:39 +11:00
Samuel Georges 77d3ab8b67 Finish basic theme utilities: properties, import/export, duplicate, delete 2015-03-16 19:00:39 +11:00
Samuel Georges 9b8e1ce3c1 Improve theme list to allow editing properties 2015-03-14 18:09:54 +11:00
Samuel Georges e479ccbda6 Tab options can now specify 'defaultTab' 2015-03-14 17:06:03 +11:00
Samuel Georges c6bfd5d01c Move this logic to no longer depend on AR model 2015-03-10 09:34:59 +11:00
Samuel Georges 668457b4e6 Updated deprecated references
Str::evalHtmlId -> October\Rain\Html\Helper::nameToId
Str::evalHtmlArray -> October\Rain\Html\Helper::nameToArray
Str::stripHtml -> October\Rain\Html\Helper::strip
Str::limitHtml -> October\Rain\Html\Helper::limit
Str::cleanHtml -> October\Rain\Html\Helper::clean
2015-03-07 12:48:39 +11:00
Samuel Georges 8c41bc181e Model can now resolve this for us 2015-03-07 12:28:50 +11:00