netzke-basepack 0.7.7 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (192) hide show
  1. data/.travis.yml +15 -10
  2. data/{CHANGELOG.rdoc → CHANGELOG.md} +146 -110
  3. data/LICENSE +7 -1
  4. data/README.md +47 -56
  5. data/Rakefile +5 -5
  6. data/config/before-travis.sh +10 -0
  7. data/javascripts/basepack.js +0 -130
  8. data/javascripts/netzkeremotecombo.js +59 -0
  9. data/lib/netzke/basepack.rb +9 -14
  10. data/lib/netzke/basepack/accordion.rb +45 -0
  11. data/lib/netzke/basepack/active_record.rb +12 -0
  12. data/lib/netzke/basepack/active_record/relation_extensions.rb +27 -0
  13. data/lib/netzke/basepack/columns.rb +309 -0
  14. data/lib/netzke/basepack/data_accessor.rb +22 -12
  15. data/lib/netzke/basepack/data_adapters/abstract_adapter.rb +75 -11
  16. data/lib/netzke/basepack/data_adapters/active_record_adapter.rb +154 -49
  17. data/lib/netzke/basepack/fields.rb +162 -0
  18. data/lib/netzke/basepack/form.rb +136 -0
  19. data/lib/netzke/basepack/{form_panel → form}/javascripts/comma_list_cbg.js +0 -1
  20. data/lib/netzke/basepack/{form_panel/javascripts/form_panel.js → form/javascripts/form.js} +20 -26
  21. data/lib/netzke/basepack/{form_panel → form}/javascripts/n_radio_group.js +0 -1
  22. data/lib/netzke/basepack/{form_panel → form}/javascripts/readonly_mode.js +0 -0
  23. data/lib/netzke/basepack/form/services.rb +115 -0
  24. data/lib/netzke/basepack/{form_panel → form}/stylesheets/readonly_mode.css +0 -0
  25. data/lib/netzke/basepack/grid.rb +355 -0
  26. data/lib/netzke/basepack/{grid_panel → grid}/javascripts/advanced_search.js +1 -1
  27. data/lib/netzke/basepack/{grid_panel → grid}/javascripts/check_column_fix.js +0 -0
  28. data/lib/netzke/basepack/{grid_panel → grid}/javascripts/edit_in_form.js +3 -3
  29. data/lib/netzke/basepack/{grid_panel → grid}/javascripts/event_handling.js +5 -2
  30. data/lib/netzke/basepack/{grid_panel/javascripts/grid_panel.js → grid/javascripts/grid.js} +120 -132
  31. data/lib/netzke/basepack/{grid_panel → grid}/javascripts/misc.js +0 -0
  32. data/lib/netzke/basepack/grid/services.rb +216 -0
  33. data/lib/netzke/basepack/item_persistence.rb +44 -0
  34. data/lib/netzke/basepack/item_persistence/events_plugin.rb +47 -0
  35. data/lib/netzke/basepack/{paging_form_panel.rb → paging_form.rb} +24 -30
  36. data/lib/netzke/basepack/{paging_form_panel/javascripts/paging_form_panel.js → paging_form/javascripts/paging_form.js} +2 -4
  37. data/lib/netzke/basepack/query_builder.rb +44 -73
  38. data/lib/netzke/basepack/query_builder/javascripts/query_builder.js +16 -2
  39. data/lib/netzke/basepack/record_form_window.rb +67 -0
  40. data/lib/netzke/basepack/search_panel.rb +22 -24
  41. data/lib/netzke/basepack/search_panel/javascripts/condition_field.js +2 -2
  42. data/lib/netzke/basepack/search_window.rb +47 -53
  43. data/lib/netzke/basepack/simple_app.rb +10 -13
  44. data/lib/netzke/basepack/simple_app/javascripts/simple_app.js +2 -8
  45. data/lib/netzke/basepack/tab_panel.rb +5 -4
  46. data/lib/netzke/basepack/tab_panel/javascripts/tab_panel.js +5 -5
  47. data/lib/netzke/basepack/version.rb +2 -2
  48. data/lib/netzke/basepack/viewport.rb +16 -0
  49. data/lib/netzke/basepack/window.rb +27 -18
  50. data/lib/netzke/basepack/window/javascripts/window.js +7 -1
  51. data/lib/netzke/basepack/wrap_lazy_loaded.rb +18 -18
  52. data/locales/en.yml +40 -24
  53. data/netzke-basepack.gemspec +51 -82
  54. data/stylesheets/basepack.css +0 -41
  55. data/test/basepack_test_app/Gemfile +9 -46
  56. data/test/basepack_test_app/Gemfile.lock +61 -96
  57. data/test/basepack_test_app/app/components/author_form.rb +8 -5
  58. data/test/basepack_test_app/app/components/author_grid.rb +2 -2
  59. data/test/basepack_test_app/app/components/book_form.rb +34 -31
  60. data/test/basepack_test_app/app/components/book_form_with_defaults.rb +6 -7
  61. data/test/basepack_test_app/app/components/book_form_with_file_upload.rb +10 -0
  62. data/test/basepack_test_app/app/components/book_form_with_nested_attributes.rb +5 -6
  63. data/test/basepack_test_app/app/components/book_grid.rb +19 -8
  64. data/test/basepack_test_app/app/components/book_grid_filtering.rb +4 -7
  65. data/test/basepack_test_app/app/components/book_grid_loader.rb +28 -15
  66. data/test/basepack_test_app/app/components/book_grid_with_custom_columns.rb +45 -21
  67. data/test/basepack_test_app/app/components/book_grid_with_default_values.rb +26 -8
  68. data/test/basepack_test_app/app/components/book_grid_with_excluded_columns.rb +11 -0
  69. data/test/basepack_test_app/app/components/book_grid_with_extra_feedback.rb +2 -2
  70. data/test/basepack_test_app/app/components/book_grid_with_extra_filters.rb +7 -6
  71. data/test/basepack_test_app/app/components/book_grid_with_mass_assignment_security.rb +9 -0
  72. data/test/basepack_test_app/app/components/book_grid_with_nested_attributes.rb +9 -9
  73. data/test/basepack_test_app/app/components/book_grid_with_overridden_columns.rb +5 -3
  74. data/test/basepack_test_app/app/components/book_grid_with_paging.rb +6 -8
  75. data/test/basepack_test_app/app/components/book_grid_with_persistence.rb +6 -4
  76. data/test/basepack_test_app/app/components/book_grid_with_scope.rb +6 -0
  77. data/test/basepack_test_app/app/components/book_grid_with_scoped_authors.rb +10 -7
  78. data/test/basepack_test_app/app/components/book_grid_with_virtual_attributes.rb +21 -13
  79. data/test/basepack_test_app/app/components/book_paging_form.rb +21 -0
  80. data/test/basepack_test_app/app/components/book_query_builder.rb +7 -6
  81. data/test/basepack_test_app/app/components/book_with_custom_primary_key_grid.rb +6 -7
  82. data/test/basepack_test_app/app/components/books_bound_to_author.rb +9 -7
  83. data/test/basepack_test_app/app/components/border_layout_panel_with_persistence.rb +12 -0
  84. data/test/basepack_test_app/app/components/double_book_grid.rb +19 -14
  85. data/test/basepack_test_app/app/components/form_without_model.rb +15 -16
  86. data/test/basepack_test_app/app/components/grid_with_initial_sorting.rb +7 -0
  87. data/test/basepack_test_app/app/components/grid_with_inline_data.rb +7 -0
  88. data/test/basepack_test_app/app/components/paging_form_with_search.rb +2 -2
  89. data/test/basepack_test_app/app/components/panel_with_persistent_regions.rb +35 -0
  90. data/test/basepack_test_app/app/components/query_builder.rb +7 -0
  91. data/test/basepack_test_app/app/components/simple_panel.rb +16 -11
  92. data/test/basepack_test_app/app/components/simple_window.rb +7 -6
  93. data/test/basepack_test_app/app/components/some_accordion.rb +18 -0
  94. data/test/basepack_test_app/app/components/some_auth_app.rb +5 -5
  95. data/test/basepack_test_app/app/components/some_border_layout.rb +20 -20
  96. data/test/basepack_test_app/app/components/some_search_panel.rb +6 -0
  97. data/test/basepack_test_app/app/components/some_simple_app.rb +30 -16
  98. data/test/basepack_test_app/app/components/some_tab_panel.rb +18 -15
  99. data/test/basepack_test_app/app/components/user_form.rb +18 -16
  100. data/test/basepack_test_app/app/components/user_form_with_default_fields.rb +5 -6
  101. data/test/basepack_test_app/app/components/user_grid.rb +11 -6
  102. data/test/basepack_test_app/app/components/user_grid_with_customized_form_fields.rb +5 -3
  103. data/test/basepack_test_app/app/components/window_component_loader.rb +25 -21
  104. data/test/basepack_test_app/app/models/address.rb +0 -26
  105. data/test/basepack_test_app/app/models/author.rb +0 -31
  106. data/test/basepack_test_app/app/models/book.rb +1 -42
  107. data/test/basepack_test_app/app/models/book_with_custom_primary_key.rb +1 -23
  108. data/test/basepack_test_app/app/models/role.rb +0 -21
  109. data/test/basepack_test_app/app/models/user.rb +0 -24
  110. data/test/basepack_test_app/app/views/layouts/components.html.erb +1 -1
  111. data/test/basepack_test_app/config/application.rb +1 -1
  112. data/test/basepack_test_app/config/database.yml.travis +2 -6
  113. data/test/basepack_test_app/config/initializers/netzke.rb +1 -6
  114. data/test/basepack_test_app/db/schema.rb +14 -14
  115. data/test/basepack_test_app/features/accordion_panel.feature +2 -2
  116. data/test/basepack_test_app/features/form_panel.feature +7 -7
  117. data/test/basepack_test_app/features/grid_panel.feature +93 -39
  118. data/test/basepack_test_app/features/grid_panel_with_custom_primary_key.feature +2 -1
  119. data/test/basepack_test_app/features/grid_sorting.feature +30 -6
  120. data/test/basepack_test_app/features/paging_form_panel.feature +7 -7
  121. data/test/basepack_test_app/features/persistent_regions.feature +30 -0
  122. data/test/basepack_test_app/features/search_in_grid.feature +5 -5
  123. data/test/basepack_test_app/features/simple_app.feature +6 -7
  124. data/test/basepack_test_app/features/step_definitions/form_panel_steps.rb +1 -1
  125. data/test/basepack_test_app/features/step_definitions/generic_steps.rb +109 -4
  126. data/test/basepack_test_app/features/step_definitions/grid_panel_steps.rb +8 -10
  127. data/test/basepack_test_app/features/step_definitions/window_steps.rb +27 -0
  128. data/test/basepack_test_app/features/tab_panel.feature +1 -1
  129. data/test/basepack_test_app/features/window.feature +17 -0
  130. data/test/unit/accordion_panel_test.rb +2 -2
  131. data/test/unit/grid_panel_test.rb +4 -4
  132. metadata +57 -83
  133. data/TODO.rdoc +0 -8
  134. data/lib/generators/netzke/basepack_generator.rb +0 -10
  135. data/lib/generators/netzke/templates/assets/ts-checkbox.gif +0 -0
  136. data/lib/generators/netzke/templates/create_netzke_field_lists.rb +0 -18
  137. data/lib/netzke/active_record.rb +0 -20
  138. data/lib/netzke/active_record/attributes.rb +0 -259
  139. data/lib/netzke/active_record/combobox_options.rb +0 -16
  140. data/lib/netzke/active_record/relation_extensions.rb +0 -37
  141. data/lib/netzke/basepack/accordion_panel.rb +0 -39
  142. data/lib/netzke/basepack/action_column.rb +0 -68
  143. data/lib/netzke/basepack/action_column/javascripts/action_column.js +0 -61
  144. data/lib/netzke/basepack/auth_app.rb +0 -159
  145. data/lib/netzke/basepack/basic_app.rb +0 -7
  146. data/lib/netzke/basepack/border_layout_panel.rb +0 -53
  147. data/lib/netzke/basepack/border_layout_panel/javascripts/border_layout_panel.js +0 -40
  148. data/lib/netzke/basepack/data_adapters/data_mapper_adapter.rb +0 -264
  149. data/lib/netzke/basepack/data_adapters/sequel_adapter.rb +0 -260
  150. data/lib/netzke/basepack/form_panel.rb +0 -144
  151. data/lib/netzke/basepack/form_panel/fields.rb +0 -208
  152. data/lib/netzke/basepack/form_panel/javascripts/misc.js +0 -4
  153. data/lib/netzke/basepack/form_panel/services.rb +0 -142
  154. data/lib/netzke/basepack/grid_panel.rb +0 -441
  155. data/lib/netzke/basepack/grid_panel/columns.rb +0 -400
  156. data/lib/netzke/basepack/grid_panel/javascripts/rows-dd.js +0 -281
  157. data/lib/netzke/basepack/grid_panel/record_form_window.rb +0 -41
  158. data/lib/netzke/basepack/grid_panel/services.rb +0 -235
  159. data/lib/netzke/basepack/panel.rb +0 -11
  160. data/lib/netzke/basepack/wrapper.rb +0 -28
  161. data/lib/netzke/data_mapper.rb +0 -18
  162. data/lib/netzke/data_mapper/attributes.rb +0 -273
  163. data/lib/netzke/data_mapper/combobox_options.rb +0 -11
  164. data/lib/netzke/data_mapper/relation_extensions.rb +0 -38
  165. data/lib/netzke/sequel.rb +0 -18
  166. data/lib/netzke/sequel/attributes.rb +0 -274
  167. data/lib/netzke/sequel/combobox_options.rb +0 -10
  168. data/lib/netzke/sequel/relation_extensions.rb +0 -40
  169. data/locales/zh-cn.yml +0 -79
  170. data/test/basepack_test_app/app/components/book_form_with_custom_fields.rb +0 -21
  171. data/test/basepack_test_app/app/components/book_grid_with_column_actions.rb +0 -15
  172. data/test/basepack_test_app/app/components/book_grid_with_defaults.rb +0 -6
  173. data/test/basepack_test_app/app/components/book_paging_form_panel.rb +0 -22
  174. data/test/basepack_test_app/app/components/generic_user_form.rb +0 -12
  175. data/test/basepack_test_app/app/components/simple_accordion.rb +0 -11
  176. data/test/basepack_test_app/app/components/simple_tab_panel.rb +0 -11
  177. data/test/basepack_test_app/app/components/simple_wrapper.rb +0 -7
  178. data/test/basepack_test_app/app/components/some_accordion_panel.rb +0 -22
  179. data/test/basepack_test_app/app/presenters/forms/generic_user.rb +0 -6
  180. data/test/basepack_test_app/app/views/components/loadable_window.html.erb +0 -9
  181. data/test/basepack_test_app/app/views/components/simple_panel.html.erb +0 -1
  182. data/test/basepack_test_app/features/components_in_view.feature +0 -11
  183. data/test/basepack_test_app/features/simple_panel.feature +0 -11
  184. data/test/basepack_test_app/features/validations_in_grid.feature +0 -13
  185. data/test/basepack_test_app/features/virtual_attributes.feature +0 -16
  186. data/test/basepack_test_app/spec/components/form_panel_spec.rb +0 -53
  187. data/test/basepack_test_app/spec/components/grid_panel_spec.rb +0 -10
  188. data/test/basepack_test_app/spec/data_adapter/adapter_spec.rb +0 -68
  189. data/test/basepack_test_app/spec/data_adapter/attributes_spec.rb +0 -56
  190. data/test/basepack_test_app/spec/data_adapter/relation_extensions_spec.rb +0 -125
  191. data/test/basepack_test_app/spec/factories.rb +0 -28
  192. data/test/basepack_test_app/spec/spec_helper.rb +0 -39
