Change Log

Version 4.8.3 #

  1. Add "onReady" property for PivotMatrix KWidget
  2. Add actionRefreshPage to Page class that allows page to be refreshed when called.

Version 4.8.2 #

  1. Fix Confirm and Alert rendering bug

Version 4.8.1 #

  1. Add pivotClass prop to PivotTable and PivotMatrix widgets

Version 4.8.0 #

  1. Fixed: Fix FileUPloader to show file error messages if there are and waiting icon while uploading.
  2. Added: Add the response() method to Application so that all elements of dashboard can be accessed and provide extra response.
  3. Add jsonRender property to comply with CSP's unsafe-eval

Version 4.7.2 #

  1. Added: Added property deleteFileAfterDownload to ExportHandler, set to true will delete file from storage after being downloaded
  2. Added: Ability to export selected rows with ExportAction
  3. Changed: TFields's getFields() function will generate fields on-demand
  4. Added: AdminTable has new prop contextConditions to make table show only rows that satisfy conditions.
  5. Added: Action class is added new prop checkEmptySelection

Version 4.7.1 #

  1. Added: New fileName prop is added to ExportAction to customize the exported file name
  2. Added: Ability to export JPG and PNG with ExportAction

Version 4.7.0 #

  1. Fixed: Now we can use different class name for Application rather than just App.
  2. Fixed: Use new isFilteredSingle method instead of isFiltered in RowSelect class
  3. Added: A new ExportAction is added to admin panel to provide export capability

Version 4.6.0 #

  1. Added: Ability the set new session handler
  2. Added: JWTSession to handle session using JWT
  3. Added: Able to create Dashboard with different name using code style Dashboard::create('privateName')
  4. Fixed: Table's search bug when there's where method in dataSource's query builder
  5. Added: "scope" property to DrillDown
  6. Fixed: "between" filter for Trend.php and Value.php in metrics based on data handler = SQLHanlder or PipeHandler

Version 4.5.0 #

  1. Added: ApexCharts charts
  2. Added: VisualQuery widget
  3. Added: multiple upload mode in FileUploader
  4. Added: drag and drop in FileUploader
  5. Added: useCoreDataSource() method in data source for users to decide whether to use pdo or other koolreport datasource classes
  6. Added: "Others" category in chart to language files
  7. Fixed: The app() is not available in TEnabledPermit which is caused null issue for permission anonymous function
  8. Fixed: Google Chart's ComboChart to show multiple types of charts instead of just column
  9. Fixed: Util's arrayToDataStore() function issue when there's only one column
  10. Fixed: Metrics' Value card's lastQuarter range and value.

Version 4.2.0 #

  1. Fixed: Error message in Application
  2. Fixed: Change bind() to bindTo() in TEnabledPermit to avoid error message
  3. Added: custom Excel export setting for Table and PivotTable/PivotMatrix
  4. Added: custom PDF and Excel view files for dashboard and widget export
  5. Added: general engine() method for ExportHandler, nearly similar to {type}Engine() methods.
  6. 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 #

  1. Added: Ability to set theme assets via application
  2. Fixed: Solve the issue of using dashboard inside other frameworks

Version 4.1.6 #

  1. Fixed: Login does not direct to previous page and dashboard
  2. Added: Client class for page

Version 4.1.5 #

  1. Fixed: Undefined "showOnUpdate" on Calculated field in Admin Panel

Version 4.1.4 #

  1. Added: Provide more translation text

Version 4.1.3 #

  1. Added: FlexView is able to clear state on view first load
  2. Added: Provide option to use state for showView() method

Version 4.1.2 #

  1. Added: Add validators to inline editing for AdminTable
  2. Added: FlexView now has history and can go back to previous view with historyBack() method
  3. Added: Provide validators to inline editing for RelationTable
  4. Fixed: Not being able to init validators
  5. Fixed: Issue with language cookie

Version 4.0.1 #

  1. Fixed: Issue with navigation after login

