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,23 +1,28 @@
1
1
  describe "Lanes.Models.Collection", ->
2
2
 
3
3
 
4
- it "it triggers promise on loading", (done)->
5
- Model = Lanes.Test.DummyModel
4
+ it "it triggers promise on loading", (done) ->
5
+ Model = Lanes.Test.defineModel
6
+ props: { id: 'integer', title: 'string' }
7
+
6
8
  syncSucceedWith([
7
9
  { id: 1, title: 'first value' }
8
10
  { id: 2, title: 'second value' }
9
11
  ])
10
- collection = Model.where( name: 'foo' )
12
+ collection = Model.where(name: 'foo')
13
+ expect(collection.requestInProgress).toBe(true)
11
14
  collection.whenLoaded ->
12
15
  expect( collection.isLoaded() ).toEqual( true )
13
16
  done()
14
17
 
15
18
  it "triggers length when changed", ->
16
- collection = new Lanes.Test.DummyModel.Collection
19
+ Model = Lanes.Test.defineModel
20
+ props: { id: 'integer', title: 'string' }
21
+
22
+ collection = new Model.Collection
17
23
  spy = jasmine.createSpy('onLengthChange')
18
24
  collection.on("change:length", spy)
19
25
  model = collection.add({ id: 1, title: 'first' })
20
- expect(model).toEqual(jasmine.any(Lanes.Test.DummyModel))
21
26
  expect(spy).toHaveBeenCalled()
22
27
  spy.calls.reset()
23
28
  collection.remove(model)
@@ -26,22 +31,18 @@ describe "Lanes.Models.Collection", ->
26
31
  collection.reset([{ id:11, title: 'last'}])
27
32
  expect(spy).toHaveBeenCalled()
28
33
 
29
-
30
- it "caches", (done)->
34
+ it "reads from caches", (done) ->
31
35
  model = Lanes.Test.makeModel({
32
- cacheDuration: [1,'day']
36
+ cacheDuration: [1, 'day']
37
+ api_path: 'model-cache'
33
38
  props: { id: 'integer', title: 'string' }
34
- })
35
- syncSucceedWith([
39
+ }, {id: 1})
40
+ Lanes.Models.ServerCache.CACHE["/model-cache"] = [
36
41
  { id: 1, title: 'first value' }
37
42
  { id: 2, title: 'second value' }
38
- ])
43
+ ]
39
44
  collection = new model.constructor.Collection
40
45
  collection.fetch().then ->
41
- expect(collection.length).toEqual 2
42
- expect(Lanes.Models.Sync.perform).toHaveBeenCalled()
43
- Lanes.Models.Sync.perform.calls.reset()
44
- collection.fetch().then ->
45
- expect(Lanes.Models.Sync.perform).not.toHaveBeenCalled()
46
- expect(collection.length).toEqual 2
47
- done()
46
+ expect(collection.length).toEqual(2)
47
+ expect(collection.first().title).toEqual('first value')
48
+ done()
@@ -14,7 +14,7 @@ describe "Lanes.Models.EnumMap", ->
14
14
 
15
15
  },{ id: 123 })
16
16
 
17
- xit "sets up enums", ->
17
+ it "sets up enums", ->
18
18
  expect(model.is_open).toEqual(false)
19
19
  model.state = 1
20
20
  expect(model.is_open).toEqual(true)
@@ -1,21 +1,23 @@
1
-
2
1
  describe "Lanes.Model.PubSub", ->
3
-
2
+
4
3
  it "checks in/out a model when it binds to a view", ->
5
- view = new Lanes.Test.DummyView
6
- model = new Lanes.Test.DummyModel(id:1)
7
- spyOn(Lanes.Models.PubSub,'add').and.callThrough()
8
- spyOn(Lanes.Models.PubSub,'remove')
9
- view.model = model
4
+ spyOn(Lanes.Models.PubSub, 'add').and.callThrough()
5
+ spyOn(Lanes.Models.PubSub, 'remove')
6
+ model = Lanes.Test.makeModel({
7
+ props: { id: 'integer', foo: 'string' }
8
+ }, { id: 1, foo: 'bar' })
9
+ component = Lanes.Test.makeComponent({}, model: model)
10
10
  expect(Lanes.Models.PubSub.add).toHaveBeenCalledWith(model)