@@ -0,0 +1,12 @@
1
+ class BorderLayoutPanelWithPersistence < Netzke::Basepack::BorderLayoutPanel
2
+ items [
3
+ {title: "Center", region: :center},
4
+ {title: "West", region: :west, width: 200, split: true, collapsible: true},
5
+ {title: "North", region: :north, height: 100, split: true, collapsible: true}
6
+ ]
7
+
8
+ def configure(c)
9
+ super
10
+ c.persistence = true
11
+ end
12
+ end
@@ -1,18 +1,23 @@
1
1
  class DoubleBookGrid < Netzke::Base
2
- js_property :layout, :border
2
+ js_configure do |c|
3
+ c.layout = :border
4
+ end
5
+
6
+ def configure(c)
7
+ super
8
+ c.items = [:first_grid, :second_grid]
9
+ end
10
+
11
+ component :first_grid do |c|
12
+ c.klass = Netzke::Basepack::Grid
13
+ c.region = :center
14
+ c.model = "Book"
15
+ end
3
16
 
4
- def configuration
5
- super.tap do |s|
6
- s[:items] = [{
7
- :region => :center,
8
- :class_name => "Netzke::Basepack::GridPanel",
9
- :model => "Book"
10
- },{
11
- :region => :south,
12
- :height => 200,
13
- :class_name => "Netzke::Basepack::GridPanel",
14
- :model => "Book"
15
- }]
16
- end
17
+ component :second_grid do |c|
18
+ c.klass = Netzke::Basepack::Grid
19
+ c.region = :south
20
+ c.height = 200
21
+ c.model = "Book"
17
22
  end
