netzke-basepack-zh 0.7.6
Sign up to get free protection for your applications and to get access to all the features.
- data/.autotest +1 -0
- data/.travis.yml +11 -0
- data/CHANGELOG.rdoc +445 -0
- data/LICENSE +1 -0
- data/README.md +94 -0
- data/Rakefile +44 -0
- data/TODO.rdoc +8 -0
- data/config/ci/before-travis.sh +28 -0
- data/init.rb +1 -0
- data/install.rb +1 -0
- data/javascripts/basepack.js +139 -0
- data/javascripts/xdatetime.js +196 -0
- data/lib/generators/netzke/basepack_generator.rb +10 -0
- data/lib/generators/netzke/templates/assets/ts-checkbox.gif +0 -0
- data/lib/generators/netzke/templates/create_netzke_field_lists.rb +18 -0
- data/lib/netzke-basepack.rb +26 -0
- data/lib/netzke/active_record.rb +20 -0
- data/lib/netzke/active_record/attributes.rb +256 -0
- data/lib/netzke/active_record/combobox_options.rb +16 -0
- data/lib/netzke/active_record/relation_extensions.rb +37 -0
- data/lib/netzke/basepack.rb +45 -0
- data/lib/netzke/basepack/accordion_panel.rb +39 -0
- data/lib/netzke/basepack/action_column.rb +68 -0
- data/lib/netzke/basepack/action_column/javascripts/action_column.js +61 -0
- data/lib/netzke/basepack/auth_app.rb +159 -0
- data/lib/netzke/basepack/basic_app.rb +7 -0
- data/lib/netzke/basepack/border_layout_panel.rb +53 -0
- data/lib/netzke/basepack/border_layout_panel/javascripts/border_layout_panel.js +40 -0
- data/lib/netzke/basepack/data_accessor.rb +53 -0
- data/lib/netzke/basepack/data_adapters/abstract_adapter.rb +164 -0
- data/lib/netzke/basepack/data_adapters/active_record_adapter.rb +279 -0
- data/lib/netzke/basepack/data_adapters/data_mapper_adapter.rb +264 -0
- data/lib/netzke/basepack/data_adapters/sequel_adapter.rb +260 -0
- data/lib/netzke/basepack/form_panel.rb +144 -0
- data/lib/netzke/basepack/form_panel/fields.rb +208 -0
- data/lib/netzke/basepack/form_panel/javascripts/comma_list_cbg.js +51 -0
- data/lib/netzke/basepack/form_panel/javascripts/form_panel.js +225 -0
- data/lib/netzke/basepack/form_panel/javascripts/misc.js +4 -0
- data/lib/netzke/basepack/form_panel/javascripts/n_radio_group.js +43 -0
- data/lib/netzke/basepack/form_panel/javascripts/readonly_mode.js +35 -0
- data/lib/netzke/basepack/form_panel/services.rb +142 -0
- data/lib/netzke/basepack/form_panel/stylesheets/readonly_mode.css +14 -0
- data/lib/netzke/basepack/grid_panel.rb +440 -0
- data/lib/netzke/basepack/grid_panel/columns.rb +394 -0
- data/lib/netzke/basepack/grid_panel/javascripts/advanced_search.js +27 -0
- data/lib/netzke/basepack/grid_panel/javascripts/check_column_fix.js +6 -0
- data/lib/netzke/basepack/grid_panel/javascripts/edit_in_form.js +51 -0
- data/lib/netzke/basepack/grid_panel/javascripts/event_handling.js +179 -0
- data/lib/netzke/basepack/grid_panel/javascripts/grid_panel.js +438 -0
- data/lib/netzke/basepack/grid_panel/javascripts/misc.js +4 -0
- data/lib/netzke/basepack/grid_panel/javascripts/rows-dd.js +281 -0
- data/lib/netzke/basepack/grid_panel/record_form_window.rb +41 -0
- data/lib/netzke/basepack/grid_panel/services.rb +235 -0
- data/lib/netzke/basepack/paging_form_panel.rb +72 -0
- data/lib/netzke/basepack/paging_form_panel/javascripts/paging_form_panel.js +76 -0
- data/lib/netzke/basepack/panel.rb +11 -0
- data/lib/netzke/basepack/query_builder.rb +107 -0
- data/lib/netzke/basepack/query_builder/javascripts/query_builder.js +153 -0
- data/lib/netzke/basepack/search_panel.rb +79 -0
- data/lib/netzke/basepack/search_panel/javascripts/condition_field.js +160 -0
- data/lib/netzke/basepack/search_panel/javascripts/search_panel.js +65 -0
- data/lib/netzke/basepack/search_window.rb +66 -0
- data/lib/netzke/basepack/simple_app.rb +104 -0
- data/lib/netzke/basepack/simple_app/javascripts/simple_app.js +64 -0
- data/lib/netzke/basepack/simple_app/javascripts/statusbar_ext.js +8 -0
- data/lib/netzke/basepack/tab_panel.rb +21 -0
- data/lib/netzke/basepack/tab_panel/javascripts/tab_panel.js +11 -0
- data/lib/netzke/basepack/version.rb +11 -0
- data/lib/netzke/basepack/window.rb +29 -0
- data/lib/netzke/basepack/window/javascripts/window.js +20 -0
- data/lib/netzke/basepack/wrap_lazy_loaded.rb +28 -0
- data/lib/netzke/basepack/wrapper.rb +28 -0
- data/lib/netzke/data_mapper.rb +18 -0
- data/lib/netzke/data_mapper/attributes.rb +273 -0
- data/lib/netzke/data_mapper/combobox_options.rb +11 -0
- data/lib/netzke/data_mapper/relation_extensions.rb +38 -0
- data/lib/netzke/sequel.rb +18 -0
- data/lib/netzke/sequel/attributes.rb +274 -0
- data/lib/netzke/sequel/combobox_options.rb +10 -0
- data/lib/netzke/sequel/relation_extensions.rb +40 -0
- data/lib/tasks/netzke_basepack_tasks.rake +4 -0
- data/locales/de.yml +79 -0
- data/locales/en.yml +79 -0
- data/netzke-basepack.gemspec +306 -0
- data/stylesheets/basepack.css +72 -0
- data/stylesheets/datetimefield.css +54 -0
- data/test/basepack_test_app/.gitignore +6 -0
- data/test/basepack_test_app/.rvmrc +1 -0
- data/test/basepack_test_app/Gemfile +59 -0
- data/test/basepack_test_app/Gemfile.lock +196 -0
- data/test/basepack_test_app/Guardfile +46 -0
- data/test/basepack_test_app/README +1 -0
- data/test/basepack_test_app/Rakefile +7 -0
- data/test/basepack_test_app/app/components/author_form.rb +32 -0
- data/test/basepack_test_app/app/components/author_grid.rb +3 -0
- data/test/basepack_test_app/app/components/book_form.rb +38 -0
- data/test/basepack_test_app/app/components/book_form_with_custom_fields.rb +21 -0
- data/test/basepack_test_app/app/components/book_form_with_defaults.rb +8 -0
- data/test/basepack_test_app/app/components/book_form_with_nested_attributes.rb +18 -0
- data/test/basepack_test_app/app/components/book_grid.rb +12 -0
- data/test/basepack_test_app/app/components/book_grid_filtering.rb +10 -0
- data/test/basepack_test_app/app/components/book_grid_loader.rb +24 -0
- data/test/basepack_test_app/app/components/book_grid_with_column_actions.rb +15 -0
- data/test/basepack_test_app/app/components/book_grid_with_custom_columns.rb +27 -0
- data/test/basepack_test_app/app/components/book_grid_with_default_values.rb +9 -0
- data/test/basepack_test_app/app/components/book_grid_with_extra_feedback.rb +8 -0
- data/test/basepack_test_app/app/components/book_grid_with_extra_filters.rb +14 -0
- data/test/basepack_test_app/app/components/book_grid_with_nested_attributes.rb +13 -0
- data/test/basepack_test_app/app/components/book_grid_with_overridden_columns.rb +15 -0
- data/test/basepack_test_app/app/components/book_grid_with_paging.rb +10 -0
- data/test/basepack_test_app/app/components/book_grid_with_persistence.rb +8 -0
- data/test/basepack_test_app/app/components/book_grid_with_scoped_authors.rb +8 -0
- data/test/basepack_test_app/app/components/book_grid_with_virtual_attributes.rb +21 -0
- data/test/basepack_test_app/app/components/book_paging_form_panel.rb +22 -0
- data/test/basepack_test_app/app/components/book_query_builder.rb +8 -0
- data/test/basepack_test_app/app/components/book_search_panel.rb +5 -0
- data/test/basepack_test_app/app/components/book_search_panel/javascripts/i18n_de.js +6 -0
- data/test/basepack_test_app/app/components/book_with_custom_primary_key_grid.rb +10 -0
- data/test/basepack_test_app/app/components/books_bound_to_author.rb +10 -0
- data/test/basepack_test_app/app/components/double_book_grid.rb +18 -0
- data/test/basepack_test_app/app/components/extras/book_presentation.rb +27 -0
- data/test/basepack_test_app/app/components/form_without_model.rb +21 -0
- data/test/basepack_test_app/app/components/generic_user_form.rb +12 -0
- data/test/basepack_test_app/app/components/lockable_book_form.rb +17 -0
- data/test/basepack_test_app/app/components/lockable_user_form.rb +7 -0
- data/test/basepack_test_app/app/components/paging_form_with_search.rb +40 -0
- data/test/basepack_test_app/app/components/simple_accordion.rb +11 -0
- data/test/basepack_test_app/app/components/simple_panel.rb +17 -0
- data/test/basepack_test_app/app/components/simple_tab_panel.rb +11 -0
- data/test/basepack_test_app/app/components/simple_window.rb +10 -0
- data/test/basepack_test_app/app/components/simple_wrapper.rb +7 -0
- data/test/basepack_test_app/app/components/some_accordion_panel.rb +22 -0
- data/test/basepack_test_app/app/components/some_auth_app.rb +32 -0
- data/test/basepack_test_app/app/components/some_border_layout.rb +28 -0
- data/test/basepack_test_app/app/components/some_simple_app.rb +35 -0
- data/test/basepack_test_app/app/components/some_tab_panel.rb +20 -0
- data/test/basepack_test_app/app/components/user_form.rb +25 -0
- data/test/basepack_test_app/app/components/user_form_with_default_fields.rb +8 -0
- data/test/basepack_test_app/app/components/user_grid.rb +8 -0
- data/test/basepack_test_app/app/components/user_grid_with_customized_form_fields.rb +18 -0
- data/test/basepack_test_app/app/components/window_component_loader.rb +27 -0
- data/test/basepack_test_app/app/controllers/application_controller.rb +9 -0
- data/test/basepack_test_app/app/controllers/components_controller.rb +10 -0
- data/test/basepack_test_app/app/controllers/welcome_controller.rb +9 -0
- data/test/basepack_test_app/app/helpers/application_helper.rb +8 -0
- data/test/basepack_test_app/app/helpers/embedded_components_helper.rb +2 -0
- data/test/basepack_test_app/app/models/address.rb +29 -0
- data/test/basepack_test_app/app/models/author.rb +38 -0
- data/test/basepack_test_app/app/models/book.rb +49 -0
- data/test/basepack_test_app/app/models/book_with_custom_primary_key.rb +26 -0
- data/test/basepack_test_app/app/models/role.rb +24 -0
- data/test/basepack_test_app/app/models/user.rb +29 -0
- data/test/basepack_test_app/app/presenters/forms/generic_user.rb +6 -0
- data/test/basepack_test_app/app/views/components/loadable_window.html.erb +9 -0
- data/test/basepack_test_app/app/views/components/simple_panel.html.erb +1 -0
- data/test/basepack_test_app/app/views/layouts/application.html.erb +12 -0
- data/test/basepack_test_app/app/views/layouts/components.html.erb +13 -0
- data/test/basepack_test_app/app/views/layouts/nested.html.erb +5 -0
- data/test/basepack_test_app/app/views/welcome/index.html.erb +10 -0
- data/test/basepack_test_app/config.ru +4 -0
- data/test/basepack_test_app/config/application.rb +57 -0
- data/test/basepack_test_app/config/boot.rb +13 -0
- data/test/basepack_test_app/config/cucumber.yml +8 -0
- data/test/basepack_test_app/config/database.yml.sample +41 -0
- data/test/basepack_test_app/config/database.yml.travis +15 -0
- data/test/basepack_test_app/config/environment.rb +6 -0
- data/test/basepack_test_app/config/environments/development.rb +22 -0
- data/test/basepack_test_app/config/environments/production.rb +49 -0
- data/test/basepack_test_app/config/environments/test.rb +35 -0
- data/test/basepack_test_app/config/initializers/backtrace_silencers.rb +7 -0
- data/test/basepack_test_app/config/initializers/data_mapper_logging.rb +3 -0
- data/test/basepack_test_app/config/initializers/inflections.rb +10 -0
- data/test/basepack_test_app/config/initializers/mime_types.rb +5 -0
- data/test/basepack_test_app/config/initializers/netzke.rb +9 -0
- data/test/basepack_test_app/config/initializers/secret_token.rb +7 -0
- data/test/basepack_test_app/config/initializers/sequel.rb +26 -0
- data/test/basepack_test_app/config/initializers/session_store.rb +8 -0
- data/test/basepack_test_app/config/locales/de.yml +35 -0
- data/test/basepack_test_app/config/locales/es.yml +96 -0
- data/test/basepack_test_app/config/routes.rb +68 -0
- data/test/basepack_test_app/db/development_structure.sql +88 -0
- data/test/basepack_test_app/db/migrate/20100914104207_create_users.rb +15 -0
- data/test/basepack_test_app/db/migrate/20100914104236_create_roles.rb +13 -0
- data/test/basepack_test_app/db/migrate/20101026185816_create_authors.rb +14 -0
- data/test/basepack_test_app/db/migrate/20101026190021_create_books.rb +19 -0
- data/test/basepack_test_app/db/migrate/20110101143818_create_addresses.rb +17 -0
- data/test/basepack_test_app/db/migrate/20110213213050_create_netzke_component_states.rb +20 -0
- data/test/basepack_test_app/db/migrate/20110701070052_create_book_with_custom_primary_keys.rb +15 -0
- data/test/basepack_test_app/db/migrate/20110901114016_add_last_read_at_to_books.rb +9 -0
- data/test/basepack_test_app/db/migrate/20110909071740_add_published_on_to_books.rb +5 -0
- data/test/basepack_test_app/db/schema.rb +81 -0
- data/test/basepack_test_app/db/seeds.rb +44 -0
- data/test/basepack_test_app/features/accordion_panel.feature +12 -0
- data/test/basepack_test_app/features/components_in_view.feature +11 -0
- data/test/basepack_test_app/features/form_panel.feature +142 -0
- data/test/basepack_test_app/features/grid_panel.feature +277 -0
- data/test/basepack_test_app/features/grid_panel_filters.feature +73 -0
- data/test/basepack_test_app/features/grid_panel_with_custom_primary_key.feature +15 -0
- data/test/basepack_test_app/features/grid_sorting.feature +47 -0
- data/test/basepack_test_app/features/i18n.feature +18 -0
- data/test/basepack_test_app/features/nested_attributes.feature +26 -0
- data/test/basepack_test_app/features/paging_form_panel.feature +43 -0
- data/test/basepack_test_app/features/search_in_grid.feature +49 -0
- data/test/basepack_test_app/features/simple_app.feature +15 -0
- data/test/basepack_test_app/features/simple_panel.feature +11 -0
- data/test/basepack_test_app/features/step_definitions/accordion_steps.rb +5 -0
- data/test/basepack_test_app/features/step_definitions/ext_steps.rb +16 -0
- data/test/basepack_test_app/features/step_definitions/form_panel_steps.rb +46 -0
- data/test/basepack_test_app/features/step_definitions/generic_steps.rb +44 -0
- data/test/basepack_test_app/features/step_definitions/grid_panel_steps.rb +186 -0
- data/test/basepack_test_app/features/step_definitions/pickle_steps.rb +100 -0
- data/test/basepack_test_app/features/step_definitions/web_steps.rb +219 -0
- data/test/basepack_test_app/features/support/env.rb +81 -0
- data/test/basepack_test_app/features/support/paths.rb +65 -0
- data/test/basepack_test_app/features/support/pickle.rb +24 -0
- data/test/basepack_test_app/features/support/selectors.rb +39 -0
- data/test/basepack_test_app/features/tab_panel.feature +12 -0
- data/test/basepack_test_app/features/validations_in_grid.feature +13 -0
- data/test/basepack_test_app/features/virtual_attributes.feature +16 -0
- data/test/basepack_test_app/features/window.feature +11 -0
- data/test/basepack_test_app/lib/tasks/.gitkeep +0 -0
- data/test/basepack_test_app/lib/tasks/cucumber.rake +71 -0
- data/test/basepack_test_app/lib/tasks/travis.rake +7 -0
- data/test/basepack_test_app/public/404.html +26 -0
- data/test/basepack_test_app/public/422.html +26 -0
- data/test/basepack_test_app/public/500.html +26 -0
- data/test/basepack_test_app/public/favicon.ico +0 -0
- data/test/basepack_test_app/public/images/header-deco.gif +0 -0
- data/test/basepack_test_app/public/images/rails.png +0 -0
- data/test/basepack_test_app/public/javascripts/application.js +2 -0
- data/test/basepack_test_app/public/javascripts/controls.js +965 -0
- data/test/basepack_test_app/public/javascripts/dragdrop.js +974 -0
- data/test/basepack_test_app/public/javascripts/effects.js +1123 -0
- data/test/basepack_test_app/public/javascripts/prototype.js +6001 -0
- data/test/basepack_test_app/public/javascripts/rails.js +175 -0
- data/test/basepack_test_app/public/robots.txt +5 -0
- data/test/basepack_test_app/public/stylesheets/.gitkeep +0 -0
- data/test/basepack_test_app/script/cucumber +10 -0
- data/test/basepack_test_app/script/rails +6 -0
- data/test/basepack_test_app/spec/components/form_panel_spec.rb +53 -0
- data/test/basepack_test_app/spec/components/grid_panel_spec.rb +10 -0
- data/test/basepack_test_app/spec/data_adapter/adapter_spec.rb +68 -0
- data/test/basepack_test_app/spec/data_adapter/attributes_spec.rb +56 -0
- data/test/basepack_test_app/spec/data_adapter/relation_extensions_spec.rb +125 -0
- data/test/basepack_test_app/spec/factories.rb +28 -0
- data/test/basepack_test_app/spec/spec_helper.rb +39 -0
- data/test/basepack_test_app/test/performance/browsing_test.rb +9 -0
- data/test/basepack_test_app/test/test_helper.rb +13 -0
- data/test/basepack_test_app/vendor/plugins/.gitkeep +0 -0
- data/test/console_with_fixtures.rb +4 -0
- data/test/fixtures/books.yml +11 -0
- data/test/fixtures/categories.yml +7 -0
- data/test/fixtures/cities.yml +21 -0
- data/test/fixtures/continents.yml +7 -0
- data/test/fixtures/countries.yml +9 -0
- data/test/fixtures/genres.yml +9 -0
- data/test/fixtures/roles.yml +8 -0
- data/test/fixtures/users.yml +11 -0
- data/test/schema.rb +10 -0
- data/test/test_helper.rb +21 -0
- data/test/unit/accordion_panel_test.rb +20 -0
- data/test/unit/active_record_basepack_test.rb +54 -0
- data/test/unit/fields_configuration_test.rb +18 -0
- data/test/unit/grid_panel_test.rb +52 -0
- data/test/unit/netzke_basepack_test.rb +4 -0
- data/test/unit/tab_panel_test.rb +21 -0
- data/uninstall.rb +1 -0
- metadata +332 -0
@@ -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,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,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,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,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
|