- Fix KoolReport.js for chart export to work
- Add "like", "not like", "betweenInclusive", "notBetweenInclusive" operators to DataStore's filter method
- Fix MySQLDataSource parameter binding in some cases
- Add
jsonRender
property to comply with CSP's unsafe-eval
- Add checking filePath openable on init in CSVDataSource.
- Add separated port setting to MySQLDataSource.
- Support for separating widget's html and init client script so that developers could manage client scripts for their own likes
- Support Bootstrap 5
- Add Brackets for Filter process
- Add function to Filter process, add xor logic
- Add RowNumColumn process, similar to CalculatedColumn's rownum but simpler
- Add "betweenInclusive" and "notBetweenInclusive" for Filter process
- Add using existed connection option for PDO, MySQL, PostgreSQL, SQL Server, and Oracle datasources
- Fix Table's and Google Chart's eval bug when column formatValue is a Math formula string
- Fix Utility's arrayToDatastore function when there's only one column.
- Update Google chart to use Date type in X axis for zoom option to work.
- Fix dynamic properties in PHP 8.2.
- Fix mull meta column key in core/Table widget.
- Add event "init", "drawing" and "drawed" to google chart
- Add public
viewDir
property for KoolReport class to find view files from that directory. - Add public
renderingVariables
property for KoolReport class to use in view files.
- Fix forced string cast of report's "assets" setting.
- Improve Table's client function handleRemoveDuplicate for much faster rendering.
- Add closeCursor to statement in PdoDataSource.
- Fix the string function with null parameter in PHP8.1
- Upgrade jquery to 3.5.0
- Add
Shuffle
process to randomize data order.
- Fix: MySQL, PostgreSQL, SQLServer data sources when binding array with more than 10 values.
- Fix: bug with DataStore's offsetGet method.
- Fix DataStore's generator method.
- Fix DataStore's deprecated methods in PHP 8.1.
- Added:
AssetManager
ability to load resources with absolute paths. - Improved:
PDODataSource
,MySQLDataSource
,PostgreSQLDataSource
,SQLSRVDataSource
,OracleDataSource
to be able to bind params with any orders, duplicated names, array params for WHERE IN (onlyPDODataSource
supports this before). - Added: SQL-like
like
andnot like
operator forFilter
process. - Add
useGenerator
method for report. - Add
charset
andsession_mode
properties for OracleDataSource.
- Added: PDODataSource is able to execute other statement like update, delete with
execute()
method - Added: Forward process
- Added: Multiple "role" => "annotation" columns for Google chart
- Added: Hebrew language file for Table widget
- Added: Alias
rowspan
andgroupCellsInColumns
forremoveDuplicate
of Koolphp Table widget - Added: make
removeDuplicate
work with both column names and column orders
- Fixed: Calculate correctly the document root folder
- Added: Add port option to PostgreSQLDataSource
- Added: Ability to change version of Google Charts
- Added: Ability to set language locale for Google Charts
- Added: Ability to render empty sub report for later updating from client
- Improved: Calculate correctly the document root folder
- Added: port option to PostgreSQLDataSource
- Fixed: uksort call in various datasources to work with PHP 8.x
- Added: fetchData method to OracleDataSource, PostgreSQLDataSource, SQLSRVDataSource
- Improved:
Filter
process to compare when string of number is compared to number, we will use number comparison.
- Google Chart: Only redraw when chart is loaded.
Count
: Adding new Count process to count rows with condition.DataStore
: Add methodgetScalar()
Filter
: Adding operator<>
TypeAssure
: New type conversion process
- Fix version number of KoolReport to make sure new resource is generated correctly.
Table
: Addingavg
method to row groupResourceManager
: Enhance way to export asset folder and generate asset urlTable
: Fix issue with rowClick activated when clicked on headerGoogle Charts
: Fix error caused by empty options while using new version of Google Charts.
ResourceManager
: Fix issue with load balancing
DataStore
: Addingdistinct()
method to get the distinct values of a columnKoolReport
: AddingtoArray()
method to get data in array from reportKoolReport
: AddingtoJson()
method to get data in json from reportKoolReport
: AddinggetXml()
method to return xml representing all report in xmlExistedPdoDataSource
: Adding this new datasource to use in case we have existing pdo connection instead of raw connection settings.JsonSpread
: New process to spread json string into multiple columns.
PDODataSource
: Adding more options for PDO initiationGroup
: Addingcustom
property to host an anonymous function for custom groupingTable
: Adding the missingcount
methodDataStore
: Fix typos in toTableArray() functionTable
: Fix the table footer positionTable
: Column footer setting is now able to receive custom functionPdoDataSource
: Remove the auto null to zero conversionCalculatedColumn
: Auto converse null to zerojQuery
: Upgrade to version 3.4.1FontAwesome
: Upgrade to 5.10.2Card
: Addinghref
to navigate.Table
:Fix rowspan issue when use grouping together with removeDuplicateDataStore
: Addinginsert()
method to insert row at any place.JsonColumn
: Adding JsonColumn process to turn column value into arrayArrayColumn
: Adding array column typeTable
: Adding custom column capabilityUtility
: Format array column type
Group
: Fix grouping issueGroup
: AddingcaseSensitive
property to set whether grouping column should be grouped with case sensitive. Default value istrue
.Group
: Free memory on input endJoin
: Fix the key generationJoin
: Free memory on input endCard
: New widget to show informationTimeline
: Fix the date time conversion to Javascript datetimeMySQLDataSource
: Remove the auto-added parenthesis in IN operatorSQLSRVDataSource
: Remove the auto-added parenthesis in IN operatorPostgreSQLDataSource
: Remove the auto-added parenthesis in IN operatorOracleDataSource
: Remove the auto-added parenthesis in IN operatorNode
: AddingpipeIf()
method to set condition to pipe.Node
: AddingpipeTree()
method to pipe data from a node to series of nodes.KoolReport
: Addingstore()
that act likedataSource()
KoolReport
: Capable of using template engine rather than default view of koolreport.DataStore
: Adding functiontoTableArray()
to return data in table formatTable
: Fix the issue of html special char in tableautoload
: Able to load package class from bothkoolreport/core/packages
andkoolreport
folder.MySQLDataSource
: Bind DataTables' server side params instead of escaping themSQRSRVDataSource
: Bind DataTables' server side params instead of escaping themPostgreSQLDataSource
: Bind DataTables' server side params instead of escaping themOracleDataSource
: Bind DataTables' server side params instead of escaping themGoogle Chart
: Make change inprepareData()
that only non null floatval value is passed, leave null values alone (for case like LineChart'sinterpolateNulls = true
)Map
: setmetaSent = false
whenis_nded = false
Transpose2
: Fix undefined column key for some rows when transposing
DataStore
: Changeclone()
function name tomakeCopy()
to avoid reserved keywordsclone
in PHP 5.xTable
: Avoid duplication ofgroupLevel()
function
Table
: Fix Table warning in PHP 7.2+ when grouping is not setGoogleCharts
: Remove auto change pointer on select event
Utility
: Fix the symbolic path
Table
: Addingcss
andcssStyle
options for group row.Table
:"top"
and"bottom"
template of row group now supports functionWidget
: Fix thestandardizeDataSource()
issue when receiving data source by functionKoolReport
: Convert code base to comply with PSR-2 standardDataStore
: Change output oftoJson()
method to return both data and meta dataGoogleChart
: Fix the issue of inability to load multiple charts from different google chart package.KoolReport
: Avoid duplicate data sending when requestDataSending() and run() are both called.DataStore
: Adding methodclone()
to get a datastore cloned.Table
: Adding new propertysorting
to facilitate sorting on Table.
ResourceManager
: Fix issue with publishing resourcesWidget
: Fix the PHP5.4 incompatibility
DateTimeFormat
: Deal with null value or wrong format of datetimeUtility
: Deal with null value of datetimeTimeBucket
: Avoid null date valueDateTimeFormat
: Check null date value and do not convert if the datetime is in good shapeWidget
: New loading method for Widget which will allow widget is able to load resource and initiate itself on-demandKoolReport
: Able to create event handler function in the report instead of using registerEvent() function.Widget
: RemoveregisterResources()
andrenderResources()
Table
: Enhance the removeDuplicate feature, supporting paging and remove duplicate cell at the same time. 9.Node
: Add function setEnded() in case we want to define a datastore with existed data and does not need data is piped to it.Widget
: Allow widget to initiate without creating a report to hold it, meaning you can freely create widget in your own applicationKoolReport
: Update the new way to calculate document rootDataStore
: Allow DataStore to be used like an array, working with foreach.DataStore
: Add list of essential methods for array manipulationDataSource
: Adding static functioncreate()
to create a source without setting up a full report.CSVDataSource
: Allow datasource to convert string data to UTF8ResourceManager
: Enhance the way to public report assets folderWidget
: AddingonReady
state to let user write custom function when widget is ready.KoolReport
: Adding client-side onDone() event to callback a function on all widgets are initiated.Gauge
: Update library library locationComboChart
: AddingchartType
property for columns inComboChart
for setting the chart to displayWidget
: AddingthemeBase
property to let theme define how widget to be renderedWidget
: AddingwithoutLoader
property to set where widget should render with or without KoolReport loader.Table
: Make pagination compatible with Bootstrap4Widget
: AddingthemeCssClass
property to let theme controls appearance of widgetWidget
: Cover widgets in custom tag to increase client-side accessibility.Table
: Add new featureRow Grouping
which allows multi-levels row group in Table.
- Utility: Fix jsonEncode() to work with array contains javascript function
- DataSource: Improve the parameter escape string
- DataSource: Make
MySQLDataSource
,PostgreSQLDateaSource
,SQLSRVDataSource
,OracleDataSource
share database connection to reduce response time and memory. - GoogleChart: When you user select item on chart, the selectedRow now can contain associate value beside the array of values.
- Table: Return both array and associate rowData on the rowClick event.
- Table: Add
responsive
property to Table widget - GoogleChart: Add
formatValue
to column so that user can do custom value format. - GoogleChart: Make width of GoogleChart default 100%
- SubReport: Enhance the partial render
- PdoDataSource: Fix issue with Oracle
- KoolReport: Reduce reload settings() by saving to $reportSettings
- KoolReport: src() will take the first datasource if name is not specify
- Utility: Add advanced jsonEncode() function to enable js function definition inside php array.
- Adding version factor to KoolReport as well as its widget so that everytime we upgrade core library as well as package, the widget is able to create new assets folder with updated resource
- Fix several minor bug
- Adding
DifferenceColumn
process to calculate the difference between row and the previous one. - Adding
AppendRow
process to add custom row to data flow.
- Google Chart:Fix issue with GoogleChart when working with numeric column but in string form.
- Change namespace
::class
to use classname in string so thatKoolReport
is compatible with PHP 5.4 PdoDataSource
: Fixcharset
issue withPostgreSQL
- Adding
AccumulativeColumn
to generate accumulative column. - Fix Group process for not counting records correctly.
- Enhance the
autoload
of KoolReport - A bundle of small fixes
- Revert back to previous param binding of PDODataSource
- Fix the bug of incorrect active report when subReport is used.
- Widget: Adding default
dataSource
and backwarddataStore
property. - Widget: Able to set dataStore object, array data and even the adhoc process.
- Table: Remove the
data
property and start using thedataSource
- GoogleCharts: Remove
data
property and start usingdataSource
instead - DataStore: Adding
requestDataSending()
to manually request data piping from source. - Adding events
OnBeforeResourceAttached
andOnResourceAttached
- Table: Add ability to set multilevel group headers.
- PdoDataSource: Adding SQL Query error handling
- CopyColumn: Change input format from
"orginal"=>"copy"
to"copy"=>"orginal"
- DataStore: Function process() can accept a series of piping processes.
- GoogleCharts: Add property
pointerOnHover
to set whether pointer will be used when user holds mouse over the item of chart. 13: GoogleCharts: Automatic setpointerOnHover=>true
if there is"itemSelect"
event is registered. - Table: Change "goPage" event to "pageChanged" event
- Added
ColumnRename
process to rename column - Process: Adding static function
process()
- DataStore: Add process() function to further process data
- PdoDataSource: Update the bindParams() function.
- Table: Handle the case when there is no data
- Table: Show custom messages
- Widget: Able to load language/localization
- PdoDataSource, MySQLDataSource, SQLSRVDataSource: Update parameter binding.
- Add ability to contain sub report, supporting partial report rendering.
- Widget: Enhance the template() function
- Google Charts: Rewrite library to support ajax loading and work well with SubReport
- Table: Support ajax loading.
- Table: Adding client event handler capability.
- DataStore: Fix the
get()
function - TimeBucket: Change month bucket format from
Y-n
toY-m
to support sorting. - DataStore: Add $offset parameter to the top() function.
- DataStore: Add function min(), max(), sum(), avg()
- Make KoolReport run debug() if could not find the view file.
- Filter: Add
"in"
and"notIn"
operator - DataStore::filter() Add "startWith","notStartWith", "endWith" and "notEndWith"
- CalculatedColumn: Add row number column with key
{#}
- Table: New feature of pagination
- Fix parameters bug in PDODataSource
- Fix parameters bug in MySQLDataSource
- Fix parameters bug in SQLSRVDataSource
- Add html() method to Widget to allow return html of widget
- Add $return to create() method of Widget to return html instead of echo html.
- Add innerView() to KoolReport to allow rendering sub view
- Add function get() to DataStore to get any value in table
- Make Transpose process take the label as data if the label of column is available.
- Fix the isEnd() function of Node
- Fix Group to allow multiple sources to pipe to group process.
- Return content on event
"OnRenderEnd"
- Allow cancel rendering using
"OnBeforeRender"
event - Add previous() function to Node for navigation
- Fix the ProcessGroup to enable transferring data smoothly.
- ResourceManager now will fire the OnResourceInit event
- Table has
data
property to input data on fly. - Google chart has
data
property to input data on fly. - Add
filter()
function to DataStore to filter data base on condition. - Add
top()
andtopByPercent()
function to DataStore to get the top rows - Add
bottom()
andbottomByPercent()
function to DataStore to get the bottom rows - Add
sort()
function to DataStore to get data sorted. - Add
"footer"=>"count"
toTable
column settings.
- New
AggregatedColumn
process - Table is now able to show footer
- Make footer show on top with
showFooter
property - Add
footerText
property - Add
showHeader
toTable
widget - Ability to set
cssStyle
for each columns.cssStyle
can be string or array containing componentstd
,th
andtf
. - Improve
DataSource
class - New process
Transpose
to tranpose column and row of data flow - Fix double quote issue of
PDODataSource
- The Node now has getReport() function which return the report. 11.Fix the Timeline google charts
- Fix the Group process by removing the space in column name
- Add params() function to MySQLDataSource and MSSQLDataSource
- Fixed Fix Google Chart due to change in core library.
- Add load() function for ArrayDataSource.
- Add
formatValue
column settings in\koolreport\widgets\koolphp\Table
.
- Enhancment Table has align property for columns
- Enhancment Adding event OnInit and OnInitDone to KoolReport
- Enhancment Adding event OnBeforeSetup and OnSetup to KoolReport
- Enhancment Adding function params() in PDODataSource to set params for SQL statement.
- Enhancment Adding process Map which is versatile way to transform data.
- Fixed Solve issue of empty data source given to table.
- Fixed Solve the bug of missing row in ColumnsSort process.
- Enhancment Move the ExcelDataSource from the core to separate package to reduce the size of core.
- Enhancment Move MongoDataSource to separate package as well.
- Enhancment Add namespace 'clients' to contain most common used clients library such as jQuery, Bootstrap
- Enhancment Adding the colorScheme to Koolreport to manane color of charts and others.
- Enhancment We now can create theme for KoolReport
- Enhancment Enhance the Widget Asset Manager
- Enhancment Add functionpublishAssetFolder() to KoolReport.
- Enhancment Add the MySQLDataSource
- Enhancment Add the SQLSRVDataSource
- Enhancment Add ColumnsSort process to sort columns by name of label.
- Enhancment The Sort process now can sort by custom comparison function.
- Enhancment Add function debug() in KoolReport, this function will display all available data stores.
- Fixed Fix Google Chart initiation bug,this bug is actually due to the change from Google library.
- Enhancment Add ResourceManager to manage report's resources such as js, css and any others.
- Enhancment Improve the loading of Google Charts library with new ResourceManager to avoid loading redundancy.
- Enhancment Add event register and event handling mechanism.
- Enhancment Add OnBeforeRun,OnRunEnd,OnBeforeRender,OnRenderEnd event.
- Enhancment Allow to set full path for report's assets folder settings
- Enhancment Add ReportDataSource to pull data from another report
- Enhancment Allow to set "role" to columns for google chart
- Enhancment Filter process is now allowed or operator
- Enhancment Allow ValueMap to set custom function
- Enhancment Make Google Charts responsive to the change of screen size
- Enhancment Add saveTo() function to Node class
- Enhancment Enhance the mechanism of google chart library loader
- Enhancment Koolphp Table can remove duplicated value
- Enhancment Add popStart() and pop() function to DataStore class which helps to reduce memory usage
- Enhancment Enhance CSVDataSource and ExcelDataSource to reduce memory usage
- Enhancment Allow CalculatedColumn to add custom function and set meta data on the fly.
- Enhancment Make removeDuplicate of koolphp\Table be list of columns you want to remove duplicated data.
- Fixed Fix autoload.php bug in loading packages
- Fixed Fix OnlyColumn bug
- Fixed Fix koolphp's Table bug when column header is number
- Fixed Fix google charts duplicated chart id problem
- Establish middle-ware structure of KoolReport
- Build the most common datasource connectors
- Build the most common data processes
- Create PHP wrapper for Googe Charts library
- It was a nice day!
- Paper and pencil
- Two guys
- In a garden