11
- expect(Lanes.Vendor.MessageBus.subscribe)
12
- .toHaveBeenCalledWith("/test/1", jasmine.any(Function))
13
- view.unset('model')
11
+ component.wrapper.destroy()
14
12
  expect(Lanes.Models.PubSub.remove).toHaveBeenCalledWith(model)
15
13
 
16
14
  it "can retrieve a model after checkin", ->
17
- model = new Lanes.Test.DummyModel(id: 11, name:'bar')
18
- Lanes.Models.PubSub.add(model)
19
- checkin = Lanes.Models.PubSub.instanceFor(Lanes.Test.DummyModel, 11)
20
- expect(checkin).toEqual(model)
21
-
15
+ Model = Lanes.Test.defineModel({
16
+ props: { id: 'integer', foo: 'string' }
17
+ })
18
+
19
+ record = new Model(id: 11, foo: 'bar')
20
+
21
+ Lanes.Models.PubSub.add(record)
22
+ checkin = Lanes.Models.PubSub.instanceFor(Model, 11)
23
+ expect(checkin).toEqual(record)
@@ -0,0 +1,28 @@
1
+ describe "Lanes.Models.Sync", ->
2
+
3
+ it "it can encode retreival options", (done) ->
4
+ calledWithUrl = ""
5
+ spyOn(Lanes.Vendor, 'xhr').and.callFake( (options, cb) ->
6
+ calledWithUrl = options.url
7
+ console.dir options
8
+ cb(false, {}, "{}")
9
+ )
10
+
11
+ options =
12
+ url: 'endpoint'
13
+ query: { foo: 'bar' }
14
+ fields: ['foo', 'bar']
15
+ with: 'bar_finder_method'
16
+ include: ['extra_special_values', 'secrets']
17
+ order: {'foo', 'desc'}
18
+ limit: 100
19
+ start: 2
20
+ format: 'array'
21
+
22
+ Lanes.Models.Sync.restorePerform ->
23
+ Lanes.Models.Sync.perform('GET', options).then (a,b,c)->
24
+ expect(Lanes.Vendor.xhr).toHaveBeenCalled()
25
+ expect(calledWithUrl)
26
+ .toEqual("endpoint.json?q[foo]=bar&f[]=foo&f[]=bar&w=bar_finder_method&i[]=extra_special_values&i[]=secrets&o[foo]=foo&o[desc]=desc&l=100&s=2&df=array")
27
+
28
+ done()
@@ -0,0 +1,17 @@
1
+ describe "Lanes.Model.User", ->
2
+
3
+ it "saves callbacks across users", ->
4
+ spy = jasmine.createSpy('callbackSpy')
5
+ Lanes.current_user.on("change", spy)
6
+ #expect( _.keys(Lanes.Models.UserEvents.CALLBACKS).length ).toEqual(2)
7
+
8
+ testuser = Lanes.Test.makeModel({
9
+ session:
10
+ isLoggedIn: 'bool'
11
+ canRead: -> true
12
+ })
13
+ Lanes.current_user = testuser
14
+
15
+ Lanes.current_user.isLoggedIn = false
16
+
17
+ expect(spy).toHaveBeenCalled()
@@ -0,0 +1,72 @@
1
+ describe "Lanes.React.DataMixin", ->
2
+
3
+ it "fires setState for a model", ->
4
+ model = Lanes.Test.makeModel
5
+ props:
6
+ id: 'integer'
7
+ foo: 'string'
8
+ comp = Lanes.Test.makeComponent({}, model: model)
9
+ spyOn(comp, 'setState')
10
+ model.foo = "bar"
11
+ expect(comp.setState).toHaveBeenCalledWith( model: model )
12
+
13
+ it "fires setState for a collection", ->
14
+ collection = Lanes.Test.makeCollection()
15
+ comp = Lanes.Test.makeComponent({}, collection: collection)
16
+ spyOn(comp, 'setState')
17
+ collection.add([{}])
18
+ expect(comp.setState).toHaveBeenCalledWith( collection: collection )
19
+
20
+ it "obeys global pubsub settings", ->
21
+ spyOn(Lanes.Models.PubSub, 'add').and.callThrough()
22
+ model = Lanes.Test.makeModel({
23
+ props: { id: 'integer', foo: 'string' }
24
+ }, { id: 1, foo: 'bar' })
25
+ component = Lanes.Test.makeComponent({pubsub: false}, model: model)
26
+ expect(Lanes.Models.PubSub.add).not.toHaveBeenCalled()
27
+
28
+ it "obeys per-object pubsub settings", ->
29
+ spyOn(Lanes.Models.PubSub, 'add').and.callThrough()
30
+ model = Lanes.Test.makeModel({
31
+ props: { id: 'integer', foo: 'string' }
32
+ }, {id: 1, foo: 'bar' })
33
+
34
+ component = Lanes.Test.makeComponent({pubsub: {model: false}}, model: model)
35
+ expect(Lanes.Models.PubSub.add).not.toHaveBeenCalled()
36
+
37
+ it "can listen to only specific events", ->
38
+ model = Lanes.Test.makeModel
39
+ props:
40
+ foo: 'string'
41
+ bar: 'string'
42
+ comp = Lanes.Test.makeComponent({
43
+ bindDataEvents:
44
+ model: 'change:bar'
45
+ }, {
46
+ model: model
47
+ })
48
+ spyOn(comp, 'setState')
49
+ model.foo = "bar"
50
+ expect(comp.setState).not.toHaveBeenCalled()
51
+ model.bar = "foo"
52
+ expect(comp.setState).toHaveBeenCalledWith( model: model )
53
+
54
+ it "can rebind events", ->
55
+ Model = Lanes.Test.defineModel
56
+ props:
57
+ foo: 'string', bar: 'string'
58
+ m1 = new Model
59
+ m2 = new Model
60
+ comp = Lanes.Test.makeComponent({}, {
61
+ model: m1
62
+ })
63
+ spyOn(comp, 'setState')
64
+ m1.foo = "bar"
65
+ expect(comp.setState).toHaveBeenCalled()
66
+
67
+ comp.data.rebind(model: m2)
68
+ comp.setState.calls.reset()
69
+ m1.foo = "a different bar"
70
+ expect(comp.setState).not.toHaveBeenCalled()
71
+ m2.foo = "bar"
72
+ expect(comp.setState).toHaveBeenCalled()
@@ -0,0 +1,33 @@
1
+ describe "Lanes.Screens.Definitions", ->
2
+ orig_user = Lanes.current_user
3
+ afterEach ->
4
+ Lanes.current_user = orig_user
5
+ delete Lanes.Test.DefinitionTestModel
6
+
7
+ it "resets caches when user login status changes", ->
8
+
9
+ testuser = Lanes.Test.makeModel({
10
+ session:
11
+ isLoggedIn: 'bool'
12
+ canRead: -> true
13
+ })
14
+ Lanes.current_user = testuser
15
+ Lanes.Test.DefinitionTestModel = Lanes.Test.defineModel({
16
+ props: { id: 'integer', foo: 'string' }
17
+ })
18
+ expect(Lanes.current_user).not.toBe(null)
19
+ Lanes.Screens.Definitions.groups.add( id: 'foo' )
20
+ Lanes.Screens.Definitions.register(
21
+ group_id: 'foo', model: 'Lanes.Test.DefinitionTestModel', id: 'screen'
22
+ )
23
+ group = Lanes.Screens.Definitions.groups.first()
24
+ expect(group).not.toBe(null)
25
+
26
+ expect(Lanes.Screens.Definitions.groups.available().length).toEqual(1)
27
+ expect( group.screens().length ).toEqual(1)
28
+
29
+ Lanes.current_user.canRead = -> false
30
+ Lanes.current_user.isLoggedIn = false
31
+
32
+ expect( group.screens().length ).toEqual(0)
33
+ expect( Lanes.Screens.Definitions.groups.available().length ).toEqual(0)
@@ -1,147 +1,147 @@
1
- describe "Lanes.Views.Base", ->
1
+ # describe "Lanes.Views.Base", ->
2
2
 
