lanes 0.0.3 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (446) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/Gemfile +1 -1
  4. data/Rakefile +0 -42
  5. data/client/{javascripts/component → lanes/components}/Base.coffee +10 -10
  6. data/client/{javascripts/component → lanes/components}/ChoicesInput.coffee +0 -0
  7. data/client/lanes/components/enabled.js.erb +3 -0
  8. data/client/{javascripts/lib/create-namespace.js → lanes/components/enabled.scss.erb} +0 -0
  9. data/client/{javascripts/component → lanes/components}/grid/Editor.coffee +10 -13
  10. data/client/{javascripts/component → lanes/components/grid}/Grid.coffee +6 -6
  11. data/client/{javascripts/component → lanes/components}/grid/PopOverEditor.coffee +3 -3
  12. data/client/{javascripts/component → lanes/components}/grid/RowEditor.coffee +2 -3
  13. data/client/lanes/components/grid/config.json +3 -0
  14. data/client/{stylesheets/compoonents/grid-editors.scss → lanes/components/grid/editors.scss} +0 -0
  15. data/client/{stylesheets/compoonents → lanes/components/grid}/grid.scss +8 -6
  16. data/client/lanes/components/grid/index.js +8 -0
  17. data/client/{javascripts/component → lanes/components}/grid/popover-editor.html +0 -0
  18. data/client/{javascripts/component → lanes/components}/grid/row-editor.html +0 -0
  19. data/client/{javascripts/component/grid.html → lanes/components/grid/template.html} +0 -0
  20. data/client/{javascripts/vendor/dataTables → lanes/components/grid/vendor}/dataTables.bootstrap.js +0 -0
  21. data/client/{javascripts/vendor/dataTables → lanes/components/grid/vendor}/dataTables.scroller.js +0 -0
  22. data/client/{javascripts/vendor/dataTables → lanes/components/grid/vendor}/datatables.responsive.js +0 -0
  23. data/client/{javascripts/vendor/dataTables → lanes/components/grid/vendor}/index.js +0 -0
  24. data/client/{javascripts/vendor/dataTables → lanes/components/grid/vendor}/jquery.dataTables.js +1 -0
  25. data/client/lanes/components/index.js +2 -0
  26. data/client/lanes/components/modal/ModalDialog.coffee +47 -0
  27. data/client/lanes/components/modal/index.js +2 -0
  28. data/client/lanes/components/modal/modal.scss +20 -0
  29. data/client/{javascripts/component/modal.html → lanes/components/modal/template.html} +5 -4
  30. data/client/{javascripts/component → lanes/components/popover}/PopOver.coffee +4 -4
  31. data/client/lanes/components/popover/index.js +2 -0
  32. data/client/lanes/components/popover/popover.scss +1 -0
  33. data/client/{javascripts/component/popover.html → lanes/components/popover/template.html} +0 -0
  34. data/client/{javascripts/component → lanes/components/radio_group}/RadioGroup.coffee +1 -1
  35. data/client/{javascripts/component → lanes/components/record_finder}/RecordFinder.coffee +4 -4
  36. data/client/{javascripts/component/record-finder → lanes/components/record_finder}/clause.skr +0 -0
  37. data/client/{javascripts/component/record-finder → lanes/components/record_finder}/dialog.skr +0 -0
  38. data/client/{javascripts/component/record-finder → lanes/components/record_finder}/field.skr +0 -0
  39. data/client/lanes/components/select_field/SelectField.coffee +87 -0
  40. data/client/{screens/user-management → lanes/components/select_field}/index.js +0 -1
  41. data/client/{javascripts/workspace/tab.html → lanes/components/select_field/select_field.scss} +0 -0
  42. data/client/{javascripts → lanes}/data/Bootstrap.coffee +0 -0
  43. data/client/{javascripts → lanes}/data/ChangeSet.coffee +0 -0
  44. data/client/{javascripts → lanes}/data/Collection.coffee +37 -6
  45. data/client/{javascripts → lanes}/data/Config.coffee +0 -0
  46. data/client/{javascripts → lanes}/data/Model.coffee +8 -9
  47. data/client/{javascripts → lanes}/data/PubSub.coffee +0 -0
  48. data/client/{javascripts → lanes}/data/Query.coffee +0 -0
  49. data/client/{javascripts → lanes}/data/Screens.coffee +48 -19
  50. data/client/{javascripts → lanes}/data/Sync.coffee +5 -5
  51. data/client/lanes/data/User.coffee +46 -0
  52. data/client/{javascripts → lanes}/data/index.js +1 -2
  53. data/client/{javascripts → lanes}/data/mixins/HasCodeField.coffee +1 -1
  54. data/client/{javascripts → lanes}/extension/Base.coffee +1 -1
  55. data/client/lanes/extension/EarlyExtensions.js.erb +3 -0
  56. data/client/{javascripts → lanes}/extension/Extensions.coffee +5 -0
  57. data/client/{javascripts → lanes}/extension/GlAccounts.coffee +0 -0
  58. data/client/lanes/extension/LateLoaded.js.erb +3 -0
  59. data/client/lanes/extension/index.js +5 -0
  60. data/client/lanes/extension/namespace-available.js.erb +3 -0
  61. data/client/lanes/index.js +11 -0
  62. data/client/{javascripts → lanes}/lib/MakeBaseClass.coffee +0 -0
  63. data/client/{javascripts → lanes}/lib/ModuleSupport.coffee +0 -0
  64. data/client/{javascripts → lanes}/lib/Templates.coffee +2 -5
  65. data/{spec/client/foo_spec.js → client/lanes/lib/create-namespace.js} +0 -0
  66. data/client/{javascripts → lanes}/lib/debounce.coffee +0 -0
  67. data/client/{javascripts → lanes}/lib/defer.coffee +0 -0
  68. data/client/{javascripts → lanes}/lib/el.js +0 -0
  69. data/client/{javascripts → lanes}/lib/index.js +0 -4
  70. data/client/{javascripts → lanes}/lib/loader.coffee +15 -10
  71. data/client/{javascripts → lanes}/lib/namespace.coffee +3 -0
  72. data/client/{javascripts → lanes}/lib/noConflict.coffee +1 -0
  73. data/client/{javascripts → lanes}/lib/promise_helpers.coffee +0 -0
  74. data/client/{javascripts → lanes}/lib/results.coffee +0 -0
  75. data/client/{javascripts → lanes}/lib/utilFunctions.coffee +11 -13
  76. data/client/{javascripts → lanes}/plugins/ResizeSensor.js +0 -0
  77. data/client/lanes/plugins/index.js +1 -0
  78. data/client/{javascripts → lanes}/plugins/overlay.coffee +0 -0
  79. data/client/{javascripts → lanes}/plugins/trigger.coffee +0 -0
  80. data/client/lanes/screens/Base.coffee +40 -0
  81. data/client/{javascripts/view/mixins/ScreenChangeListener.coffee → lanes/screens/ChangeListener.coffee} +2 -2
  82. data/client/lanes/screens/Router.coffee +6 -0
  83. data/client/lanes/screens/index.js +1 -0
  84. data/client/{javascripts/view → lanes/screens}/screen-definitions.js.erb +0 -0
  85. data/client/{javascripts → lanes}/vendor/bootstrap/affix.js +43 -23
  86. data/client/{javascripts → lanes}/vendor/bootstrap/alert.js +6 -4
  87. data/client/{javascripts → lanes}/vendor/bootstrap/button.js +16 -10
  88. data/client/{javascripts → lanes}/vendor/bootstrap/carousel.js +27 -10
  89. data/client/{javascripts → lanes}/vendor/bootstrap/collapse.js +69 -28
  90. data/client/{javascripts → lanes}/vendor/bootstrap/dropdown.js +20 -10
  91. data/client/{javascripts → lanes}/vendor/bootstrap/modal.js +67 -23
  92. data/client/{javascripts → lanes}/vendor/bootstrap/popover.js +13 -7
  93. data/client/{javascripts → lanes}/vendor/bootstrap/scrollspy.js +12 -7
  94. data/client/{javascripts → lanes}/vendor/bootstrap/tab.js +41 -16
  95. data/client/{javascripts → lanes}/vendor/bootstrap/tooltip.js +60 -39
  96. data/client/{javascripts → lanes}/vendor/bootstrap/transition.js +1 -1
  97. data/client/{javascripts → lanes}/vendor/jquery-2.js +0 -0
  98. data/client/{javascripts → lanes}/vendor/jquery.tap.js +0 -0
  99. data/client/{javascripts → lanes}/vendor/magicsuggest.js +0 -0
  100. data/client/{javascripts → lanes}/vendor/message-bus.js +0 -0
  101. data/client/lanes/vendor/modern-stack.js +27 -0
  102. data/client/lanes/vendor/packaged.js +13698 -0
  103. data/client/{javascripts/view → lanes/views}/Assets.coffee +1 -1
  104. data/client/lanes/views/Base.coffee +426 -0
  105. data/client/{javascripts/view → lanes/views}/FormBindings.coffee +1 -1
  106. data/client/{javascripts/view → lanes/views}/Functions.coffee +1 -1
  107. data/client/{javascripts/view → lanes/views}/Helpers.coffee +6 -6
  108. data/client/{javascripts/view → lanes/views}/Keys.coffee +3 -3
  109. data/client/{javascripts/view → lanes/views}/ModelObserver.coffee +1 -1
  110. data/client/{javascripts/view → lanes/views}/ModelUpdate.coffee +2 -2
  111. data/client/{javascripts/view → lanes/views}/PubSub.coffee +3 -3
  112. data/client/{javascripts/view → lanes/views}/RenderContext.coffee +1 -1
  113. data/client/{javascripts/view → lanes/views}/SaveNotify.coffee +2 -2
  114. data/client/{javascripts/view → lanes/views}/TimedHighlight.coffee +1 -1
  115. data/client/{javascripts/view → lanes/views}/TimedMask.coffee +1 -1
  116. data/client/{javascripts/view/InterfaceState.coffee → lanes/views/Viewport.coffee} +18 -18
  117. data/client/{javascripts/view → lanes/views}/_button.html +0 -0
  118. data/client/{javascripts/view → lanes/views}/_toolbar.html +0 -0
  119. data/client/lanes/views/index.js +2 -0
  120. data/client/{javascripts/view → lanes/views}/model-update.html +0 -0
  121. data/client/{javascripts → lanes}/workspace/ActiveScreensSwitcher.coffee +23 -27
  122. data/client/{javascripts → lanes}/workspace/Instance.es6 +25 -21
  123. data/client/{javascripts → lanes}/workspace/Layout.coffee +6 -5
  124. data/client/{javascripts → lanes}/workspace/Navbar.coffee +2 -2
  125. data/client/{javascripts → lanes}/workspace/Pages.coffee +9 -13
  126. data/client/{javascripts → lanes}/workspace/ScreensMenu.coffee +11 -11
  127. data/client/{javascripts → lanes}/workspace/index.js +7 -5
  128. data/client/{javascripts → lanes}/workspace/layout.html +0 -0
  129. data/client/{javascripts → lanes}/workspace/menu.html +0 -0
  130. data/client/{javascripts → lanes}/workspace/menu_toggle.html +0 -0
  131. data/client/{javascripts → lanes}/workspace/navbar.html +0 -0
  132. data/client/{javascripts → lanes}/workspace/pages.html +0 -0
  133. data/client/{javascripts → lanes}/workspace/screens-menu.html +0 -0
  134. data/client/{javascripts → lanes}/workspace/screens-switcher.html +0 -0
  135. data/client/lanes/workspace/tab.html +0 -0
  136. data/client/lanes/workspace.scss.erb +21 -0
  137. data/client/{javascripts/lanes-complete.js → lanes-complete.js} +0 -0
  138. data/client/lanes-workspace.scss.erb +21 -0
  139. data/client/{stylesheets/compoonents → styles/components}/all.scss +0 -0
  140. data/client/{stylesheets/compoonents → styles/components}/changes-notification.scss +0 -0
  141. data/client/{stylesheets/compoonents → styles/components}/record-finder.scss +0 -0
  142. data/client/{stylesheets/compoonents → styles/components}/suggest.scss +0 -0
  143. data/client/{stylesheets → styles}/fonts/icomoon.eot +0 -0
  144. data/client/{stylesheets → styles}/fonts/icomoon.svg +0 -0
  145. data/client/{stylesheets → styles}/fonts/icomoon.ttf +0 -0
  146. data/client/{stylesheets → styles}/fonts/icomoon.woff +0 -0
  147. data/client/{stylesheets → styles}/fonts/selection.json +0 -0
  148. data/client/{stylesheets/fonts/style.css → styles/fonts/style.scss} +0 -0
  149. data/client/{stylesheets → styles}/fonts.scss +6 -6
  150. data/client/{stylesheets → styles}/forms.scss +0 -0
  151. data/client/{stylesheets → styles}/index.css +0 -0
  152. data/client/{stylesheets → styles}/keybindings.scss +0 -0
  153. data/client/{stylesheets → styles}/layout.scss +1 -1
  154. data/client/{stylesheets → styles}/plugins/all.scss +0 -0
  155. data/client/{stylesheets → styles}/plugins/overlay.scss +1 -1
  156. data/client/{stylesheets → styles}/plugins/resize-sensor.scss +0 -0
  157. data/client/{stylesheets → styles}/screens.scss +0 -0
  158. data/client/{stylesheets → styles}/tabs.scss +0 -0
  159. data/client/{stylesheets → styles}/vendor/bootstrap/_alerts.scss +0 -0
  160. data/client/styles/vendor/bootstrap/_badges.scss +63 -0
  161. data/client/{stylesheets → styles}/vendor/bootstrap/_breadcrumbs.scss +0 -0
  162. data/client/styles/vendor/bootstrap/_button-groups.scss +243 -0
  163. data/client/styles/vendor/bootstrap/_buttons.scss +160 -0
  164. data/client/styles/vendor/bootstrap/_carousel.scss +267 -0
  165. data/client/{stylesheets → styles}/vendor/bootstrap/_close.scss +0 -0
  166. data/client/styles/vendor/bootstrap/_code.scss +69 -0
  167. data/client/styles/vendor/bootstrap/_component-animations.scss +38 -0
  168. data/client/styles/vendor/bootstrap/_dropdowns.scss +213 -0
  169. data/client/styles/vendor/bootstrap/_forms.scss +548 -0
  170. data/client/styles/vendor/bootstrap/_glyphicons.scss +234 -0
  171. data/client/styles/vendor/bootstrap/_grid.scss +84 -0
  172. data/client/{stylesheets → styles}/vendor/bootstrap/_input-groups.scss +0 -0
  173. data/client/styles/vendor/bootstrap/_jumbotron.scss +49 -0
  174. data/client/{stylesheets → styles}/vendor/bootstrap/_labels.scss +0 -0
  175. data/client/styles/vendor/bootstrap/_list-group.scss +124 -0
  176. data/client/styles/vendor/bootstrap/_media.scss +47 -0
  177. data/client/{stylesheets → styles}/vendor/bootstrap/_mixins.scss +0 -0
  178. data/client/styles/vendor/bootstrap/_modals.scss +148 -0
  179. data/client/styles/vendor/bootstrap/_navbar.scss +662 -0
  180. data/client/styles/vendor/bootstrap/_navs.scss +244 -0
  181. data/client/styles/vendor/bootstrap/_normalize.scss +427 -0
  182. data/client/styles/vendor/bootstrap/_pager.scss +54 -0
  183. data/client/styles/vendor/bootstrap/_pagination.scss +88 -0
  184. data/client/styles/vendor/bootstrap/_panels.scss +261 -0
  185. data/client/styles/vendor/bootstrap/_popovers.scss +135 -0
  186. data/client/styles/vendor/bootstrap/_print.scss +107 -0
  187. data/client/styles/vendor/bootstrap/_progress-bars.scss +87 -0
  188. data/client/styles/vendor/bootstrap/_responsive-embed.scss +35 -0
  189. data/client/{stylesheets → styles}/vendor/bootstrap/_responsive-utilities.scss +0 -0
  190. data/client/styles/vendor/bootstrap/_scaffolding.scss +150 -0
  191. data/client/styles/vendor/bootstrap/_tables.scss +234 -0
  192. data/client/styles/vendor/bootstrap/_theme.scss +272 -0
  193. data/client/styles/vendor/bootstrap/_thumbnails.scss +38 -0
  194. data/client/styles/vendor/bootstrap/_tooltip.scss +103 -0
  195. data/client/styles/vendor/bootstrap/_type.scss +298 -0
  196. data/client/styles/vendor/bootstrap/_utilities.scss +56 -0
  197. data/client/styles/vendor/bootstrap/_variables.scss +864 -0
  198. data/client/{stylesheets → styles}/vendor/bootstrap/_wells.scss +0 -0
  199. data/client/{stylesheets → styles}/vendor/bootstrap/mixins/_alerts.scss +0 -0
  200. data/client/{stylesheets → styles}/vendor/bootstrap/mixins/_background-variant.scss +0 -0
  201. data/client/{stylesheets → styles}/vendor/bootstrap/mixins/_border-radius.scss +0 -0
  202. data/client/styles/vendor/bootstrap/mixins/_buttons.scss +52 -0
  203. data/client/{stylesheets → styles}/vendor/bootstrap/mixins/_center-block.scss +0 -0
  204. data/client/{stylesheets → styles}/vendor/bootstrap/mixins/_clearfix.scss +0 -0
  205. data/client/styles/vendor/bootstrap/mixins/_forms.scss +88 -0
  206. data/client/{stylesheets → styles}/vendor/bootstrap/mixins/_gradients.scss +0 -0
  207. data/client/{stylesheets → styles}/vendor/bootstrap/mixins/_grid-framework.scss +0 -0
  208. data/client/styles/vendor/bootstrap/mixins/_grid.scss +122 -0
  209. data/client/styles/vendor/bootstrap/mixins/_hide-text.scss +21 -0
  210. data/client/styles/vendor/bootstrap/mixins/_image.scss +33 -0
  211. data/client/styles/vendor/bootstrap/mixins/_labels.scss +12 -0
  212. data/client/{stylesheets → styles}/vendor/bootstrap/mixins/_list-group.scss +0 -0
  213. data/client/{stylesheets → styles}/vendor/bootstrap/mixins/_nav-divider.scss +0 -0
  214. data/client/{stylesheets → styles}/vendor/bootstrap/mixins/_nav-vertical-align.scss +0 -0
  215. data/client/{stylesheets → styles}/vendor/bootstrap/mixins/_opacity.scss +0 -0
  216. data/client/{stylesheets → styles}/vendor/bootstrap/mixins/_pagination.scss +0 -0
  217. data/client/{stylesheets → styles}/vendor/bootstrap/mixins/_panels.scss +0 -0
  218. data/client/styles/vendor/bootstrap/mixins/_progress-bar.scss +10 -0
  219. data/client/{stylesheets → styles}/vendor/bootstrap/mixins/_reset-filter.scss +0 -0
  220. data/client/{stylesheets → styles}/vendor/bootstrap/mixins/_resize.scss +0 -0
  221. data/client/{stylesheets → styles}/vendor/bootstrap/mixins/_responsive-visibility.scss +0 -0
  222. data/client/{stylesheets → styles}/vendor/bootstrap/mixins/_size.scss +0 -0
  223. data/client/{stylesheets → styles}/vendor/bootstrap/mixins/_tab-focus.scss +0 -0
  224. data/client/{stylesheets → styles}/vendor/bootstrap/mixins/_table-row.scss +0 -0
  225. data/client/{stylesheets → styles}/vendor/bootstrap/mixins/_text-emphasis.scss +0 -0
  226. data/client/{stylesheets → styles}/vendor/bootstrap/mixins/_text-overflow.scss +0 -0
  227. data/client/styles/vendor/bootstrap/mixins/_vendor-prefixes.scss +222 -0
  228. data/client/styles/vendor/bootstrap/old/_alerts.scss +68 -0
  229. data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_badges.scss +0 -0
  230. data/client/styles/vendor/bootstrap/old/_breadcrumbs.scss +26 -0
  231. data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_button-groups.scss +0 -0
  232. data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_buttons.scss +0 -0
  233. data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_carousel.scss +0 -0
  234. data/client/styles/vendor/bootstrap/old/_close.scss +35 -0
  235. data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_code.scss +0 -0
  236. data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_component-animations.scss +0 -0
  237. data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_dropdowns.scss +0 -0
  238. data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_forms.scss +0 -0
  239. data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_glyphicons.scss +0 -0
  240. data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_grid.scss +0 -0
  241. data/client/styles/vendor/bootstrap/old/_input-groups.scss +166 -0
  242. data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_jumbotron.scss +0 -0
  243. data/client/styles/vendor/bootstrap/old/_labels.scss +66 -0
  244. data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_list-group.scss +0 -0
  245. data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_media.scss +0 -0
  246. data/client/styles/vendor/bootstrap/old/_mixins.scss +39 -0
  247. data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_modals.scss +0 -0
  248. data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_navbar.scss +0 -0
  249. data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_navs.scss +0 -0
  250. data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_normalize.scss +0 -0
  251. data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_pager.scss +0 -0
  252. data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_pagination.scss +0 -0
  253. data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_panels.scss +0 -0
  254. data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_popovers.scss +0 -0
  255. data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_print.scss +0 -0
  256. data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_progress-bars.scss +0 -0
  257. data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_responsive-embed.scss +0 -0
  258. data/client/styles/vendor/bootstrap/old/_responsive-utilities.scss +174 -0
  259. data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_scaffolding.scss +0 -0
  260. data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_tables.scss +0 -0
  261. data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_theme.scss +0 -0
  262. data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_thumbnails.scss +0 -0
  263. data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_tooltip.scss +0 -0
  264. data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_type.scss +0 -0
  265. data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_utilities.scss +0 -0
  266. data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/_variables.scss +0 -0
  267. data/client/styles/vendor/bootstrap/old/_wells.scss +29 -0
  268. data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/bootstrap.scss +0 -0
  269. data/client/styles/vendor/bootstrap/old/mixins/_alerts.scss +14 -0
  270. data/client/styles/vendor/bootstrap/old/mixins/_background-variant.scss +11 -0
  271. data/client/styles/vendor/bootstrap/old/mixins/_border-radius.scss +18 -0
  272. data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/mixins/_buttons.scss +0 -0
  273. data/client/styles/vendor/bootstrap/old/mixins/_center-block.scss +7 -0
  274. data/client/styles/vendor/bootstrap/old/mixins/_clearfix.scss +22 -0
  275. data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/mixins/_forms.scss +0 -0
  276. data/client/styles/vendor/bootstrap/old/mixins/_gradients.scss +58 -0
  277. data/client/styles/vendor/bootstrap/old/mixins/_grid-framework.scss +81 -0
  278. data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/mixins/_grid.scss +0 -0
  279. data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/mixins/_hide-text.scss +0 -0
  280. data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/mixins/_image.scss +0 -0
  281. data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/mixins/_labels.scss +0 -0
  282. data/client/styles/vendor/bootstrap/old/mixins/_list-group.scss +31 -0
  283. data/client/styles/vendor/bootstrap/old/mixins/_nav-divider.scss +10 -0
  284. data/client/styles/vendor/bootstrap/old/mixins/_nav-vertical-align.scss +9 -0
  285. data/client/styles/vendor/bootstrap/old/mixins/_opacity.scss +8 -0
  286. data/client/styles/vendor/bootstrap/old/mixins/_pagination.scss +23 -0
  287. data/client/styles/vendor/bootstrap/old/mixins/_panels.scss +24 -0
  288. data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/mixins/_progress-bar.scss +0 -0
  289. data/client/styles/vendor/bootstrap/old/mixins/_reset-filter.scss +8 -0
  290. data/client/styles/vendor/bootstrap/old/mixins/_resize.scss +6 -0
  291. data/client/styles/vendor/bootstrap/old/mixins/_responsive-visibility.scss +21 -0
  292. data/client/styles/vendor/bootstrap/old/mixins/_size.scss +10 -0
  293. data/client/styles/vendor/bootstrap/old/mixins/_tab-focus.scss +9 -0
  294. data/client/styles/vendor/bootstrap/old/mixins/_table-row.scss +28 -0
  295. data/client/styles/vendor/bootstrap/old/mixins/_text-emphasis.scss +11 -0
  296. data/client/styles/vendor/bootstrap/old/mixins/_text-overflow.scss +8 -0
  297. data/client/{stylesheets/vendor/bootstrap → styles/vendor/bootstrap/old}/mixins/_vendor-prefixes.scss +0 -0
  298. data/client/{stylesheets → styles}/vendor/bootstrap-custom-grid.scss +0 -0
  299. data/client/{stylesheets → styles}/vendor/bootstrap-custom-modals.scss +0 -0
  300. data/client/{stylesheets → styles}/vendor/bootstrap.scss +14 -9
  301. data/client/{stylesheets → styles}/vendor/dataTables.scss +0 -0
  302. data/lanes.gemspec +5 -1
  303. data/lib/lanes/api/controller.rb +47 -6
  304. data/lib/lanes/api/helper_methods.rb +2 -10
  305. data/lib/lanes/api/javascript_processor.rb +17 -7
  306. data/lib/lanes/api/null_authentication_provider.rb +33 -0
  307. data/lib/lanes/api/request_wrapper.rb +49 -28
  308. data/lib/lanes/api/root.rb +12 -30
  309. data/lib/lanes/api/routing.rb +37 -0
  310. data/lib/lanes/api/sprockets_compressor.rb +35 -0
  311. data/lib/lanes/api/sprockets_extension.rb +69 -0
  312. data/lib/lanes/api/test_specs.rb +13 -9
  313. data/lib/lanes/api.rb +2 -18
  314. data/lib/lanes/cli.rb +22 -2
  315. data/lib/lanes/command/app.rb +49 -0
  316. data/lib/lanes/command/client_model_update.rb +65 -0
  317. data/lib/lanes/command/console.rb +20 -0
  318. data/lib/lanes/command/db.rb +33 -0
  319. data/lib/lanes/command/db.usage +1 -0
  320. data/lib/lanes/command/generate.rb +21 -0
  321. data/lib/lanes/command/generate_model.rb +105 -0
  322. data/lib/lanes/command/generate_model.usage +45 -0
  323. data/lib/lanes/command/generate_screen.rb +31 -0
  324. data/lib/lanes/command/generate_screen.usage +11 -0
  325. data/lib/lanes/command/generate_view.rb +22 -0
  326. data/lib/lanes/command/generate_view.usage +13 -0
  327. data/lib/lanes/command/model_attribute.rb +188 -0
  328. data/lib/lanes/command/named_command.rb +27 -0
  329. data/lib/lanes/command/server.rb +19 -0
  330. data/lib/lanes/command/server.usage +3 -0
  331. data/lib/lanes/command/templates/Gemfile +10 -0
  332. data/lib/lanes/{generators/app → command/templates}/Guardfile +0 -0
  333. data/lib/lanes/command/templates/Rakefile +2 -0
  334. data/lib/lanes/command/templates/client/Extension.coffee +5 -0
  335. data/lib/lanes/command/templates/client/components/.gitkeep +0 -0
  336. data/lib/lanes/command/templates/client/components/Component.coffee +1 -0
  337. data/lib/lanes/command/templates/client/data/Model.coffee +24 -0
  338. data/lib/lanes/command/templates/client/namespace-extension.js +17 -0
  339. data/lib/lanes/command/templates/client/screens/Screen.coffee +9 -0
  340. data/lib/lanes/command/templates/client/screens/index.js +5 -0
  341. data/lib/lanes/command/templates/client/screens/layout.html +3 -0
  342. data/lib/lanes/command/templates/client/screens/styles.scss +9 -0
  343. data/lib/lanes/command/templates/client/styles/styles.scss +1 -0
  344. data/lib/lanes/command/templates/client/views/.gitkeep +0 -0
  345. data/lib/lanes/command/templates/client/views/View.coffee +9 -0
  346. data/lib/lanes/command/templates/client/views/template.html +3 -0
  347. data/lib/lanes/{generators/app → command/templates}/config/database.yml +0 -0
  348. data/lib/lanes/command/templates/config/lanes.rb +7 -0
  349. data/lib/lanes/command/templates/config/routes.rb +2 -0
  350. data/lib/lanes/{generators/app → command/templates}/config.ru +1 -0
  351. data/lib/lanes/command/templates/db/create_table_migration.rb +19 -0
  352. data/lib/lanes/command/templates/gitignore +1 -0
  353. data/lib/lanes/command/templates/lib/namespace/extension.rb +13 -0
  354. data/lib/lanes/command/templates/lib/namespace/model.rb +7 -0
  355. data/lib/lanes/command/templates/lib/namespace/screen.rb +17 -0
  356. data/lib/lanes/command/templates/lib/namespace/version.rb +3 -0
  357. data/lib/lanes/command/templates/lib/namespace.rb +12 -0
  358. data/lib/lanes/command/templates/spec/client/data/ModelSpec.coffee +5 -0
  359. data/lib/lanes/command/templates/spec/client/views/ViewSpec.coffee +5 -0
  360. data/lib/lanes/command/templates/spec/fixtures/namespace/model.yml +16 -0
  361. data/lib/lanes/command/templates/spec/namespace/model_spec.rb +10 -0
  362. data/lib/lanes/command/templates/spec/spec_helper.rb +15 -0
  363. data/lib/lanes/command/update.rb +13 -0
  364. data/lib/lanes/command/update_model.rb +125 -0
  365. data/lib/lanes/command/update_model.usage +2 -0
  366. data/lib/lanes/command.rb +37 -0
  367. data/lib/lanes/components.rb +45 -0
  368. data/lib/lanes/concerns/set_attribute_data.rb +2 -2
  369. data/lib/lanes/configuration.rb +3 -3
  370. data/lib/lanes/db.rb +5 -39
  371. data/lib/lanes/extension.rb +64 -19
  372. data/lib/lanes/guard_tasks.rb +7 -5
  373. data/lib/lanes/rake_tasks.rb +47 -0
  374. data/lib/lanes/screens.rb +1 -48
  375. data/{spec → lib/lanes}/spec_helper.rb +0 -0
  376. data/lib/lanes/version.rb +1 -1
  377. data/lib/lanes.rb +1 -3
  378. data/npm-build/compile.coffee +1 -1
  379. data/npm-build/package.json +5 -5
  380. data/npm-build/template.js +13 -13
  381. data/spec/api/javascript_processor_spec.rb +1 -1
  382. data/spec/client/view/BaseSpec.coffee +166 -0
  383. data/spec/helpers/jasmine-jquery.js +813 -0
  384. data/spec/helpers/jasmine-matchers.js +1586 -0
  385. data/tasks/migrations.rake +1 -1
  386. data/views/index.erb +9 -13
  387. metadata +419 -268
  388. data/client/javascripts/component/ModalDialog.coffee +0 -44
  389. data/client/javascripts/component/SelectField.coffee +0 -43
  390. data/client/javascripts/component/TaggedField.coffee +0 -27
  391. data/client/javascripts/component/index.js +0 -5
  392. data/client/javascripts/data/Roles.coffee +0 -91
  393. data/client/javascripts/data/User.coffee +0 -70
  394. data/client/javascripts/extension/index.js +0 -6
  395. data/client/javascripts/extension/load.js.erb +0 -3
  396. data/client/javascripts/lanes-workspace.js +0 -1
  397. data/client/javascripts/lib/underscore.inflection.js +0 -210
  398. data/client/javascripts/plugins/index.js +0 -4
  399. data/client/javascripts/vendor/modern-stack.js +0 -14
  400. data/client/javascripts/vendor/packaged.js +0 -13769
  401. data/client/javascripts/view/Base.coffee +0 -231
  402. data/client/javascripts/view/Screen.coffee +0 -30
  403. data/client/javascripts/view/index.js +0 -10
  404. data/client/javascripts/workspace/LoginDialog.coffee +0 -33
  405. data/client/javascripts/workspace/login-dialog.html +0 -16
  406. data/client/screens/user-management/UserEditScreen.coffee +0 -21
  407. data/client/screens/user-management/UserManagement.coffee +0 -24
  408. data/client/screens/user-management/grid-popover-editor.html +0 -33
  409. data/client/screens/user-management/index.css +0 -4
  410. data/client/screens/user-management/user-management-styles.scss +0 -7
  411. data/client/screens/user-management/user-management.html +0 -8
  412. data/client/stylesheets/compoonents/modal-dialog.scss +0 -23
  413. data/client/stylesheets/lanes-workspace.scss +0 -17
  414. data/config/puma.rb +0 -7
  415. data/db/seed.rb +0 -37
  416. data/foo/Gemfile +0 -5
  417. data/foo/Guardfile +0 -13
  418. data/foo/foo/Gemfile +0 -5
  419. data/foo/foo/lib/foo.rb +0 -7
  420. data/foo/lib/foo/version.rb +0 -3
  421. data/foo/lib/foo.rb +0 -8
  422. data/lib/lanes/access/locked_fields.rb +0 -43
  423. data/lib/lanes/access/role.rb +0 -58
  424. data/lib/lanes/access/role_collection.rb +0 -75
  425. data/lib/lanes/access/roles/administrator.rb +0 -25
  426. data/lib/lanes/access/roles/support.rb +0 -13
  427. data/lib/lanes/access/user_maint_screen.rb +0 -32
  428. data/lib/lanes/access.rb +0 -50
  429. data/lib/lanes/api/asset_pipeline.rb +0 -59
  430. data/lib/lanes/api/authentication_helper.rb +0 -21
  431. data/lib/lanes/api/authentication_provider.rb +0 -45
  432. data/lib/lanes/api/default_routes.rb +0 -35
  433. data/lib/lanes/api/skr_templates.rb +0 -60
  434. data/lib/lanes/concerns/track_modifications.rb +0 -51
  435. data/lib/lanes/db/seed.rb +0 -27
  436. data/lib/lanes/generators/app/Gemfile +0 -5
  437. data/lib/lanes/generators/app/Rakefile +0 -9
  438. data/lib/lanes/generators/app/lib/main_class/version.rb +0 -3
  439. data/lib/lanes/generators/app/lib/main_class.rb +0 -8
  440. data/lib/lanes/generators/app.rb +0 -36
  441. data/lib/lanes/user.rb +0 -127
  442. data/spec/client/component/ChoicesInputSpec.coffee +0 -12
  443. data/spec/client/component/foo_spec.coffee +0 -4
  444. data/spec/client/support/jasmine.yml +0 -128
  445. data/spec/client/support/jasmine_helper.rb +0 -15
  446. data/spec/helpers/SpecHelper.js +0 -18
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 41bcbe3635fa651f4d328c6c9d3dc14c267a37b5
4
- data.tar.gz: e9180ffbee013255fbb75a11f689f6923535a42a
3
+ metadata.gz: 9103ba1713d2bda09e56196a703bf4f6641c4580
4
+ data.tar.gz: d4126f48d2d374e4323c2dccfdba535894082956
5
5
  SHA512:
