- Version 4.8.3
- Version 4.8.2
- Version 4.8.1
- Version 4.8.0
- Version 4.7.2
- Version 4.7.1
- Version 4.7.0
- Version 4.6.0
- Version 4.5.0
- Version 4.2.0
- Version 4.1.7
- Version 4.1.6
- Version 4.1.5
- Version 4.1.4
- Version 4.1.3
- Version 4.1.2
- Version 4.0.1
- Version 4.0.0
- Version 3.5.0
- Version 3.3.1
- Version 3.3.0
- Version 3.2.4
- Version 3.2.0
- Version 3.1.1
- Version 3.1.0
- Version 3.0.0
- Version 2.0.0
- Version 1.3.5
- Version 1.3.1
- Version 1.3.0
- Version 1.2.6
- Version 1.0.1
- Version 1.0.0
Change Log
Version 4.8.3 #
- Add "onReady" property for PivotMatrix KWidget
- Add actionRefreshPage to Page class that allows page to be refreshed when called.
Version 4.8.2 #
- Fix
Confirm
andAlert
rendering bug
Version 4.8.1 #
- Add
pivotClass
prop to PivotTable and PivotMatrix widgets
Version 4.8.0 #
- Fixed: Fix FileUPloader to show file error messages if there are and waiting icon while uploading.
- Added: Add the
response()
method to Application so that all elements of dashboard can be accessed and provide extra response. - Add
jsonRender
property to comply with CSP's unsafe-eval
Version 4.7.2 #
- Added: Added property
deleteFileAfterDownload
toExportHandler
, set to true will delete file from storage after being downloaded - Added: Ability to export selected rows with
ExportAction
- Changed: TFields's getFields() function will generate fields on-demand
- Added: AdminTable has new prop
contextConditions
to make table show only rows that satisfy conditions. - Added: Action class is added new prop
checkEmptySelection
Version 4.7.1 #
- Added: New
fileName
prop is added to ExportAction to customize the exported file name - Added: Ability to export JPG and PNG with ExportAction
Version 4.7.0 #
- Fixed: Now we can use different class name for Application rather than just App.
- Fixed: Use new
isFilteredSingle
method instead ofisFiltered
in RowSelect class - Added: A new
ExportAction
is added to admin panel to provide export capability
Version 4.6.0 #
- Added: Ability the set new session handler
- Added: JWTSession to handle session using JWT
- Added: Able to create Dashboard with different name using code style Dashboard::create('privateName')
- Fixed: Table's search bug when there's where method in dataSource's query builder
- Added: "scope" property to DrillDown
- Fixed: "between" filter for Trend.php and Value.php in metrics based on data handler = SQLHanlder or PipeHandler
Version 4.5.0 #
- Added: ApexCharts charts
- Added: VisualQuery widget
- Added: multiple upload mode in FileUploader
- Added: drag and drop in FileUploader
- Added: useCoreDataSource() method in data source for users to decide whether to use pdo or other koolreport datasource classes
- Added: "Others" category in chart to language files
- Fixed: The app() is not available in TEnabledPermit which is caused null issue for permission anonymous function
- Fixed: Google Chart's ComboChart to show multiple types of charts instead of just column
- Fixed: Util's arrayToDataStore() function issue when there's only one column
- Fixed: Metrics' Value card's lastQuarter range and value.
Version 4.2.0 #
- Fixed: Error message in Application
- Fixed: Change bind() to bindTo() in TEnabledPermit to avoid error message
- Added: custom Excel export setting for Table and PivotTable/PivotMatrix
- Added: custom PDF and Excel view files for dashboard and widget export
- Added: general engine() method for ExportHandler, nearly similar to {type}Engine() methods.
- Added: ability to set export engine name and choose exactly which engine to be use when exporting any dashboard or widget.
Version 4.1.7 #
- Added: Ability to set theme assets via application
- Fixed: Solve the issue of using dashboard inside other frameworks
Version 4.1.6 #
- Fixed: Login does not direct to previous page and dashboard
- Added: Client class for page
Version 4.1.5 #
- Fixed: Undefined "showOnUpdate" on Calculated field in Admin Panel
Version 4.1.4 #
- Added: Provide more translation text
Version 4.1.3 #
- Added: FlexView is able to clear state on view first load
- Added: Provide option to use state for
showView()
method
Version 4.1.2 #
- Added: Add validators to inline editing for AdminTable
- Added: FlexView now has history and can go back to previous view with
historyBack()
method - Added: Provide validators to inline editing for RelationTable
- Fixed: Not being able to init validators
- Fixed: Issue with language cookie
Version 4.0.1 #
- Fixed: Issue with navigation after login
Version 4.0.0 #
- Fixed: Not perform rowSelect if there is no state available in Table
- Fixed: Prevent null in convertToSeconds method of Util class
- Added: Add Timeline chart for chartjs
- Fixed: String function with null parameter for PHP 8.1
- Fixed: Issue with PipeHandler aggregates when there is no data
- Added: formatValue() function of field takes into account the formatUsing settings
- Added: Category metrics support resolve category field's value with resolveUsing property
- Added: Provide client event
onClientLoading
andonClientLoaded
to Dashboard - Added: Provide client event
onClientLoading
andonClientLoaded
to Widget - Added: Add
appKey
to Dashboard application to improve security - Added: Provide
pages
method to set extra pages in application - Added: Property
successGoToPage
for Login to set the page to go to after user login succesfully - Added: Ability to create new page to hold dashboard
- Improved: Separate the theme's javascript from application javascript
- Fixed: Adding row into second parameter of field's nullValue and emptyValue properties.
- Improved: Remove the assets property in App
- Added: Flexibilty in setting theme.
- Added: Able to add menuitem to sidebar
- Changed: Add sidebar() method to replace the dashboard() method in Application
- Added: Add new Wrapper page to hold custom content
- Added: Add content() method to replace the widgets() method in Dashboard
- Added: Add params() to PDOSource so that rawSQL() can be bound with parameters
- Added: Able to set language dynamically
- Added: Ability to list available languages and allow user to choose
- Added: Page has loginRequired property to decide whether page need login
- Added: Page has allowAccess() method to filter request
- Improved: Change the request and response mechanism.
- Added: Add translation content to metrics widget
- Added: AdminTable is able to do inline editing
- Added: RelationTable is able to do inline editing
- Added: Login page is able to catch the previous route and comeback after successful login.
- Added: Provide FlexView widget to dynamically loading an view
- Added: Provide action() method for Page and Application
- Added: Page and Application is able to use notification widget like Alert, Modal and Note
Version 3.5.0 #
- Fixed: Remove redundant code in FileUploader
- Fixed: Disabling createScreen should not disable the searchBox
- Fixed: Remove
koolType
property in TimeAgo - Added: Adding
Created
event to User and new propertyothers
to store other information. - Fixed: Attach managed table name to id in UpdateScreen and DetailScreen
- Added: Add
BSelect
to inputs family - Added:
settings
to LocalExport and ChromeHeadlessio - Improved: Make relation work smoother
- Fixed: Set default resolveUrl property of FileUploader to the formatUsing property of Image
- Added: New Link field to handle tag
- Fixed: The generation of count query in SQLHandler when raw query is provided to dataSource().
- Added: Adding language translation
- Fixed:
Action
Check if selected ids is available before querying related models - Added: Add
emptySelectionWarning
property to Action to control the warning when no rows is selected - Changed: Remove the RowSelect's property
allSelectable
and make all checkbox always available - Added: Able to select rows with conditions
- Removed: Remove
showRowSelect
andshowRowActions
in Admin table - Added: New
rowSelectField
androwActionsField
to Admin table - Removed: Remove
showRowActions
proeprty of relation table - Added: New
rowSelectField
property to relation table - Added: New server-events:
onRecordDeleting
,onRecordDeleted
,onRecordUpdating
,onRecordUpdated
- Added: Add
onFileHandling
andonFileHandled
event to FileUploader - Added: New
Firebird
datasource - Added: Adding
pageSizeOptions
property to table to let user changes page size of table
Version 3.3.1 #
- Added: Click on Table header to sort
- Fixed: Very rare case that
echo
method does not work with static function of a class - Fixed: Terminate widget autoUpdate when moving to another dashboard
Version 3.3.0 #
- Fixed: Change group by alias to group by expression in SQLHandler
- Fixed: Change 12h format to 24h format in SQLServer
- Added: Add
shouldUpdate
to set anonymous function to determine whether a field should be updated. - Added: Add
processValueToDatabase
property to field to alternate value saved to database. - Added: Add
Password
field - Added: Add static
updateAction()
,detailAction()
,deleteAction()
to return corresponding default actions for resources. - Added: Add
dateFormat()
for Sqlite - Added: Add translation for new terms
Version 3.2.4 #
- Fixed: Adding CSRF to file uploader widget to avoid issue with Laravel security
- Fixed: Not set the field original value to default value of input as it will be null
- Fixed: Make the onConFirm and onCancel text be run separately from text
- Added: Ability to validate inputs inside the action modal form.
Version 3.2.0 #
- Fixed: SQL Handle for SQL Server, PostgreSQL, Oracle date format
- Fixed: Missing onConfirm on Action
- Added: Add
bottom
property to DetailScreen, UpdateScreen and CreateScreen so that we can set bottom widgets display - Added: Ability to fall back on nested query on performing aggregations.
Version 3.1.1 #
- Fixed: Not able to get enabled dashboards
Version 3.1.0 #
- Added: Adding bottom() to facilitate bottom widgets display.
Version 3.0.0 #
- Added: Ability to set disabled menu items for Dropdown, Panel menu and account menu
- Added: Provided
Dropdown::menuItem()
to create MenuItem object - Added: Provided
Panel::menuItem()
to create MenuItem object - Added:
Tab
hasicon
property - Added: Property
disabled
to MenuItem - Added: Provided
TWidgetState
to Dropdown - Added: Provide error message to actionLost in Dashboard
- Improved: Add static
tab()
function to Tabs container - Added: Add
onShow
,onShown
,onHide
andonHidden
to Tab - Added: Provide
cssClass
andcssStyle
property to Tabs - Fixed: Use nested query to calculate the total rows correctly in SQLHandler
- Fixed: Make Row's cssClass property working
- Added: Provide
PropSet
event for TProps - Added: Request params is able to get/set by keys
- Added: Add property
nullDisplay
to Field - Added:
Panel
header and footer is able to receive both text and widgets - Added: Adding
hidePagingOnSinglePage
property for Table widget - Added: Adding
TextArea
input - Fixed: Able to set global property of in settings for `DrillDown
- Added: Adding input field validator
- Added:
TextBox
is able to pre-process value with processValue() method - Added:
TextArea
is able to pre-process value with processValue() method - Added:
TextBox
andTextArea
has new propertytrimValue
to indicate value will be trimmed off space - Added: Provide
disabled
property to input widgets - Added: Adding list of common filters to admin
- Added: Adding
FileUploader
to input - Added: Adding
hidden
property to Field - Added: Adding
customRender
to Field to alternate display of field - Added: Provide property
disableRangeSelect
toTrend
andValue
metrics - Added: Provide
show()
method to Response to open modal - Added: Add secret Tunnel ajax panel to Dashboard
- Added: Adding
Alert
notification - Added: Panel has short-handed static method to create Panel with type
- Fixed: Remove monolog requirement, developer can add when needed.
- Added: General error message in non-debug mode.
- Added: Provide
cssClass
andcssStyle
for Button inputs - Added: Provide
formatError
to DateTime field - Fixed: Ability to handle nullValue for Field in common
- Added: Add
emptyValue
property for Field to handle both null and empty value - Added: Add
Boolean
field to handle Boolean column - Added: Bring back
SimpleCard
in widgets - Added: Special Admin Panel with full CRUD capability to manage database.
- Added: Provide list of validators
- Added: Provide
Confirm
notification - Added: Provide
Note
notification - Added: New
html
property for Text field to control whether value is rendered in html - Added: Able to show notification or run script by return INofitication object or script in action
- Added: Provide short-handed static function to create Button with type and text
Version 2.0.0 #
- Added: Make Application
assets
become property so that we are able to set assets() from outside - Added: Able to connect to Oracle
- Added: Able to connect to SQLite
- Fixed: Widgets able to update inside Modal
- Added: Show error when debugMode is on
- Added: Ability to show unexpected response when debugMode is on
- Fixed: Better exception message for Application, Dashboard and Widget
- Added: Able to provide items to top menu
- Added: Able to provide items inside account menu
- Added: CustomBoard use
method="ajax"
to enable form performing data post back via ajax - Added: Adding Logging feature with monolog
- Added: Fire event
Error
when something wrong happens - Added: Add
errorBubble
to App to control whether error event is bubbled to parent - Added: Make
registerEvent
andfireEvent
public so that they can be called from outside of object - Added: Add
showRawValue
property for count field of Category metric. - Added: Allow dataSource() function receive parameters
- Added: Properties of fields now is able to receive function with standardized parameters $value and $row.
- Fixed: Remove
extractProps()
from TProps trait - Added:
TProps
has ability to get property value by function simply by prefixing underscore(_) to the property name. - Added: Ability to set property by anonymous function for all inputs
- Added: Ability to set property by anonymous function for all widgets
- Added: Ability to set property by anonymous function for all metrics
- Added:
DataReady
event for widgets, fired when data is queried and be available - Added:
hidden
property for widgets - Added:
hasWidget()
method to Dashboard to check if a widget is available - Added:
hasSibling()
method to Widget to check if a sibling widget is available - Added: Ability to perform search on table
- Added: Ability to perform search for file sources
- Added: Ability for Trend and Value metrics to work with array or file sources
- Added: Provide menu capability for Panel
- Added: Able to export widget or dashboard to pdf, png and jpg
- Added: Provide ChromeHeadlessio and LocalExport engine
- Added: Ability to get data view of an widget
- Added: Ability to show modal detail for widget
- Added: Ability to show table containing detail data for Google Charts
- Fixed: Change "after{Event}" to "beforeOn{Event}"
- Added: Add event handler "afterOn{Event}"
- Added: Widget is able to function inside detail modal
- Added: Ability to navigate to a dashboard by url
- Added: Add
Dropdown
inputs - Added: Provide D3 chart library to widgets
- Added: Provide ChartJs library to widgets
- Added: Bring drilldown widget to dashboard
- Added: Ability to provide custom data process to handle data post-processing
- Added: Ability to call SQL procedure with parameters
- Added: CustomBoard is able to host multiple actions and views
- Added: Provide ajax method to the form inside CustomBoard
- Added:
Modal
now has 4 client events"onShow", "onShown", "onHide", "onHidden"
- Added: Add
Toggle
into input widget list - Fixed: Encode request parameters and state to ensure value remain intact during transmission.
- Added: Provide TParamsPersisted trait that allows parameters of display widgets and metrics be persisted
- Added: Adding
Html
container to facilitate Html elements inside dashboard. - Added: Provide
exportedView()
function to allow view customization for exporting. - Added: Detail modal is able to set via property
Version 1.3.5 #
- Added: Ability to set CSRF token on each request
- Fixed: Able to work with CSRF rules from Laravel
Version 1.3.1 #
- Fixed: Disable code-cleaning before output as it causes trouble to
textarea
orpre
element and potentially break html attributes.
Version 1.3.0 #
- Added: Control the responsive of table
- Fixed: Button onClick event is not working
- Added: Able to set widget's name by anonymous function
- Fixed: ClientDashboard javascript is not able to execute
- Fixed: ClientWidget javascript is not able to execute
Version 1.2.6 #
- Fixed: Not being responsive in Mobile
- Added: New property
favicon
to Application to show favicon - Fixed: Not able to set title for Section and Group in menu
- Fixed: ClientDashboard command is not working with Button onClick
- Fixed: Not able to set number of second to cache() function
- Fixed: TField can auto generate fields for Table
- Added: Ability to set badge to
Dashboard
andGroup
menu - Fixed: Ability to close the menu on mobile when click to menu item
Version 1.0.1 #
- Fixed: Showing deprecated (real) error in PHP7.4
Version 1.0.0 #
- The beginning, nothing to say!
Get started with KoolReport
KoolReport will help you to construct good php data report by gathering your data from multiple sources, transforming them into valuable insights, and finally visualizing them in stunning charts and graphs.