netzke-basepack 0.3.8 → 0.3.9

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 CHANGED
@@ -1,3 +1,10 @@
1
+ v0.3.9
2
+ AccordionPanel tests added
3
+ TabPanel works now
4
+ AccordionPanel replaced with more intuitive TabPanel in the configuration window
5
+ Code clean-up by using "single" option to call appLoaded() on "afterlayout"
6
+ Table editor bug fix
7
+
1
8
  v0.3.8
2
9
  Fixing Ext's EditableItem render problem.
3
10
  Filters by default enabled again in GridPanel.
data/Manifest CHANGED
@@ -38,11 +38,11 @@ lib/netzke/wrapper.rb
38
38
  lib/netzke-basepack.rb
39
39
  LICENSE
40
40
  Manifest
41
- netzke-basepack.gemspec
42
41
  Rakefile
43
42
  README.rdoc
44
43
  stylesheets/basepack.css
45
44
  tasks/netzke_basepack_tasks.rake
45
+ test/accordion_panel_test.rb
46
46
  test/app_root/app/controllers/application.rb
47
47
  test/app_root/app/models/book.rb
48
48
  test/app_root/app/models/category.rb
@@ -84,6 +84,7 @@ test/fixtures/genres.yml
84
84
  test/grid_panel_test.rb
85
85
  test/netzke_basepack_test.rb
86
86
  test/schema.rb
87
+ test/tab_panel_test.rb
87
88
  test/test_helper.rb
88
89
  TODO
89
90
  uninstall.rb
@@ -4,7 +4,7 @@ module Netzke
4
4
  #
5
5
  # Features:
6
6
  # * Dynamically loads widgets for the panels that get expanded for the first time
7
- # * Gets loaded along with the widget that is to be put into the active (expanded) panel (saves us a server request)
7
+ # * Is loaded along with the active widget - saves a request to the server
8
8
  #
9
9
  # TODO:
10
10
  # * Stores the last active panel in persistent_config
@@ -18,7 +18,7 @@ module Netzke
18
18
  def js_default_config