3
- it "fires el change on render", ->
4
- spy = jasmine.createSpy()
5
- view = Lanes.Test.makeView({
6
- template: "<p>hi</p"
7
- })
8
- view.on("change:el", spy)
9
- view.render()
10
- expect(spy).toHaveBeenCalled()
3
+ # it "fires el change on render", ->
4
+ # spy = jasmine.createSpy()
5
+ # view = Lanes.Test.makeView({
6
+ # template: "<p>hi</p"
7
+ # })
8
+ # view.on("change:el", spy)
9
+ # view.render()
10
+ # expect(spy).toHaveBeenCalled()
11
11
 
12
- it "renders a template file", ->
13
- spy = jasmine.createSpy('view-test').and.callFake ->
14
- "<p>a test</p>"
15
- Lanes.Templates['/view-test'] = spy
12
+ # it "renders a template file", ->
13
+ # spy = jasmine.createSpy('view-test').and.callFake ->
14
+ # "<p>a test</p>"
15
+ # Lanes.Templates['/view-test'] = spy
16
16
 
17
- view = Lanes.Test.makeView({
18
- templatePrefix: ''
19
- templateName: "view-test"
20
- }, { model: new Lanes.Test.DummyModel({name: 'foo'}) } )
21
- view.render()
22
- expect(spy).toHaveBeenCalledWith( model: { name: 'foo' }, collection: undefined )
23
- expect(view.el.innerHTML).toEqual("a test")
17
+ # view = Lanes.Test.makeView({
18
+ # templatePrefix: ''
19
+ # templateName: "view-test"
20
+ # }, { model: new Lanes.Test.DummyModel({name: 'foo'}) } )
21
+ # view.render()
22
+ # expect(spy).toHaveBeenCalledWith( model: { name: 'foo' }, collection: undefined )
23
+ # expect(view.el.innerHTML).toEqual("a test")
24
24
 
