GridViewService
in package
Business logic for managing saved grid views.
Handles view resolution (explicit → user default → system default), CRUD operations, and ownership validation. Used by GridViewsController and DataverseGridTrait.
Table of Contents
Properties
- $gridViewsTable : GridViewsTable
- GridViews table instance
- $preferencesTable : GridViewPreferencesTable
- GridView preferences table instance
Methods
- __construct() : mixed
- Constructor
- clearUserDefault() : bool
- Clear the user's default for a grid
- createSystemDefault() : GridView|false
- Create a system default view (admin only - enforce permissions elsewhere)
- createView() : GridView|false
- Create a new grid view
- deleteView() : bool
- Delete a grid view
- getEffectiveView() : GridView|null
- Get the effective view for a grid based on priority resolution
- getUserPreferenceViewId() : string|int|null
- Retrieve the preferred view id for a given member/grid key combination
- getView() : GridView|null
- Get a single view by ID
- getViewsForGrid() : array<string|int, GridView>
- Get all views available for a grid (system defaults + user's own)
- setUserDefault() : bool
- Set a user's default view for a grid. Accepts either int (user view) or string (system view).
- updateView() : GridView|false
- Update an existing grid view
Properties
$gridViewsTable
GridViews table instance
protected
GridViewsTable
$gridViewsTable
$preferencesTable
GridView preferences table instance
protected
GridViewPreferencesTable
$preferencesTable
Methods
__construct()
Constructor
public
__construct([GridViewsTable|null $gridViewsTable = null ], mixed ...$additional) : mixed
Parameters
- $gridViewsTable : GridViewsTable|null = null
-
Optional table instance for testing
- $additional : mixed
-
Optional additional arguments (ignored unless a preferences table instance is provided)
clearUserDefault()
Clear the user's default for a grid
public
clearUserDefault(int $memberId, string $gridKey) : bool
Parameters
- $memberId : int
-
Member ID
- $gridKey : string
-
Grid identifier
Return values
bool —Success
createSystemDefault()
Create a system default view (admin only - enforce permissions elsewhere)
public
createSystemDefault(array<string, mixed> $data) : GridView|false
Parameters
- $data : array<string, mixed>
-
View data
Return values
GridView|falsecreateView()
Create a new grid view
public
createView(array<string, mixed> $data, Member $member) : GridView|false
Parameters
- $data : array<string, mixed>
-
View data
- $member : Member
-
Owner of the view
Return values
GridView|falsedeleteView()
Delete a grid view
public
deleteView(int $viewId, Member $member) : bool
Validates that the member owns the view before deleting (soft delete).
Parameters
- $viewId : int
-
View ID
- $member : Member
-
Member making the deletion
Return values
bool —Success
getEffectiveView()
Get the effective view for a grid based on priority resolution
public
getEffectiveView(string $gridKey, Member|null $member[, int|null $viewId = null ]) : GridView|null
Resolution order:
- Explicit view ID (if provided and accessible)
- User's default view (if set)
- System default view (if exists)
- null (caller should use application fallback)
Parameters
- $gridKey : string
-
Grid identifier
- $member : Member|null
-
Current member
- $viewId : int|null = null
-
Explicitly requested view ID
Return values
GridView|nullgetUserPreferenceViewId()
Retrieve the preferred view id for a given member/grid key combination
public
getUserPreferenceViewId(string $gridKey, Member $member) : string|int|null
Parameters
- $gridKey : string
-
Grid identifier
- $member : Member
-
Member to check
Return values
string|int|null —Preferred view identifier if set
getView()
Get a single view by ID
public
getView(int $viewId[, Member|null $member = null ]) : GridView|null
Validates that the member has access to the view (owns it or it's a system default).
Parameters
- $viewId : int
-
View ID
- $member : Member|null = null
-
Current member
Return values
GridView|nullgetViewsForGrid()
Get all views available for a grid (system defaults + user's own)
public
getViewsForGrid(string $gridKey[, Member|null $member = null ]) : array<string|int, GridView>
Parameters
- $gridKey : string
-
Grid identifier
- $member : Member|null = null
-
Current member
Return values
array<string|int, GridView>setUserDefault()
Set a user's default view for a grid. Accepts either int (user view) or string (system view).
public
setUserDefault(string|int $viewIdOrKey, int $memberId, string $gridKey) : bool
Parameters
- $viewIdOrKey : string|int
- $memberId : int
- $gridKey : string
Return values
boolupdateView()
Update an existing grid view
public
updateView(int $viewId, array<string, mixed> $data, Member $member) : GridView|false
Validates that the member owns the view before updating.
Parameters
- $viewId : int
-
View ID
- $data : array<string, mixed>
-
Updated data
- $member : Member
-
Member making the update