6
- metadata.gz: 3f32416a466e17a5c0ad6be69399461f9eb0b57e222cd7a07ee292f7b967ef3d09cad020fd852429d4d18fda2d34c441fc8880b70754d81a2f21ca462341c392
7
- data.tar.gz: 39df407261c4ef0189a3ce9808b4d41330d90aebed86cb77682366cd1c8e17072880c67b37e7b9f8d2fca6dc7789187d5259069583804fe82bd4fa43c6eb31ae
6
+ metadata.gz: aad53b38768c367f155369608fdde18d4a34b6bd52da1e93a9d39a593885b08c8066a295ad69a3b908251c7c933c65cdd6a65d75e8a4440b3578b681139370c5
7
+ data.tar.gz: ce087ff038a83b5ec978aaa7edc39f1c10c31ed153d43c9e6ecaff7d358985720c63446c634505f61d2c5a075471f0904729e3a6aa17221492aa0bcb3ade7bf2
data/.gitignore CHANGED
@@ -8,6 +8,7 @@ InstalledFiles
8
8
  coverage
9
9
  doc/
10
10
  log/
11
+ public
11
12
  lib/bundler/man
12
13
  pkg
13
14
  rdoc
data/Gemfile CHANGED
@@ -2,7 +2,7 @@ source 'https://rubygems.org'
2
2
 
