lanes 0.1.9 → 0.1.9.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/client/fonts/fontawesome-webfont.woff +0 -0
- data/client/fonts/fontawesome-webfont.woff2 +0 -0
- data/client/lanes/Boot.cjsx +9 -0
- data/client/lanes/access/Extension.coffee +18 -4
- data/client/lanes/access/LoginDialog.cjsx +78 -0
- data/client/lanes/access/Roles.coffee +22 -28
- data/client/lanes/access/User.coffee +16 -16
- data/client/lanes/access/index.js +4 -5
- data/client/lanes/access/screens/user-management/Editor.cjsx +20 -0
- data/client/lanes/access/screens/user-management/UserManagement.cjsx +41 -0
- data/client/lanes/access/screens/user-management/index.js +0 -1
- data/client/lanes/components/grid/EditingMixin.cjsx +64 -0
- data/client/lanes/components/grid/Grid.cjsx +139 -0
- data/client/lanes/components/grid/PopOverMixin.cjsx +28 -0
- data/client/lanes/components/grid/PopoverEditor.cjsx +8 -0
- data/client/lanes/components/grid/RowEditor.cjsx +10 -0
- data/client/lanes/components/grid/Toolbar.cjsx +14 -0
- data/client/lanes/components/grid/config.json +1 -1
- data/client/lanes/components/grid/editors.scss +94 -53
- data/client/lanes/components/grid/index.js +2 -7
- data/client/lanes/components/grid/styles.scss +8 -296
- data/client/lanes/components/helpers.coffee +2 -0
- data/client/lanes/components/index.js +2 -1
- data/client/lanes/components/modal/Modal.cjsx +36 -0
- data/client/lanes/components/modal/index.js +1 -2
- data/client/lanes/components/modal/styles.scss +0 -19
- data/client/lanes/components/record-finder/Clause.cjsx +80 -0
- data/client/lanes/components/record-finder/Dialog.cjsx +54 -0
- data/client/lanes/components/record-finder/RecordFinder.cjsx +38 -0
- data/client/lanes/components/record-finder/config.json +1 -1
- data/client/lanes/components/record-finder/index.js +1 -2
- data/client/lanes/components/request-spinner/index.js +1 -0
- data/client/lanes/components/select-field/SelectField.cjsx +78 -0
- data/client/lanes/components/select-field/index.js +2 -1
- data/client/lanes/components/select-field/styles.scss +1 -0
- data/client/lanes/components/shared/CountBadge.cjsx +9 -0
- data/client/lanes/components/shared/ErrorDisplay.cjsx +21 -0
- data/client/lanes/components/shared/FieldMixin.cjsx +71 -0
- data/client/lanes/components/shared/FieldSet.cjsx +58 -0
- data/client/lanes/components/shared/GenericField.cjsx +5 -0
- data/client/lanes/components/shared/Helpers.coffee +9 -0
- data/client/lanes/components/shared/RadioField.cjsx +14 -0
- data/client/lanes/components/shared/Resize.cjsx +152 -0
- data/client/lanes/components/shared/TextArea.cjsx +19 -0
- data/client/lanes/components/shared/TextField.cjsx +25 -0
- data/client/lanes/components/shared/Tooltip.cjsx +10 -0
- data/client/lanes/components/shared/fields.scss +35 -0
- data/client/lanes/components/shared/fieldset.scss +29 -0
- data/client/lanes/components/shared/index.js +3 -0
- data/client/lanes/components/shared/styles.scss +32 -0
- data/client/lanes/components/toolbar/RemoteChangeSets.cjsx +75 -0
- data/client/lanes/components/toolbar/SaveButton.cjsx +3 -0
- data/client/lanes/components/toolbar/Toolbar.cjsx +58 -0
- data/client/lanes/{workspace/styles → components/toolbar}/changes-notification.scss +10 -23
- data/client/lanes/components/toolbar/index.js +3 -0
- data/client/lanes/components/toolbar/styles.scss +51 -0
- data/client/lanes/extension/Extensions.coffee +19 -10
- data/client/lanes/extension/LateLoaded.js.erb +4 -3
- data/client/lanes/index.js +3 -5
- data/client/lanes/index.scss.erb +6 -14
- data/client/lanes/lib/HotReload.coffee +35 -0
- data/client/lanes/lib/MakeBaseClass.coffee +10 -11
- data/client/lanes/lib/development.coffee +3 -0
- data/client/lanes/lib/dom.coffee +49 -0
- data/client/lanes/lib/el.coffee +23 -0
- data/client/lanes/lib/index.js.erb +16 -0
- data/client/lanes/lib/loader.coffee +34 -34
- data/client/lanes/lib/namespace.coffee +1 -1
- data/client/lanes/lib/objToParam.coffee +37 -0
- data/client/lanes/{access/views/.gitkeep → lib/production.coffee} +0 -0
- data/client/lanes/lib/utilFunctions.coffee +44 -26
- data/client/lanes/models/AssociationMap.coffee +51 -38
- data/client/lanes/models/Base.coffee +89 -88
- data/client/lanes/models/ChangeMonitor.coffee +10 -10
- data/client/lanes/models/ChangeSet.coffee +14 -24
- data/client/lanes/models/Collection.coffee +40 -41
- data/client/lanes/models/PubSub.coffee +28 -19
- data/client/lanes/models/Query.coffee +78 -45
- data/client/lanes/models/QueryResults.coffee +93 -0
- data/client/lanes/models/ServerCache.coffee +12 -12
- data/client/lanes/models/Sync.coffee +53 -50
- data/client/lanes/models/User.coffee +31 -17
- data/client/lanes/react/Component.coffee +31 -0
- data/client/lanes/react/DefaultComponentNotFound.cjsx +9 -0
- data/client/lanes/{views → react}/FormBindings.coffee +0 -0
- data/client/lanes/{views → react}/ModelObserver.coffee +0 -0
- data/client/lanes/{views → react}/ModelUpdate.coffee +0 -0
- data/client/lanes/{views → react}/PubSub.coffee +0 -0
- data/client/lanes/react/Root.cjsx +14 -0
- data/client/lanes/react/Router.cjsx +18 -0
- data/client/lanes/react/Screen.coffee +15 -0
- data/client/lanes/{views → react}/TimedHighlight.coffee +0 -0
- data/client/lanes/{views → react}/TimedMask.coffee +0 -0
- data/client/lanes/react/TypeValidators.coffee +21 -0
- data/client/lanes/{lib/create-namespace.js → react/Utils.coffee} +0 -0
- data/client/lanes/react/Viewport.coffee +30 -0
- data/client/lanes/react/index.js +8 -0
- data/client/lanes/react/mixins/Access.coffee +27 -0
- data/client/lanes/react/mixins/Component.coffee +4 -0
- data/client/lanes/react/mixins/Data.coffee +136 -0
- data/client/lanes/react/mixins/MonitorSize.coffee +11 -0
- data/client/lanes/react/mixins/ReadEditingState.coffee +11 -0
- data/client/lanes/react/mixins/RelayEditingState.coffee +17 -0
- data/client/lanes/react/mixins/RelayFieldChange.coffee +11 -0
- data/client/lanes/react/mixins/Screen.coffee +7 -0
- data/client/lanes/react/mixins/Viewport.coffee +11 -0
- data/client/lanes/screens/ChangeListener.coffee +3 -3
- data/client/lanes/screens/Commands.coffee +27 -0
- data/client/lanes/screens/Definitions.coffee +74 -65
- data/client/lanes/screens/all.js.erb +1 -1
- data/client/lanes/screens/index.js +1 -2
- data/client/lanes/screens/mixins/index.js +0 -1
- data/client/lanes/screens/register.js.erb +0 -1
- data/client/lanes/screens/styles.scss +7 -0
- data/client/lanes/styles/bootstrap-custom-grid.scss +67 -37
- data/client/lanes/styles/bootstrap.scss +4 -5
- data/client/lanes/styles/fonts.scss +10 -23
- data/client/lanes/styles/fonts/_animated.scss +34 -0
- data/client/lanes/styles/fonts/_bordered-pulled.scss +16 -0
- data/client/lanes/styles/fonts/_core.scss +13 -0
- data/client/lanes/styles/fonts/_fixed-width.scss +6 -0
- data/client/lanes/styles/fonts/_icons.scss +596 -0
- data/client/lanes/styles/fonts/_larger.scss +13 -0
- data/client/lanes/styles/fonts/_list.scss +19 -0
- data/client/lanes/styles/fonts/_mixins.scss +27 -0
- data/client/lanes/styles/fonts/_path.scss +10 -0
- data/client/lanes/styles/fonts/_rotated-flipped.scss +20 -0
- data/client/lanes/styles/fonts/_stacked.scss +20 -0
- data/client/lanes/styles/fonts/_variables.scss +606 -0
- data/client/lanes/styles/fonts/font-awesome.scss +16 -0
- data/client/lanes/styles/fonts/index.scss +2 -0
- data/client/lanes/styles/global.scss +2 -0
- data/client/lanes/styles/global/fancy-header.scss +14 -0
- data/client/lanes/testing/BeforeEach.coffee +15 -40
- data/client/lanes/testing/Helpers.coffee +27 -0
- data/client/lanes/testing/ModelSaver.coffee +14 -24
- data/client/lanes/testing/StubRouter.coffee +27 -0
- data/client/lanes/testing/TestObjects.coffee +27 -0
- data/client/lanes/testing/index.js +3 -1
- data/client/lanes/vendor/base.js +85256 -0
- data/client/lanes/vendor/commons.js +20579 -0
- data/client/lanes/vendor/development.js +2511 -0
- data/client/lanes/vendor/grid.js +6689 -0
- data/client/lanes/vendor/grid.scss +387 -0
- data/client/lanes/vendor/index.js +3 -0
- data/client/lanes/vendor/message-bus.coffee +264 -0
- data/client/lanes/vendor/widgets.js +8798 -0
- data/client/lanes/vendor/widgets.scss +723 -0
- data/client/lanes/workspace/ActiveScreenSwitcher.cjsx +38 -0
- data/client/lanes/workspace/Extension.coffee +6 -0
- data/client/lanes/workspace/Layout.cjsx +28 -0
- data/client/lanes/workspace/Navbar.cjsx +25 -0
- data/client/lanes/workspace/ScreenView.cjsx +27 -0
- data/client/lanes/workspace/ScreensMenu.cjsx +57 -0
- data/client/lanes/workspace/UIState.coffee +17 -16
- data/client/lanes/workspace/index.js +7 -2
- data/client/lanes/workspace/styles.scss +0 -3
- data/client/lanes/workspace/styles/forms.scss +2 -73
- data/client/lanes/workspace/styles/header.scss +0 -2
- data/client/lanes/workspace/styles/layout.scss +9 -2
- data/client/lanes/workspace/styles/screens.scss +0 -59
- data/client/lanes/workspace/styles/tabs.scss +16 -15
- data/coffeelint.json +49 -0
- data/config.ru +1 -0
- data/config/database.yml +2 -2
- data/config/routes.rb +7 -0
- data/docs/command.md +11 -8
- data/docs/model.md +2 -5
- data/docs/react.md +137 -0
- data/lanes.gemspec +1 -0
- data/lib/lanes.rb +1 -1
- data/lib/lanes/access/authentication_provider.rb +1 -0
- data/lib/lanes/access/config/routes.rb +2 -0
- data/lib/lanes/access/config/screens.rb +15 -12
- data/lib/lanes/access/extension.rb +2 -1
- data/lib/lanes/access/role.rb +8 -4
- data/lib/lanes/api.rb +4 -3
- data/lib/lanes/api/coffeescript_processor.rb +47 -6
- data/lib/lanes/api/controller.rb +4 -3
- data/lib/lanes/api/default_routes.rb +16 -0
- data/lib/lanes/api/javascript_processor.rb +14 -68
- data/lib/lanes/api/pub_sub.rb +17 -3
- data/lib/lanes/api/request_wrapper.rb +2 -2
- data/lib/lanes/api/root.rb +16 -13
- data/lib/lanes/api/routing.rb +0 -18
- data/lib/lanes/api/sprockets_extension.rb +10 -4
- data/lib/lanes/api/test_specs.rb +3 -3
- data/lib/lanes/cli.rb +6 -1
- data/lib/lanes/command/app.rb +7 -11
- data/lib/lanes/command/generate.rb +3 -3
- data/lib/lanes/command/generate_component.rb +28 -0
- data/lib/lanes/command/generate_component.usage +11 -0
- data/lib/lanes/command/generate_screen.rb +24 -7
- data/lib/lanes/command/generate_screen.usage +5 -8
- data/lib/lanes/configuration.rb +3 -2
- data/lib/lanes/extension.rb +12 -18
- data/lib/lanes/extension/definition.rb +20 -8
- data/lib/lanes/guard_tasks.rb +22 -5
- data/lib/lanes/hot_reload_plugin.rb +47 -0
- data/lib/lanes/logger.rb +41 -5
- data/lib/lanes/screen.rb +40 -16
- data/lib/lanes/spec_helper.rb +6 -3
- data/lib/lanes/version.rb +1 -1
- data/lib/lanes/workspace/extension.rb +1 -0
- data/npm-build/{template.js → base.js} +17 -17
- data/{client/lanes/workspace/tab.html → npm-build/common.js} +0 -0
- data/npm-build/compile.coffee +13 -4
- data/npm-build/development.js +7 -0
- data/npm-build/grid.js +11 -0
- data/npm-build/package.json +62 -58
- data/npm-build/react-widgets.js +5 -0
- data/npm-build/react-widgets.less +35 -0
- data/npm-build/webpack.config.js +39 -0
- data/spec/command-reference-files/component/client/appy-app/components/Big.cjsx +4 -0
- data/spec/command-reference-files/component/spec/appy-app/components/BigSpec.coffee +5 -0
- data/spec/command-reference-files/initial/.rubocop.yml +7 -0
- data/spec/command-reference-files/initial/Gemfile +1 -1
- data/spec/command-reference-files/initial/client/appy-app/Extension.coffee +17 -5
- data/spec/command-reference-files/initial/client/appy-app/components/Base.coffee +9 -0
- data/spec/command-reference-files/initial/client/appy-app/index.js +1 -3
- data/spec/command-reference-files/initial/client/appy-app/screens/Base.coffee +8 -2
- data/spec/command-reference-files/initial/coffeelint.json +49 -0
- data/spec/command-reference-files/initial/config.ru +2 -0
- data/spec/command-reference-files/initial/config/screens.rb +10 -0
- data/spec/command-reference-files/initial/lib/appy-app/extension.rb +7 -0
- data/spec/command-reference-files/model/client/appy-app/models/TestTest.coffee +0 -1
- data/spec/command-reference-files/screen/client/appy-app/Extension.coffee +34 -0
- data/spec/command-reference-files/screen/client/appy-app/screens/ready-set-go/ReadySetGo.cjsx +7 -0
- data/spec/command-reference-files/screen/config/screens.rb +19 -9
- data/spec/command-reference-files/screen/spec/appy-app/screens/ready-set-go/ReadySetGoSpec.coffee +3 -3
- data/spec/lanes/components/grid/GridSpec.coffee +26 -26
- data/spec/lanes/models/AssociationMapSpec.coffee +6 -6
- data/spec/lanes/models/BaseSpec.coffee +24 -35
- data/spec/lanes/models/CollectionSpec.coffee +19 -18
- data/spec/lanes/models/EnumMapSpec.coffee +1 -1
- data/spec/lanes/models/PubSubSpec.coffee +17 -15
- data/spec/lanes/models/SyncSpec.coffee +28 -0
- data/spec/lanes/models/UserSpec.coffee +17 -0
- data/spec/lanes/react/mixins/DataSpec.coffee +72 -0
- data/spec/lanes/screens/DefinitionsSpec.coffee +33 -0
- data/spec/lanes/views/BaseSpec.coffee +133 -133
- data/spec/lanes/views/FormBindingsSpec.coffee +30 -30
- data/spec/server/api/coffeescript_processor_spec.rb +2 -2
- data/spec/server/command_spec.rb +3 -3
- data/templates/client/Extension.coffee +17 -5
- data/templates/client/components/BaseComponent.coffee +9 -0
- data/templates/client/components/Component.cjsx +4 -0
- data/templates/client/{views → components}/template.html +0 -0
- data/templates/client/index.js +1 -3
- data/templates/client/models/Model.coffee +0 -1
- data/templates/client/screens/BaseScreen.coffee +9 -0
- data/templates/client/screens/Screen.cjsx +7 -0
- data/templates/config.ru +2 -0
- data/templates/config/screen.rb +10 -10
- data/templates/config/screens.rb +10 -0
- data/templates/lib/namespace/extension.rb +7 -0
- data/templates/spec/client/Screen.coffee +4 -4
- data/templates/spec/client/components/ComponentSpec.coffee +5 -0
- metadata +157 -201
- data/client/fonts/lanes/icomoon.eot +0 -0
- data/client/fonts/lanes/icomoon.svg +0 -160
- data/client/fonts/lanes/icomoon.ttf +0 -0
- data/client/fonts/lanes/icomoon.woff +0 -0
- data/client/fonts/lanes/selection.json +0 -3565
- data/client/lanes/Boot.coffee +0 -50
- data/client/lanes/access/LoginDialog.coffee +0 -46
- data/client/lanes/access/login-dialog.html +0 -16
- data/client/lanes/access/screens/user-management/GridUserEditor.coffee +0 -26
- data/client/lanes/access/screens/user-management/UserManagement.coffee +0 -23
- data/client/lanes/access/screens/user-management/grid-popover-editor.html +0 -33
- data/client/lanes/access/screens/user-management/screen.html +0 -7
- data/client/lanes/components/Base.coffee +0 -39
- data/client/lanes/components/ChoicesInput.coffee +0 -47
- data/client/lanes/components/grid/Editor.coffee +0 -62
- data/client/lanes/components/grid/Grid.coffee +0 -205
- data/client/lanes/components/grid/PopOverEditor.coffee +0 -29
- data/client/lanes/components/grid/RowEditor.coffee +0 -30
- data/client/lanes/components/grid/popover-editor.html +0 -18
- data/client/lanes/components/grid/row-editor.html +0 -16
- data/client/lanes/components/grid/template.html +0 -4
- data/client/lanes/components/grid/vendor/dataTables.scroller.js +0 -1262
- data/client/lanes/components/grid/vendor/index.js +0 -2
- data/client/lanes/components/grid/vendor/jquery.dataTables.js +0 -14839
- data/client/lanes/components/modal/ModalDialog.coffee +0 -68
- data/client/lanes/components/modal/template.html +0 -18
- data/client/lanes/components/multi-select/MultiSelect.coffee +0 -65
- data/client/lanes/components/popover/PopOver.coffee +0 -55
- data/client/lanes/components/popover/index.js +0 -2
- data/client/lanes/components/popover/styles.scss +0 -2
- data/client/lanes/components/popover/template.html +0 -5
- data/client/lanes/components/radio-group/RadioGroup.coffee +0 -47
- data/client/lanes/components/radio-group/index.js +0 -1
- data/client/lanes/components/radio-group/styles.scss +0 -1
- data/client/lanes/components/record-finder/Clause.coffee +0 -37
- data/client/lanes/components/record-finder/Dialog.coffee +0 -45
- data/client/lanes/components/record-finder/RecordFinder.coffee +0 -61
- data/client/lanes/components/record-finder/clause.html +0 -37
- data/client/lanes/components/record-finder/dialog.html +0 -4
- data/client/lanes/components/record-finder/field.html +0 -8
- data/client/lanes/components/select-field/SelectField.coffee +0 -63
- data/client/lanes/components/select2/Select2.coffee +0 -8
- data/client/lanes/components/select2/index.js +0 -2
- data/client/lanes/lib/Templates.coffee +0 -51
- data/client/lanes/lib/debounce.coffee +0 -15
- data/client/lanes/lib/defer.coffee +0 -7
- data/client/lanes/lib/el.js +0 -115
- data/client/lanes/lib/index.js +0 -5
- data/client/lanes/plugins/overlay.coffee +0 -41
- data/client/lanes/screens/Base.coffee +0 -35
- data/client/lanes/screens/Router.coffee +0 -4
- data/client/lanes/screens/mixins/Editing.coffee +0 -38
- data/client/lanes/styles/bootstrap/old/_alerts.scss +0 -68
- data/client/lanes/styles/bootstrap/old/_badges.scss +0 -57
- data/client/lanes/styles/bootstrap/old/_breadcrumbs.scss +0 -26
- data/client/lanes/styles/bootstrap/old/_button-groups.scss +0 -240
- data/client/lanes/styles/bootstrap/old/_buttons.scss +0 -157
- data/client/lanes/styles/bootstrap/old/_carousel.scss +0 -243
- data/client/lanes/styles/bootstrap/old/_close.scss +0 -35
- data/client/lanes/styles/bootstrap/old/_code.scss +0 -68
- data/client/lanes/styles/bootstrap/old/_component-animations.scss +0 -35
- data/client/lanes/styles/bootstrap/old/_dropdowns.scss +0 -215
- data/client/lanes/styles/bootstrap/old/_forms.scss +0 -538
- data/client/lanes/styles/bootstrap/old/_glyphicons.scss +0 -237
- data/client/lanes/styles/bootstrap/old/_grid.scss +0 -84
- data/client/lanes/styles/bootstrap/old/_input-groups.scss +0 -166
- data/client/lanes/styles/bootstrap/old/_jumbotron.scss +0 -48
- data/client/lanes/styles/bootstrap/old/_labels.scss +0 -66
- data/client/lanes/styles/bootstrap/old/_list-group.scss +0 -132
- data/client/lanes/styles/bootstrap/old/_media.scss +0 -56
- data/client/lanes/styles/bootstrap/old/_mixins.scss +0 -39
- data/client/lanes/styles/bootstrap/old/_modals.scss +0 -150
- data/client/lanes/styles/bootstrap/old/_navbar.scss +0 -659
- data/client/lanes/styles/bootstrap/old/_navs.scss +0 -242
- data/client/lanes/styles/bootstrap/old/_normalize.scss +0 -425
- data/client/lanes/styles/bootstrap/old/_pager.scss +0 -55
- data/client/lanes/styles/bootstrap/old/_pagination.scss +0 -88
- data/client/lanes/styles/bootstrap/old/_panels.scss +0 -243
- data/client/lanes/styles/bootstrap/old/_popovers.scss +0 -133
- data/client/lanes/styles/bootstrap/old/_print.scss +0 -101
- data/client/lanes/styles/bootstrap/old/_progress-bars.scss +0 -105
- data/client/lanes/styles/bootstrap/old/_responsive-embed.scss +0 -34
- data/client/lanes/styles/bootstrap/old/_responsive-utilities.scss +0 -174
- data/client/lanes/styles/bootstrap/old/_scaffolding.scss +0 -150
- data/client/lanes/styles/bootstrap/old/_tables.scss +0 -233
- data/client/lanes/styles/bootstrap/old/_theme.scss +0 -258
- data/client/lanes/styles/bootstrap/old/_thumbnails.scss +0 -38
- data/client/lanes/styles/bootstrap/old/_tooltip.scss +0 -95
- data/client/lanes/styles/bootstrap/old/_type.scss +0 -304
- data/client/lanes/styles/bootstrap/old/_utilities.scss +0 -57
- data/client/lanes/styles/bootstrap/old/_variables.scss +0 -850
- data/client/lanes/styles/bootstrap/old/_wells.scss +0 -29
- data/client/lanes/styles/bootstrap/old/bootstrap.scss +0 -50
- data/client/lanes/styles/bootstrap/old/mixins/_alerts.scss +0 -14
- data/client/lanes/styles/bootstrap/old/mixins/_background-variant.scss +0 -11
- data/client/lanes/styles/bootstrap/old/mixins/_border-radius.scss +0 -18
- data/client/lanes/styles/bootstrap/old/mixins/_buttons.scss +0 -50
- data/client/lanes/styles/bootstrap/old/mixins/_center-block.scss +0 -7
- data/client/lanes/styles/bootstrap/old/mixins/_clearfix.scss +0 -22
- data/client/lanes/styles/bootstrap/old/mixins/_forms.scss +0 -84
- data/client/lanes/styles/bootstrap/old/mixins/_gradients.scss +0 -58
- data/client/lanes/styles/bootstrap/old/mixins/_grid-framework.scss +0 -81
- data/client/lanes/styles/bootstrap/old/mixins/_grid.scss +0 -122
- data/client/lanes/styles/bootstrap/old/mixins/_hide-text.scss +0 -21
- data/client/lanes/styles/bootstrap/old/mixins/_image.scss +0 -34
- data/client/lanes/styles/bootstrap/old/mixins/_labels.scss +0 -12
- data/client/lanes/styles/bootstrap/old/mixins/_list-group.scss +0 -31
- data/client/lanes/styles/bootstrap/old/mixins/_nav-divider.scss +0 -10
- data/client/lanes/styles/bootstrap/old/mixins/_nav-vertical-align.scss +0 -9
- data/client/lanes/styles/bootstrap/old/mixins/_opacity.scss +0 -8
- data/client/lanes/styles/bootstrap/old/mixins/_pagination.scss +0 -23
- data/client/lanes/styles/bootstrap/old/mixins/_panels.scss +0 -24
- data/client/lanes/styles/bootstrap/old/mixins/_progress-bar.scss +0 -10
- data/client/lanes/styles/bootstrap/old/mixins/_reset-filter.scss +0 -8
- data/client/lanes/styles/bootstrap/old/mixins/_resize.scss +0 -6
- data/client/lanes/styles/bootstrap/old/mixins/_responsive-visibility.scss +0 -21
- data/client/lanes/styles/bootstrap/old/mixins/_size.scss +0 -10
- data/client/lanes/styles/bootstrap/old/mixins/_tab-focus.scss +0 -9
- data/client/lanes/styles/bootstrap/old/mixins/_table-row.scss +0 -28
- data/client/lanes/styles/bootstrap/old/mixins/_text-emphasis.scss +0 -11
- data/client/lanes/styles/bootstrap/old/mixins/_text-overflow.scss +0 -8
- data/client/lanes/styles/bootstrap/old/mixins/_vendor-prefixes.scss +0 -219
- data/client/lanes/styles/font-definitions.scss +0 -451
- data/client/lanes/testing/TestModels.coffee +0 -23
- data/client/lanes/vendor/bootstrap/affix.js +0 -162
- data/client/lanes/vendor/bootstrap/alert.js +0 -94
- data/client/lanes/vendor/bootstrap/button.js +0 -116
- data/client/lanes/vendor/bootstrap/carousel.js +0 -240
- data/client/lanes/vendor/bootstrap/collapse.js +0 -211
- data/client/lanes/vendor/bootstrap/dropdown.js +0 -161
- data/client/lanes/vendor/bootstrap/modal.js +0 -324
- data/client/lanes/vendor/bootstrap/popover.js +0 -119
- data/client/lanes/vendor/bootstrap/scrollspy.js +0 -175
- data/client/lanes/vendor/bootstrap/tab.js +0 -153
- data/client/lanes/vendor/bootstrap/tooltip.js +0 -478
- data/client/lanes/vendor/bootstrap/transition.js +0 -59
- data/client/lanes/vendor/message-bus.js +0 -285
- data/client/lanes/vendor/modern-stack.js +0 -27
- data/client/lanes/vendor/packaged.js +0 -19533
- data/client/lanes/views/Assets.coffee +0 -9
- data/client/lanes/views/Base.coffee +0 -426
- data/client/lanes/views/Functions.coffee +0 -13
- data/client/lanes/views/Helpers.coffee +0 -76
- data/client/lanes/views/Keys.coffee +0 -59
- data/client/lanes/views/RenderContext.coffee +0 -32
- data/client/lanes/views/SaveNotify.coffee +0 -32
- data/client/lanes/views/Viewport.coffee +0 -18
- data/client/lanes/views/_button.html +0 -3
- data/client/lanes/views/_toolbar.html +0 -23
- data/client/lanes/views/empty-span.html +0 -1
- data/client/lanes/views/index.js +0 -2
- data/client/lanes/views/model-update.html +0 -15
- data/client/lanes/workspace/ActiveScreensSwitcher.coffee +0 -112
- data/client/lanes/workspace/Layout.coffee +0 -29
- data/client/lanes/workspace/Navbar.coffee +0 -31
- data/client/lanes/workspace/Pages.coffee +0 -39
- data/client/lanes/workspace/ScreensMenu.coffee +0 -126
- data/client/lanes/workspace/WorkspaceView.coffee +0 -8
- data/client/lanes/workspace/layout.html +0 -4
- data/client/lanes/workspace/menu.html +0 -356
- data/client/lanes/workspace/menu_toggle.html +0 -9
- data/client/lanes/workspace/navbar.html +0 -17
- data/client/lanes/workspace/pages.html +0 -6
- data/client/lanes/workspace/screens-menu.html +0 -11
- data/client/lanes/workspace/screens-switcher.html +0 -7
- data/docs/view.md +0 -292
- data/lib/lanes/command/generate_view.rb +0 -38
- data/lib/lanes/command/generate_view.usage +0 -13
- data/spec/command-reference-files/initial/client/appy-app/Router.coffee +0 -4
- data/spec/command-reference-files/initial/client/appy-app/controllers/.gitkeep +0 -0
- data/spec/command-reference-files/initial/client/appy-app/views/.gitkeep +0 -0
- data/spec/command-reference-files/initial/client/appy-app/views/Base.coffee +0 -5
- data/spec/command-reference-files/initial/spec/appy-app/screens/Base.coffee +0 -5
- data/spec/command-reference-files/screen/client/appy-app/screens/ready-set-go/ReadySetGo.coffee +0 -6
- data/spec/command-reference-files/screen/client/appy-app/screens/ready-set-go/layout.html +0 -3
- data/spec/command-reference-files/view/client/appy-app/views/BigView.coffee +0 -10
- data/spec/command-reference-files/view/spec/appy-app/views/BigViewSpec.coffee +0 -5
- data/templates/client/Router.coffee +0 -4
- data/templates/client/components/Component.coffee +0 -1
- data/templates/client/screens/Base.coffee +0 -3
- data/templates/client/screens/Screen.coffee +0 -11
- data/templates/client/screens/layout.html +0 -3
- data/templates/client/views/.gitkeep +0 -0
- data/templates/client/views/BaseView.coffee +0 -5
- data/templates/client/views/View.coffee +0 -10
- data/templates/spec/client/views/ViewSpec.coffee +0 -5
@@ -1,9 +0,0 @@
|
|
1
|
-
<a class="menu-toggle"><i class="icon-paragraph-justify2"></i></a>
|
2
|
-
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-icons">
|
3
|
-
<span class="sr-only">Toggle navbar</span>
|
4
|
-
</button>
|
5
|
-
|
6
|
-
<button data-target=".sidebar" data-toggle="collapse" class="navbar-toggle collapsed" type="button">
|
7
|
-
<span class="sr-only">Toggle navigation</span>
|
8
|
-
<i class="icon-paragraph-justify2"></i>
|
9
|
-
</button>
|
@@ -1,17 +0,0 @@
|
|
1
|
-
<div class="header-top">
|
2
|
-
<div class="navbar-header">
|
3
|
-
<a class="navbar-brand logo" href="#">
|
4
|
-
<%= _.titleize(Lanes.Extensions.controlling().identifier) %>
|
5
|
-
</a>
|
6
|
-
|
7
|
-
<button class="screens-menu-toggle" type="button">
|
8
|
-
<span class="sr-only">Toggle navbar</span>
|
9
|
-
<i class="icon-tab"></i>
|
10
|
-
</button>
|
11
|
-
|
12
|
-
</div>
|
13
|
-
<div class="menu-container">
|
14
|
-
<div data-hook="screens-container"></div>
|
15
|
-
</div>
|
16
|
-
|
17
|
-
</div>
|
@@ -1,11 +0,0 @@
|
|
1
|
-
<div class="screens-menu">
|
2
|
-
<div class="screens-menu-content">
|
3
|
-
<ul class="navigation">
|
4
|
-
</ul>
|
5
|
-
</div>
|
6
|
-
<ul class="navigation">
|
7
|
-
<li class="group logout" data-tooltip-message="Log Out" data-placement="right">
|
8
|
-
<a href="#" name="LogOut"><span>Log Out</span><i class="icon-exit"></i></a>
|
9
|
-
</li>
|
10
|
-
</ul>
|
11
|
-
</div>
|
@@ -1,7 +0,0 @@
|
|
1
|
-
<div class="active-screens">
|
2
|
-
<div class="scroller scroller-left"><i class="glyphicon glyphicon-chevron-left"></i></div>
|
3
|
-
<div class="scroller scroller-right"><i class="glyphicon glyphicon-chevron-right"></i></div>
|
4
|
-
<div class="wrapper">
|
5
|
-
<ul class="nav nav-tabs"></ul>
|
6
|
-
</div>
|
7
|
-
</div>
|
data/docs/view.md
DELETED
@@ -1,292 +0,0 @@
|
|
1
|
-
---
|
2
|
-
title: View
|
3
|
-
heading: Lanes.Data.View
|
4
|
-
---
|
5
|
-
|
6
|
-
Lanes provides a Lanes.Views.Base class that all other views extend from.
|
7
|
-
|
8
|
-
In their simplest form, a view simply renders a string into a DOM element. They provide a mediating interface between data and the DOM.
|
9
|
-
|
10
|
-
Since both Models, Collections, and the DOM emit events, a view's job is to listen to the events and then manipulate the other parties data structures.
|
11
|
-
|
12
|
-
Lanes' base view provides numerous hooks and helper functions to make the process of responding to events and relaying them easier.
|
13
|
-
|
14
|
-
Views can also be nested inside other views and will bubble relevant events up to thier parent views.
|
15
|
-
|
16
|
-
Views inherit from [Ampersand State](http://ampersandjs.com/docs#ampersand-state), and therefore support all the same methods and declarations that it does.
|
17
|
-
|
18
|
-
<aside>
|
19
|
-
Unlike Backbone.js, when the view is rendered the old el (if present)
|
20
|
-
is discared and an new one is created at the same point in the DOM.
|
21
|
-
This prevents the doubly nested divs issue that Backbone experiences,
|
22
|
-
but can be suprising behaviour for those who aren't expecting it.
|
23
|
-
</aside>
|
24
|
-
|
25
|
-
### API Reference
|
26
|
-
|
27
|
-
# initialize
|
28
|
-
|
29
|
-
`new View({options})`
|
30
|
-
|
31
|
-
Called by the constructor after the view is initialized. initialize can be used by your views for performing initialization of the class.
|
32
|
-
|
33
|
-
Views have several options that will be copied to the view if they are given to initialize. Those options and their types are el (element), model (state), collection (collection), pubSub (boolean), parent (object), subviewId (string).
|
34
|
-
|
35
|
-
``` coffee
|
36
|
-
|
37
|
-
class MyView extends Lanes.Views.Base
|
38
|
-
|
39
|
-
initialize: (options)->
|
40
|
-
this.magic = options.answer
|
41
|
-
|
42
|
-
view = new MyView( answer: 42 )
|
43
|
-
# view.magic => 42
|
44
|
-
|
45
|
-
```
|
46
|
-
|
47
|
-
# source
|
48
|
-
|
49
|
-
The "source" property is a way for Lanes to detect where the view was loaded from. When Lanes sets up a new class it sets it to the "magic" FILE variable. Lanes Coffeescript pre-processor will set the FILE to the proper values for each file. The Base View uses the information contained in source to auto-load views and models from the correct location.
|
50
|
-
|
51
|
-
# el
|
52
|
-
|
53
|
-
A reference to a DOM element that is controlled by the view.
|
54
|
-
|
55
|
-
All views have a single DOM element. If a view does is not provided an el when it's created, it will construct one when the render method is called.
|
56
|
-
|
57
|
-
# template
|
58
|
-
|
59
|
-
Templates are specified either as inline strings on the "template" property, or as an external file with the same name as the view, but with the HTML extension. If an external file is used, embedded CoffeeScript can be used inside it. The name of the external template file can be changed by specifying a `templateName`
|
60
|
-
|
61
|
-
``` coffee
|
62
|
-
class MyView extends Lanes.Views.Base
|
63
|
-
template: "<div><p>Hello World</p></div>"
|
64
|
-
|
65
|
-
view = new MyView
|
66
|
-
view.render()
|
67
|
-
|
68
|
-
# view.el.innerHTML => <div><p>Hello World</p></div>
|
69
|
-
```
|
70
|
-
|
71
|
-
Given a template file located in `myapp/views/file-list`
|
72
|
-
|
73
|
-
```text
|
74
|
-
<% if @files.length: %>
|
75
|
-
<h1>My Files:</h1>
|
76
|
-
<% for file in @files: %>
|
77
|
-
<p><%= file.name %></p>
|
78
|
-
<% end %>
|
79
|
-
<% else: %>
|
80
|
-
No files
|
81
|
-
<% end %>
|
82
|
-
```
|
83
|
-
|
84
|
-
``` coffee
|
85
|
-
# Contained in file FileList.coffee
|
86
|
-
class MyApp.Views.MyView extends Lanes.Views.Base
|
87
|
-
source: FILE
|
88
|
-
templateData: ->
|
89
|
-
{
|
90
|
-
files: [
|
91
|
-
{ name: "Gifts" }, { name: "Secrets" }, { name: "Games" }
|
92
|
-
]
|
93
|
-
{
|
94
|
-
|
95
|
-
view = new FileList
|
96
|
-
# will use the "FILE" information to render
|
97
|
-
# template above from "myapp/views/file-list"
|
98
|
-
view.render()
|
99
|
-
```
|
100
|
-
|
101
|
-
```html
|
102
|
-
<h1>My Files:</h1>
|
103
|
-
<p>Gifts</p>
|
104
|
-
<p></p>
|
105
|
-
<p>Gifts</p>
|
106
|
-
```
|
107
|
-
|
108
|
-
# subviews
|
109
|
-
|
110
|
-
Subviews are View classes that should be rendered at a given point on the DOM once conditions are met.
|
111
|
-
|
112
|
-
In order for a subview to render, the parent's el must have a valid reference to the DOM element to render the subview into, as well as all data for the subview being present.
|
113
|
-
|
114
|
-
When Subviews are created they are passed the parent view and any other options that were specified.
|
115
|
-
|
116
|
-
Definitions for subviews apre specified using:
|
117
|
-
|
118
|
-
* A "view" or "component" key, given either as a class or a string that contains the keypath to the object.
|
119
|
-
* Either a "container" or "hook" reference. If one is not given, it will default to a hook with the same name as the subview reference. For instace the "heading" subview below will default to `data-hook="heading"`
|
120
|
-
* A model or collection reference. If a collection reference is given, the collection will render using a collectionView.
|
121
|
-
* Options. Either a object, a function, or a reference to a class method to call.
|
122
|
-
|
123
|
-
|
124
|
-
``` coffee
|
125
|
-
class MyApp.Views.MyView extends Lanes.Views.Base
|
126
|
-
subviews:
|
127
|
-
heading:
|
128
|
-
view: MyApp.WeirdNamespace.Heading
|
129
|
-
model: 'model.person'
|
130
|
-
options: {uppercase: true}
|
131
|
-
grid:
|
132
|
-
component: "Grid"
|
133
|
-
container: 'div.grid'
|
134
|
-
options: 'gridOptions'
|
135
|
-
names:
|
136
|
-
view: "NamesItem"
|
137
|
-
container: "div.names"
|
138
|
-
collection: 'collection'
|
139
|
-
gridOptions: -> { count: this.count() }
|
140
|
-
template: "<div>
|
141
|
-
<div data-hook='heading'></div>
|
142
|
-
<div data-hook='finder'></div>
|
143
|
-
<div class='grid'></div>
|
144
|
-
<div class='names'></div>
|
145
|
-
</div>"
|
146
|
-
```
|
147
|
-
|
148
|
-
Notes:
|
149
|
-
|
150
|
-
* **heading**
|
151
|
-
* Is specified as a class object. `MyApp.WeirdNamespace.Heading` must be defined prior to the file being read and should be a "view like" object.
|
152
|
-
* It's model will be set to the value from `model.person`, and it will not be rendered until `model.person` is set to a truthy value.
|
153
|
-
* When the view is created it will be passed `{uppercase: true}` as it's options.
|
154
|
-
* No `selector` or `hook` was provided. It will default to rendering to `data-hook="heading"`
|
155
|
-
* **grid**
|
156
|
-
* is using a component named "Grid". When the subview is ready to be created, Lanes will look for a class in the "Components" namespace: `Lanes.Components.Grid`
|
157
|
-
* Will render to the "div.grid" element.
|
158
|
-
* It's options will be set from the value returned by calling the `gridOptions` method.
|
159
|
-
* **names**
|
160
|
-
* Since the "view" is given as a simple string, Lanes will search for it in the MyApp namespace, and will expect `MyApp.Views.NamesItem` to be defined
|
161
|
-
* A collection is specified. A collectionView will be created and the NamesItem class given as the child view to the collectionView. The collectionView will then handle rendering the collection whenever it has items added/removed.
|
162
|
-
|
163
|
-
|
164
|
-
# subviewOptions
|
165
|
-
|
166
|
-
When subviews are created, they are initialized with an options object containing the parent view, and any other options that are returned by the `subviewOptions` method.
|
167
|
-
|
168
|
-
The base view's implementation simply returns any options that were given on the subview's definition.
|
169
|
-
|
170
|
-
Other views may override this method as a convienct way to specify the same options for all subviews.
|
171
|
-
|
172
|
-
In the below example, each of the subviews will be initialied with:
|
173
|
-
`{ parent: (MyView instance), model: (MyView instance).model, status: "red"}`
|
174
|
-
|
175
|
-
|
176
|
-
``` coffee
|
177
|
-
class MyApp.Views.MyView extends Lanes.Views.Base
|
178
|
-
subviews:
|
179
|
-
heading:
|
180
|
-
view: 'Heading'
|
181
|
-
footer:
|
182
|
-
view: 'Footer'
|
183
|
-
subviewOptions: (name,definition)->
|
184
|
-
{model: @model, status: "red"}
|
185
|
-
|
186
|
-
```
|
187
|
-
|
188
|
-
# domEvents
|
189
|
-
|
190
|
-
Listens for DOM events that occur within the view _(under it's el)_. Events are specified as a
|
191
|
-
hash containing "event selector" for the key and either a name of a method or function for the value.
|
192
|
-
|
193
|
-
If the selector is ommited, the event will be bound to the root element.
|
194
|
-
|
195
|
-
|
196
|
-
``` coffee
|
197
|
-
class MyApp.Views.MyView extends Lanes.Views.Base
|
198
|
-
template: "<div><a class='title'>click me!</a></div>"
|
199
|
-
domEvents:
|
200
|
-
"click .title": "onTitleClick"
|
201
|
-
"click": -> console.log("I feel like I was clicked somewhere")
|
202
|
-
onTitleClick: ->
|
203
|
-
console.log "Title Was Clicked!"
|
204
|
-
```
|
205
|
-
|
206
|
-
# modelEvents
|
207
|
-
|
208
|
-
### and collectionEvents
|
209
|
-
|
210
|
-
Listens for events fired by the model and calls the given function when they occur.
|
211
|
-
|
212
|
-
The function may be specified as either an inline function, or as a method reference.
|
213
|
-
|
214
|
-
**Note**: The model and collection events are usually not needed. If the only action taken is to update the DOM, it's almost always better to use bindings.
|
215
|
-
|
216
|
-
``` coffee
|
217
|
-
class MyApp.Views.MyView extends Lanes.Views.Base
|
218
|
-
modelEvents:
|
219
|
-
"read", "render"
|
220
|
-
"change:birthday_now", -> alert("Happy Birthday!")
|
221
|
-
collectionEvents:
|
222
|
-
"change:length", "recalcAll"
|
223
|
-
|
224
|
-
recalcAll: (ev)->
|
225
|
-
doStuff()
|
226
|
-
```
|
227
|
-
|
228
|
-
# ui
|
229
|
-
|
230
|
-
A View will often need to access a given DOM element repeatedly. By specifying a the elements as part of the UI property, they will be cached when the view is rendered for speedy access.
|
231
|
-
|
232
|
-
Additionally elements cached in the UI can be refered to in bindings as a convience.
|
233
|
-
|
234
|
-
|
235
|
-
``` coffee
|
236
|
-
class MyApp.Views.MyView extends Lanes.Views.Base
|
237
|
-
ui:
|
238
|
-
title: "a.title"
|
239
|
-
template: "<div><a class='title'>click me!</a></div>"
|
240
|
-
domEvents:
|
241
|
-
"click @ui.title": "onTitleClick"
|
242
|
-
onTitleClick: ->
|
243
|
-
console.log "Title Was Clicked!"
|
244
|
-
performOperation: ->
|
245
|
-
this.ui.title.hide()
|
246
|
-
runOperation()
|
247
|
-
this.ui.title.show()
|
248
|
-
```
|
249
|
-
|
250
|
-
### _Note:_ UI elements are not accessible until the view is rendered.
|
251
|
-
|
252
|
-
# query(selector)
|
253
|
-
|
254
|
-
Returns a single element based on CSS selector scoped to this.el
|
255
|
-
if you pass an empty string it return `this.el`.
|
256
|
-
|
257
|
-
Is more efficient that using the `$` method which calls out to jQuery
|
258
|
-
|
259
|
-
``` coffee
|
260
|
-
class MyView extends Lanes.Views.Base
|
261
|
-
template: "<div><a class='title'>click me!</a></div>"
|
262
|
-
|
263
|
-
view = new MyView
|
264
|
-
view.render()
|
265
|
-
# get the first element the class "title"
|
266
|
-
view.query('.title').click()
|
267
|
-
```
|
268
|
-
|
269
|
-
# $(selector)
|
270
|
-
|
271
|
-
The same as `query`, but uses jQuery to find the selection, and may return more than just one
|
272
|
-
element. Is essentially just a shortcut to running $el.find. It runs queries scoped within the view's element.
|
273
|
-
|
274
|
-
``` coffee
|
275
|
-
class MyView extends Lanes.Views.Base
|
276
|
-
template: "<div><a class='title'>click me!</a></div>"
|
277
|
-
|
278
|
-
view = new MyView
|
279
|
-
view.render()
|
280
|
-
# get the first element the class "title"
|
281
|
-
view.$('.title').click()
|
282
|
-
```
|
283
|
-
|
284
|
-
# parentScreen()
|
285
|
-
|
286
|
-
Walks up the parent chain, attempting to find a screen. If it's found once is returned, otherwise returns null.
|
287
|
-
|
288
|
-
It's sometimes useful to relay events up to a level where the user can make note of them. This method provides a way to obtain a reference to the owning screen.
|
289
|
-
|
290
|
-
# remove()
|
291
|
-
|
292
|
-
Recursively calls remove() on all subviews, than removes itself form the DOM and unbinds all event listeners.
|
@@ -1,38 +0,0 @@
|
|
1
|
-
require_relative 'model_attribute'
|
2
|
-
|
3
|
-
module Lanes
|
4
|
-
module Command
|
5
|
-
|
6
|
-
class GenerateView < NamedCommand
|
7
|
-
OPTIONS ||= {
|
8
|
-
namespace: nil,
|
9
|
-
screen: 'global'
|
10
|
-
}
|
11
|
-
class_options( OPTIONS )
|
12
|
-
attr_reader :view_class
|
13
|
-
|
14
|
-
def set_variables
|
15
|
-
super
|
16
|
-
if options[:screen] == 'global'
|
17
|
-
@client_dir << "/views"
|
18
|
-
@spec_dir << "/views"
|
19
|
-
@view_class = "#{namespace}.Views.#{class_name}"
|
20
|
-
else
|
21
|
-
screen_directory = options[:screen].underscore.dasherize
|
22
|
-
@client_dir << "/screens/#{screen_directory}"
|
23
|
-
@spec_dir << "/screens/#{screen_directory}"
|
24
|
-
@view_class = "#{namespace}.Screens.#{options[:screen]}.#{class_name}"
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
def create_screen
|
29
|
-
template "client/views/View.coffee", "#{client_dir}/#{class_name}.coffee"
|
30
|
-
template "spec/client/views/ViewSpec.coffee", \
|
31
|
-
"#{spec_dir}/#{class_name}Spec.coffee"
|
32
|
-
end
|
33
|
-
|
34
|
-
|
35
|
-
end
|
36
|
-
|
37
|
-
end
|
38
|
-
end
|
@@ -1,13 +0,0 @@
|
|
1
|
-
Stubs out a new View. Pass the view name, either CamelCased or
|
2
|
-
under_scored
|
3
|
-
|
4
|
-
When executed inside a project called "Blog":
|
5
|
-
|
6
|
-
`lanes generate view comment`
|
7
|
-
|
8
|
-
Lanes will create:
|
9
|
-
····················
|
10
|
-
|
11
|
-
* View: client/views/Comment.coffee
|
12
|
-
* Template: client/views/comment.html
|
13
|
-
* Spec: spec/<app>/views/CommentSpec.coffee
|
File without changes
|
File without changes
|