19
19
  super.merge({
20
20
  :layout => 'accordion',
21
- :defaults => {:layout => 'fit'}, # all items will be of type Panel with layout 'fit'
21
+ :defaults => {:layout => 'fit'}, # Container's items will be of type Panel with layout 'fit' ("fit-panels")
22
22
  :listeners => {
23
23
  # every item gets an expand event set, which dynamically loads a widget into this item
24
24
  :add => {
@@ -37,7 +37,7 @@ module Netzke
37
37
  # loads widget into the panel if it wasn't loaded yet
38
38
  :load_item_widget => <<-JS.l,
39
39
  function(panel) {
40
- if (!panel.getWidget()) panel.loadWidget(this.id + "__" + panel.containerFor + "__get_widget");
40
+ if (!panel.getWidget()) panel.loadWidget(this.id + "__" + panel.widget + "__get_widget");
41
41
  }
42
42
  JS
43
43
 
@@ -45,8 +45,11 @@ module Netzke
45
45
  function(){
46
46
  // immediately instantiate the active panel
47
47
  var activePanel = this.findById(this.id + "_active");
48
+
48
49
  var activeItemConfig = this.initialConfig[this.initialConfig.expandedItem+"Config"];
49
- if (activeItemConfig) activePanel.add(new Ext.netzke.cache[activeItemConfig.widgetClassName](activeItemConfig));
50
+ if (activeItemConfig) {
51
+ activePanel.add(new Ext.netzke.cache[activeItemConfig.widgetClassName](activeItemConfig));
52
+ }
50
53
  }
51
54
  JS
52
55
  }
@@ -73,9 +76,9 @@ module Netzke
73
76
  end
74
77
 
75
78
  def js_config
76
- expanded_widget_config = config[:items].select{|i| i[:active]}.first
79
+ expanded_widget_config = config[:items].detect{|i| i[:active]}
77
80
  super.merge({
78
- :items => items,
81
+ :items => fit_panels,
79
82
  :expanded_item => expanded_widget_config && expanded_widget_config[:name]
80
83
  })
81
84
  end
@@ -90,17 +93,16 @@ module Netzke
90
93
  res
91
94
  end
92
95
 
93
- # configuration for items (fit-panels)
94
- def items
96
+ # fit-panels - panels of layout 'fit' that will contain the widgets (items)
97
+ def fit_panels
95
98
  res = []
96
99
  config[:items].each_with_index do |item, i|
97
- item_config = {
98
- :id => item[:active] && id_name + '_active',
100
+ res << {
101
+ :id => item[:active] && id_name + '_active', # to mark the fit-panel which will contain the active widget
99
102
  :title => item[:title] || (item[:name] && item[:name].humanize),
100
- :container_for => item[:name], # to know which fit panel will load which widget
103
+ :widget => item[:name], # to know which fit panel will load which widget
101
104
  :collapsed => !(item[:active] || false)
102
105
  }
103
- res << item_config
104
106
  end
105
107
  res
106
108
  end
@@ -4,11 +4,11 @@ module Netzke
4
4
  #
5
5
  # Features:
6
6
  # * dynamic loading of widgets
7
- # * restoring of the last loaded widget
7
+ # * restoring of the last loaded widget (FIXME: not working for now)
8
8
  # * authentification support
9
9
  # * browser history support (press the "Back"-button to go to the previously loaded widget)
10
10
  # * FeedbackGhost-powered feedback
11
- # * aggregation of widget's own menus (TODO: coming soon)
11
+ # * hosting widget's own menus
12
12
  #
13
13
  class BasicApp < Base
14
14
  interface :app_get_widget # to dynamically load the widgets that are defined in initial_late_aggregatees
@@ -44,9 +44,11 @@ module Netzke
44
44
  })
45
45
  end
46
46
 
47
- # Set the event to do some things after the application is completely visible (e.g. to load the initial widget)
48
- def js_listeners
49
- {:afterlayout => {:fn => "this.onAfterLayout".l, :scope => this}}
47
+ # Call appLoaded after the application is completely visible (e.g. load the initial widget, etc)
48
+ def js_after_constructor
49
+ <<-JS.l
50
+ this.on("afterlayout", function(){this.appLoaded();}, this, {single:true});
51
+ JS
50
52
  end
51
53
 
52
54
  # Set the Logout button if Netzke::Base.user is set
@@ -140,14 +142,6 @@ module Netzke
140
142
  }
141
143
  JS
142
144
 
143
- # Work around to fire "appLoaded" event only once
144
- :on_after_layout => <<-JS.l,
145
- function(){
146
- this.un('afterlayout', this.onAfterLayout, this); // avoid multiple calls
147
- this.appLoaded();
148
- }
149
- JS
150
-
151
145
  # Event handler for history change
152
146
  :process_history => <<-JS.l,
153
147
  function(token){
@@ -65,7 +65,7 @@ module Netzke
65
65
  def initial_aggregatees_with_properties
66
66
  res = initial_aggregatees_without_properties
67
67
  # Add the accordion as aggregatee, which in its turn aggregates widgets from the configuration_widgets method
68
- res.merge!(:properties => {:widget_class_name => 'AccordionPanel', :items => configuration_widgets, :ext_config => {:title => false}, :no_caching => true, :late_aggregation => true}) if config[:ext_config][:config_tool]
68
+ res.merge!(:properties => {:widget_class_name => 'TabPanel', :items => configuration_widgets, :ext_config => {:title => false}, :late_aggregation => true}) if config[:ext_config][:config_tool]
69
69
  res
70
70
  end
71
71
 
@@ -1,7 +1,14 @@
1
1
  module Netzke
2
2
  #
3
- # Very experimental
3
+ # TabPanel
4
+ #
5
+ # Features:
6
+ # * Dynamically loads widgets for the tabs that get activated for the first time
7
+ # * Is loaded along with the active widget - saves a request to the server
4
8
  #
9
+ # TODO:
10
+ # * Stores the last active tab in persistent_config
11
+ #
5
12
  class TabPanel < Base
6
13
  def self.js_base_class
7
14
  "Ext.TabPanel"
@@ -10,42 +17,44 @@ module Netzke
10
17
  def self.js_extend_properties
11
18
  {
12
19
  # loads widget into the panel if it wasn't loaded yet
13
- :load_item_widget => <<-JS.l,
20
+ :load_item_widget => <<-JS.l
14
21
  function(panel) {
15
- if (!panel.getWidget()) panel.loadWidget(this.id + "__" + panel.containerFor + "__get_widget");
16
- }
17
- JS
18
-
19
- :on_widget_load => <<-JS.l
20
- function(){
21
- // immediately instantiate the active panel
22
- var activePanel = this.findById(this.id + "_active");
23
- var activeItemConfig = this.initialConfig[this.initialConfig.expandedItem+"Config"];
24
- if (activeItemConfig) activePanel.add(new Ext.netzke.cache[activeItemConfig.widgetClassName](activeItemConfig));
22
+ if (!panel.getWidget()) {
23
+ if (panel.id === this.id+"_active"){
24
+ // active widget only needs to be instantiated, as its class has been loaded already
25
+ var activeItemConfig = this.initialConfig[panel.widget+"Config"];
26
+ panel.add(new Ext.netzke.cache[activeItemConfig.widgetClassName](activeItemConfig));
27
+ panel.doLayout(); // always needed after adding a component
28
+ } else {
29
+ // load the widget from the server
30
+ panel.loadWidget(this.id + "__" + panel.widget + "__get_widget");
31
+ }
32
+ }
25
33
  }
26
34
  JS
27
35
  }
28
36
  end
29
37
 
30
38
  def js_config
31
- active_item_config = config[:items].select{|i| i[:active]}.first
39
+ active_item_config = config[:items].detect{|i| i[:active]}
32
40
  super.merge({
33
- :active_item => active_item_config && active_item_config[:name],
34
- :items => items
41
+ :items => fit_panels,
42
+ :active_tab => active_item_config && id_name + '_active'
35
43
  })
36
44
  end
37
45
 
38
46
  # some configuration normalization
39
47
  def initialize(*args)
40
48
  super
41
-
49
+
50
+ # to remove duplicated active panels
42
51
  seen_active = false
43
52
 
44
53
  config[:items].each_with_index do |item, i|
45
- # if some items are provided without names, give them generated names
54
+ # if the item is provided without a name, give it a generated name
46
55
  item[:name] ||= "item#{i}"
47
56
 
48
- # remove duplucated :active configuration
57
+ # remove duplicated "active" configuration
49
58
  if item[:active]
50
59
  item[:active] = nil if seen_active
51
60
  seen_active = true
@@ -53,7 +62,7 @@ module Netzke
53
62
  end
54
63
  end
55
64
 
56
- # the items are late aggregatees, besides the ones that are marked "active"
65
+ # the items are late aggregatees, besides the one that is configured active
57
66
  def initial_aggregatees
58
67
  res = {}
59
68
  config[:items].each_with_index do |item, i|
@@ -62,34 +71,31 @@ module Netzke
62
71
  end
63
72
  res
64
73
  end
65
-
66
74
 
67
75
  def self.js_default_config
68
76
  super.merge({
69
- :active_tab => 0,
70
- :id_delimiter => "___", # otherwise it conflicts with Netzke
71
- :defaults => {:layout => 'fit'}, # all items will be of type Panel with layout 'fit'
77
+ :id_delimiter => "___", # the default is "__", and it conflicts with Netzke
78
+ :defaults => {:layout => 'fit'}, # all tabs will be Ext.Panel-s with layout 'fit' ("fit-panels")
72
79
  :listeners => {
73
- # every item gets an expand event set, which dynamically loads a widget into this item
80
+ # when tab is activated, its content gets loaded from the server
74
81
  :tabchange => {
75
82
  :fn => <<-JS.l
76
- function(self, tab){
77
- this.loadItemWidget(tab);
78
- // comp.on('expand', this.loadItemWidget, self)
79
- }
83
+ function(self, tab){
84
+ this.loadItemWidget(tab);
85
+ }
80
86
  JS
81
87
  }
82
88
  }
83
89
  })
84
90
  end
85
91
 
86
- def items
92
+ def fit_panels
87
93
  res = []
88
94
  config[:items].each_with_index do |item, i|
89
95
  item_config = {
90
- # :id => item[:active] && id_name + '_active',
96
+ :id => item[:active] && id_name + '_active',
91
97
  :title => item[:title] || (item[:name] && item[:name].humanize),
92
- :container_for => item[:name] # to know which fit panel will load which widget
98
+ :widget => item[:name] # to know which fit-panel will load which widget
93
99
  }
94
100
  res << item_config
95
101
  end
@@ -93,7 +93,7 @@ module Netzke
93
93
 
94
94
  split_region => {
95
95
  :widget_class_name => "FormPanel",
96
- :data_class_name => "User",
96
+ :data_class_name => config[:data_class_name],
97
97
  :region_config => {
98
98
  :width => split_size,
99
99
  :height => split_size,
@@ -2,15 +2,15 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{netzke-basepack}
5
- s.version = "0.3.8"
5
+ s.version = "0.3.9"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Sergei Kozlov"]
9
- s.date = %q{2009-03-27}
9
+ s.date = %q{2009-04-15}
10
10
  s.description = %q{Base Netzke widgets - grid, form, tree, and more}
11
11
  s.email = %q{sergei@writelesscode.com}
12
12
  s.extra_rdoc_files = ["CHANGELOG", "lib/app/models/netzke_form_panel_field.rb", "lib/app/models/netzke_grid_panel_column.rb", "lib/netzke/accordion_panel.rb", "lib/netzke/ar_ext.rb", "lib/netzke/basic_app.rb", "lib/netzke/border_layout_panel.rb", "lib/netzke/configuration_tool.rb", "lib/netzke/container.rb", "lib/netzke/db_fields.rb", "lib/netzke/fields_configurator.rb", "lib/netzke/form_panel.rb", "lib/netzke/form_panel_extras/interface.rb", "lib/netzke/form_panel_extras/javascripts/xcheckbox.js", "lib/netzke/form_panel_extras/javascripts/xdatetime.js", "lib/netzke/form_panel_extras/js_builder.rb", "lib/netzke/grid_panel.rb", "lib/netzke/grid_panel_extras/interface.rb", "lib/netzke/grid_panel_extras/javascripts/check-column.js", "lib/netzke/grid_panel_extras/javascripts/filters.js", "lib/netzke/grid_panel_extras/js_builder.rb", "lib/netzke/panel.rb", "lib/netzke/property_editor.rb", "lib/netzke/property_editor_extras/helper_model.rb", "lib/netzke/tab_panel.rb", "lib/netzke/table_editor.rb", "lib/netzke/tree_panel.rb", "lib/netzke/wrapper.rb", "lib/netzke-basepack.rb", "LICENSE", "README.rdoc", "tasks/netzke_basepack_tasks.rake", "TODO"]
13
- s.files = ["CHANGELOG", "generators/netzke_basepack/netzke_basepack_generator.rb", "generators/netzke_basepack/USAGE", "generators/netzke_form_panel/netzke_form_panel_generator.rb", "generators/netzke_form_panel/templates/create_netzke_form_panel_fields.rb", "generators/netzke_grid_panel/netzke_grid_panel_generator.rb", "generators/netzke_grid_panel/templates/create_netzke_grid_panel_columns.rb", "init.rb", "install.rb", "javascripts/basepack.js", "lib/app/models/netzke_form_panel_field.rb", "lib/app/models/netzke_grid_panel_column.rb", "lib/netzke/accordion_panel.rb", "lib/netzke/ar_ext.rb", "lib/netzke/basic_app.rb", "lib/netzke/border_layout_panel.rb", "lib/netzke/configuration_tool.rb", "lib/netzke/container.rb", "lib/netzke/db_fields.rb", "lib/netzke/fields_configurator.rb", "lib/netzke/form_panel.rb", "lib/netzke/form_panel_extras/interface.rb", "lib/netzke/form_panel_extras/javascripts/xcheckbox.js", "lib/netzke/form_panel_extras/javascripts/xdatetime.js", "lib/netzke/form_panel_extras/js_builder.rb", "lib/netzke/grid_panel.rb", "lib/netzke/grid_panel_extras/interface.rb", "lib/netzke/grid_panel_extras/javascripts/check-column.js", "lib/netzke/grid_panel_extras/javascripts/filters.js", "lib/netzke/grid_panel_extras/js_builder.rb", "lib/netzke/panel.rb", "lib/netzke/property_editor.rb", "lib/netzke/property_editor_extras/helper_model.rb", "lib/netzke/tab_panel.rb", "lib/netzke/table_editor.rb", "lib/netzke/tree_panel.rb", "lib/netzke/wrapper.rb", "lib/netzke-basepack.rb", "LICENSE", "Manifest", "netzke-basepack.gemspec", "Rakefile", "README.rdoc", "stylesheets/basepack.css", "tasks/netzke_basepack_tasks.rake", "test/app_root/app/controllers/application.rb", "test/app_root/app/models/book.rb", "test/app_root/app/models/category.rb", "test/app_root/app/models/city.rb", "test/app_root/app/models/continent.rb", "test/app_root/app/models/country.rb", "test/app_root/app/models/genre.rb", "test/app_root/config/boot.rb", "test/app_root/config/database.yml", "test/app_root/config/environment.rb", "test/app_root/config/environments/in_memory.rb", "test/app_root/config/environments/mysql.rb", "test/app_root/config/environments/postgresql.rb", "test/app_root/config/environments/sqlite.rb", "test/app_root/config/environments/sqlite3.rb", "test/app_root/config/routes.rb", "test/app_root/db/migrate/20081222033343_create_books.rb", "test/app_root/db/migrate/20081222033440_create_genres.rb", "test/app_root/db/migrate/20081222035855_create_netzke_preferences.rb", "test/app_root/db/migrate/20081223024935_create_categories.rb", "test/app_root/db/migrate/20081223025635_create_countries.rb", "test/app_root/db/migrate/20081223025653_create_continents.rb", "test/app_root/db/migrate/20081223025732_create_cities.rb", "test/app_root/db/migrate/20090102223630_create_netzke_layouts.rb", "test/app_root/db/migrate/20090102223811_create_netzke_grid_panel_columns.rb", "test/app_root/script/console", "test/app_root/vendor/plugins/acts_as_list/init.rb", "test/app_root/vendor/plugins/acts_as_list/lib/active_record/acts/list.rb", "test/app_root/vendor/plugins/acts_as_list/README", "test/ar_ext_test.rb", "test/border_layout_panel_test.rb", "test/console_with_fixtures.rb", "test/fixtures/books.yml", "test/fixtures/categories.yml", "test/fixtures/cities.yml", "test/fixtures/continents.yml", "test/fixtures/countries.yml", "test/fixtures/genres.yml", "test/grid_panel_test.rb", "test/netzke_basepack_test.rb", "test/schema.rb", "test/test_helper.rb", "TODO", "uninstall.rb"]
13
+ s.files = ["CHANGELOG", "generators/netzke_basepack/netzke_basepack_generator.rb", "generators/netzke_basepack/USAGE", "generators/netzke_form_panel/netzke_form_panel_generator.rb", "generators/netzke_form_panel/templates/create_netzke_form_panel_fields.rb", "generators/netzke_grid_panel/netzke_grid_panel_generator.rb", "generators/netzke_grid_panel/templates/create_netzke_grid_panel_columns.rb", "init.rb", "install.rb", "javascripts/basepack.js", "lib/app/models/netzke_form_panel_field.rb", "lib/app/models/netzke_grid_panel_column.rb", "lib/netzke/accordion_panel.rb", "lib/netzke/ar_ext.rb", "lib/netzke/basic_app.rb", "lib/netzke/border_layout_panel.rb", "lib/netzke/configuration_tool.rb", "lib/netzke/container.rb", "lib/netzke/db_fields.rb", "lib/netzke/fields_configurator.rb", "lib/netzke/form_panel.rb", "lib/netzke/form_panel_extras/interface.rb", "lib/netzke/form_panel_extras/javascripts/xcheckbox.js", "lib/netzke/form_panel_extras/javascripts/xdatetime.js", "lib/netzke/form_panel_extras/js_builder.rb", "lib/netzke/grid_panel.rb", "lib/netzke/grid_panel_extras/interface.rb", "lib/netzke/grid_panel_extras/javascripts/check-column.js", "lib/netzke/grid_panel_extras/javascripts/filters.js", "lib/netzke/grid_panel_extras/js_builder.rb", "lib/netzke/panel.rb", "lib/netzke/property_editor.rb", "lib/netzke/property_editor_extras/helper_model.rb", "lib/netzke/tab_panel.rb", "lib/netzke/table_editor.rb", "lib/netzke/tree_panel.rb", "lib/netzke/wrapper.rb", "lib/netzke-basepack.rb", "LICENSE", "Manifest", "Rakefile", "README.rdoc", "stylesheets/basepack.css", "tasks/netzke_basepack_tasks.rake", "test/accordion_panel_test.rb", "test/app_root/app/controllers/application.rb", "test/app_root/app/models/book.rb", "test/app_root/app/models/category.rb", "test/app_root/app/models/city.rb", "test/app_root/app/models/continent.rb", "test/app_root/app/models/country.rb", "test/app_root/app/models/genre.rb", "test/app_root/config/boot.rb", "test/app_root/config/database.yml", "test/app_root/config/environment.rb", "test/app_root/config/environments/in_memory.rb", "test/app_root/config/environments/mysql.rb", "test/app_root/config/environments/postgresql.rb", "test/app_root/config/environments/sqlite.rb", "test/app_root/config/environments/sqlite3.rb", "test/app_root/config/routes.rb", "test/app_root/db/migrate/20081222033343_create_books.rb", "test/app_root/db/migrate/20081222033440_create_genres.rb", "test/app_root/db/migrate/20081222035855_create_netzke_preferences.rb", "test/app_root/db/migrate/20081223024935_create_categories.rb", "test/app_root/db/migrate/20081223025635_create_countries.rb", "test/app_root/db/migrate/20081223025653_create_continents.rb", "test/app_root/db/migrate/20081223025732_create_cities.rb", "test/app_root/db/migrate/20090102223630_create_netzke_layouts.rb", "test/app_root/db/migrate/20090102223811_create_netzke_grid_panel_columns.rb", "test/app_root/script/console", "test/app_root/vendor/plugins/acts_as_list/init.rb", "test/app_root/vendor/plugins/acts_as_list/lib/active_record/acts/list.rb", "test/app_root/vendor/plugins/acts_as_list/README", "test/ar_ext_test.rb", "test/border_layout_panel_test.rb", "test/console_with_fixtures.rb", "test/fixtures/books.yml", "test/fixtures/categories.yml", "test/fixtures/cities.yml", "test/fixtures/continents.yml", "test/fixtures/countries.yml", "test/fixtures/genres.yml", "test/grid_panel_test.rb", "test/netzke_basepack_test.rb", "test/schema.rb", "test/tab_panel_test.rb", "test/test_helper.rb", "TODO", "uninstall.rb", "netzke-basepack.gemspec"]
14
14
  s.has_rdoc = true
15
15
  s.homepage = %q{http://writelesscode.com}
16
16
  s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Netzke-basepack", "--main", "README.rdoc"]
@@ -18,7 +18,7 @@ Gem::Specification.new do |s|
18
18
  s.rubyforge_project = %q{netzke-basepack}
19
19
  s.rubygems_version = %q{1.3.1}
20
20
  s.summary = %q{Base Netzke widgets - grid, form, tree, and more}
21
- s.test_files = ["test/ar_ext_test.rb", "test/border_layout_panel_test.rb", "test/grid_panel_test.rb", "test/netzke_basepack_test.rb"]
21
+ s.test_files = ["test/accordion_panel_test.rb", "test/ar_ext_test.rb", "test/border_layout_panel_test.rb", "test/grid_panel_test.rb", "test/netzke_basepack_test.rb", "test/tab_panel_test.rb"]
22
22
 
23
23
  if s.respond_to? :specification_version then
24
24
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
@@ -0,0 +1,21 @@
1
+ require 'test_helper'
2
+ require 'rubygems'
3
+ require 'netzke-core'
4
+
5
+ class AccordionPanelTest < ActiveSupport::TestCase
6
+
7
+ test "active item" do
8
+ accordion = Netzke::AccordionPanel.new(:items => [{
9
+ :widget_class_name => "Panel"
10
+ },{
11
+ :widget_class_name => "Panel", :name => "second_panel", :active => true
12
+ }])
13
+
14
+ assert_equal(2, accordion.initial_aggregatees.keys.size)
15
+ assert_equal("item0", accordion.aggregatees[:item0][:name])
16
+ assert_equal("second_panel", accordion.aggregatees[:second_panel][:name])
17
+ assert_equal("second_panel", accordion.js_config[:expanded_item])
18
+ assert_equal("Panel", accordion.js_config[:second_panel_config][:widget_class_name])
19
+ end
20
+
21
+ end
@@ -0,0 +1,21 @@
1
+ require 'test_helper'
2
+ require 'rubygems'
3
+ require 'netzke-core'
4
+
5
+ class TabPanelTest < ActiveSupport::TestCase
6
+
7
+ test "active item" do
8
+ tab_panel = Netzke::TabPanel.new(:items => [{
9
+ :widget_class_name => "Panel"
10
+ },{
11
+ :widget_class_name => "Panel", :name => "second_panel", :active => true
12
+ }])
13
+
14
+ assert_equal(2, tab_panel.initial_aggregatees.keys.size)
15
+ assert_equal("item0", tab_panel.aggregatees[:item0][:name])
16
+ assert_equal("second_panel", tab_panel.aggregatees[:second_panel][:name])
17
+ assert(tab_panel.aggregatees[:second_panel][:active])
18
+ assert_equal("Panel", tab_panel.js_config[:second_panel_config][:widget_class_name])
19
+ end
20
+
21
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: netzke-basepack
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.8
4
+ version: 0.3.9
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: 2009-03-27 00:00:00 +01:00
12
+ date: 2009-04-15 00:00:00 -04:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -116,11 +116,11 @@ files:
116
116
  - lib/netzke-basepack.rb
117
117
  - LICENSE
118
118
  - Manifest
119
- - netzke-basepack.gemspec
120
119
  - Rakefile
121
120
  - README.rdoc
122
121
  - stylesheets/basepack.css
123
122
  - tasks/netzke_basepack_tasks.rake
123
+ - test/accordion_panel_test.rb
124
124
  - test/app_root/app/controllers/application.rb
125
125
  - test/app_root/app/models/book.rb
126
126
  - test/app_root/app/models/category.rb
@@ -162,9 +162,11 @@ files:
162
162
  - test/grid_panel_test.rb
163
163
  - test/netzke_basepack_test.rb
164
164
  - test/schema.rb
165
+ - test/tab_panel_test.rb
165
166
  - test/test_helper.rb
166
167
  - TODO
167
168
  - uninstall.rb
169
+ - netzke-basepack.gemspec
168
170
  has_rdoc: true
169
171
  homepage: http://writelesscode.com
170
172
  post_install_message:
@@ -197,7 +199,9 @@ signing_key:
197
199
  specification_version: 2
198
200
  summary: Base Netzke widgets - grid, form, tree, and more
199
201
  test_files:
202
+ - test/accordion_panel_test.rb
200
203
  - test/ar_ext_test.rb
201
204
  - test/border_layout_panel_test.rb
202
205
  - test/grid_panel_test.rb
203
206
  - test/netzke_basepack_test.rb
207
+ - test/tab_panel_test.rb