25
- it "renders a template string", ->
26
- view = Lanes.Test.makeView({
27
- template: "<p>hello test</p"
28
- })
29
- expect(view.template).toEqual "<p>hello test</p"
30
- view.render()
31
- expect(view.el.tagName).toEqual("P")
32
- expect(view.el.innerHTML).toEqual("hello test")
25
+ # it "renders a template string", ->
26
+ # view = Lanes.Test.makeView({
27
+ # template: "<p>hello test</p"
28
+ # })
29
+ # expect(view.template).toEqual "<p>hello test</p"
30
+ # view.render()
31
+ # expect(view.el.tagName).toEqual("P")
32
+ # expect(view.el.innerHTML).toEqual("hello test")
33
33
 
34
- it "listens to domEvents", ->
35
- spy = jasmine.createSpy('onClick')
36
- el = _.el( 'div',{id: 'testdiv'} )
37
- view = Lanes.Test.makeView({
38
- domEvents: { "click #mylink": 'onClick' }
39
- template: "<div>text,text,text<a id='mylink'>click me</a>mor text</div>"
40
- onClick: spy
41
- },{el: el})
42
- expect(view.domEvents["click #mylink"]).toEqual('onClick')
43
- view.render()
44
- view.$('a').trigger('click',22)
45
- expect(spy).toHaveBeenCalledWith(jasmine.any(Object),22)
34
+ # it "listens to domEvents", ->
35
+ # spy = jasmine.createSpy('onClick')
36
+ # el = _.el( 'div',{id: 'testdiv'} )
37
+ # view = Lanes.Test.makeView({
38
+ # domEvents: { "click #mylink": 'onClick' }
39
+ # template: "<div>text,text,text<a id='mylink'>click me</a>mor text</div>"
40
+ # onClick: spy
41
+ # },{el: el})
42
+ # expect(view.domEvents["click #mylink"]).toEqual('onClick')
43
+ # view.render()
44
+ # view.$('a').trigger('click',22)
45
+ # expect(spy).toHaveBeenCalledWith(jasmine.any(Object),22)
46
46
 