3
3
  gem "yard-activerecord", github: 'nathanstitt/yard-activerecord', branch: 'develop'
4
4
  gem "active_record_mocks", github: 'envygeeks/active_record_mocks', branch: 'master'
5
- gem "guard-jasmine", github: "guard/guard-jasmine", branch: 'jasmine-2'
5
+ gem "guard-jasmine", github: "guard/guard-jasmine", branch: 'master'
6
6
 
7
7
  gem 'puma'
8
8
 
data/Rakefile CHANGED
@@ -23,20 +23,6 @@ YARD::Rake::YardocTask.new do |t|
23
23
  end
24
24
 
25
25
 
26
- desc "Open an irb session preloaded with skr-core"
27
- task :console do
28
- require 'irb'
29
- require 'irb/completion'
30
- require 'pp'
31
- require 'lanes'
32
- include Lanes
33
- Lanes::DB.establish_connection
34
- ActiveRecord::Base.logger = Logger.new STDOUT
35
- ARGV.clear
36
- IRB.start
37
- end
38
-
39
-
40
26
  task :doc => 'db:environment' do
41
27
  env = ENV['RAILS_ENV'] || 'development'
42
28
  ENV['SCHEMA'] = 'db/schema.rb'
@@ -44,31 +30,3 @@ task :doc => 'db:environment' do
44
30
  Rake::Task["db:schema:dump"].invoke
