In this version we focus on high-level components: Wizard, Console, ProgressBar, AutoComplete field, Lister, Radio field and necessary modifications to implement Login add-on.
For detailed explanation read this article: https://medium.com/@romaninsh/atk-newsletter-1-ui-1-4-released-cb7b84fc12c8.
Implemented enhancements:
- Modal::show() arguments. #255
- Implement session memorize #116
- Feature/implement wizard #305 (romaninsh)
Fixed bugs:
- Adding child and re-rendering has no effect #296
- CRUD edit form is broken #295
- form2 demo page is bad #290
- Feature/fix 295 #297 (romaninsh)
- Fix implementation of Radio field #292 (romaninsh)
Closed issues:
- Label->link() unneccessary #330
- AutoComplete does not work if model id_field != 'id' or title_field' != name #327
- Can not move Modal window by dragging of its title bar #323
- Form error reloads in new popup window #318
- Form does not handle integer fields set to 0 correctly #317
- Paginator with self-reloading option is broken after change to CallbackLater #313
- Implement Upload Field for form #304
- even though $console->send() is documented, it's not implemented. #302
- CRUD values from model don't propagate to boolean and dropdown values #288
- AutoComplete ignores model conditions until input is done #282
- when URL omits
index.php
URL detection is working incorrectly. #279 - Create example with header/footer row in table #276
- [Epic] - Console #275
- [Epic] - progress bar #274
- [Epic] Wizard #273
- Console and Progress-bar #160
- TableColumn\Template not supporting HTML #135
- Minor Improvements to jsReload #75
- add lister documentation #27
- integrate selenium testsuite #9
Merged pull requests:
- fix jsCallback catch on Validation Exception #347 (ibelar)
- Doc/upload field #346 (ibelar)
- Feature/api redirect #345 (romaninsh)
- Updating readme for 1.4 #344 (romaninsh)
- fix tab callback #343 (romaninsh)
- Add View::jsReload() #341 (romaninsh)
- it's better to call getter method not access property directly #340 (DarkSide666)
- implement progress bar #337 (romaninsh)
- feature/Autocomplete-with-dropdown-settings #335 (ibelar)
- feature/Modal observes changes #334 (ibelar)
- Implement $view->url() functionality as per #307 #333 (romaninsh)
- fix #330 #332 (DarkSide666)
- feature/Error-Modal-Rev(fix#318) #331 (ibelar)
- fix #327: title_field and id_field #328 (PhilippGrashoff)
- fix/#318 Form error #326 (ibelar)
- Feature/js package #320 (ibelar)
- fix 317 #319 (DarkSide666)
- resolve #313 #314 (romaninsh)
- Fix Hidden type field label display #311 (ibelar)
- Feature/upload field #306 (ibelar)
- Feature/fix 302 #303 (romaninsh)
- Inserted a link to calendar github page in comment #300 (PhilippGrashoff)
- Removed empty first line #299 (PhilippGrashoff)
- Added implementation of Lister #298 (romaninsh)
- Move cloneRegion into lister's init #294 (romaninsh)
- Feature/refactor region population #293 (romaninsh)
- Enhancements of our Form #291 (romaninsh)
- Corrected mistyped "Exception" (was "Exceptino") #287 (PhilippGrashoff)
- Fix/#282-Autocomplete #285 (ibelar)
- Implementing Console #280 (romaninsh)
- Improvements for Tables, CRUDS and few other areas. #277 (romaninsh)
Added $app->dbConnect()
as a simpler way to connect to the database. Some improvements in JS libraries.
Merged pull requests:
- Feature/add dbconnect #353 (romaninsh)
- Feature/js package 1.0.1 #350 (ibelar)
- Fix/demo typo #348 (ibelar)
Closed issues:
- Add one more argument to jsModal() an Modal() for JS callback #364
Merged pull requests:
- relpace QuickSearch with a JS by default #375 (romaninsh)
- Cleaned up button demo #374 (romaninsh)
- Feature/jsSearch-update #371 (ibelar)
- Fix/#364 #270 #368 (ibelar)
- Small cleanups #361 (gartner)
- Fix/#356 Upload Field Set #360 (ibelar)
- Fixed typo #359 (PhilippGrashoff)
This version is focused on dynamic interaction between the browser and your PHP apps. It contains 3 new Components and 3 new Actions and a new Form Field Decorator.
Loader (#246, #250) is a component that calls itself back to load its content. While the content is being generated, your user will see a spinner animation:
$loader = $app->add('Loader');
$loader->set(function($p) {
sleep(2); // or any other slow-loading code.
$p->add('LoremIpsum');
});
There are also ways to trigger and reload the contents as well as passing some arguments in. We include 2 demos for the loader: basic loader demo and practical use example. For additional information, look into Loader Documentation
Next we thought - why not also load content dynamically inside a Modal dialog, so we added this:
$modal = $app->add(['Modal', 'title' => 'Lorem Ipsum load dynamically']);
$modal->set(function ($p) {
sleep(2); // or any other slow-loading code.
$p->add('LoremIpsum');
});
Code is very consistent with the Loader or dynamic definition of Tabs but would open in a modal window. However we wanted to go even further.
What if it would take several seconds for content to load? We used Server-Sent-Events for streaming updates from your PHP code in real-time (#258 #259). Yet it's just as simple to use as anything else in Agile UI:
// see SSE demo for $bar implementation
$button->on('click', $sse->set(function () use ($sse, $bar) {
sleep(0.5);
$sse->send($bar->js()->progress(['percent' => 40]));
sleep(2);
$sse->send($bar->js()->progress(['percent' => 80]));
sleep(1);
return $bar->js()->progress(['percent' => 100]);
}));
In the next release we will include 'ProgressBar' and 'Console' classes that rely on event streaming.
Other additions include:
- AutoComplete field for dynamically loading contents of a drop-down. #245
- Notifyer for flashing success or error messages on top of the screen dynamically. #242
- jsModal Action for opening Modal windows
We also added AutoComplete "Plus" mode. It's a button next to your AutoComplete field which you can click to add new element inside a referenced entity which will then be automatically filled-in. Super-useful!
Lastly - a lot of new documentation and minor fixes. #240 #244 #248 #256 #257
Our Test-suite now includes broser testing. #262 #263
Fixed bug in dependencies, which was requesting behat/mink-zombie-driver as a dependency.
Fixed issues related to PHP 7.2
- Template.php uses depreciated each(). #278
- using url() on index.php not working. #279
- make url() more flexible (for 3rd party integrations), #271
This release includes change to view constructor arguments, huge JavaScript overhaul and clean-up, refactored jsModal implementation, refactor of Table::addColumn() and Table::addField(), integration with Wordpress and a lot of new documentation.
This release was possible thanks to our new contributors:
- Refactored View arguments.
$button = new Button($label, $class)
instead of using arrays. Backwards compatible. - Migrated to Agile Core 1.3 and Agile Data 1.2.1
- Added support for Tabs
- Added notify.js #205
- Add Callback::triggered() method. #226
- Refactored JS Plugin System. ATK now implements: #189, #201, #193, #202
- spinner (link to doc needed)
- reloadView (link to doc needed)
- ajaxec (link to doc needed)
- createModal (link to doc needed)
- Refactored addField() and addColumn() #179 #187 #223 #225
- Documentation improvements:
- Callbacks and Virtual pages #200 (http://agile-ui.readthedocs.io/en/latest/core.html#callbacks-and-virtual-pages)
- README file #196
- Add documentation for icon, image, label, loremipsum, message, tablecolumn, text, decorators. #218
- Fixed problem with CheckBox on a form #130
- Fixed form submission with Enter #173
- Improved form validation #191
- Fix label display when it's 0 #198
- Cleanups #207 #218
- Switched to codecov.io for a more serious coverage reports (will focus on improving those)
- fixed warning in PHP 5.6.x for
function(string $name)
.
Bugfixes #231 #232 #230 #229 #235
- Virtual Page cannot have multiple callbacks
- Grid::addDecorator added to proxy Table::addDecorator
- Field type "boolean" now properly shown on grid/crud (thanks @slava-vishnyakov)
- Virtual Page trigger allows [$obj, 'methd'] callables now
- Added more tests
Bugfixes #234, #238, #239
- Reloader now properly shows error in a popup, if exception occurs.
A massive release containing unimaginable amount of new features, fixes and actually the first version of Agile Data that allows you to actually build nice apps with it.
- Added CRUD component to add, edit, delete and add records to your data sets #105,
- Added Advanced Grid now supporting checkbox column, actions, multiple formatters, anonymous columns, and delete
- .. also Renamed old Grid into Table, #118 #84 #83 #93 #95 #64
- Added QuickSearch #107
- Added Paginator
- Added Form Model, Validation support
- Added Form Fields: TextArea, DropDown
- Added Automated multi-column layout FormLayout\Columns
- Added support for stickyGet #131
- Added jsModal() for dialogs #124 #71
- Added jsReload() with argument support and spinner #51 #66 #78 #79
- Added Message #100
- Added Label #88
- Added Columns #65
- Added JS Library #73
- Form can edit all field types of from Agile Data
- Renamed Grid into Table
- Layouts #123 #113
- Form / Multi-column layout
- Grid / Table Interactions
- Grid / Table+Bar+Search+Paginator
- Grid / Interactivity - Modals
- Crud
- View demo #104
- Message
- Labels
- Menu #96 #97
- Paginator
- Interactivity / Element Reloading
- Interactivity / Modal Dialogs
- Interactivity / Sticky GET
- Interactivity / Recursive Views
- Bugfixes #111, #86, #85
- Upgraded to Agile Core 1.2 #129
- Field->jsInput()
- App->requireJS() #120 #50
- Remaned all .jade files into .pug #89
- Renamed namespace Column into TableColumn
Full diff: https://github.com/atk4/ui/compare/1.0.3...1.1.0
- Use proper CDN for 3rd party CSS/JS code #150
- Add support for 'password' type #143
- Fix bad error with addColumn() when using non-existant field #134
- Option for Money Table Column to hide zero values #152
- Fix reloading bug #149
- Improve exit; support in callbacks #151
- Other bugfixes #133
- Implemented Grid / Table sorting #163
- CRUD look and feel improvements #156
- Added support for passing arguments into on('', function($arg)) from JS
- Bugfixes #164
- Improve UI layout and add responsivitiy #170
- Documentation restructure, new Overview section, many more screenshots #154
- Added support for multiple formatters in Table. You can use 'addColumn' with existing column. #162
- Added type 'text', improve how 'money', date and time appear on a form. #165
- Improve the way hasOne relations are displayed on the form #165 (dropdowns)
- Fix linking to JS libraries in the CDN
- Bugfixes in Menu
- Renamed
$layout->leftMenu
into$layout->menuLeft
to follow principle of "Left/Right" always being last word.
- Improve CDN handling. Using
$app->cdn = false
will disable it.
Probably the last big release before 1.2.x
- Added new Form Validation implementation #177
- Table totals can now include min, max and count #178
- Refactored asset includes (can now be cached locally) #181
- Footer now indicates version
- Fix warning in database demos
- Fix detection of local public files for demos
- Fix Delete button in crud (couldn't be clicked twice)
- Enabled App to have dynamic methods
- Fixed bug in Status column
- Fixed stickyURL #185
- Improved compatibility with custom JS renderers (for wordpress integration)
- Fixed centered layout #186
- "get-assets.php" now creates 'public' folder, usable in your project
- Implement Grid
- Many improvements everywhere
- Simpler execution
- First stable release
- Button::$rightIcon renamed into $iconRight to follow global pattern
- Removed depreciated classes H2, Fields and MiniApp
- Cleaned up demos/button.php
- Added documentation for Button class
- Refactored Button internals (simplified), now uses button.html
- Added comments for a Form
- Cleaned up Grid type-hinting
- Added example for top/bottom attached buttons to Grid.
- You can disable "header" for grid now
Qucik post-release bugfixes
- Implemented Layouts (Admin / Centered) #33
- Created nicer demos
- Implemented js() and on() #20
- Implemented Server-Side JS calls #28
- Implemented Form #29 and #30
- Enhanced documentation
- Implemented Render Tree
- Implemented Template-based Rendering #15
- Implemented Basic View #16
- Implemented Button (based around Semantic UI)
- Implemented JavaScript events
- Advanced JSChains (enclosing, etc) #18
- Implemented Very Basic Layouts
- Initial Release
- Bootstraped Documentation (sphinx-doc)
- Implemented CI