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.
Files changed (447) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/client/fonts/fontawesome-webfont.woff +0 -0
  4. data/client/fonts/fontawesome-webfont.woff2 +0 -0
  5. data/client/lanes/Boot.cjsx +9 -0
  6. data/client/lanes/access/Extension.coffee +18 -4
  7. data/client/lanes/access/LoginDialog.cjsx +78 -0
  8. data/client/lanes/access/Roles.coffee +22 -28
  9. data/client/lanes/access/User.coffee +16 -16
  10. data/client/lanes/access/index.js +4 -5
  11. data/client/lanes/access/screens/user-management/Editor.cjsx +20 -0
  12. data/client/lanes/access/screens/user-management/UserManagement.cjsx +41 -0
  13. data/client/lanes/access/screens/user-management/index.js +0 -1
  14. data/client/lanes/components/grid/EditingMixin.cjsx +64 -0
  15. data/client/lanes/components/grid/Grid.cjsx +139 -0
  16. data/client/lanes/components/grid/PopOverMixin.cjsx +28 -0
  17. data/client/lanes/components/grid/PopoverEditor.cjsx +8 -0
  18. data/client/lanes/components/grid/RowEditor.cjsx +10 -0
  19. data/client/lanes/components/grid/Toolbar.cjsx +14 -0
  20. data/client/lanes/components/grid/config.json +1 -1
  21. data/client/lanes/components/grid/editors.scss +94 -53
  22. data/client/lanes/components/grid/index.js +2 -7
  23. data/client/lanes/components/grid/styles.scss +8 -296
  24. data/client/lanes/components/helpers.coffee +2 -0
  25. data/client/lanes/components/index.js +2 -1
  26. data/client/lanes/components/modal/Modal.cjsx +36 -0
  27. data/client/lanes/components/modal/index.js +1 -2
  28. data/client/lanes/components/modal/styles.scss +0 -19
  29. data/client/lanes/components/record-finder/Clause.cjsx +80 -0
  30. data/client/lanes/components/record-finder/Dialog.cjsx +54 -0
  31. data/client/lanes/components/record-finder/RecordFinder.cjsx +38 -0
  32. data/client/lanes/components/record-finder/config.json +1 -1
  33. data/client/lanes/components/record-finder/index.js +1 -2
  34. data/client/lanes/components/request-spinner/index.js +1 -0
  35. data/client/lanes/components/select-field/SelectField.cjsx +78 -0
  36. data/client/lanes/components/select-field/index.js +2 -1
  37. data/client/lanes/components/select-field/styles.scss +1 -0
  38. data/client/lanes/components/shared/CountBadge.cjsx +9 -0
  39. data/client/lanes/components/shared/ErrorDisplay.cjsx +21 -0
  40. data/client/lanes/components/shared/FieldMixin.cjsx +71 -0
  41. data/client/lanes/components/shared/FieldSet.cjsx +58 -0
  42. data/client/lanes/components/shared/GenericField.cjsx +5 -0
  43. data/client/lanes/components/shared/Helpers.coffee +9 -0
  44. data/client/lanes/components/shared/RadioField.cjsx +14 -0
  45. data/client/lanes/components/shared/Resize.cjsx +152 -0
  46. data/client/lanes/components/shared/TextArea.cjsx +19 -0
  47. data/client/lanes/components/shared/TextField.cjsx +25 -0
  48. data/client/lanes/components/shared/Tooltip.cjsx +10 -0
  49. data/client/lanes/components/shared/fields.scss +35 -0
  50. data/client/lanes/components/shared/fieldset.scss +29 -0
  51. data/client/lanes/components/shared/index.js +3 -0
  52. data/client/lanes/components/shared/styles.scss +32 -0
  53. data/client/lanes/components/toolbar/RemoteChangeSets.cjsx +75 -0
  54. data/client/lanes/components/toolbar/SaveButton.cjsx +3 -0
  55. data/client/lanes/components/toolbar/Toolbar.cjsx +58 -0
  56. data/client/lanes/{workspace/styles → components/toolbar}/changes-notification.scss +10 -23
  57. data/client/lanes/components/toolbar/index.js +3 -0
  58. data/client/lanes/components/toolbar/styles.scss +51 -0
  59. data/client/lanes/extension/Extensions.coffee +19 -10
  60. data/client/lanes/extension/LateLoaded.js.erb +4 -3
  61. data/client/lanes/index.js +3 -5
  62. data/client/lanes/index.scss.erb +6 -14
  63. data/client/lanes/lib/HotReload.coffee +35 -0
  64. data/client/lanes/lib/MakeBaseClass.coffee +10 -11
  65. data/client/lanes/lib/development.coffee +3 -0
  66. data/client/lanes/lib/dom.coffee +49 -0
  67. data/client/lanes/lib/el.coffee +23 -0
  68. data/client/lanes/lib/index.js.erb +16 -0
  69. data/client/lanes/lib/loader.coffee +34 -34
  70. data/client/lanes/lib/namespace.coffee +1 -1
  71. data/client/lanes/lib/objToParam.coffee +37 -0
  72. data/client/lanes/{access/views/.gitkeep → lib/production.coffee} +0 -0
  73. data/client/lanes/lib/utilFunctions.coffee +44 -26
  74. data/client/lanes/models/AssociationMap.coffee +51 -38
  75. data/client/lanes/models/Base.coffee +89 -88
  76. data/client/lanes/models/ChangeMonitor.coffee +10 -10
  77. data/client/lanes/models/ChangeSet.coffee +14 -24
  78. data/client/lanes/models/Collection.coffee +40 -41
  79. data/client/lanes/models/PubSub.coffee +28 -19
  80. data/client/lanes/models/Query.coffee +78 -45
  81. data/client/lanes/models/QueryResults.coffee +93 -0
  82. data/client/lanes/models/ServerCache.coffee +12 -12
  83. data/client/lanes/models/Sync.coffee +53 -50
  84. data/client/lanes/models/User.coffee +31 -17
  85. data/client/lanes/react/Component.coffee +31 -0
  86. data/client/lanes/react/DefaultComponentNotFound.cjsx +9 -0
  87. data/client/lanes/{views → react}/FormBindings.coffee +0 -0
  88. data/client/lanes/{views → react}/ModelObserver.coffee +0 -0
  89. data/client/lanes/{views → react}/ModelUpdate.coffee +0 -0
  90. data/client/lanes/{views → react}/PubSub.coffee +0 -0
  91. data/client/lanes/react/Root.cjsx +14 -0
  92. data/client/lanes/react/Router.cjsx +18 -0
  93. data/client/lanes/react/Screen.coffee +15 -0
  94. data/client/lanes/{views → react}/TimedHighlight.coffee +0 -0
  95. data/client/lanes/{views → react}/TimedMask.coffee +0 -0
  96. data/client/lanes/react/TypeValidators.coffee +21 -0
  97. data/client/lanes/{lib/create-namespace.js → react/Utils.coffee} +0 -0
  98. data/client/lanes/react/Viewport.coffee +30 -0
  99. data/client/lanes/react/index.js +8 -0
  100. data/client/lanes/react/mixins/Access.coffee +27 -0
  101. data/client/lanes/react/mixins/Component.coffee +4 -0
  102. data/client/lanes/react/mixins/Data.coffee +136 -0
  103. data/client/lanes/react/mixins/MonitorSize.coffee +11 -0
  104. data/client/lanes/react/mixins/ReadEditingState.coffee +11 -0
  105. data/client/lanes/react/mixins/RelayEditingState.coffee +17 -0
  106. data/client/lanes/react/mixins/RelayFieldChange.coffee +11 -0
  107. data/client/lanes/react/mixins/Screen.coffee +7 -0
  108. data/client/lanes/react/mixins/Viewport.coffee +11 -0
  109. data/client/lanes/screens/ChangeListener.coffee +3 -3
  110. data/client/lanes/screens/Commands.coffee +27 -0
  111. data/client/lanes/screens/Definitions.coffee +74 -65
  112. data/client/lanes/screens/all.js.erb +1 -1
  113. data/client/lanes/screens/index.js +1 -2
  114. data/client/lanes/screens/mixins/index.js +0 -1
  115. data/client/lanes/screens/register.js.erb +0 -1
  116. data/client/lanes/screens/styles.scss +7 -0
  117. data/client/lanes/styles/bootstrap-custom-grid.scss +67 -37
  118. data/client/lanes/styles/bootstrap.scss +4 -5
  119. data/client/lanes/styles/fonts.scss +10 -23
  120. data/client/lanes/styles/fonts/_animated.scss +34 -0
  121. data/client/lanes/styles/fonts/_bordered-pulled.scss +16 -0
  122. data/client/lanes/styles/fonts/_core.scss +13 -0
  123. data/client/lanes/styles/fonts/_fixed-width.scss +6 -0
  124. data/client/lanes/styles/fonts/_icons.scss +596 -0
  125. data/client/lanes/styles/fonts/_larger.scss +13 -0
  126. data/client/lanes/styles/fonts/_list.scss +19 -0
  127. data/client/lanes/styles/fonts/_mixins.scss +27 -0
  128. data/client/lanes/styles/fonts/_path.scss +10 -0
  129. data/client/lanes/styles/fonts/_rotated-flipped.scss +20 -0
  130. data/client/lanes/styles/fonts/_stacked.scss +20 -0
  131. data/client/lanes/styles/fonts/_variables.scss +606 -0
  132. data/client/lanes/styles/fonts/font-awesome.scss +16 -0
  133. data/client/lanes/styles/fonts/index.scss +2 -0
  134. data/client/lanes/styles/global.scss +2 -0
  135. data/client/lanes/styles/global/fancy-header.scss +14 -0
  136. data/client/lanes/testing/BeforeEach.coffee +15 -40
  137. data/client/lanes/testing/Helpers.coffee +27 -0
  138. data/client/lanes/testing/ModelSaver.coffee +14 -24
  139. data/client/lanes/testing/StubRouter.coffee +27 -0
  140. data/client/lanes/testing/TestObjects.coffee +27 -0
  141. data/client/lanes/testing/index.js +3 -1
  142. data/client/lanes/vendor/base.js +85256 -0
  143. data/client/lanes/vendor/commons.js +20579 -0
  144. data/client/lanes/vendor/development.js +2511 -0
  145. data/client/lanes/vendor/grid.js +6689 -0
  146. data/client/lanes/vendor/grid.scss +387 -0
  147. data/client/lanes/vendor/index.js +3 -0
  148. data/client/lanes/vendor/message-bus.coffee +264 -0
  149. data/client/lanes/vendor/widgets.js +8798 -0
  150. data/client/lanes/vendor/widgets.scss +723 -0
  151. data/client/lanes/workspace/ActiveScreenSwitcher.cjsx +38 -0
  152. data/client/lanes/workspace/Extension.coffee +6 -0
  153. data/client/lanes/workspace/Layout.cjsx +28 -0
  154. data/client/lanes/workspace/Navbar.cjsx +25 -0
  155. data/client/lanes/workspace/ScreenView.cjsx +27 -0
  156. data/client/lanes/workspace/ScreensMenu.cjsx +57 -0
  157. data/client/lanes/workspace/UIState.coffee +17 -16
  158. data/client/lanes/workspace/index.js +7 -2
  159. data/client/lanes/workspace/styles.scss +0 -3
  160. data/client/lanes/workspace/styles/forms.scss +2 -73
  161. data/client/lanes/workspace/styles/header.scss +0 -2
  162. data/client/lanes/workspace/styles/layout.scss +9 -2
  163. data/client/lanes/workspace/styles/screens.scss +0 -59
  164. data/client/lanes/workspace/styles/tabs.scss +16 -15
  165. data/coffeelint.json +49 -0
  166. data/config.ru +1 -0
  167. data/config/database.yml +2 -2
  168. data/config/routes.rb +7 -0
  169. data/docs/command.md +11 -8
  170. data/docs/model.md +2 -5
  171. data/docs/react.md +137 -0
  172. data/lanes.gemspec +1 -0
  173. data/lib/lanes.rb +1 -1
  174. data/lib/lanes/access/authentication_provider.rb +1 -0
  175. data/lib/lanes/access/config/routes.rb +2 -0
  176. data/lib/lanes/access/config/screens.rb +15 -12
  177. data/lib/lanes/access/extension.rb +2 -1
  178. data/lib/lanes/access/role.rb +8 -4
  179. data/lib/lanes/api.rb +4 -3
  180. data/lib/lanes/api/coffeescript_processor.rb +47 -6
  181. data/lib/lanes/api/controller.rb +4 -3
  182. data/lib/lanes/api/default_routes.rb +16 -0
  183. data/lib/lanes/api/javascript_processor.rb +14 -68
  184. data/lib/lanes/api/pub_sub.rb +17 -3
  185. data/lib/lanes/api/request_wrapper.rb +2 -2
  186. data/lib/lanes/api/root.rb +16 -13
  187. data/lib/lanes/api/routing.rb +0 -18
  188. data/lib/lanes/api/sprockets_extension.rb +10 -4
  189. data/lib/lanes/api/test_specs.rb +3 -3
  190. data/lib/lanes/cli.rb +6 -1
  191. data/lib/lanes/command/app.rb +7 -11
  192. data/lib/lanes/command/generate.rb +3 -3
  193. data/lib/lanes/command/generate_component.rb +28 -0
  194. data/lib/lanes/command/generate_component.usage +11 -0
  195. data/lib/lanes/command/generate_screen.rb +24 -7
  196. data/lib/lanes/command/generate_screen.usage +5 -8
  197. data/lib/lanes/configuration.rb +3 -2
  198. data/lib/lanes/extension.rb +12 -18
  199. data/lib/lanes/extension/definition.rb +20 -8
  200. data/lib/lanes/guard_tasks.rb +22 -5
  201. data/lib/lanes/hot_reload_plugin.rb +47 -0
  202. data/lib/lanes/logger.rb +41 -5
  203. data/lib/lanes/screen.rb +40 -16
  204. data/lib/lanes/spec_helper.rb +6 -3
  205. data/lib/lanes/version.rb +1 -1
  206. data/lib/lanes/workspace/extension.rb +1 -0
  207. data/npm-build/{template.js → base.js} +17 -17
  208. data/{client/lanes/workspace/tab.html → npm-build/common.js} +0 -0
  209. data/npm-build/compile.coffee +13 -4
  210. data/npm-build/development.js +7 -0
  211. data/npm-build/grid.js +11 -0
  212. data/npm-build/package.json +62 -58
  213. data/npm-build/react-widgets.js +5 -0
  214. data/npm-build/react-widgets.less +35 -0
  215. data/npm-build/webpack.config.js +39 -0
  216. data/spec/command-reference-files/component/client/appy-app/components/Big.cjsx +4 -0
  217. data/spec/command-reference-files/component/spec/appy-app/components/BigSpec.coffee +5 -0
  218. data/spec/command-reference-files/initial/.rubocop.yml +7 -0
  219. data/spec/command-reference-files/initial/Gemfile +1 -1
  220. data/spec/command-reference-files/initial/client/appy-app/Extension.coffee +17 -5
  221. data/spec/command-reference-files/initial/client/appy-app/components/Base.coffee +9 -0
  222. data/spec/command-reference-files/initial/client/appy-app/index.js +1 -3
  223. data/spec/command-reference-files/initial/client/appy-app/screens/Base.coffee +8 -2
  224. data/spec/command-reference-files/initial/coffeelint.json +49 -0
  225. data/spec/command-reference-files/initial/config.ru +2 -0
  226. data/spec/command-reference-files/initial/config/screens.rb +10 -0
  227. data/spec/command-reference-files/initial/lib/appy-app/extension.rb +7 -0
  228. data/spec/command-reference-files/model/client/appy-app/models/TestTest.coffee +0 -1
  229. data/spec/command-reference-files/screen/client/appy-app/Extension.coffee +34 -0
  230. data/spec/command-reference-files/screen/client/appy-app/screens/ready-set-go/ReadySetGo.cjsx +7 -0
  231. data/spec/command-reference-files/screen/config/screens.rb +19 -9
  232. data/spec/command-reference-files/screen/spec/appy-app/screens/ready-set-go/ReadySetGoSpec.coffee +3 -3
  233. data/spec/lanes/components/grid/GridSpec.coffee +26 -26
  234. data/spec/lanes/models/AssociationMapSpec.coffee +6 -6
  235. data/spec/lanes/models/BaseSpec.coffee +24 -35
  236. data/spec/lanes/models/CollectionSpec.coffee +19 -18
  237. data/spec/lanes/models/EnumMapSpec.coffee +1 -1
  238. data/spec/lanes/models/PubSubSpec.coffee +17 -15
  239. data/spec/lanes/models/SyncSpec.coffee +28 -0
  240. data/spec/lanes/models/UserSpec.coffee +17 -0
  241. data/spec/lanes/react/mixins/DataSpec.coffee +72 -0
  242. data/spec/lanes/screens/DefinitionsSpec.coffee +33 -0
  243. data/spec/lanes/views/BaseSpec.coffee +133 -133
  244. data/spec/lanes/views/FormBindingsSpec.coffee +30 -30
  245. data/spec/server/api/coffeescript_processor_spec.rb +2 -2
  246. data/spec/server/command_spec.rb +3 -3
  247. data/templates/client/Extension.coffee +17 -5
  248. data/templates/client/components/BaseComponent.coffee +9 -0
  249. data/templates/client/components/Component.cjsx +4 -0
  250. data/templates/client/{views → components}/template.html +0 -0
  251. data/templates/client/index.js +1 -3
  252. data/templates/client/models/Model.coffee +0 -1
  253. data/templates/client/screens/BaseScreen.coffee +9 -0
  254. data/templates/client/screens/Screen.cjsx +7 -0
  255. data/templates/config.ru +2 -0
  256. data/templates/config/screen.rb +10 -10
  257. data/templates/config/screens.rb +10 -0
  258. data/templates/lib/namespace/extension.rb +7 -0
  259. data/templates/spec/client/Screen.coffee +4 -4
  260. data/templates/spec/client/components/ComponentSpec.coffee +5 -0
  261. metadata +157 -201
  262. data/client/fonts/lanes/icomoon.eot +0 -0
  263. data/client/fonts/lanes/icomoon.svg +0 -160
  264. data/client/fonts/lanes/icomoon.ttf +0 -0
  265. data/client/fonts/lanes/icomoon.woff +0 -0
  266. data/client/fonts/lanes/selection.json +0 -3565
  267. data/client/lanes/Boot.coffee +0 -50
  268. data/client/lanes/access/LoginDialog.coffee +0 -46
  269. data/client/lanes/access/login-dialog.html +0 -16
  270. data/client/lanes/access/screens/user-management/GridUserEditor.coffee +0 -26
  271. data/client/lanes/access/screens/user-management/UserManagement.coffee +0 -23
  272. data/client/lanes/access/screens/user-management/grid-popover-editor.html +0 -33
  273. data/client/lanes/access/screens/user-management/screen.html +0 -7
  274. data/client/lanes/components/Base.coffee +0 -39
  275. data/client/lanes/components/ChoicesInput.coffee +0 -47
  276. data/client/lanes/components/grid/Editor.coffee +0 -62
  277. data/client/lanes/components/grid/Grid.coffee +0 -205
  278. data/client/lanes/components/grid/PopOverEditor.coffee +0 -29
  279. data/client/lanes/components/grid/RowEditor.coffee +0 -30
  280. data/client/lanes/components/grid/popover-editor.html +0 -18
  281. data/client/lanes/components/grid/row-editor.html +0 -16
  282. data/client/lanes/components/grid/template.html +0 -4
  283. data/client/lanes/components/grid/vendor/dataTables.scroller.js +0 -1262
  284. data/client/lanes/components/grid/vendor/index.js +0 -2
  285. data/client/lanes/components/grid/vendor/jquery.dataTables.js +0 -14839
  286. data/client/lanes/components/modal/ModalDialog.coffee +0 -68
  287. data/client/lanes/components/modal/template.html +0 -18
  288. data/client/lanes/components/multi-select/MultiSelect.coffee +0 -65
  289. data/client/lanes/components/popover/PopOver.coffee +0 -55
  290. data/client/lanes/components/popover/index.js +0 -2
  291. data/client/lanes/components/popover/styles.scss +0 -2
  292. data/client/lanes/components/popover/template.html +0 -5
  293. data/client/lanes/components/radio-group/RadioGroup.coffee +0 -47
  294. data/client/lanes/components/radio-group/index.js +0 -1
  295. data/client/lanes/components/radio-group/styles.scss +0 -1
  296. data/client/lanes/components/record-finder/Clause.coffee +0 -37
  297. data/client/lanes/components/record-finder/Dialog.coffee +0 -45
  298. data/client/lanes/components/record-finder/RecordFinder.coffee +0 -61
  299. data/client/lanes/components/record-finder/clause.html +0 -37
  300. data/client/lanes/components/record-finder/dialog.html +0 -4
  301. data/client/lanes/components/record-finder/field.html +0 -8
  302. data/client/lanes/components/select-field/SelectField.coffee +0 -63
  303. data/client/lanes/components/select2/Select2.coffee +0 -8
  304. data/client/lanes/components/select2/index.js +0 -2
  305. data/client/lanes/lib/Templates.coffee +0 -51
  306. data/client/lanes/lib/debounce.coffee +0 -15
  307. data/client/lanes/lib/defer.coffee +0 -7
  308. data/client/lanes/lib/el.js +0 -115
  309. data/client/lanes/lib/index.js +0 -5
  310. data/client/lanes/plugins/overlay.coffee +0 -41
  311. data/client/lanes/screens/Base.coffee +0 -35
  312. data/client/lanes/screens/Router.coffee +0 -4
  313. data/client/lanes/screens/mixins/Editing.coffee +0 -38
  314. data/client/lanes/styles/bootstrap/old/_alerts.scss +0 -68
  315. data/client/lanes/styles/bootstrap/old/_badges.scss +0 -57
  316. data/client/lanes/styles/bootstrap/old/_breadcrumbs.scss +0 -26
  317. data/client/lanes/styles/bootstrap/old/_button-groups.scss +0 -240
  318. data/client/lanes/styles/bootstrap/old/_buttons.scss +0 -157
  319. data/client/lanes/styles/bootstrap/old/_carousel.scss +0 -243
  320. data/client/lanes/styles/bootstrap/old/_close.scss +0 -35
  321. data/client/lanes/styles/bootstrap/old/_code.scss +0 -68
  322. data/client/lanes/styles/bootstrap/old/_component-animations.scss +0 -35
  323. data/client/lanes/styles/bootstrap/old/_dropdowns.scss +0 -215
  324. data/client/lanes/styles/bootstrap/old/_forms.scss +0 -538
  325. data/client/lanes/styles/bootstrap/old/_glyphicons.scss +0 -237
  326. data/client/lanes/styles/bootstrap/old/_grid.scss +0 -84
  327. data/client/lanes/styles/bootstrap/old/_input-groups.scss +0 -166
  328. data/client/lanes/styles/bootstrap/old/_jumbotron.scss +0 -48
  329. data/client/lanes/styles/bootstrap/old/_labels.scss +0 -66
  330. data/client/lanes/styles/bootstrap/old/_list-group.scss +0 -132
  331. data/client/lanes/styles/bootstrap/old/_media.scss +0 -56
  332. data/client/lanes/styles/bootstrap/old/_mixins.scss +0 -39
  333. data/client/lanes/styles/bootstrap/old/_modals.scss +0 -150
  334. data/client/lanes/styles/bootstrap/old/_navbar.scss +0 -659
  335. data/client/lanes/styles/bootstrap/old/_navs.scss +0 -242
  336. data/client/lanes/styles/bootstrap/old/_normalize.scss +0 -425
  337. data/client/lanes/styles/bootstrap/old/_pager.scss +0 -55
  338. data/client/lanes/styles/bootstrap/old/_pagination.scss +0 -88
  339. data/client/lanes/styles/bootstrap/old/_panels.scss +0 -243
  340. data/client/lanes/styles/bootstrap/old/_popovers.scss +0 -133
  341. data/client/lanes/styles/bootstrap/old/_print.scss +0 -101
  342. data/client/lanes/styles/bootstrap/old/_progress-bars.scss +0 -105
  343. data/client/lanes/styles/bootstrap/old/_responsive-embed.scss +0 -34
  344. data/client/lanes/styles/bootstrap/old/_responsive-utilities.scss +0 -174
  345. data/client/lanes/styles/bootstrap/old/_scaffolding.scss +0 -150
  346. data/client/lanes/styles/bootstrap/old/_tables.scss +0 -233
  347. data/client/lanes/styles/bootstrap/old/_theme.scss +0 -258
  348. data/client/lanes/styles/bootstrap/old/_thumbnails.scss +0 -38
  349. data/client/lanes/styles/bootstrap/old/_tooltip.scss +0 -95
  350. data/client/lanes/styles/bootstrap/old/_type.scss +0 -304
  351. data/client/lanes/styles/bootstrap/old/_utilities.scss +0 -57
  352. data/client/lanes/styles/bootstrap/old/_variables.scss +0 -850
  353. data/client/lanes/styles/bootstrap/old/_wells.scss +0 -29
  354. data/client/lanes/styles/bootstrap/old/bootstrap.scss +0 -50
  355. data/client/lanes/styles/bootstrap/old/mixins/_alerts.scss +0 -14
  356. data/client/lanes/styles/bootstrap/old/mixins/_background-variant.scss +0 -11
  357. data/client/lanes/styles/bootstrap/old/mixins/_border-radius.scss +0 -18
  358. data/client/lanes/styles/bootstrap/old/mixins/_buttons.scss +0 -50
  359. data/client/lanes/styles/bootstrap/old/mixins/_center-block.scss +0 -7
  360. data/client/lanes/styles/bootstrap/old/mixins/_clearfix.scss +0 -22
  361. data/client/lanes/styles/bootstrap/old/mixins/_forms.scss +0 -84
  362. data/client/lanes/styles/bootstrap/old/mixins/_gradients.scss +0 -58
  363. data/client/lanes/styles/bootstrap/old/mixins/_grid-framework.scss +0 -81
  364. data/client/lanes/styles/bootstrap/old/mixins/_grid.scss +0 -122
  365. data/client/lanes/styles/bootstrap/old/mixins/_hide-text.scss +0 -21
  366. data/client/lanes/styles/bootstrap/old/mixins/_image.scss +0 -34
  367. data/client/lanes/styles/bootstrap/old/mixins/_labels.scss +0 -12
  368. data/client/lanes/styles/bootstrap/old/mixins/_list-group.scss +0 -31
  369. data/client/lanes/styles/bootstrap/old/mixins/_nav-divider.scss +0 -10
  370. data/client/lanes/styles/bootstrap/old/mixins/_nav-vertical-align.scss +0 -9
  371. data/client/lanes/styles/bootstrap/old/mixins/_opacity.scss +0 -8
  372. data/client/lanes/styles/bootstrap/old/mixins/_pagination.scss +0 -23
  373. data/client/lanes/styles/bootstrap/old/mixins/_panels.scss +0 -24
  374. data/client/lanes/styles/bootstrap/old/mixins/_progress-bar.scss +0 -10
  375. data/client/lanes/styles/bootstrap/old/mixins/_reset-filter.scss +0 -8
  376. data/client/lanes/styles/bootstrap/old/mixins/_resize.scss +0 -6
  377. data/client/lanes/styles/bootstrap/old/mixins/_responsive-visibility.scss +0 -21
  378. data/client/lanes/styles/bootstrap/old/mixins/_size.scss +0 -10
  379. data/client/lanes/styles/bootstrap/old/mixins/_tab-focus.scss +0 -9
  380. data/client/lanes/styles/bootstrap/old/mixins/_table-row.scss +0 -28
  381. data/client/lanes/styles/bootstrap/old/mixins/_text-emphasis.scss +0 -11
  382. data/client/lanes/styles/bootstrap/old/mixins/_text-overflow.scss +0 -8
  383. data/client/lanes/styles/bootstrap/old/mixins/_vendor-prefixes.scss +0 -219
  384. data/client/lanes/styles/font-definitions.scss +0 -451
  385. data/client/lanes/testing/TestModels.coffee +0 -23
  386. data/client/lanes/vendor/bootstrap/affix.js +0 -162
  387. data/client/lanes/vendor/bootstrap/alert.js +0 -94
  388. data/client/lanes/vendor/bootstrap/button.js +0 -116
  389. data/client/lanes/vendor/bootstrap/carousel.js +0 -240
  390. data/client/lanes/vendor/bootstrap/collapse.js +0 -211
  391. data/client/lanes/vendor/bootstrap/dropdown.js +0 -161
  392. data/client/lanes/vendor/bootstrap/modal.js +0 -324
  393. data/client/lanes/vendor/bootstrap/popover.js +0 -119
  394. data/client/lanes/vendor/bootstrap/scrollspy.js +0 -175
  395. data/client/lanes/vendor/bootstrap/tab.js +0 -153
  396. data/client/lanes/vendor/bootstrap/tooltip.js +0 -478
  397. data/client/lanes/vendor/bootstrap/transition.js +0 -59
  398. data/client/lanes/vendor/message-bus.js +0 -285
  399. data/client/lanes/vendor/modern-stack.js +0 -27
  400. data/client/lanes/vendor/packaged.js +0 -19533
  401. data/client/lanes/views/Assets.coffee +0 -9
  402. data/client/lanes/views/Base.coffee +0 -426
  403. data/client/lanes/views/Functions.coffee +0 -13
  404. data/client/lanes/views/Helpers.coffee +0 -76
  405. data/client/lanes/views/Keys.coffee +0 -59
  406. data/client/lanes/views/RenderContext.coffee +0 -32
  407. data/client/lanes/views/SaveNotify.coffee +0 -32
  408. data/client/lanes/views/Viewport.coffee +0 -18
  409. data/client/lanes/views/_button.html +0 -3
  410. data/client/lanes/views/_toolbar.html +0 -23
  411. data/client/lanes/views/empty-span.html +0 -1
  412. data/client/lanes/views/index.js +0 -2
  413. data/client/lanes/views/model-update.html +0 -15
  414. data/client/lanes/workspace/ActiveScreensSwitcher.coffee +0 -112
  415. data/client/lanes/workspace/Layout.coffee +0 -29
  416. data/client/lanes/workspace/Navbar.coffee +0 -31
  417. data/client/lanes/workspace/Pages.coffee +0 -39
  418. data/client/lanes/workspace/ScreensMenu.coffee +0 -126
  419. data/client/lanes/workspace/WorkspaceView.coffee +0 -8
  420. data/client/lanes/workspace/layout.html +0 -4
  421. data/client/lanes/workspace/menu.html +0 -356
  422. data/client/lanes/workspace/menu_toggle.html +0 -9
  423. data/client/lanes/workspace/navbar.html +0 -17
  424. data/client/lanes/workspace/pages.html +0 -6
  425. data/client/lanes/workspace/screens-menu.html +0 -11
  426. data/client/lanes/workspace/screens-switcher.html +0 -7
  427. data/docs/view.md +0 -292
  428. data/lib/lanes/command/generate_view.rb +0 -38
  429. data/lib/lanes/command/generate_view.usage +0 -13
  430. data/spec/command-reference-files/initial/client/appy-app/Router.coffee +0 -4
  431. data/spec/command-reference-files/initial/client/appy-app/controllers/.gitkeep +0 -0
  432. data/spec/command-reference-files/initial/client/appy-app/views/.gitkeep +0 -0
  433. data/spec/command-reference-files/initial/client/appy-app/views/Base.coffee +0 -5
  434. data/spec/command-reference-files/initial/spec/appy-app/screens/Base.coffee +0 -5
  435. data/spec/command-reference-files/screen/client/appy-app/screens/ready-set-go/ReadySetGo.coffee +0 -6
  436. data/spec/command-reference-files/screen/client/appy-app/screens/ready-set-go/layout.html +0 -3
  437. data/spec/command-reference-files/view/client/appy-app/views/BigView.coffee +0 -10
  438. data/spec/command-reference-files/view/spec/appy-app/views/BigViewSpec.coffee +0 -5
  439. data/templates/client/Router.coffee +0 -4
  440. data/templates/client/components/Component.coffee +0 -1
  441. data/templates/client/screens/Base.coffee +0 -3
  442. data/templates/client/screens/Screen.coffee +0 -11
  443. data/templates/client/screens/layout.html +0 -3
  444. data/templates/client/views/.gitkeep +0 -0
  445. data/templates/client/views/BaseView.coffee +0 -5
  446. data/templates/client/views/View.coffee +0 -10
  447. 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,6 +0,0 @@
