\Alddesign\Crudkit\ClassesPageDescriptor

Definition of a webpage (UI).

Examples for usage are provided in the documentation for CrudkitServiceProvider. Important: all methods marked with "@stackable" (like the constructor and all set methods) can be used like this

$page = new PageDesriptor(...)
        ->setTitleText(...)
        ->addAction(...)
        ->...

...easy

Summary

Methods
Properties
Constants
__construct()
getName()
getId()
getCreateAllowed()
getUpdateAllowed()
getDeleteAllowed()
getExportAllowed()
getChartAllowed()
getCardAllowed()
getConfirmDelete()
getCategory()
getIcon()
getSections()
getMenu()
getItemsPerPage()
getActions()
getTable()
getSummaryColumns()
getCardLinkColumns()
getTitleText()
getLookupsCalculated()
getMultipleLookupsCalculated()
getJs()
getCss()
setAllowCreate()
setAllowUpdate()
setAllowDelete()
setAllowExport()
setAllowChart()
setAllowCard()
setConfirmDelete()
setCategory()
setIcon()
setMenu()
setItemsPerPage()
setSummaryColumns()
setCardLinkColumns()
setTitleText()
addLookupColumn()
addAction()
addActionObject()
addSection()
addJs()
addCss()
triggerEvent()
onOpenList()
onOpenCard()
onOpenCreate()
onOpenUpdate()
onOpenChart()
onBeforeCreate()
onAfterCreate()
onBeforeUpdate()
onAfterUpdate()
onBeforeDelete()
onAfterDelete()
No public properties found
PAGE_TYPES
No protected methods found
No protected properties found
N/A
No private methods found
$id
$name
$category
$icon
$titleTexts
$table
$summaryColumns
$cardLinkColumns
$menu
$js
$css
$itemsPerPage
$lookups
$sections
$actions
$createAllowed
$updateAllowed
$deleteAllowed
$confirmDelete
$exportAllowed
$chartAllowed
$cardAllowed
$callbacks
N/A

Constants

PAGE_TYPES

PAGE_TYPES = array('list', 'card', 'create', 'update', 'chart')

Properties

$id

$id : 

Type

$name

$name : 

Type

$category

$category : 

Type

$icon

$icon : 

Type

$titleTexts

$titleTexts : 

Type

$table

$table : 

Type

$summaryColumns

$summaryColumns : 

Type

$cardLinkColumns

$cardLinkColumns : 

Type

$menu

$menu : 

Type

$js

$js : 

Type

$css

$css : 

Type

$itemsPerPage

$itemsPerPage : 

Type

$sections

$sections : array<mixed,\Alddesign\Crudkit\Classes\Section>

Type

array<mixed,\Alddesign\Crudkit\Classes\Section> — Displaying fields in separated areas called "Sections."

$actions

$actions : array<mixed,\Alddesign\Crudkit\Classes\Action>

Type

array<mixed,\Alddesign\Crudkit\Classes\Action> — Adding Buttons with special callback functions to listview/cardview

$createAllowed

$createAllowed : 

Type

$updateAllowed

$updateAllowed : 

Type

$deleteAllowed

$deleteAllowed : 

Type

$confirmDelete

$confirmDelete : 

Type

$exportAllowed

$exportAllowed : 

Type

$chartAllowed

$chartAllowed : 

Type

$cardAllowed

$cardAllowed : 

Type

$callbacks

$callbacks : array<mixed,callable>

Type

array<mixed,callable> — Event callback function. [Key => Event name, Value => Callback function ]

Methods

__construct()

__construct(string  $name, string  $id, \Alddesign\Crudkit\Classes\TableDescriptor  $table, boolean  $menu = true, string  $category = '') : \Alddesign\Crudkit\Classes\PageDescriptor

Constructor

Parameters

string $name

Display name

string $id

Unique name of the page. Allowed characters: a-z, A-Z, 0-9, "_", "-"

\Alddesign\Crudkit\Classes\TableDescriptor $table

Table which is the basis of this page

boolean $menu

Show in menu

string $category

(optional) Name of the category in the menu where this page will be shown

Returns

\Alddesign\Crudkit\Classes\PageDescriptor

getName()

getName() 

getId()

getId() 

getCreateAllowed()

getCreateAllowed() 

getUpdateAllowed()

getUpdateAllowed() 

getDeleteAllowed()

getDeleteAllowed() 

getExportAllowed()

getExportAllowed() 

getChartAllowed()

getChartAllowed() 

getCardAllowed()

getCardAllowed() 

getConfirmDelete()

getConfirmDelete() 

getCategory()

getCategory() 

getIcon()

getIcon() 

getSections()

getSections() 

