A very rough todo list for the Netzke 1.0 release (WIP)
- Currently there's an experimental implementation of the (badly named)
netzkeLoadComponentJS method, which allows loading multiple instances of the same child component, providing different configuration options for each instance. I'd like to consolidate this with the "normal" loading method, and thus get this functionality available by default.
- Concatenating JS mixins should be made less error-prone (dangling commas, etc)
- Routing. In the app I'm currently developing there's a need for routing, and I think I came up with a simple and flexible way to use Ext JS's Controller to do just that (I'm able to use nested routes like "#clients/2/orders/1/items").
- Currently all the
componentDSL blocks get evaluated at the moment the container component gets instantiated, which in most cases creates unnecessary overhead in memory and performance. I'd like to get rid of that.
- Rethink component folder structure (probably put components in dedicated folders). Get rid of the need to call c.mixin and c.require in the js_configure DSL method; just pick the files if they are there, as it's needed in 99% of cases anyway.
- Find syntax for passing function name in Ruby, that will be called at the client in the component's scope.
- Make it possible to use CoffeeScript for component's client-side code. UPDATE: probably won't happen, given ES6 is coming.
- Make font awesome icons available to the developer (instead of old-fashioned famfamfam) - based on http://extjs.eu/using-font-icons-in-ext-fontawesome/ UPDATE: won't happen; it is easy enough to use glyphs by configuring actions.
- Make possible define components and actions with the same name (currently it'll have a clash).
- Currently, in order to avoid naming clashes with Ext and developer's custom methods/properties, Netzke names them with the
netzke*prefix, e.g. netzkeLoadComponent. I'd like to cut this prefix down to "nz".
- Replace netzkeFeedback with nzNotify that'll accept different notification styles (alert, info, etc).
- Last but, actually, the toughest: find a way to generate documentation on component's client-side methods.
- Ext JS provides the awesome buffered store, which enables infinite grid scrolling without degraded performance: http://dev.sencha.com/ext/5.1.0/examples/grid/buffered-store.html - I'd like Basepack::Grid to support that out of the box.
- Implement DnD support for Nodes in Tree
- Implement DnD support for records in Grid
- Reduce duplications in generated code for action handlers (e.g. in actioncolumn)
- Rename Grid#strong_default_attr (can't remember why I named it so) to strong_attrs.
- Get rid of the "enable_*" prefix in Grid options like "enable_pagination".
- default_fields_for_form => form_fields
- Clear Github issues.
- Sort out licensing with Sencha (probably need to release under the dual GPLv3/? license as well)
- Write a guest post for their blog on Netzke for some exposure.