Commit Graph

360 Commits

Author SHA1 Message Date
Ingo Schommer
bda56eb9b0 Don't link record in GridField form message
This is no longer allows through Form->sessionMessage() to avoid XSS.
2013-09-30 23:55:32 +02:00
Ingo Schommer
298de5a67d FIX Escape breadcrumbs in SecurityAdmin (SS-2013-007) 2013-09-30 22:53:43 +02:00
Ingo Schommer
d3aa38f4b4 $.data() for GridField autocomplete (fixes #2440) 2013-09-27 19:51:32 +02:00
Ingo Schommer
debd81d380 Merge pull request #2453 from chillu/pulls/escape-3.1.0
Escaping 3.1
2013-09-25 16:02:45 -07:00
Ingo Schommer
78ce99be09 FIX Escape breadcrumbs in SecurityAdmin (SS-2013-007) 2013-09-24 21:41:18 +02:00
Simon Welsh
6df6cb719d Revert "Merge pull request #2390 from phptek/2389"
This reverts commit 58da57dd1b, reversing
changes made to 8864256601.
2013-09-13 08:22:32 +12:00
Russell Michell
abcb2ef40b FIX: Modified fix for #2389 to ensure existing tests pass. 2013-09-06 08:48:32 +12:00
Russell Michell
128c33b82c FIX: Fixes #2389
- Prevent circular references in `GridFieldAddExistingAutocompleter` when linking DataObjects whose ID matches the current object to which the gridfield is attached.
2013-09-05 13:55:47 +12:00
Ingo Schommer
20b49e215c Merge pull request #2136 from nedmas/fix-remove-export-button-padding
FIX: GridField button styling
2013-08-30 00:24:21 -07:00
Ingo Schommer
a6da1f5570 Merge pull request #2294 from wilr/fixgridexport
FIX: Remove limit on GridField export
2013-08-20 14:08:18 -07:00
Ingo Schommer
02cc662aaf More specific entwine rule for delete alert in GridField
The rule didn't apply in Firefox because of how it handles specificity,
so made it a bit more specific (added "button" and ".action")
2013-08-16 16:06:31 +02:00
micmania1
8ce50c3ae6 Added gridField->getName() to field names to avoid duplication 2013-08-09 22:57:48 +01:00
Will Rossiter
65d96e8d7c FIX: Remove limit on GridField export
Allow DataList::limit() to take a null value to remove the limit.

Added tests for limit(). Note the one failure, currently the ORM doesn't support unlimited values with an offset.
2013-08-05 19:59:12 +12:00
Jeremy Thomerson
dbb2efcbb3 FIX: wrong class name being returned
This resulted in an error since the returned class name did not exist.
Note that this only happened when someone subclassed GridFieldDetailForm
and did not subclass GridFieldDetailForm_ItemRequest.
2013-07-09 20:59:56 +00:00
Ingo Schommer
fb784af738 API Enforce $allowed_actions in RequestHandler->checkAccessAction()
See discussion at https://groups.google.com/forum/?fromgroups#!topic/silverstripe-dev/Dodomh9QZjk

Fixes an access issue where all public methods on FormField were allowed,
and not checked for $allowed_actions. Before this patch you could e.g.
call FormField->Value() on the first field by using action_Value.

Removes the following assertion because it only worked due to RequestHandlingTest_AllowedControllerExtension
*not* having $allowed_extensions declared: "Actions on magic methods are only accessible if explicitly allowed on the controller."
2013-06-24 14:50:40 +02:00
Tom Densham
3596892001 FIX: GridField button styling
Remove all top/bottom margins from buttons and apply to GridFieldButtonRow component. Ensure that all buttons are added to a suitable GridFieldButtonRow in ModelAdmin, SecurityAdmin and Group.
2013-06-21 14:22:00 +01:00
Ingo Schommer
7ce9677dcb Moved GridField table padding to buttons
Avoid double padding when no bottom buttons exist
2013-06-15 10:13:43 +02:00
Loz Calver
dcec30f4e3 Fix: Enable delete button for users with canDelete() but no canEdit() permissions
$form->makeReadonly(); iterates over all fields/actions, disabling the 'delete' button even when the user has permission
2013-06-03 12:31:40 +01:00
Ingo Schommer
5d97f615ce Merge remote-tracking branch 'origin/3.0' into 3.1 2013-05-31 17:52:24 +02:00
Ingo Schommer
c85c495848 BUG GridFieldFilterHeader works without non-filterable cols
Previously relied on the presence of a last column which wasn't filterable,
commonly a GridFieldEditButton. If this wasn't present, the filter buttons
were never added, leading to the GridField JS reload request being sent
without the required button form action, so GridFieldFilterHeader->handleAction()
was never called.
2013-05-23 17:48:27 +02:00
Will Rossiter
ddcfcf7bed Update @package, @subpackage labels
Cleanup of framework's use of @package and @subpackage labels and additional of labels for classes missing packages.

Moved all GridField related components to the one name.

Countless spelling fixes, grammar for other comments.

Link ClassName references in file headers.
2013-05-21 22:24:41 +12:00
Ingo Schommer
a1216b5e32 Merge pull request #1250 from wilr/gridfield-action-fixes
FIX: Do not blindly pass input values to GridField_FormAction URL's
2013-05-08 04:20:40 -07:00
Simon Welsh
8930304dfc Only set GridField state in request if a value is submitted 2013-05-07 08:15:27 +12:00
Ingo Schommer
9856fcef21 Merge remote-tracking branch 'origin/3.0' into 3.1
Conflicts:
	javascript/DateField.js
	model/DataQuery.php
	model/Versioned.php
	tests/forms/RequirementsTest.php
	tests/model/DataObjectLazyLoadingTest.php
	view/Requirements.php
2013-04-09 14:45:35 +02:00
Nik Rolls
5143c8149a Form now loads correctly when ClassName is changed. 2013-04-02 11:03:49 +02:00
Stig Lindqvist
3aced1151f BUG: GridFieldFilterHeader only filters on last filter
GridFieldFilterHeader only filters on the last filter argument because it keeps recloning the original datalist
2013-03-29 20:06:57 +13:00
Ingo Schommer
3334eafcb1 API Marked statics private, use Config API instead (#8317)
See "Static configuration properties are now immutable, you must use Config API." in the 3.1 change log for details.
2013-03-24 17:20:53 +01:00
ajshort
a965d3b374 BUG: Fix grid field rendering when the list is null 2013-03-09 01:04:51 +11:00
Will Rossiter
1ddd1ddc47 Docblock and coding conventions for GridField related classes. 2013-03-05 10:29:27 +13:00
Will Rossiter
36d3303e1b FIX GridField export and print actions should preserve state. 2013-03-05 10:27:15 +13:00
Hamish Friedlander
4b54383d68 API change request handling to be more orthogonal
RequestHandler#handleAction now exists. It takes the request, and
the action to call on itself. All calls from handleRequest to call an action
will go through this method

Controller#handleAction has had it's signature changed to
match new RequestHandler#handleAction

RequestHandler#findAction has been added, which extracts the
"match URL to rules to find action" portion of RequestHandler#handleRequest
into a separate, overrideable function

GridField#handleAction has beeen renamed to handleAlterAction and
CMSBatchActionHandler#handleAction has been renamed to handleBatchAction to
avoid name clash with new RequestHandler#handleAction

Reason for change: The exact behaviour of request handling depended heavily
on whether you inherited from RequestHandler or Controller, and whether the
rule extracted it's action directly (like "foo/$ID" => 'foo') or dynamically
(like "$Action/$ID" => "handleAction"). This cleans up behaviour so
all calls follow the same path through handleRequest and handleAction, and
the additional behaviour that Controller adds is clear.
2013-02-18 14:56:04 +13:00
Simon Welsh
3439e30ac1 Corrects indentation and line length 2013-01-24 19:56:02 +13:00
Ingo Schommer
c11b3918fc Merge remote-tracking branch 'origin/3.0' into 3.1
Conflicts:
	admin/css/screen.css
	admin/scss/_style.scss
	core/PaginatedList.php
	email/Mailer.php
2013-01-21 11:14:57 +01:00
Andrew Short
16efd7402e ENHANCEMENT: Add grid field save handler. 2013-01-15 22:41:25 +11:00
Ingo Schommer
80feb8c0b4 Respect displayFields in GridFieldPrintButton
Provides more coherent and expected default behaviour
2013-01-15 00:55:24 +01:00
uniun
e020c7be57 BUG doSave() and doDelete() should use translated singular name 2013-01-11 15:50:09 +01:00
Nicolaas
a32451f72e adding extension hook in GridFieldDetailForm.php
This hook is useful so that you can add additional fields / actions in a gridfield form that are not available in other settings (e.g. additional actions: previous / next / save and publish / unpublish / etc
2012-12-27 19:22:54 +13:00
Ingo Schommer
8ec3641e60 Merge remote-tracking branch 'origin/3.0' into 3.1
Conflicts:
	admin/javascript/LeftAndMain.FieldHelp.js
	lang/en.yml
	model/URLSegmentFilter.php
2012-12-21 15:04:17 +01:00
Ingo Schommer
661a4a2492 Removed direct sprintf() usage from _t() calls
Parameterized strings are easier to understand,
and more fail-proof, don't fatal out when not enough sprintf() args
2012-12-21 11:46:38 +01:00
Ingo Schommer
7a6ce01567 BUG Skip pagination on UnsavedRelationList in GFPaginator 2012-12-20 20:16:53 +01:00
Ingo Schommer
bbc8e06d49 API Show GridFieldEditButton even without edit permissions (for readonly forms) 2012-12-17 00:47:23 +01:00
Ingo Schommer
1848d7e90a API Check model permissions in GridField 2012-12-17 00:46:51 +01:00
Ingo Schommer
1ca3883a76 NEW Tooltip and inline help text support for CMS form fields 2012-12-14 01:58:04 +01:00
Simon Welsh
b0121b541c Add codesniffer that ensures indentation is with tabs. 2012-12-12 17:33:31 +13:00
Simon Welsh
fc5dd2994c Add codesniffer that ensures indentation is with tabs. 2012-12-12 00:12:11 +13:00
Ingo Schommer
8108f7f936 NEW Relation search for GridFieldAddExistingAutocompleter
Now also searches 1:n relations if they where defined in searchableFields() with dot notation.
2012-11-27 10:51:10 +01:00
Ingo Schommer
c8136f5d4c NEW Many-many relation data editing in GridFieldDetailForm
Also adds GridFieldDetailForm->setFields() for customizing
the displayed form fields (required for adding relational fields).
2012-11-27 10:45:43 +01:00
Ingo Schommer
c55c7c33f8 Merge branch '3.0'
Conflicts:
	admin/code/CMSProfileController.php
	composer.json
	tests/model/DataObjectTest.php
2012-11-22 23:51:28 +01:00
Ingo Schommer
434759cc83 BUGFIX Correct redirection URL on deletion in GridFieldDetailForm 2012-11-16 15:32:17 +13:00
Ingo Schommer
bd0e597ac6 Use button tag for delete button in GridFieldEditForm 2012-11-16 15:32:17 +13:00
Hamish Friedlander
7315be4531 FIX default values from DataObject not showing in GridField details form 2012-11-16 12:36:00 +13:00
Sean Harvey
8b0bb8dd09 API Replace deprecated FormField::createTag() with static create_tag()
GridField uses createTag() which is marked for deprecation, rather
than have it used as the cornerstone of generating FormField templates,
use it as a helper in case fields generate HTML tags from PHP.
2012-11-15 14:43:21 +13:00
Sean Harvey
532699c2ac Merge pull request #877 from UndefinedOffset/3.0
FIX 7906 Regression: GridFieldConfig_RelationEditor: Removing relation d...
2012-11-05 11:53:25 -08:00
Ingo Schommer
bcbf4636fc BUG Remove .ss-tabset class from CMS tabs to prevent rogue ajax load (#7980)
The existence of .ss-tabset triggers JS which applies $.tabs(),
and in turn interprets the first available link as the tab navigation.
jQuery UI subsequently tries to ajax-load this link, which is not
desired. Instead, $.tabs() should *only* be applied to a container
DOM element with .cms-tabset applied.
2012-11-01 00:25:13 +01:00
UndefinedOffset
908869290e FIX 7906 Regression: GridFieldConfig_RelationEditor: Removing relation deletes data object 2012-10-15 13:41:11 -03:00
jean
574c53d5ba FIX 7927 Redirect to the parent controller after deleting an item in a gridfield (edit form) 2012-10-12 18:09:17 +02:00
Ingo Schommer
890bac8de3 Docs: GridFieldDeleteAction 2012-10-05 17:39:19 +02:00
Damian Mooyman
4d392098a5 FIX: GridFieldPageCount now throws an exception if added to a gridfield with no gridfieldpaginator 2012-10-03 14:54:37 +13:00
Damian Mooyman
f265595c1e NEW: GridFieldPageCount control for displaying the current page count/total in the gridview header. Designed to complement a functional pager in the grid footer.
NEW: GridFieldPageCount widget to default config settings
FIX: @extend .col_buttons in GridField.scss which was raising a warning
2012-10-03 14:54:37 +13:00
Sam Minnee
1f7fc1f76a FIX Remove instances of lines longer than 120c
The entire framework repo (with the exception of system-generated files) has been amended to respect the 120c line-length limit.  This is in preparation for the enforcement of this rule with PHP_CodeSniffer.
2012-09-30 17:18:13 +13:00
Ingo Schommer
d504e9e634 Add .cms-tabset on all GridFieldDetailForm instances
This allows us to add cms behaviour consistently
2012-09-28 16:37:35 +02:00
Ingo Schommer
e2f073f38a Method visibility according to coding conventions 2012-09-20 10:46:59 +02:00
Ingo Schommer
f5ff607a0a Localization for "cancel" button in GridFieldDetailForm 2012-09-11 13:47:12 +02:00
Simon Welsh
d2b4e0df01 BUG Use the manipulated datalist for counting total items.
This allows other Manipulators to change the total size of the List before
pagination is applied.
2012-09-06 23:47:38 +12:00
Simon Welsh
4ead89a4d0 API Adds getManipulatedList() method to GridField to get the SS_List after applying Manipulators 2012-09-06 23:42:48 +12:00
Andrew O'Neil
aa52dae464 BUGFIX: Don't add ss-tabset class to GridFieldDetailForms without tabs, as this causes the first <ul> within the form to have tabs applied 2012-09-05 14:16:28 +12:00
Ingo Schommer
52263e6a5f BUG Gridfield fails when save changes filter criteria (fixes #7785) 2012-09-02 16:57:50 +02:00
Ingo Schommer
3946a3e991 Merge pull request #746 from phalkunz/7601-listview-sort-by-title
GridFieldSortableHeader now allows composite fields to be sorted based db fields (see #7601)
2012-08-29 05:41:50 -07:00
jean
14759b6ff1 FIX #7787 Handles ajax and normal requests differently when validation fails on gridfields 2012-08-29 13:00:05 +02:00
Zauberfisch
70b22fa4ca API CHANGE: GridFieldConfig should extend object to make use of Object::create() this also fixes GridFieldConfig_RecordViewer::create() which was not working before
but don't extend Object
2012-08-29 12:45:23 +12:00
Saophalkun Ponlu
e595b8fc75 GridFieldSortableHeader now allows composite fields to be sorted based db fields (see #7601) 2012-08-28 21:15:46 +12:00
James Cocker
9a8313dce0 BUGFIX: GridField delete icon now correctly deletes, rather than always just unlinking (Fixes 7801)
Fixes the handleAction function of GridFieldDeleteAction which wasn't differentiating between a 'deleterecord' action and an 'unlinkrelation' action.

Fixes http://open.silverstripe.org/ticket/7801
2012-08-21 23:31:34 +01:00
Ingo Schommer
06cddb747a BUG Force refresh of GridFieldDetailEditForm after save
Wasn't refreshing after ajax save operations on existing
content, as the URL didn't change, and hence the CMS
didn't reload the view. Return the view directly instead,
unless we're dealing with new records (= changed URL).
2012-08-20 15:08:30 +02:00
martimiz
deb3780a45 BUG #7768 - add-button and breadcrumb translation in Security, ModelAdmin
The classnames on the add-new button and breadcrumbs were not
translated due to the use of singular_name() instead of
i18n-singular_name() in GridFieldAddNewButton and GridFieldDetailForm.
2012-08-09 23:46:40 +02:00
Damian Mooyman
d172e160a8 FIXED: Bug in GridFieldAddExistingAutocompleter.php where an uninitialised variable would occasionally crash searches
REMOVED: Unused variable
2012-08-09 15:04:02 +12:00
jean
90b0fe8db7 FIX Only reload data for a item edited through a GridField if the record exists. Fix 7721 2012-08-04 10:53:13 +12:00
Andrew Short
1900842d37 Make the list used for autocomplete search results settable.
This is useful if you want to limit the autocomplete results to a subset
of all available objects.
2012-08-02 21:25:45 +12:00
jakr
13bf61d402 Reformatted GridFieldDataColumns->castValue and added missing assignment. 2012-07-29 21:40:14 +02:00
Hamish Friedlander
9c4e4747c9 BUG 15e2efb55d broke the Page ListView. 2012-07-28 15:42:39 +12:00
jakr
15e2efb55d FIX 7590: Image thumbnails broken in gridfield
Delay converting the object to a string and escaping its value until the end of getColumnContent. Call formatValue BEFORE castValue, so that formatValue can create raw HTML by casting to HTMLText afterwards.
2012-07-27 14:05:41 +12:00
Ingo Schommer
1a91431d39 Query param searches for GridFieldAddExistingAutocompleter
Fixes issues with query construction in JS when the search URL
already contains GET paramters (e.g. when using the 'translatable'
module).
2012-07-17 13:26:33 +02:00
Andrew Short
8d38551297 Don't change track autocompleter fields. 2012-07-17 12:07:53 +02:00
Andrew Short
8c0a8539c7 Limit the results shown in the autocompleter. 2012-07-17 12:07:53 +02:00
jakr
78038eb75e FIX 7617: Back button in CMS after Add/Edit/View action in GridField does not work 2012-07-13 16:53:42 +02:00
Ingo Schommer
998b8e048c Merge pull request #634 from silverstripe-rebelalliance/3.0_7603
BUGFIX: open ticket 7603 fixing search filtering - thought I should initialise $dataListClone
2012-07-11 06:59:39 -07:00
Jeremy Bridson
e096c297b8 BUGFIX: open ticket 7603 fixing search filtering - thought I should initialise $dataListClone 2012-07-11 09:19:50 +12:00
Ingo Schommer
0ae20a13f8 Merge pull request #630 from silverstripe-rebelalliance/open/6875
BUG: open/6875 removing DataGrid filter fields from track changes
2012-07-10 02:50:00 -07:00
Ingo Schommer
64357a4522 Merge branch '3.0'
Conflicts:
	admin/css/screen.css
	admin/scss/_forms.scss
	docs/en/changelogs/3.0.0.md
2012-07-05 18:01:09 +02:00
jakr
20696958df FIX: Ticket #7592 GridFieldDataColumns: Wrong documentation for getFieldCasting Moved documentation to the appropriate function, added note about the two parameter callback function. 2012-07-04 18:08:24 +02:00
Andrew Short
eb733dee60 NEW Add set config method to GridField. 2012-07-04 13:13:23 +10:00
Kirk Mayo
9d88169f3e BUG: open/6875 removing DataGrid filter fields from track changes 2012-07-04 10:27:42 +12:00
Naomi Guyer
d935a74e31 ENHANCEMENT: Modify GridFieldLevelup to be more reusable 2012-06-26 13:34:49 +02:00
Ingo Schommer
02332da7fb MINOR GridField compat with ViewableData records (fixes #7479)
Only use relField() when it exists (usually on DataObject),
otherwise fall back to method or value returns
(same as original GridFieldDataColumns behaviour).
2012-06-15 13:33:34 +02:00
Sean Harvey
b04c199064 MINOR Fixing additional cases where DataList needs to be returned correctly when filtering 2012-06-15 16:09:40 +12:00
Sam Minnée
a93dd9459e Merge pull request #496 from sminnee/dataquery-aggregate
Dataquery aggregate
2012-06-14 17:20:35 -07:00
Sam Minnee
948ca468f6 API CHANGE: Added $value argument as the first argument of a gridfield formattting callback. 2012-06-06 16:13:57 +12:00
Sam Minnee
70d5ffefdd API CHANGE: Added GridField::addDataFields() to allow the definition of custom callbacks to be used by all GridField components.
API CHANGE: Added GridField::getDataFieldValue() to encapsulate field lookup for all components.
API CHANGE: Allow 'callback' key to be specified in a GridFieldDataColumn column info.  In this case, title should be put as the 'title' key of a map rather than simply the column info.
2012-06-06 16:12:05 +12:00
Ingo Schommer
5178954311 UNFINISHED Processing multiple PJAX responses on CMS JavaScript, introducing data-pjax-fragment attribute to identify reloadable template parts 2012-05-30 15:07:13 +02:00
Ingo Schommer
21beb86f8f MINOR Using localized name rather than model class for GridFieldAddNewButton UI (related to 74d444cf and pull request #452) 2012-05-29 15:22:28 +02:00
Ingo Schommer
5b03f49245 BUGFIX Respecting server-overrides on X-Pjax responses during ajax redirects. Fixes GridFieldDetailForm redirect after delete, e.g. in ModelAdmin. Partially reverts 8b4b896. Closes pull request #488 2012-05-29 11:34:47 +02:00