luca 0.9.7 → 0.9.8
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.
- data/CHANGELOG +38 -0
- data/Gemfile +1 -0
- data/Gemfile.lock +27 -0
- data/README.md +45 -42
- data/ROADMAP +6 -29
- data/{assets → app/assets}/images/glyphicons-halflings-white.png +0 -0
- data/{assets → app/assets}/images/glyphicons-halflings.png +0 -0
- data/app/assets/javascripts/luca/basic.coffee +8 -0
- data/{src → app/assets/javascripts/luca}/components/application.coffee +153 -40
- data/{src → app/assets/javascripts/luca}/components/base_toolbar.coffee +2 -2
- data/{src → app/assets/javascripts/luca}/components/collection_loader_view.coffee +0 -0
- data/{src → app/assets/javascripts/luca}/components/collection_view.coffee +45 -104
- data/app/assets/javascripts/luca/components/controller.coffee +99 -0
- data/{src/core/field.coffee → app/assets/javascripts/luca/components/fields/base.coffee} +1 -1
- data/{src → app/assets/javascripts/luca}/components/fields/button_field.coffee +1 -2
- data/{src → app/assets/javascripts/luca}/components/fields/checkbox_array.coffee +0 -0
- data/{src → app/assets/javascripts/luca}/components/fields/checkbox_field.coffee +0 -0
- data/{src → app/assets/javascripts/luca}/components/fields/file_upload_field.coffee +0 -0
- data/{src → app/assets/javascripts/luca}/components/fields/hidden_field.coffee +0 -0
- data/{src → app/assets/javascripts/luca}/components/fields/label_field.coffee +0 -0
- data/{src → app/assets/javascripts/luca}/components/fields/select_field.coffee +8 -4
- data/{src → app/assets/javascripts/luca}/components/fields/text_area_field.coffee +3 -2
- data/{src → app/assets/javascripts/luca}/components/fields/text_field.coffee +2 -3
- data/{src → app/assets/javascripts/luca}/components/fields/type_ahead_field.coffee +0 -0
- data/{src → app/assets/javascripts/luca}/components/form_button_toolbar.coffee +0 -0
- data/{src → app/assets/javascripts/luca}/components/form_view.coffee +111 -44
- data/{src → app/assets/javascripts/luca}/components/grid_view.coffee +6 -6
- data/{src → app/assets/javascripts/luca}/components/index.coffee +0 -0
- data/app/assets/javascripts/luca/components/load_mask.coffee +8 -0
- data/app/assets/javascripts/luca/components/multi_collection_view.coffee +92 -0
- data/{src → app/assets/javascripts/luca}/components/nav_bar.coffee +5 -1
- data/app/assets/javascripts/luca/components/page_controller.coffee +7 -0
- data/{src → app/assets/javascripts/luca}/components/pagination_control.coffee +13 -13
- data/{src → app/assets/javascripts/luca}/components/record_manager.coffee +0 -0
- data/{src → app/assets/javascripts/luca}/components/router.coffee +6 -1
- data/app/assets/javascripts/luca/components/table_view.coffee +89 -0
- data/{src → app/assets/javascripts/luca}/components/template.coffee +0 -0
- data/{src → app/assets/javascripts/luca}/components/toolbar_dialog.coffee +0 -0
- data/{src → app/assets/javascripts/luca}/concerns/application_event_bindings.coffee +1 -1
- data/app/assets/javascripts/luca/concerns/collection_event_bindings.coffee +44 -0
- data/{src → app/assets/javascripts/luca}/concerns/deferrable.coffee +1 -2
- data/{src/plugins → app/assets/javascripts/luca/concerns}/development_tool_helpers.coffee +1 -1
- data/{src → app/assets/javascripts/luca}/concerns/dom_helpers.coffee +10 -7
- data/{src → app/assets/javascripts/luca}/concerns/enhanced_properties.coffee +0 -0
- data/app/assets/javascripts/luca/concerns/filterable.coffee +104 -0
- data/{src → app/assets/javascripts/luca}/concerns/grid_layout.coffee +0 -0
- data/{src → app/assets/javascripts/luca}/concerns/loadmaskable.coffee +17 -11
- data/{src → app/assets/javascripts/luca}/concerns/local_storage.coffee +0 -0
- data/{src → app/assets/javascripts/luca}/concerns/modal_view.coffee +0 -0
- data/{src → app/assets/javascripts/luca}/concerns/model_presenter.coffee +0 -0
- data/{src → app/assets/javascripts/luca}/concerns/paginatable.coffee +6 -14
- data/app/assets/javascripts/luca/concerns/query_collection_bindings.coffee +46 -0
- data/app/assets/javascripts/luca/concerns/sortable.coffee +69 -0
- data/app/assets/javascripts/luca/concerns/state_model.coffee +44 -0
- data/{src → app/assets/javascripts/luca}/concerns/templating.coffee +4 -1
- data/app/assets/javascripts/luca/config.coffee +49 -0
- data/{src → app/assets/javascripts/luca}/containers/card_view.coffee +30 -13
- data/{src/core → app/assets/javascripts/luca/containers}/container.coffee +57 -18
- data/app/assets/javascripts/luca/containers/index.coffee +2 -0
- data/{src → app/assets/javascripts/luca}/containers/modal_view.coffee +1 -1
- data/{src → app/assets/javascripts/luca}/containers/panel_toolbar.coffee +1 -1
- data/{src → app/assets/javascripts/luca}/containers/tab_view.coffee +1 -1
- data/{src → app/assets/javascripts/luca}/containers/viewport.coffee +4 -4
- data/{src → app/assets/javascripts/luca}/core/collection.coffee +58 -49
- data/{src/plugins → app/assets/javascripts/luca/core}/events.coffee +34 -2
- data/app/assets/javascripts/luca/core/index.coffee +12 -0
- data/{src → app/assets/javascripts/luca}/core/model.coffee +1 -1
- data/{src → app/assets/javascripts/luca}/core/observer.coffee +0 -0
- data/app/assets/javascripts/luca/core/panel.coffee +112 -0
- data/app/assets/javascripts/luca/core/registry/component_definition.coffee +318 -0
- data/{src → app/assets/javascripts/luca/core/registry}/concerns.coffee +0 -0
- data/app/assets/javascripts/luca/core/registry/index.coffee +4 -0
- data/app/assets/javascripts/luca/core/registry/meta_data.coffee +97 -0
- data/{src/core → app/assets/javascripts/luca/core/registry}/registry.coffee +10 -6
- data/app/assets/javascripts/luca/core/templates.coffee +47 -0
- data/{src → app/assets/javascripts/luca}/core/view.coffee +69 -11
- data/app/assets/javascripts/luca/dependencies.coffee +7 -0
- data/{src/tools → app/assets/javascripts/luca/development}/code_mirror_field.coffee +2 -1
- data/{src/tools → app/assets/javascripts/luca/development}/console.coffee +6 -5
- data/app/assets/javascripts/luca/development/index.coffee +2 -0
- data/{src → app/assets/javascripts/luca}/framework.coffee +74 -90
- data/app/assets/javascripts/luca/index.coffee +8 -0
- data/{src → app/assets/javascripts/luca}/managers/collection_manager.coffee +16 -7
- data/app/assets/javascripts/luca/managers/index.coffee +2 -0
- data/app/assets/javascripts/luca/managers/socket_manager.coffee +66 -0
- data/{src → app/assets/javascripts/luca}/templates/components/bootstrap_form_controls.jst.ejs +0 -0
- data/{src → app/assets/javascripts/luca}/templates/components/collection_loader_view.jst.ejs +0 -0
- data/{src → app/assets/javascripts/luca}/templates/components/form_alert.jst.ejs +0 -0
- data/{src → app/assets/javascripts/luca}/templates/components/grid_view.jst.ejs +0 -0
- data/{src → app/assets/javascripts/luca}/templates/components/grid_view_empty_text.jst.ejs +0 -0
- data/{src → app/assets/javascripts/luca}/templates/components/load_mask.jst.ejs +0 -0
- data/{src → app/assets/javascripts/luca}/templates/components/nav_bar.jst.ejs +0 -0
- data/{src → app/assets/javascripts/luca}/templates/components/pagination.jst.ejs +0 -0
- data/{src/templates → app/assets/javascripts/luca/templates/components}/table_view.jst.ejs +0 -0
- data/{src → app/assets/javascripts/luca}/templates/containers/basic.jst.ejs +0 -0
- data/{src → app/assets/javascripts/luca}/templates/containers/tab_selector_container.jst.ejs +0 -0
- data/{src → app/assets/javascripts/luca}/templates/containers/tab_view.jst.ejs +0 -0
- data/{src → app/assets/javascripts/luca}/templates/containers/toolbar_wrapper.jst.ejs +0 -0
- data/{src → app/assets/javascripts/luca}/templates/fields/button_field.jst.ejs +0 -0
- data/{src → app/assets/javascripts/luca}/templates/fields/button_field_link.jst.ejs +0 -0
- data/{src → app/assets/javascripts/luca}/templates/fields/checkbox_array.jst.ejs +0 -0
- data/{src → app/assets/javascripts/luca}/templates/fields/checkbox_array_item.jst.ejs +0 -0
- data/{src → app/assets/javascripts/luca}/templates/fields/checkbox_field.jst.ejs +0 -0
- data/{src → app/assets/javascripts/luca}/templates/fields/file_upload_field.jst.ejs +0 -0
- data/{src → app/assets/javascripts/luca}/templates/fields/hidden_field.jst.ejs +0 -0
- data/{src → app/assets/javascripts/luca}/templates/fields/select_field.jst.ejs +0 -0
- data/{src → app/assets/javascripts/luca}/templates/fields/text_area_field.jst.ejs +1 -1
- data/{src → app/assets/javascripts/luca}/templates/fields/text_field.jst.ejs +1 -1
- data/app/assets/javascripts/luca/util/deprecations.coffee +18 -0
- data/app/assets/javascripts/luca/util/index.coffee +3 -0
- data/app/assets/javascripts/luca/util/logging.coffee +15 -0
- data/{src/util.coffee → app/assets/javascripts/luca/util/luca.coffee} +20 -4
- data/{src/core → app/assets/javascripts/luca/util}/script_loader.coffee +0 -0
- data/app/assets/javascripts/luca-ui.js +1 -0
- data/{src/stylesheets → app/assets/stylesheets/luca}/components/checkbox_array.scss +0 -0
- data/app/assets/stylesheets/luca/components/form_view.scss +7 -0
- data/{src/stylesheets → app/assets/stylesheets/luca}/components/grid_view.scss +0 -0
- data/{src/stylesheets → app/assets/stylesheets/luca}/components/load_mask.scss +0 -0
- data/{src/stylesheets → app/assets/stylesheets/luca}/components/viewport.scss +0 -0
- data/{src/stylesheets → app/assets/stylesheets/luca}/containers/container.scss +0 -0
- data/{src/stylesheets → app/assets/stylesheets/luca}/containers/modal_view.scss +0 -0
- data/{src/stylesheets → app/assets/stylesheets/luca}/containers/panels.scss +0 -0
- data/{src/stylesheets → app/assets/stylesheets/luca}/containers/tab_view.scss +0 -0
- data/{src/stylesheets/tools → app/assets/stylesheets/luca/development}/console.scss +0 -0
- data/app/assets/stylesheets/luca/development/index.css +3 -0
- data/app/assets/stylesheets/luca/index.css +4 -0
- data/{src/stylesheets → app/assets/stylesheets/luca}/normalize.scss +0 -0
- data/app.rb +2 -4
- data/lib/generators/luca/application/application_generator.rb +12 -8
- data/lib/generators/luca/application/templates/controller.rb +0 -2
- data/lib/generators/luca/application/templates/index.html.erb +12 -0
- data/lib/generators/luca/application/templates/index.html.haml +1 -0
- data/lib/generators/luca/application/templates/javascripts/application.coffee +18 -0
- data/lib/generators/luca/application/templates/javascripts/collection_manager.coffee +2 -0
- data/lib/generators/luca/application/templates/javascripts/config.coffee +3 -0
- data/lib/generators/luca/application/templates/javascripts/{dependencies.js.coffee → dependencies.coffee} +1 -0
- data/lib/generators/luca/application/templates/javascripts/home.jst.ejs +2 -0
- data/lib/generators/luca/application/templates/javascripts/index.coffee +15 -0
- data/lib/generators/luca/application/templates/javascripts/router.coffee +4 -0
- data/lib/luca/component_documentation.rb +72 -0
- data/lib/luca/rails/engine.rb +4 -0
- data/lib/luca/rails/version.rb +1 -1
- data/lib/luca.rb +1 -1
- data/lib/railties/luca/tasks.rake +31 -0
- data/luca.gemspec +1 -0
- data/spec/components/controller_spec.coffee +62 -0
- data/spec/components/form_view_spec.coffee +4 -0
- data/spec/concerns/collection_event_bindings_spec.coffee +15 -0
- data/spec/concerns/dom_helpers_spec.coffee +2 -2
- data/spec/concerns/filterable_spec.coffee +4 -4
- data/spec/concerns/state_model_spec.coffee +50 -0
- data/spec/core/collection_spec.coffee +25 -0
- data/spec/{concerns_spec.coffee → core/concerns_spec.coffee} +0 -0
- data/spec/core/container_spec.coffee +57 -5
- data/spec/core/define_spec.coffee +116 -0
- data/spec/core/events_spec.coffee +26 -0
- data/spec/core/field_spec.coffee +4 -0
- data/spec/{framework_spec.coffee → core/framework_spec.coffee} +31 -2
- data/spec/{util_spec.coffee → core/util_spec.coffee} +2 -2
- data/spec/core/view_spec.coffee +65 -1
- data/spec/dependencies/index.coffee +3 -0
- data/{assets/javascripts → spec}/dependencies/jasmine-html.js +0 -0
- data/{assets/javascripts → spec}/dependencies/jasmine.js +0 -0
- data/{assets/javascripts → spec}/dependencies/sinon.js +0 -0
- data/spec/luca-spec.coffee +9 -0
- data/vendor/assets/javascripts/backbone-ext.js +21 -0
- data/vendor/assets/javascripts/backbone-min.js +38 -0
- data/vendor/assets/javascripts/backbone-query.min.js +1 -0
- data/vendor/assets/javascripts/bootstrap.min.js +7 -0
- data/{assets/javascripts/dependencies → vendor/assets/javascripts}/codemirror-coffeescript.js +0 -0
- data/{assets/javascripts/dependencies → vendor/assets/javascripts}/codemirror-css.js +0 -0
- data/{assets/javascripts/dependencies → vendor/assets/javascripts}/codemirror-html.js +0 -0
- data/{assets/javascripts/dependencies → vendor/assets/javascripts}/codemirror-javascript.js +0 -0
- data/{assets/javascripts/dependencies → vendor/assets/javascripts}/codemirror-less.js +0 -0
- data/vendor/assets/javascripts/codemirror-ui.js +503 -0
- data/{assets/javascripts/dependencies → vendor/assets/javascripts}/codemirror-vim.js +0 -0
- data/{assets/javascripts/dependencies → vendor/assets/javascripts}/codemirror.js +0 -0
- data/vendor/assets/javascripts/inflections.js +656 -0
- data/vendor/assets/javascripts/jasmine-html.js +190 -0
- data/vendor/assets/javascripts/jasmine.js +2476 -0
- data/{assets/javascripts/dependencies → vendor/assets/javascripts}/jquery.js +0 -0
- data/vendor/assets/javascripts/luca-spec.js +11 -0
- data/{assets/javascripts/dependencies → vendor/assets/javascripts}/modal.js +0 -0
- data/{assets/javascripts/dependencies → vendor/assets/javascripts}/modernizr.min.js +0 -0
- data/{assets/javascripts/dependencies → vendor/assets/javascripts}/prettify.js +0 -0
- data/vendor/assets/javascripts/sinon.js +3469 -0
- data/{assets/javascripts/dependencies → vendor/assets/javascripts}/spin-min.js +0 -0
- data/{assets/javascripts/dependencies → vendor/assets/javascripts}/underscore-min.js +0 -0
- data/vendor/assets/javascripts/underscore-string.min.js +1 -0
- data/vendor/assets/stylesheets/bootstrap-responsive.min.css +9 -0
- data/vendor/assets/stylesheets/bootstrap.min.css +9 -0
- data/{assets → vendor/assets}/stylesheets/codemirror-blackboard.css +0 -0
- data/{assets → vendor/assets}/stylesheets/codemirror-monokai.css +0 -0
- data/{assets → vendor/assets}/stylesheets/codemirror.css +0 -0
- data/{assets → vendor/assets}/stylesheets/jasmine.css +0 -0
- data/vendor/assets/stylesheets/luca-ui.css +0 -601
- data/views/jasmine.erb +2 -2
- metadata +190 -299
- data/assets/javascripts/dependencies/backbone-min.js +0 -37
- data/assets/javascripts/dependencies/backbone-query.min.js +0 -1
- data/assets/javascripts/dependencies/bootstrap.min.js +0 -7
- data/assets/javascripts/dependencies/coffee-script.js +0 -12189
- data/assets/javascripts/dependencies/underscore-string.min.js +0 -14
- data/assets/javascripts/dependencies.coffee +0 -5
- data/assets/javascripts/luca/index.coffee +0 -1
- data/assets/javascripts/luca-templates.js +0 -1
- data/assets/javascripts/luca-ui-base.coffee +0 -1
- data/assets/javascripts/luca-ui-bootstrap.js +0 -1
- data/assets/javascripts/luca-ui-development-tools.coffee +0 -9
- data/assets/javascripts/luca-ui-full.js +0 -3
- data/assets/javascripts/luca-ui-spec.coffee +0 -2
- data/assets/javascripts/luca-ui.js +0 -3
- data/assets/javascripts/sandbox/application.coffee +0 -57
- data/assets/javascripts/sandbox/config.coffee +0 -7
- data/assets/javascripts/sandbox/router.coffee +0 -24
- data/assets/javascripts/sandbox/templates/builder/component_list.luca +0 -1
- data/assets/javascripts/sandbox/templates/builder.luca +0 -2
- data/assets/javascripts/sandbox/templates/main.luca +0 -53
- data/assets/javascripts/sandbox/templates/sandbox/docs_index.luca +0 -1
- data/assets/javascripts/sandbox/templates/sandbox/navigation.luca +0 -8
- data/assets/javascripts/sandbox/templates/sandbox/readme.luca +0 -30
- data/assets/javascripts/sandbox/templates/sandbox.luca +0 -1
- data/assets/javascripts/sandbox/views/builder/builder_canvas.coffee +0 -3
- data/assets/javascripts/sandbox/views/builder/builder_editor.coffee +0 -6
- data/assets/javascripts/sandbox/views/builder/component_list.coffee +0 -38
- data/assets/javascripts/sandbox/views/builder/project_browser.coffee +0 -14
- data/assets/javascripts/sandbox/views/builder.coffee +0 -133
- data/assets/javascripts/sandbox/views/docs_controller.coffee +0 -7
- data/assets/javascripts/sandbox/views/inspector/instance_filter.coffee +0 -18
- data/assets/javascripts/sandbox/views/inspector/instance_list.coffee +0 -0
- data/assets/javascripts/sandbox/views/inspector.coffee +0 -11
- data/assets/javascripts/sandbox/views/top_navigation.coffee +0 -4
- data/assets/javascripts/sandbox.coffee +0 -7
- data/assets/javascripts/spec-dependencies.coffee +0 -4
- data/assets/stylesheets/bootstrap-responsive.min.css +0 -2
- data/assets/stylesheets/bootstrap.min.css +0 -727
- data/assets/stylesheets/luca-ui-bootstrap.css +0 -4
- data/assets/stylesheets/luca-ui-development-tools.css +0 -5
- data/assets/stylesheets/luca-ui-full.css +0 -3
- data/assets/stylesheets/luca-ui-spec.css +0 -3
- data/assets/stylesheets/luca-ui.css +0 -3
- data/assets/stylesheets/prettify.css +0 -40
- data/assets/stylesheets/sandbox/builder.scss +0 -79
- data/assets/stylesheets/sandbox/sandbox.scss +0 -18
- data/assets/stylesheets/sandbox.css +0 -3
- data/assets/stylesheets/themes/amelia-bootstrap.css +0 -826
- data/assets/stylesheets/themes/slate-bootstrap.css +0 -797
- data/assets/stylesheets/themes/superhero-bootstrap.css +0 -830
- data/lib/generators/luca/application/templates/javascripts/application.js +0 -28
- data/lib/generators/luca/application/templates/javascripts/application.js.coffee +0 -20
- data/lib/generators/luca/application/templates/javascripts/config.js +0 -15
- data/lib/generators/luca/application/templates/javascripts/config.js.coffee +0 -9
- data/lib/generators/luca/application/templates/javascripts/dependencies.js +0 -5
- data/lib/generators/luca/application/templates/javascripts/index.js +0 -9
- data/lib/generators/luca/application/templates/javascripts/index.js.coffee +0 -9
- data/lib/generators/luca/application/templates/javascripts/main.js +0 -8
- data/lib/generators/luca/application/templates/javascripts/main.js.coffee +0 -3
- data/lib/generators/luca/application/templates/javascripts/main.jst.ejs +0 -1
- data/lib/generators/luca/application/templates/javascripts/router.js +0 -12
- data/lib/generators/luca/application/templates/javascripts/router.js.coffee +0 -7
- data/spec/containers/column_view_spec.coffee +0 -0
- data/spec/containers/split_view_spec.coffee +0 -0
- data/spec/define_spec.coffee +0 -13
- data/src/components/controller.coffee +0 -65
- data/src/components/load_mask.coffee +0 -3
- data/src/components/multi_collection_view.coffee +0 -121
- data/src/components/page_controller.coffee +0 -2
- data/src/components/table_view.coffee +0 -62
- data/src/concerns/collection_event_bindings.coffee +0 -26
- data/src/concerns/filterable.coffee +0 -82
- data/src/concerns/state_model.coffee +0 -16
- data/src/containers/column_view.coffee +0 -42
- data/src/containers/page_view.coffee +0 -2
- data/src/containers/panel_view.coffee +0 -23
- data/src/containers/split_view.coffee +0 -8
- data/src/core/core.coffee +0 -0
- data/src/core/meta_data.coffee +0 -37
- data/src/core/panel.coffee +0 -118
- data/src/define.coffee +0 -170
- data/src/index.coffee +0 -25
- data/src/managers/socket_manager.coffee +0 -54
- data/src/samples/definition.coffee +0 -49
- data/src/stylesheets/base.scss +0 -0
- data/src/stylesheets/components/form_view.scss +0 -59
- data/src/stylesheets/components/toolbar.scss +0 -0
- data/src/stylesheets/tools/class_browser.scss +0 -32
- data/src/stylesheets/tools/code_editor.scss +0 -24
- data/src/stylesheets/tools/component_tester.scss +0 -26
- data/src/tools/application_inspector.coffee +0 -2
- data/src/tools/code_editor.coffee +0 -258
- data/src/tools/coffee_script_editor.coffee +0 -82
- data/src/tools/collection_inspector.coffee +0 -4
- data/src/tools/collections/components.coffee +0 -59
- data/src/tools/collections/instances.coffee +0 -15
- data/src/tools/component_tester.coffee +0 -462
- data/src/tools/models/components.coffee +0 -25
- data/src/tools/models/instance.coffee +0 -2
- data/src/tools/templates/component_tester/help.luca +0 -14
- data/vendor/assets/javascripts/luca-ui-base.js +0 -5304
- data/vendor/assets/javascripts/luca-ui-bootstrap.js +0 -9
- data/vendor/assets/javascripts/luca-ui-development-tools.js +0 -18561
- data/vendor/assets/javascripts/luca-ui-development-tools.min.js +0 -15
- data/vendor/assets/javascripts/luca-ui-full.js +0 -6319
- data/vendor/assets/javascripts/luca-ui-full.min.js +0 -9
- data/vendor/assets/javascripts/luca-ui-spec.js +0 -6815
- data/vendor/assets/javascripts/luca-ui-templates.js +0 -92
- data/vendor/assets/javascripts/luca-ui.js +0 -6234
- data/vendor/assets/javascripts/luca-ui.min.js +0 -5
- data/vendor/assets/luca-ui/base.css +0 -85
- data/vendor/assets/luca-ui/components/application.js +0 -91
- data/vendor/assets/luca-ui/components/base_toolbar.js +0 -23
- data/vendor/assets/luca-ui/components/controller.js +0 -38
- data/vendor/assets/luca-ui/components/fields/button_field.js +0 -45
- data/vendor/assets/luca-ui/components/fields/checkbox_field.js +0 -43
- data/vendor/assets/luca-ui/components/fields/file_upload_field.js +0 -20
- data/vendor/assets/luca-ui/components/fields/hidden_field.js +0 -20
- data/vendor/assets/luca-ui/components/fields/select_field.js +0 -97
- data/vendor/assets/luca-ui/components/fields/text_area_field.js +0 -48
- data/vendor/assets/luca-ui/components/fields/text_field.js +0 -46
- data/vendor/assets/luca-ui/components/fields/type_ahead_field.js +0 -13
- data/vendor/assets/luca-ui/components/form_button_toolbar.js +0 -32
- data/vendor/assets/luca-ui/components/form_view.css +0 -32
- data/vendor/assets/luca-ui/components/form_view.js +0 -207
- data/vendor/assets/luca-ui/components/grid_view.css +0 -76
- data/vendor/assets/luca-ui/components/grid_view.js +0 -202
- data/vendor/assets/luca-ui/components/record_manager.js +0 -207
- data/vendor/assets/luca-ui/components/router.js +0 -36
- data/vendor/assets/luca-ui/components/template.js +0 -26
- data/vendor/assets/luca-ui/components/toolbar.css +0 -11
- data/vendor/assets/luca-ui/containers/card_view.js +0 -98
- data/vendor/assets/luca-ui/containers/column_view.js +0 -52
- data/vendor/assets/luca-ui/containers/container.css +0 -3
- data/vendor/assets/luca-ui/containers/modal_view.css +0 -0
- data/vendor/assets/luca-ui/containers/modal_view.js +0 -87
- data/vendor/assets/luca-ui/containers/panel_view.js +0 -34
- data/vendor/assets/luca-ui/containers/split_view.js +0 -13
- data/vendor/assets/luca-ui/containers/tab_view.css +0 -16
- data/vendor/assets/luca-ui/containers/tab_view.js +0 -80
- data/vendor/assets/luca-ui/containers/viewport.js +0 -18
- data/vendor/assets/luca-ui/core/collection.js +0 -221
- data/vendor/assets/luca-ui/core/container.js +0 -205
- data/vendor/assets/luca-ui/core/field.js +0 -59
- data/vendor/assets/luca-ui/core/observer.js +0 -42
- data/vendor/assets/luca-ui/core/view.js +0 -127
- data/vendor/assets/luca-ui/framework.js +0 -110
- data/vendor/assets/luca-ui/index.js +0 -5
- data/vendor/assets/luca-ui/managers/collection_manager.js +0 -98
- data/vendor/assets/luca-ui/managers/socket_manager.js +0 -52
- data/vendor/assets/luca-ui/modules/deferrable.js +0 -21
- data/vendor/assets/luca-ui/modules/local_storage.js +0 -81
- data/vendor/assets/luca-ui/normalize.css +0 -359
- data/vendor/assets/luca-ui/stylesheets/base.css +0 -85
- data/vendor/assets/luca-ui/stylesheets/components/form_view.css +0 -32
- data/vendor/assets/luca-ui/stylesheets/components/grid_view.css +0 -76
- data/vendor/assets/luca-ui/stylesheets/components/toolbar.css +0 -11
- data/vendor/assets/luca-ui/stylesheets/containers/container.css +0 -3
- data/vendor/assets/luca-ui/stylesheets/containers/modal_view.css +0 -0
- data/vendor/assets/luca-ui/stylesheets/containers/tab_view.css +0 -16
- data/vendor/assets/luca-ui/stylesheets/normalize.css +0 -359
- data/vendor/assets/luca-ui/templates/components/bootstrap_form_controls.js +0 -4
- data/vendor/assets/luca-ui/templates/components/form_view.js +0 -4
- data/vendor/assets/luca-ui/templates/components/grid_view.js +0 -4
- data/vendor/assets/luca-ui/templates/components/grid_view_empty_text.js +0 -4
- data/vendor/assets/luca-ui/templates/containers/basic.js +0 -4
- data/vendor/assets/luca-ui/templates/containers/tab_selector_container.js +0 -4
- data/vendor/assets/luca-ui/templates/containers/tab_view.js +0 -4
- data/vendor/assets/luca-ui/templates/containers/toolbar_wrapper.js +0 -4
- data/vendor/assets/luca-ui/templates/fields/button_field.js +0 -4
- data/vendor/assets/luca-ui/templates/fields/button_field_link.js +0 -4
- data/vendor/assets/luca-ui/templates/fields/checkbox_field.js +0 -4
- data/vendor/assets/luca-ui/templates/fields/file_upload_field.js +0 -4
- data/vendor/assets/luca-ui/templates/fields/hidden_field.js +0 -4
- data/vendor/assets/luca-ui/templates/fields/select_field.js +0 -4
- data/vendor/assets/luca-ui/templates/fields/text_area_field.js +0 -4
- data/vendor/assets/luca-ui/templates/fields/text_field.js +0 -4
- data/vendor/assets/luca-ui/templates/sample/contents.js +0 -4
- data/vendor/assets/luca-ui/templates/sample/welcome.js +0 -4
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
collection = Luca.define 'Luca.Collection'
|
|
2
|
-
|
|
3
|
-
if Backbone.QueryCollection?
|
|
4
|
-
collection.extends 'Backbone.QueryCollection'
|
|
5
|
-
else
|
|
6
|
-
collection.extends 'Backbone.Collection'
|
|
7
|
-
|
|
2
|
+
collection.extends 'Backbone.QueryCollection'
|
|
8
3
|
collection.includes 'Luca.Events'
|
|
9
4
|
|
|
5
|
+
collection.triggers "after:initialize",
|
|
6
|
+
"before:fetch",
|
|
7
|
+
"after:response"
|
|
8
|
+
|
|
10
9
|
collection.defines
|
|
11
10
|
model: Luca.Model
|
|
12
11
|
# cachedMethods refers to a list of methods on the collection
|
|
@@ -25,7 +24,6 @@ collection.defines
|
|
|
25
24
|
|
|
26
25
|
initialize: (models=[], @options)->
|
|
27
26
|
_.extend @, @options
|
|
28
|
-
@setupMethodCaching()
|
|
29
27
|
@_reset()
|
|
30
28
|
|
|
31
29
|
# By specifying a @cache_key property or method, you can instruct
|
|
@@ -37,7 +35,7 @@ collection.defines
|
|
|
37
35
|
console.log 'The @cached property of Luca.Collection is being deprecated. Please change to cache_key'
|
|
38
36
|
|
|
39
37
|
if @cache_key ||= @cached
|
|
40
|
-
@bootstrap_cache_key =
|
|
38
|
+
@bootstrap_cache_key = Luca.util.read(@cache_key)
|
|
41
39
|
|
|
42
40
|
if @registerAs or @registerWith
|
|
43
41
|
console.log "This configuration API is deprecated. use @name and @manager properties instead"
|
|
@@ -58,8 +56,8 @@ collection.defines
|
|
|
58
56
|
# to be scoped with some sort of unique id, as say some sort of belongsTo relationship
|
|
59
57
|
# then you can specify @registerAs as a method()
|
|
60
58
|
if @manager
|
|
61
|
-
@name ||= @cache_key
|
|
62
|
-
@name =
|
|
59
|
+
@name ||= Luca.util.read(@cache_key)
|
|
60
|
+
@name = Luca.util.read(@name)
|
|
63
61
|
|
|
64
62
|
unless @private or @anonymous
|
|
65
63
|
@bind "after:initialize", ()=>
|
|
@@ -70,7 +68,7 @@ collection.defines
|
|
|
70
68
|
# locally in localStorage
|
|
71
69
|
if @useLocalStorage is true and window.localStorage?
|
|
72
70
|
table = @bootstrap_cache_key || @name
|
|
73
|
-
throw "Must specify
|
|
71
|
+
throw "Must specify a cache_key property or method to use localStorage"
|
|
74
72
|
@localStorage = new Luca.LocalStore( table )
|
|
75
73
|
|
|
76
74
|
# Populating a collection with local data
|
|
@@ -92,6 +90,9 @@ collection.defines
|
|
|
92
90
|
@reset models, silent: true, parse: options?.parse
|
|
93
91
|
|
|
94
92
|
Luca.concern.setup.call(@)
|
|
93
|
+
Luca.util.setupHooks.call(@, @hooks)
|
|
94
|
+
|
|
95
|
+
@setupMethodCaching()
|
|
95
96
|
|
|
96
97
|
@trigger "after:initialize"
|
|
97
98
|
|
|
@@ -141,43 +142,43 @@ collection.defines
|
|
|
141
142
|
@
|
|
142
143
|
|
|
143
144
|
applyFilter: (filter={}, options={})->
|
|
145
|
+
options = _( options ).clone()
|
|
146
|
+
|
|
144
147
|
if options.remote? is true or @remoteFilter is true
|
|
145
148
|
@applyParams(filter)
|
|
146
|
-
@fetch _.extend(options,refresh:true)
|
|
149
|
+
@fetch _.extend(options,refresh:true,remote:true)
|
|
147
150
|
else
|
|
148
|
-
@reset @query
|
|
151
|
+
@reset @query(filter, options)
|
|
149
152
|
|
|
150
153
|
# You can apply params to a collection, so that any upcoming requests
|
|
151
154
|
# made to the REST API are made with the key values specified
|
|
152
155
|
applyParams: (params)->
|
|
153
|
-
@base_params = _( Luca.Collection.baseParams() ).clone()
|
|
156
|
+
@base_params = _( Luca.Collection.baseParams() ).clone() || {}
|
|
154
157
|
_.extend @base_params, params
|
|
155
158
|
|
|
156
159
|
@
|
|
157
160
|
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
# the manager itself, or a string in case the manager isn't available
|
|
165
|
-
# at compile time
|
|
166
|
-
register: (collectionManager=Luca.CollectionManager.get(), key="", collection)->
|
|
167
|
-
throw "Can not register with a collection manager without a key" unless key.length >= 1
|
|
168
|
-
throw "Can not register with a collection manager without a valid collection manager" unless collectionManager?
|
|
161
|
+
register: (collectionManager, key="", collection)->
|
|
162
|
+
collectionManager ||= Luca.CollectionManager.get()
|
|
163
|
+
|
|
164
|
+
unless key.length >= 1
|
|
165
|
+
throw "Attempt to register a collection without specifying a key."
|
|
166
|
+
|
|
169
167
|
|
|
170
168
|
# by passing a string instead of a reference to an object, we can look up
|
|
171
169
|
# that object only when necessary. this prevents us from having to create
|
|
172
170
|
# the manager instance before we can define our collections
|
|
173
171
|
if _.isString( collectionManager )
|
|
174
|
-
collectionManager = Luca.util.
|
|
172
|
+
collectionManager = Luca.util.resolve( collectionManager )
|
|
175
173
|
|
|
176
|
-
|
|
174
|
+
unless collectionManager?
|
|
175
|
+
throw "Attempt to register with a non existent collection manager."
|
|
177
176
|
|
|
178
177
|
if _.isFunction( collectionManager.add )
|
|
179
178
|
return collectionManager.add(key, collection)
|
|
180
179
|
|
|
180
|
+
# If we don't want to use the CollectionManager class, and just want
|
|
181
|
+
# to cache collection instances on an object, we can do that too.
|
|
181
182
|
if _.isObject( collectionManager )
|
|
182
183
|
collectionManager[ key ] = collection
|
|
183
184
|
|
|
@@ -232,10 +233,11 @@ collection.defines
|
|
|
232
233
|
# reset trigger with a function wrapped in _.once
|
|
233
234
|
# so that it only gets run...ahem...once.
|
|
234
235
|
#
|
|
235
|
-
# that being said, if the collection already has models
|
|
236
236
|
# it won't even bother fetching it it will just run
|
|
237
237
|
# as if reset was already triggered
|
|
238
|
-
onceLoaded: (fn, options={
|
|
238
|
+
onceLoaded: (fn, options={})->
|
|
239
|
+
_.defaults(options, autoFetch: true)
|
|
240
|
+
|
|
239
241
|
if @length > 0 and not @fetching
|
|
240
242
|
fn.apply @, [@]
|
|
241
243
|
return
|
|
@@ -264,17 +266,6 @@ collection.defines
|
|
|
264
266
|
unless @fetching is true or !options.autoFetch or @length > 0
|
|
265
267
|
@fetch()
|
|
266
268
|
|
|
267
|
-
# parse is very close to the stock Backbone.Collection parse, which
|
|
268
|
-
# just returns the response. However, it also triggers a callback
|
|
269
|
-
# after:response, and automatically parses responses which contain
|
|
270
|
-
# a JSON root like you would see in rails, if you specify the @root
|
|
271
|
-
# property.
|
|
272
|
-
#
|
|
273
|
-
# it will also update the Luca.Collection.cache with the models from
|
|
274
|
-
# the response, so that any subsequent calls to fetch() on a bootstrapped
|
|
275
|
-
# collection, will have updated models from the server. Really only
|
|
276
|
-
# useful if you call fetch(refresh:true) manually on any bootstrapped
|
|
277
|
-
# collection
|
|
278
269
|
parse: (response)->
|
|
279
270
|
@fetching = false
|
|
280
271
|
@trigger "after:response", response
|
|
@@ -304,6 +295,8 @@ collection.defines
|
|
|
304
295
|
@clearMethodCache(name)
|
|
305
296
|
|
|
306
297
|
setupMethodCaching: ()->
|
|
298
|
+
return unless @cachedMethods?.length > 0
|
|
299
|
+
|
|
307
300
|
collection = @
|
|
308
301
|
membershipEvents = ["reset","add","remove"]
|
|
309
302
|
cache = @_methodCache = {}
|
|
@@ -318,7 +311,7 @@ collection.defines
|
|
|
318
311
|
|
|
319
312
|
# wrap the collection method with a basic memoize operation
|
|
320
313
|
collection[ method ] = ()->
|
|
321
|
-
cache[method].value ||= cache[method].original.apply
|
|
314
|
+
cache[method].value ||= cache[method].original.apply(collection, arguments)
|
|
322
315
|
|
|
323
316
|
# bind to events on the collection, which once triggered, will
|
|
324
317
|
# invalidate the cached value. causing us to have to restore it
|
|
@@ -329,7 +322,9 @@ collection.defines
|
|
|
329
322
|
dependencies = method.split(':')[1]
|
|
330
323
|
|
|
331
324
|
if dependencies
|
|
332
|
-
|
|
325
|
+
watchForChangesOn = dependencies.split(",")
|
|
326
|
+
|
|
327
|
+
_( watchForChangesOn ).each (dependency)->
|
|
333
328
|
collection.bind "change:#{dependency}", ()->
|
|
334
329
|
collection.clearMethodCache(method: method)
|
|
335
330
|
|
|
@@ -337,9 +332,17 @@ collection.defines
|
|
|
337
332
|
# make sure the querying interface from backbone.query is present
|
|
338
333
|
# in the case backbone-query isn't loaded. without it, it will
|
|
339
334
|
# just return the models
|
|
335
|
+
#
|
|
336
|
+
# TODO:
|
|
337
|
+
#
|
|
338
|
+
# Currently the View mixins: Filterable, Sortable, and Paginatable
|
|
339
|
+
# implement a lot of logic that belongs in this interface.
|
|
340
340
|
query: (filter={},options={})->
|
|
341
341
|
if Backbone.QueryCollection?
|
|
342
|
-
|
|
342
|
+
if _.isFunction(prepare = options.prepare || @prepareQuery)
|
|
343
|
+
filter = prepare(filter)
|
|
344
|
+
|
|
345
|
+
return Backbone.QueryCollection::query.call(@, filter, options)
|
|
343
346
|
else
|
|
344
347
|
@models
|
|
345
348
|
|
|
@@ -366,18 +369,24 @@ Luca.Collection.extend = (definition={})->
|
|
|
366
369
|
|
|
367
370
|
componentClass
|
|
368
371
|
|
|
372
|
+
Luca.Collection.namespace = (namespace)->
|
|
373
|
+
namespace = Luca.util.resolve(namespace) if _.isString(namespace)
|
|
374
|
+
Luca.Collection.__defaultNamespace = namespace if namespace?
|
|
375
|
+
Luca.Collection.__defaultNamespace ||= (window || global)
|
|
376
|
+
Luca.util.read( Luca.Collection.__defaultNamespace )
|
|
377
|
+
|
|
369
378
|
# Always include these parameters in every request to your REST API.
|
|
370
379
|
#
|
|
371
380
|
# either specify a function which returns a hash, or just a normal hash
|
|
372
381
|
Luca.Collection.baseParams = (obj)->
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
if _.isFunction( Luca.Collection._baseParams )
|
|
376
|
-
return Luca.Collection._baseParams()
|
|
382
|
+
obj = Luca.util.resolve(obj) if _.isString(obj)
|
|
383
|
+
Luca.Collection._baseParams = obj if obj
|
|
377
384
|
|
|
378
|
-
|
|
379
|
-
Luca.Collection._baseParams
|
|
385
|
+
Luca.util.read( Luca.Collection._baseParams )
|
|
380
386
|
|
|
387
|
+
Luca.Collection.resetBaseParams = ()->
|
|
388
|
+
Luca.Collection._baseParams = {}
|
|
389
|
+
|
|
381
390
|
# In order to make our Backbone Apps super fast it is a good practice
|
|
382
391
|
# to pre-populate your collections by what is referred to as bootstrapping
|
|
383
392
|
#
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
# or
|
|
10
10
|
#
|
|
11
11
|
# view.defer( myCallback ).until("triggered:event")
|
|
12
|
-
class DeferredBindingProxy
|
|
12
|
+
class Luca.DeferredBindingProxy
|
|
13
13
|
constructor: (@object, operation, wrapWithUnderscore=true)->
|
|
14
14
|
if _.isFunction(operation)
|
|
15
15
|
fn = operation
|
|
@@ -41,10 +41,42 @@ class DeferredBindingProxy
|
|
|
41
41
|
|
|
42
42
|
@object
|
|
43
43
|
|
|
44
|
+
class Luca.EventRelayer
|
|
45
|
+
constructor: (options={})->
|
|
46
|
+
{@target,@events,@prefix,@source} = options
|
|
47
|
+
|
|
48
|
+
if @events.length > 0 and @target and @source
|
|
49
|
+
@setup()
|
|
50
|
+
@
|
|
51
|
+
|
|
52
|
+
prefixedBy: (@prefix="")->
|
|
53
|
+
@
|
|
54
|
+
|
|
55
|
+
from:(@source)->
|
|
56
|
+
@
|
|
57
|
+
|
|
58
|
+
to: (@target)->
|
|
59
|
+
@
|
|
60
|
+
|
|
61
|
+
setup: (@target)->
|
|
62
|
+
prefix = @prefix
|
|
63
|
+
target = @target
|
|
64
|
+
|
|
65
|
+
for eventId in @events
|
|
66
|
+
console.log "Binding to ", eventId, prefix, @target.name, @source.name
|
|
67
|
+
@source.on eventId, (args...)->
|
|
68
|
+
trigger = _( [prefix,eventId] ).compact().join(':')
|
|
69
|
+
args.unshift(trigger)
|
|
70
|
+
@trigger.apply(@, args)
|
|
71
|
+
, target
|
|
72
|
+
|
|
73
|
+
|
|
44
74
|
Luca.Events =
|
|
75
|
+
relays: (events...)->
|
|
76
|
+
new Luca.EventRelayer(relayer: @, events: events)
|
|
45
77
|
|
|
46
78
|
defer: (operation, wrapWithUnderscore=true)->
|
|
47
|
-
new DeferredBindingProxy(@, operation, wrapWithUnderscore)
|
|
79
|
+
new Luca.DeferredBindingProxy(@, operation, wrapWithUnderscore)
|
|
48
80
|
|
|
49
81
|
once: (trigger, callback, context)->
|
|
50
82
|
context ||= @
|
|
File without changes
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
# Luca.Panel is a low level Luca.View component which is used
|
|
2
|
+
# to build components which have toolbar areas, and a body area for the main
|
|
3
|
+
# contents of the view.
|
|
4
|
+
panel = Luca.register "Luca.Panel"
|
|
5
|
+
|
|
6
|
+
panel.replaces "Luca.Panel"
|
|
7
|
+
|
|
8
|
+
panel.extends "Luca.View"
|
|
9
|
+
|
|
10
|
+
#panel.mixesIn "LoadMaskable"
|
|
11
|
+
|
|
12
|
+
panel.configuration
|
|
13
|
+
topToolbar: undefined
|
|
14
|
+
bottomToolbar: undefined
|
|
15
|
+
#loadMask: false
|
|
16
|
+
#loadMaskTemplate: "components/load_mask"
|
|
17
|
+
#loadMaskTimeout: 3000
|
|
18
|
+
|
|
19
|
+
panel.publicMethods
|
|
20
|
+
applyStyles: (styles={},body=false)->
|
|
21
|
+
|
|
22
|
+
target = if body then @$bodyEl() else @$el
|
|
23
|
+
|
|
24
|
+
for setting, value of styles
|
|
25
|
+
target.css(setting,value)
|
|
26
|
+
|
|
27
|
+
@
|
|
28
|
+
|
|
29
|
+
$bodyEl: ()->
|
|
30
|
+
element = @bodyTagName || "div"
|
|
31
|
+
className = @bodyClassName || "view-body"
|
|
32
|
+
|
|
33
|
+
@bodyEl ||= "#{ element }.#{ className }"
|
|
34
|
+
|
|
35
|
+
bodyEl = @$(@bodyEl)
|
|
36
|
+
|
|
37
|
+
return bodyEl if bodyEl.length > 0
|
|
38
|
+
|
|
39
|
+
if bodyEl.length is 0 and (@bodyClassName? || @bodyTagName?)
|
|
40
|
+
newElement = @make(element,class:className,"data-auto-appended":true)
|
|
41
|
+
@$el.append( newElement )
|
|
42
|
+
return @$(@bodyEl)
|
|
43
|
+
|
|
44
|
+
@$el
|
|
45
|
+
|
|
46
|
+
$wrap: (wrapper)->
|
|
47
|
+
if _.isString(wrapper) and not wrapper.match(/[<>]/)
|
|
48
|
+
wrapper = @make("div",class:wrapper)
|
|
49
|
+
|
|
50
|
+
@$el.wrap( wrapper )
|
|
51
|
+
|
|
52
|
+
$template: (template, variables={})->
|
|
53
|
+
@$html( Luca.template(template,variables) )
|
|
54
|
+
|
|
55
|
+
$empty: ()->
|
|
56
|
+
@$bodyEl().empty()
|
|
57
|
+
|
|
58
|
+
$html: (content)->
|
|
59
|
+
@$bodyEl().html( content )
|
|
60
|
+
|
|
61
|
+
$append: (content)->
|
|
62
|
+
@$bodyEl().append(content)
|
|
63
|
+
|
|
64
|
+
panel.privateMethods
|
|
65
|
+
beforeRender: ()->
|
|
66
|
+
Luca.View::beforeRender?.apply(@, arguments)
|
|
67
|
+
@applyStyles( @styles ) if @styles?
|
|
68
|
+
@applyStyles( @bodyStyles, true ) if @bodyStyles?
|
|
69
|
+
@renderToolbars?()
|
|
70
|
+
|
|
71
|
+
renderToolbars: ()->
|
|
72
|
+
_( ["top","left","right","bottom"] ).each (orientation)=>
|
|
73
|
+
if config = @["#{ orientation }Toolbar"]
|
|
74
|
+
@renderToolbar( orientation, config)
|
|
75
|
+
|
|
76
|
+
renderToolbar: (orientation="top", config={})->
|
|
77
|
+
config.parent = @
|
|
78
|
+
config.orientation = orientation
|
|
79
|
+
el = Luca.util.read( config.container )
|
|
80
|
+
el ||= Luca.util.read( config.targetEl )
|
|
81
|
+
|
|
82
|
+
console.log "Rendering toolbar to", config, el
|
|
83
|
+
Luca.Panel.attachToolbar.call(@, config, el )
|
|
84
|
+
|
|
85
|
+
panel.classMethods
|
|
86
|
+
attachToolbar: (config={}, targetEl)->
|
|
87
|
+
config.orientation ||= "top"
|
|
88
|
+
config.type ||= config.ctype ||= @toolbarType || "panel_toolbar"
|
|
89
|
+
|
|
90
|
+
config.additionalClassNames = "#{ Luca.config.toolbarContainerClass } #{ config.orientation }"
|
|
91
|
+
|
|
92
|
+
toolbar = Luca.util.lazyComponent( config )
|
|
93
|
+
|
|
94
|
+
hasBody = @bodyClassName or @bodyTagName
|
|
95
|
+
|
|
96
|
+
# there will be a body panel inside of the views $el
|
|
97
|
+
# so just place the toolbar before, or after the body
|
|
98
|
+
action = switch config.orientation
|
|
99
|
+
when "top", "left"
|
|
100
|
+
if hasBody and not targetEl?.length > 0 then "before" else "prepend"
|
|
101
|
+
when "bottom", "right"
|
|
102
|
+
if hasBody and not targetEl?.length > 0 then "after" else "append"
|
|
103
|
+
|
|
104
|
+
toolbarEl = if targetEl?.length > 0
|
|
105
|
+
@$(targetEl)
|
|
106
|
+
else
|
|
107
|
+
@$bodyEl()
|
|
108
|
+
|
|
109
|
+
toolbarEl[action]( toolbar.render().el )
|
|
110
|
+
|
|
111
|
+
panel.defines
|
|
112
|
+
version: 3
|