18
23
  end
@@ -1,21 +1,20 @@
1
- class FormWithoutModel < Netzke::Basepack::FormPanel
2
- def configuration
3
- super.merge(
4
- # :file_upload => true, # incompatible
5
- :items => [
6
- :text_field,
7
- {:name => :number_field, :attr_type => :integer},
8
- {:name => :boolean_field, :attr_type => :boolean, :input_value => true},
9
- {:name => :date_field, :attr_type => :date},
10
- # {:name => :datetime_field, :attr_type => :datetime}, #incompatible: no xtype
11
- {:name => :combobox_field, :xtype => :combo, :store => [[1, "One"], [2, "Two"], [3, "Three"]]},
12
- {:name => :time_field, :attr_type => :time },
13
- ]
14
- )
1
+ class FormWithoutModel < Netzke::Basepack::Form
2
+ def configure(c)
3
+ c.items = [
4
+ :text_field,
5
+ {:name => :number_field, :attr_type => :integer},
6
+ {:name => :boolean_field, :attr_type => :boolean, :input_value => true},
7
+ {:name => :date_field, :attr_type => :date},
8
+ # {:name => :datetime_field, :attr_type => :datetime}, #incompatible: no xtype
9
+ {:name => :combobox_field, :xtype => :combo, :store => [[1, "One"], [2, "Two"], [3, "Three"]]},
10
+ {:name => :time_field, :attr_type => :time },
11
+ ]
12
+
13
+ super
15
14
  end
