netzke-core 0.5.0 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG.rdoc +6 -1
- data/README.rdoc +17 -19
- data/Rakefile +1 -1
- data/javascripts/core.js +2 -1
- data/lib/netzke/action_view_ext.rb +1 -1
- data/lib/netzke/base.rb +12 -12
- data/lib/netzke/base_js.rb +2 -2
- data/test/unit/netzke_core_test.rb +5 -5
- metadata +2 -2
data/CHANGELOG.rdoc
CHANGED
@@ -1,4 +1,9 @@
|
|
1
|
-
= v0.5.
|
1
|
+
= v0.5.1 - 2010-02-26
|
2
|
+
* Compatibility with Ext 3.1.1
|
3
|
+
* New: <tt>Netzke.page</tt> object now contains all the widgets declared on the page
|
4
|
+
* Code: replaced (references to) deprecated function names
|
5
|
+
|
6
|
+
= v0.5.0 - 2010-01-10
|
2
7
|
* Compatibility with Ext 3.1.0
|
3
8
|
* API change: Netzke widget's now should be declared directly in the views instead of controllers.
|
4
9
|
* API change: all ExtJS and Netzke JavaScript and styles are now loaded with the help of <tt>netzke_init</tt> helper.
|
data/README.rdoc
CHANGED
@@ -10,19 +10,13 @@ For the latest ("edge") stuff, install as plugin (recommended!):
|
|
10
10
|
|
11
11
|
./script/plugin install git://github.com/skozlov/netzke-core.git
|
12
12
|
|
13
|
-
Otherwise, install as gem
|
13
|
+
Otherwise, install as gem:
|
14
14
|
|
15
|
-
|
16
|
-
|
17
|
-
Install the gem
|
18
|
-
|
19
|
-
sudo gem install netzke-core
|
15
|
+
gem install netzke-core
|
20
16
|
|
21
|
-
|
17
|
+
To generate the migrations for Netzke persistent storage (if you want to use it):
|
22
18
|
|
23
19
|
./script/generate netzke_core
|
24
|
-
|
25
|
-
Run the migrations.
|
26
20
|
|
27
21
|
Netzke assumes that your ExtJS library is in public/extjs (which may be a symbolic link).
|
28
22
|
|
@@ -31,25 +25,29 @@ Here's how to embed a Netzke widget into your Rails view.
|
|
31
25
|
|
32
26
|
1. In your layout, within the "head" tag, use the <tt>netzke_init</tt> helper to include all the necessary JavaScript and styles.
|
33
27
|
|
34
|
-
|
35
|
-
|
36
|
-
2. In
|
28
|
+
<%= netzke_init %>
|
29
|
+
|
30
|
+
2. In config/routes.rb declare the Netzke routes:
|
37
31
|
|
38
|
-
|
39
|
-
|
32
|
+
map.netzke
|
33
|
+
|
34
|
+
3. In your view use the <tt>netzke</tt> helper wherever you want to insert a widget.
|
35
|
+
|
36
|
+
<%= netzke :grid_panel, :model => "User", :columns => [:id, :name, :created_at] %>
|
37
|
+
|
40
38
|
(here we use the GridPanel widget from the netzke-basepack project)
|
41
39
|
|
42
40
|
== More info
|
43
41
|
Introduction to Netzke framework and wiki: http://github.com/skozlov/netzke
|
44
42
|
|
45
|
-
Twitter:
|
43
|
+
Twitter: http://twitter.com/skozlov
|
46
44
|
|
47
|
-
Tutorials:
|
45
|
+
Tutorials: http://blog.writelesscode.com
|
48
46
|
|
49
|
-
Live-demo:
|
47
|
+
Live-demo with sample code: http://netzke-demo.writelesscode.com
|
50
48
|
|
51
|
-
The netzke-basepack project (pre-built full-featured widgets):
|
49
|
+
The netzke-basepack project (pre-built full-featured widgets): http://github.com/skozlov/netzke-basepack
|
52
50
|
|
53
51
|
---
|
54
52
|
|
55
|
-
Copyright (c)
|
53
|
+
Copyright (c) 2008-2010 Sergei Kozlov, released under the MIT license
|
data/Rakefile
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
begin
|
2
2
|
require 'jeweler'
|
3
3
|
Jeweler::Tasks.new do |gemspec|
|
4
|
-
gemspec.version = "0.5.
|
4
|
+
gemspec.version = "0.5.1"
|
5
5
|
gemspec.name = "netzke-core"
|
6
6
|
gemspec.summary = "Build ExtJS/Rails widgets with minimum effort"
|
7
7
|
gemspec.description = "Allows building ExtJS/Rails reusable code in a DRY way"
|
data/javascripts/core.js
CHANGED
@@ -3,7 +3,7 @@ This file gets loaded along with the rest of Ext library at the initial load
|
|
3
3
|
*/
|
4
4
|
|
5
5
|
// Check Ext JS version
|
6
|
-
var requiredExtVersion = "3.1.
|
6
|
+
var requiredExtVersion = "3.1.1";
|
7
7
|
var currentExtVersion = Ext.version;
|
8
8
|
if (requiredExtVersion !== currentExtVersion) {
|
9
9
|
alert("Netzke needs Ext " + requiredExtVersion + ". You have " + currentExtVersion + ".");
|
@@ -13,6 +13,7 @@ if (requiredExtVersion !== currentExtVersion) {
|
|
13
13
|
Ext.BLANK_IMAGE_URL = "/extjs/resources/images/default/s.gif";
|
14
14
|
Ext.ns('Ext.netzke'); // namespace for extensions that depend on Ext
|
15
15
|
Ext.ns('Netzke'); // Netzke namespace
|
16
|
+
Ext.ns('Netzke.page'); // namespace for all widget instantces on the page
|
16
17
|
|
17
18
|
Ext.QuickTips.init();
|
18
19
|
|
@@ -40,7 +40,7 @@ module Netzke
|
|
40
40
|
end
|
41
41
|
|
42
42
|
# Use this helper in your views to embed Netzke widgets. E.g.:
|
43
|
-
# netzke :my_grid, :
|
43
|
+
# netzke :my_grid, :class_name => "GridPanel", :columns => [:id, :name, :created_at]
|
44
44
|
# On how to configure a widget, see documentation for Netzke::Base or/and specific widget
|
45
45
|
def netzke(name, config = {})
|
46
46
|
::ActiveSupport::Deprecation.warn("widget_class_name option is deprecated. Use class_name instead", caller) if config[:widget_class_name]
|
data/lib/netzke/base.rb
CHANGED
@@ -9,13 +9,13 @@ module Netzke
|
|
9
9
|
# netzke :widget_name, configuration_hash
|
10
10
|
#
|
11
11
|
# == Configuration
|
12
|
-
# * <tt>:
|
12
|
+
# * <tt>:class_name</tt> - name of the widget class in the scope of the Netzke module, e.g. "FormPanel".
|
13
13
|
# When a widget is defined in the controller and this option is omitted, widget class is deferred from the widget's
|
14
14
|
# name. E.g.:
|
15
15
|
#
|
16
|
-
# netzke :grid_panel, :
|
16
|
+
# netzke :grid_panel, :model => "User"
|
17
17
|
#
|
18
|
-
# In this case <tt>:
|
18
|
+
# In this case <tt>:class_name</tt> is assumed to be "GridPanel"
|
19
19
|
#
|
20
20
|
# * <tt>:ext_config</tt> - a config hash that is used to create a javascript instance of the widget. Every
|
21
21
|
# configuration that comes here will be available inside the javascript instance of the widget.
|
@@ -27,8 +27,8 @@ module Netzke
|
|
27
27
|
# Examples of configuration:
|
28
28
|
#
|
29
29
|
# netzke :books,
|
30
|
-
# :
|
31
|
-
# :
|
30
|
+
# :class_name => "GridPanel",
|
31
|
+
# :model => "Book", # GridPanel specific option
|
32
32
|
# :persistent_config => false, # don't use persistent config for this instance
|
33
33
|
# :ext_config => {
|
34
34
|
# :icon_cls => 'icon-grid',
|
@@ -36,7 +36,7 @@ module Netzke
|
|
36
36
|
# }
|
37
37
|
#
|
38
38
|
# netzke :form_panel,
|
39
|
-
# :
|
39
|
+
# :model => "User" # FormPanel specific option
|
40
40
|
class Base
|
41
41
|
extend ActiveSupport::Memoizable
|
42
42
|
|
@@ -153,7 +153,7 @@ module Netzke
|
|
153
153
|
# Instance of widget by config
|
154
154
|
def self.instance_by_config(config)
|
155
155
|
::ActiveSupport::Deprecation.warn("widget_class_name option is deprecated. Use class_name instead", caller) if config[:widget_class_name]
|
156
|
-
widget_class = "Netzke::#{config[:class_name] || config[:
|
156
|
+
widget_class = "Netzke::#{config[:class_name] || config[:class_name]}".constantize
|
157
157
|
widget_class.new(config)
|
158
158
|
end
|
159
159
|
|
@@ -362,7 +362,7 @@ module Netzke
|
|
362
362
|
## Dependencies
|
363
363
|
def dependencies
|
364
364
|
@dependencies ||= begin
|
365
|
-
non_late_aggregatees_widget_classes = non_late_aggregatees.values.map{|v| v[:
|
365
|
+
non_late_aggregatees_widget_classes = non_late_aggregatees.values.map{|v| v[:class_name]}
|
366
366
|
(initial_dependencies + non_late_aggregatees_widget_classes << self.class.short_widget_class_name).uniq
|
367
367
|
end
|
368
368
|
end
|
@@ -414,9 +414,9 @@ module Netzke
|
|
414
414
|
aggregatee_config = aggregator.aggregatees[aggr]
|
415
415
|
raise ArgumentError, "No aggregatee '#{aggr}' defined for widget '#{aggregator.global_id}'" if aggregatee_config.nil?
|
416
416
|
::ActiveSupport::Deprecation.warn("widget_class_name option is deprecated. Use class_name instead", caller) if aggregatee_config[:widget_class_name]
|
417
|
-
|
418
|
-
raise ArgumentError, "No
|
419
|
-
widget_class = "Netzke::#{
|
417
|
+
short_widget_class_name = aggregatee_config[:class_name] || aggregatee_config[:class_name]
|
418
|
+
raise ArgumentError, "No class_name specified for aggregatee #{aggr} of #{aggregator.global_id}" if short_widget_class_name.nil?
|
419
|
+
widget_class = "Netzke::#{short_widget_class_name}".constantize
|
420
420
|
|
421
421
|
conf = weak_children_config.
|
422
422
|
deep_merge(aggregatee_config).
|
@@ -430,7 +430,7 @@ module Netzke
|
|
430
430
|
aggregator
|
431
431
|
end
|
432
432
|
|
433
|
-
def
|
433
|
+
def full_class_name(short_name)
|
434
434
|
"Netzke::#{short_name}"
|
435
435
|
end
|
436
436
|
|
data/lib/netzke/base_js.rb
CHANGED
@@ -83,12 +83,12 @@ module Netzke
|
|
83
83
|
|
84
84
|
# instantiating
|
85
85
|
def js_widget_instance
|
86
|
-
%Q{
|
86
|
+
%Q{Netzke.page.#{name.jsonify} = new #{self.class.js_full_class_name}(#{js_config.to_nifty_json});}
|
87
87
|
end
|
88
88
|
|
89
89
|
# rendering
|
90
90
|
def js_widget_render
|
91
|
-
|
91
|
+
%Q{Netzke.page.#{name.jsonify}.render("#{name.to_s.split('_').join('-')}-div");} unless self.class.js_xtype == "netzkewindow"
|
92
92
|
end
|
93
93
|
|
94
94
|
# container for rendering
|
@@ -14,8 +14,8 @@ module Netzke
|
|
14
14
|
|
15
15
|
def initial_aggregatees
|
16
16
|
{
|
17
|
-
:nested_one => {:
|
18
|
-
:nested_two => {:
|
17
|
+
:nested_one => {:class_name => 'NestedWidgetOne'},
|
18
|
+
:nested_two => {:class_name => 'NestedWidgetTwo'}
|
19
19
|
}
|
20
20
|
end
|
21
21
|
|
@@ -37,7 +37,7 @@ module Netzke
|
|
37
37
|
class NestedWidgetTwo < Base
|
38
38
|
def initial_aggregatees
|
39
39
|
{
|
40
|
-
:nested => {:
|
40
|
+
:nested => {:class_name => 'DeepNestedWidget'}
|
41
41
|
}
|
42
42
|
end
|
43
43
|
end
|
@@ -45,7 +45,7 @@ module Netzke
|
|
45
45
|
class DeepNestedWidget < Base
|
46
46
|
def initial_aggregatees
|
47
47
|
{
|
48
|
-
:nested => {:
|
48
|
+
:nested => {:class_name => "VeryDeepNestedWidget"}
|
49
49
|
}
|
50
50
|
end
|
51
51
|
end
|
@@ -142,7 +142,7 @@ class NetzkeCoreTest < ActiveSupport::TestCase
|
|
142
142
|
end
|
143
143
|
|
144
144
|
test "widget instance by config" do
|
145
|
-
widget = Netzke::Base.instance_by_config({:
|
145
|
+
widget = Netzke::Base.instance_by_config({:class_name => 'Widget', :name => 'a_widget'})
|
146
146
|
assert(Widget, widget.class)
|
147
147
|
assert('a_widget', widget.name)
|
148
148
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: netzke-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sergei Kozlov
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-
|
12
|
+
date: 2010-02-26 00:00:00 -03:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|