47
- it "updates from bindings", ->
48
- model = new Lanes.Test.DummyModel({ name: "Bob" })
49
- view = Lanes.Test.makeView({
50
- bindings: {
51
- "model.name": { hook: 'link' }
52
- "model.url": { type:'attribute', name: 'href', hook: 'link' }
53
- }
54
- template: "<div>text,text,text<a data-hook='link'>click me</a>mor text</div>"
55
- }, { model: model })
56
- view.render()
57
- expect( view.$('a').text() ).toEqual("Bob")
58
- model.name="Ralph"
59
- model.url = 'http://lanesframework.org/'
60
- expect( view.$('a').text() ).toEqual("Ralph")
61
- expect( view.$('a').attr('href') ).toEqual( model.url )
47
+ # it "updates from bindings", ->
48
+ # model = new Lanes.Test.DummyModel({ name: "Bob" })
49
+ # view = Lanes.Test.makeView({
50
+ # bindings: {
51
+ # "model.name": { hook: 'link' }
52
+ # "model.url": { type:'attribute', name: 'href', hook: 'link' }
53
+ # }
54
+ # template: "<div>text,text,text<a data-hook='link'>click me</a>mor text</div>"
55
+ # }, { model: model })
56
+ # view.render()
57
+ # expect( view.$('a').text() ).toEqual("Bob")
58
+ # model.name="Ralph"
59
+ # model.url = 'http://lanesframework.org/'
60
+ # expect( view.$('a').text() ).toEqual("Ralph")
61
+ # expect( view.$('a').attr('href') ).toEqual( model.url )
62
62
 
63
- it "renders subviews", ->
64
- class LowerView
65
- template: "<h1>Hello from Lower View</h1>"
66
- constructor: -> super
67
- session: { answer: 'string' }
68
- Lanes.Views.Base.extend(LowerView)
69
- model = new Lanes.Test.DummyModel
70
- view = Lanes.Test.makeView({
71
- subviews:
72
- lower:
73
- hook: 'lower'
74
- waitFor: 'model.name'
75
- view: LowerView
76
- template: "<div>text,text,text<div data-hook='lower'>unmodified</div>More text</div>"
77
- subviewOptions: ->{ answer: '42' }
78
- }, { model: model })
79
- view.render()
80
- expect(view.$('[data-hook]').text()).toEqual("unmodified")
81
- expect( view.$el.text() ).not.toMatch(/Hello from Lower View/)
82
- model.name="Ralph"
83
- expect( view.$el.text() ).toMatch(/Hello from Lower View/)
84
- expect(view.lower.answer).toEqual('42')
63
+ # it "renders subviews", ->
64
+ # class LowerView
65
+ # template: "<h1>Hello from Lower View</h1>"
66
+ # constructor: -> super
67
+ # session: { answer: 'string' }
68
+ # Lanes.Views.Base.extend(LowerView)
69
+ # model = new Lanes.Test.DummyModel
70
+ # view = Lanes.Test.makeView({
71
+ # subviews:
72
+ # lower:
73
+ # hook: 'lower'
74
+ # waitFor: 'model.name'
75
+ # view: LowerView
76
+ # template: "<div>text,text,text<div data-hook='lower'>unmodified</div>More text</div>"
77
+ # subviewOptions: ->{ answer: '42' }
78
+ # }, { model: model })
79
+ # view.render()
80
+ # expect(view.$('[data-hook]').text()).toEqual("unmodified")
81
+ # expect( view.$el.text() ).not.toMatch(/Hello from Lower View/)
82
+ # model.name="Ralph"
83
+ # expect( view.$el.text() ).toMatch(/Hello from Lower View/)
84
+ # expect(view.lower.answer).toEqual('42')
85
85
 
86
- it "renders collection views", ->
87
- class LowerView
88
- template: "<h1>Hello from Lower View</h1>"
89
- constructor: -> super
90
- bindings: { "model.name": { type: "text" } }
91
- Lanes.Views.Base.extend(LowerView)
92
- collection = new Lanes.Test.DummyModel.Collection
93
- view = Lanes.Test.makeView({
94
- subviews:
95
- lower:
96
- hook: 'lower'
97
- collection: 'collection'
98
- view: LowerView
99
- template: "<div>text,text,text<div data-hook='lower'>unmodified</div>More text</div>"
100
- }, { collection: collection})
101
- view.render()
102
- expect(view.$('h1').length).toEqual(0)
103
- collection.add([{ name: "One"}, {name: "Two"},{name:"Three"}])
104
- expect(view.$('h1').length).toEqual(3)
105
- expect(view.$('h1:first').text()).toMatch('One')
86
+ # it "renders collection views", ->
87
+ # class LowerView
88
+ # template: "<h1>Hello from Lower View</h1>"
89
+ # constructor: -> super
90
+ # bindings: { "model.name": { type: "text" } }
91
+ # Lanes.Views.Base.extend(LowerView)
92
+ # collection = new Lanes.Test.DummyModel.Collection
93
+ # view = Lanes.Test.makeView({
94
+ # subviews:
95
+ # lower:
96
+ # hook: 'lower'
97
+ # collection: 'collection'
98
+ # view: LowerView
99
+ # template: "<div>text,text,text<div data-hook='lower'>unmodified</div>More text</div>"
100
+ # }, { collection: collection})
101
+ # view.render()
102
+ # expect(view.$('h1').length).toEqual(0)
103
+ # collection.add([{ name: "One"}, {name: "Two"},{name:"Three"}])
104
+ # expect(view.$('h1').length).toEqual(3)
105
+ # expect(view.$('h1:first').text()).toMatch('One')
106
106
 