16
15
 
17
- def netzke_submit_endpoint(params)
16
+ endpoint :netzke_submit do |params, this|
18
17
  data = ActiveSupport::JSON.decode(params[:data])
19
- {:netzke_feedback => data.each_pair.map{ |k,v| "#{k.humanize}: #{v}" }.join("<br/>")}
18
+ this.netzke_feedback data.each_pair.map{ |k,v| "#{k.humanize}: #{v}" }.join("<br/>")
20
19
  end
21
20
  end
@@ -0,0 +1,7 @@
1
+ class GridWithInitialSorting < Netzke::Basepack::Grid
2
+ def configure(c)
3
+ super
4
+ c.model = "Book"
5
+ c.data_store.sorters = {property: :title, direction: 'DESC'}
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ class GridWithInlineData < Netzke::Basepack::Grid
2
+ def configure(c)
3
+ super
4
+ c.model = "Book"
5
+ c.load_inline_data = true
6
+ end
7
+ end
@@ -12,7 +12,7 @@ class PagingFormWithSearch < Netzke::Basepack::BorderLayoutPanel
12
12
 
13
13
  component :paging_form_panel do
14
14
  {
15
- :class_name => "Netzke::Basepack::PagingFormPanel",
15
+ :class_name => "Netzke::Basepack::PagingForm",
16
16
  :model => config[:model]
17
17
  }
