netzke-basepack 0.3.8 → 0.3.9

Sign up to get free protection for your applications and to get access to all the features.
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