107
- it "caches elements in ui", ->
108
- spy = jasmine.createSpy('onClick')
109
- view = Lanes.Test.makeView({
110
- ui:
111
- link: '#linky'
112
- domEvents:
113
- 'click @ui.link': spy
114
- template: "<div>text,text,text<a id='linky'>unmodified</a>More text</div>"
115
- })
116
- view.render()
117
- expect(view.ui.link.length).toEqual(1)
118
- view.$('a').click()
119
- expect(spy).toHaveBeenCalled()
107
+ # it "caches elements in ui", ->
108
+ # spy = jasmine.createSpy('onClick')
109
+ # view = Lanes.Test.makeView({
110
+ # ui:
111
+ # link: '#linky'
112
+ # domEvents:
113
+ # 'click @ui.link': spy
114
+ # template: "<div>text,text,text<a id='linky'>unmodified</a>More text</div>"
115
+ # })
116
+ # view.render()
117
+ # expect(view.ui.link.length).toEqual(1)
118
+ # view.$('a').click()
119
+ # expect(spy).toHaveBeenCalled()
120
120
 
121
121
 
122
- it "invokes model events", ->
123
- nameSpy = jasmine.createSpy()
124
- urlSpy = jasmine.createSpy()
125
- model = new Lanes.Test.DummyModel
126
- view = Lanes.Test.makeView({
127
- modelEvents:
128
- 'change:name': nameSpy
129
- 'change:url' : 'onURLChange'
130
- onURLChange: urlSpy
131
- },{ model: model })
122
+ # it "invokes model events", ->
123
+ # nameSpy = jasmine.createSpy()
124
+ # urlSpy = jasmine.createSpy()
125
+ # model = new Lanes.Test.DummyModel
126
+ # view = Lanes.Test.makeView({
127
+ # modelEvents:
128
+ # 'change:name': nameSpy
129
+ # 'change:url' : 'onURLChange'
130
+ # onURLChange: urlSpy
131
+ # },{ model: model })
132
132
 
133
- model.name="Ralph"
134
- expect(nameSpy).toHaveBeenCalled()
133
+ # model.name="Ralph"
134
+ # expect(nameSpy).toHaveBeenCalled()
135
135
 
136
136
 
137
- it "invokes collection events", ->
138
- eventSpy = jasmine.createSpy('event')
139
- view = Lanes.Test.makeView({
140
- collectionEvents:
141
- all: 'onEvent'
142
- onEvent: eventSpy
143
- initialize: -> this.collection = new Lanes.Test.DummyModel.Collection
144
- })
145
- expect(eventSpy).not.toHaveBeenCalled()
146
- view.collection.add(new Lanes.Test.DummyModel)
147
- expect(eventSpy).toHaveBeenCalled()
137
+ # it "invokes collection events", ->
138
+ # eventSpy = jasmine.createSpy('event')
139
+ # view = Lanes.Test.makeView({
140
+ # collectionEvents:
141
+ # all: 'onEvent'
142
+ # onEvent: eventSpy
143
+ # initialize: -> this.collection = new Lanes.Test.DummyModel.Collection
144
+ # })
145
+ # expect(eventSpy).not.toHaveBeenCalled()
146
+ # view.collection.add(new Lanes.Test.DummyModel)
147
+ # expect(eventSpy).toHaveBeenCalled()