1
- <div class="page-container">
2
- <div data-hook="menu" class="menu-container"></div>
3
- <div class="page-content">
4
- <div class="screen"></div>
5
- </div>
6
- </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
@@ -1,4 +0,0 @@
1
- class AppyApp.Router extends Lanes.Screens.Router
2
-
3
- routes:
4
- {}
@@ -1,5 +0,0 @@
1
- # All views in AppyApp will inherit from
2
- # this common base class.
3
- class AppyApp.Views.Base extends Lanes.Views.Base
4
-
5
- abstractClass: true
@@ -1,5 +0,0 @@
1
- describe "AppyApp.Screens.Base", ->
2
-
3
- it "can be instantiated", ->
4
- view = new AppyApp.Screens.Base()
5
- expect(view).toEqual(jasmine.any(AppyApp.Screens.Base));
@@ -1,6 +0,0 @@
1
- class AppyApp.Screens.ReadySetGo extends AppyApp.Screens.Base
2
-
3
-
4
- subviews: {}
5
-
6
- events: {}
@@ -1,3 +0,0 @@
1
- <div>
2
- <h1>Ready Set Go</h1>
3
- </div>
@@ -1,10 +0,0 @@
1
- class AppyApp.Views.BigView extends AppyApp.Views.Base
2
-
3
- template: '<h3>AppyApp.Views.BigView</h3>'
4
-
5
- ## These are listed only as examples.
6
- # If unused they can be safely removed.
7
- subviews: {}
8
- domEvents: {}
9
- modelEvents: {}
10
- collectionEvents: {}