18
18
  end
@@ -21,7 +21,7 @@ class PagingFormWithSearch < Netzke::Basepack::BorderLayoutPanel
21
21
  {
22
22
  :class_name => "Netzke::Basepack::SearchPanel",
23
23
  :model => config[:model],
24
- :bbar => [:apply.action],
24
+ :bbar => [:apply],
25
25
  :preset_query => []
26
26
  }
27
27
  end
@@ -0,0 +1,35 @@
1
+ class PanelWithPersistentRegions < Netzke::Base
2
+ include Netzke::Basepack::ItemPersistence
3
+
4
+ js_configure do |c|
5
+ c.layout = :border
6
+ end
7
+
8
+ component :west do |c|
9
+ c.klass = Netzke::Core::Panel
10
+ c.width = 100
11
+ c.collapsible = true
12
+ c.region = :west
13
+ c.split = true
14
+ end
15
+
16
+ component :south do |c|
17
+ c.klass = Netzke::Core::Panel
18
+ c.height = 100
19
+ c.collapsible = true
20
+ c.region = :south
21
+ c.split = true
22
+ end
23
+
24
+ def configure(c)
25
+ super
26
+ c.items = [
27
+ :west,
28
+ :south,
29
+ {region: :center, title: "An Ext panel"},
30
+
31
+ # not that for a regular region (which is not a Netzke component), item_id has to be set to enable this region's persistence
32
+ {region: :east, width: 200, split: true, title: "Another Ext panel", item_id: :east}
33
+ ]
34
+ end
35
+ end
@@ -0,0 +1,7 @@
1
+ class QueryBuilder < Netzke::Basepack::GridLib::QueryBuilder
2
+ def configure(c)
3
+ super
4
+ c.model = "Book"
5
+ c.fields = [{name: :title, field_label: "Title"}, {name: :author__name, field_label: "Author"}, {name: :digitized, field_label: "Digitized"}]
6
+ end
7
+ end
@@ -1,17 +1,22 @@
1
- class SimplePanel < Netzke::Basepack::Panel
1
+ class SimplePanel < Netzke::Base
2
2
  action :update_html
