Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Ui Laravel Package

atk4/ui

Agile UI (atk4/ui) is a server-side rendered PHP UI framework with 50+ reusable components for building admin/back-office web apps fast. Connects to abstract data models (SQL/NoSQL/APIs), auto-adapts to schema changes, and supports interactive JS events and Vue.js extensibility.

View on GitHub
Deep Wiki
Context7
6.0.0

Major features

  • Remove View::content property and View::set() method (#2073) @mvorisek
  • Always initialize jQuery data from HTML attributes as string (#2274) @mvorisek
  • Escape HTML by default in dropdown and toast (#2267) @mvorisek
  • Teleport modals early using JS observer (#2257) @mvorisek
  • Terminate async JS handlers when DOM owner is destroyed (#2244) @mvorisek
  • Impl. clearable dropdown (#2209) @mvorisek
  • Rename Form::setModel() method to Form::setEntity() (#2239) @mvorisek
  • Add master checkbox to Grid (#1921) @mhuser
  • Add loadable typecast for JsCallback arguments (#2225) @mvorisek
  • Add reveal eye to password form control (#2219) @rickyosser

Breaking changes

  • Make form control class abstract (#2271) @mvorisek
  • Name $.atkAjaxec() plugin better (#2249) @mvorisek
  • Use Fomantic UI "url" directly instead of "auto path" for Tab (#2247) @mvorisek
  • Remove JsSse::$closeBeforeUnload property (#2245) @mvorisek
  • Remove bool defaults support from Form\Control::onChange() (#2240) @mvorisek
  • Use int type for ID for View::setSource() when the data is list (#2238) @mvorisek
  • Prevent setting text as HTML in Text (#2043) @mvorisek
  • Change "isDisabled" to "isEnabled" for actions everywhere (#2232) @mvorisek

Other changes

  • Fix form control lookup multiple initial value (#2278) @mvorisek
  • Upgrade Fomantic-UI to 2.10.0-beta.17 (#2277) @mvorisek
  • Upgrade Fomantic-UI to 2.10.0-beta.16 (#2276) @mvorisek
  • Update JS libs (#2275) @mvorisek
  • Upgrade Fomantic-UI to 2.10.0-beta.14 (#1742) @mvorisek
  • Upgrade Fomantic-UI to 2.10.0-beta.9 (#2272) @mvorisek
  • Fix dropdown multiple JSON (#2270) @mvorisek
  • Fix CI (#2269) @mvorisek
  • Initialize Lookup selected values in JS constructor (#2268) @mvorisek
  • Drop "set value" JS init from dropdown form control (#2266) @mvorisek
  • Upgrade Fomantic-UI to 2.9.4 stable (#2265) @mvorisek
  • Fix CS v3.70.0 (#2264) @mvorisek
  • Fix "keep original modal dimmer hack" not called (#2263) @mvorisek
  • Move "keep original dimmer" modal reload to teleport observer (#2261) @mvorisek
  • Store native element in jQuery plugins (#2259) @mvorisek
  • Fix element remove observer (#2258) @mvorisek
  • Load tabs using JSON from server (#2255) @mvorisek
  • Remove "-dev" suffix from version in src/App.php (#2254) @mvorisek
  • Use specific PHP version in demos/Dockerfile (#2253) @mvorisek
  • Upgrade Fomantic-UI to 2.9.4-beta.101 (#2252) @mvorisek
  • Update JS libs (#2251) @mvorisek
  • Unify JsExpressionable variable naming (#2250) @mvorisek
  • Fix App::jsUrl() to always append "__atk_json=1" (#2248) @mvorisek
  • Improve JS files naming (#2243) @mvorisek
  • Fix table column tooltip typecast (#2076) @mkrecek234
  • Strip "ID" suffix from reference form control label (#2241) @mvorisek
  • Test demos Dockerfile build in CI (#2242) @mvorisek
  • Fix menu dropdown for any model (#2237) @mkrecek234
  • Disable bulk action buttons if selection is empty (#2233) @mvorisek
  • Adjust code for removed UserAction::$modifier property (#2231) @mvorisek
  • Validate user action earlier than before execute (#2230) @mvorisek
  • Upgrade Codecov CI (#2227) @mvorisek
  • Fix Behat CI (#2226) @mvorisek
  • Fix row click demo with php callback (#2224) @mvorisek
  • Upgrade PHPStan to v2.0 (#2223) @mvorisek
  • Narrow array phpdocs (#2221) @mvorisek
  • Fix missing typecast in CRUD demo (#2216) @mvorisek
  • Fix update "new class() {..." CS (#2217) @mvorisek
  • Build epub and htmlzip docs (#2214) @Jmos
  • Fix CSS build (#2213) @mvorisek
  • Add "smallint" and "bigint" support to FilterModel (#2211) @mkrecek234
5.2.0

Major features

  • Use bigint DBAL type for ID fields by default (#2208) @mvorisek

Breaking changes

  • Rename View::render() method to View::renderToHtml() (#2198) @mvorisek

Other changes

  • Use native table introspect for Behat testing (#2207) @mvorisek
  • Fix CI for PostgreSQL (#2206) @mvorisek
  • Upgrade PHPStan to v1.11.1 (#2205) @DarkSide666
  • Add phpunit v11 support 2/2 (#2202) @mvorisek
  • Fix phpstan-strict-rules v1.5.3 (#2199) @mvorisek
  • Remove unneeded VirtualPage "__atk_tab" code (#2197) @mvorisek
  • Add phpunit v11 support 1/2 (#2196) @mvorisek
5.1.0

Major features

  • Use View::$entity property for entity access (#2192) @mvorisek
  • Impl. typecasting for non-display data (#1991) @mvorisek
  • Render column HTML for each row individually (#2146) @mvorisek
  • Always reload full executor container (#2142) @mvorisek
  • Handle fatal error as exception (#2136) @mvorisek

Breaking changes

  • Remove SSE abort handling (#2188) @mvorisek
  • Remove model support from HtmlTemplate (#2171) @mvorisek
  • Typecast ID for UI strictly using UI persistence (#2168) @mvorisek
  • Remove SessionTrait trait from Wizard class (#2159) @mvorisek
  • Unify Table\Column::getTag() params order (#2155) @mvorisek
  • View::getJs() method returns JsBlock (#2152) @mvorisek
  • Do not replace Lister::$model property during render (#2147) @mvorisek
  • Explicit seed/class suffix in property names (#2145) @mvorisek
  • Rename headerCss/contentCss to headerClass/contentClass properties (#2137) @mvorisek
  • Drop Form::jsInput() shortcut method (#2120) @mvorisek

Other changes

  • JsCallback always terminates with success (#2195) @mvorisek
  • Fix form submit in wizard (#2193) @mvorisek
  • Make "__atk_tab" GET param non-sticky (#2191) @mvorisek
  • Move Fomantic-UI tab render from View/App to VirtualPage (#2190) @mvorisek
  • Always assume browser SSE support (#2189) @mvorisek
  • Fix SSE flush for Apache PHP FPM (#2187) @mvorisek
  • Fix ob_end_flush() in JsSse init (#2175) @Vladzimir
  • Fix nullable parameter type for PHP 8.4 (#2185) @mvorisek
  • Remove no longer needed explicit field type in HasOne relations (#2184) @mvorisek
  • Adjust for Reference::hasOne() strong return type (#2183) @mvorisek
  • Improve templated closure types (#2182) @mvorisek
  • Adjust for removed Reference::refModel() method (#2181) @mvorisek
  • Adjust for model only properties (#2180) @mvorisek
  • Adjust for renamed scope condition field property (#2179) @mvorisek
  • Test CI using Oracle v18 until v23 NLS_COMP is fixed (#2177) @mvorisek
  • Upgrade Fomantic-UI to 2.9.4-beta.35 (#2176) @mvorisek
  • Fix number input type for values over 1000 (#2163) @mvorisek
  • Simplify Model::getIdField() method uses (#2170) @mvorisek
  • Fix missing typecast in DragHandler::onOrder() method (#2167) @mvorisek
  • Infer Dropdown/Lookup field type from control seed (#2165) @mvorisek
  • Fix missing bulk action input typecast (#2164) @mvorisek
  • Fix "php-code-coverage" v11 compatibility (#2161) @mvorisek
  • Fix docs build CI (#2160) @mvorisek
  • Make checkbox /wo label in table column fitted (#2154) @mvorisek
  • Fix Lookup initial change detection (#2092) @mkrecek234
  • Upgrade JS deps (#2153) @mvorisek
  • Prevent JsCallback chain to be evaluated twice (#2150) @mvorisek
  • Minor table columns improvements (#2149) @mvorisek
  • Allow Grid::addModalAction() button to be disabled (#1868) @mkrecek234
  • Fix Table\Column\ActionButtons duplicate HTML IDs (#2148) @mvorisek
  • Adjust for strongly typed name property (#2144) @mvorisek
  • Fix CS v3.47.0 (#2140) @mvorisek
  • Fix CS v3.46.0 (#2139) @mvorisek
  • Fix CS v3.45.0 (#2138) @mvorisek
  • Fix phpstan v1.10.50 (#2135) @mvorisek
  • Upgrade Fomantic-UI to 2.9.4-beta.20 (#2134) @mvorisek
  • Add override method attributes (#2130) @mvorisek
  • Add phpunit v10 testing support (#2133) @mvorisek
  • ErrorException should not be wrapped (#2132) @mvorisek
  • Drop Behat CI for PHP 7.4 and 8.0 (#2131) @mvorisek
  • Fix CI (#2127) @mvorisek
  • Adjust to earlier typecasting exceptions (#2124) @mvorisek
  • Fix grammar in README (#2123) @mudit-loya
  • Fix grammar in README (#2122) @szepeviktor
  • Run PostgreSQL tests with implicit order (#2121) @mvorisek
  • Improve Multiline tests (#2105) @mvorisek
  • Upgrade Fomantic-UI to 2.9.4-beta.11 (#2119) @mvorisek
  • Prohibit error response caching (#2118) @mvorisek
  • Fix demos readonly rollback with nested transactions (#2116) @mvorisek
  • Remove func_num_args() checks in favor of phpstan only (#2115) @mvorisek
5.0.0

Major features

  • Replace $_GET/$_POST/$_FILES with App::getRequestXxx() (#2101) @abbadon1334
  • Convert docs to markdown (#2080) @mvorisek
  • Add fractional seconds support for time/datetime form control (#2067) @mvorisek
  • Impl. response using PSR-7 interface (#1706) @abbadon1334
  • Multiple JS statements must be passed in JsBlock (#1997) @mvorisek
  • No hardcoded template attributes (#1979) @mvorisek
  • Move non-View JxXxx classes into Js namespace (#1872) @mvorisek
  • Upgrade Vue.js to v3 and drop IE11 support (#1915) @mvorisek

Breaking changes

  • Preserve full page path in App::url() method (#2095) @abbadon1334
  • Drop $useRequestUrl param from App::url() method (#2107) @mvorisek
  • Reintroduce App::$page as App::$urlBuildingIndexPage (#2096) @abbadon1334
  • Require tag name in App::getTag() explicitly (#2102) @mvorisek
  • View::set() can be used to set content property only (#2075) @mvorisek
  • Narrow URL array phpdoc types (#2065) @mvorisek
  • Rename Form\Control\Dropdown::isMultiple property (#2064) @mvorisek
  • Remove Table\Column\Delete class (#2058) @mvorisek
  • Rename "btn" to "button" (#2050) @mvorisek
  • Remove default html type from Input control class (#2030) @mvorisek
  • Rename Form::error/success methods to jsError/jsSuccess (#2001) @mvorisek
  • Form\Control::onChange() should not accept JS code as string (#1999) @mvorisek
  • Accept only string|null as template value strictly (#1989) @mvorisek
  • Drop View::addStyle() method in favor of View::setStyle() (#1978) @mvorisek
  • Drop Persistence\Post class (#1974) @mvorisek
  • Drop AbstractView::initDefaultApp and App::init methods (#1968) @mvorisek
  • Unimplement JsExpressionable from View (#1957) @mvorisek
  • Unimplement JsExpressionable from JsCallback (#1955) @mvorisek
  • View::js()/on() returns null when JS chain is explicitly given (#1944) @mvorisek
  • Fix missing JS preventDefault/stopPropagation (#1942) @mvorisek

Other changes

  • Fix Firefox Behat testing stability (#2113) @mvorisek
  • Do not mutate App::$request during testing (#2111) @mvorisek
  • Always assert request URL path starts with '/' (#2110) @mvorisek
  • Add App::url() method tests (#2109) @mvorisek
  • Unify App::url() code, convert string page to array early (#2108) @mvorisek
  • Drop unused App portals code (#2106) @mvorisek
  • Improve InlineEdit keyboard testing (#2104) @mvorisek
  • Fix CS v3.26.0 (#2103) @mvorisek
  • Replace call_user_func() calls as much as possible (#1625) @mvorisek
  • Add PHP 8.3 support (#2100) @mvorisek
  • Add Grid bulk action methods (#1920) @mhuser
  • Fix CS v3.24.0 (#2098) @mvorisek
  • Fix phpstan v1.10.31 (#2097) @mvorisek
  • Rebase to latest develop branch (#2094) @mkrecek234
  • Test docs build using CI (#2086) @mvorisek
  • Fix CI for updated exception message (#2093) @mvorisek
  • Extend Symfony dependency to 6.x (#2089) @abbadon1334
  • Land major header/indent rst to md changes (#2085) @mvorisek
  • Rename docs files from rst to md (#2083) @mvorisek
  • Fix typos (#2077) @szepeviktor
  • Fix Grid IPP selector (#2017) @mkrecek234
  • Use camelCase in docs (#2074) @mvorisek
  • Fix radio form control support (#2072) @mvorisek
  • Bundle own flatpickr fork (#2071) @mvorisek
  • Fix some phpmd advisories (#2066) @mvorisek
  • Allow radio form control to be unchecked (#2063) @mvorisek
  • Remove StepExecutorTrait::jsStepSubmit exception handling (#2062) @mvorisek
  • Fix Fomantic-UI ":first-child" selectors for immediately closed form (#2061) @mvorisek
  • Fix multi step executor args passing /wo preview (#2060) @mvorisek
  • Upgrade JS deps (#2045) @mvorisek
  • Always emit an exception when some expected POST param is not set (#2059) @mvorisek
  • Fix JsCallbackExecutor execute args (#2056) @mvorisek
  • Bundle highlight.js with GH dark style (#2057) @mvorisek
  • Fix DockerFile read-only SQLite error in demos (#2055) @abbadon1334
  • Fix redirect submit event to native form element (#2051) @mvorisek
  • Add conditional form test (#2054) @mvorisek
  • Fix CS v3.17.0 (#2048) @mvorisek
  • Upgrade Fomantic-UI to v2.9.3-beta.35 (#2053) @mvorisek
  • Improve form JS init selector (#2049) @mvorisek
  • Fix CS to use self:: for phpunit static method calls (#2047) @mvorisek
  • Unify Multiline expr calculation (#2046) @mvorisek
  • Add various Behat tests (#2044) @mvorisek
  • Add TreeItemSelector test (#2042) @mvorisek
  • Drop Vue.js dynamic lookup as not supported by "vue-fomantic-ui" (#2041) @mvorisek
  • Improve table column filter coverage (#2038) @mvorisek
  • Fix Behat coverage collection when page navigates (#2037) @mvorisek
  • Add InlineEdit autoSave test (#2036) @mvorisek
  • Replace custom Selenium test driver with a forked package (#2035) @mvorisek
  • Improve Behat testing stability with Firefox (#2033) @mvorisek
  • Add cross-request RW demos Behat testing (#2031) @mvorisek
  • Upgrade Fomantic-UI to 2.9.3-beta.20 (#2029) @mvorisek
  • Add App::terminate() stream support (#2028) @DarkSide666
  • Fix UploadImage::clearThumbnail default image reset (#2027) @DarkSide666
  • Fix example code in readme (#2024) @DarkSide666
  • Fix JsBlock refactor (#2019) @mkrecek234
  • Fix JsBlock refactor (#2013) @mkrecek234
  • Fix card section null description (#2014) @mkrecek234
  • Fix CardDeck shared executor owner (#2012) @mvorisek
  • Upgrade Fomantic-UI to 2.9.3-beta.4 (#2011) @mvorisek
  • Unify CardDeck toast with Crud (#2010) @mkrecek234
  • Always reload whole CardDeck after UA (#2007) @mvorisek
  • Do not handle exception in UserAction ModalExecutor (#2008) @mvorisek
  • Card with entity UA must not reload data again (#2005) @mvorisek
  • Fix Card in CardDeck reload (#2004) @mvorisek
  • Fix phpstan v1.10.0 (#2003) @mvorisek
  • Fix Fomantic-UI proxied $.extend() (#1998) @mvorisek
  • Share user action executor for multiple entities (#1980) @mvorisek
  • Upgrade Fomantic-UI to v2.9.2 (#1971) @mvorisek
  • Fix ScopeBuilder DateTime typecasting (#1995) @mvorisek
  • Prevent object to JSON encode in App (#1993) @mvorisek
  • Reintroduce #1981 - custom decimal separator for numeric types (#1987) @mvorisek
  • Revert "#1981 - custom decimal separator for numeric types" (#1986) @mvorisek
  • Fix CS v3.14.0 (#1982) @mvorisek
  • Add support for custom decimal separator for numeric types (#1981) @mvorisek
  • Fix unlimited user actions support in Card (#1977) @mvorisek
  • Interpolate colors in ColorRating table column decorator on runtime (#1975) @mvorisek
  • Upgrade to Fomantic-UI v2.9.1 (#1969) @mvorisek
  • Optimize realpath() for template loading (#1967) @mvorisek
  • Unify CardDeck menu to use native Menu (#1965) @mvorisek
  • Reintroduce html viewport tag (#1962) @mvorisek
  • Remove no longer needed JS API data clear (#1963) @mvorisek
  • Upgrade Fomantic-UI to 2.9.1-beta.36 (#1964) @mvorisek
  • Lint LESS files using Stylelint (#1948) @mvorisek
  • Fix template caching, allow app to be released (#1961) @mvorisek
  • Adjust to the latest atk4/data (#1960) @mvorisek
  • Add country flag table column decorator (#1958) @DarkSide666
  • Fix active filter column icon (#1951) @mvorisek
  • Allow to search multiple words across multiple columns in Grid (#1946) @mkrecek234
  • Remove redundant parentheses in JS (#1949) @mvorisek
  • Fix sort click event added twice with dynamic scroll (#1943) @mvorisek
4.0.0

Major features

  • Drop $class param from View constructor (#1791) @mvorisek
  • Use native font stack, drop external Lato font (#1784) @mvorisek
  • Bundle all external assets (/wo twemoji) (#1785) @mvorisek
  • Impl. transactional session management (#1740) @mvorisek

Breaking changes

  • Parameter names must be always passed to JsFunction (#1927) @mvorisek
  • Rename Modal::{show, hide} methods (#1912) @mvorisek
  • Refactor JS code and improve coverage (#1894) @mvorisek
  • Remove obsolete notify and spinner JS code (#1892) @mvorisek
  • HTML5 void tag App::getTag() aware handling (#1884) @mvorisek
  • Drop "atk.version()" JS function (#1885) @mvorisek
  • Always observe Modal changes (#1881) @mvorisek
  • Drop Form::addControls() method (#1871) @mvorisek
  • Improve App::getTag() (#1839) @mvorisek
  • Fix many missing/wrong types (#1831) @mvorisek
  • Rename all properties to camelCase (#1814) @mvorisek
  • Unify Control readOnly property case to camelCase (#1810) @mkrecek234
  • Drop $class param from View constructor (#1791) @mvorisek
  • Adjust renamed "short_name" to "shortName" (#1775) @mvorisek
  • Add/remove specific HTML class /w "class.xxx" seed (#1770) @mvorisek
  • Remove View::id prop in favor of NameTrait::name (#1769) @mvorisek
  • Fix and test nothing is GET sticky globally (#1671) @mvorisek
  • Move SessionTrait from atk4/core and separate handler (#1733) @mvorisek

Other changes

  • Fix Table\Column\Labels for null fields (#1939) @mkrecek234
  • Add support for custom Fomantic-UI Modal.onHidden callback (#1938) @mvorisek
  • Fix public path resolution with symlinks (#1936) @mvorisek
  • Fix "this" in JS not rebound when wrapped in JS function twice (#1930) @mvorisek
  • Fix Card with entity action, entity must not reload (#1929) @mvorisek
  • Fix lister with JS paginator and JS table events (#1933) @mvorisek
  • Throw early to prevent corrupted JS modal manager state (#1931) @mvorisek
  • Fix modal error handling when opening (#1925) @mvorisek
  • Fix DropdownCascade /w custom row render callback (#1926) @samsouthardjr
  • Fix input tag boolean HTML attribute render (#1923) @mvorisek
  • Fix no "use script" for empty/external script tag (#1922) @mvorisek
  • No unneeded/nested jQuery.ready() wrap (#1919) @mvorisek
  • Enforce global Fomantic-UI settings (#1917) @mvorisek
  • Minor changes, fix phpstan for the latest atk4/data (#1916) @mvorisek
  • Adjust to Field::type not null (#1914) @mvorisek
  • Encode JS strings using single quotes (#1913) @mvorisek
  • Fix modal exception when nested modal is already shown (#1903) @mvorisek
  • Add drag and drop test (#1907) @mvorisek
  • Enable JS strict mode for every script tag (#1906) @mvorisek
  • Fix SQL multiply of 2 bind params in multiline demo for PostgreSQL (#1905) @mvorisek
  • Upgrade vue with unified LF line breaks (#1904) @mvorisek
  • Use non-minified CSS/JS files in Docker demos (#1902) @mvorisek
  • Fix Multiline /w SQL expr (#1818) @mvorisek
  • Fix demos Dockerfile (#1899) @abbadon1334
  • Update JS deps (#1898) @mvorisek
  • Improve jsdoc CS (#1897) @mvorisek
  • Separate public files into css/ and js/ (#1895) @mvorisek
  • Collect JS coverage from Behat testing (#1891) @mvorisek
  • Add non-minified JS files and sourcemaps (#1890) @mvorisek
  • Upgrade to Fomantic-UI v2.9.0 beta 326 (#1866) @mvorisek
  • Validation exception can be rendered only if a form field exists (#1888) @mvorisek
  • Fix accordion section animation smoothness (#1882) @mvorisek
  • Fix implicit control field type (#1878) @mvorisek
  • Fix Behat CoverageUtil for config with no excluded dir (#1876) @mvorisek
  • Unify nowdoc CS (#1874) @mvorisek
  • Bundle external shopify/draggable JS source (#1873) @mvorisek
  • Fix phpunit provider coverage (#1870) @mvorisek
  • Fix ID executor input UI typecast (#1864) @mvorisek
  • Bundle twemoji svg country flags (#1867) @mvorisek
  • Add external Fomantic UI files via "fomantic-ui" package (#1865) @mvorisek
  • Fix nested accordion open (#1863) @mvorisek
  • Fix click event bubbling in Table::onRowClick() II. (#1859) @mkrecek234
  • Fix coverage drop from 1840 PR (#1852) @mvorisek
  • Test CardDeck like Crud (#1851) @mvorisek
  • Fix click event bubbling in Table::onRowClick() (#1655) @ibelar
  • Fix 1836 AccordionSection activate (#1841) @mvorisek
  • Fix Reference::getTheirFieldName getter usage (#1854) @mvorisek
  • Add PHP 8.2 support (#1776) @mvorisek
  • Fix CS v3.11.0 (#1850) @mvorisek
  • Fix CardDeck action /w entity (#1845) @mkrecek234
  • "icon" FUI CSS class is implied by icon component (#1842) @mvorisek
  • Add table column filter support for JSON type (#1747) @DarkSide666
  • Fix coverage static analysis cache and move util for reuse (#1840) @mvorisek
  • Fix filesystem import demo (#1834) @mvorisek
  • Enable phpstan bleading edge and strict rules (#1832) @mvorisek
  • Improve ExecutorFactory and View::add phpstan types (#1830) @mvorisek
  • Add imports for commonly used classes (#1829) @mvorisek
  • Fix clickable data UserAction (#1828) @mvorisek
  • Adjust atk4/data Model::tryLoad returning null (#1797) @mvorisek
  • Delete Codefresh CI (#1806) @mvorisek
  • Fix '0' instead of '' default value for Lookup (#1816) @mvorisek
  • Minor CS cleanup (#1815) @mvorisek
  • Adjust to renamed data field properties (#1808) @mvorisek
  • Fix some phpstan findings (#1807) @mvorisek
  • Adjust to updated Field::getReference() and renamed Model::getRef() (#1804) @mvorisek
  • Use fixed PHP CS Fixer v3.9.4 (#1803) @mvorisek
  • Do not use broken PHP CS Fixer v3.9.1 (#1801) @mvorisek
  • Adjust for Model persistence getter/setter (#1800) @mvorisek
  • Fix atk4_money typecast /w null and large numbers (#1798) @mvorisek
  • Add custom decimal separator support for atk4_money type (#1763) @mkrecek234
  • Add UI datetime timezone support (#1761) @mvorisek
  • Adjust to the latest atk4/data (#1796) @mvorisek
  • Cherrypick non-functional changes from 1687 PR (#1794) @mvorisek
  • Fix interactive/popup.php cart demo (#1793) @mvorisek
  • Auto discover public URL of local resources (#1788) @mvorisek
  • Test real upload in Behat (#1783) @mvorisek
  • Fix "Unexpected output detected" displayed twice (#1779) @mvorisek
  • Fix nested modal support (#1765) @mvorisek
  • Add support for file drop for Upload control (#1383) @mvorisek
  • Adjust to unimplemented NameTrait from TrackableTrait (#1774) @mvorisek
  • Fix duplicated Modal code when loaded using AJAX (#1771) @mvorisek
  • Remove /index.php (#1767) @mvorisek
  • Fix cb_view param type from #1671 (#1768) @mvorisek
  • Add health check to phpunit webserver (#1766) @mvorisek
  • Add ability to pass defaults to Table\Column\Link formatter (#1755) @DarkSide666
  • Fix placement of table column filter dropdowns (#1752) @DarkSide666
  • Fix phpstan v1.4.7 (#1750) @mvorisek
  • fix visible flag in CardTable (#1745) @DarkSide666
  • Fix Lookup add new button (#1743) @mkrecek234
  • Fix self-signed cert for MSSQL CI (#1739) @mvorisek
  • Use CDN backed domain for stable resources (#1736) @mvorisek
  • Test /w Oracle 18c (#1729) @mvorisek
  • Remove Lock demo Models (#1725) @mvorisek
  • Allow to suppress warning from non-Atk4 files (#1726) @mvorisek
  • Fix write data action usage in demo (#1724) @mvorisek
  • Compact/unify phpdoc CS (#1722) @mvorisek
  • Fix user action usage /w entity (#1721) @mvorisek
3.1.0

What’s Changed

  • Add late output error test (#1719) @mvorisek
  • Remove unsafe script tag replace (#1716) @mvorisek
  • Fix datetime grid filter bug on empty input (#1718) @mkrecek234
  • Fix form2.php demo (#1711) @ibelar
  • Setup Flatpickr locale from ui persistence data (#1714) @mvorisek
  • Handle late error when exception handler is active (#1710) @mvorisek
  • Fix no longer supported native MSSQL DSN for CI (#1712) @mvorisek
  • Add filtering possibility for float and atk4_money DBAL types (#1703) @mkrecek234
  • Add test for unrecoverable App error (#1709) @mvorisek
  • Handle unhandled Callback exception using custom exception (#1702) @mvorisek
  • Adjust to renamed Model::onlyFields and Model::loaded methods (#1701) @mvorisek
  • Adjust to EntityFieldPair generics for Phpstan (#1700) @mvorisek
  • Align with the latest atk4/core (#1697) @mvorisek
  • Allow Overriding table on grid (#1695) @ibelar
  • Fix UI typecast for earlier nullable assertion (#1690) @mvorisek
  • Upgrade phpstan to v1.0 (#1686) @mvorisek
  • Fix DB config for CI webserver started with one env (#1683) @mvorisek
  • Fix Behat for CI (#1682) @mvorisek
  • Do not reuse Oracle connections for CI (#1678) @mvorisek
  • Fix testing with a real DBs (#1675) @mvorisek
  • Add Behat coverage (#1674) @mvorisek
  • Fix all memory leaks (#1672) @mvorisek
  • Fix some phpstan warnings (#1580) @mvorisek
  • Adjust to CS fixer v3.2 rules (#1670) @mvorisek
  • Feature/Panel Action Executor (#1650) @ibelar
  • Fix UI typecasting (#1667) @mvorisek
  • Allow to initialize CascadeDropdown values (#1659) @ibelar
  • Test with PHP 8.1 (#1660) @mvorisek
  • Rename "money" type to "atk4_money" type (#1665) @mvorisek
  • Adjust to no "password" type (#1666) @mvorisek
  • Fix spaces before/after "=>" in comments (#1663) @mvorisek
  • Refactor callback url test (#1662) @mvorisek
  • Fix Lookup form control (#1661) @ibelar
  • Fix Multiline Model validate (#1658) @ibelar
  • Fix #1645 (#1654) @abbadon1334
  • [fix] Id generation when using Executor as Modal View (#1575) @ibelar
  • Feature/Virtual Page Action Executor (#1649) @ibelar
  • Refactor Behat\Context methods (#1652) @ibelar
  • Fix JS lock file and JS CI lint (#1648) @mvorisek
  • Fix debouce for Behat testing (fake jQuery.active) (#1524) @mvorisek
  • Update JS and Fomantic UI to 2.8.8 (#1647) @ibelar
  • Improve memory leak testing (#1642) @mvorisek
  • Bump versions for the next release (#1637) @mvorisek
  • [fix] Js Dependencies (#1636) @ibelar

Breaking Changes

  • Do not return the same object in View::setModel method (#1696) @mvorisek
  • Adjust to non-entity Field only (#1692) @mvorisek
  • Adjust to use DBAL type (#1664) @mvorisek
  • Improve callbacks url generation (#1646) @ibelar
3.0.0

Major Breaking Changes

  • Drop PHP v7.3 support and upgrade CS Fixer to v3 (#1632) @mvorisek
  • Upgrade atk4/data with strict entity model (#1623) @mvorisek

Breaking Changes

Other Changes

  • Distribute Behat Context (#1628) @mvorisek
  • Fix typo (#1633) @JosepBernad
  • Upgrade phpstan to level 6 (#1630) @mvorisek
  • Adjust code for removed Field::reference property (#1626) @mvorisek
  • Adjust code for private Model::data prop (#1624) @mvorisek
  • [fix] Demo lister template (#1622) @ibelar
  • Adjust code for removed Model::newInstance() method (#1621) @DarkSide666
  • Use "dev" version for development (#1620) @mvorisek
2.4.0

This release brings a lot of focus code-sense and hinting. If you are using modern PHP IDE, you will feel benefit of autocompletion almost everywhere.

Magical hintable fields

The hintable support is another major game changer in sense of cleaness and maintainability. Annotate model fields and used them magically as a real properties.

Usage add Model class phpdoc:

/**
 * [@property](https://github.com/property) string   $name   [@Atk4](https://github.com/Atk4)\Field()
 * [@property](https://github.com/property) int      $age    [@Atk4](https://github.com/Atk4)\Field()
 * [@property](https://github.com/property) Standard $mother [@Atk4](https://github.com/Atk4)\RefOne()
 */
class X extends Model
{ ...

Use the properties either as standard value property:

$model->age // instead of  $model->get('age')
$model->age = 25 // instead of $model->set('age', 25)

You will also notice that adding fields in examples is using a different syntax:

$this->addField($this->fieldName()->age); // instead of addField('age');

Major Features

  • Convert hardcoded strings in demos to hintable fields (#1559) @mvorisek

Breaking Changes

  • Feature/Executor refactor (#1550) @ibelar
  • [fix] - Js search and popupService (#1604) @ibelar
  • [fix] VirtualPage (#1602) @ibelar
  • Feature/ Add Lookup to Multiline (#1577) @ibelar

What’s Changed

  • Fix path to /public/ in releases, use CDN (#1619) @mvorisek
  • Update release builder (#1616) @mvorisek
  • Use RefMany, strict checks relaxed in upstream (#1618) @mvorisek
  • Update hintable dep to 1.2.x (#1617) @mvorisek
  • Use loadOne for model from one ref (#1615) @mvorisek
  • [fix] registerExecutor parameter type (#1613) @ibelar
  • Use TraitUtil for trait detection (#1612) @mvorisek
  • Use simpler model->getId() where possible (#1609) @mvorisek
  • Prefix/test also all ID fields (#1595) @mvorisek
  • Use also different actual name (#1593) @mvorisek
  • [fix] VirtualPage inside VirtualPage (#1603) @ibelar
  • [fix] - Demo Tutorial (#1600) @ibelar
  • [fix] - Dropdown cascade (#1599) @ibelar
  • Fix for nice captions (adjust for latest atk4/data) (#1594) @mvorisek
  • Fix autoload for demos with classmap authoritative (#1585) @mvorisek
  • Fix CS/Behat config (#1588) @mvorisek
  • [fix] Demo using containsMany (#1586) @ibelar
  • Update/Upgrade package dependency (#1572) @dependabot
  • Fix for data 819/820 (#1583) @mvorisek
  • Callback accepts \Closure only (#1582) @mvorisek
  • Improve PHPStan to level 5 (#1581) @mvorisek
  • Better hasOne usage (#1579) @mvorisek
  • Fix all non-undefined PHPStan ignores 1/2 (#1554) @mvorisek
  • Fix App::encodeJson regex backtrack limit issue (#1573) @mvorisek
  • Fix strict types in App::getTag() (#1541) @PhilippGrashoff
  • [fix] Multiline Typecase (#1571) @ibelar
  • [fix] Property access for Modal Executor (#1565) @ibelar
  • [fix] ReadMe link (#1566) @ibelar
  • [fix] Lookup add condition after model is set (#1558) @ibelar
  • Requiring atk4/data is enough (#1557) @mvorisek
  • [fix] Card Deck demo (#1552) @ibelar
2.3.5

FC for NS case update II.

2.3.2

FC for NS case update

2.3.1

Fix versioning

2.2.1

Fix dependencies and versioning

2.3.0

Major Features

  • No app/global sticky Callback (#1397) @mvorisek

Breaking Changes

  • Dropdown refactor (#1457) @ibelar
  • Cleanup JsExpression to string/JS (#1466) @mvorisek
  • Refactor Js Atk Bundle eventBus (#1435) @ibelar
  • Make init() methods protected and fix calls to ->invokeInit() (#1428) @mvorisek
  • No app/global sticky Callback (#1397) @mvorisek
  • Rename Upload control URL args (#1417) @mvorisek
  • Add AbstractView and use it as a base class for Callback (#1396) @mvorisek
  • Callback/sticky args refactor (#1377) @ibelar
  • Allow upload multiple (#1380) @mvorisek
  • Callable to closure refactor (#1384) @mvorisek

What’s Changed

  • Fix caching, use raw.githack.com instead of jsdelivr for develop (#1475) @mvorisek
  • Fix composer CS (#1473) @mvorisek
  • Bundle repeatable build JS files (#1470) @mvorisek
  • Feature/add date picker to Multiline (#1464) @ibelar
  • Refactor ScopeBuilder date picker (#1463) @ibelar
  • Fix JS bundle URL escape (#1465) @mvorisek
  • [fix] Behat test when using chunk js file (#1458) @ibelar
  • Add smoke and burn CI testing (#1456) @mvorisek
  • [fix] set defautl path when missing (#1454) @ibelar
  • Catch all errors by App handler incl. php notices (#1453) @mvorisek
  • [fix] - Bundle loading path (#1452) @ibelar
  • [feature] Vue Component loaded dynamically (#1448) @ibelar
  • Fix Multiline component (#1451) @DarkSide666
  • Move setting ScopeBuilder default scope (#1450) @georgehristov
  • Feature/fix scopebuilder (#1449) @DarkSide666
  • [fix] - CascadeDropdown rendering (#1445) @ibelar
  • Improve doc only (#1447) @mvorisek
  • Fix code to not use dropped legacy/array OR (#1446) @mvorisek
  • Update code for dropped magical "id" property from Model (#1442) @mvorisek
  • Update code for updated "id" handling/checking (#1441) @mvorisek
  • Fix/doc attributes and typos (#1443) @georgehristov
  • [fix] attributes layout (#1440) @georgehristov
  • [fix] class declarations in docs (#1439) @georgehristov
  • Fix doc syntax (#1438) @mvorisek
  • Norm phpunit config and CS config (#1436) @mvorisek
  • Fix code for updated Model class (prevent reload with a different record (#1429) @mvorisek
  • Add type validation to factory calls (#1282) @mvorisek
  • [fix] - Js Package bundle (#1430) @ibelar
  • [fix] Dropdown using multiple in read only mode (#1433) @ibelar
  • [fix] Date picker popup style (#1432) @ibelar
  • Enforce industry standard Airbnb JS Coding Standards (#1426) @mvorisek
  • Lint (incl. CS) JS files in GH CI (#1280) @mvorisek
  • Add possibility to change Template class in loadTemplate; clean up App (#1425) @PhilippGrashoff
  • Build and diff HTML in GH CI + fix sync (#1423) @mvorisek
  • Build and diff CSS in GH CI + fix sync (#1424) @mvorisek
  • Fix Model::setOrder() usage (#1422) @mvorisek
  • Do not use compact() function (#1421) @mvorisek
  • Use native and/or in Vue Scope builder internally (#1386) @mvorisek
  • Do not bundle Vue licence file (#1419) @mvorisek
  • Improve comment CS (#1418) @mvorisek
  • Fix code for updated phpunit CodeCoverage constructor (#1416) @mvorisek
  • Render full exception details on ModalExecutor error (#1412) @mvorisek
  • Extract native code instead of string eval in demos (#1408) @mvorisek
  • Fix input form attribute as soon as possible, needed for partial render (#1410) @mvorisek
  • View::_getStickyArgs() returns args incl. from self (#1407) @mvorisek
  • Improve Behat testing - always fail if page contains uncaught exception (#1404) @mvorisek
  • [feature] introduce AboveInput and BelowInput regions for Upload (#1403) @georgehristov
  • [fix] closure variable name (#1402) @georgehristov
  • [fix] usage of array access on model in demo (#1400) @georgehristov
  • [fix] check if any data recalled by FilterModel (#1398) @georgehristov
  • Improve Behat testing and handle all waits using hooks (#1392) @mvorisek
  • Add Behat testing with Firefox (#1389) @mvorisek
  • Test using locally built JS/CSS files (#1391) @mvorisek
  • Move Behat testing to GitHub Actions (#1390) @mvorisek
  • Refactor usages of call_user_func to direct calls (#1387) @mvorisek
  • Introduce FormField\ScopeBuilder (#1127) @georgehristov
  • [fix] Build Query function (#1381) @ibelar
  • [fix] Modal Element reload (#1374) @ibelar
  • [fix] ModalExecutor getControl() (#1373) @ibelar
  • fix composer.json (#1371) @DarkSide666
  • Fix form selector for Lookup with dependency support (#1370) @mvorisek
2.2.0

Major Features

  • Close html tag immediatelly - add nested Form support (#1275) @mvorisek
  • Rename TableColumn NS to Table\Column (#1313) @georgehristov
  • Rename FormField NS to Form\Control (and FormLayout to Form\Layout) (#1311) @georgehristov

Breaking Changes

  • Refactor Template and improve performance and type safety (#1349) @mvorisek
  • Close html tag immediatelly - add nested Form support (#1275) @mvorisek
  • Drop App::dbConnect() method (#1361) @mvorisek
  • Refactor render methods (#1358) @mvorisek
  • Fix PSR class/trait/method naming (#1354) @mvorisek
  • Move Layout\Generic to Layout (#1335) @georgehristov
  • [refactor] model user action executors (#1308) @georgehristov
  • Rename TableColumn NS to Table\Column (#1313) @georgehristov
  • Rename FormField NS to Form\Control (and FormLayout to Form\Layout) (#1311) @georgehristov

What’s Changed

  • Fix composer develop install issue (#1368) @DarkSide666
  • Fix Model::set() with no longer supported array input (#1367) @mvorisek
  • Fix for stricter method prototypes (#1366) @mvorisek
  • Fix for Model::set() no longer supports array (#1364) @mvorisek
  • [feature] - Update Js package dependency (#1362) @ibelar
  • Fix docs for removed App::dbConnect() method (#1363) @mvorisek
  • Rename template dirs to match class NS (#1360) @mvorisek
  • [fix] Virtual page rendering (#1359) @ibelar
  • [feature] Update to Fomantic-UI version 2.8.6 (#1352) @ibelar
  • Update CS for PHP 7.3 (#1357) @mvorisek
  • [fix] CRUD afterDelete hook (#1356) @ibelar
  • [refactor][fix] MultiLine form control (#1355) @ibelar
  • [fix] Table Action Confirmation Message (#1353) @ibelar
  • Move safe "@return bool" phpdoc to code (#1337) @mvorisek
  • try to fix json encode (#1351) @DarkSide666
  • Drop PHP 7.2 support (#1345) @mvorisek
  • Fix not freed objects/references (#1348) @mvorisek
  • Use DockerHub registry instead of CFCR (#1346) @romaninsh
  • [update] use explicit argument names (#1339) @georgehristov
  • Use correct classes in Form\Control\DropdownCascade (#1343) @georgehristov
  • [hotfix] demos using Layout\NavigableInterface instead of Layout\Navigable (#1344) @georgehristov
  • Optimize Travis composer install (#1334) @mvorisek
  • No echo and output buffering in App::run() (#1338) @mvorisek
  • Fixes in docs and inline comments (#1336) @georgehristov
  • Add testing with PHP 8.0 (#1333) @mvorisek
  • fix property names (#1332) @DarkSide666
  • Fix Action button icon (#1331) @DarkSide666
  • Fix FormField/FormLayout rename refactoring (#1329) @georgehristov
  • Fix seed usage - icon without class name, instance as class name (#1330) @mvorisek
  • [fix] Form Section (#1325) @ibelar
  • [fix] Form Conditional Control (#1324) @ibelar
  • fgets can also return false (#1323) @DarkSide666
  • Hotfix string seeds (#1320) @mvorisek
  • Use strict array seed (#1315) @mvorisek
  • [fix] - Table Generic Hook const (#1318) @ibelar
  • Throw standard exception on "callback never reached" error (#1312) @mvorisek
  • Fix Demo - Crud caption for Anonymous class (#1304) @abbadon1334
  • Add phpdoc to anonymous classes in demos (#1303) @mvorisek
  • Cache template files in memory (#1301) @mvorisek
  • Fast testing without webserver (#1277) @mvorisek
  • [fix] Crud sorting and pagination (#1302) @ibelar
  • [fix] File Import Demo (#1299) @ibelar
  • Dump Behat page data on/for (the first) failed step (#1281) @mvorisek
  • Transform SQL demo data to Sqlite and use Sqlite as default for demos (#1294) @mvorisek
2.1.0

Please see 2.1 release announcement here: https://forum.agiletoolkit.org/t/atk-ui-2-1-release/834

Breaking Changes

  • Always convert large (>= 2^53) integers to string in JSON output (#1260) @mvorisek
  • Normalize View->add() to always require a seed class like ->factory() already does (#1238) @mvorisek
  • Remove support of relative class names (#1158) @mvorisek
  • Convert callables to closures and move hook names to constants (#1201) @mvorisek
  • Fix wrong URL fallbacks (#1167) @mvorisek

What’s Changed

  • Test using prod CSS (#1296) @mvorisek
  • Generate JS files in CI/CD (#1178) @romaninsh
  • Refactor demos and add phpdoc for $app from init (#1292) @mvorisek
  • Remove old IE8 CSS compatibility flag (#1293) @mvorisek
  • Fix/demo intro (#1291) @georgehristov
  • [fix] Centered Layout demo (#1285) @ibelar
  • Update CS - require strict types (#1145) @mvorisek
  • Fix demos without dev deps when as a root project (#1287) @mvorisek
  • Fix Docker/web without dev deps (#1286) @mvorisek
  • Refactor demo includes (#1284) @mvorisek
  • Simplify use of Persistence\Array_ constructor (#1205) @mvorisek
  • [fix] Admin - Maestro css (#1269) @ibelar
  • Fix demos autoload if not installed as a main composer project (#1276) @mvorisek
  • Fix inproper seeds merges (#1274) @mvorisek
  • Small normalization changes (#1146) @mvorisek
  • Do not use deprecated properties to check trait presence (#1273) @mvorisek
  • Fix usage of hasXXX(), it now return bool only (#1252) @mvorisek
  • Remove test of disable_functions from Dockerfile (#1272) @mvorisek
  • Remove @throws by CS fixer (#1271) @mvorisek
  • Disable exec (and simillar) functions in demo Docker config (#1231) @mvorisek
  • Fix tests - do not rely on hardcoded/expected names (#1245) @ibelar
  • Delete Makefile (#1268) @mvorisek
  • Fix current_row type mismatches (#1212) @mvorisek
  • Improve Fix/layout switching #1263 (#1264) @mvorisek
  • Delete .github_changelog_generator (#1265) @mvorisek
  • Delete .codeclimate.yml (#1266) @mvorisek
  • Fixed grammatic in Grid items per page (#1267) @mkrecek234
  • Fix/layout switching (#1263) @ibelar
  • Render console exceptions using standard HTML exception renderer (#1246) @mvorisek
  • Few bugfixes (#1261) @DarkSide666
  • Prevent minified files normalization in git (#1249) @mvorisek
  • Delete CHANGELOG.md and build/add it to releases (#1234) @mvorisek
  • Fix missing DIContainerTrait when StaticAddToTrait is used (#1251) @mvorisek
  • Upgrade JQuery to 3.5.1 (#1248) @mvorisek
  • Upgrade to Fomantic UI 2.8.5 (#1240) @ibelar
  • Revert fix demo popup - not needed after atk4/core#220 (#1239) @ibelar
  • Fix exception constructor refactoring (#1247) @mvorisek
  • Refactor exception constructor calls to not use array (#1242) @mvorisek
  • Refactor ::addToWithClassName() to ::addToWithCl() (#1237) @mvorisek
  • ViewTester fixes (#1232) @DarkSide666
  • Emit status code = 500 on error (#1075) @mvorisek
  • fix/Recursive demo (#1230) @ibelar
  • fix/Popup demo (#1229) @ibelar
  • fix demo for tabs (loading other page) (#1226) @romaninsh
  • fix demo scripts (#1228) @DarkSide666
  • fix/ demo grid.php (#1227) @ibelar
  • bypass cache for demo ui site build. (#1223) @romaninsh
  • Add sample content into "file" demo table (#1225) @romaninsh
  • Fix/demos fix (#1224) @ibelar
  • Add NS to demos (#1200) @mvorisek
  • fix action model array access bug (#1222) @DarkSide666
  • Remove obsolete App::normalizeClassNameApp() (#1221) @mvorisek
  • Detect unwanted output before App::outputResponse() (#1220) @mvorisek
  • [feature] Display form field using field name in template (#1216) @ibelar
  • [fix] Crud using action modifier (#1215) @ibelar
  • [fix] Filter Column when using decorator (#1190) @ibelar
  • Always convert large (>= 2^53) integers to string for JS (#1218) @mvorisek
  • [fix] Left menu visibility (#1217) @ibelar
  • use getTitles() (#1213) @DarkSide666
  • fix #1174 - cdn link trailing slash (#1211) @mvorisek
  • Pass value with correct escaping, not embed (#1207) @romaninsh
  • Fix misc NS (#1204) @mvorisek
  • Fix FilterModel/Generic with NameTrait removed from Model (#1208) @mvorisek
  • clean up after #1177 (#1203) @romaninsh
  • Delete agileui.js (#1177) @mvorisek
  • Do not use array like access of Model (#1196) @mvorisek
  • Use MB functions (#1194) @DarkSide666
  • Catch Throwable instead of Exception (#1193) @mvorisek
  • [feature] Allow Modal to render in VirtualPage (#1187) @ibelar
  • Fix script/style escaping in App::getTag() (#1137) @mvorisek
  • [fix] Table link column with model using Date field (#1186) @ibelar
  • Doc: update "Javascript mappings" (#1180) @NotAProfessionalDeveloper
  • Formatters vs Decorators: Cleanup and precisions (#1185) @NotAProfessionalDeveloper
  • [fix] Card Deck Reload on first page (#1183) @ibelar
  • [fix] Css z-index value (#1182) @ibelar
  • [fix] Radio Input Field (#1181) @ibelar
  • Restore files as this is breaking existing ATK installations (#1179) @romaninsh
  • Feature/pipeline js build (#1176) @ibelar
  • Feature/pipeline for deploying ui demo (#1174) @romaninsh
  • Revert "Fix cdn caching for develop" (#1173) @romaninsh
  • [fix] Set proper callback type for right panel content (#1172) @ibelar
  • Fix cdn caching for develop (#1168) @mvorisek
  • Remove phpunit from Travis and report merged coverage from Github Actions (/wo Behat) (#1148) @mvorisek
  • Toast Demo titles and messages are messed up (#1170) @NotAProfessionalDeveloper
  • Fix admin left menu dynamic visibility (#1157) @mvorisek
  • [fix] Reload on Callback (#1155) @ibelar
  • [fix] - Header Menu Size (#1151) @ibelar
  • Fix paths in demos (#1153) @mvorisek
  • Fix doc typo (#1154) @mvorisek
  • Fix atk init (#1152) @mvorisek
  • [fix] Add stop function to ServerEvent js plugin (#1133) @ibelar
  • Delete release.sh if not needed (#1135) @mvorisek
  • Normalize Unit Testing workflow across repos (#1128) @mvorisek
  • Fix - Coverage (#1142) @ibelar
  • Test unit test path (#1140) @ibelar
  • Fix coverage of PR "Reorganize demos file" (#1139) @mvorisek
  • Reorganize demos file (#1122) @ibelar
  • Update Lookup.php (#1130) @mvorisek
  • [fix] Remove Footer Height Rule (#1131) @ibelar
  • [feature] Maestro Layout (#1120) @ibelar
  • Fix getRenderedModals (#1119) @abbadon1334
  • fix missing double backslash in docs (#1125) @georgehristov
  • Simplify locale path getter (#1124) @mvorisek
  • Documentation updates (#1123) @NotAProfessionalDeveloper
  • Feature/implement html decorator (#1121) @DarkSide666
  • enable control over action modal by option to pass defaults array (#1118) @georgehristov
  • App::addStyle should not encode value (#1111) @DarkSide666
  • Remove strange/skipped tests (#1115) @mvorisek
  • Upgrade phpunit (#1101) @mvorisek
  • Fix closure for extended App (#1114) @abbadon1334
  • [feature] - Admin Layout (#1112) @ibelar
  • [fix] CRUD::addModalAction to use appSticky argument on Modal callback (#1109) @ibelar
  • [fix] - Setting value on DropdownCascade (#1100) @ibelar
  • Fix phpunit before full upgrade (#1105) @mvorisek
  • [fix] Add css and js file to public dir (#1106) @ibelar
  • reset release drafter (#1104) @ibelar
  • Feature/release drafter (#1103) @ibelar
  • [feature] - Release drafter js compile (#1102) @ibelar
  • Do not require database for array based CRUD demo (#1094) @mvorisek
  • Remove vim comment (#1099) @mvorisek
  • Fix CI/CD (#1097) @mvorisek
  • [fix] Behat js Callback test (#1096) @ibelar
  • Fix init(), setDefaults(), normalizeClassNameApp() methods headers (#1089) @mvorisek
  • [Feature] Right layout panel (#1085) @ibelar
  • [Fix] Issue #967 (#1090) @ibelar
  • [fix] UserConfirmation executor + Behat test (#1088) @ibelar
  • Documentation updates (#1087) @NotAProfessionalDeveloper
  • Remove App::outputDebug() method (#1064) @mvorisek
  • Improve EOL normalization (#1084) @mvorisek
  • Render all exceptions using App (#1082) @mvorisek
  • Disable caching by default (#1083) @mvorisek
  • Improve HTTP headers output (#1065) @mvorisek
  • [fix] UserAction Modal Id (#1070) @ibelar
  • Display non-Atk exceptions like Atk ones (#1078) @mvorisek
  • Use null coalescing operator instead of isset (#1076) @mvorisek
  • Improve refactorability of Wizard demo (#1073) @mvorisek
  • Fix CS - do not import classes without namespace (#1072) @mvorisek
  • Cleanup coverage testing (#1067) @mvorisek
  • Fix 5th parameter for set_error_handler() handler is deprecated (#1066) @mvorisek
  • Use content type from the source + cleanup of URL methods (#1051) @mvorisek
  • Remove @param phpdoc without type nor comment (#1055) @mvorisek
  • [fix] - Downgrade Fomantic-UI release to 2.7.4 (#1049) @ibelar
  • Convert scalar class names to ::class (#1054) @mvorisek
  • Fix refactorability for "owner" (#1047) @mvorisek
  • Fix set null for non-nullable fields (#1053) @mvorisek
  • Fix phpdoc in Lookup (#1046) @mvorisek
  • Fix demo (#1048) @DarkSide666
  • Updating CDN link to use @2.1.0 (#1038) @github-actions
  • --
  • Add workflow for deploying "ui.agiletoolkit.org" automatically. (#873) @romaninsh
  • fomantic update 2.8.4 (#979) @romaninsh
  • Delete config.yml (#939) @mvorisek
  • Update Grid.php (#1035) @mkrecek234
  • Apply fixes from StyleCI (#1037) @romaninsh
  • [refactor] AutoComplete into Lookup (#1018) @ibelar
  • Fix typo (#1036) @mvorisek
  • [fix] - Allow onDelete or onUpload callback to run within another callback (#1034) @ibelar
  • Fix TableColumn\Labels for null values (#1033) @arrochado
  • [Feature] Dropdown Cascade Form Field (#1012) @ibelar
  • Do not append semicolon to statement when not needed (#1026) @mvorisek
  • [Fix] PHP Notice Bad Index on jsCallback (#1017) @ibelar
  • Add concat spaces (#1019) @mvorisek
  • fix adding of sub-menus (#1016) @georgehristov
  • fix/jQuery var assignment (#1011) @ibelar
  • Improve ->add() - fallback is always absolute class name (#1008) @mvorisek
  • Fix TravisCI/Behat tests (#1007) @mvorisek
  • Refactor ->add() usage to ::addTo() in docs (#1004) @mvorisek
  • Fix hook trait usage (#1003) @mvorisek
  • Refactor ->add() usage to ::addTo() (#991) @mvorisek
  • better support for arguments with model type (#1001) @DarkSide666
  • fix/Delete package-lock json file (#1000) @ibelar
  • fix/Js Package Dependencies (#999) @ibelar
  • tabs should not highlight (#998) @DarkSide666
  • fix issues with Card and CardDeck (#996) @DarkSide666
  • [REFACTOR] rename addHook to onHook (#968) @georgehristov
  • [FEATURE] introduce autocomplete dependency (#951) @georgehristov
  • fix #995, simplify session object in demo (#997) @DarkSide666
  • Add return type hint (#984) @mvorisek
  • Fix missing EOL in text files (#985) @mvorisek
  • Use ::addTo() method in View::add() (#929) @mvorisek
  • Fix typo in form.rst (#988) @mvorisek
  • setLayout -> initLayout (#977) @DarkSide666
  • Some cleanup (#976) @NotAProfessionalDeveloper
  • Implement $sortable property for TableColumn. (#972) @DarkSide666
  • fix/UserAction executor Field value in Preview (#970) @ibelar
  • fix/UserAction Title (#964) @ibelar
  • [FIX] table column actions icon full browser support (#962) @georgehristov
  • [CHORE] use shorthand syntax (#954) @georgehristov
  • [FIX] table column actions icon (#960) @georgehristov
  • [REFACTOR] Menu for flexibility, consistency and one-liner code (#955) @georgehristov
  • [FEATURE] enable use of existing menu for Grid (#959) @georgehristov
  • move typecasting to Field and allow DropDown towork with model field … (#961) @DarkSide666
  • REFACTOR: use array casting and arguments spread (#950) @georgehristov
  • use regex with full string match on SSE response keys (#949) @georgehristov
  • [FIX] CRUD menu unnecessary destruction (#957) @georgehristov
  • Feature/tablecol labels (#958) @DarkSide666
  • [DOCS] explain setting form field default values (#952) @georgehristov
  • Feature/Add properties to force js execution for actions (#953) @ibelar
  • set test web server root to package root directory (#948) @georgehristov
  • Fix/UserAction Validation error (#896) @ibelar
  • Fix selector of remove prompt (#914) @mvorisek
  • Fix/Crud delete action and UserAction (#936) @ibelar
  • Fix includes (#941) @mvorisek
  • Testing PR. (#947) @romaninsh
  • Do not fail-fast PHP test matrix (#937) @mvorisek
  • Fix TravisCI build (#931) @mvorisek
  • fix/Duplicate Url encoding (#945) @ibelar
  • Fix/Filter Popup test (#942) @ibelar
  • Swap conditions, prevent ".." file lookup (#938) @mvorisek
  • Change AutoComplete and Lookup default limit to 100 values (#928) @mvorisek
  • Change Dropdown, Autocomplete and Lookup empty value to Unicode NBSP (#927) @mvorisek
  • Don't render Menu if it's empty (#917) @DarkSide666
  • Fix PHP notice - field can be null (#926) @mvorisek
  • use trait for table tests (#910) @georgehristov
  • Fix/Clear Api Data with all server response (#909) @ibelar
  • use one liner for jQuery selector (#912) @georgehristov
  • Trim search query in Grid component (#915) @mvorisek
  • Update indent in example in README (#906) @mvorisek
  • Implement conditional tags in template (#899) @DarkSide666
  • fix/Demos grid.php (#905) @ibelar
  • Update string quotes to make the code compatible with Netbeans (#901) @mvorisek
  • Fix/Table Popup - Dropdown (#900) @ibelar
  • Add action should respect enabled/disabled switch (#898) @DarkSide666
  • usage of getFields() and fix Card (#892) @DarkSide666
  • [REFACTOR] use same one-liner to shift selector column as on drag handler (#895) @georgehristov
  • Fix/Enable Callback argument to stick at application (#894) @ibelar
  • Fix/CRUD onForm callback (#893) @ibelar
  • Fix missing EOLs in text files (#888) @mvorisek
  • Feature/update readme (#871) @romaninsh
  • fix #850 (#886) @DarkSide666
  • set model on initialization (#884) @georgehristov
  • introduce record specific enabling/disabling of actions in Grid/CRUD (#874) @georgehristov
  • Feature/Card Field default (#883) @ibelar
  • Updating CDN link to use @2.0.4 (#881) @github-actions

Documentation enhancements

2.0.4

What’s Changed

Documentation enhancements

  • Added namespaces to quickstart and file structure example (#857) @bedengler
2.0.3

What’s Changed

2.0.2

What’s Changed

Documentation enhancements

  • Add Instantiate App using DIContainerTrait (#855) @abbadon1334
2.0.0

Major features

  • Implemented User Action support

What’s Changed

  • Releasing 2.0.0 into master (manually) (#859) @romaninsh
  • Change in demo : exit() to $app->callExit() (#854) @abbadon1334
  • Feature/input action (#845) @ibelar
  • Add Github workflows (actions) (#848) @romaninsh
  • Feature/Card Deck using model action (#846) @ibelar
  • Feature/Code Highlight (#849) @ibelar
  • Fix few bugs and add comments (#847) @DarkSide666
  • Feature/refactor crud2 (#835) @romaninsh
  • Add SSE operation with user confirmation example (#843) @acicovic
  • pulling in from atk (#1) @stokkeland
  • Property currency_decimal added to Persistence UI (Money Type) (#840) @stokkeland
  • Feature/Table Menu Action (#833) @ibelar
  • Feature/column user actions (#832) @romaninsh
  • Feature/Refactor View::on() method (#831) @ibelar
  • fix/DropDown Unnecessary isValueRequired property (#826) @ibelar
  • Refactor of User Action Executor (#820) @romaninsh
  • feature/TreeItemSelector Form Field (#812) @ibelar
  • Add Locale class (#819) @abbadon1334
  • #823: Fix a few phpDoc comments. (#824) @Taitava
  • Feature/fix textarea (#822) @romaninsh
  • Fix #814 - useless code in Form.php (#818) @abbadon1334
  • Mutliline: Improve inline docs and comments (#811) @acicovic
  • Fix/MultiLine Improvement (#816) @ibelar
  • Make Escape key clear Grid Search (#815) @acicovic
  • Fix unclickable Autocomplete/Lookup fields (#808) @acicovic
  • fix/#802 Array fields error in form (#804) @ibelar
  • Fix #805 (#806) @karakal
  • Formfields: Add ability to set attributes to Tag (#807) @PhilippGrashoff
  • Add App->catch_error_types to define set_error_handler in App (#803) @abbadon1334
  • Add ability to customize CSS of 'content' div (#795) @acicovic
  • fix/CaughException Layout (#800) @ibelar
  • Bump eslint-utils from 1.4.0 to 1.4.2 in /js (#801) @dependabot
  • Feature/Add Form support for containsMany field using MultiLine (#784) @ibelar
  • add "Is Not" for TableColumn::FilterModel::TypeString (#796) @funyx
  • remove extra spaces from Response Content-Type (#792) @abbadon1334
  • Add target parameter to link() function (#791) @acicovic
  • Remove calls to exit functions and cleanups (#790) @abbadon1334
  • Gowrav vishwakarma ui editable bug (#782) @romaninsh
  • Feature/fix textarea (#783) @DarkSide666
  • Fix #786 - Exception display in app and modals (#789) @acicovic
  • Simplify setStyle method (#788) @DarkSide666
  • Let user overwrite all calendar options (#777) @FabulousGee
  • Fix #651 - Modal fails on js load if a php exception is thrown (#780) @abbadon1334
  • Implement $_POST test for Form (#776) @romaninsh
  • upgrade npm (#774) @romaninsh
  • refactor to use getFields() (#775) @romaninsh
  • Bump lodash from 4.17.11 to 4.17.14 in /js (#773) @dependabot
  • Feature/confirm modal (#770) @ibelar
  • Add support for using afterSuccess and apiConfig in View and Grid (jsReload) (#769) @pkly
  • feature/Form Action Executor (#768) @ibelar
  • Fix #766 (#767) @PhilippGrashoff
  • fix php notice (#762) @DarkSide666
  • fix/#746 Duplicate button and icon id (#747) @ibelar
  • Small changes to templates (form/centered layout) (#750) @pkly
  • Fix/Form::success() (#759) @ibelar
  • Revert "fix #755" (#761) @romaninsh
  • Add Unit test and Fix some issue on TableColumn\ColorRating (#757) @abbadon1334
  • fix #755 (#756) @DarkSide666
  • Fix #629, also add new Callback for custom HTML (#643) @PhilippGrashoff
  • feature/ js Executor for Action (#751) @ibelar
  • fix/Add section with no model (#745) @ibelar
  • fix negative status (#738) @DarkSide666
  • Feature2/cardholder (#744) @romaninsh
  • Added ExternalLink, KeyValue, NoValue, Labels, Tooltip and ColorRating table decorators (#743) @romaninsh
  • Feature2/card (#742) @romaninsh
  • Feature2/integrate actions (#741) @romaninsh
1.7.1

Revert breaking namespace-related commit

The change in the namespace use didn't go that well, so we reverted it from 1.7.1 (revert https://github.com/atk4/ui/pull/702)

1.7.0

In 1.7 we now rely on VueJS for new components and the first component to make use of VieJS is the MultiLine edit.

$f = $app->add('Form');

// Add multiline field and set model.
$ml = $f->addField('ml', ['MultiLine', 'options' => ['color' => 'blue']]);
$ml->setModel($inventory);

For more information see demos/multiline.php.

Also we continue to improve documentaiton and work on bugs. Full list of changes below:

Closed issues:

  • Grid and CRUD is not aware of having menu=>false #720
  • Bug in custom CRUD->itemCreate support #719
  • Upload field dialog opens multiple times #717
  • addFields() doesn't work for forms #695
  • Display Exception in Atk callback #691
  • RawGit is shutting down. The latest example defaults to RawGit shared resources. #685
  • Running jsReload causes sub-modals to multiply in modal->set() #681
  • Semantic applies opacity 2 times on disabled fields #679
  • Lookup field empties itself when resetting #664
  • On Custom Form Layout, Lookup FormField has an empty <label> tag #663
  • Looking for a weekly meeting coordinator #658
  • With Fomantic UI 2.7.2 jsNotify hides at once #647
  • Field error message should disappear on(change) #515

Merged pull requests:

1.6.5

Closed issues:

  • Bad icon and text button vertical alignment #668
  • Incorrect ids for elements #667
  • Width is not applied correctly to elements #656
  • Improvements to Console #392

Merged pull requests:

1.6.4

Merged pull requests:

1.6.3

Closed issues:

  • Table using setSource(): Ability to add custom headline #650
  • Double confirm alert #649
  • Form - create "read-only" field #486

Merged pull requests:

1.6.2

Closed issues:

  • dev-develop branches should require other dev-develop branches for all atk/* repositories #641
  • mink-selenium2-driver #638
  • hasOne relation should use Lookup field instead of DropDown by default #636
  • Template: tryAppend() and tryAppendHTML() woud be nice #626
  • Possible Restriction Solution: custom templates must be defined in vendor atk4/ui #625
  • CRUD and read_only field #620
  • Ternary operator messes up integer with value = 0 in DropDown::getInput() #618
  • Template _top tag doesn't work #610
  • Multiple Modals: Closing second modal by clicking dimmer does not work everywhere in dimmer if second modal is smaller than first one #609
  • Lister need {empty} ability in it's template #606
  • confirm in View->on() only works with Callback, not with jsReload for example #503
  • Font size on tablet screen #485
  • Implement a simple template routing in Agile UI #440
  • Nested Modals #436
  • Integrate ATK with Zend3 #384

Merged pull requests:

1.6.1

Adding new form layouts, toast and switching to selenium for UI tests. Fixed readonly fields, added many tests and upgraded Fomantic-UI version.

Closed issues:

  • Can not tick CheckBox field when it is in group #593
  • Message view Icon placement is strange #592
  • Modal without any action buttons at the bottom still shows action div #583
  • DropDown doesn't open when having showOnFocus=false #580
  • Feature Request: JsReload should be able to set .api parameters (like Form does) #578
  • Disabled fields can still be focused and edited #575
  • Grid sorting memorizes previous sort order in URL #573
  • Columns not sorting if added after setModel #544
  • Calendar form field on('change') event handler not working #521
  • Upload FormField: Setting placeholder via placeholder does not work #483
  • Placeholder is not picked up from Model field ui[placeholder] property #468
  • type='money' is no longer using 'Money' column decorarot #414

Merged pull requests:

1.6.0

Our 1.6 release signifies a switch from a stale Semantic UI CSS framework to a community-supported Fomantic UI fork, version 2.6.2. Calendar widget is now supported natively, various other issues are addressed but, more importantly, Fomantic UI is open for collaboration. We are working with their core maintainers hammy2899, prudho and ColinFrick to implement new modern UI features.

Also now have ability to resize any table, Grid or CRUD:


// Enable reizable columns on the table
$table->resizableColumn();

// Also supports custom callaback (on-resize) and ability to pre-set the width:
$table->resizableColumn(function($j, $w){
    $columnWidths = json_decode($w);
    // store widths somewhere
    return;
}, [200,300,100,100,100]); // default widths

[$table->resizableColumns();](https://agile-ui.readthedocs.io/en/latest/table.html?highlight=table#resizable-columns)


// For Grid or CRUD:
$crud->table->resizableColumn

We also introducing a somewhat experemental "Lookup" field. It is identical to AutoComplete and can work as a stand-in replacement, but supports "filters". For now we are looking for ways to make this field more compact before it becomes part of AutoComplete.


$form = $app->add(new \atk4\ui\Form(['segment']));
$form->add(['Label', 'Add city', 'top attached'], 'AboveFields');

$l = $form->addField('city',['Lookup']);

// will restraint possible city value in droddown base on country and/or language.
$l->addFilter('country', 'Country');
$l->addFilter('language', 'Lang');

//make sure country and language belong to your model.
$l->setModel(new City($db));

Closed issues:

  • Menu->addItem is not using App->url method #565
  • $grid->jsReload() does not show loading indicator #561
  • In CRUD form->error() is not treated correctly #558
  • DropDown with icons don't look nice #514
  • jsNotify->setDuration(0) message is not sown forever #478
  • Paginator should have ability to choose items per page #441

Merged pull requests:

1.5.8
  • Modals now support "null" title. Will remove extra spacing for the header too
  • Modal content height is now 100px minimum
  • Added $app->isJsonRequest(), detects xmlhttprequest and tabs
  • Dynamic and Static tabs now have consistent padding
  • $tabs->addTab()->setActive() can be used to automatically jump to tab on load
  • When using stand-alone $view->render() support for callbacks improved
  • jsModal::setOption() can be used to customize header and label.
1.5.6

Merged pull requests:

  • Fix decorator for boolean fields with enum set #533 (DarkSide666)
  • fix/caughtException in tab #531 (ibelar)
  • feature/Allow customization of container and table in grid. #528 (ibelar)
1.5.7
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
besmartand-pro/php-quality-config
sentix/ai-chatbot
terminal42/code-quality-tools
codifyo/ts-generator-bundle
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity