luca 0.9.7 → 0.9.8
Sign up to get free protection for your applications and to get access to all the features.
- 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
@@ -0,0 +1,503 @@
|
|
1
|
+
/* Demonstration of embedding CodeMirror in a bigger application. The
|
2
|
+
* interface defined here is a mess of prompts and confirms, and
|
3
|
+
* should probably not be used in a real project.
|
4
|
+
*/
|
5
|
+
//var CodeMirrorUI = Class.create();
|
6
|
+
|
7
|
+
function CodeMirrorUI(place, options, mirrorOptions) {
|
8
|
+
this.initialize(place, options, mirrorOptions);
|
9
|
+
}
|
10
|
+
|
11
|
+
CodeMirrorUI.prototype = {
|
12
|
+
|
13
|
+
initialize: function(textarea, options, mirrorOptions) {
|
14
|
+
var defaultOptions = {
|
15
|
+
searchMode: 'popup', // other options are 'inline' and 'dialog'. The 'dialog' option needs work.
|
16
|
+
imagePath: 'images/silk',
|
17
|
+
path: 'js',
|
18
|
+
buttons: ['search', 'undo', 'redo', 'jump', 'reindentSelection', 'reindent','about'],
|
19
|
+
saveCallback: function() {},
|
20
|
+
}
|
21
|
+
this.textarea = textarea
|
22
|
+
this.options = options;
|
23
|
+
this.setDefaults(this.options, defaultOptions);
|
24
|
+
|
25
|
+
this.buttonDefs = {
|
26
|
+
'save': ["Save", "save", this.options.imagePath + "/page_save.png", this.save],
|
27
|
+
'search': ["Search/Replace", "find_replace_popup", this.options.imagePath + "/find.png", this.find_replace_popup],
|
28
|
+
'searchClose': ["Close", "find_replace_popup_close", this.options.imagePath + "/cancel.png", this.find_replace_popup_close],
|
29
|
+
'searchDialog': ["Search/Replace", "find_replace_window", this.options.imagePath + "/find.png", this.find_replace_window],
|
30
|
+
'undo': ["Undo", "undo", this.options.imagePath + "/arrow_undo.png", this.undo],
|
31
|
+
'redo': ["Redo", "redo", this.options.imagePath + "/arrow_redo.png", this.redo],
|
32
|
+
'jump': ["Jump to line #", "jump", this.options.imagePath + "/page_go.png", this.jump],
|
33
|
+
'reindentSelection': ["Reformat selection", "reindentSelect", this.options.imagePath + "/text_indent.png", this.reindentSelection],
|
34
|
+
'reindent': ["Reformat whole document", "reindent", this.options.imagePath + "/page_refresh.png", this.reindent],
|
35
|
+
'about': ["About CodeMirror-UI", "about", this.options.imagePath + "/help.png", this.about]
|
36
|
+
};
|
37
|
+
|
38
|
+
//place = CodeMirror.replace(place)
|
39
|
+
|
40
|
+
this.home = document.createElement("div");
|
41
|
+
this.textarea.parentNode.insertBefore(this.home, this.textarea);
|
42
|
+
/*if (place.appendChild)
|
43
|
+
place.appendChild(this.home);
|
44
|
+
else
|
45
|
+
place(this.home);
|
46
|
+
*/
|
47
|
+
this.self = this;
|
48
|
+
|
49
|
+
var onChange = this.editorChanged.cmuiBind(this);
|
50
|
+
// preserve custom onChance handler
|
51
|
+
if (mirrorOptions.onChange) {
|
52
|
+
mirrorOptions.onChange = function() {
|
53
|
+
mirrorOptions.onChange();
|
54
|
+
onChange();
|
55
|
+
}
|
56
|
+
} else {
|
57
|
+
mirrorOptions.onChange = onChange;
|
58
|
+
}
|
59
|
+
mir = CodeMirror.fromTextArea(this.textarea, mirrorOptions);
|
60
|
+
//console.log(mir);
|
61
|
+
this.mirror = mir;
|
62
|
+
|
63
|
+
this.initButtons();
|
64
|
+
|
65
|
+
//this.initWordWrapControl(); // CodeMirror v2 does not support word wrapping
|
66
|
+
|
67
|
+
if (this.options.searchMode == 'inline') {
|
68
|
+
this.initFindControl();
|
69
|
+
} else if (this.options.searchMode == 'popup') {
|
70
|
+
this.initPopupFindControl();
|
71
|
+
}
|
72
|
+
|
73
|
+
if (this.saveButton) this.addClass(this.saveButton,'inactive');
|
74
|
+
if (this.undoButton) this.addClass(this.undoButton,'inactive');
|
75
|
+
if (this.redoButton) this.addClass(this.redoButton,'inactive');
|
76
|
+
},
|
77
|
+
setDefaults: function(object, defaults) {
|
78
|
+
for (var option in defaults) {
|
79
|
+
if (!object.hasOwnProperty(option))
|
80
|
+
object[option] = defaults[option];
|
81
|
+
}
|
82
|
+
},
|
83
|
+
toTextArea: function() {
|
84
|
+
this.home.parentNode.removeChild(this.home);
|
85
|
+
this.mirror.toTextArea();
|
86
|
+
},
|
87
|
+
initButtons: function() {
|
88
|
+
this.buttonFrame = document.createElement("div");
|
89
|
+
this.buttonFrame.className = "codemirror-ui-clearfix codemirror-ui-button-frame";
|
90
|
+
this.home.appendChild(this.buttonFrame);
|
91
|
+
for (var i = 0; i < this.options.buttons.length; i++) {
|
92
|
+
var buttonId = this.options.buttons[i];
|
93
|
+
var buttonDef = this.buttonDefs[buttonId];
|
94
|
+
this.addButton(buttonDef[0], buttonDef[1], buttonDef[2], buttonDef[3], this.buttonFrame);
|
95
|
+
}
|
96
|
+
|
97
|
+
//this.makeButton("Search", "search");
|
98
|
+
//this.makeButton("Replace", "replace");
|
99
|
+
//this.makeButton("Current line", "line");
|
100
|
+
//this.makeButton("Jump to line", "jump");
|
101
|
+
//this.makeButton("Insert constructor", "macro");
|
102
|
+
//this.makeButton("Indent all", "reindent");
|
103
|
+
},
|
104
|
+
/*
|
105
|
+
* This is left over from the MirrorFrame demo.
|
106
|
+
* Get rid of it quick.
|
107
|
+
*/
|
108
|
+
/*
|
109
|
+
makeButton : function(name, action){
|
110
|
+
var button = document.createElement("input");
|
111
|
+
button.type = "button";
|
112
|
+
button.value = name;
|
113
|
+
this.home.appendChild(button);
|
114
|
+
button.onclick = function(){
|
115
|
+
self[action].call(self);
|
116
|
+
};
|
117
|
+
},
|
118
|
+
*/
|
119
|
+
createFindBar: function() {
|
120
|
+
var findBar = document.createElement("div");
|
121
|
+
findBar.className = "codemirror-ui-find-bar";
|
122
|
+
|
123
|
+
this.findString = document.createElement("input");
|
124
|
+
this.findString.type = "text";
|
125
|
+
this.findString.size = 8;
|
126
|
+
|
127
|
+
this.findButton = document.createElement("input");
|
128
|
+
this.findButton.type = "button";
|
129
|
+
this.findButton.value = "Find";
|
130
|
+
this.findButton.onclick = function(){this.find()}.cmuiBind(this);
|
131
|
+
|
132
|
+
this.connect(this.findString, "keyup", function(e){
|
133
|
+
var code = e.keyCode;
|
134
|
+
if (code == 13){
|
135
|
+
this.find(this.mirror.getCursor(false))
|
136
|
+
}else{
|
137
|
+
if(!this.findString.value == ""){
|
138
|
+
this.find(this.mirror.getCursor(true))
|
139
|
+
}
|
140
|
+
}
|
141
|
+
this.findString.focus();
|
142
|
+
|
143
|
+
}.cmuiBind(this) );
|
144
|
+
|
145
|
+
var regLabel = document.createElement("label");
|
146
|
+
regLabel.title = "Regular Expressions"
|
147
|
+
this.regex = document.createElement("input");
|
148
|
+
this.regex.type = "checkbox"
|
149
|
+
this.regex.className = "codemirror-ui-checkbox"
|
150
|
+
regLabel.appendChild(this.regex);
|
151
|
+
regLabel.appendChild(document.createTextNode("RegEx"));
|
152
|
+
|
153
|
+
var caseLabel = document.createElement("label");
|
154
|
+
caseLabel.title = "Case Sensitive"
|
155
|
+
this.caseSensitive = document.createElement("input");
|
156
|
+
this.caseSensitive.type = "checkbox"
|
157
|
+
this.caseSensitive.className = "codemirror-ui-checkbox"
|
158
|
+
caseLabel.appendChild(this.caseSensitive);
|
159
|
+
caseLabel.appendChild(document.createTextNode("A/a"));
|
160
|
+
|
161
|
+
this.replaceString = document.createElement("input");
|
162
|
+
this.replaceString.type = "text";
|
163
|
+
this.replaceString.size = 8;
|
164
|
+
|
165
|
+
this.connect(this.replaceString, "keyup", function(e){
|
166
|
+
var code = e.keyCode;
|
167
|
+
if (code == 13){
|
168
|
+
this.replace()
|
169
|
+
}
|
170
|
+
}.cmuiBind(this) );
|
171
|
+
|
172
|
+
this.replaceButton = document.createElement("input");
|
173
|
+
this.replaceButton.type = "button";
|
174
|
+
this.replaceButton.value = "Replace";
|
175
|
+
this.replaceButton.onclick = this.replace.cmuiBind(this);
|
176
|
+
|
177
|
+
var replaceAllLabel = document.createElement("label");
|
178
|
+
replaceAllLabel.title = "Replace All"
|
179
|
+
this.replaceAll = document.createElement("input");
|
180
|
+
this.replaceAll.type = "checkbox"
|
181
|
+
this.replaceAll.className = "codemirror-ui-checkbox"
|
182
|
+
replaceAllLabel.appendChild(this.replaceAll);
|
183
|
+
replaceAllLabel.appendChild(document.createTextNode("All"));
|
184
|
+
|
185
|
+
findBar.appendChild(this.findString);
|
186
|
+
findBar.appendChild(this.findButton);
|
187
|
+
findBar.appendChild(caseLabel);
|
188
|
+
findBar.appendChild(regLabel);
|
189
|
+
|
190
|
+
findBar.appendChild(this.replaceString);
|
191
|
+
findBar.appendChild(this.replaceButton);
|
192
|
+
findBar.appendChild(replaceAllLabel);
|
193
|
+
return findBar;
|
194
|
+
},
|
195
|
+
initPopupFindControl: function() {
|
196
|
+
var findBar = this.createFindBar();
|
197
|
+
|
198
|
+
this.popupFindWrap = document.createElement("div");
|
199
|
+
this.popupFindWrap.className = "codemirror-ui-popup-find-wrap";
|
200
|
+
|
201
|
+
this.popupFindWrap.appendChild(findBar);
|
202
|
+
|
203
|
+
var buttonDef = this.buttonDefs['searchClose'];
|
204
|
+
this.addButton(buttonDef[0], buttonDef[1], buttonDef[2], buttonDef[3], this.popupFindWrap);
|
205
|
+
|
206
|
+
this.buttonFrame.appendChild(this.popupFindWrap);
|
207
|
+
|
208
|
+
},
|
209
|
+
initFindControl: function() {
|
210
|
+
var findBar = this.createFindBar();
|
211
|
+
this.buttonFrame.appendChild(findBar);
|
212
|
+
},
|
213
|
+
find: function( start ) {
|
214
|
+
var isCaseSensitive = this.caseSensitive.checked;
|
215
|
+
if(start == null){
|
216
|
+
start = this.mirror.getCursor();
|
217
|
+
}
|
218
|
+
var findString = this.findString.value;
|
219
|
+
if (findString == null || findString == '') {
|
220
|
+
alert('You must enter something to search for.');
|
221
|
+
return;
|
222
|
+
}
|
223
|
+
if (this.regex.checked) {
|
224
|
+
findString = new RegExp(findString, !isCaseSensitive ? "i" : "");
|
225
|
+
}
|
226
|
+
|
227
|
+
this.cursor = this.mirror.getSearchCursor(findString, start, !isCaseSensitive );
|
228
|
+
var found = this.cursor.findNext();
|
229
|
+
if (found) {
|
230
|
+
this.mirror.setSelection(this.cursor.from(),this.cursor.to())
|
231
|
+
//this.cursor.select();
|
232
|
+
} else {
|
233
|
+
if (confirm("No more matches. Should we start from the top?")) {
|
234
|
+
this.cursor = this.mirror.getSearchCursor(findString, 0, !isCaseSensitive);
|
235
|
+
found = this.cursor.findNext();
|
236
|
+
if (found) {
|
237
|
+
this.mirror.setSelection(this.cursor.from(),this.cursor.to())
|
238
|
+
//this.cursor.select();
|
239
|
+
} else {
|
240
|
+
alert("No matches found.");
|
241
|
+
}
|
242
|
+
}
|
243
|
+
}
|
244
|
+
},
|
245
|
+
replace: function() {
|
246
|
+
var findString = this.findString.value,
|
247
|
+
replaceString = this.replaceString.value,
|
248
|
+
isCaseSensitive = this.caseSensitive.checked,
|
249
|
+
isRegex = this.regex.checked,
|
250
|
+
regFindString = isRegex ? new RegExp(findString, !isCaseSensitive ? "i" : "") : "";
|
251
|
+
|
252
|
+
if (this.replaceAll.checked) {
|
253
|
+
var cursor = this.mirror.getSearchCursor(isRegex ? regFindString : findString, 0, !isCaseSensitive);
|
254
|
+
while (cursor.findNext())
|
255
|
+
this.mirror.replaceRange(
|
256
|
+
isRegex ? cursor.pos.match[0].replace(regFindString, replaceString) : replaceString
|
257
|
+
,cursor.from(),cursor.to());
|
258
|
+
//cursor.replace(this.replaceString.value);
|
259
|
+
} else {
|
260
|
+
this.mirror.replaceRange(
|
261
|
+
isRegex ? this.cursor.pos.match[0].replace(regFindString, replaceString) : replaceString
|
262
|
+
,this.cursor.from(),this.cursor.to())
|
263
|
+
//this.cursor.replace(this.replaceString.value);
|
264
|
+
this.find();
|
265
|
+
}
|
266
|
+
},
|
267
|
+
initWordWrapControl: function() {
|
268
|
+
var wrapDiv = document.createElement("div");
|
269
|
+
wrapDiv.className = "codemirror-ui-wrap"
|
270
|
+
|
271
|
+
var label = document.createElement("label");
|
272
|
+
|
273
|
+
this.wordWrap = document.createElement("input");
|
274
|
+
this.wordWrap.type = "checkbox"
|
275
|
+
this.wordWrap.checked = true;
|
276
|
+
label.appendChild(this.wordWrap);
|
277
|
+
label.appendChild(document.createTextNode("Word Wrap"));
|
278
|
+
this.wordWrap.onchange = this.toggleWordWrap.cmuiBind(this);
|
279
|
+
wrapDiv.appendChild(label);
|
280
|
+
this.buttonFrame.appendChild(wrapDiv);
|
281
|
+
},
|
282
|
+
toggleWordWrap: function() {
|
283
|
+
if (this.wordWrap.checked) {
|
284
|
+
this.mirror.setTextWrapping("nowrap");
|
285
|
+
} else {
|
286
|
+
this.mirror.setTextWrapping("");
|
287
|
+
}
|
288
|
+
},
|
289
|
+
addButton: function(name, action, image, func, frame) {
|
290
|
+
var button = document.createElement("a");
|
291
|
+
//button.href = "#";
|
292
|
+
button.className = "codemirror-ui-button " + action;
|
293
|
+
button.title = name;
|
294
|
+
button.func = func.cmuiBind(this);
|
295
|
+
button.onclick = function(event) {
|
296
|
+
//alert(event.target);
|
297
|
+
event.target.func();
|
298
|
+
return false;
|
299
|
+
//this.self[action].call(this);
|
300
|
+
//eval("this."+action)();
|
301
|
+
}
|
302
|
+
.cmuiBind(this, func);
|
303
|
+
var img = document.createElement("img");
|
304
|
+
img.src = image;
|
305
|
+
img.border = 0;
|
306
|
+
img.func = func.cmuiBind(this);
|
307
|
+
button.appendChild(img);
|
308
|
+
frame.appendChild(button);
|
309
|
+
if (action == 'save') {
|
310
|
+
this.saveButton = button;
|
311
|
+
}
|
312
|
+
if (action == 'undo') {
|
313
|
+
this.undoButton = button;
|
314
|
+
}
|
315
|
+
if (action == 'redo') {
|
316
|
+
this.redoButton = button;
|
317
|
+
}
|
318
|
+
},
|
319
|
+
classNameRegex: function(className) {
|
320
|
+
var regex = new RegExp("(.*) *" + className + " *(.*)");
|
321
|
+
return regex;
|
322
|
+
},
|
323
|
+
addClass: function(element, className) {
|
324
|
+
if (!element.className.match(this.classNameRegex(className))) {
|
325
|
+
element.className += " " + className;
|
326
|
+
}
|
327
|
+
},
|
328
|
+
removeClass: function(element, className) {
|
329
|
+
var m = element.className.match(this.classNameRegex(className))
|
330
|
+
if (m) {
|
331
|
+
element.className = m[1] + " " + m[2];
|
332
|
+
}
|
333
|
+
},
|
334
|
+
editorChanged: function() {
|
335
|
+
if(!this.mirror) {
|
336
|
+
return
|
337
|
+
}
|
338
|
+
var his = this.mirror.historySize();
|
339
|
+
if (his['undo'] > 0) {
|
340
|
+
this.removeClass(this.saveButton, 'inactive');
|
341
|
+
this.removeClass(this.undoButton, 'inactive');
|
342
|
+
} else {
|
343
|
+
this.addClass(this.saveButton, 'inactive');
|
344
|
+
this.addClass(this.undoButton, 'inactive');
|
345
|
+
}
|
346
|
+
if (his['redo'] > 0) {
|
347
|
+
this.removeClass(this.redoButton, 'inactive');
|
348
|
+
} else {
|
349
|
+
this.addClass(this.redoButton, 'inactive');
|
350
|
+
}
|
351
|
+
//alert("undo size = " + his['undo'] + " and redo size = " + his['redo']);
|
352
|
+
},
|
353
|
+
save: function() {
|
354
|
+
this.options.saveCallback();
|
355
|
+
this.addClass(this.saveButton, 'inactive');
|
356
|
+
},
|
357
|
+
undo: function() {
|
358
|
+
this.mirror.undo();
|
359
|
+
},
|
360
|
+
redo: function() {
|
361
|
+
this.mirror.redo();
|
362
|
+
},
|
363
|
+
replaceSelection: function(newVal) {
|
364
|
+
this.mirror.replaceSelection(newVal);
|
365
|
+
this.searchWindow.focus();
|
366
|
+
},
|
367
|
+
raise_search_window: function() {
|
368
|
+
//alert('raising window!');
|
369
|
+
this.searchWindow.focus();
|
370
|
+
},
|
371
|
+
find_replace_window: function() {
|
372
|
+
if (this.searchWindow == null) {
|
373
|
+
this.searchWindow = window.open(this.options.path + "find_replace.html", "mywindow", "scrollbars=1,width=400,height=350,modal=yes");
|
374
|
+
this.searchWindow.codeMirrorUI = this;
|
375
|
+
}
|
376
|
+
this.searchWindow.focus();
|
377
|
+
},
|
378
|
+
find_replace_popup: function() {
|
379
|
+
//alert('Hello!');
|
380
|
+
this.popupFindWrap.className = "codemirror-ui-popup-find-wrap active";
|
381
|
+
this.findString.focus();
|
382
|
+
},
|
383
|
+
find_replace_popup_close: function() {
|
384
|
+
//alert('Hello!');
|
385
|
+
this.popupFindWrap.className = "codemirror-ui-popup-find-wrap";
|
386
|
+
},
|
387
|
+
/*
|
388
|
+
find_replace: function(){
|
389
|
+
this.find_replace = document.createElement("div");
|
390
|
+
this.find_replace.className = "codemirror-search-replace";
|
391
|
+
this.find_replace.innerHTML = "Just a test!";
|
392
|
+
this.home.appendChild(this.find_replace);
|
393
|
+
},
|
394
|
+
|
395
|
+
search: function(){
|
396
|
+
var text = prompt("Enter search term:", "");
|
397
|
+
if (!text)
|
398
|
+
return;
|
399
|
+
|
400
|
+
var first = true;
|
401
|
+
do {
|
402
|
+
var cursor = this.mirror.getSearchCursor(text, first);
|
403
|
+
first = false;
|
404
|
+
while (cursor.findNext()) {
|
405
|
+
cursor.select();
|
406
|
+
if (!confirm("Search again?"))
|
407
|
+
return;
|
408
|
+
}
|
409
|
+
}
|
410
|
+
while (confirm("End of document reached. Start over?"));
|
411
|
+
},
|
412
|
+
|
413
|
+
replace: function(){
|
414
|
+
// This is a replace-all, but it is possible to implement a
|
415
|
+
// prompting replace.
|
416
|
+
var from = prompt("Enter search string:", ""), to;
|
417
|
+
if (from)
|
418
|
+
to = prompt("What should it be replaced with?", "");
|
419
|
+
if (to == null)
|
420
|
+
return;
|
421
|
+
|
422
|
+
var cursor = this.mirror.getSearchCursor(from, false);
|
423
|
+
while (cursor.findNext())
|
424
|
+
cursor.replace(to);
|
425
|
+
},
|
426
|
+
*/
|
427
|
+
jump: function() {
|
428
|
+
var line = prompt("Jump to line:", "");
|
429
|
+
if (line && !isNaN(Number(line))) {
|
430
|
+
this.mirror.setCursor(Number(line),0);
|
431
|
+
this.mirror.setSelection({line:Number(line),ch:0},{line:Number(line)+1,ch:0});
|
432
|
+
this.mirror.focus();
|
433
|
+
}
|
434
|
+
},
|
435
|
+
/*
|
436
|
+
line: function(){
|
437
|
+
alert("The cursor is currently at line " + this.mirror.currentLine());
|
438
|
+
this.mirror.focus();
|
439
|
+
},
|
440
|
+
|
441
|
+
macro: function(){
|
442
|
+
var name = prompt("Name your constructor:", "");
|
443
|
+
if (name)
|
444
|
+
this.mirror.replaceSelection("function " + name + "() {\n \n}\n\n" + name + ".prototype = {\n \n};\n");
|
445
|
+
},
|
446
|
+
*/
|
447
|
+
reindent: function() {
|
448
|
+
var lineCount = this.mirror.lineCount();
|
449
|
+
for(var line = 0; line < lineCount; line++) {
|
450
|
+
this.mirror.indentLine(line);
|
451
|
+
}
|
452
|
+
},
|
453
|
+
about : function() {
|
454
|
+
string = "CodeMirror-UI was written by Jeremy Green (http://www.octolabs.com/) as a light interface around CodeMirror by Marijn Haverbeke (http://codemirror.net)."
|
455
|
+
string += "\n\n"
|
456
|
+
string += "Documentation and the code can be found at https://github.com/jagthedrummer/codemirror-ui/."
|
457
|
+
alert(string);
|
458
|
+
},
|
459
|
+
reindentSelection: function() {
|
460
|
+
var cur = this.mirror.getCursor()
|
461
|
+
//console.log(cur)
|
462
|
+
var start = this.mirror.getCursor(true)["line"]
|
463
|
+
var end = this.mirror.getCursor(false)["line"]
|
464
|
+
for(var line = start; line <= end; line++) {
|
465
|
+
this.mirror.indentLine(line);
|
466
|
+
}
|
467
|
+
//this.mirror.reindentSelection();
|
468
|
+
|
469
|
+
},
|
470
|
+
// Event handler registration. If disconnect is true, it'll return a
|
471
|
+
// function that unregisters the handler.
|
472
|
+
// Borrowed from CodeMirror + modified
|
473
|
+
connect: function (node, type, handler, disconnect) {
|
474
|
+
/*function wrapHandler(event) {
|
475
|
+
handler(new Event(event || window.event));
|
476
|
+
}*/
|
477
|
+
|
478
|
+
if (typeof node.addEventListener == "function") {
|
479
|
+
node.addEventListener(type, handler, false);
|
480
|
+
if (disconnect)
|
481
|
+
return function() {
|
482
|
+
node.removeEventListener(type, handler, false);
|
483
|
+
};
|
484
|
+
} else {
|
485
|
+
node.attachEvent("on" + type, handler);
|
486
|
+
if (disconnect)
|
487
|
+
return function() {
|
488
|
+
node.detachEvent("on" + type, handler);
|
489
|
+
};
|
490
|
+
}
|
491
|
+
}
|
492
|
+
};
|
493
|
+
|
494
|
+
/*
|
495
|
+
* This makes coding callbacks much more sane
|
496
|
+
*/
|
497
|
+
Function.prototype.cmuiBind = function(scope) {
|
498
|
+
var _function = this;
|
499
|
+
|
500
|
+
return function() {
|
501
|
+
return _function.apply(scope, arguments);
|
502
|
+
}
|
503
|
+
}
|
File without changes
|
File without changes
|