getMenu()

getMenu() 

getItemsPerPage()

getItemsPerPage() 

getActions()

getActions(\Alddesign\Crudkit\Classes\string  $name = '') : \Alddesign\Crudkit\Classes\Action|array<mixed,\Alddesign\Crudkit\Classes\Action>

Retruns on or all actions for this page.

Parameters

\Alddesign\Crudkit\Classes\string $name

Returns

\Alddesign\Crudkit\Classes\Action|array<mixed,\Alddesign\Crudkit\Classes\Action>

getSummaryColumns()

getSummaryColumns(\Alddesign\Crudkit\Classes\bool  $namesOnly = false) : array<mixed,string>|array<mixed,\Alddesign\Crudkit\Classes\SQLColumn>

Gets either an array of column names or SqlColumn objects with the list page columns.

Parameters

\Alddesign\Crudkit\Classes\bool $namesOnly

Returns

array<mixed,string>|array<mixed,\Alddesign\Crudkit\Classes\SQLColumn>

getCardLinkColumns()

getCardLinkColumns(\Alddesign\Crudkit\Classes\bool  $namesOnly = false) : array<mixed,string>|array<mixed,\Alddesign\Crudkit\Classes\SQLColumn>

Gets either an array of column names or SqlColumn objects with the card link columns.

Parameters

\Alddesign\Crudkit\Classes\bool $namesOnly

Returns

array<mixed,string>|array<mixed,\Alddesign\Crudkit\Classes\SQLColumn>

getTitleText()

getTitleText(\Alddesign\Crudkit\Classes\string  $pageType) 

Parameters

\Alddesign\Crudkit\Classes\string $pageType

getLookupsCalculated()

getLookupsCalculated(array  $record) : array<mixed,\Alddesign\Crudkit\Classes\Lookup>

Gets the Lookup columns and with calculated values.

Parameters

array $record

Returns

array<mixed,\Alddesign\Crudkit\Classes\Lookup>

getMultipleLookupsCalculated()

getMultipleLookupsCalculated(array  $records) : array

Gets the Lookup columns and with calculated values for multiple records

Parameters

array $records

Returns

array

getJs()

getJs() : array

Returns

array

getCss()

getCss() : array

Returns

array

setAllowCreate()

setAllowCreate(\Alddesign\Crudkit\Classes\bool  $value = true) 

Allow/deny to create new records (default = true)

Parameters

\Alddesign\Crudkit\Classes\bool $value

setAllowUpdate()

setAllowUpdate(\Alddesign\Crudkit\Classes\bool  $value = true) 

Allow/deny to update records (default = true)

Parameters

\Alddesign\Crudkit\Classes\bool $value

setAllowDelete()

setAllowDelete(\Alddesign\Crudkit\Classes\bool  $value = true) 

Allow/deny to delete records (default = true)

Parameters

\Alddesign\Crudkit\Classes\bool $value

setAllowExport()

setAllowExport(\Alddesign\Crudkit\Classes\bool  $value = true) 

Allow/deny to export records to csv/xml (default = true)

Parameters

\Alddesign\Crudkit\Classes\bool $value

setAllowChart()

setAllowChart(\Alddesign\Crudkit\Classes\bool  $value = true) 

Allow/deny to show records as chart (default = true)

Parameters

\Alddesign\Crudkit\Classes\bool $value

setAllowCard()

setAllowCard(\Alddesign\Crudkit\Classes\bool  $value = true) 

Allow/deny to show records as card page (default = true)

Parameters

\Alddesign\Crudkit\Classes\bool $value

setConfirmDelete()

setConfirmDelete(\Alddesign\Crudkit\Classes\bool  $value = true) 

Show confirmation dialog before deleting a record (default = true)

Parameters

\Alddesign\Crudkit\Classes\bool $value

setCategory()

setCategory(\Alddesign\Crudkit\Classes\string  $value = '') 

Name of the category in the menu where this page will be shown

Parameters

\Alddesign\Crudkit\Classes\string $value

setIcon()

setIcon(\Alddesign\Crudkit\Classes\string  $value = '') 

Fowt Awesome icon name of this page (visible in menu)

Parameters

\Alddesign\Crudkit\Classes\string $value

setMenu()

setMenu(\Alddesign\Crudkit\Classes\bool  $value = true) 

Show in Menu or not

Parameters

\Alddesign\Crudkit\Classes\bool $value

setItemsPerPage()

setItemsPerPage(\Alddesign\Crudkit\Classes\int  $value = -1) 

Set number of records per page (overrides the crudkit config value). -1 = use curdkit config

Parameters

\Alddesign\Crudkit\Classes\int $value

setSummaryColumns()