Version 4.0.0 #

  1. Fixed: Not perform rowSelect if there is no state available in Table
  2. Fixed: Prevent null in convertToSeconds method of Util class
  3. Added: Add Timeline chart for chartjs
  4. Fixed: String function with null parameter for PHP 8.1
  5. Fixed: Issue with PipeHandler aggregates when there is no data
  6. Added: formatValue() function of field takes into account the formatUsing settings
  7. Added: Category metrics support resolve category field's value with resolveUsing property
  8. Added: Provide client event onClientLoading and onClientLoaded to Dashboard
  9. Added: Provide client event onClientLoading and onClientLoaded to Widget
  10. Added: Add appKey to Dashboard application to improve security
  11. Added: Provide pages method to set extra pages in application
  12. Added: Property successGoToPage for Login to set the page to go to after user login succesfully
  13. Added: Ability to create new page to hold dashboard
  14. Improved: Separate the theme's javascript from application javascript
  15. Fixed: Adding row into second parameter of field's nullValue and emptyValue properties.
  16. Improved: Remove the assets property in App
  17. Added: Flexibilty in setting theme.
  18. Added: Able to add menuitem to sidebar
  19. Changed: Add sidebar() method to replace the dashboard() method in Application
  20. Added: Add new Wrapper page to hold custom content
  21. Added: Add content() method to replace the widgets() method in Dashboard
  22. Added: Add params() to PDOSource so that rawSQL() can be bound with parameters
  23. Added: Able to set language dynamically
  24. Added: Ability to list available languages and allow user to choose
  25. Added: Page has loginRequired property to decide whether page need login
  26. Added: Page has allowAccess() method to filter request
  27. Improved: Change the request and response mechanism.
  28. Added: Add translation content to metrics widget
  29. Added: AdminTable is able to do inline editing
  30. Added: RelationTable is able to do inline editing
  31. Added: Login page is able to catch the previous route and comeback after successful login.
  32. Added: Provide FlexView widget to dynamically loading an view
  33. Added: Provide action() method for Page and Application
  34. Added: Page and Application is able to use notification widget like Alert, Modal and Note

Version 3.5.0 #

  1. Fixed: Remove redundant code in FileUploader
  2. Fixed: Disabling createScreen should not disable the searchBox
  3. Fixed: Remove koolType property in TimeAgo
  4. Added: Adding Created event to User and new property others to store other information.
  5. Fixed: Attach managed table name to id in UpdateScreen and DetailScreen
  6. Added: Add BSelect to inputs family
  7. Added: settings to LocalExport and ChromeHeadlessio
  8. Improved: Make relation work smoother
  9. Fixed: Set default resolveUrl property of FileUploader to the formatUsing property of Image
  10. Added: New Link field to handle tag
  11. Fixed: The generation of count query in SQLHandler when raw query is provided to dataSource().
  12. Added: Adding language translation
  13. Fixed: Action Check if selected ids is available before querying related models
  14. Added: Add emptySelectionWarning property to Action to control the warning when no rows is selected
  15. Changed: Remove the RowSelect's property allSelectable and make all checkbox always available
  16. Added: Able to select rows with conditions
  17. Removed: Remove showRowSelect and showRowActions in Admin table
  18. Added: New rowSelectField and rowActionsField to Admin table
  19. Removed: Remove showRowActions proeprty of relation table
  20. Added: New rowSelectField property to relation table
  21. Added: New server-events: onRecordDeleting, onRecordDeleted, onRecordUpdating, onRecordUpdated
  22. Added: Add onFileHandling and onFileHandled event to FileUploader
  23. Added: New Firebird datasource
  24. Added: Adding pageSizeOptions property to table to let user changes page size of table

  1. Added: Click on Table header to sort
  2. Fixed: Very rare case that echo method does not work with static function of a class
  3. Fixed: Terminate widget autoUpdate when moving to another dashboard

Version 3.3.0 #

  1. Fixed: Change group by alias to group by expression in SQLHandler
  2. Fixed: Change 12h format to 24h format in SQLServer
  3. Added: Add shouldUpdate to set anonymous function to determine whether a field should be updated.
  4. Added: Add processValueToDatabase property to field to alternate value saved to database.
  5. Added: Add Password field
  6. Added: Add static updateAction(), detailAction(), deleteAction() to return corresponding default actions for resources.
  7. Added: Add dateFormat() for Sqlite
  8. Added: Add translation for new terms

