lanes 0.0.3 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/Gemfile +1 -1
- data/Rakefile +0 -42
- data/client/{javascripts/component → lanes/components}/Base.coffee +10 -10
- data/client/{javascripts/component → lanes/components}/ChoicesInput.coffee +0 -0
- data/client/lanes/components/enabled.js.erb +3 -0
- data/client/{javascripts/lib/create-namespace.js → lanes/components/enabled.scss.erb} +0 -0
- data/client/{javascripts/component → lanes/components}/grid/Editor.coffee +10 -13
- data/client/{javascripts/component → lanes/components/grid}/Grid.coffee +6 -6
- data/client/{javascripts/component → lanes/components}/grid/PopOverEditor.coffee +3 -3
- data/client/{javascripts/component → lanes/components}/grid/RowEditor.coffee +2 -3
- data/client/lanes/components/grid/config.json +3 -0
- data/client/{stylesheets/compoonents/grid-editors.scss → lanes/components/grid/editors.scss} +0 -0
- data/client/{stylesheets/compoonents → lanes/components/grid}/grid.scss +8 -6
- data/client/lanes/components/grid/index.js +8 -0
- data/client/{javascripts/component → lanes/components}/grid/popover-editor.html +0 -0
- data/client/{javascripts/component → lanes/components}/grid/row-editor.html +0 -0
- data/client/{javascripts/component/grid.html → lanes/components/grid/template.html} +0 -0
- data/client/{javascripts/vendor/dataTables → lanes/components/grid/vendor}/dataTables.bootstrap.js +0 -0
- data/client/{javascripts/vendor/dataTables → lanes/components/grid/vendor}/dataTables.scroller.js +0 -0
- data/client/{javascripts/vendor/dataTables → lanes/components/grid/vendor}/datatables.responsive.js +0 -0
- data/client/{javascripts/vendor/dataTables → lanes/components/grid/vendor}/index.js +0 -0
- data/client/{javascripts/vendor/dataTables → lanes/components/grid/vendor}/jquery.dataTables.js +1 -0
- data/client/lanes/components/index.js +2 -0
- data/client/lanes/components/modal/ModalDialog.coffee +47 -0
- data/client/lanes/components/modal/index.js +2 -0
- data/client/lanes/components/modal/modal.scss +20 -0
- data/client/{javascripts/component/modal.html → lanes/components/modal/template.html} +5 -4
- data/client/{javascripts/component → lanes/components/popover}/PopOver.coffee +4 -4
- data/client/lanes/components/popover/index.js +2 -0
- data/client/lanes/components/popover/popover.scss +1 -0
- data/client/{javascripts/component/popover.html → lanes/components/popover/template.html} +0 -0
- data/client/{javascripts/component → lanes/components/radio_group}/RadioGroup.coffee +1 -1
- data/client/{javascripts/component → lanes/components/record_finder}/RecordFinder.coffee +4 -4
- data/client/{javascripts/component/record-finder → lanes/components/record_finder}/clause.skr +0 -0
- data/client/{javascripts/component/record-finder → lanes/components/record_finder}/dialog.skr +0 -0
- data/client/{javascripts/component/record-finder → lanes/components/record_finder}/field.skr +0 -0
- data/client/lanes/components/select_field/SelectField.coffee +87 -0
- data/client/{screens/user-management → lanes/components/select_field}/index.js +0 -1
- data/client/{javascripts/workspace/tab.html → lanes/components/select_field/select_field.scss} +0 -0
- data/client/{javascripts → lanes}/data/Bootstrap.coffee +0 -0
- data/client/{javascripts → lanes}/data/ChangeSet.coffee +0 -0
- data/client/{javascripts → lanes}/data/Collection.coffee +37 -6
- data/client/{javascripts → lanes}/data/Config.coffee +0 -0
- data/client/{javascripts → lanes}/data/Model.coffee +8 -9
- data/client/{javascripts → lanes}/data/PubSub.coffee +0 -0
- data/client/{javascripts → lanes}/data/Query.coffee +0 -0
- data/client/{javascripts → lanes}/data/Screens.coffee +48 -19
- data/client/{javascripts → lanes}/data/Sync.coffee +5 -5
- data/client/lanes/data/User.coffee +46 -0
- data/client/{javascripts → lanes}/data/index.js +1 -2
- data/client/{javascripts → lanes}/data/mixins/HasCodeField.coffee +1 -1
- data/client/{javascripts → lanes}/extension/Base.coffee +1 -1
- data/client/lanes/extension/EarlyExtensions.js.erb +3 -0
- data/client/{javascripts → lanes}/extension/Extensions.coffee +5 -0
- data/client/{javascripts → lanes}/extension/GlAccounts.coffee +0 -0
- data/client/lanes/extension/LateLoaded.js.erb +3 -0
- data/client/lanes/extension/index.js +5 -0
- data/client/lanes/extension/namespace-available.js.erb +3 -0
- data/client/lanes/index.js +11 -0
- data/client/{javascripts → lanes}/lib/MakeBaseClass.coffee +0 -0
- data/client/{javascripts → lanes}/lib/ModuleSupport.coffee +0 -0
- data/client/{javascripts → lanes}/lib/Templates.coffee +2 -5
- data/{spec/client/foo_spec.js → client/lanes/lib/create-namespace.js} +0 -0
- data/client/{javascripts → lanes}/lib/debounce.coffee +0 -0
- data/client/{javascripts → lanes}/lib/defer.coffee +0 -0
- data/client/{javascripts → lanes}/lib/el.js +0 -0
- data/client/{javascripts → lanes}/lib/index.js +0 -4
- data/client/{javascripts → lanes}/lib/loader.coffee +15 -10
- data/client/{javascripts → lanes}/lib/namespace.coffee +3 -0
- data/client/{javascripts → lanes}/lib/noConflict.coffee +1 -0
- data/client/{javascripts → lanes}/lib/promise_helpers.coffee +0 -0
- data/client/{javascripts → lanes}/lib/results.coffee +0 -0
- data/client/{javascripts → lanes}/lib/utilFunctions.coffee +11 -13
- data/client/{javascripts → lanes}/plugins/ResizeSensor.js +0 -0
- data/client/lanes/plugins/index.js +1 -0
- data/client/{javascripts → lanes}/plugins/overlay.coffee +0 -0
- data/client/{javascripts → lanes}/plugins/trigger.coffee +0 -0
- data/client/lanes/screens/Base.coffee +40 -0
- data/client/{javascripts/view/mixins/ScreenChangeListener.coffee → lanes/screens/ChangeListener.coffee} +2 -2
- data/client/lanes/screens/Router.coffee +6 -0
- data/client/lanes/screens/index.js +1 -0
- data/client/{javascripts/view → lanes/screens}/screen-definitions.js.erb +0 -0
- data/client/{javascripts → lanes}/vendor/bootstrap/affix.js +43 -23
- data/client/{javascripts → lanes}/vendor/bootstrap/alert.js +6 -4
- data/client/{javascripts → lanes}/vendor/bootstrap/button.js +16 -10
- data/client/{javascripts → lanes}/vendor/bootstrap/carousel.js +27 -10
- data/client/{javascripts → lanes}/vendor/bootstrap/collapse.js +69 -28
- data/client/{javascripts → lanes}/vendor/bootstrap/dropdown.js +20 -10
- data/client/{javascripts → lanes}/vendor/bootstrap/modal.js +67 -23
- data/client/{javascripts → lanes}/vendor/bootstrap/popover.js +13 -7
- data/client/{javascripts → lanes}/vendor/bootstrap/scrollspy.js +12 -7
- data/client/{javascripts → lanes}/vendor/bootstrap/tab.js +41 -16
- data/client/{javascripts → lanes}/vendor/bootstrap/tooltip.js +60 -39
- data/client/{javascripts → lanes}/vendor/bootstrap/transition.js +1 -1
- data/client/{javascripts → lanes}/vendor/jquery-2.js +0 -0
- data/client/{javascripts → lanes}/vendor/jquery.tap.js +0 -0
- data/client/{javascripts → lanes}/vendor/magicsuggest.js +0 -0
- data/client/{javascripts → lanes}/vendor/message-bus.js +0 -0
- data/client/lanes/vendor/modern-stack.js +27 -0
- data/client/lanes/vendor/packaged.js +13698 -0
- data/client/{javascripts/view → lanes/views}/Assets.coffee +1 -1
- data/client/lanes/views/Base.coffee +426 -0
- data/client/{javascripts/view → lanes/views}/FormBindings.coffee +1 -1
- data/client/{javascripts/view → lanes/views}/Functions.coffee +1 -1
- data/client/{javascripts/view → lanes/views}/Helpers.coffee +6 -6
- data/client/{javascripts/view → lanes/views}/Keys.coffee +3 -3
- data/client/{javascripts/view → lanes/views}/ModelObserver.coffee +1 -1
- data/client/{javascripts/view → lanes/views}/ModelUpdate.coffee +2 -2
- data/client/{javascripts/view → lanes/views}/PubSub.coffee +3 -3
- data/client/{javascripts/view → lanes/views}/RenderContext.coffee +1 -1
- data/client/{javascripts/view → lanes/views}/SaveNotify.coffee +2 -2
- data/client/{javascripts/view → lanes/views}/TimedHighlight.coffee +1 -1
- data/client/{javascripts/view → lanes/views}/TimedMask.coffee +1 -1
- data/client/{javascripts/view/InterfaceState.coffee → lanes/views/Viewport.coffee} +18 -18
- data/client/{javascripts/view → lanes/views}/_button.html +0 -0
- data/client/{javascripts/view → lanes/views}/_toolbar.html +0 -0
- data/client/lanes/views/index.js +2 -0
- data/client/{javascripts/view → lanes/views}/model-update.html +0 -0
- data/client/{javascripts → lanes}/workspace/ActiveScreensSwitcher.coffee +23 -27
- data/client/{javascripts → lanes}/workspace/Instance.es6 +25 -21
- data/client/{javascripts → lanes}/workspace/Layout.coffee +6 -5
- data/client/{javascripts → lanes}/workspace/Navbar.coffee +2 -2
- data/client/{javascripts → lanes}/workspace/Pages.coffee +9 -13
- data/client/{javascripts → lanes}/workspace/ScreensMenu.coffee +11 -11
- data/client/{javascripts → lanes}/workspace/index.js +7 -5
- data/client/{javascripts → lanes}/workspace/layout.html +0 -0
- data/client/{javascripts → lanes}/workspace/menu.html +0 -0
- data/client/{javascripts → lanes}/workspace/menu_toggle.html +0 -0
- data/client/{javascripts → lanes}/workspace/navbar.html +0 -0
- data/client/{javascripts → lanes}/workspace/pages.html +0 -0
- data/client/{javascripts → lanes}/workspace/screens-menu.html +0 -0
- data/client/{javascripts → lanes}/workspace/screens-switcher.html +0 -0
- data/client/lanes/workspace/tab.html +0 -0
- data/client/lanes/workspace.scss.erb +21 -0
- data/client/{javascripts/lanes-complete.js → lanes-complete.js} +0 -0
- data/client/lanes-workspace.scss.erb +21 -0
- data/client/{stylesheets/compoonents → styles/components}/all.scss +0 -0
- data/client/{stylesheets/compoonents → styles/components}/changes-notification.scss +0 -0
- data/client/{stylesheets/compoonents → styles/components}/record-finder.scss +0 -0
- data/client/{stylesheets/compoonents → styles/components}/suggest.scss +0 -0
- data/client/{stylesheets → styles}/fonts/icomoon.eot +0 -0
- data/client/{stylesheets → styles}/fonts/icomoon.svg +0 -0
- data/client/{stylesheets → styles}/fonts/icomoon.ttf +0 -0
- data/client/{stylesheets → styles}/fonts/icomoon.woff +0 -0
- data/client/{stylesheets → styles}/fonts/selection.json +0 -0
- data/client/{stylesheets/fonts/style.css → styles/fonts/style.scss} +0 -0
- data/client/{stylesheets → styles}/fonts.scss +6 -6
- data/client/{stylesheets → styles}/forms.scss +0 -0
- data/client/{stylesheets → styles}/index.css +0 -0
- data/client/{stylesheets → styles}/keybindings.scss +0 -0
- data/client/{stylesheets → styles}/layout.scss +1 -1
- data/client/{stylesheets → styles}/plugins/all.scss +0 -0
- data/client/{stylesheets → styles}/plugins/overlay.scss +1 -1
- data/client/{stylesheets → styles}/plugins/resize-sensor.scss +0 -0
- data/client/{stylesheets → styles}/screens.scss +0 -0
- data/client/{stylesheets → styles}/tabs.scss +0 -0
- data/client/{stylesheets → styles}/vendor/bootstrap/_alerts.scss +0 -0
- data/client/styles/vendor/bootstrap/_badges.scss +63 -0
- data/client/{stylesheets → styles}/vendor/bootstrap/_breadcrumbs.scss +0 -0
- data/client/styles/vendor/bootstrap/_button-groups.scss +243 -0
- data/client/styles/vendor/bootstrap/_buttons.scss +160 -0
- data/client/styles/vendor/bootstrap/_carousel.scss +267 -0
- data/client/{stylesheets → styles}/vendor/bootstrap/_close.scss +0 -0
- data/client/styles/vendor/bootstrap/_code.scss +69 -0
- data/client/styles/vendor/bootstrap/_component-animations.scss +38 -0
- data/client/styles/vendor/bootstrap/_dropdowns.scss +213 -0
- data/client/styles/vendor/bootstrap/_forms.scss +548 -0
- data/client/styles/vendor/bootstrap/_glyphicons.scss +234 -0
- data/client/styles/vendor/bootstrap/_grid.scss +84 -0
- data/client/{stylesheets → styles}/vendor/bootstrap/_input-groups.scss +0 -0
- data/client/styles/vendor/bootstrap/_jumbotron.scss +49 -0
- data/client/{stylesheets → styles}/vendor/bootstrap/_labels.scss +0 -0
- data/client/styles/vendor/bootstrap/_list-group.scss +124 -0
- data/client/styles/vendor/bootstrap/_media.scss +47 -0
- data/client/{stylesheets → styles}/vendor/bootstrap/_mixins.scss +0 -0
- data/client/styles/vendor/bootstrap/_modals.scss +148 -0
- data/client/styles/vendor/bootstrap/_navbar.scss +662 -0
- data/client/styles/vendor/bootstrap/_navs.scss +244 -0
- data/client/styles/vendor/bootstrap/_normalize.scss +427 -0
- data/client/styles/vendor/bootstrap/_pager.scss +54 -0
- data/client/styles/vendor/bootstrap/_pagination.scss +88 -0
- data/client/styles/vendor/bootstrap/_panels.scss +261 -0
- data/client/styles/vendor/bootstrap/_popovers.scss +135 -0
- data/client/styles/vendor/bootstrap/_print.scss +107 -0
- data/client/styles/vendor/bootstrap/_progress-bars.scss +87 -0
- data/client/styles/vendor/bootstrap/_responsive-embed.scss +35 -0
- data/client/{stylesheets → styles}/vendor/bootstrap/_responsive-utilities.scss +0 -0
- data/client/styles/vendor/bootstrap/_scaffolding.scss +150 -0
- data/client/styles/vendor/bootstrap/_tables.scss +234 -0
- data/client/styles/vendor/bootstrap/_theme.scss +272 -0
- data/client/styles/vendor/bootstrap/_thumbnails.scss +38 -0
- data/client/styles/vendor/bootstrap/_tooltip.scss +103 -0
- data/client/styles/vendor/bootstrap/_type.scss +298 -0
- data/client/styles/vendor/bootstrap/_utilities.scss +56 -0
- data/client/styles/vendor/bootstrap/_variables.scss +864 -0
- data/client/{stylesheets → styles}/vendor/bootstrap/_wells.scss +0 -0
- data/client/{stylesheets → styles}/vendor/bootstrap/mixins/_alerts.scss +0 -0
- data/client/{stylesheets → styles}/vendor/bootstrap/mixins/_background-variant.scss +0 -0
- data/client/{stylesheets → styles}/vendor/bootstrap/mixins/_border-radius.scss +0 -0
- data/client/styles/vendor/bootstrap/mixins/_buttons.scss +52 -0
- data/client/{stylesheets → styles}/vendor/bootstrap/mixins/_center-block.scss +0 -0
- data/client/{stylesheets → styles}/vendor/bootstrap/mixins/_clearfix.scss +0 -0
- data/client/styles/vendor/bootstrap/mixins/_forms.scss +88 -0
- data/client/{stylesheets → styles}/vendor/bootstrap/mixins/_gradients.scss +0 -0
- data/client/{stylesheets → styles}/vendor/bootstrap/mixins/_grid-framework.scss +0 -0
- data/client/styles/vendor/bootstrap/mixins/_grid.scss +122 -0
- data/client/styles/vendor/bootstrap/mixins/_hide-text.scss +21 -0
- data/client/styles/vendor/bootstrap/mixins/_image.scss +33 -0
- data/client/styles/vendor/bootstrap/mixins/_labels.scss +12 -0
- data/client/{stylesheets → styles}/vendor/bootstrap/mixins/_list-group.scss +0 -0
- data/client/{stylesheets → styles}/vendor/bootstrap/mixins/_nav-divider.scss +0 -0
- data/client/{stylesheets → styles}/vendor/bootstrap/mixins/_nav-vertical-align.scss +0 -0
- data/client/{stylesheets → styles}/vendor/bootstrap/mixins/_opacity.scss +0 -0
- data/client/{stylesheets → styles}/vendor/bootstrap/mixins/_pagination.scss +0 -0
- data/client/{stylesheets → styles}/vendor/bootstrap/mixins/_panels.scss +0 -0
- data/client/styles/vendor/bootstrap/mixins/_progress-bar.scss +10 -0
- data/client/{stylesheets → styles}/vendor/bootstrap/mixins/_reset-filter.scss +0 -0
- data/client/{stylesheets → styles}/vendor/bootstrap/mixins/_resize.scss +0 -0
- data/client/{stylesheets → styles}/vendor/bootstrap/mixins/_responsive-visibility.scss +0 -0
- data/client/{stylesheets → styles}/vendor/bootstrap/mixins/_size.scss +0 -0
- data/client/{stylesheets → styles}/vendor/bootstrap/mixins/_tab-focus.scss +0 -0
- data/client/{stylesheets → styles}/vendor/bootstrap/mixins/_table-row.scss +0 -0
- data/client/{stylesheets → styles}/vendor/bootstrap/mixins/_text-emphasis.scss +0 -0
- data/client/{stylesheets → styles}/vendor/bootstrap/mixins/_text-overflow.scss +0 -0
- data/client/styles/vendor/bootstrap/mixins/_vendor-prefixes.scss +222 -0
- data/client/styles/vendor/bootstrap/old/_alerts.scss +68 -0
- data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_badges.scss +0 -0
- data/client/styles/vendor/bootstrap/old/_breadcrumbs.scss +26 -0
- data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_button-groups.scss +0 -0
- data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_buttons.scss +0 -0
- data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_carousel.scss +0 -0
- data/client/styles/vendor/bootstrap/old/_close.scss +35 -0
- data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_code.scss +0 -0
- data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_component-animations.scss +0 -0
- data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_dropdowns.scss +0 -0
- data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_forms.scss +0 -0
- data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_glyphicons.scss +0 -0
- data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_grid.scss +0 -0
- data/client/styles/vendor/bootstrap/old/_input-groups.scss +166 -0
- data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_jumbotron.scss +0 -0
- data/client/styles/vendor/bootstrap/old/_labels.scss +66 -0
- data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_list-group.scss +0 -0
- data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_media.scss +0 -0
- data/client/styles/vendor/bootstrap/old/_mixins.scss +39 -0
- data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_modals.scss +0 -0
- data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_navbar.scss +0 -0
- data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_navs.scss +0 -0
- data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_normalize.scss +0 -0
- data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_pager.scss +0 -0
- data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_pagination.scss +0 -0
- data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_panels.scss +0 -0
- data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_popovers.scss +0 -0
- data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_print.scss +0 -0
- data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_progress-bars.scss +0 -0
- data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_responsive-embed.scss +0 -0
- data/client/styles/vendor/bootstrap/old/_responsive-utilities.scss +174 -0
- data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_scaffolding.scss +0 -0
- data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_tables.scss +0 -0
- data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_theme.scss +0 -0
- data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_thumbnails.scss +0 -0
- data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_tooltip.scss +0 -0
- data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_type.scss +0 -0
- data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_utilities.scss +0 -0
- data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_variables.scss +0 -0
- data/client/styles/vendor/bootstrap/old/_wells.scss +29 -0
- data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/bootstrap.scss +0 -0
- data/client/styles/vendor/bootstrap/old/mixins/_alerts.scss +14 -0
- data/client/styles/vendor/bootstrap/old/mixins/_background-variant.scss +11 -0
- data/client/styles/vendor/bootstrap/old/mixins/_border-radius.scss +18 -0
- data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/mixins/_buttons.scss +0 -0
- data/client/styles/vendor/bootstrap/old/mixins/_center-block.scss +7 -0
- data/client/styles/vendor/bootstrap/old/mixins/_clearfix.scss +22 -0
- data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/mixins/_forms.scss +0 -0
- data/client/styles/vendor/bootstrap/old/mixins/_gradients.scss +58 -0
- data/client/styles/vendor/bootstrap/old/mixins/_grid-framework.scss +81 -0
- data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/mixins/_grid.scss +0 -0
- data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/mixins/_hide-text.scss +0 -0
- data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/mixins/_image.scss +0 -0
- data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/mixins/_labels.scss +0 -0
- data/client/styles/vendor/bootstrap/old/mixins/_list-group.scss +31 -0
- data/client/styles/vendor/bootstrap/old/mixins/_nav-divider.scss +10 -0
- data/client/styles/vendor/bootstrap/old/mixins/_nav-vertical-align.scss +9 -0
- data/client/styles/vendor/bootstrap/old/mixins/_opacity.scss +8 -0
- data/client/styles/vendor/bootstrap/old/mixins/_pagination.scss +23 -0
- data/client/styles/vendor/bootstrap/old/mixins/_panels.scss +24 -0
- data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/mixins/_progress-bar.scss +0 -0
- data/client/styles/vendor/bootstrap/old/mixins/_reset-filter.scss +8 -0
- data/client/styles/vendor/bootstrap/old/mixins/_resize.scss +6 -0
- data/client/styles/vendor/bootstrap/old/mixins/_responsive-visibility.scss +21 -0
- data/client/styles/vendor/bootstrap/old/mixins/_size.scss +10 -0
- data/client/styles/vendor/bootstrap/old/mixins/_tab-focus.scss +9 -0
- data/client/styles/vendor/bootstrap/old/mixins/_table-row.scss +28 -0
- data/client/styles/vendor/bootstrap/old/mixins/_text-emphasis.scss +11 -0
- data/client/styles/vendor/bootstrap/old/mixins/_text-overflow.scss +8 -0
- data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/mixins/_vendor-prefixes.scss +0 -0
- data/client/{stylesheets → styles}/vendor/bootstrap-custom-grid.scss +0 -0
- data/client/{stylesheets → styles}/vendor/bootstrap-custom-modals.scss +0 -0
- data/client/{stylesheets → styles}/vendor/bootstrap.scss +14 -9
- data/client/{stylesheets → styles}/vendor/dataTables.scss +0 -0
- data/lanes.gemspec +5 -1
- data/lib/lanes/api/controller.rb +47 -6
- data/lib/lanes/api/helper_methods.rb +2 -10
- data/lib/lanes/api/javascript_processor.rb +17 -7
- data/lib/lanes/api/null_authentication_provider.rb +33 -0
- data/lib/lanes/api/request_wrapper.rb +49 -28
- data/lib/lanes/api/root.rb +12 -30
- data/lib/lanes/api/routing.rb +37 -0
- data/lib/lanes/api/sprockets_compressor.rb +35 -0
- data/lib/lanes/api/sprockets_extension.rb +69 -0
- data/lib/lanes/api/test_specs.rb +13 -9
- data/lib/lanes/api.rb +2 -18
- data/lib/lanes/cli.rb +22 -2
- data/lib/lanes/command/app.rb +49 -0
- data/lib/lanes/command/client_model_update.rb +65 -0
- data/lib/lanes/command/console.rb +20 -0
- data/lib/lanes/command/db.rb +33 -0
- data/lib/lanes/command/db.usage +1 -0
- data/lib/lanes/command/generate.rb +21 -0
- data/lib/lanes/command/generate_model.rb +105 -0
- data/lib/lanes/command/generate_model.usage +45 -0
- data/lib/lanes/command/generate_screen.rb +31 -0
- data/lib/lanes/command/generate_screen.usage +11 -0
- data/lib/lanes/command/generate_view.rb +22 -0
- data/lib/lanes/command/generate_view.usage +13 -0
- data/lib/lanes/command/model_attribute.rb +188 -0
- data/lib/lanes/command/named_command.rb +27 -0
- data/lib/lanes/command/server.rb +19 -0
- data/lib/lanes/command/server.usage +3 -0
- data/lib/lanes/command/templates/Gemfile +10 -0
- data/lib/lanes/{generators/app → command/templates}/Guardfile +0 -0
- data/lib/lanes/command/templates/Rakefile +2 -0
- data/lib/lanes/command/templates/client/Extension.coffee +5 -0
- data/lib/lanes/command/templates/client/components/.gitkeep +0 -0
- data/lib/lanes/command/templates/client/components/Component.coffee +1 -0
- data/lib/lanes/command/templates/client/data/Model.coffee +24 -0
- data/lib/lanes/command/templates/client/namespace-extension.js +17 -0
- data/lib/lanes/command/templates/client/screens/Screen.coffee +9 -0
- data/lib/lanes/command/templates/client/screens/index.js +5 -0
- data/lib/lanes/command/templates/client/screens/layout.html +3 -0
- data/lib/lanes/command/templates/client/screens/styles.scss +9 -0
- data/lib/lanes/command/templates/client/styles/styles.scss +1 -0
- data/lib/lanes/command/templates/client/views/.gitkeep +0 -0
- data/lib/lanes/command/templates/client/views/View.coffee +9 -0
- data/lib/lanes/command/templates/client/views/template.html +3 -0
- data/lib/lanes/{generators/app → command/templates}/config/database.yml +0 -0
- data/lib/lanes/command/templates/config/lanes.rb +7 -0
- data/lib/lanes/command/templates/config/routes.rb +2 -0
- data/lib/lanes/{generators/app → command/templates}/config.ru +1 -0
- data/lib/lanes/command/templates/db/create_table_migration.rb +19 -0
- data/lib/lanes/command/templates/gitignore +1 -0
- data/lib/lanes/command/templates/lib/namespace/extension.rb +13 -0
- data/lib/lanes/command/templates/lib/namespace/model.rb +7 -0
- data/lib/lanes/command/templates/lib/namespace/screen.rb +17 -0
- data/lib/lanes/command/templates/lib/namespace/version.rb +3 -0
- data/lib/lanes/command/templates/lib/namespace.rb +12 -0
- data/lib/lanes/command/templates/spec/client/data/ModelSpec.coffee +5 -0
- data/lib/lanes/command/templates/spec/client/views/ViewSpec.coffee +5 -0
- data/lib/lanes/command/templates/spec/fixtures/namespace/model.yml +16 -0
- data/lib/lanes/command/templates/spec/namespace/model_spec.rb +10 -0
- data/lib/lanes/command/templates/spec/spec_helper.rb +15 -0
- data/lib/lanes/command/update.rb +13 -0
- data/lib/lanes/command/update_model.rb +125 -0
- data/lib/lanes/command/update_model.usage +2 -0
- data/lib/lanes/command.rb +37 -0
- data/lib/lanes/components.rb +45 -0
- data/lib/lanes/concerns/set_attribute_data.rb +2 -2
- data/lib/lanes/configuration.rb +3 -3
- data/lib/lanes/db.rb +5 -39
- data/lib/lanes/extension.rb +64 -19
- data/lib/lanes/guard_tasks.rb +7 -5
- data/lib/lanes/rake_tasks.rb +47 -0
- data/lib/lanes/screens.rb +1 -48
- data/{spec → lib/lanes}/spec_helper.rb +0 -0
- data/lib/lanes/version.rb +1 -1
- data/lib/lanes.rb +1 -3
- data/npm-build/compile.coffee +1 -1
- data/npm-build/package.json +5 -5
- data/npm-build/template.js +13 -13
- data/spec/api/javascript_processor_spec.rb +1 -1
- data/spec/client/view/BaseSpec.coffee +166 -0
- data/spec/helpers/jasmine-jquery.js +813 -0
- data/spec/helpers/jasmine-matchers.js +1586 -0
- data/tasks/migrations.rake +1 -1
- data/views/index.erb +9 -13
- metadata +419 -268
- data/client/javascripts/component/ModalDialog.coffee +0 -44
- data/client/javascripts/component/SelectField.coffee +0 -43
- data/client/javascripts/component/TaggedField.coffee +0 -27
- data/client/javascripts/component/index.js +0 -5
- data/client/javascripts/data/Roles.coffee +0 -91
- data/client/javascripts/data/User.coffee +0 -70
- data/client/javascripts/extension/index.js +0 -6
- data/client/javascripts/extension/load.js.erb +0 -3
- data/client/javascripts/lanes-workspace.js +0 -1
- data/client/javascripts/lib/underscore.inflection.js +0 -210
- data/client/javascripts/plugins/index.js +0 -4
- data/client/javascripts/vendor/modern-stack.js +0 -14
- data/client/javascripts/vendor/packaged.js +0 -13769
- data/client/javascripts/view/Base.coffee +0 -231
- data/client/javascripts/view/Screen.coffee +0 -30
- data/client/javascripts/view/index.js +0 -10
- data/client/javascripts/workspace/LoginDialog.coffee +0 -33
- data/client/javascripts/workspace/login-dialog.html +0 -16
- data/client/screens/user-management/UserEditScreen.coffee +0 -21
- data/client/screens/user-management/UserManagement.coffee +0 -24
- data/client/screens/user-management/grid-popover-editor.html +0 -33
- data/client/screens/user-management/index.css +0 -4
- data/client/screens/user-management/user-management-styles.scss +0 -7
- data/client/screens/user-management/user-management.html +0 -8
- data/client/stylesheets/compoonents/modal-dialog.scss +0 -23
- data/client/stylesheets/lanes-workspace.scss +0 -17
- data/config/puma.rb +0 -7
- data/db/seed.rb +0 -37
- data/foo/Gemfile +0 -5
- data/foo/Guardfile +0 -13
- data/foo/foo/Gemfile +0 -5
- data/foo/foo/lib/foo.rb +0 -7
- data/foo/lib/foo/version.rb +0 -3
- data/foo/lib/foo.rb +0 -8
- data/lib/lanes/access/locked_fields.rb +0 -43
- data/lib/lanes/access/role.rb +0 -58
- data/lib/lanes/access/role_collection.rb +0 -75
- data/lib/lanes/access/roles/administrator.rb +0 -25
- data/lib/lanes/access/roles/support.rb +0 -13
- data/lib/lanes/access/user_maint_screen.rb +0 -32
- data/lib/lanes/access.rb +0 -50
- data/lib/lanes/api/asset_pipeline.rb +0 -59
- data/lib/lanes/api/authentication_helper.rb +0 -21
- data/lib/lanes/api/authentication_provider.rb +0 -45
- data/lib/lanes/api/default_routes.rb +0 -35
- data/lib/lanes/api/skr_templates.rb +0 -60
- data/lib/lanes/concerns/track_modifications.rb +0 -51
- data/lib/lanes/db/seed.rb +0 -27
- data/lib/lanes/generators/app/Gemfile +0 -5
- data/lib/lanes/generators/app/Rakefile +0 -9
- data/lib/lanes/generators/app/lib/main_class/version.rb +0 -3
- data/lib/lanes/generators/app/lib/main_class.rb +0 -8
- data/lib/lanes/generators/app.rb +0 -36
- data/lib/lanes/user.rb +0 -127
- data/spec/client/component/ChoicesInputSpec.coffee +0 -12
- data/spec/client/component/foo_spec.coffee +0 -4
- data/spec/client/support/jasmine.yml +0 -128
- data/spec/client/support/jasmine_helper.rb +0 -15
- data/spec/helpers/SpecHelper.js +0 -18
@@ -1,44 +0,0 @@
|
|
1
|
-
class Lanes.Component.ModalDialog extends Lanes.Component.Base
|
2
|
-
|
3
|
-
events:
|
4
|
-
'hide.bs.modal': '_onHide'
|
5
|
-
|
6
|
-
bindings:
|
7
|
-
'ui.layout_size': { type:'class',selector:'.modal-dialog'}
|
8
|
-
|
9
|
-
buttons:
|
10
|
-
close: { label: 'Close', type: 'default', dismiss: true }
|
11
|
-
|
12
|
-
session:
|
13
|
-
dialog_title: 'string'
|
14
|
-
|
15
|
-
initialize: (options)->
|
16
|
-
super
|
17
|
-
|
18
|
-
toggleShown: (show)->
|
19
|
-
if show then this.show() else this.hide()
|
20
|
-
|
21
|
-
template: (context)->
|
22
|
-
tmpl = Lanes.Templates.find('modal', context.namespace)
|
23
|
-
tmpl({
|
24
|
-
size : context.size || 'lg'
|
25
|
-
title : context.title || context.dialog_title
|
26
|
-
body : context.renderTemplateMethod('bodyTemplate')
|
27
|
-
buttons : context.buttons
|
28
|
-
})
|
29
|
-
|
30
|
-
hide:->
|
31
|
-
this.$el.modal('hide')
|
32
|
-
Lanes.Promise.resolve( this )
|
33
|
-
|
34
|
-
show: ->
|
35
|
-
this.render()
|
36
|
-
this.$el.modal({ body: this.ui.viewport })
|
37
|
-
this.notification = new Lanes.Deferred
|
38
|
-
return this.notification.promise
|
39
|
-
|
40
|
-
destroy: ->
|
41
|
-
this.detach()
|
42
|
-
|
43
|
-
_onHide: (ev)->
|
44
|
-
this.notification.resolve(this)
|
@@ -1,43 +0,0 @@
|
|
1
|
-
class SelectOption extends Lanes.View.Base
|
2
|
-
template: (scope)->
|
3
|
-
'<option></option>'
|
4
|
-
|
5
|
-
constructor: (options)->
|
6
|
-
@groupName=options.groupName
|
7
|
-
m = options.mappings
|
8
|
-
@bindings = {}
|
9
|
-
@bindings["model.#{m.id}"] = { type: 'value', selector: 'option' }
|
10
|
-
@bindings["model.#{m.selected}"] = { type: 'booleanAttribute', selector: 'option', name:'selected' }
|
11
|
-
@bindings["model.#{m.title}"] = 'option'
|
12
|
-
@bindings["model.#{m.visible}"] = { type: 'toggle' } if m.visible
|
13
|
-
super
|
14
|
-
|
15
|
-
|
16
|
-
class Lanes.Component.SelectField extends Lanes.Component.ChoicesInput
|
17
|
-
|
18
|
-
subviews:
|
19
|
-
fields:
|
20
|
-
hook: 'choices-input'
|
21
|
-
collection: 'selections'
|
22
|
-
options: 'subViewOptions'
|
23
|
-
view: SelectOption
|
24
|
-
|
25
|
-
session:
|
26
|
-
multiple: { type: 'boolean', default: false }
|
27
|
-
|
28
|
-
writeTemplate: ->
|
29
|
-
multiple = if this.multiple then "multiple" else ""
|
30
|
-
"<select class='form-control' #{multiple} name='#{this.field_name}' data-hook='choices-input'></select>"
|
31
|
-
|
32
|
-
readTemplate: ->
|
33
|
-
"<div class='ro-input' name='#{this.field_name}'></div>"
|
34
|
-
|
35
|
-
select: (option)->
|
36
|
-
if this.readOnly
|
37
|
-
this.$el.text( if option then option.code else "" )
|
38
|
-
else if option
|
39
|
-
id = option.get(@mappings.id)
|
40
|
-
option = this.query("option[value=\"#{id}\"]")
|
41
|
-
option.selected = true
|
42
|
-
else
|
43
|
-
this.$el.find(":selected").prop('selected',false)
|
@@ -1,27 +0,0 @@
|
|
1
|
-
class Lanes.Component.TaggedField extends Lanes.Component.ChoicesInput
|
2
|
-
|
3
|
-
writeTemplate: ->
|
4
|
-
multiple = if this.multiple then "multiple" else ""
|
5
|
-
"<select class='form-control' #{multiple} name='#{this.field_name}' data-hook='choices-input'></select>"
|
6
|
-
|
7
|
-
readTemplate: ->
|
8
|
-
"<div class='ro-input' name='#{this.field_name}'></div>"
|
9
|
-
|
10
|
-
session:
|
11
|
-
options: 'object'
|
12
|
-
|
13
|
-
initialize: (options)->
|
14
|
-
this.options=options.fieldOptions
|
15
|
-
|
16
|
-
onRender: ->
|
17
|
-
this.$el.magicSuggest(this.options)
|
18
|
-
|
19
|
-
# select: (option)->
|
20
|
-
# if this.readOnly
|
21
|
-
# this.$el.text( if option then option.code else "" )
|
22
|
-
# else if option
|
23
|
-
# id = option.get(@mappings.id)
|
24
|
-
# option = this.query("option[value=\"#{id}\"]")
|
25
|
-
# option.selected = true
|
26
|
-
# else
|
27
|
-
# this.$el.find(":selected").prop('selected',false)
|
@@ -1,91 +0,0 @@
|
|
1
|
-
class Role extends Lanes.Data.BasicModel
|
2
|
-
props:
|
3
|
-
id: 'string'
|
4
|
-
name: 'string'
|
5
|
-
member: { type: 'boolean', default: false }
|
6
|
-
|
7
|
-
|
8
|
-
class Lanes.Data.Roles extends Lanes.Data.BasicCollection
|
9
|
-
model: Role
|
10
|
-
comparator: 'name'
|
11
|
-
|
12
|
-
|
13
|
-
class RoleExtension extends Lanes.Extension.Base
|
14
|
-
identifier: 'roles'
|
15
|
-
setBootstrapData: (data)->
|
16
|
-
Lanes.Data.Roles.all = new Lanes.Data.Roles(
|
17
|
-
_.map( data, (role)->
|
18
|
-
{ id: role.toLowerCase(), name: role }
|
19
|
-
)
|
20
|
-
)
|
21
|
-
|
22
|
-
|
23
|
-
class UserRole
|
24
|
-
constructor: (config={})->
|
25
|
-
@type = config.type
|
26
|
-
for method in RWD
|
27
|
-
this[method] = _.map(config[method],klassFor)
|
28
|
-
|
29
|
-
can: (type,model)->
|
30
|
-
-1 != this[type].indexOf(model)
|
31
|
-
|
32
|
-
|
33
|
-
RWD = ['read','write','delete']
|
34
|
-
|
35
|
-
RoleMap = {
|
36
|
-
administrator: Administrator
|
37
|
-
}
|
38
|
-
|
39
|
-
# The admin is special and can do anything
|
40
|
-
class Administrator
|
41
|
-
constructor: ->
|
42
|
-
UserRole.prototype.constructor.apply(this,arguments)
|
43
|
-
can: -> true
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
class Lanes.Data.UserRoleSet
|
48
|
-
|
49
|
-
constructor: (access={})->
|
50
|
-
_.defaults(access, { roles: [], locked_fields: [] })
|
51
|
-
@roles = []
|
52
|
-
for role in access.roles
|
53
|
-
klass = RoleMap[role.type] || UserRole
|
54
|
-
@roles.push( new klass(role) )
|
55
|
-
@locked_fields = {}
|
56
|
-
for lock in access.locked_fields
|
57
|
-
if klass = klassFor(lock.type)
|
58
|
-
@locked_fields[ klass ] = locks = {}
|
59
|
-
locks[field] = grants for field, grants of lock.locks
|
60
|
-
|
61
|
-
can:(method,model,field)->
|
62
|
-
if model instanceof Lanes.Data.Model
|
63
|
-
model = model.constructor
|
64
|
-
|
65
|
-
if field && ( locks = @locked_fields[model] ) && ( grants = locks[field] )
|
66
|
-
for grant in grants
|
67
|
-
if grant.only && grant.only != method
|
68
|
-
return this.testModelAccess(method,model)
|
69
|
-
else
|
70
|
-
for role in @roles
|
71
|
-
return true if role.type == grant.role
|
72
|
-
return false
|
73
|
-
else
|
74
|
-
return this.testModelAccess(method,model)
|
75
|
-
|
76
|
-
testModelAccess:(method,model)->
|
77
|
-
!!_.detect( @roles, (role)->role.can(method,model) )
|
78
|
-
|
79
|
-
canRead:(model,field)->
|
80
|
-
this.can('read',model,field)
|
81
|
-
|
82
|
-
canWrite:(model,field)->
|
83
|
-
this.can('write',model,field)
|
84
|
-
|
85
|
-
canDelete:(model)->
|
86
|
-
this.can('delete',model)
|
87
|
-
|
88
|
-
klassFor = (identifier)->
|
89
|
-
name = _.chain(identifier).titleize().gsub(' ','').value()
|
90
|
-
Lanes.Data[name] ||
|
91
|
-
Lanes.warn("Role Data object not found for #{identifier}")
|
@@ -1,70 +0,0 @@
|
|
1
|
-
class Lanes.Data.User extends Lanes.Data.Model
|
2
|
-
|
3
|
-
constructor: (attributes,access)->
|
4
|
-
super
|
5
|
-
this.access_data = access
|
6
|
-
|
7
|
-
api_path: 'users'
|
8
|
-
derived:
|
9
|
-
roles:
|
10
|
-
deps: ['role_names', 'access_data']
|
11
|
-
fn: -> new Lanes.Data.UserRoleSet( @access_data )
|
12
|
-
isLoggedIn:
|
13
|
-
deps:['id'], fn: -> !!this.id
|
14
|
-
allRoles:
|
15
|
-
deps: ['role_names', 'access_data']
|
16
|
-
fn: ->
|
17
|
-
role_data = Lanes.Data.Roles.all?.toJSON() || []
|
18
|
-
roles = new Lanes.Data.Roles( role_data )
|
19
|
-
_.each( this.role_names, (name)->
|
20
|
-
console.log name, roles
|
21
|
-
roles.get(name)?.member = true
|
22
|
-
)
|
23
|
-
roles
|
24
|
-
|
25
|
-
session:
|
26
|
-
access_data: 'object'
|
27
|
-
|
28
|
-
props:
|
29
|
-
id: { type: "integer", required:true }
|
30
|
-
login: 'string'
|
31
|
-
name: 'string'
|
32
|
-
email: 'string'
|
33
|
-
role_names: 'array'
|
34
|
-
options: 'object'
|
35
|
-
password: 'string'
|
36
|
-
|
37
|
-
canRead: (model,field) -> this.roles.canRead(model,field)
|
38
|
-
canWrite: (model,field) -> this.roles.canWrite(model,field)
|
39
|
-
canDelete: (model) -> this.roles.canDelete(model)
|
40
|
-
|
41
|
-
logout: ->
|
42
|
-
_.each(this.attributes, (value,key)=> @set(key, null) )
|
43
|
-
|
44
|
-
setLoginData: (attrs, access)->
|
45
|
-
this.access_data = access
|
46
|
-
this.set(attrs)
|
47
|
-
|
48
|
-
@attemptLogin: (login,password, options)->
|
49
|
-
session = new Session( login: login, password: password )
|
50
|
-
success = options.success
|
51
|
-
session.save(_.extend(options,{
|
52
|
-
success: (session)->
|
53
|
-
Lanes.current_user.setLoginData(session.user, session.access)
|
54
|
-
success.apply(options.scope, arguments)
|
55
|
-
}))
|
56
|
-
|
57
|
-
Lanes.current_user = new Lanes.Data.User
|
58
|
-
|
59
|
-
class Lanes.Data.User.Collection extends Lanes.Data.Collection
|
60
|
-
model: Lanes.Data.User
|
61
|
-
|
62
|
-
|
63
|
-
class Session extends Lanes.Data.Model
|
64
|
-
api_path: 'user-session'
|
65
|
-
props:
|
66
|
-
id: 'integer'
|
67
|
-
login: 'string'
|
68
|
-
password: 'string'
|
69
|
-
access: 'object'
|
70
|
-
user: 'object'
|
@@ -1 +0,0 @@
|
|
1
|
-
//=require ./workspace
|
@@ -1,210 +0,0 @@
|
|
1
|
-
// Underscore.inflection.js
|
2
|
-
// (c) 2011 Jeremy Ruppel
|
3
|
-
// Underscore.inflection is freely distributable under the MIT license.
|
4
|
-
// Portions of Underscore.inflection are inspired or borrowed from ActiveSupport
|
5
|
-
// Version 1.0.0
|
6
|
-
|
7
|
-
( function( _, undefined )
|
8
|
-
{
|
9
|
-
var
|
10
|
-
plurals = [ ],
|
11
|
-
|
12
|
-
singulars = [ ],
|
13
|
-
|
14
|
-
uncountables = [ ];
|
15
|
-
|
16
|
-
/**
|
17
|
-
* Inflector
|
18
|
-
*/
|
19
|
-
var inflector = {
|
20
|
-
|
21
|
-
gsub : function( word, rule, replacement )
|
22
|
-
{
|
23
|
-
var pattern = new RegExp( rule.source || rule, 'gi' );
|
24
|
-
return pattern.test( word ) ? word.replace( pattern, replacement ) : word;
|
25
|
-
},
|
26
|
-
|
27
|
-
plural : function( rule, replacement )
|
28
|
-
{
|
29
|
-
plurals.unshift( [ rule, replacement ] );
|
30
|
-
},
|
31
|
-
|
32
|
-
pluralize : function( word, count, includeNumber )
|
33
|
-
{
|
34
|
-
var result;
|
35
|
-
|
36
|
-
if( count !== undefined )
|
37
|
-
{
|
38
|
-
count = Math.round(count);
|
39
|
-
result = ( count === 1 ) ? this.singularize( word ) : this.pluralize( word );
|
40
|
-
result = ( includeNumber ) ? [ count, result ].join( ' ' ) : result;
|
41
|
-
}
|
42
|
-
else
|
43
|
-
{
|
44
|
-
if( _( uncountables ).include( word ) )
|
45
|
-
{
|
46
|
-
return word;
|
47
|
-
}
|
48
|
-
|
49
|
-
result = word;
|
50
|
-
|
51
|
-
_( plurals ).detect( function( rule )
|
52
|
-
{
|
53
|
-
var gsub = this.gsub( word, rule[ 0 ], rule[ 1 ] );
|
54
|
-
|
55
|
-
return gsub ? ( result = gsub ) : false;
|
56
|
-
},
|
57
|
-
this );
|
58
|
-
}
|
59
|
-
|
60
|
-
return result;
|
61
|
-
},
|
62
|
-
|
63
|
-
singular : function( rule, replacement )
|
64
|
-
{
|
65
|
-
singulars.unshift( [ rule, replacement ] );
|
66
|
-
},
|
67
|
-
|
68
|
-
singularize : function( word )
|
69
|
-
{
|
70
|
-
if( _( uncountables ).include( word ) )
|
71
|
-
{
|
72
|
-
return word;
|
73
|
-
}
|
74
|
-
|
75
|
-
var result = word;
|
76
|
-
|
77
|
-
_( singulars ).detect( function( rule )
|
78
|
-
{
|
79
|
-
var gsub = this.gsub( word, rule[ 0 ], rule[ 1 ] );
|
80
|
-
|
81
|
-
return gsub ? ( result = gsub ) : false;
|
82
|
-
},
|
83
|
-
this );
|
84
|
-
|
85
|
-
return result;
|
86
|
-
},
|
87
|
-
|
88
|
-
irregular : function( singular, plural )
|
89
|
-
{
|
90
|
-
this.plural( '\\b' + singular + '\\b', plural );
|
91
|
-
this.singular( '\\b' + plural + '\\b', singular );
|
92
|
-
},
|
93
|
-
|
94
|
-
uncountable : function( word )
|
95
|
-
{
|
96
|
-
uncountables.unshift( word );
|
97
|
-
},
|
98
|
-
|
99
|
-
ordinalize : function( number )
|
100
|
-
{
|
101
|
-
if ( isNaN( number ) )
|
102
|
-
return number;
|
103
|
-
|
104
|
-
number = number.toString();
|
105
|
-
var lastDigit = number.slice(-1);
|
106
|
-
var lastTwoDigits = number.slice(-2);
|
107
|
-
|
108
|
-
if ( lastTwoDigits === "11" || lastTwoDigits === "12" || lastTwoDigits === "13" )
|
109
|
-
return number + "th";
|
110
|
-
|
111
|
-
switch ( lastDigit ) {
|
112
|
-
case "1":
|
113
|
-
return number + "st";
|
114
|
-
case "2":
|
115
|
-
return number + "nd";
|
116
|
-
case "3":
|
117
|
-
return number + "rd";
|
118
|
-
default:
|
119
|
-
return number + "th";
|
120
|
-
}
|
121
|
-
},
|
122
|
-
|
123
|
-
titleize : function( words )
|
124
|
-
{
|
125
|
-
if ( typeof words !== "string")
|
126
|
-
return words;
|
127
|
-
|
128
|
-
return words.replace(/_|-/g,' ').replace( /\S+/g, function( word ) {
|
129
|
-
return word.charAt(0).toUpperCase() + word.slice(1);
|
130
|
-
} );
|
131
|
-
},
|
132
|
-
|
133
|
-
resetInflections : function( )
|
134
|
-
{
|
135
|
-
plurals = [ ];
|
136
|
-
singulars = [ ];
|
137
|
-
uncountables = [ ];
|
138
|
-
|
139
|
-
this.plural( /$/, 's' );
|
140
|
-
this.plural( /s$/, 's' );
|
141
|
-
this.plural( /(ax|test)is$/, '$1es' );
|
142
|
-
this.plural( /(octop|vir)us$/, '$1i' );
|
143
|
-
this.plural( /(octop|vir)i$/, '$1i' );
|
144
|
-
this.plural( /(alias|status)$/, '$1es' );
|
145
|
-
this.plural( /(bu)s$/, '$1ses' );
|
146
|
-
this.plural( /(buffal|tomat)o$/, '$1oes' );
|
147
|
-
this.plural( /([ti])um$/, '$1a' );
|
148
|
-
this.plural( /([ti])a$/, '$1a' );
|
149
|
-
this.plural( /sis$/, 'ses' );
|
150
|
-
this.plural( /(?:([^f])fe|([lr])f)$/, '$1$2ves' );
|
151
|
-
this.plural( /(hive)$/, '$1s' );
|
152
|
-
this.plural( /([^aeiouy]|qu)y$/, '$1ies' );
|
153
|
-
this.plural( /(x|ch|ss|sh)$/, '$1es' );
|
154
|
-
this.plural( /(matr|vert|ind)(?:ix|ex)$/, '$1ices' );
|
155
|
-
this.plural( /([m|l])ouse$/, '$1ice' );
|
156
|
-
this.plural( /([m|l])ice$/, '$1ice' );
|
157
|
-
this.plural( /^(ox)$/, '$1en' );
|
158
|
-
this.plural( /^(oxen)$/, '$1' );
|
159
|
-
this.plural( /(quiz)$/, '$1zes' );
|
160
|
-
|
161
|
-
this.singular( /s$/, '' );
|
162
|
-
this.singular( /(n)ews$/, '$1ews' );
|
163
|
-
this.singular( /([ti])a$/, '$1um' );
|
164
|
-
this.singular( /((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/, '$1$2sis' );
|
165
|
-
this.singular( /(^analy)ses$/, '$1sis' );
|
166
|
-
this.singular( /([^f])ves$/, '$1fe' );
|
167
|
-
this.singular( /(hive)s$/, '$1' );
|
168
|
-
this.singular( /(tive)s$/, '$1' );
|
169
|
-
this.singular( /([lr])ves$/, '$1f' );
|
170
|
-
this.singular( /([^aeiouy]|qu)ies$/, '$1y' );
|
171
|
-
this.singular( /(s)eries$/, '$1eries' );
|
172
|
-
this.singular( /(m)ovies$/, '$1ovie' );
|
173
|
-
this.singular( /(x|ch|ss|sh)es$/, '$1' );
|
174
|
-
this.singular( /([m|l])ice$/, '$1ouse' );
|
175
|
-
this.singular( /(bus)es$/, '$1' );
|
176
|
-
this.singular( /(o)es$/, '$1' );
|
177
|
-
this.singular( /(shoe)s$/, '$1' );
|
178
|
-
this.singular( /(cris|ax|test)es$/, '$1is' );
|
179
|
-
this.singular( /(octop|vir)i$/, '$1us' );
|
180
|
-
this.singular( /(alias|status)es$/, '$1' );
|
181
|
-
this.singular( /^(ox)en/, '$1' );
|
182
|
-
this.singular( /(vert|ind)ices$/, '$1ex' );
|
183
|
-
this.singular( /(matr)ices$/, '$1ix' );
|
184
|
-
this.singular( /(quiz)zes$/, '$1' );
|
185
|
-
this.singular( /(database)s$/, '$1' );
|
186
|
-
|
187
|
-
this.irregular( 'person', 'people' );
|
188
|
-
this.irregular( 'man', 'men' );
|
189
|
-
this.irregular( 'child', 'children' );
|
190
|
-
this.irregular( 'sex', 'sexes' );
|
191
|
-
this.irregular( 'move', 'moves' );
|
192
|
-
this.irregular( 'cow', 'kine' );
|
193
|
-
|
194
|
-
_( 'equipment information rice money species series fish sheep jeans'.split( /\s+/ ) ).each( function( word )
|
195
|
-
{
|
196
|
-
this.uncountable( word );
|
197
|
-
},
|
198
|
-
this );
|
199
|
-
|
200
|
-
return this;
|
201
|
-
}
|
202
|
-
|
203
|
-
};
|
204
|
-
|
205
|
-
/**
|
206
|
-
* Underscore integration
|
207
|
-
*/
|
208
|
-
_.mixin( inflector.resetInflections( ) );
|
209
|
-
|
210
|
-
} )( _ );
|
@@ -1,14 +0,0 @@
|
|
1
|
-
//= require ./packaged
|
2
|
-
//= require ./jquery-2
|
3
|
-
//= require ./jquery.tap
|
4
|
-
//= require ./bootstrap/transition
|
5
|
-
//= require ./bootstrap/tooltip
|
6
|
-
//= require ./bootstrap/popover
|
7
|
-
//= require ./bootstrap/modal
|
8
|
-
//= require ./bootstrap/dropdown
|
9
|
-
//= require ./dataTables
|
10
|
-
//= require ./message-bus
|
11
|
-
//= require ./magicsuggest
|
12
|
-
//= require_self
|
13
|
-
|
14
|
-
Lanes.$ = window.jQuery.noConflict(true);
|