45
31
  Rake::Task["yard"].invoke
46
32
  end
47
-
48
-
49
- task :guard => [ 'db:migrate', 'db:test:clone_structure' ] do
50
- # NAS: I've never figured out how to run Guard from a rake task
51
- # Guard.setup
52
- # Guard.run_all
53
- # ^ this will work but only runs the task once
54
- # and doesn't listen for changes. Which kinda defeats the purpose
55
- # For now just shell out until I can figure it out
56
- sh "bundle exec guard"
57
- end
58
-
59
- args = ['-F','config/puma.rb']
60
-
61
- task :dev do
62
- args.push('start')
63
- Puma::ControlCLI.new(args).run
64
- end
65
-
66
- # require 'jasmine'
67
- # load 'jasmine/tasks/jasmine.rake'
68
-
69
-
70
- task :testj do
71
- require 'lanes/api'
72
- Lanes.config.specs_root = Pathname.getwd
73
-
74
- end
@@ -4,7 +4,7 @@ class BaseComponent
4
4
  super
5
5
  @access ||= this.calculate_access()
6
6
 
7
- namespace: "Component"
7
+ namespace: "Components"
8
8
 
9
9
  session:
10
10
  access:
@@ -19,21 +19,21 @@ class BaseComponent
19
19
  writeTemplate: -> @renderTemplateMethod('template')
