netzke-basepack-zh 0.7.6

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.
Files changed (268) hide show
  1. data/.autotest +1 -0
  2. data/.travis.yml +11 -0
  3. data/CHANGELOG.rdoc +445 -0
  4. data/LICENSE +1 -0
  5. data/README.md +94 -0
  6. data/Rakefile +44 -0
  7. data/TODO.rdoc +8 -0
  8. data/config/ci/before-travis.sh +28 -0
  9. data/init.rb +1 -0
  10. data/install.rb +1 -0
  11. data/javascripts/basepack.js +139 -0
  12. data/javascripts/xdatetime.js +196 -0
  13. data/lib/generators/netzke/basepack_generator.rb +10 -0
  14. data/lib/generators/netzke/templates/assets/ts-checkbox.gif +0 -0
  15. data/lib/generators/netzke/templates/create_netzke_field_lists.rb +18 -0
  16. data/lib/netzke-basepack.rb +26 -0
  17. data/lib/netzke/active_record.rb +20 -0
  18. data/lib/netzke/active_record/attributes.rb +256 -0
  19. data/lib/netzke/active_record/combobox_options.rb +16 -0
  20. data/lib/netzke/active_record/relation_extensions.rb +37 -0
  21. data/lib/netzke/basepack.rb +45 -0
  22. data/lib/netzke/basepack/accordion_panel.rb +39 -0
  23. data/lib/netzke/basepack/action_column.rb +68 -0
  24. data/lib/netzke/basepack/action_column/javascripts/action_column.js +61 -0
  25. data/lib/netzke/basepack/auth_app.rb +159 -0
  26. data/lib/netzke/basepack/basic_app.rb +7 -0
  27. data/lib/netzke/basepack/border_layout_panel.rb +53 -0
  28. data/lib/netzke/basepack/border_layout_panel/javascripts/border_layout_panel.js +40 -0
  29. data/lib/netzke/basepack/data_accessor.rb +53 -0
  30. data/lib/netzke/basepack/data_adapters/abstract_adapter.rb +164 -0
  31. data/lib/netzke/basepack/data_adapters/active_record_adapter.rb +279 -0
  32. data/lib/netzke/basepack/data_adapters/data_mapper_adapter.rb +264 -0
  33. data/lib/netzke/basepack/data_adapters/sequel_adapter.rb +260 -0
  34. data/lib/netzke/basepack/form_panel.rb +144 -0
  35. data/lib/netzke/basepack/form_panel/fields.rb +208 -0
  36. data/lib/netzke/basepack/form_panel/javascripts/comma_list_cbg.js +51 -0
  37. data/lib/netzke/basepack/form_panel/javascripts/form_panel.js +225 -0
  38. data/lib/netzke/basepack/form_panel/javascripts/misc.js +4 -0
  39. data/lib/netzke/basepack/form_panel/javascripts/n_radio_group.js +43 -0
  40. data/lib/netzke/basepack/form_panel/javascripts/readonly_mode.js +35 -0
  41. data/lib/netzke/basepack/form_panel/services.rb +142 -0
  42. data/lib/netzke/basepack/form_panel/stylesheets/readonly_mode.css +14 -0
  43. data/lib/netzke/basepack/grid_panel.rb +440 -0
  44. data/lib/netzke/basepack/grid_panel/columns.rb +394 -0
  45. data/lib/netzke/basepack/grid_panel/javascripts/advanced_search.js +27 -0
  46. data/lib/netzke/basepack/grid_panel/javascripts/check_column_fix.js +6 -0
  47. data/lib/netzke/basepack/grid_panel/javascripts/edit_in_form.js +51 -0
  48. data/lib/netzke/basepack/grid_panel/javascripts/event_handling.js +179 -0
  49. data/lib/netzke/basepack/grid_panel/javascripts/grid_panel.js +438 -0
  50. data/lib/netzke/basepack/grid_panel/javascripts/misc.js +4 -0
  51. data/lib/netzke/basepack/grid_panel/javascripts/rows-dd.js +281 -0
  52. data/lib/netzke/basepack/grid_panel/record_form_window.rb +41 -0
  53. data/lib/netzke/basepack/grid_panel/services.rb +235 -0
  54. data/lib/netzke/basepack/paging_form_panel.rb +72 -0
  55. data/lib/netzke/basepack/paging_form_panel/javascripts/paging_form_panel.js +76 -0
  56. data/lib/netzke/basepack/panel.rb +11 -0
  57. data/lib/netzke/basepack/query_builder.rb +107 -0
  58. data/lib/netzke/basepack/query_builder/javascripts/query_builder.js +153 -0
  59. data/lib/netzke/basepack/search_panel.rb +79 -0
  60. data/lib/netzke/basepack/search_panel/javascripts/condition_field.js +160 -0
  61. data/lib/netzke/basepack/search_panel/javascripts/search_panel.js +65 -0
  62. data/lib/netzke/basepack/search_window.rb +66 -0
  63. data/lib/netzke/basepack/simple_app.rb +104 -0
  64. data/lib/netzke/basepack/simple_app/javascripts/simple_app.js +64 -0
  65. data/lib/netzke/basepack/simple_app/javascripts/statusbar_ext.js +8 -0
  66. data/lib/netzke/basepack/tab_panel.rb +21 -0
  67. data/lib/netzke/basepack/tab_panel/javascripts/tab_panel.js +11 -0
  68. data/lib/netzke/basepack/version.rb +11 -0
  69. data/lib/netzke/basepack/window.rb +29 -0
  70. data/lib/netzke/basepack/window/javascripts/window.js +20 -0
  71. data/lib/netzke/basepack/wrap_lazy_loaded.rb +28 -0
  72. data/lib/netzke/basepack/wrapper.rb +28 -0
  73. data/lib/netzke/data_mapper.rb +18 -0
  74. data/lib/netzke/data_mapper/attributes.rb +273 -0
  75. data/lib/netzke/data_mapper/combobox_options.rb +11 -0
  76. data/lib/netzke/data_mapper/relation_extensions.rb +38 -0
  77. data/lib/netzke/sequel.rb +18 -0
  78. data/lib/netzke/sequel/attributes.rb +274 -0
  79. data/lib/netzke/sequel/combobox_options.rb +10 -0
  80. data/lib/netzke/sequel/relation_extensions.rb +40 -0
  81. data/lib/tasks/netzke_basepack_tasks.rake +4 -0
  82. data/locales/de.yml +79 -0
  83. data/locales/en.yml +79 -0
  84. data/netzke-basepack.gemspec +306 -0
  85. data/stylesheets/basepack.css +72 -0
  86. data/stylesheets/datetimefield.css +54 -0
  87. data/test/basepack_test_app/.gitignore +6 -0
  88. data/test/basepack_test_app/.rvmrc +1 -0
  89. data/test/basepack_test_app/Gemfile +59 -0
  90. data/test/basepack_test_app/Gemfile.lock +196 -0
  91. data/test/basepack_test_app/Guardfile +46 -0
  92. data/test/basepack_test_app/README +1 -0
  93. data/test/basepack_test_app/Rakefile +7 -0
  94. data/test/basepack_test_app/app/components/author_form.rb +32 -0
  95. data/test/basepack_test_app/app/components/author_grid.rb +3 -0
  96. data/test/basepack_test_app/app/components/book_form.rb +38 -0
  97. data/test/basepack_test_app/app/components/book_form_with_custom_fields.rb +21 -0
  98. data/test/basepack_test_app/app/components/book_form_with_defaults.rb +8 -0
  99. data/test/basepack_test_app/app/components/book_form_with_nested_attributes.rb +18 -0
  100. data/test/basepack_test_app/app/components/book_grid.rb +12 -0
  101. data/test/basepack_test_app/app/components/book_grid_filtering.rb +10 -0
  102. data/test/basepack_test_app/app/components/book_grid_loader.rb +24 -0
  103. data/test/basepack_test_app/app/components/book_grid_with_column_actions.rb +15 -0
  104. data/test/basepack_test_app/app/components/book_grid_with_custom_columns.rb +27 -0
  105. data/test/basepack_test_app/app/components/book_grid_with_default_values.rb +9 -0
  106. data/test/basepack_test_app/app/components/book_grid_with_extra_feedback.rb +8 -0
  107. data/test/basepack_test_app/app/components/book_grid_with_extra_filters.rb +14 -0
  108. data/test/basepack_test_app/app/components/book_grid_with_nested_attributes.rb +13 -0
  109. data/test/basepack_test_app/app/components/book_grid_with_overridden_columns.rb +15 -0
  110. data/test/basepack_test_app/app/components/book_grid_with_paging.rb +10 -0
  111. data/test/basepack_test_app/app/components/book_grid_with_persistence.rb +8 -0
  112. data/test/basepack_test_app/app/components/book_grid_with_scoped_authors.rb +8 -0
  113. data/test/basepack_test_app/app/components/book_grid_with_virtual_attributes.rb +21 -0
  114. data/test/basepack_test_app/app/components/book_paging_form_panel.rb +22 -0
  115. data/test/basepack_test_app/app/components/book_query_builder.rb +8 -0
  116. data/test/basepack_test_app/app/components/book_search_panel.rb +5 -0
  117. data/test/basepack_test_app/app/components/book_search_panel/javascripts/i18n_de.js +6 -0
  118. data/test/basepack_test_app/app/components/book_with_custom_primary_key_grid.rb +10 -0
  119. data/test/basepack_test_app/app/components/books_bound_to_author.rb +10 -0
  120. data/test/basepack_test_app/app/components/double_book_grid.rb +18 -0
  121. data/test/basepack_test_app/app/components/extras/book_presentation.rb +27 -0
  122. data/test/basepack_test_app/app/components/form_without_model.rb +21 -0
  123. data/test/basepack_test_app/app/components/generic_user_form.rb +12 -0
  124. data/test/basepack_test_app/app/components/lockable_book_form.rb +17 -0
  125. data/test/basepack_test_app/app/components/lockable_user_form.rb +7 -0
  126. data/test/basepack_test_app/app/components/paging_form_with_search.rb +40 -0
  127. data/test/basepack_test_app/app/components/simple_accordion.rb +11 -0
  128. data/test/basepack_test_app/app/components/simple_panel.rb +17 -0
  129. data/test/basepack_test_app/app/components/simple_tab_panel.rb +11 -0
  130. data/test/basepack_test_app/app/components/simple_window.rb +10 -0
  131. data/test/basepack_test_app/app/components/simple_wrapper.rb +7 -0
  132. data/test/basepack_test_app/app/components/some_accordion_panel.rb +22 -0
  133. data/test/basepack_test_app/app/components/some_auth_app.rb +32 -0
  134. data/test/basepack_test_app/app/components/some_border_layout.rb +28 -0
  135. data/test/basepack_test_app/app/components/some_simple_app.rb +35 -0
  136. data/test/basepack_test_app/app/components/some_tab_panel.rb +20 -0
  137. data/test/basepack_test_app/app/components/user_form.rb +25 -0
  138. data/test/basepack_test_app/app/components/user_form_with_default_fields.rb +8 -0
  139. data/test/basepack_test_app/app/components/user_grid.rb +8 -0
  140. data/test/basepack_test_app/app/components/user_grid_with_customized_form_fields.rb +18 -0
  141. data/test/basepack_test_app/app/components/window_component_loader.rb +27 -0
  142. data/test/basepack_test_app/app/controllers/application_controller.rb +9 -0
  143. data/test/basepack_test_app/app/controllers/components_controller.rb +10 -0
  144. data/test/basepack_test_app/app/controllers/welcome_controller.rb +9 -0
  145. data/test/basepack_test_app/app/helpers/application_helper.rb +8 -0
  146. data/test/basepack_test_app/app/helpers/embedded_components_helper.rb +2 -0
  147. data/test/basepack_test_app/app/models/address.rb +29 -0
  148. data/test/basepack_test_app/app/models/author.rb +38 -0
  149. data/test/basepack_test_app/app/models/book.rb +49 -0
  150. data/test/basepack_test_app/app/models/book_with_custom_primary_key.rb +26 -0
  151. data/test/basepack_test_app/app/models/role.rb +24 -0
  152. data/test/basepack_test_app/app/models/user.rb +29 -0
  153. data/test/basepack_test_app/app/presenters/forms/generic_user.rb +6 -0
  154. data/test/basepack_test_app/app/views/components/loadable_window.html.erb +9 -0
  155. data/test/basepack_test_app/app/views/components/simple_panel.html.erb +1 -0
  156. data/test/basepack_test_app/app/views/layouts/application.html.erb +12 -0
  157. data/test/basepack_test_app/app/views/layouts/components.html.erb +13 -0
  158. data/test/basepack_test_app/app/views/layouts/nested.html.erb +5 -0
  159. data/test/basepack_test_app/app/views/welcome/index.html.erb +10 -0
  160. data/test/basepack_test_app/config.ru +4 -0
  161. data/test/basepack_test_app/config/application.rb +57 -0
  162. data/test/basepack_test_app/config/boot.rb +13 -0
  163. data/test/basepack_test_app/config/cucumber.yml +8 -0
  164. data/test/basepack_test_app/config/database.yml.sample +41 -0
  165. data/test/basepack_test_app/config/database.yml.travis +15 -0
  166. data/test/basepack_test_app/config/environment.rb +6 -0
  167. data/test/basepack_test_app/config/environments/development.rb +22 -0
  168. data/test/basepack_test_app/config/environments/production.rb +49 -0
  169. data/test/basepack_test_app/config/environments/test.rb +35 -0
  170. data/test/basepack_test_app/config/initializers/backtrace_silencers.rb +7 -0
  171. data/test/basepack_test_app/config/initializers/data_mapper_logging.rb +3 -0
  172. data/test/basepack_test_app/config/initializers/inflections.rb +10 -0
  173. data/test/basepack_test_app/config/initializers/mime_types.rb +5 -0
  174. data/test/basepack_test_app/config/initializers/netzke.rb +9 -0
  175. data/test/basepack_test_app/config/initializers/secret_token.rb +7 -0
  176. data/test/basepack_test_app/config/initializers/sequel.rb +26 -0
  177. data/test/basepack_test_app/config/initializers/session_store.rb +8 -0
  178. data/test/basepack_test_app/config/locales/de.yml +35 -0
  179. data/test/basepack_test_app/config/locales/es.yml +96 -0
  180. data/test/basepack_test_app/config/routes.rb +68 -0
  181. data/test/basepack_test_app/db/development_structure.sql +88 -0
  182. data/test/basepack_test_app/db/migrate/20100914104207_create_users.rb +15 -0
  183. data/test/basepack_test_app/db/migrate/20100914104236_create_roles.rb +13 -0
  184. data/test/basepack_test_app/db/migrate/20101026185816_create_authors.rb +14 -0
  185. data/test/basepack_test_app/db/migrate/20101026190021_create_books.rb +19 -0
  186. data/test/basepack_test_app/db/migrate/20110101143818_create_addresses.rb +17 -0
  187. data/test/basepack_test_app/db/migrate/20110213213050_create_netzke_component_states.rb +20 -0
  188. data/test/basepack_test_app/db/migrate/20110701070052_create_book_with_custom_primary_keys.rb +15 -0
  189. data/test/basepack_test_app/db/migrate/20110901114016_add_last_read_at_to_books.rb +9 -0
  190. data/test/basepack_test_app/db/migrate/20110909071740_add_published_on_to_books.rb +5 -0
  191. data/test/basepack_test_app/db/schema.rb +81 -0
  192. data/test/basepack_test_app/db/seeds.rb +44 -0
  193. data/test/basepack_test_app/features/accordion_panel.feature +12 -0
  194. data/test/basepack_test_app/features/components_in_view.feature +11 -0
  195. data/test/basepack_test_app/features/form_panel.feature +142 -0
  196. data/test/basepack_test_app/features/grid_panel.feature +277 -0
  197. data/test/basepack_test_app/features/grid_panel_filters.feature +73 -0
  198. data/test/basepack_test_app/features/grid_panel_with_custom_primary_key.feature +15 -0
  199. data/test/basepack_test_app/features/grid_sorting.feature +47 -0
  200. data/test/basepack_test_app/features/i18n.feature +18 -0
  201. data/test/basepack_test_app/features/nested_attributes.feature +26 -0
  202. data/test/basepack_test_app/features/paging_form_panel.feature +43 -0
  203. data/test/basepack_test_app/features/search_in_grid.feature +49 -0
  204. data/test/basepack_test_app/features/simple_app.feature +15 -0
  205. data/test/basepack_test_app/features/simple_panel.feature +11 -0
  206. data/test/basepack_test_app/features/step_definitions/accordion_steps.rb +5 -0
  207. data/test/basepack_test_app/features/step_definitions/ext_steps.rb +16 -0
  208. data/test/basepack_test_app/features/step_definitions/form_panel_steps.rb +46 -0
  209. data/test/basepack_test_app/features/step_definitions/generic_steps.rb +44 -0
  210. data/test/basepack_test_app/features/step_definitions/grid_panel_steps.rb +186 -0
  211. data/test/basepack_test_app/features/step_definitions/pickle_steps.rb +100 -0
  212. data/test/basepack_test_app/features/step_definitions/web_steps.rb +219 -0
  213. data/test/basepack_test_app/features/support/env.rb +81 -0
  214. data/test/basepack_test_app/features/support/paths.rb +65 -0
  215. data/test/basepack_test_app/features/support/pickle.rb +24 -0
  216. data/test/basepack_test_app/features/support/selectors.rb +39 -0
  217. data/test/basepack_test_app/features/tab_panel.feature +12 -0
  218. data/test/basepack_test_app/features/validations_in_grid.feature +13 -0
  219. data/test/basepack_test_app/features/virtual_attributes.feature +16 -0
  220. data/test/basepack_test_app/features/window.feature +11 -0
  221. data/test/basepack_test_app/lib/tasks/.gitkeep +0 -0
  222. data/test/basepack_test_app/lib/tasks/cucumber.rake +71 -0
  223. data/test/basepack_test_app/lib/tasks/travis.rake +7 -0
  224. data/test/basepack_test_app/public/404.html +26 -0
  225. data/test/basepack_test_app/public/422.html +26 -0
  226. data/test/basepack_test_app/public/500.html +26 -0
  227. data/test/basepack_test_app/public/favicon.ico +0 -0
  228. data/test/basepack_test_app/public/images/header-deco.gif +0 -0
  229. data/test/basepack_test_app/public/images/rails.png +0 -0
  230. data/test/basepack_test_app/public/javascripts/application.js +2 -0
  231. data/test/basepack_test_app/public/javascripts/controls.js +965 -0
  232. data/test/basepack_test_app/public/javascripts/dragdrop.js +974 -0
  233. data/test/basepack_test_app/public/javascripts/effects.js +1123 -0
  234. data/test/basepack_test_app/public/javascripts/prototype.js +6001 -0
  235. data/test/basepack_test_app/public/javascripts/rails.js +175 -0
  236. data/test/basepack_test_app/public/robots.txt +5 -0
  237. data/test/basepack_test_app/public/stylesheets/.gitkeep +0 -0
  238. data/test/basepack_test_app/script/cucumber +10 -0
  239. data/test/basepack_test_app/script/rails +6 -0
  240. data/test/basepack_test_app/spec/components/form_panel_spec.rb +53 -0
  241. data/test/basepack_test_app/spec/components/grid_panel_spec.rb +10 -0
  242. data/test/basepack_test_app/spec/data_adapter/adapter_spec.rb +68 -0
  243. data/test/basepack_test_app/spec/data_adapter/attributes_spec.rb +56 -0
  244. data/test/basepack_test_app/spec/data_adapter/relation_extensions_spec.rb +125 -0
  245. data/test/basepack_test_app/spec/factories.rb +28 -0
  246. data/test/basepack_test_app/spec/spec_helper.rb +39 -0
  247. data/test/basepack_test_app/test/performance/browsing_test.rb +9 -0
  248. data/test/basepack_test_app/test/test_helper.rb +13 -0
  249. data/test/basepack_test_app/vendor/plugins/.gitkeep +0 -0
  250. data/test/console_with_fixtures.rb +4 -0
  251. data/test/fixtures/books.yml +11 -0
  252. data/test/fixtures/categories.yml +7 -0
  253. data/test/fixtures/cities.yml +21 -0
  254. data/test/fixtures/continents.yml +7 -0
  255. data/test/fixtures/countries.yml +9 -0
  256. data/test/fixtures/genres.yml +9 -0
  257. data/test/fixtures/roles.yml +8 -0
  258. data/test/fixtures/users.yml +11 -0
  259. data/test/schema.rb +10 -0
  260. data/test/test_helper.rb +21 -0
  261. data/test/unit/accordion_panel_test.rb +20 -0
  262. data/test/unit/active_record_basepack_test.rb +54 -0
  263. data/test/unit/fields_configuration_test.rb +18 -0
  264. data/test/unit/grid_panel_test.rb +52 -0
  265. data/test/unit/netzke_basepack_test.rb +4 -0
  266. data/test/unit/tab_panel_test.rb +21 -0
  267. data/uninstall.rb +1 -0
  268. metadata +332 -0
