lanes 0.1.2 → 0.1.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +19 -0
- data/client/lanes/access/Extension.coffee +19 -0
- data/client/lanes/access/LoginDialog.coffee +47 -0
- data/client/lanes/access/Roles.coffee +88 -0
- data/client/lanes/access/User.coffee +72 -0
- data/client/lanes/access/index.js +5 -0
- data/client/lanes/access/login-dialog.html +16 -0
- data/client/lanes/access/screens/user-management/GridUserEditor.coffee +25 -0
- data/client/lanes/access/screens/user-management/UserManagement.coffee +24 -0
- data/client/lanes/access/screens/user-management/grid-popover-editor.html +33 -0
- data/client/lanes/access/screens/user-management/index.js +3 -0
- data/client/lanes/access/screens/user-management/index.scss +7 -0
- data/client/lanes/access/screens/user-management/screen.html +7 -0
- data/client/lanes/{components/enabled.scss.erb → access/styles.scss} +0 -0
- data/{lib/lanes/command/templates/client/components → client/lanes/access/views}/.gitkeep +0 -0
- data/client/lanes/components/Base.coffee +3 -4
- data/client/lanes/components/enabled.js.erb +2 -0
- data/client/lanes/components/grid/Editor.coffee +1 -1
- data/client/lanes/components/grid/Grid.coffee +26 -27
- data/client/lanes/components/grid/{_index.scss → styles.scss} +0 -0
- data/client/lanes/components/grid/template.html +1 -1
- data/client/lanes/components/grid/vendor/dataTables.scroller.js +119 -42
- data/client/lanes/components/grid/vendor/jquery.dataTables.js +984 -526
- data/client/lanes/components/modal/ModalDialog.coffee +25 -4
- data/client/lanes/components/modal/styles.scss +19 -0
- data/client/lanes/components/modal/template.html +2 -2
- data/client/lanes/components/multi-select/MultiSelect.coffee +46 -0
- data/client/lanes/components/popover/PopOver.coffee +1 -1
- data/client/lanes/components/popover/styles.scss +2 -0
- data/client/lanes/components/{radio_group → radio-group}/RadioGroup.coffee +12 -23
- data/client/lanes/components/radio-group/index.js +1 -0
- data/client/lanes/components/radio-group/styles.scss +1 -0
- data/client/lanes/components/record-finder/Clause.coffee +38 -0
- data/client/lanes/components/record-finder/Dialog.coffee +45 -0
- data/client/lanes/components/record-finder/RecordFinder.coffee +55 -0
- data/client/lanes/components/{record_finder/clause.skr → record-finder/clause.html} +7 -5
- data/client/lanes/components/record-finder/config.json +3 -0
- data/client/lanes/components/{record_finder/dialog.skr → record-finder/dialog.html} +0 -0
- data/client/lanes/components/{record_finder/field.skr → record-finder/field.html} +1 -1
- data/client/lanes/components/record-finder/index.js +4 -0
- data/client/lanes/{styles/components/record-finder.scss → components/record-finder/styles.scss} +22 -20
- data/client/lanes/components/select-field/SelectField.coffee +62 -0
- data/client/lanes/components/{select_field → select-field}/index.js +0 -0
- data/client/lanes/components/{select_field/_index.scss → select-field/styles.scss} +0 -0
- data/client/lanes/extension/EarlyExtensions.js.erb +3 -3
- data/client/lanes/extension/Extensions.coffee +4 -1
- data/client/lanes/extension/LateLoaded.js.erb +3 -3
- data/client/lanes/index.js +2 -2
- data/client/lanes/index.scss.erb +30 -0
- data/client/lanes/lib/MakeBaseClass.coffee +20 -19
- data/client/lanes/lib/ModuleSupport.coffee +1 -1
- data/client/lanes/lib/results.coffee +1 -9
- data/client/lanes/lib/utilFunctions.coffee +56 -10
- data/client/lanes/models/Base.coffee +57 -116
- data/client/lanes/models/ChangeMonitor.coffee +29 -0
- data/client/lanes/models/ChangeSet.coffee +3 -3
- data/client/lanes/models/Collection.coffee +36 -4
- data/client/lanes/models/ModelAssociations.coffee +118 -0
- data/client/lanes/models/PubSub.coffee +5 -5
- data/client/lanes/models/Query.coffee +37 -27
- data/client/lanes/models/Sync.coffee +1 -1
- data/client/lanes/models/index.js +1 -0
- data/client/lanes/screens/Base.coffee +5 -8
- data/client/lanes/screens/ChangeListener.coffee +6 -3
- data/client/lanes/{models/Screens.coffee → screens/Definitions.coffee} +22 -9
- data/client/lanes/screens/Instance.coffee +22 -22
- data/client/lanes/screens/Router.coffee +1 -3
- data/client/lanes/screens/all.js.erb +3 -0
- data/client/lanes/screens/index.js +6 -1
- data/client/lanes/screens/{screen-definitions.js.erb → register.js.erb} +3 -3
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/_alerts.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/_badges.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/_breadcrumbs.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/_button-groups.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/_buttons.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/_carousel.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/_close.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/_code.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/_component-animations.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/_dropdowns.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/_forms.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/_glyphicons.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/_grid.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/_input-groups.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/_jumbotron.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/_labels.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/_list-group.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/_media.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/_mixins.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/_modals.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/_navbar.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/_navs.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/_normalize.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/_pager.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/_pagination.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/_panels.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/_popovers.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/_print.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/_progress-bars.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/_responsive-embed.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/_responsive-utilities.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/_scaffolding.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/_tables.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/_theme.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/_thumbnails.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/_tooltip.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/_type.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/_utilities.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/_variables.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/_wells.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/mixins/_alerts.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/mixins/_background-variant.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/mixins/_border-radius.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/mixins/_buttons.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/mixins/_center-block.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/mixins/_clearfix.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/mixins/_forms.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/mixins/_gradients.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/mixins/_grid-framework.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/mixins/_grid.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/mixins/_hide-text.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/mixins/_image.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/mixins/_labels.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/mixins/_list-group.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/mixins/_nav-divider.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/mixins/_nav-vertical-align.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/mixins/_opacity.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/mixins/_pagination.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/mixins/_panels.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/mixins/_progress-bar.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/mixins/_reset-filter.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/mixins/_resize.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/mixins/_responsive-visibility.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/mixins/_size.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/mixins/_tab-focus.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/mixins/_table-row.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/mixins/_text-emphasis.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/mixins/_text-overflow.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/mixins/_vendor-prefixes.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/_alerts.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/_badges.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/_breadcrumbs.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/_button-groups.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/_buttons.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/_carousel.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/_close.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/_code.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/_component-animations.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/_dropdowns.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/_forms.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/_glyphicons.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/_grid.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/_input-groups.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/_jumbotron.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/_labels.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/_list-group.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/_media.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/_mixins.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/_modals.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/_navbar.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/_navs.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/_normalize.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/_pager.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/_pagination.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/_panels.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/_popovers.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/_print.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/_progress-bars.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/_responsive-embed.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/_responsive-utilities.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/_scaffolding.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/_tables.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/_theme.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/_thumbnails.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/_tooltip.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/_type.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/_utilities.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/_variables.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/_wells.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/bootstrap.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/mixins/_alerts.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/mixins/_background-variant.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/mixins/_border-radius.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/mixins/_buttons.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/mixins/_center-block.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/mixins/_clearfix.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/mixins/_forms.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/mixins/_gradients.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/mixins/_grid-framework.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/mixins/_grid.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/mixins/_hide-text.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/mixins/_image.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/mixins/_labels.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/mixins/_list-group.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/mixins/_nav-divider.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/mixins/_nav-vertical-align.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/mixins/_opacity.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/mixins/_pagination.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/mixins/_panels.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/mixins/_progress-bar.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/mixins/_reset-filter.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/mixins/_resize.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/mixins/_responsive-visibility.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/mixins/_size.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/mixins/_tab-focus.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/mixins/_table-row.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/mixins/_text-emphasis.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/mixins/_text-overflow.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/mixins/_vendor-prefixes.scss +0 -0
- data/client/lanes/styles/{vendor/bootstrap-custom-grid.scss → bootstrap-custom-grid.scss} +0 -0
- data/client/lanes/styles/{vendor/bootstrap-custom-modals.scss → bootstrap-custom-modals.scss} +0 -0
- data/client/lanes/styles/bootstrap.scss +71 -0
- data/client/lanes/styles/{vendor/dataTables.scss → dataTables.scss} +0 -0
- data/client/lanes/styles/fonts.scss +9 -20
- data/client/lanes/vendor/packaged.js +27 -25
- data/client/lanes/views/Base.coffee +47 -34
- data/client/lanes/views/FormBindings.coffee +10 -9
- data/client/lanes/views/Helpers.coffee +14 -16
- data/client/lanes/views/ModelObserver.coffee +4 -4
- data/client/lanes/views/ModelUpdate.coffee +5 -2
- data/client/lanes/views/PubSub.coffee +1 -1
- data/client/lanes/views/Viewport.coffee +8 -78
- data/client/lanes/views/_button.html +1 -1
- data/client/lanes/views/_toolbar.html +21 -25
- data/client/lanes/views/model-update.html +7 -5
- data/client/lanes/workspace/ActiveScreensSwitcher.coffee +6 -12
- data/client/lanes/workspace/Extension.coffee +3 -0
- data/client/lanes/workspace/Layout.coffee +13 -9
- data/client/lanes/workspace/Navbar.coffee +2 -18
- data/client/lanes/workspace/Pages.coffee +13 -14
- data/client/lanes/workspace/ScreensMenu.coffee +9 -18
- data/client/lanes/workspace/UIState.coffee +78 -0
- data/client/lanes/workspace/WorkspaceView.coffee +4 -1
- data/client/lanes/workspace/index.js +0 -3
- data/client/lanes/workspace/navbar.html +0 -4
- data/client/lanes/workspace/pages.html +1 -1
- data/client/lanes/workspace/styles/changes-notification.scss +57 -0
- data/client/lanes/{styles → workspace/styles}/forms.scss +0 -0
- data/client/lanes/workspace/styles/header.scss +42 -0
- data/client/lanes/{styles → workspace/styles}/keybindings.scss +0 -0
- data/client/lanes/workspace/styles/layout.scss +209 -0
- data/client/lanes/workspace/styles/screens.scss +67 -0
- data/client/lanes/workspace/styles/tabs.scss +147 -0
- data/client/lanes/workspace/styles/toolbar.scss +4 -0
- data/client/lanes/workspace/styles.scss +20 -0
- data/docs/model.md +39 -7
- data/docs/todo-example-part-1.md +7 -7
- data/docs/view.md +57 -40
- data/lib/lanes/access/authentication_provider.rb +59 -0
- data/lib/lanes/access/config/routes.rb +26 -0
- data/lib/lanes/access/config/screens.rb +16 -0
- data/lib/lanes/access/db/migrate/20140615031600_create_lanes_users.rb +12 -0
- data/lib/lanes/access/extension.rb +40 -0
- data/lib/lanes/access/locked_fields.rb +43 -0
- data/lib/lanes/access/role.rb +60 -0
- data/lib/lanes/access/role_collection.rb +76 -0
- data/lib/lanes/access/roles/administrator.rb +39 -0
- data/lib/lanes/access/roles/support.rb +15 -0
- data/lib/lanes/access/track_modifications.rb +48 -0
- data/lib/lanes/access/user.rb +128 -0
- data/lib/lanes/access/version.rb +5 -0
- data/lib/lanes/access.rb +51 -0
- data/lib/lanes/api/helper_methods.rb +2 -2
- data/lib/lanes/api/javascript_processor.rb +3 -3
- data/lib/lanes/api/null_authentication_provider.rb +1 -1
- data/lib/lanes/api/pub_sub.rb +3 -3
- data/lib/lanes/api/request_wrapper.rb +1 -1
- data/lib/lanes/api/root.rb +1 -2
- data/lib/lanes/api/sprockets_extension.rb +6 -4
- data/lib/lanes/api/test_specs.rb +2 -8
- data/lib/lanes/command/app.rb +30 -12
- data/lib/lanes/command/db.rb +3 -0
- data/lib/lanes/command/generate_model.rb +4 -4
- data/lib/lanes/command/generate_screen.rb +12 -10
- data/lib/lanes/command/generate_view.rb +12 -9
- data/lib/lanes/command/named_command.rb +7 -5
- data/lib/lanes/command/server.rb +1 -1
- data/lib/lanes/command.rb +2 -5
- data/lib/lanes/components.rb +1 -1
- data/lib/lanes/concerns/queries.rb +1 -1
- data/lib/lanes/concerns/set_attribute_data.rb +5 -7
- data/lib/lanes/db.rb +5 -4
- data/lib/lanes/extension/definition.rb +95 -0
- data/lib/lanes/extension.rb +34 -69
- data/lib/lanes/guard_tasks.rb +2 -2
- data/lib/lanes/screen.rb +8 -0
- data/lib/lanes/spec_helper.rb +1 -37
- data/lib/lanes/version.rb +1 -1
- data/lib/lanes/workspace/extension.rb +28 -0
- data/lib/lanes/workspace.rb +7 -0
- data/npm-build/package.json +2 -2
- data/spec/api/javascript_processor_spec.rb +1 -1
- data/spec/lanes/components/grid/GridSpec.coffee +31 -0
- data/{lib/lanes/command/templates/client/views → spec/lanes/helpers}/.gitkeep +0 -0
- data/spec/{helpers → lanes/helpers}/jasmine-matchers.js +0 -0
- data/spec/{helpers → lanes/helpers}/lanes-helpers.coffee +2 -4
- data/spec/lanes/helpers/mock-ajax.js +576 -0
- data/spec/lanes/models/BaseSpec.coffee +24 -37
- data/spec/lanes/models/CollectionSpec.coffee +15 -2
- data/spec/lanes/models/ModelAssociationsSpec.coffee +51 -0
- data/spec/lanes/views/BaseSpec.coffee +14 -14
- data/spec/server/command_spec.rb +39 -0
- data/spec/{concerns → server/concerns}/api_path_spec.rb +1 -1
- data/spec/{concerns → server/concerns}/association_extensions_spec.rb +1 -2
- data/spec/{concerns → server/concerns}/attr_accessor_with_default_spec.rb +0 -0
- data/spec/{concerns → server/concerns}/export_associations_spec.rb +1 -2
- data/spec/{concerns → server/concerns}/export_methods_spec.rb +1 -3
- data/spec/{concerns → server/concerns}/export_scope_spec.rb +2 -2
- data/spec/{concerns → server/concerns}/exported_limits_spec.rb +1 -2
- data/spec/{concerns → server/concerns}/pub_sub_spec.rb +1 -1
- data/spec/{concerns → server/concerns}/set_attribute_data_spec.rb +1 -1
- data/spec/{configuration_spec.rb → server/configuration_spec.rb} +1 -1
- data/spec/{helpers → server}/minitest_assertions.rb +1 -1
- data/spec/{numbers_spec.rb → server/numbers_spec.rb} +1 -2
- data/{lib/lanes/testing_models.rb → spec/server/spec_helper.rb} +17 -3
- data/spec/{strings_spec.rb → server/strings_spec.rb} +1 -1
- data/templates/Gemfile +6 -0
- data/{lib/lanes/command/templates → templates}/Guardfile +0 -0
- data/templates/Rakefile +2 -0
- data/templates/client/Extension.coffee +7 -0
- data/templates/client/Router.coffee +4 -0
- data/{lib/lanes/command/templates/public → templates/client/components}/.gitkeep +0 -0
- data/templates/client/components/Component.coffee +1 -0
- data/{lib/lanes/command/templates → templates}/client/index.js +1 -0
- data/templates/client/models/BaseModel.coffee +5 -0
- data/{lib/lanes/command/templates → templates}/client/models/Model.coffee +2 -3
- data/{lib/lanes/command/templates → templates}/client/screens/Screen.coffee +6 -1
- data/{lib/lanes/command/templates → templates}/client/screens/index.js +0 -0
- data/{lib/lanes/command/templates → templates}/client/screens/layout.html +0 -0
- data/{lib/lanes/command/templates → templates}/client/screens/styles.scss +1 -2
- data/{lib/lanes/command/templates → templates}/client/styles.scss +0 -0
- data/{spec/helpers → templates/client/views}/.gitkeep +0 -0
- data/templates/client/views/BaseView.coffee +5 -0
- data/templates/client/views/View.coffee +10 -0
- data/{lib/lanes/command/templates → templates}/client/views/template.html +0 -0
- data/{lib/lanes/command/templates → templates}/config/database.yml +0 -0
- data/{lib/lanes/command/templates → templates}/config/lanes.rb +0 -0
- data/{lib/lanes/command/templates → templates}/config/routes.rb +0 -0
- data/templates/config/screen.rb +12 -0
- data/{lib/lanes/command/templates → templates}/config.ru +1 -1
- data/{lib/lanes/command/templates → templates}/db/create_table_migration.rb +1 -1
- data/{lib/lanes/command/templates → templates}/gitignore +1 -0
- data/templates/lib/namespace/base_model.rb +11 -0
- data/{lib/lanes/command/templates → templates}/lib/namespace/extension.rb +3 -3
- data/{lib/lanes/command/templates → templates}/lib/namespace/model.rb +1 -1
- data/templates/lib/namespace/version.rb +3 -0
- data/templates/lib/namespace.rb +14 -0
- data/templates/public/.gitkeep +0 -0
- data/templates/spec/client/Screen.coffee +5 -0
- data/templates/spec/client/helpers/ClientHelpers.coffee +5 -0
- data/templates/spec/client/models/ModelSpec.coffee +5 -0
- data/templates/spec/client/views/ViewSpec.coffee +5 -0
- data/{lib/lanes/command/templates → templates}/spec/fixtures/namespace/model.yml +0 -0
- data/{lib/lanes/command/templates/spec/namespace → templates/spec/server}/model_spec.rb +2 -2
- data/{lib/lanes/command/templates/spec/spec_helper.rb → templates/spec/server/spec_helpers.rb} +3 -2
- data/views/index.erb +5 -4
- data/views/specs.erb +2 -1
- metadata +273 -238
- data/client/lanes/components/grid/vendor/dataTables.bootstrap.js +0 -156
- data/client/lanes/components/grid/vendor/datatables.responsive.js +0 -666
- data/client/lanes/components/modal/_index.scss +0 -20
- data/client/lanes/components/popover/_index.scss +0 -1
- data/client/lanes/components/record_finder/RecordFinder.coffee +0 -143
- data/client/lanes/components/select_field/SelectField.coffee +0 -87
- data/client/lanes/extension/GlAccounts.coffee +0 -9
- data/client/lanes/minimal.js +0 -11
- data/client/lanes/minimal.scss.erb +0 -12
- data/client/lanes/styles/components/all.scss +0 -6
- data/client/lanes/styles/components/changes-notification.scss +0 -44
- data/client/lanes/styles/components/suggest.scss +0 -266
- data/client/lanes/styles/index.css +0 -4
- data/client/lanes/styles/layout.scss +0 -272
- data/client/lanes/styles/screens.scss +0 -66
- data/client/lanes/styles/tabs.scss +0 -148
- data/client/lanes/styles/vendor/bootstrap.scss +0 -74
- data/client/lanes/workspace.scss.erb +0 -29
- data/client/lanes-complete.js +0 -3
- data/client/lanes-workspace.scss.erb +0 -21
- data/db/migrate/20140615031600_create_hip_users.rb +0 -17
- data/lib/lanes/command/templates/Gemfile +0 -9
- data/lib/lanes/command/templates/Rakefile +0 -2
- data/lib/lanes/command/templates/client/Extension.coffee +0 -5
- data/lib/lanes/command/templates/client/components/Component.coffee +0 -1
- data/lib/lanes/command/templates/client/models/BaseModel.coffee +0 -5
- data/lib/lanes/command/templates/client/views/BaseView.coffee +0 -5
- data/lib/lanes/command/templates/client/views/View.coffee +0 -7
- data/lib/lanes/command/templates/config/screen.rb +0 -8
- data/lib/lanes/command/templates/lib/namespace/base_model.rb +0 -9
- data/lib/lanes/command/templates/lib/namespace/version.rb +0 -3
- data/lib/lanes/command/templates/lib/namespace.rb +0 -12
- data/lib/lanes/command/templates/spec/client/Screen.coffee +0 -7
- data/lib/lanes/command/templates/spec/client/models/ModelSpec.coffee +0 -5
- data/lib/lanes/command/templates/spec/client/views/ViewSpec.coffee +0 -5
- data/lib/lanes/db/migration_helpers.rb +0 -178
- data/public/javascripts/jasmine_examples/Player.js +0 -22
- data/public/javascripts/jasmine_examples/Song.js +0 -7
- data/spec/command_spec.rb +0 -49
- data/spec/helpers/jasmine-jquery.js +0 -813
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/client/lanes/styles/{vendor/bootstrap → bootstrap}/old/mixins/_responsive-visibility.scss
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/client/lanes/styles/{vendor/bootstrap-custom-modals.scss → bootstrap-custom-modals.scss}
RENAMED
File without changes
|
@@ -0,0 +1,71 @@
|
|
1
|
+
// Core variables and mixins
|
2
|
+
$zindex-navbar: 1;
|
3
|
+
$zindex-dropdown: 30;
|
4
|
+
$zindex-popover: 30;
|
5
|
+
$zindex-tooltip: 10;
|
6
|
+
$zindex-navbar-fixed: 1;
|
7
|
+
$zindex-modal-background: 25;
|
8
|
+
$zindex-modal: 26;
|
9
|
+
$zindex-tooltip: 31;
|
10
|
+
$grid-gutter-width: 10px;
|
11
|
+
$popover-max-width: 320px;
|
12
|
+
|
13
|
+
// Core variables and mixins
|
14
|
+
@import "bootstrap/variables";
|
15
|
+
@import "bootstrap/mixins";
|
16
|
+
|
17
|
+
// Reset and dependencies
|
18
|
+
@import "bootstrap/normalize";
|
19
|
+
@import "bootstrap/print";
|
20
|
+
@import "bootstrap/glyphicons";
|
21
|
+
|
22
|
+
// Core CSS
|
23
|
+
@import "bootstrap/scaffolding";
|
24
|
+
@import "bootstrap/type";
|
25
|
+
@import "bootstrap/code";
|
26
|
+
|
27
|
+
@import "bootstrap-custom-grid";
|
28
|
+
// @import "bootstrap/grid";
|
29
|
+
|
30
|
+
@import "bootstrap/tables";
|
31
|
+
@import "bootstrap/forms";
|
32
|
+
@import "bootstrap/buttons";
|
33
|
+
|
34
|
+
// Components
|
35
|
+
@import "bootstrap/component-animations";
|
36
|
+
@import "bootstrap/dropdowns";
|
37
|
+
@import "bootstrap/button-groups";
|
38
|
+
@import "bootstrap/input-groups";
|
39
|
+
@import "bootstrap/navs";
|
40
|
+
@import "bootstrap/navbar";
|
41
|
+
@import "bootstrap/breadcrumbs";
|
42
|
+
@import "bootstrap/pagination";
|
43
|
+
@import "bootstrap/pager";
|
44
|
+
@import "bootstrap/labels";
|
45
|
+
@import "bootstrap/badges";
|
46
|
+
@import "bootstrap/jumbotron";
|
47
|
+
@import "bootstrap/thumbnails";
|
48
|
+
@import "bootstrap/alerts";
|
49
|
+
@import "bootstrap/progress-bars";
|
50
|
+
@import "bootstrap/media";
|
51
|
+
@import "bootstrap/list-group";
|
52
|
+
@import "bootstrap/panels";
|
53
|
+
@import "bootstrap/responsive-embed";
|
54
|
+
@import "bootstrap/wells";
|
55
|
+
@import "bootstrap/close";
|
56
|
+
|
57
|
+
// Components w/ JavaScript
|
58
|
+
/* @import "bootstrap/modals"; */
|
59
|
+
@import "bootstrap-custom-modals";
|
60
|
+
|
61
|
+
@import "bootstrap/tooltip";
|
62
|
+
|
63
|
+
// popover is only included by the popover component
|
64
|
+
//@import "bootstrap/popovers";
|
65
|
+
|
66
|
+
@import "bootstrap/carousel";
|
67
|
+
|
68
|
+
// Utility classes
|
69
|
+
@import "bootstrap/utilities";
|
70
|
+
@import "bootstrap/responsive-utilities";
|
71
|
+
|
File without changes
|
@@ -1,16 +1,5 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
src:url(font-path('lanes/styles/fonts/icomoon.eot') + '?-7u8s0f');
|
4
|
-
src:url(font-path('lanes/styles/fonts/icomoon.eot') + '?#iefix-7u8s0f') format('embedded-opentype'),
|
5
|
-
url(font-path('lanes/styles/fonts/icomoon.woff') + '?-7u8s0f') format('woff'),
|
6
|
-
url(font-path('lanes/styles/fonts/icomoon.ttf') + '?-7u8s0f') format('truetype'),
|
7
|
-
url(font-path('lanes/styles/fonts/icomoon.svg') + '?-7u8s0f#icomoon') format('svg');
|
8
|
-
font-weight: normal;
|
9
|
-
font-style: normal;
|
10
|
-
}
|
11
|
-
.lanes {
|
12
|
-
.font-icon-display {
|
13
|
-
font-family: 'skr-icon';
|
1
|
+
.font-icon-display {
|
2
|
+
font-family: 'lanes-icon';
|
14
3
|
speak: none;
|
15
4
|
font-style: normal;
|
16
5
|
font-weight: normal;
|
@@ -25,14 +14,14 @@
|
|
25
14
|
/* Better Font Rendering =========== */
|
26
15
|
-webkit-font-smoothing: antialiased;
|
27
16
|
-moz-osx-font-smoothing: grayscale;
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
17
|
+
}
|
18
|
+
|
19
|
+
[class^="icon-"], [class*=" icon-"] {
|
20
|
+
@extend .font-icon-display;
|
21
|
+
}
|
32
22
|
|
33
|
-
|
23
|
+
@import "./fonts/style";
|
34
24
|
|
35
|
-
|
25
|
+
.icon-reset:before {
|
36
26
|
@extend .icon-refresh:before;
|
37
|
-
}
|
38
27
|
}
|
@@ -427,7 +427,7 @@ extend(Collection.prototype, BackboneEvents, {
|
|
427
427
|
get: function (query, indexName) {
|
428
428
|
if (!query) return;
|
429
429
|
var index = this._indexes[indexName || this.mainIndex];
|
430
|
-
return index[query] || index[query[this.mainIndex]] || this._indexes.cid[query.cid];
|
430
|
+
return index[query] || index[query[this.mainIndex]] || this._indexes.cid[query] || this._indexes.cid[query.cid];
|
431
431
|
},
|
432
432
|
|
433
433
|
// Get the model at the given index.
|
@@ -2443,7 +2443,7 @@ KeyTreeStore.prototype.get = function (keypath) {
|
|
2443
2443
|
module.exports = KeyTreeStore;
|
2444
2444
|
|
2445
2445
|
},{}],17:[function(require,module,exports){
|
2446
|
-
;window.ampersand = window.ampersand || {};window.ampersand["ampersand-subcollection"] = window.ampersand["ampersand-subcollection"] || [];window.ampersand["ampersand-subcollection"].push("
|
2446
|
+
;window.ampersand = window.ampersand || {};window.ampersand["ampersand-subcollection"] = window.ampersand["ampersand-subcollection"] || [];window.ampersand["ampersand-subcollection"].push("2.0.1");
|
2447
2447
|
var _ = require('underscore');
|
2448
2448
|
var Events = require('backbone-events-standalone');
|
2449
2449
|
var classExtend = require('ampersand-class-extend');
|
@@ -2452,12 +2452,9 @@ var slice = Array.prototype.slice;
|
|
2452
2452
|
|
2453
2453
|
|
2454
2454
|
function SubCollection(collection, spec) {
|
2455
|
-
spec || (spec = {});
|
2456
2455
|
this.collection = collection;
|
2457
|
-
this.
|
2458
|
-
this.
|
2459
|
-
this._parseFilters(spec);
|
2460
|
-
this._runFilters();
|
2456
|
+
this.models = [];
|
2457
|
+
this.configure(spec || {}, true);
|
2461
2458
|
this.listenTo(this.collection, 'all', this._onCollectionEvent);
|
2462
2459
|
}
|
2463
2460
|
|
@@ -2475,7 +2472,7 @@ _.extend(SubCollection.prototype, Events, underscoreMixins, {
|
|
2475
2472
|
|
2476
2473
|
// clears filters fires events for changes
|
2477
2474
|
clearFilters: function () {
|
2478
|
-
this.
|
2475
|
+
this._resetFilters();
|
2479
2476
|
this._runFilters();
|
2480
2477
|
},
|
2481
2478
|
|
@@ -2508,7 +2505,7 @@ _.extend(SubCollection.prototype, Events, underscoreMixins, {
|
|
2508
2505
|
},
|
2509
2506
|
|
2510
2507
|
// Update sub collection config, if `clear`
|
2511
|
-
// then clear existing
|
2508
|
+
// then clear existing spec before start.
|
2512
2509
|
// This takes all the same filter arguments
|
2513
2510
|
// as the init function. So you can pass:
|
2514
2511
|
// {
|
@@ -2518,8 +2515,9 @@ _.extend(SubCollection.prototype, Events, underscoreMixins, {
|
|
2518
2515
|
// limit: 20
|
2519
2516
|
// }
|
2520
2517
|
configure: function (opts, clear) {
|
2521
|
-
if (clear) this._resetFilters();
|
2522
|
-
this.
|
2518
|
+
if (clear) this._resetFilters(clear);
|
2519
|
+
//_.extend(this._spec, opts);
|
2520
|
+
this._parseSpec(opts);
|
2523
2521
|
this._runFilters();
|
2524
2522
|
},
|
2525
2523
|
|
@@ -2543,17 +2541,17 @@ _.extend(SubCollection.prototype, Events, underscoreMixins, {
|
|
2543
2541
|
},
|
2544
2542
|
|
2545
2543
|
// clear all filters, reset everything
|
2546
|
-
|
2547
|
-
this.
|
2548
|
-
this._resetFilters();
|
2544
|
+
reset: function () {
|
2545
|
+
this.configure({}, true);
|
2549
2546
|
},
|
2550
2547
|
|
2551
2548
|
// just reset filters, no model changes
|
2552
|
-
_resetFilters: function () {
|
2549
|
+
_resetFilters: function (resetComparator) {
|
2553
2550
|
this._filters = [];
|
2554
2551
|
this._watched = [];
|
2555
2552
|
this.limit = undefined;
|
2556
2553
|
this.offset = undefined;
|
2554
|
+
if (resetComparator) this.comparator = undefined;
|
2557
2555
|
},
|
2558
2556
|
|
2559
2557
|
// internal method registering new filter function
|
@@ -2568,10 +2566,12 @@ _.extend(SubCollection.prototype, Events, underscoreMixins, {
|
|
2568
2566
|
|
2569
2567
|
// removes a watched property
|
2570
2568
|
_unwatch: function (item) {
|
2571
|
-
this._watched = _.
|
2569
|
+
this._watched = _.difference(this._watched, _.isArray(item) ? item : [item]);
|
2572
2570
|
},
|
2573
2571
|
|
2574
|
-
|
2572
|
+
_parseSpec: function (spec) {
|
2573
|
+
if (spec.watched) this._watch(spec.watched);
|
2574
|
+
if (spec.comparator) this.comparator = spec.comparator;
|
2575
2575
|
if (spec.where) {
|
2576
2576
|
_.each(spec.where, function (value, item) {
|
2577
2577
|
this._addFilter(function (model) {
|
@@ -2584,14 +2584,11 @@ _.extend(SubCollection.prototype, Events, underscoreMixins, {
|
|
2584
2584
|
if (spec.hasOwnProperty('limit')) this.limit = spec.limit;
|
2585
2585
|
if (spec.hasOwnProperty('offset')) this.offset = spec.offset;
|
2586
2586
|
if (spec.filter) {
|
2587
|
-
this._addFilter(spec.filter
|
2587
|
+
this._addFilter(spec.filter);
|
2588
2588
|
}
|
2589
2589
|
if (spec.filters) {
|
2590
2590
|
spec.filters.forEach(this._addFilter, this);
|
2591
2591
|
}
|
2592
|
-
if (spec.comparator) {
|
2593
|
-
this.comparator = spec.comparator;
|
2594
|
-
}
|
2595
2592
|
},
|
2596
2593
|
|
2597
2594
|
_runFilters: function () {
|
@@ -2614,7 +2611,11 @@ _.extend(SubCollection.prototype, Events, underscoreMixins, {
|
|
2614
2611
|
if (this.comparator) newModels = _.sortBy(newModels, this.comparator);
|
2615
2612
|
|
2616
2613
|
// trim it to length
|
2617
|
-
if (this.limit || this.offset)
|
2614
|
+
if (this.limit || this.offset) {
|
2615
|
+
// Cache a reference to the full filtered set to allow this.filtered.length. Ref: #6
|
2616
|
+
this.filtered = newModels;
|
2617
|
+
newModels = newModels.slice(offset, this.limit + offset);
|
2618
|
+
}
|
2618
2619
|
|
2619
2620
|
// now we've got our new models time to compare
|
2620
2621
|
toAdd = _.difference(newModels, existingModels);
|
@@ -2631,19 +2632,20 @@ _.extend(SubCollection.prototype, Events, underscoreMixins, {
|
|
2631
2632
|
this.trigger('add', model, this);
|
2632
2633
|
}, this);
|
2633
2634
|
|
2634
|
-
//
|
2635
|
+
// unless we have the same models in same order trigger `sort`
|
2635
2636
|
if (!_.isEqual(existingModels, newModels)) {
|
2636
2637
|
this.trigger('sort', this);
|
2637
2638
|
}
|
2638
2639
|
},
|
2639
2640
|
|
2640
2641
|
_onCollectionEvent: function (eventName, model) {
|
2642
|
+
var propName = eventName.split(':')[1];
|
2641
2643
|
// conditions under which we should re-run filters
|
2642
|
-
if (_.contains(this._watched,
|
2644
|
+
if (propName === this.comparator || _.contains(this._watched, propName) || _.contains(['add', 'remove', 'reset', 'sync'], eventName)) {
|
2643
2645
|
this._runFilters();
|
2644
2646
|
}
|
2645
2647
|
// conditions under which we should proxy the events
|
2646
|
-
if (
|
2648
|
+
if (!_.contains(['add', 'remove'], eventName) && this.contains(model)) {
|
2647
2649
|
this.trigger.apply(this, arguments);
|
2648
2650
|
}
|
2649
2651
|
}
|