20
20
  emptyTemplate: -> '<span></span>'
21
21
 
22
- template: (scope)->
23
- if scope.writeAble
24
- scope.writeTemplate()
25
- else if scope.readOnly
26
- scope.readTemplate()
22
+ template: ->
23
+ if this.writeAble
24
+ this.writeTemplate()
25
+ else if this.readOnly
26
+ this.readTemplate()
27
27
  else
28
- scope.emptyTemplate()
28
+ this.emptyTemplate()
29
29
 
30
30
  calculate_access:->
31
- if ! @field_name || Lanes.View.RenderContext.canWrite(@field_name)
31
+ if ! @field_name || Lanes.Views.RenderContext.canWrite(@field_name)
32
32
  'write'
33
- else if Lanes.View.RenderContext.canRead(@field_name)
33
+ else if Lanes.Views.RenderContext.canRead(@field_name)
34
34
  'read'
35
35
  else
36
36
  'none'
37
37
 
38
38
 
39
- Lanes.Component.Base = Lanes.View.Base.extend(BaseComponent)
39
+ Lanes.Components.Base = Lanes.Views.Base.extend(BaseComponent)
@@ -0,0 +1,3 @@
1
+ <% Lanes::Components.enabled_with_dependencies(self) do | component |
2
+ require_asset "components/#{component}"
3
+ end %>
@@ -1,4 +1,4 @@
1
- class Lanes.Component.Grid.Editor extends Lanes.Component.Base
1
+ class Lanes.Components.Grid.Editor extends Lanes.Components.Base
2
2
 