Version 3.2.4 #

  1. Fixed: Adding CSRF to file uploader widget to avoid issue with Laravel security
  2. Fixed: Not set the field original value to default value of input as it will be null
  3. Fixed: Make the onConFirm and onCancel text be run separately from text
  4. Added: Ability to validate inputs inside the action modal form.

Version 3.2.0 #

  1. Fixed: SQL Handle for SQL Server, PostgreSQL, Oracle date format
  2. Fixed: Missing onConfirm on Action
  3. Added: Add bottom property to DetailScreen, UpdateScreen and CreateScreen so that we can set bottom widgets display
  4. Added: Ability to fall back on nested query on performing aggregations.

Version 3.1.1 #

  1. Fixed: Not able to get enabled dashboards

Version 3.1.0 #

  1. Added: Adding bottom() to facilitate bottom widgets display.

Version 3.0.0 #

  1. Added: Ability to set disabled menu items for Dropdown, Panel menu and account menu
  2. Added: Provided Dropdown::menuItem() to create MenuItem object
  3. Added: Provided Panel::menuItem() to create MenuItem object
  4. Added: Tab has icon property
  5. Added: Property disabled to MenuItem
  6. Added: Provided TWidgetState to Dropdown
  7. Added: Provide error message to actionLost in Dashboard
  8. Improved: Add static tab() function to Tabs container
  9. Added: Add onShow, onShown, onHide and onHidden to Tab
  10. Added: Provide cssClass and cssStyle property to Tabs
  11. Fixed: Use nested query to calculate the total rows correctly in SQLHandler
  12. Fixed: Make Row's cssClass property working
  13. Added: Provide PropSet event for TProps
  14. Added: Request params is able to get/set by keys
  15. Added: Add property nullDisplay to Field
  16. Added: Panel header and footer is able to receive both text and widgets
  17. Added: Adding hidePagingOnSinglePage property for Table widget
  18. Added: Adding TextArea input
  19. Fixed: Able to set global property of in settings for `DrillDown
  20. Added: Adding input field validator
  21. Added: TextBox is able to pre-process value with processValue() method
  22. Added: TextArea is able to pre-process value with processValue() method
  23. Added: TextBox and TextArea has new property trimValue to indicate value will be trimmed off space
  24. Added: Provide disabled property to input widgets
  25. Added: Adding list of common filters to admin
  26. Added: Adding FileUploader to input
  27. Added: Adding hidden property to Field
  28. Added: Adding customRender to Field to alternate display of field
  29. Added: Provide property disableRangeSelect to Trend and Value metrics
  30. Added: Provide show() method to Response to open modal
  31. Added: Add secret Tunnel ajax panel to Dashboard
  32. Added: Adding Alert notification
  33. Added: Panel has short-handed static method to create Panel with type
  34. Fixed: Remove monolog requirement, developer can add when needed.
  35. Added: General error message in non-debug mode.
  36. Added: Provide cssClass and cssStyle for Button inputs
  37. Added: Provide formatError to DateTime field
  38. Fixed: Ability to handle nullValue for Field in common
  39. Added: Add emptyValue property for Field to handle both null and empty value
  40. Added: Add Boolean field to handle Boolean column
  41. Added: Bring back SimpleCard in widgets
  42. Added: Special Admin Panel with full CRUD capability to manage database.
  43. Added: Provide list of validators
  44. Added: Provide Confirm notification
  45. Added: Provide Note notification
  46. Added: New html property for Text field to control whether value is rendered in html
  47. Added: Able to show notification or run script by return INofitication object or script in action
  48. Added: Provide short-handed static function to create Button with type and text

Version 2.0.0 #

  1. Added: Make Application assets become property so that we are able to set assets() from outside
  2. Added: Able to connect to Oracle
  3. Added: Able to connect to SQLite
  4. Fixed: Widgets able to update inside Modal
  5. Added: Show error when debugMode is on
  6. Added: Ability to show unexpected response when debugMode is on
  7. Fixed: Better exception message for Application, Dashboard and Widget
  8. Added: Able to provide items to top menu
  9. Added: Able to provide items inside account menu
  10. Added: CustomBoard use method="ajax" to enable form performing data post back via ajax
  11. Added: Adding Logging feature with monolog
  12. Added: Fire event Error when something wrong happens
  13. Added: Add errorBubble to App to control whether error event is bubbled to parent
  14. Added: Make registerEvent and fireEvent public so that they can be called from outside of object
  15. Added: Add showRawValue property for count field of Category metric.
  16. Added: Allow dataSource() function receive parameters
  17. Added: Properties of fields now is able to receive function with standardized parameters $value and $row.
  18. Fixed: Remove extractProps() from TProps trait
  19. Added: TProps has ability to get property value by function simply by prefixing underscore(_) to the property name.
  20. Added: Ability to set property by anonymous function for all inputs
  21. Added: Ability to set property by anonymous function for all widgets
  22. Added: Ability to set property by anonymous function for all metrics
  23. Added: DataReady event for widgets, fired when data is queried and be available
  24. Added: hidden property for widgets
  25. Added: hasWidget() method to Dashboard to check if a widget is available
  26. Added: hasSibling() method to Widget to check if a sibling widget is available
  27. Added: Ability to perform search on table
  28. Added: Ability to perform search for file sources
  29. Added: Ability for Trend and Value metrics to work with array or file sources
  30. Added: Provide menu capability for Panel
  31. Added: Able to export widget or dashboard to pdf, png and jpg
  32. Added: Provide ChromeHeadlessio and LocalExport engine
  33. Added: Ability to get data view of an widget
  34. Added: Ability to show modal detail for widget
  35. Added: Ability to show table containing detail data for Google Charts
  36. Fixed: Change "after{Event}" to "beforeOn{Event}"
  37. Added: Add event handler "afterOn{Event}"
  38. Added: Widget is able to function inside detail modal
  39. Added: Ability to navigate to a dashboard by url
  40. Added: Add Dropdown inputs
  41. Added: Provide D3 chart library to widgets
  42. Added: Provide ChartJs library to widgets
  43. Added: Bring drilldown widget to dashboard
  44. Added: Ability to provide custom data process to handle data post-processing
  45. Added: Ability to call SQL procedure with parameters
  46. Added: CustomBoard is able to host multiple actions and views
  47. Added: Provide ajax method to the form inside CustomBoard
  48. Added: Modal now has 4 client events "onShow", "onShown", "onHide", "onHidden"
  49. Added: Add Toggle into input widget list
  50. Fixed: Encode request parameters and state to ensure value remain intact during transmission.
  51. Added: Provide TParamsPersisted trait that allows parameters of display widgets and metrics be persisted
  52. Added: Adding Html container to facilitate Html elements inside dashboard.
  53. Added: Provide exportedView() function to allow view customization for exporting.
  54. Added: Detail modal is able to set via property

Version 1.3.5 #

  1. Added: Ability to set CSRF token on each request
  2. Fixed: Able to work with CSRF rules from Laravel

Version 1.3.1 #

  1. Fixed: Disable code-cleaning before output as it causes trouble to textarea or pre element and potentially break html attributes.

Version 1.3.0 #

  1. Added: Control the responsive of table
  2. Fixed: Button onClick event is not working
  3. Added: Able to set widget's name by anonymous function
  4. Fixed: ClientDashboard javascript is not able to execute
  5. Fixed: ClientWidget javascript is not able to execute

Version 1.2.6 #

  1. Fixed: Not being responsive in Mobile
  2. Added: New property favicon to Application to show favicon
  3. Fixed: Not able to set title for Section and Group in menu
  4. Fixed: ClientDashboard command is not working with Button onClick
  5. Fixed: Not able to set number of second to cache() function
  6. Fixed: TField can auto generate fields for Table
  7. Added: Ability to set badge to Dashboard and Group menu
  8. Fixed: Ability to close the menu on mobile when click to menu item

Version 1.0.1 #

  1. Fixed: Showing deprecated (real) error in PHP7.4

Version 1.0.0 #

  1. 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.