3
3
 
4
- js_properties :title => "SimplePanel",
5
- :html => "Original HTML",
6
- :bbar => [:update_html.action]
4
+ js_configure do |c|
5
+ c.title = "SimplePanel"
6
+ c.html = "Original HTML"
7
+ c.on_update_html = <<-JS
8
+ function(){
9
+ this.updateHtmlFromServer();
10
+ }
11
+ JS
12
+ end
7
13
 
8
- endpoint :update_html_from_server do |params|
9
- {:update_body_html => config[:update_text] || "HTML received from server"}
14
+ def configure(c)
15
+ super
16
+ c.bbar = [:update_html]
10
17
  end
11
18
 
12
- js_method :on_update_html, <<-JS
13
- function(){
14
- this.updateHtmlFromServer();
15
- }
16
- JS
19
+ endpoint :update_html_from_server do |params, this|
20
+ this[:update] = [config[:update_text] || "HTML received from server"]
21
+ end
17
22
  end
@@ -1,10 +1,11 @@
1
1
  class SimpleWindow < Netzke::Basepack::Window
2
- js_properties :title => "My simple window"
2
+ js_configure do |c|
3
+ c.title = "My simple window"
4
+ end
3
5
 
4
- def default_config
5
- {
6
- :width => 400,
7
- :height => 300
8
- }
6
+ def configure(c)
7
+ super
8
+ c.width = 400
9
+ c.height = 300
9
10
  end
10
11
  end
@@ -0,0 +1,18 @@
1
+ class SomeAccordion < Netzke::Basepack::Accordion
2
+ # This component will be dynamically loaded on expanding the second accordion pane
3
+ component :simple_panel do |c|
4
+ c.update_text = "Update for Panel Two"
5
+ c.title = "Panel Two"
6
+ c.border = false
7
+ c.header = false
8
+ end
9
+
10
+ def configure(c)
11
+ c.title = "Some Accordion"
12
+ c.items = [
13
+ { :html => "I'm a simple Ext.Panel", :title => "Panel One" },
14
+ :simple_panel
15
+ ]
16
+ super
17
+ end
18
+ end
@@ -1,11 +1,11 @@
1
1
  class SomeAuthApp < Netzke::Basepack::AuthApp
2
2
  def menu
3
- [:simple_accordion.action, :user_grid.action, :simple_tab_panel.action] + super
3
+ [:simple_accordion, :user_grid, :simple_tab_panel] + super
4
4
  end
5
5
 