setSummaryColumns(array<mixed,string>  $summaryColumnNames) : \Alddesign\Crudkit\Classes\PageDescriptor

Defines which columns are shown in which order on list pages (defaul = all, order = as defined in tables).

Parameters

array<mixed,string> $summaryColumnNames

Returns

\Alddesign\Crudkit\Classes\PageDescriptor

setCardLinkColumns()

setCardLinkColumns(array<mixed,string>  $cardLinkColumnNames) : \Alddesign\Crudkit\Classes\PageDescriptor

Defines which columns are shown as link form list to card page (defaul = first column of Tables PK)

$pageDescriptor->setCardLinkColumns(["id", "name"]);

Parameters

array<mixed,string> $cardLinkColumnNames

Returns

\Alddesign\Crudkit\Classes\PageDescriptor

setTitleText()

setTitleText(string  $text, array<mixed,string>  $pageTypes = array()) : \Alddesign\Crudkit\Classes\PageDescriptor

Defines the title text for specific page types

$pageDescriptor
->setTitleText('Book'); //For all pages
->setTitleText('New Book', ['create']); //Specific page

Parameters

string $text

The text to display

array<mixed,string> $pageTypes

(optional) specifies on which page types ('list', 'card', 'create', 'update', 'chart') this text will be shown.

Returns

\Alddesign\Crudkit\Classes\PageDescriptor

addAction()

addAction(string  $id, string  $label, string  $columnLabel, callable  $callback, boolean  $onList = true, boolean  $onCard = true, string  $faIcon = '', string  $btnClass = '', string  $position = '', string  $fieldname = '', boolean  $enabled = true, boolean  $visible = true,   $data = array()) : \Alddesign\Crudkit\Classes\PageDescriptor

Add a button with a custom action to this page.

Be creative, but take care. Your can write you own php code and use all of crudkits api to manipulate data, etc... (see apidoc-dev):

$callback = function($record, $pageDescriptor, $action) { mail('ceo@mydomain.com', 'Book info', 'Check out our new book: '. $record["name"]); };
$pageDescriptor->addAction('mail', 'Send book-info mail', 'Mail', $callback, true, true, envelope, 'info');
//Next thing: drop table studends;

Parameters

string $id

a identifier for this action (unique per page)

string $label

Label of the button

string $columnLabel

Label of the column in list view

callable $callback

Callback function to execute when pressing the button. This callback has $record, $pageDescriptor, $action(this is what you definde here) as parameters.

boolean $onList

(optional) Show on list page

boolean $onCard

(optional) Show on card page

string $faIcon

(optional) Icon for the Button. (Font Awesome icon name)

string $btnClass

(optional) ''|'default'|'primary'|'info'|'success'|'danger'|'warning'. (Admin LTE Button class)

string $position

(optional) 'top'|'bottom'|'both'|'before-field'|'after-field'|'to-field'. Position on card pages.

string $fieldname

(optional) The reference fieldname for $postion ('before-field'|'after-field'|'to-field')

boolean $enabled

(optional) If the button is enabled

boolean $visible

(optional) If the button is visible

$data

Returns

\Alddesign\Crudkit\Classes\PageDescriptor

addSection()

addSection(string  $title, string  $fromColumnName, string  $toColumnName = '', boolean  $collapsedByDefault = true) : \Alddesign\Crudkit\Classes\PageDescriptor

Adds a section (foldable area with a title) to the card page.

Make sure multiple sections do no overlap. Order of from/toColumnName are interchangeable.

Parameters

string $title

The title to display (unique)

string $fromColumnName
string $toColumnName
boolean $collapsedByDefault

Returns

\Alddesign\Crudkit\Classes\PageDescriptor

addJs()

addJs(string  $url, array  $pageTypes = array(), boolean  $isAssetUrl = true) : \Alddesign\Crudkit\Classes\PageDescriptor

Adds a custom JS file to pages.

Hint: when programming in JS you can get data from the global var "curdkit"

Parameters

string $url

Absolute or relative URL to the JS file

array $pageTypes

Array of page type names fore the JS file to add

boolean $isAssetUrl

Indicates if its a URL to the Laravel asset directory (/public)

Returns

\Alddesign\Crudkit\Classes\PageDescriptor

addCss()

addCss(string  $url, array  $pageTypes = array(), boolean  $isAssetUrl = true) : \Alddesign\Crudkit\Classes\PageDescriptor

Adds a custom CSS file to pages.

Parameters

string $url

Absolute or relative URL to the CSS file

array $pageTypes

Array of page type names fore the CSS file to add

boolean $isAssetUrl

Indicates if its a URL to the Laravel asset directory (/public)

Returns