@@ -0,0 +1,7 @@
1
+ class LockableUserForm < UserForm
2
+ def default_config
3
+ super.merge(
4
+ :mode => :lockable
5
+ )
6
+ end
7
+ end
@@ -0,0 +1,40 @@
1
+ # OUTDATED
2
+ class PagingFormWithSearch < Netzke::Basepack::BorderLayoutPanel
3
+ def default_config
4
+ super.tap do |s|
5
+ s[:model] = "Book"
6
+ s[:items] = [
7
+ :paging_form_panel.component(:region => :center),
8
+ :search_panel.component(:region => :west, :width => 600, :split => true)
9
+ ]
10
+ end
11
+ end
12
+
13
+ component :paging_form_panel do
14
+ {
15
+ :class_name => "Netzke::Basepack::PagingFormPanel",
16
+ :model => config[:model]
17
+ }
18
+ end
19
+
20
+ component :search_panel do
21
+ {
22
+ :class_name => "Netzke::Basepack::SearchPanel",
23
+ :model => config[:model],
24
+ :bbar => [:apply.action],
25
+ :preset_query => []
26
+ }
27
+ end
28
+
29
+ js_method :init_component, <<-JS
30
+ function(){
31
+ this.callParent();
32
+
33
+ this.getChildComponent('search_panel').on('conditionsupdate', function(query){
34
+ this.getChildComponent('paging_form_panel').getStore().baseParams.query = Ext.encode(query);
35
+ this.getChildComponent('paging_form_panel').getStore().load();
36
+ }, this);
37
+ }
38
+ JS
39
+
40
+ end
@@ -0,0 +1,11 @@
1
+ class SimpleAccordion < Netzke::Basepack::AccordionPanel
2
+ config :items => [{
3
+ :html => "I'm a simple Ext.Panel",
4
+ :title => "Panel One"
5
+ },{
6
+ :class_name => "SimplePanel",
7
+ :update_text => "Update for Panel Two",
8
+ :title => "Panel Two",
9
+ :lazy_loading => true
10
+ }]
11
+ end
@@ -0,0 +1,17 @@
1
+ class SimplePanel < Netzke::Basepack::Panel
2
+ action :update_html
3
+
4
+ js_properties :title => "SimplePanel",
5
+ :html => "Original HTML",
6
+ :bbar => [:update_html.action]
7
+
8
+ endpoint :update_html_from_server do |params|
9
+ {:update_body_html => config[:update_text] || "HTML received from server"}
10
+ end
11
+
12
+ js_method :on_update_html, <<-JS
13
+ function(){
14
+ this.updateHtmlFromServer();
15
+ }
16
+ JS
17
+ end
@@ -0,0 +1,11 @@
1
+ class SimpleTabPanel < Netzke::Basepack::TabPanel
2
+ config :items => [{
3
+ :html => "I'm a simple Ext.Panel",
4
+ :title => "Panel One"
5
+ },{
6
+ :class_name => "SimplePanel",
7
+ :update_text => "Update for Panel Two",
8
+ :title => "Panel Two",
9
+ :lazy_loading => true
10
+ }]
11
+ end
@@ -0,0 +1,10 @@
1
+ class SimpleWindow < Netzke::Basepack::Window
2
+ js_properties :title => "My simple window"
3
+
4
+ def default_config
5
+ {
6
+ :width => 400,
7
+ :height => 300
8
+ }
9
+ end
10
+ end
@@ -0,0 +1,7 @@
1
+ class SimpleWrapper < Netzke::Basepack::Wrapper
2
+ def config
3
+ {
4
+ :items => [{:class_name => "Basepack::Panel", :html => "A Panel wrapped into the (invisible) wrapper", :title => "Wrapped Panel"}]
5
+ }
6
+ end
7
+ end
@@ -0,0 +1,22 @@
1
+ class SomeAccordionPanel < Netzke::Basepack::AccordionPanel
2
+ def configuration
3
+ super.merge(
4
+ :layout_config => {
5
+ :animate => true,
6
+ },
7
+ :items => [:panel_one.component, :panel_two.component]
8
+ )
9
+ end
10
+
11
+ component :panel_one, {
12
+ :class_name => "Basepack::Panel",
13
+ :title => "Panel One"
14
+ }
15
+
16
+ component :panel_two, {
17
+ :class_name => "Basepack::Panel",
18
+ :title => "Panel Two",
19
+ :html => "Some html",
20
+ :lazy_loading => true
21
+ }
22
+ end
@@ -0,0 +1,32 @@
1
+ class SomeAuthApp < Netzke::Basepack::AuthApp
2
+ def menu
3
+ [:simple_accordion.action, :user_grid.action, :simple_tab_panel.action] + super
4
+ end
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
9
+
10
+ component :user_grid
11
+ component :simple_accordion
12
+ component :simple_tab_panel, :active_tab => 0
13
+
14
+ # Wrapping up original layout into a border-layout with the north panel being a fancy header
15
+ def configuration
16
+ orig = super
17
+ orig.merge(:items => [{
18
+ :region => :north,
19
+ :height => 40,
20
+ :html => %Q{
21
+ <div style="margin:10px; color:#333; text-align:center; font-family: Helvetica;">
22
+ <span style="color:#B32D15">Netzke</span> basic application
23
+ </div>
24
+ },
25
+ :bodyStyle => {"background" => "#FFF url(\"/images/header-deco.gif\") top left repeat-x"}
26
+ },{
27
+ :region => :center,
28
+ :layout => :border,
29
+ :items => orig[:items]
30
+ }])
31
+ end
32
+ end
@@ -0,0 +1,28 @@
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
+ )
9
+ end
10
+
11
+ js_property :bbar, [:update_center_region.action, :update_west_region.action]
12
+
13
+ action :update_center_region
14
+ action :update_west_region
15
+
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
+ end
@@ -0,0 +1,35 @@
1
+ class SomeSimpleApp < Netzke::Basepack::SimpleApp
2
+ def menu
3
+ [:simple_accordion.action, :user_grid.action, :simple_tab_panel.action] + super
4
+ end
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
9
+
10
+ component :user_grid
11
+ component :simple_accordion
12
+ component :simple_tab_panel, :active_tab => 0
13
+
14
+ js_property :border, false
15
+
16
+ # 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 => [{
20
+ :region => :north,
21
+ :height => 35,
22
+ :html => %Q{
23
+ <div style="margin:10px; color:#333; text-align:center; font-family: Helvetica;">
24
+ Simple <span style="color:#B32D15">Netzke</span> app
25
+ </div>
26
+ }
27
+ # TODO: this has no effect anymore:
28
+ # :bodyStyle => {:background => "#AAA url(\"/images/header-deco.gif\") top left repeat-x"}
29
+ },{
30
+ :region => :center,
31
+ :layout => 'border',
32
+ :items => orig[:items]
33
+ }])
34
+ end
35
+ end
@@ -0,0 +1,20 @@
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
8
+
9
+ component :tab_one, {
10
+ :title => "First Tab",
11
+ :class_name => "Basepack::Panel"
12
+ }
13
+
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
+ }
19
+
20
+ end
@@ -0,0 +1,25 @@
1
+ class UserForm < Netzke::Basepack::FormPanel
2
+ title User.model_name.human
3
+
4
+ model "User"
5
+
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
+ :role__name
18
+ ]
19
+
20
+ # Uncomment for visual mask testing
21
+ # def netzke_submit_endpoint(params)
22
+ # sleep 2
23
+ # super
24
+ # end
25
+ end
@@ -0,0 +1,8 @@
1
+ class UserFormWithDefaultFields < Netzke::Basepack::FormPanel
2
+ config do
3
+ {
4
+ :model => 'User',
5
+ :record_id => User.first.id
6
+ }
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ class UserGrid < Netzke::Basepack::GridPanel
2
+ title "Users"
3
+ model "User"
4
+
5
+ add_form_config :class_name => "UserForm"
6
+ edit_form_config :class_name => "UserForm"
7
+ multi_edit_form_config :class_name => "UserForm"
8
+ end
@@ -0,0 +1,18 @@
1
+ class UserGridWithCustomizedFormFields < Netzke::Basepack::GridPanel
2
+ js_property :title, "Users"
3
+ config :model => "User"
4
+
5
+ def default_fields_for_forms
6
+ [
7
+ {:xtype => 'fieldset', :title => "Basic Info", :checkboxToggle => true, :items => [
8
+ :first_name,
9
+ {:name => :last_name}
10
+ ]},
11
+ {:xtype => 'fieldset', :title => "Timestamps", :items => [
12
+ {:name => :created_at, :disabled => true},
13
+ {:name => :updated_at, :disabled => true}
14
+ ]},
15
+ :role__name
16
+ ]
17
+ end
18
+ end
@@ -0,0 +1,27 @@
1
+ class WindowComponentLoader < Netzke::Base
2
+ component :some_window, {
3
+ :persistence => true,
4
+ :class_name => "Netzke::Basepack::Window",
5
+ :title => "Some Window Component",
6
+ :lazy_loading => true,
7
+ :width => 400,
8
+ :height => 300,
9
+ :modal => true,
10
+ :items => [{
11
+ :class_name => "Netzke::Basepack::GridPanel",
12
+ :model => "User"
13
+ }]
14
+ }
15
+
16
+ action :load_window
17
+
18
+ js_property :bbar, [:load_window.action]
19
+
20
+ js_method :on_load_window, <<-JS
21
+ function(params){
22
+ this.loadNetzkeComponent({name: "some_window", callback: function(w){
23
+ w.show();
24
+ }});
25
+ }
26
+ JS
27
+ end
@@ -0,0 +1,9 @@
1
+ class ApplicationController < ActionController::Base
2
+ protect_from_forgery
3
+
4
+ before_filter :set_locale
5
+ def set_locale
6
+ # if params[:locale] is nil then I18n.default_locale will be used
7
+ I18n.locale = params[:locale]
8
+ end
9
+ end
@@ -0,0 +1,10 @@
1
+ class ComponentsController < ApplicationController
2
+ def index
3
+ if params[:component]
4
+ component_name = params[:component].gsub("::", "_").underscore
5
+ render :inline => "<%= netzke :#{component_name}, :class_name => '#{params[:component]}', :height => 400 %>", :layout => true
6
+ else
7
+ redirect_to root_path
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,9 @@
1
+ class WelcomeController < ApplicationController
2
+
3
+ def index
4
+ @components = @@component_list
5
+ end
6
+
7
+ # Build components list from basepack_test_app/app/components
8
+ @@component_list ||= Dir.glob(File.expand_path('../../components/*.rb', __FILE__)).map{ |name| File.basename(name, ".rb") }.map(&:camelize)
9
+ end
@@ -0,0 +1,8 @@
1
+ module ApplicationHelper
2
+
3
+ # Accepts a component class, returns the link to its code on github.
4
+ def link_to_component_code(component)
5
+ link_to("code", [RailsApp::Application.config.repo_root, "/app/components/", component.to_s.underscore, ".rb"].join)
6
+ end
7
+
8
+ end
@@ -0,0 +1,2 @@
1
+ module EmbeddedComponentsHelper
2
+ end
@@ -0,0 +1,29 @@
1
+ if defined? DataMapper::Resource
2
+
3
+ class Address
4
+ include DataMapper::Resource
5
+ property :id, Serial
6
+ belongs_to :user
7
+ property :street, String
8
+ property :city, String
9
+ property :postcode, String
10
+ property :created_at, DateTime
11
+ property :updated_at, DateTime
12
+ end
13
+
14
+ elsif defined? Sequel::Model
15
+
16
+ class Address < Sequel::Model
17
+ # although this is one_to_one, according to Sequel docs,
18
+ # the model containing the foreign key should have many_to_one
19
+ # and the other model should have one_to_one
20
+ many_to_one :user
21
+ end
22
+
23
+ else
24
+
25
+ class Address < ActiveRecord::Base
26
+ belongs_to :user
27
+ end
28
+
29
+ end
@@ -0,0 +1,38 @@
1
+ if defined? DataMapper::Resource
2
+
3
+ class Author
4
+ include DataMapper::Resource
5
+ property :id, Serial
6
+ property :first_name, String
7
+ property :last_name, String
8
+ property :created_at, DateTime
9
+ property :updated_at, DateTime
10
+ has n, :books
11
+ end
12
+
13
+
14
+ elsif defined? Sequel::Model
15
+
16
+ class Author < Sequel::Model
17
+ one_to_many :books
18
+ end
19
+
20
+ else
21
+
22
+ class Author < ActiveRecord::Base
23
+ has_many :books
24
+ end
25
+
26
+ end
27
+
28
+ # ORM-agnostic bits
29
+ class Author
30
+
31
+ # virtual attribute
32
+ def name
33
+ "#{last_name}, #{first_name}"
34
+ end
35
+
36
+ netzke_attribute :name
37
+
38
+ end