6
- action :simple_accordion, :icon => :application_tile_vertical, :handler => :load_netzke_component_by_action
7
- action :user_grid, :icon => :table, :handler => :load_netzke_component_by_action
8
- action :simple_tab_panel, :icon => :table_multiple, :handler => :load_netzke_component_by_action
6
+ action :simple_accordion, :icon => :application_tile_vertical, :handler => :netzke_load_component_by_action
7
+ action :user_grid, :icon => :table, :handler => :netzke_load_component_by_action
8
+ action :simple_tab_panel, :icon => :table_multiple, :handler => :netzke_load_component_by_action
9
9
 
10
10
  component :user_grid
11
11
  component :simple_accordion
@@ -29,4 +29,4 @@ class SomeAuthApp < Netzke::Basepack::AuthApp
29
29
  :items => orig[:items]
30
30
  }])
31
31
  end
32
- end
32
+ end
@@ -1,28 +1,28 @@
1
1
  class SomeBorderLayout < Netzke::Basepack::BorderLayoutPanel
2
- def configuration
3
- super.merge(
4
- :items => [
5
- {:title => "Who", :class_name => "Basepack::GridPanel", :region => :center, :model => "User", :name => :user_grid},
6
- {:title => "Item Two", :class_name => "Basepack::GridPanel", :region => :west, :width => 500, :split => true, :collapsible => true, :model => "Role", :name => :role_grid}
7
- ]
8
- )
2
+ js_configure do |c|
3
+ c.on_update_west_region = <<-JS
4
+ function(){
5
+ this.child('component[name="user_grid"]').body.update('Updated West Region Content');
6
+ }
7
+ JS
8
+
9
+ c.on_update_center_region = <<-JS
10
+ function(){
11
+ this.child('component[name="role_grid"]').body.update('Updated Center Region Content');
12
+ }
13
+ JS
9
14
  end
10
15
 
11
- js_property :bbar, [:update_center_region.action, :update_west_region.action]
16
+ def configure(c)
17
+ super
18
+ c.items = [
19
+ {:title => "Who", :class_name => "Netzke::Basepack::Grid", :region => :center, :model => "User", :name => :user_grid},
20
+ {:title => "Item Two", :class_name => "Netzke::Basepack::Grid", :region => :west, :width => 500, :split => true, :collapsible => true, :model => "Role", :name => :role_grid}
21
+ ]
22
+ c.bbar = [:update_center_region, :update_west_region]
23
+ end
12
24
 
13
25
  action :update_center_region
14
26
  action :update_west_region
15
27
 
16
- js_method :on_update_west_region, <<-JS
17
- function(){
18
- this.child('component[name="user_grid"]').body.update('Updated West Region Content');
19
- }
20
- JS
21
-
22
- js_method :on_update_center_region, <<-JS
23
- function(){
24
- this.child('component[name="role_grid"]').body.update('Updated Center Region Content');
25
- }
26
- JS
27
-
28
28
  end
@@ -0,0 +1,6 @@
1
+ class SomeSearchPanel < Netzke::Basepack::SearchPanel
2
+ def configure(c)
3
+ c.model = "Book"
4
+ c.fields = [{name: "title", field_label: "Title"}]
5
+ end
6
+ end
@@ -1,35 +1,49 @@
1
1
  class SomeSimpleApp < Netzke::Basepack::SimpleApp
2
2
  def menu
3
- [:simple_accordion.action, :user_grid.action, :simple_tab_panel.action] + super
3
+ [:load_simple_accordion, :load_book_grid, :load_simple_tab_panel] + super
4
4
  end
5
5
 
6
- action :simple_accordion, :icon => :application_tile_vertical, :handler => :load_netzke_component_by_action
7
- action :user_grid, :icon => :table, :handler => :load_netzke_component_by_action
8
- action :simple_tab_panel, :icon => :table_multiple, :handler => :load_netzke_component_by_action
6
+ action :load_simple_accordion do |a|
7
+ a.icon = :application_tile_vertical
8
+ a.handler = :netzke_load_component_by_action
9
+ a.component = :some_accordion
10
+ a.text = "Some accordion"
11
+ end
12
+
13
+ action :load_book_grid do |a|
14
+ a.icon = :table
15
+ a.handler = :netzke_load_component_by_action
16
+ a.component = :book_grid
17
+ a.text = "Book grid"
18
+ end
9
19
 
