netzke-core 0.7.7 → 0.8.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.travis.yml +1 -2
- data/CHANGELOG.md +572 -0
- data/LICENSE +7 -1
- data/README.md +345 -29
- data/Rakefile +3 -3
- data/app/controllers/netzke_controller.rb +37 -48
- data/config/ci/before-travis.sh +3 -4
- data/javascripts/base.js +86 -150
- data/javascripts/ext.js +180 -210
- data/javascripts/{core_extensions.js → js_extensions.js} +0 -0
- data/lib/netzke-core.rb +16 -6
- data/lib/netzke/base.rb +84 -107
- data/lib/netzke/core.rb +7 -41
- data/lib/netzke/core/action_config.rb +37 -0
- data/lib/netzke/core/actions.rb +123 -0
- data/lib/netzke/core/client_class.rb +252 -0
- data/lib/netzke/core/component_config.rb +12 -0
- data/lib/netzke/core/composition.rb +274 -0
- data/lib/netzke/core/config_to_dsl_delegator.rb +69 -0
- data/lib/netzke/core/configuration.rb +63 -0
- data/lib/netzke/core/css_config.rb +51 -0
- data/lib/netzke/core/dynamic_assets.rb +19 -49
- data/lib/netzke/{embedding.rb → core/embedding.rb} +4 -6
- data/lib/netzke/core/endpoint_response.rb +15 -0
- data/lib/netzke/core/javascript.rb +111 -0
- data/lib/netzke/core/panel.rb +11 -0
- data/lib/netzke/{plugins.rb → core/plugins.rb} +10 -5
- data/lib/netzke/core/railz.rb +4 -0
- data/lib/netzke/{railz → core/railz}/action_view_ext.rb +22 -18
- data/lib/netzke/core/railz/action_view_ext/ext.rb +49 -0
- data/lib/netzke/core/railz/controller_extensions.rb +17 -0
- data/lib/netzke/core/railz/engine.rb +16 -0
- data/lib/netzke/core/railz/routes.rb +10 -0
- data/lib/netzke/core/ruby_ext.rb +5 -0
- data/lib/netzke/core/ruby_ext/array.rb +23 -0
- data/lib/netzke/core/ruby_ext/hash.rb +47 -0
- data/lib/netzke/{core_ext → core/ruby_ext}/string.rb +2 -7
- data/lib/netzke/core/ruby_ext/symbol.rb +13 -0
- data/lib/netzke/{core_ext → core/ruby_ext}/time_with_zone.rb +0 -0
- data/lib/netzke/core/services.rb +130 -0
- data/lib/netzke/core/session.rb +15 -19
- data/lib/netzke/core/state.rb +40 -0
- data/lib/netzke/core/stylesheets.rb +48 -0
- data/lib/netzke/core/version.rb +2 -2
- data/lib/netzke/plugin.rb +8 -11
- data/netzke-core.gemspec +69 -59
- data/test/core_test_app/Gemfile +2 -20
- data/test/core_test_app/Gemfile.lock +65 -74
- data/test/core_test_app/app/components/card_component_loader.rb +4 -4
- data/test/core_test_app/app/components/component_loader.rb +40 -120
- data/test/core_test_app/app/components/component_loader/javascripts/component_loader.js +49 -0
- data/test/core_test_app/app/components/component_with_actions.rb +61 -47
- data/test/core_test_app/app/components/component_with_custom_css.rb +8 -5
- data/test/core_test_app/app/components/component_with_js_mixin.rb +11 -5
- data/test/core_test_app/app/components/component_with_js_mixin/javascripts/extra_one.js +1 -1
- data/test/core_test_app/app/components/component_with_js_mixin/javascripts/extra_two.js +1 -1
- data/test/core_test_app/app/components/component_with_js_mixin/javascripts/method_set_one.js +1 -1
- data/test/core_test_app/app/components/component_with_nested_through.rb +2 -2
- data/test/core_test_app/app/components/component_with_prebuilt_toolbar_control.rb +12 -0
- data/test/core_test_app/app/components/component_with_prebuilt_toolbar_control/javascripts/component_with_prebuilt_toolbar_control.js +12 -0
- data/test/core_test_app/app/components/component_with_required_js.rb +24 -0
- data/test/core_test_app/app/components/configurable_on_class_level.rb +8 -0
- data/test/core_test_app/app/components/dsl_delegated_properties.rb +4 -0
- data/test/core_test_app/app/components/dsl_delegated_properties_base.rb +5 -0
- data/test/core_test_app/app/components/dynamic_tab_panel/javascripts/dynamic_tab_panel.js +2 -2
- data/test/core_test_app/app/components/ext_direct/composite.rb +32 -33
- data/test/core_test_app/app/components/ext_direct/details.rb +2 -4
- data/test/core_test_app/app/components/ext_direct/selector.rb +20 -22
- data/test/core_test_app/app/components/ext_direct/statistics.rb +2 -4
- data/test/core_test_app/app/components/extended_component_with_actions.rb +7 -3
- data/test/core_test_app/app/components/extended_component_with_js_mixin.rb +7 -4
- data/test/core_test_app/app/components/extended_component_with_js_mixin/javascripts/some_method_set.js +1 -1
- data/test/core_test_app/app/components/extended_server_caller.rb +20 -14
- data/test/core_test_app/app/components/hello_world.rb +23 -0
- data/test/core_test_app/app/components/hello_world/javascripts/hello_world.js +12 -0
- data/test/core_test_app/app/components/included.js +2 -2
- data/test/core_test_app/app/components/kinda_complex_component.rb +1 -3
- data/test/core_test_app/app/components/kinda_complex_component/basic_stuff.rb +15 -17
- data/test/core_test_app/app/components/kinda_complex_component/extra_stuff.rb +4 -5
- data/test/core_test_app/app/components/loader_of_component_with_custom_css.rb +14 -5
- data/test/core_test_app/app/components/localized_panel.rb +23 -25
- data/test/core_test_app/app/components/multipane_component_loader.rb +19 -20
- data/test/core_test_app/app/components/nested_component.rb +4 -5
- data/test/core_test_app/app/components/panel_with_plugin.rb +8 -3
- data/test/core_test_app/app/components/panel_with_tools.rb +15 -14
- data/test/core_test_app/app/components/plugin_with_components.rb +20 -12
- data/test/core_test_app/app/components/scoped_components/deep_scoped_components/some_deep_scoped_component.rb +5 -2
- data/test/core_test_app/app/components/scoped_components/extended_scoped_component.rb +5 -2
- data/test/core_test_app/app/components/scoped_components/some_scoped_component.rb +5 -2
- data/test/core_test_app/app/components/server_caller.rb +39 -17
- data/test/core_test_app/app/components/server_caller/javascripts/server_caller.js +42 -0
- data/test/core_test_app/app/components/server_counter.rb +18 -82
- data/test/core_test_app/app/components/server_counter/javascripts/server_counter.js +53 -0
- data/test/core_test_app/app/components/simple_authentication_component.rb +46 -0
- data/test/core_test_app/app/components/simple_component.rb +8 -3
- data/test/core_test_app/app/components/simple_composite.rb +12 -0
- data/test/core_test_app/app/components/simple_form_with_file_upload.rb +49 -0
- data/test/core_test_app/app/components/simple_panel.rb +2 -2
- data/test/core_test_app/app/components/simple_tab_panel.rb +24 -3
- data/test/core_test_app/app/components/simple_window.rb +4 -2
- data/test/core_test_app/app/components/some_composite.rb +77 -48
- data/test/core_test_app/app/components/some_plugin.rb +31 -30
- data/test/core_test_app/app/components/stateful_component.rb +46 -0
- data/test/core_test_app/app/components/stateful_component_with_shared_state.rb +11 -0
- data/test/core_test_app/app/components/window_with_simple_component.rb +14 -0
- data/test/core_test_app/app/views/layouts/application.html.erb +1 -1
- data/test/core_test_app/app/views/simple_rails/multiple_nested.html.erb +7 -19
- data/test/core_test_app/app/views/simple_rails/panel.html.erb +1 -0
- data/test/core_test_app/config/database.yml.travis +3 -5
- data/test/core_test_app/config/environments/production.rb +1 -1
- data/test/core_test_app/config/initializers/netzke.rb +3 -1
- data/test/core_test_app/config/locales/en.yml +9 -4
- data/test/core_test_app/config/locales/es.yml +4 -2
- data/test/core_test_app/config/routes.rb +2 -8
- data/test/core_test_app/db/schema.rb +3 -11
- data/test/core_test_app/features/actions_and_tools.feature +1 -0
- data/test/core_test_app/features/client-server.feature +7 -0
- data/test/core_test_app/features/component_loader.feature +13 -13
- data/test/core_test_app/features/composition.feature +14 -0
- data/test/core_test_app/features/config_to_dsl_delegation.feature +10 -0
- data/test/core_test_app/features/file_inclusion.feature +1 -1
- data/test/core_test_app/features/i18n.feature +4 -4
- data/test/core_test_app/features/js_include.feature +1 -1
- data/test/core_test_app/features/persistence.feature +21 -5
- data/test/core_test_app/features/step_definitions/generic_steps.rb +14 -0
- data/test/core_test_app/features/support/paths.rb +0 -3
- data/test/core_test_app/public/images/icons/accept.png +0 -0
- data/test/core_test_app/public/images/icons/anchor.png +0 -0
- data/test/core_test_app/public/images/icons/tick.png +0 -0
- data/test/core_test_app/spec/action_config_spec.rb +15 -0
- data/test/core_test_app/spec/{component/actions_spec.rb → actions_spec.rb} +38 -36
- data/test/core_test_app/spec/base_spec.rb +35 -0
- data/test/core_test_app/spec/client_class_spec.rb +17 -0
- data/test/core_test_app/spec/component +0 -0
- data/test/core_test_app/spec/composition_spec.rb +118 -0
- data/test/core_test_app/spec/core_ext_spec.rb +3 -14
- data/test/core_test_app/spec/endpoint_response_spec.rb +17 -0
- data/test/core_test_app/spec/javascript_spec.rb +33 -0
- data/test/core_test_app/spec/js_class_config_scope.rb +37 -0
- data/test/core_test_app/spec/panel_spec.rb +11 -0
- data/test/core_test_app/spec/services_spec.rb +16 -0
- data/test/core_test_app/spec/state_spec.rb +20 -0
- data/test/unit/core_ext_test.rb +0 -53
- data/test/unit/netzke_core_test.rb +11 -11
- metadata +76 -62
- data/CHANGELOG.rdoc +0 -325
- data/javascripts/touch.js +0 -58
- data/lib/netzke/actions.rb +0 -107
- data/lib/netzke/composition.rb +0 -224
- data/lib/netzke/config_to_dsl_delegator.rb +0 -43
- data/lib/netzke/configuration.rb +0 -195
- data/lib/netzke/core/masquerading.rb +0 -34
- data/lib/netzke/core_ext.rb +0 -6
- data/lib/netzke/core_ext/array.rb +0 -30
- data/lib/netzke/core_ext/hash.rb +0 -86
- data/lib/netzke/core_ext/symbol.rb +0 -21
- data/lib/netzke/ext_component.rb +0 -25
- data/lib/netzke/inheritance.rb +0 -31
- data/lib/netzke/javascript.rb +0 -382
- data/lib/netzke/javascript/scopes.rb +0 -39
- data/lib/netzke/railz.rb +0 -4
- data/lib/netzke/railz/action_view_ext/ext.rb +0 -64
- data/lib/netzke/railz/action_view_ext/touch.rb +0 -52
- data/lib/netzke/railz/controller_extensions.rb +0 -33
- data/lib/netzke/railz/engine.rb +0 -48
- data/lib/netzke/railz/routes.rb +0 -7
- data/lib/netzke/services.rb +0 -101
- data/lib/netzke/session.rb +0 -54
- data/lib/netzke/state.rb +0 -91
- data/lib/netzke/stylesheets.rb +0 -65
- data/test/core_test_app/app/components/component_with_included_js.rb +0 -16
- data/test/core_test_app/app/components/component_with_session_persistence.rb +0 -35
- data/test/core_test_app/app/components/deprecated/server_caller.rb +0 -20
- data/test/core_test_app/app/components/dynamic_tab_panel.rb +0 -19
- data/test/core_test_app/app/components/hello_world_component.rb +0 -31
- data/test/core_test_app/app/components/touch/hello_world_component.rb +0 -25
- data/test/core_test_app/app/components/touch/server_caller.rb +0 -28
- data/test/core_test_app/app/components/touch/simple_carousel.rb +0 -17
- data/test/core_test_app/app/controllers/touch_controller.rb +0 -6
- data/test/core_test_app/app/helpers/touch_helper.rb +0 -2
- data/test/core_test_app/app/views/layouts/touch.html.erb +0 -13
- data/test/core_test_app/db/migrate/20110110132720_create_netzke_component_states.rb +0 -20
- data/test/core_test_app/features/step_definitions/touch_steps.rb +0 -3
- data/test/core_test_app/features/touch.feature +0 -10
- data/test/core_test_app/gemfiles/rails3_1.gemfile +0 -16
- data/test/core_test_app/gemfiles/rails3_2.gemfile +0 -16
- data/test/core_test_app/spec/component/base_spec.rb +0 -36
- data/test/core_test_app/spec/component/component_spec.rb +0 -20
- data/test/core_test_app/spec/component/composition_spec.rb +0 -132
- data/test/core_test_app/spec/component/configuration_spec.rb +0 -61
- data/test/core_test_app/spec/component/javascript_spec.rb +0 -16
- data/test/core_test_app/spec/component/state_spec.rb +0 -18
@@ -0,0 +1,24 @@
|
|
1
|
+
class ComponentWithRequiredJs < Netzke::Base
|
2
|
+
class_attribute :title
|
3
|
+
self.title = "My title"
|
4
|
+
|
5
|
+
js_configure do |c|
|
6
|
+
c.require "#{File.dirname(__FILE__)}/included.js"
|
7
|
+
c.extend = "Netzke.ComponentWithRequiredJs" # defined in required file
|
8
|
+
c.on_print_message = <<-JS
|
9
|
+
function(){
|
10
|
+
this.updateBodyWithMessage("Some message " + "shown in the body");
|
11
|
+
}
|
12
|
+
JS
|
13
|
+
|
14
|
+
c.active_tab = 0
|
15
|
+
c.title = title
|
16
|
+
end
|
17
|
+
|
18
|
+
action :print_message
|
19
|
+
|
20
|
+
def configure(c)
|
21
|
+
super
|
22
|
+
c.bbar = [:print_message]
|
23
|
+
end
|
24
|
+
end
|
@@ -1,48 +1,47 @@
|
|
1
1
|
module ExtDirect
|
2
2
|
class Composite < Netzke::Base
|
3
|
-
|
4
|
-
|
3
|
+
js_configure do |c|
|
4
|
+
c.layout = :border
|
5
|
+
c.border = true
|
6
|
+
c.init_component = <<-JS
|
7
|
+
function(){
|
8
|
+
this.callParent();
|
9
|
+
|
10
|
+
this.netzkeGetComponent('selector').on('userupdate', function(user){
|
11
|
+
this.setUser(user);
|
12
|
+
this.netzkeGetComponent('details').update();
|
13
|
+
this.netzkeGetComponent('statistics').update();
|
14
|
+
}, this);
|
15
|
+
}
|
16
|
+
JS
|
17
|
+
end
|
5
18
|
|
6
|
-
component :selector
|
19
|
+
component :selector do |c|
|
20
|
+
c.klass = ExtDirect::Selector # a form that will allow us to select a user
|
21
|
+
end
|
7
22
|
|
8
|
-
component :details do
|
9
|
-
|
10
|
-
|
11
|
-
:user => component_session[:user]
|
12
|
-
}
|
23
|
+
component :details do |c|
|
24
|
+
c.klass = ExtDirect::Details # a panel that will display details for the user
|
25
|
+
c.user = component_session[:user]
|
13
26
|
end
|
14
27
|
|
15
|
-
component :statistics do
|
16
|
-
|
17
|
-
|
18
|
-
:user => component_session[:user]
|
19
|
-
}
|
28
|
+
component :statistics do |c|
|
29
|
+
c.klass = ExtDirect::Statistics # a panel that will display statistics for the user
|
30
|
+
c.user = component_session[:user]
|
20
31
|
end
|
21
32
|
|
22
|
-
def
|
23
|
-
super
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
33
|
+
def configure(c)
|
34
|
+
super
|
35
|
+
c.items = [
|
36
|
+
{:region => :north, :height => 100, component: :selector},
|
37
|
+
{:region => :center, component: :details},
|
38
|
+
{:region => :east, :width => 300, :split => true, component: :statistics}
|
39
|
+
]
|
29
40
|
end
|
30
41
|
|
31
|
-
endpoint :set_user do |params|
|
42
|
+
endpoint :set_user do |params, this|
|
32
43
|
component_session[:user] = params
|
33
44
|
end
|
34
45
|
|
35
|
-
js_method :init_component, <<-JS
|
36
|
-
function(){
|
37
|
-
Netzke.classes.ExtDirect.Composite.superclass.initComponent.call(this);
|
38
|
-
|
39
|
-
this.getChildComponent('selector').on('userupdate', function(user){
|
40
|
-
this.setUser(user);
|
41
|
-
this.getChildComponent('details').update();
|
42
|
-
this.getChildComponent('statistics').update();
|
43
|
-
}, this);
|
44
|
-
}
|
45
|
-
JS
|
46
|
-
|
47
46
|
end
|
48
47
|
end
|
@@ -1,31 +1,29 @@
|
|
1
1
|
module ExtDirect
|
2
2
|
class Selector < Netzke::Base
|
3
|
-
|
3
|
+
js_configure do |c|
|
4
|
+
c.extend = "Ext.FormPanel"
|
5
|
+
c.body_padding = 5
|
4
6
|
|
5
|
-
|
7
|
+
c.init_component = <<-JS
|
8
|
+
function(){
|
9
|
+
this.callParent();
|
10
|
+
this.addEvents('userupdate');
|
11
|
+
}
|
12
|
+
JS
|
6
13
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
:bbar => [:update.action]
|
13
|
-
})
|
14
|
+
c.on_update = <<-JS
|
15
|
+
function(){
|
16
|
+
this.fireEvent('userupdate', this.getForm().findField('user').getValue());
|
17
|
+
}
|
18
|
+
JS
|
14
19
|
end
|
15
20
|
|
16
|
-
|
17
|
-
function(){
|
18
|
-
Netzke.classes.ExtDirect.Selector.superclass.initComponent.call(this);
|
19
|
-
this.addEvents('userupdate');
|
20
|
-
}
|
21
|
-
JS
|
22
|
-
|
23
|
-
|
24
|
-
js_method :on_update, <<-JS
|
25
|
-
function(){
|
26
|
-
this.fireEvent('userupdate', this.getForm().findField('user').getValue());
|
27
|
-
}
|
28
|
-
JS
|
21
|
+
action :update
|
29
22
|
|
23
|
+
def configure(c)
|
24
|
+
super
|
25
|
+
c.items = [{:name => "user", :field_label => "User", :xtype => :textfield}]
|
26
|
+
c.bbar = [:update]
|
27
|
+
end
|
30
28
|
end
|
31
29
|
end
|
@@ -1,5 +1,9 @@
|
|
1
1
|
class ExtendedComponentWithActions < ComponentWithActions
|
2
|
-
js_property :bbar, [:another_action
|
2
|
+
js_property :bbar, [:another_action]
|
3
3
|
|
4
|
-
|
5
|
-
|
4
|
+
# Override actions like this
|
5
|
+
def some_action_action(a)
|
6
|
+
super
|
7
|
+
a.icon = :tick
|
8
|
+
end
|
9
|
+
end
|
@@ -1,7 +1,10 @@
|
|
1
1
|
class ExtendedComponentWithJsMixin < ComponentWithJsMixin
|
2
|
-
|
3
|
-
|
2
|
+
js_configure do |c|
|
3
|
+
c.mixin :some_method_set
|
4
|
+
end
|
4
5
|
|
5
|
-
|
6
|
-
|
6
|
+
def configure(c)
|
7
|
+
super
|
8
|
+
c.title = "ExtendedComponentWithJsMixin"
|
9
|
+
end
|
7
10
|
end
|
@@ -1,19 +1,25 @@
|
|
1
1
|
class ExtendedServerCaller < ServerCaller
|
2
|
-
|
2
|
+
def configure(c)
|
3
|
+
super
|
4
|
+
c.title = "Extended Server Caller"
|
5
|
+
end
|
3
6
|
|
4
|
-
js_method :on_bug_server, <<-JS
|
5
|
-
function(){
|
6
|
-
this.callParent();
|
7
|
-
var bottomBar = this.getDockedItems()[1] || this.getDockedItems()[0]; // Hacky-hacky... better way to surely get the bottom bar?
|
8
|
-
bottomBar.add({text: "Added" + " by extended Server Caller"});
|
9
|
-
}
|
10
|
-
JS
|
11
7
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
8
|
+
|
9
|
+
js_configure do |c|
|
10
|
+
c.on_bug_server = <<-JS
|
11
|
+
function(){
|
12
|
+
this.callParent();
|
13
|
+
var bottomBar = this.getDockedItems()[1] || this.getDockedItems()[0]; // Hacky-hacky... better way to surely get the bottom bar?
|
14
|
+
bottomBar.add({text: "Added" + " by extended Server Caller"});
|
15
|
+
}
|
16
|
+
JS
|
17
17
|
end
|
18
18
|
|
19
|
-
|
19
|
+
# Overriding the :whats_up endpoint from ServerCaller
|
20
|
+
endpoint :whats_up do |params, this|
|
21
|
+
super(params, this)
|
22
|
+
|
23
|
+
this.set_title(this.set_title[0] + ", shiny weather")
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
class HelloWorld < Netzke::Base
|
2
|
+
# Configure clint class
|
3
|
+
js_configure do |c|
|
4
|
+
c.title = "Hello World component"
|
5
|
+
c.mixin # mix in methods from hello_world/javascripts/hello_world.js
|
6
|
+
end
|
7
|
+
|
8
|
+
# Actions are used by Ext JS to share functionality and state b/w buttons and menu items
|
9
|
+
# The handler for this action should be called onPingServer by default
|
10
|
+
action :ping_server
|
11
|
+
|
12
|
+
# Self-configure with a bottom toolbar
|
13
|
+
def configure(c)
|
14
|
+
super
|
15
|
+
c.bbar = [:ping_server] # embed the action into bottom toolbar
|
16
|
+
end
|
17
|
+
|
18
|
+
# Endpoint callable from client class
|
19
|
+
endpoint :greet_the_world do |params,this|
|
20
|
+
# call client class' method showGreeting
|
21
|
+
this.show_greeting("Hello World!")
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
{
|
2
|
+
// handler for the ping_server action
|
3
|
+
onPingServer: function(){
|
4
|
+
// calling greet_the_world endpoint
|
5
|
+
this.greetTheWorld();
|
6
|
+
},
|
7
|
+
|
8
|
+
// called by the server as the result of executing the endpoint
|
9
|
+
showGreeting: function(greeting){
|
10
|
+
this.update("Server says: " + greeting);
|
11
|
+
}
|
12
|
+
}
|
@@ -7,29 +7,27 @@ class KindaComplexComponent < Netzke::Base
|
|
7
7
|
action :some_action
|
8
8
|
action :another_action
|
9
9
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
JS
|
10
|
+
js_configure do |c|
|
11
|
+
c.extend = "Ext.tab.Panel"
|
12
|
+
c.active_tab = 0
|
14
13
|
|
15
|
-
|
16
|
-
|
17
|
-
|
14
|
+
# Calling main class' methods is simple
|
15
|
+
c.on_some_action = <<-JS
|
16
|
+
function(){ this.items.last().setTitle("Action triggered"); }
|
17
|
+
JS
|
18
|
+
|
19
|
+
# Another way of defining a JS method
|
20
|
+
c.on_another_action = <<-JS
|
18
21
|
function(){ this.items.first().setTitle("Another action triggered"); }
|
19
22
|
JS
|
20
23
|
end
|
21
|
-
|
22
|
-
js_properties(
|
23
|
-
:active_tab => 0, :bbar => [:some_action.action, :another_action.action]
|
24
|
-
)
|
25
|
-
|
26
|
-
# Instance method, overridden in the ExtraStuff module
|
27
|
-
# config
|
28
24
|
end
|
29
25
|
|
30
|
-
def
|
31
|
-
super
|
26
|
+
def configure(c)
|
27
|
+
super
|
28
|
+
c.bbar = [:some_action, :another_action]
|
29
|
+
c.items = [{:title => "Panel One"}, {:title => "Panel Two"}]
|
32
30
|
end
|
33
31
|
|
34
32
|
end
|
35
|
-
end
|
33
|
+
end
|
@@ -7,10 +7,9 @@ class KindaComplexComponent < Netzke::Base
|
|
7
7
|
end
|
8
8
|
|
9
9
|
# Let's add another tab with a Netzke component in it
|
10
|
-
def
|
11
|
-
|
12
|
-
|
13
|
-
orig
|
10
|
+
def configure(c)
|
11
|
+
super
|
12
|
+
c.items += [{ component: :server_caller }]
|
14
13
|
end
|
15
14
|
end
|
16
|
-
end
|
15
|
+
end
|