3
3
  session:
4
4
  grid: 'object' # n.b. - not 'state'. Doing so causes stack overflow since grid also has a 'editor' session var
@@ -7,35 +7,32 @@ class Lanes.Component.Grid.Editor extends Lanes.Component.Base
7
7
  'click .save': 'saveChanges'
8
8
  'click .cancel': 'cancelEditing'
9
9
 
10
+ ui:
11
+ form: 'form'
12
+
10
13
  constructor: (config)->
11
14
  super
12
15
  this.grid = this.parent
13
16
 
14
17
  move: (row)->
15
18
  if @row
16
- @grid.fireEvent('cancel-edit',@row)
19
+ this.$el.trigger('cancel-edit',@row)
17
20
  @row=row
18
21
  @model = this.grid.modelForRow(@row)
19
22
  this.render() unless this.rendered
20
23
  this.grid.$('.dataTables_scrollBody').append(this.el)
21
24
  this.updateFields()
22
25
 
23
- render: ->
24
- super
25
- this.cacheJqElements({
26
- form: 'form'
27
- })
28
-
29
26
  updateFields: ->
30
27
  for input, index in this.$('input')
31
28
  if definition = this.getColumn(input.name)
32
- _.dom.setAttribute(input, 'value', this.model.get(definition.field) )
29
+ Lanes.dom.setAttribute(input, 'value', this.model.get(definition.field) )
33
30
  this.$('input').first().focus()
34
31
 
35
32
  persistFields: ->
36
33
  for input, index in this.$('input')
37
34
  if definition = this.getColumn(input.name)
38
- @model.set( definition.field, _.dom.getAttribute(input,'value') )
35
+ @model.set( definition.field, Lanes.dom.getAttribute(input,'value') )
39
36
 
40
37
  getColumn: (name)->
41
38
  _.findWhere(this.grid.column_definitions, { field: name })
@@ -45,12 +42,12 @@ class Lanes.Component.Grid.Editor extends Lanes.Component.Base
45
42
  @model.save().then => @updateGridRow()
46
43
 
47
44
  updateGridRow: ->
48
- @grid.fireEvent('row-updated', @row)
45
+ this.$el.trigger('row-updated', @row)
49
46
  @grid.updateRow(@row,@model)
50
47
  this.cancelEditing()
51
48
 
52
49
  cancelEditing: ->
53
- @grid.fireEvent('cancel-edit', @row)
50
+ this.$el.trigger('cancel-edit',@row)
54
51
  this.detach()
55
52
  this.model = null
56
53
 
@@ -60,6 +57,6 @@ class Lanes.Component.Grid.Editor extends Lanes.Component.Base
60
57
  @cancelEditing()
61
58
 
62
59
  fields: ->
