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,21 @@
|
|
1
|
+
class BookFormWithCustomFields < Netzke::Basepack::FormPanel
|
2
|
+
js_property :title, Book.model_name.human
|
3
|
+
|
4
|
+
def default_config
|
5
|
+
super.merge(
|
6
|
+
:model => "Book",
|
7
|
+
:record => Book.first,
|
8
|
+
# :mode => :lockable,
|
9
|
+
:items => [
|
10
|
+
:title,
|
11
|
+
{:name => :notes, :read_only => true},
|
12
|
+
:author__first_name,
|
13
|
+
:author__last_name,
|
14
|
+
:digitized,
|
15
|
+
:exemplars,
|
16
|
+
:last_read_at
|
17
|
+
]
|
18
|
+
)
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
class BookFormWithNestedAttributes < Netzke::Basepack::FormPanel
|
2
|
+
js_property :title, Book.model_name.human
|
3
|
+
|
4
|
+
def default_config
|
5
|
+
super.merge(
|
6
|
+
:model => "Book",
|
7
|
+
:record => Book.first,
|
8
|
+
:items => [
|
9
|
+
:title,
|
10
|
+
{:name => :author__first_name, :nested_attribute => true},
|
11
|
+
{:name => :author__last_name, :nested_attribute => true},
|
12
|
+
:digitized,
|
13
|
+
:exemplars
|
14
|
+
]
|
15
|
+
)
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
class BookGrid < Netzke::Basepack::GridPanel
|
2
|
+
title I18n.t('books', :default => "Books")
|
3
|
+
|
4
|
+
model "Book"
|
5
|
+
|
6
|
+
add_form_config :class_name => "BookForm"
|
7
|
+
edit_form_config :class_name => "BookForm"
|
8
|
+
multi_edit_form_config :class_name => "BookForm"
|
9
|
+
|
10
|
+
# We need to specify how we want to sort on this virtual column:
|
11
|
+
override_column :author__name, :sorting_scope => :sorted_by_author_name
|
12
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
class BookGridLoader < Netzke::Base
|
2
|
+
js_property :layout, :fit
|
3
|
+
|
4
|
+
component :book_grid_one, :class_name => "Netzke::Basepack::GridPanel", :model => "Book", :lazy_loading => true
|
5
|
+
component :book_grid_two, :class_name => "Netzke::Basepack::GridPanel", :model => "Book", :lazy_loading => true
|
6
|
+
|
7
|
+
action :load_one
|
8
|
+
action :load_two
|
9
|
+
|
10
|
+
js_method :on_load_one, <<-JS
|
11
|
+
function(){
|
12
|
+
this.loadNetzkeComponent({name: 'book_grid_one', container: this.id});
|
13
|
+
}
|
14
|
+
JS
|
15
|
+
|
16
|
+
js_method :on_load_two, <<-JS
|
17
|
+
function(){
|
18
|
+
this.loadNetzkeComponent({name: 'book_grid_two', container: this.id});
|
19
|
+
}
|
20
|
+
JS
|
21
|
+
|
22
|
+
js_property :bbar, [:load_one.action, :load_two.action]
|
23
|
+
|
24
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# Implements a column action :delete_row
|
2
|
+
class BookGridWithColumnActions < Netzke::Basepack::GridPanel
|
3
|
+
include Netzke::Basepack::ActionColumn
|
4
|
+
|
5
|
+
model "Book"
|
6
|
+
|
7
|
+
column_action :delete_row, :icon => "#{Netzke::Core.ext_uri}/resources/themes/images/default/tree/drop-no.gif"
|
8
|
+
|
9
|
+
js_method :on_delete_row, <<-JS
|
10
|
+
function(record){
|
11
|
+
this.getSelectionModel().select(record);
|
12
|
+
this.onDel();
|
13
|
+
}
|
14
|
+
JS
|
15
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
class BookGridWithCustomColumns < Netzke::Basepack::GridPanel
|
2
|
+
js_property :title, "Books"
|
3
|
+
|
4
|
+
model "Book"
|
5
|
+
|
6
|
+
column :author__first_name, :renderer => :my_renderer
|
7
|
+
column :author__last_name, :renderer => :uppercase
|
8
|
+
column :author__name, :flex => 1, :text => "Author"
|
9
|
+
column :title, :flex => 1
|
10
|
+
column :digitized
|
11
|
+
column :rating,
|
12
|
+
:editor => {
|
13
|
+
:trigger_action => :all,
|
14
|
+
:xtype => :combo,
|
15
|
+
:store => [[1, "Good"], [2, "Average"], [3, "Poor"]]
|
16
|
+
},
|
17
|
+
:renderer => "function(v){return ['', 'Good', 'Average', 'Poor'][v];}"
|
18
|
+
column :exemplars
|
19
|
+
column :updated_at
|
20
|
+
|
21
|
+
js_method :my_renderer, <<-JS
|
22
|
+
function(value){
|
23
|
+
return value ? "*" + value + "*" : "";
|
24
|
+
}
|
25
|
+
JS
|
26
|
+
|
27
|
+
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
class BookGridWithDefaultValues < Netzke::Basepack::GridPanel
|
2
|
+
model "Book"
|
3
|
+
js_property :title, "Books"
|
4
|
+
|
5
|
+
column :title, :default_value => "Lolita"
|
6
|
+
column :author__last_name, :default_value => Author.first.id
|
7
|
+
column :exemplars, :default_value => 100
|
8
|
+
column :digitized, :default_value => true
|
9
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# This requires a patch to Ext examples/ux/grid
|
2
|
+
class BookGridWithExtraFilters < Netzke::Basepack::GridPanel
|
3
|
+
js_include Netzke::Core.ext_path.join("examples", "ux/grid/filter/EneFilter.js")
|
4
|
+
js_include Netzke::Core.ext_path.join("examples", "ux/grid/menu/EneMenu.js")
|
5
|
+
|
6
|
+
Netzke::Core.external_ext_css << "#{Netzke::Core.ext_uri}/examples/ux/grid/css/EneMenu"
|
7
|
+
|
8
|
+
def default_config
|
9
|
+
super.merge(
|
10
|
+
:model => "Book",
|
11
|
+
:columns => [{:name => :title, :filter => {:type => :ene}}, :exemplars, :digitized, :notes]
|
12
|
+
)
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
class BookGridWithNestedAttributes < Netzke::Basepack::GridPanel
|
2
|
+
def configuration
|
3
|
+
super.merge(
|
4
|
+
:model => "Book",
|
5
|
+
:columns => [:title, {:name => :author__first_name, :nested_attribute => true}, {:name => :author__last_name, :nested_attribute => true}]
|
6
|
+
)
|
7
|
+
end
|
8
|
+
|
9
|
+
def default_fields_for_forms
|
10
|
+
[{:name => :title}, {:name => :author__first_name, :nested_attribute => true}, {:name => :author__last_name, :nested_attribute => true}]
|
11
|
+
end
|
12
|
+
|
13
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
class BookGridWithOverriddenColumns < Netzke::Basepack::GridPanel
|
2
|
+
model "Book"
|
3
|
+
|
4
|
+
# First way to override a column
|
5
|
+
override_column :title, :renderer => "uppercase"
|
6
|
+
|
7
|
+
# Second way to override a column
|
8
|
+
# def default_config
|
9
|
+
# super.tap do |c|
|
10
|
+
# c[:override_columns] = {
|
11
|
+
# :title => {:renderer => "uppercase"}
|
12
|
+
# }
|
13
|
+
# end
|
14
|
+
# end
|
15
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
class BookGridWithVirtualAttributes < Netzke::Basepack::GridPanel
|
2
|
+
js_property :title, "Books"
|
3
|
+
|
4
|
+
include Extras::BookPresentation
|
5
|
+
|
6
|
+
def default_config
|
7
|
+
super.merge(
|
8
|
+
:model => "Book",
|
9
|
+
:columns => default_fields_for_forms
|
10
|
+
)
|
11
|
+
end
|
12
|
+
|
13
|
+
def default_fields_for_forms
|
14
|
+
[
|
15
|
+
{:name => :title},
|
16
|
+
{:name => :author__first_name, :setter => author_first_name_setter},
|
17
|
+
{:name => :exemplars},
|
18
|
+
{:name => :in_abundance, :getter => in_abundance_getter}
|
19
|
+
]
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
class BookPagingFormPanel < Netzke::Basepack::PagingFormPanel
|
2
|
+
def default_config
|
3
|
+
super.merge({
|
4
|
+
:title => "Digitized books",
|
5
|
+
:model => "Book",
|
6
|
+
:record => Book.first,
|
7
|
+
# :scope => {:digitized => true},
|
8
|
+
:mode => :lockable,
|
9
|
+
:items => [{:layout => :hbox, :label_align => :top, :border => false, :defaults => {:border => false}, :items => [{
|
10
|
+
:flex => 2,
|
11
|
+
:layout => :anchor,
|
12
|
+
:defaults => {:anchor => "-8"},
|
13
|
+
:items => [:title, :notes, :digitized, :created_at, :updated_at, :last_read_at]
|
14
|
+
},{
|
15
|
+
:flex => 1,
|
16
|
+
:layout => :anchor,
|
17
|
+
:defaults => {:anchor => "-8"},
|
18
|
+
:items => [:author__name, {:name => :author__first_name, :read_only => true}, :exemplars, :published_on]
|
19
|
+
}]}]
|
20
|
+
})
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
# Grid with books that belong to the first author in the DB (assumes the existence of at least 1 author)
|
2
|
+
class BooksBoundToAuthor < Netzke::Basepack::GridPanel
|
3
|
+
def default_config
|
4
|
+
super.merge(
|
5
|
+
:model => "Book",
|
6
|
+
:scope => {:author_id => Author.first.id},
|
7
|
+
:strong_default_attrs => {:author_id => Author.first.id}
|
8
|
+
)
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
class DoubleBookGrid < Netzke::Base
|
2
|
+
js_property :layout, :border
|
3
|
+
|
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
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module Extras
|
2
|
+
module BookPresentation
|
3
|
+
# A setter that creates an author on the fly
|
4
|
+
def author_first_name_setter
|
5
|
+
lambda do |r,v|
|
6
|
+
|
7
|
+
data_adapter = Netzke::Basepack::DataAdapters::AbstractAdapter.adapter_class(Author).new(Author)
|
8
|
+
# cast v to integer, if possible
|
9
|
+
v = v.to_i if v.kind_of?(String) && v.match(/[[:digit:]]+/)
|
10
|
+
if v.is_a?(Integer)
|
11
|
+
r.author = data_adapter.find_record(v)
|
12
|
+
else
|
13
|
+
author = data_adapter.new_record(:first_name => v)
|
14
|
+
# Sequel doesn't know of save!
|
15
|
+
author.respond_to?(:save!) ? author.save! : author.save(:raise_on_save_failure => true)
|
16
|
+
r.author = author
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
# A getter that returns "YES" if exemplars are more than 3, "NO" otherwise
|
22
|
+
def in_abundance_getter
|
23
|
+
lambda {|r| r.exemplars.to_i > 3 ? "YES" : "NO"}
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,21 @@
|
|
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
|
+
)
|
15
|
+
end
|
16
|
+
|
17
|
+
def netzke_submit_endpoint(params)
|
18
|
+
data = ActiveSupport::JSON.decode(params[:data])
|
19
|
+
{:netzke_feedback => data.each_pair.map{ |k,v| "#{k.humanize}: #{v}" }.join("<br/>")}
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
class LockableBookForm < BookForm
|
2
|
+
def default_config
|
3
|
+
super.merge(:mode => :lockable)
|
4
|
+
end
|
5
|
+
|
6
|
+
def configuration
|
7
|
+
sup = super
|
8
|
+
sup.merge(
|
9
|
+
:items => sup[:items].reject{ |i| i.is_a?(Hash) && i[:name] == :author__first_name } + [{
|
10
|
+
:xtype => :compositefield,
|
11
|
+
:defaults => {:flex => 1},
|
12
|
+
:field_label => "Author name (first, last)",
|
13
|
+
:items => [{:name => :author__first_name, :nested_attribute => true}, {:name => :author__last_name, :nested_attribute => true}]
|
14
|
+
}]
|
15
|
+
)
|
16
|
+
end
|
17
|
+
end
|