-
enhancements
-
No more using
method_missing
for invoking endpoints. -
New “cache” option for ‘netzke_init` which gets passed to `javascript_include_tag` (no support for css caching of this type yet)
-
Netzke dynamic js and css-files such as ext.js, touch.css, now get generated at the application start, and put into “public/netzke”. Solves a long standing problem with serving those files by HTTP servers in some cases. Enables caching naturally.
-
-
enhancements
-
Client-server communication is updated to use Ext.Direct (many thanks to @pschyska)
-
Introduced
js_translate
class method that allows specifying i18n properties used in the JavaScript class -
Better handling of actions i18n
-
New ‘Netzke::Base.class_config_option` method to specify a class-level configuration options for a component, e.g. (in GridPanel): `class_config_option :column_filters_available, true`. This option then can be set in Rails application configuration, e.g.: `config.netzke.basepack.grid_panel.column_filters_available = false`, or directly on `Netzke::Core.config`, e.g.: `Netzke::Core.config.netzke.basepack.grid_panel.column_filters_available = false`.
-
-
enhancements
-
Various fixes for IE
-
Support for Sencha Touch
-
An endpoint can now “call” JavaScript functions that accept multiple parameters, by specifying an array, e.g.:
{:some_js_function => [arg1, arg2]}
-
New API:
js_mixin
method to “mixin” JavaScript objects from external files (see RDocs). -
New JS class
componentLoadMask
property to configure a mask when a component gets dynamically loaded withloadComponent
. Accepts the same configuration as Ext.LoadMask. -
js_include
andcss_include
accept both symbols and strings, where strings would contain full paths to the included file, whereas symbols get expanded to full paths following simple conventions (see RDocs for details). -
Make some of
Netzke::Core
setup happen earlier in the loading process, so that we can safely use it while defining components. -
Performance improvements by memoizing
Base.constantize_class_name
. -
I18n for actions, see
Netzke::Actions
.
-
-
bug fix
-
The “componentload” event now gets fired after a component is dynamically loaded. The handler receives the instance of the loaded component.
-
Feedback does not insert a new div every time being called
-
JS class caching was broken for name-scoped classes
-
When a component was dynamically loaded into a hidden container, it wasn’t shown when the container got shown next time
-
-
enhancements
-
Implemented Netzke.isLoading(), useful for testing
-
Persistence support
-
-
API change
-
endpoint
DSL call now results in a method called <endpoint_name>_endpoint, not just <endpoint_name> (beware when overriding endpoint definitions, or calling endpoint methods on child components) -
Using
api
for endpoint declaration is gone
-
-
The
ext_config
option is back, deprecated.
-
Introduced the Symbol#component method to declare components in the config (instead of now deprecated js_component).
-
Disabled buggy implementation of rendering on-page JS classes in netzke.js instead of main page.
-
Rails3 compatibility, thorough rewrite
-
Much more thorough testing
-
API backward incompatibility
-
ext_config
config level is removed; put all that configuration in the top level -
mentioning actions in the
bbar
,tbar
, etc, should be explicit, e.g.::bbar => [:apply.action, :delete.action]
-
late_aggregatee
is nowlazy_loading
-
aggregatees
are nowcomponents
-
widgets
are nowcomponents
, too -
api
is nowendpoint
-
persistent_config_enabled?
is nowpersistence_enabled?
-
Using the
js_extend_properties
class method in your components in deprecated (and maybe even broken). Usejs_property
(orjs_properties
) andjs_method
instead (see multiple examples in test/rails_app) -
the
load_component_with_cache
endpoint renamed todeliver_component
-
-
New
-
ext
helper in the views to embed any (pure) Ext component into a view -
component
DSL method to declare child components -
config
DSL method to set the configuration of an instance -
action
DSL method to configure actions -
js_method
DSL method to define (public) methods in JS class -
js_property
DSL method to define (public) properties in JS class -
endpoint
DSL method to define server endpoints
-
-
Different deprecations throughout the code
-
Fix: Getting rid of deprecation warnings about tasks not sitting in lib.
-
Ext 3.2.1
-
Fix: Netzke::Base.before_load is now also called for the widgets embedded directly into a view.
-
New: support for external stylesheets.
-
Fix: the “value” column type has been changed to text to prevent migration problems is some cases
-
New: global_persistent_config method allows accessing persistent storage with no owner (widget) assigned
-
New: any widget can now implement
before_api_call
interceptor. If it returns anything but empty hash, it’ll be used as the result of any API call to this widget. The interceptor receives as parameter the name of the API call issued and the arguments. Use it to implement authorization. -
Fix: got the Ext’s state provider out of the way (thank you for all the confusion)
-
Compatibility with Ext 3.1.1
-
New:
Netzke.page
object now contains all the widgets declared on the page -
Code: replaced (references to) deprecated function names
-
Compatibility with Ext 3.1.0
-
API change: Netzke widget’s now should be declared directly in the views instead of controllers.
-
API change: all ExtJS and Netzke JavaScript and styles are now loaded with the help of
netzke_init
helper. -
API change:
persistence_key
option replacespersistent_config_id
option. -
Impr: headers in panels in the “config” mode now show the widget’s global ID.
-
New: required ExtJS version check introduced at initial Netzke load.
-
Depr: :widget_class_name option is deprecated, use :class_name.
-
DRY: now there’s no need to always define “actions” method, use it to override the defaults, which are automatically calculated based on configuration for toolbars/menu.
-
Impr: each generated JS class now has its unique xtype, e.g. “netzkegridpanel”.
-
Fix: FeedbackGhost moved over from netzke-basepack.
-
Fix: Hash#convert_keys and Array#convert_keys in core extensions are now renamed into deep_convert_keys, and now always plainly do what they’re expected to do: recursively convert keys according to given block.
-
Regression: fixing inheritance and caching.
-
FeedbackGhost is too simple to be a Netzke widget (having no server part), so, moved to static JavaScript.
-
API change: Netzke::Base:
id_name
accessor renamed toglobal_id
-
Code: several internal code changes
-
Code: lightly better test coverage
-
New:
Netzke::Base#global_id_by_reference
method -
Compatibility: resolving conflicts with the
api
property in some Ext v3.0 components -
Fix:
deliver_component
was throwing exception when the requested component wasn’t defined -
New:
persistent_config_id
configuration option allows specifying an id by which persistent configuration is identified for the widget. Handy if different homogeneous widgets need to share the same persistent configuration. -
New:
Netzke::Base#persistent_config
method now accepts an optional boolean parameter signalizing that the configuration is global (not bound to a widget) -
Impr: cleaner handling of actions and toolbars; fbar configuration introduced.
-
Impr: calling an API method now provides for the result value (if return by the server) in the callback.
-
Impr: allows name spaced creation of Netzke widgets, e.g. widgets can now be defined under any module under Netzke, not only directly under Netzke.
-
New: support for Ext.Window-based widgets (it’ll call show() on them when the “*_widget_render” helper is used).
-
API change: default handlers for actions and tools are now supposed to be prefixed with “on”. E.g.: if you declare an action named
clear_table
, the handler must be called (in Ruby)on_clear_table
(mapped toonClearTable
in JavaScript). -
Internal: the JavaScript instance now knows if persistent config is enabled (by checking this.persistentConfig).
-
Fix: solving the “Node cannot be inserted at the specified point in the hierarchy” problem by being more strict with duplicated IDs for elements on the same page.
-
Fix: Ext 3.0 compatibility.
-
Impr:
getChildComponent
now allows referring to a widget like this: “parent__parent__some_widget__some_nested_widget”
-
Fix: reworking loadComponent()-related code, closing a security flaw when a malicious browser could send any configuration options to instantiate the widget being loaded.
-
Fix: the API call (at the JavaScript side) was ignoring the callback parameter.
-
Impr: if the array of API points is empty, it’s not added into js_config anymore.
-
New: new testing widgets in netzke_controller.
-
Fix: extra CSS includes now take effect.
-
New: Support for masquerading as “World”. In this mode all the “touched” persistent preferences will be overwritten for all roles and users.
-
Version bumb to force github rebuild the gem (Manifest is now included)
-
Major refactoring.
-
Netzke doesn’t overwrite session anymore to not cause authentication-related problems.
-
Fix: persistent_config_manager can now be set to nil, and it will work fine
-
Refactor: got rid of NetzkeLayout model, now all layouts are stored in netzke_preferences
-
New: persistent_config now has a method for_widget that accepts a block
-
autotest compatibility
-
New: String#to_b converts a string to true/false
-
New: Netzke::Base.session introduced for session data
-
New: weak_children_config and strong_children_config can now be declared by a widget, which specifies weak and strong configuration that every child of this widget will receive (e.g. display/hide configuration tool)
-
Fix: (degradation) flash message is now shown again in case of erroneous attempt to load a widge
-
New: widgets now can check session and session automatically set by Netzke after login/logout
-
Introduction of getOwnerComponent()-method to Ext.Component. It provides the Netzke widget this Component belongs to.
-
Removed dependency on ‘json’ gem.
-
Rails v2.3.2 compatibility.
-
Actions, toolbars and tools reworked for easier configuration.
-
Menus introduced (based on actions).
-
Significant code clean-up.
-
Bug fix (nasty one): Ext.widgetMixIn was getting messed up along with dynamic widget loading.
-
Must work in IE now.
-
Support for extra javascripts and stylesheets per widget.
-
QuickTips get initialized now, as otherwise Ext 2.2.1 doesn’t properly destroy() BoxComponents for me.
-
FeedackGhost is now capable of displaying multiple flash messages.
-
Dependencies slightly refactored.
-
An informative exception added to Base#component_instance.
-
JS-level inheritance enabled.
-
Work-around for the problem with Ext 2.2.1 in loadComponent.
-
Events “<action_id>click” added to the widgets along with the actions.
-
component_missing method added to Netzke::Base - called when a non-existing aggregate of a widget is tried to be invoked
-
Code readability improvements.
-
Minor code restructuring.
-
Some minor improvements.
-
FeedbackGhost will show the feedback on the top of the screen independent of the page scrolling.
-
Ext.Panel#loadComponent will accept null as url to delete the currently loaded widget
-
Bug fix: persistent_config works again
-
js_ext_config instance method added for overwriting
-
Multiuser support
-
Using Rails.logger for logging
-
“config”-class method for every class inheriting Netzke::Base - for class-level configurations
-
Fixed the path to ext-base-min.js for production mode.
-
Also works in Safari now.
-
Some re-factoring and redesign. Now simple compound widgets can be created on the fly in the controller
-
Added ext_widget configuration option to suppress widget’s feedback
-
Support for extra CSS sources, similar to JS
-
NETZKE_BOOT_CONFIG introduced to specify which Netzke functionality should be disabled to reduce the size of /netzke/netzke.
-
FeedbackGhost widget added - invisible widget providing feedback to the user
-
netzke_widget controller class-method renamed into netzke
-
JS-comments now get stripped also from the extra files that get included in the netzke-* gems.
-
Permissions joined js_config
-
Bug fixes
-
Helpers added to facilitate ExtJS/netzke.js inclusion
-
The route defined for netzke_controller
-
netzke.html.erb-layout is not needed anymore, so not produced by the generator
-
Now compliant with Rails’ forgery protection
-
Generators fixed
-
Fixed the bug with <widget>_class_definition returning empty string on sequential loading.
-
Meta: moving from GitHub to RubyForge
-
Inter-widget dependencies code reworked
-
JS-class code generation code slightly reworked
-
Meta: fix outdated Manifest
-
Meta work: replacing underscore with dash in the name
-
Initial release