10
- component :user_grid
11
- component :simple_accordion
12
- component :simple_tab_panel, :active_tab => 0
20
+ action :load_simple_tab_panel do |a|
21
+ a.icon = :table_multiple
22
+ a.handler = :netzke_load_component_by_action
23
+ a.component = :some_tab_panel
24
+ a.text = "Some tab panel"
25
+ end
13
26
 
14
- js_property :border, false
27
+ component :book_grid
28
+ component :some_accordion
29
+ component :some_tab_panel
15
30
 
16
31
  # Wrapping up original layout into a border-layout with the north panel being a fancy header
17
- def configuration
18
- orig = super
19
- orig.merge(:items => [{
32
+ def configure(c)
33
+ super
34
+ c.border = false
35
+ c.items = [{
20
36
  :region => :north,
21
37
  :height => 35,
22
38
  :html => %Q{
23
39
  <div style="margin:10px; color:#333; text-align:center; font-family: Helvetica;">
24
40
  Simple <span style="color:#B32D15">Netzke</span> app
25
41
  </div>
26
- }
27
- # TODO: this has no effect anymore:
28
- # :bodyStyle => {:background => "#AAA url(\"/images/header-deco.gif\") top left repeat-x"}
42
+ },
29
43
  },{
30
44
  :region => :center,
31
45
  :layout => 'border',
32
- :items => orig[:items]
33
- }])
46
+ :items => config.items
47
+ }]
34
48
  end
35
49
  end
@@ -1,20 +1,23 @@
1
1
  class SomeTabPanel < Netzke::Basepack::TabPanel
2
- def configuration
3
- super.merge(
4
- :active_tab => 0,
5
- :items => [:tab_one.component,:tab_two.component]
6
- )
7
- end
2
+ # This component will be dynamically loaded on expanding the second accordion pane
3
+ component :simple_panel do |c|
4
+ c.update_text = "Update for Panel Two"
5
+ c.title = "Panel Two"
6
+ c.prevent_header = true
7
+ c.border = false
8
8
 
9
- component :tab_one, {
10
- :title => "First Tab",
11
- :class_name => "Basepack::Panel"
12
- }
9
+ # optionally, you can force a certain component to be eagerly loaded:
10
+ # c.eager_loading = true
11
+ end
13
12
 
14
- component :tab_two, {
15
- :title => "Second Tab",
16
- :class_name => "Basepack::Panel",
17
- :lazy_loading => true # Dynamically loaded when the tab gets open
18
- }
13
+ def configure(c)
14
+ c.title = "Some Tab Panel"
15
+ c.active_tab = 0
19
16
 
17
+ c.items = [
18
+ { :html => "I'm a simple Ext.Panel", :title => "Panel One" },
19
+ :simple_panel
20
+ ]
21
+ super
22
+ end
20
23
  end
@@ -1,21 +1,23 @@
1
- class UserForm < Netzke::Basepack::FormPanel
2
- title User.model_name.human
1
+ class UserForm < Netzke::Basepack::Form
2
+ def configure(c)
3
+ c.record = User.first
3
4
 
4
- model "User"
5
+ super
5
6
 
6
- record_id User.first.try(:id)
7
-
8
- items [
9
- {:xtype => 'fieldset', :title => "Basic Info", :checkboxToggle => true, :items => [
10
- :first_name,
11
- {:name => :last_name}
12
- ]},
13
- {:xtype => 'fieldset', :title => "Timestamps", :items => [
14
- {:name => :created_at, :disabled => true},
15
- {:name => :updated_at, :disabled => true}
16
- ]},
17
- { name: :role__name, empty_text: "Select a role" }
18
- ]
7
+ c.model = "User"
8
+ c.title = User.model_name.human
9
+ c.items = [
10
+ {:xtype => 'fieldset', :title => "Basic Info", :checkboxToggle => true, :items => [
11
+ :first_name,
12
+ {:name => :last_name}
13
+ ]},
14
+ {:xtype => 'fieldset', :title => "Timestamps", :items => [
15
+ {:name => :created_at, :disabled => true},
16
+ {:name => :updated_at, :disabled => true}
17
+ ]},
18
+ { name: :role__name, empty_text: "Select a role" }
19
+ ]
20
+ end
19
21
 
20
22
  # Uncomment for visual mask testing
21
23
  # def netzke_submit_endpoint(params)