\Alddesign\Crudkit\Classes\PageDescriptor

triggerEvent()

triggerEvent(string  $name, mixed  $param1 = null) 

Triggers an event.

Parameters

string $name

Name of the Event

mixed $param1

Additional parameter

onOpenList()

onOpenList(callable  $callback) 

Register event handler. Occours before a list page is beeing opened.

//Reference parametes (&) can be modified inside the function. Very powerfull.
//$viewData is an array with all the data sent to the view. Too much to explain. $viewData['records'] for example is interesting
$callback = function(&$pageDescriptor, &$tableDescriptor, &$viewData){...};
$pageDescriptor->onOpenList($callback);

Parameters

callable $callback

onOpenCard()

onOpenCard(callable  $callback) 

Register event handler. Occours before a card page is beeing openend.

//Reference parametes (&) can be modified inside the function. Very powerfull.
//$viewData is an array with all the data sent to the view. Too much to explain. $viewData['record'] for example is interesting
$callback = function(&$pageDescriptor, &$tableDescriptor, &$viewData){...};
$pageDescriptor->onOpenCard($callback);

Parameters

callable $callback

onOpenCreate()

onOpenCreate(callable  $callback) 

Register event handler. Occours before a create page is beeing opened.

//Reference parametes (&) can be modified inside the function. Very powerfull.
//$viewData is an array with all the data sent to the view. Too much to explain. $viewData['record'] for example is interesting
$callback = function(&$pageDescriptor, &$tableDescriptor, &$viewData){...};
$pageDescriptor->onOpenCreate($callback);

Parameters

callable $callback

onOpenUpdate()

onOpenUpdate(callable  $callback) 

Register event handler. Occours before a update page is beeing opened.

//Reference parametes (&) can be modified inside the function. Very powerfull.
//$viewData is an array with all the data sent to the view. Too much to explain. $viewData['record'] for example is interesting
$callback = function(&$pageDescriptor, &$tableDescriptor, &$viewData){...};
$pageDescriptor->onOpenUpdate($callback);

Parameters

callable $callback

onOpenChart()

onOpenChart(callable  $callback) 

Register event handler. Occours before a page is beeing openend as a Chart.

//Reference parametes (&) can be modified inside the function. Very powerfull.
//$viewData is an array with all the data sent to the view. Too much to explain. $viewData['record'] for example is interesting
$callback = function(&$pageDescriptor, &$tableDescriptor, &$viewData){...};
$pageDescriptor->onOpenChart($callback);

Parameters

callable $callback

onBeforeCreate()

onBeforeCreate(callable  $callback) 

Register event handler. Occours before a record will be inserted into the database.

//Reference parametes (&) can be modified inside the function. Very powerfull.
$callback = function(&$pageDescriptor, &$tableDescriptor, &$records){...};
$pageDescriptor->onBeforeCreate($callback);

Parameters

callable $callback

onAfterCreate()

onAfterCreate(callable  $callback) 

Register event handler. Occours after a record has been inserted into the database.

//Reference parametes (&) can be modified inside the function. Very powerfull.
$callback = function(&$pageDescriptor, &$tableDescriptor, &$records){...};
$pageDescriptor->onAfterCreate($callback);

Parameters

callable $callback

onBeforeUpdate()

onBeforeUpdate(callable  $callback) 

Register event handler. Occours before a record will be updated in the database.

//Reference parametes (&) can be modified inside the function. Very powerfull.
$callback = function(&$pageDescriptor, &$tableDescriptor, &$records){...};
$pageDescriptor->onBeforeUpdate($callback);

Parameters

callable $callback

onAfterUpdate()

onAfterUpdate(callable  $callback) 

Register event handler. Occours after a record has been updated in the database.

//Reference parametes (&) can be modified inside the function. Very powerfull.
$callback = function(&$pageDescriptor, &$tableDescriptor, &$records){...};
$pageDescriptor->onAfterUpdate($callback);

Parameters

callable $callback

onBeforeDelete()

onBeforeDelete(callable  $callback) 

Register event handler. Occours before a record will be deleted from the database.

//Reference parametes (&) can be modified inside the function. Very powerfull.
$callback = function(&$pageDescriptor, &$tableDescriptor, &$records){...};
$pageDescriptor->onBeforeDelete($callback);

Parameters

callable $callback

onAfterDelete()

onAfterDelete(callable  $callback) 

Register event handler. Occours after a record has been deleted from the database.

//Reference parametes (&) can be modified inside the function. Very powerfull.
$callback = function(&$pageDescriptor, &$tableDescriptor, &$records){...};
$pageDescriptor->onAfterDelete($callback);

Parameters

callable $callback

Callback function which is beeing called if this event occours.