63
- _.map(this.form.children(), (input,index)->
60
+ _.map(this.ui.form.children(), (input,index)->
64
61
  { index: index, input: Lanes.$(input), column: this.grid.column_definitions[index] }
65
62
  ,this)
@@ -7,7 +7,7 @@ _.extend( Lanes.$.fn.dataTableExt.oStdClasses,{
7
7
  })
8
8
 
9
9
 
10
- class Lanes.Component.Grid extends Lanes.Component.Base
10
+ class Lanes.Components.Grid extends Lanes.Components.Base
11
11
 
12
12
  events:
13
13
  'click button.refresh': 'reload'
@@ -17,7 +17,7 @@ class Lanes.Component.Grid extends Lanes.Component.Base
17
17
  'cancel-edit': 'onCancelEdit'
18
18
  'order.dt table': 'onSort'
19
19
 
20
- templateName: 'grid'
20
+ template: 'grid/template'
21
21
  templateData: ->
22
22
  data = { grid: this, buttons: ['refresh'] }
23
23
  data['buttons'].push('create') if @add_records
@@ -46,7 +46,7 @@ class Lanes.Component.Grid extends Lanes.Component.Base
46
46
  editing_controller: 'any' # either string or constructor fn
47
47
 
48
48
  initialize: (options)->
49
- this.listenTo(this.ui,'change:screen_menu_size', this.delayedWidthReset)
49
+ this.listenTo(this.viewport,'change:screen_menu_size', this.delayedWidthReset)
50
50
 
51
51
  unless Lanes.current_user.canWrite(this.model_class)
52
52
  this.edit_records = false
@@ -74,7 +74,7 @@ class Lanes.Component.Grid extends Lanes.Component.Base
74
74
  @dt_api.ajax.reload()
75
75
 
76
76
  unselect: (row)->
77
- @fireEvent('unselect-row', @modelForRow(row), {row:row} )
77
+ this.$el.trigger('unselect-row', [@modelForRow(row), {row:row}])
78
78
  row.removeClass('active')
79
79
 
80
80
  beginEdit: (row,ev)->
@@ -118,7 +118,7 @@ class Lanes.Component.Grid extends Lanes.Component.Base
118
118
  this.unselect(row)
119
119
  else
120
120
  row.addClass('active')
121
- @fireEvent('select-row', {model:model, row:row} ) if model = this.modelForRow(row)
121
+ this.$el.trigger('select-row', {model:model, row:row} ) if model = this.modelForRow(row)
122
122
 
123
123
  updateRow: (row, model)->
124
124
  row.attr('id', model.id)
@@ -160,7 +160,7 @@ class Lanes.Component.Grid extends Lanes.Component.Base
160
160
  oScroller: { loadingIndicator: true }
161
161
  # columnDefs: @column_definitions
162
162
  ajax:
163
- url: @record_query.url
163
+ url: @record_query.url + ".json"
164
164
  data: (d)=>@buildData(d)
165
165
  dataSrc: (d)->
166
166
  d.recordsFiltered = d.recordsTotal = d.total
@@ -1,6 +1,6 @@
1
- class Lanes.Component.Grid.PopOverEditor extends Lanes.Component.Grid.Editor
1
+ class Lanes.Components.Grid.PopOverEditor extends Lanes.Components.Grid.Editor
2
2
 
3
- templateName: 'grid/popover-editor'
3
+ template: 'grid/popover-editor'
4
4
  templateData: ->
5
5
  { columns: this.grid.column_definitions }
6
6
 
@@ -12,7 +12,7 @@ class Lanes.Component.Grid.PopOverEditor extends Lanes.Component.Grid.Editor
12
12
  super
13
13
  if @popover
14
14
  @popover.destroy()
15
- @popover = new Lanes.Component.PopOver({
15
+ @popover = new Lanes.Components.PopOver({
16
16
  parent: this
17
17
  className: 'grid-popover-editor'
18
18
  target: Lanes.$(ev.target)
@@ -1,7 +1,6 @@
1
- class Lanes.Component.Grid.RowEditor extends Lanes.Component.Grid.Editor
1
+ class Lanes.Components.Grid.RowEditor extends Lanes.Components.Grid.Editor
2
2
 
3
-
4
- templateName: 'grid/row-editor'
3
+ template: 'grid/row-editor'
5
4
 
6
5
  move: (row)->
7
6
  super
@@ -0,0 +1,3 @@
1
+ {
2
+ "depends": ["popover"]
3
+ }
@@ -1,3 +1,5 @@
1
+ @import "editors";
2
+
1
3
  .lanes-grid {
2
4
 
3
5
  clear: both;
@@ -25,7 +27,7 @@
25
27
  padding-top: 20px;
26
28
  text-align: center;
27
29
  font-size: 1.2em;
28
- background:url(asset_path('ajax-loader.gif')) no-repeat scroll 40% 7px $body-bg;
30
+ background:url(asset_path('images/ajax-loader.gif')) no-repeat scroll 40% 7px $body-bg;
29
31
  }
30
32
 
31
33
 
@@ -85,12 +87,12 @@
85
87
  cursor: pointer;
86
88
  }
87
89
 
88
- thead .sorting { background: url(image-path('dataTables/sort_both.png')) no-repeat center right; }
89
- thead .sorting_asc { background: url(image-path('dataTables/sort_asc.png')) no-repeat center right; }
90
- thead .sorting_desc { background: url(image-path('dataTables/sort_desc.png')) no-repeat center right; }
90
+ thead .sorting { background: url(image-path('images/dataTables/sort_both.png')) no-repeat center right; }
91
+ thead .sorting_asc { background: url(image-path('images/dataTables/sort_asc.png')) no-repeat center right; }
92
+ thead .sorting_desc { background: url(image-path('images/dataTables/sort_desc.png')) no-repeat center right; }
91
93
 
92
- thead .sorting_asc_disabled { background: url(image-path('dataTables/sort_asc_disabled.png')) no-repeat center right; }
93
- thead .sorting_desc_disabled { background: url(image-path('dataTables/sort_desc_disabled.png')) no-repeat center right; }
94
+ thead .sorting_asc_disabled { background: url(image-path('images/dataTables/sort_asc_disabled.png')) no-repeat center right; }
95
+ thead .sorting_desc_disabled { background: url(image-path('images/dataTables/sort_desc_disabled.png')) no-repeat center right; }
94
96
 
95
97
  thead > tr > th {
96
98
  padding-left: 18px;
@@ -0,0 +1,8 @@
1
+ //= require ./template
2
+ //= require ./row-editor
3
+ //= require ./popover-editor
4
+ //= require ./vendor
5
+ //= require ./Grid
6
+ //= require ./Editor
7
+ //= require ./PopOverEditor
8
+ //= require ./RowEditor
@@ -38,6 +38,7 @@
38
38
  factory( require( 'jquery' ) );
39
39
  }
40
40
  else if ( jQuery && !jQuery.fn.dataTable ) {
41
+
41
42
  // Define using browser globals otherwise
42
43
  // Prevent multiple instantiations if the script is loaded twice
43
44
  factory( jQuery );
@@ -0,0 +1,2 @@
1
+ //= require ./Base
2
+ //= require ./enabled
@@ -0,0 +1,47 @@
1
+ class Lanes.Components.ModalDialog extends Lanes.Components.Base
2
+
3
+ events:
4
+ 'hide.bs.modal': '_onHide'
5
+
6
+ bindings:
7
+ 'viewport.layout_size': { type:'class',selector:'.modal-dialog'}
8
+ 'viewport.layout_size': { selector: '.modal', type: 'class' }
9
+
10
+ buttons:
11
+ close: { label: 'Close', type: 'default', dismiss: true }
12
+
13
+ session:
14
+ dialog_title: 'string'
15
+
16
+ toggleShown: (show)->
17
+ if show then this.show() else this.hide()
18
+
19
+ template: ->
20
+ tmpl = Lanes.Templates.find('modal/template', this.namespace)
21
+ tmpl({
22
+ size : @size || 'lg'
23
+ title : @title || context.dialog_title
24
+ body : this.renderTemplateMethod('bodyTemplate')
25
+ buttons : @buttons
26
+ })
27
+
28
+ hide:->
29
+ this.$el.modal('hide')
30
+ _.Promise.resolve( this )
31
+
32
+ show: ->
33
+ if this.rendered
34
+ this.viewport.el.append(this.el)
35
+ this.$el.modal('show')
36
+ else
37
+ this.render()
38
+ this.$el.modal({ body: this.viewport.el })
39
+ this.notification = new _.DeferredPromise
40
+ return this.notification.promise
41
+
42
+ destroy: ->
43
+ this.detach()
44
+
45
+ _onHide: (ev)->
46
+ this.detach()
47
+ this.notification.resolve(this)
@@ -0,0 +1,2 @@
1
+ //= require vendor/bootstrap/modal
2
+ //= require_tree .
@@ -0,0 +1,20 @@
1
+ @import "styles/vendor/bootstrap/modals";
2
+
3
+ .modal-backdrop{
4
+ position: absolute;
5
+ }
6
+
7
+
8
+ // Use our sizing detection instead of media-queries
9
+
10
+ .modal {
11
+
12
+ &.md{
13
+ .modal-lg {
14
+ right: 5%;
15
+ width: 100%;
16
+ left: 5%;
17
+ }
18
+ }
19
+
20
+ }
@@ -1,3 +1,4 @@
1
+ <div class="modal fade" role="dialog">
1
2
  <div class="modal-dialog modal-<%= @size %>">
2
3
  <div class="modal-content">
3
4
  <div class="modal-header">
@@ -5,12 +6,12 @@
5
6
  <h4 class="modal-title" id="myModalLabel"><%= @title %></h4>
6
7
  </div>
7
8
  <div class="modal-body">
8
- <%- @body %>
9
+ <%- @body %>
9
10
  </div>
10
11
  <div class="modal-footer">
11
- <% for name, opts of @buttons: %>
12
- <button type="button" name="<%= name %>" class="btn btn-<%= opts.type %>" <%='data-dismiss=modal' if opts.dismiss %>><%= opts.label %></button>
13
- <% end %>
12
+ <% for name, opts of @buttons: %>
13
+ <button type="button" name="<%= name %>" class="btn btn-<%= opts.type %>" <%='data-dismiss=modal' if opts.dismiss %>><%= opts.label %></button>
14
+ <% end %>
14
15
  <!-- <button type="button" class="btn btn-primary">Save changes</button> -->
15
16
  </div>
16
17
  </div>
@@ -1,4 +1,4 @@
1
- class Lanes.Component.PopOver extends Lanes.Component.Base
1
+ class Lanes.Components.PopOver extends Lanes.Components.Base
2
2
 
3
3
  events:
4
4
  'hide.bs.popover': '_onHide'
@@ -26,8 +26,8 @@ class Lanes.Component.PopOver extends Lanes.Component.Base
26
26
  Lanes.warn "PopOver Template #{this.template} was not found"
27
27
 
28
28
  initialize: (options)->
29
- template = Lanes.Templates.find('component/popover')({ className: options.className||'' })
30
- _.extend(options, this.options, {template: template, container: this.ui?.viewport})
29
+ template = Lanes.Templates.find('components/popover/template')({ className: options.className||'' })
30
+ _.extend(options, this.options, {template: template, container: this.viewport?.root})
31
31
  this.target.popover(options).on("hide.bs.popover", _.bind(this._onHide, this) )
32
32
  this.show() if options.autoShow
33
33
 
@@ -36,7 +36,7 @@ class Lanes.Component.PopOver extends Lanes.Component.Base
36
36
 
37
37
  show: ->
38
38
  this.target.popover('show')
39
- this.notification = new Lanes.Deferred
39
+ this.notification = new _.DeferredPromise
40
40
  return this.notification.promise
41
41
 
42
42
  destroy: ->
@@ -0,0 +1,2 @@
1
+ //= require vendor/bootstrap/popover
2
+ //= require_tree .
@@ -0,0 +1 @@
1
+ @import "styles/vendor/bootstrap/popovers";
@@ -15,7 +15,7 @@ class RadioInput
15
15
  super
16
16
 
17
17
 
18
- Lanes.View.Base.extend(RadioInput)
18
+ Lanes.Views.Base.extend(RadioInput)
19
19
 
20
20
 
21
21
  class RadioGroup
@@ -1,7 +1,7 @@
1
1
  class FinderClause
2
2
  constructor: -> super
3
3
 
4
- templateName: 'record-finder/clause'
4
+ template: 'record-finder/clause'
5
5
 
6
6
  initialize: ->
7
7
  window.fc = this.model
@@ -102,7 +102,7 @@ Lanes.Component.ModalDialog.extend(FinderDialog)
102
102
 
103
103
  class RecordFinder
104
104
  constructor: -> super
105
- templateName: 'record-finder/field'
105
+ template: 'record-finder/field'
106
106
  templateData: -> { field_name: @record_query.initial_field }
107
107
 
108
108
  events:
@@ -125,7 +125,7 @@ class RecordFinder
125
125
  ).then( (record)=>
126
126
  record.withAssociations(@.includeAssociations...) if record
127
127
  ).then( (record)=>
128
- @.fireEvent("display-record", record) if record
128
+ this.$el.trigger("display-record", record) if record
129
129
  , (e)->Lanes.warn(e) )
130
130
 
131
131
  onKey: (ev)->
@@ -138,6 +138,6 @@ class RecordFinder
138
138
  runQuery: (ev)->
139
139
  code = this.$(ev.target).val()
140
140
  @record_query.loadSingle(code.toUpperCase(),{ include: @includeAssociations })
141
- .then( (reply)=> @fireEvent("display-record", reply.record) if reply.record )
141
+ .then( (reply)=> this.$el.trigger("display-record", reply.record) if reply.record )
142
142
 
143
143
  Lanes.Component.RecordFinder = Lanes.Component.Base.extend(RecordFinder)
@@ -0,0 +1,87 @@
1
+ class SelectOption extends Lanes.Views.Base
2
+ template: (scope)->
3
+ '<option></option>'
4
+
5
+ constructor: (options)->
6
+ @groupName=options.groupName
7
+ m = options.mappings
8
+ @bindings = {}
9
+ @bindings["model.#{m.id}"] = { type: 'value', selector: 'option' }
10
+ @bindings["model.#{m.selected}"] = { type: 'booleanAttribute', selector: 'option', name:'selected' }
11
+ @bindings["model.#{m.title}"] = 'option'
12
+ @bindings["model.#{m.visible}"] = { type: 'toggle' } if m.visible
13
+ super
14
+
15
+
16
+ class Lanes.Components.SelectField extends Lanes.Components.Base
17
+
18
+ subviews:
19
+ fields:
20
+ hook: 'choices-input'
21
+ collection: 'selections'
22
+ options: 'subViewOptions'
23
+ view: SelectOption
24
+
25
+ session:
26
+ multiple: { type: 'boolean', default: false }
27
+ selections: 'collection'
28
+
29
+ subViewOptions: ->
30
+ { field_name: @field_name, mappings: @mappings }
31
+
32
+ constructor: (options={})->
33
+ if options.has_many
34
+ @association = options.model.associations[options.has_many]
35
+ @field_name = @association.fk
36
+ else
37
+ @field_name = options.field_name || options.subViewId
38
+
39
+ @mappings = _.extend({
40
+ id: 'id', title: 'title', selected: 'selected'
41
+ },options.mappings||{})
42
+ super
43
+
44
+
45
+ initialize: (options={})->
46
+ if @association
47
+ collection = Lanes.Data[@association.model].sharedCollection()
48
+ collection.fetch().then (m)=>
49
+ @selections = m
50
+ this.on('change:model', this.onModelChange )
51
+ else if options.data
52
+ @selections = options.data
53
+
54
+ selectionForID: (id)->
55
+ q={}; q[@mappings.id]=id
56
+ @selections.findWhere( q )
57
+
58
+ onAttributeChange: (model,fkid)->
59
+ this.select( this.selectionForID( fkid ) )
60
+
61
+ onModelChange: ->
62
+ if (old_model = this.previousAttributes()['model'])
63
+ this.stopListening(old_model,"change:#{@association.fk}", this.onAttributeChange )
64
+ this.listenTo(@model,"change:#{@association.fk}", this.onAttributeChange )
65
+ fk_id = @model.get( @association.fk )
66
+ record = if fk_id
67
+ this.selectionForID( fk_id )
68
+ else
69
+ @model[@association.name]
70
+ this.select(record)
71
+
72
+ writeTemplate: ->
73
+ multiple = if this.multiple then "multiple" else ""
74
+ "<select class='form-control' #{multiple} name='#{this.field_name}' data-hook='choices-input'></select>"
75
+
76
+ readTemplate: ->
77
+ "<div class='ro-input' name='#{this.field_name}'></div>"
78
+
79
+ select: (option)->
80
+ if this.readOnly
81
+ this.$el.text( if option then option.code else "" )
82
+ else if option
83
+ id = option.get(@mappings.id)
84
+ option = this.query("option[value=\"#{id}\"]")
85
+ option.selected = true
86
+ else
87
+ this.$el.find(":selected").prop('selected',false)
@@ -1,2 +1 @@
1
- //= require_self
2
1
  //= require_tree .
File without changes
File without changes