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
@@ -1,44 +0,0 @@
1
- class Lanes.Component.ModalDialog extends Lanes.Component.Base
2
-
3
- events:
4
- 'hide.bs.modal': '_onHide'
5
-
6
- bindings:
7
- 'ui.layout_size': { type:'class',selector:'.modal-dialog'}
8
-
9
- buttons:
10
- close: { label: 'Close', type: 'default', dismiss: true }
11
-
12
- session:
13
- dialog_title: 'string'
14
-
15
- initialize: (options)->
16
- super
17
-
18
- toggleShown: (show)->
19
- if show then this.show() else this.hide()
20
-
21
- template: (context)->
22
- tmpl = Lanes.Templates.find('modal', context.namespace)
23
- tmpl({
24
- size : context.size || 'lg'
25
- title : context.title || context.dialog_title
26
- body : context.renderTemplateMethod('bodyTemplate')
27
- buttons : context.buttons
28
- })
29
-
30
- hide:->
31
- this.$el.modal('hide')
32
- Lanes.Promise.resolve( this )
33
-
34
- show: ->
35
- this.render()
36
- this.$el.modal({ body: this.ui.viewport })
37
- this.notification = new Lanes.Deferred
38
- return this.notification.promise
39
-
40
- destroy: ->
41
- this.detach()
42
-
43
- _onHide: (ev)->
44
- this.notification.resolve(this)
@@ -1,43 +0,0 @@
1
- class SelectOption extends Lanes.View.Base
2
- template: (scope)->
3
- '<option></option>'
4
-
5
- constructor: (options)->
6
- @groupName=options.groupName
7
- m = options.mappings
8
- @bindings = {}
9
- @bindings["model.#{m.id}"] = { type: 'value', selector: 'option' }
10
- @bindings["model.#{m.selected}"] = { type: 'booleanAttribute', selector: 'option', name:'selected' }
11
- @bindings["model.#{m.title}"] = 'option'
12
- @bindings["model.#{m.visible}"] = { type: 'toggle' } if m.visible
13
- super
14
-
15
-
16
- class Lanes.Component.SelectField extends Lanes.Component.ChoicesInput
17
-
18
- subviews:
19
- fields:
20
- hook: 'choices-input'
21
- collection: 'selections'
22
- options: 'subViewOptions'
23
- view: SelectOption
24
-
25
- session:
26
- multiple: { type: 'boolean', default: false }
27
-
28
- writeTemplate: ->
29
- multiple = if this.multiple then "multiple" else ""
30
- "<select class='form-control' #{multiple} name='#{this.field_name}' data-hook='choices-input'></select>"
31
-
32
- readTemplate: ->
33
- "<div class='ro-input' name='#{this.field_name}'></div>"
34
-
35
- select: (option)->
36
- if this.readOnly
37
- this.$el.text( if option then option.code else "" )
38
- else if option
39
- id = option.get(@mappings.id)
40
- option = this.query("option[value=\"#{id}\"]")
41
- option.selected = true
42
- else
43
- this.$el.find(":selected").prop('selected',false)
@@ -1,27 +0,0 @@
1
- class Lanes.Component.TaggedField extends Lanes.Component.ChoicesInput
2
-
3
- writeTemplate: ->
4
- multiple = if this.multiple then "multiple" else ""
5
- "<select class='form-control' #{multiple} name='#{this.field_name}' data-hook='choices-input'></select>"
6
-
7
- readTemplate: ->
8
- "<div class='ro-input' name='#{this.field_name}'></div>"
9
-
10
- session:
11
- options: 'object'
12
-
13
- initialize: (options)->
14
- this.options=options.fieldOptions
15
-
16
- onRender: ->
17
- this.$el.magicSuggest(this.options)
18
-
19
- # select: (option)->
20
- # if this.readOnly
21
- # this.$el.text( if option then option.code else "" )
22
- # else if option
23
- # id = option.get(@mappings.id)
24
- # option = this.query("option[value=\"#{id}\"]")
25
- # option.selected = true
26
- # else
27
- # this.$el.find(":selected").prop('selected',false)
@@ -1,5 +0,0 @@
1
- //= require_self
2
- //= require ./Base
3
- //= require_tree .
4
-
5
- Lanes.namespace('Component');
@@ -1,91 +0,0 @@
1
- class Role extends Lanes.Data.BasicModel
2
- props:
3
- id: 'string'
4
- name: 'string'
5
- member: { type: 'boolean', default: false }
6
-
7
-
8
- class Lanes.Data.Roles extends Lanes.Data.BasicCollection
9
- model: Role
10
- comparator: 'name'
11
-
12
-
13
- class RoleExtension extends Lanes.Extension.Base
14
- identifier: 'roles'
15
- setBootstrapData: (data)->
16
- Lanes.Data.Roles.all = new Lanes.Data.Roles(
17
- _.map( data, (role)->
18
- { id: role.toLowerCase(), name: role }
19
- )
20
- )
21
-
22
-
23
- class UserRole
24
- constructor: (config={})->
25
- @type = config.type
26
- for method in RWD
27
- this[method] = _.map(config[method],klassFor)
28
-
29
- can: (type,model)->
30
- -1 != this[type].indexOf(model)
31
-
32
-
33
- RWD = ['read','write','delete']
34
-
35
- RoleMap = {
36
- administrator: Administrator
37
- }
38
-
39
- # The admin is special and can do anything
40
- class Administrator
41
- constructor: ->
42
- UserRole.prototype.constructor.apply(this,arguments)
43
- can: -> true
44
-
45
-
46
-
47
- class Lanes.Data.UserRoleSet
48
-
49
- constructor: (access={})->
50
- _.defaults(access, { roles: [], locked_fields: [] })
51
- @roles = []
52
- for role in access.roles
53
- klass = RoleMap[role.type] || UserRole
54
- @roles.push( new klass(role) )
55
- @locked_fields = {}
56
- for lock in access.locked_fields
57
- if klass = klassFor(lock.type)
58
- @locked_fields[ klass ] = locks = {}
59
- locks[field] = grants for field, grants of lock.locks
60
-
61
- can:(method,model,field)->
62
- if model instanceof Lanes.Data.Model
63
- model = model.constructor
64
-
65
- if field && ( locks = @locked_fields[model] ) && ( grants = locks[field] )
66
- for grant in grants
67
- if grant.only && grant.only != method
68
- return this.testModelAccess(method,model)
69
- else
70
- for role in @roles
71
- return true if role.type == grant.role
72
- return false
73
- else
74
- return this.testModelAccess(method,model)
75
-
76
- testModelAccess:(method,model)->
77
- !!_.detect( @roles, (role)->role.can(method,model) )
78
-
79
- canRead:(model,field)->
80
- this.can('read',model,field)
81
-
82
- canWrite:(model,field)->
83
- this.can('write',model,field)
84
-
85
- canDelete:(model)->
86
- this.can('delete',model)
87
-
88
- klassFor = (identifier)->
89
- name = _.chain(identifier).titleize().gsub(' ','').value()
90
- Lanes.Data[name] ||
91
- Lanes.warn("Role Data object not found for #{identifier}")
@@ -1,70 +0,0 @@
1
- class Lanes.Data.User extends Lanes.Data.Model
2
-
3
- constructor: (attributes,access)->
4
- super
5
- this.access_data = access
6
-
7
- api_path: 'users'
8
- derived:
9
- roles:
10
- deps: ['role_names', 'access_data']
11
- fn: -> new Lanes.Data.UserRoleSet( @access_data )
12
- isLoggedIn:
13
- deps:['id'], fn: -> !!this.id
14
- allRoles:
15
- deps: ['role_names', 'access_data']
16
- fn: ->
17
- role_data = Lanes.Data.Roles.all?.toJSON() || []
18
- roles = new Lanes.Data.Roles( role_data )
19
- _.each( this.role_names, (name)->
20
- console.log name, roles
21
- roles.get(name)?.member = true
22
- )
23
- roles
24
-
25
- session:
26
- access_data: 'object'
27
-
28
- props:
29
- id: { type: "integer", required:true }
30
- login: 'string'
31
- name: 'string'
32
- email: 'string'
33
- role_names: 'array'
34
- options: 'object'
35
- password: 'string'
36
-
37
- canRead: (model,field) -> this.roles.canRead(model,field)
38
- canWrite: (model,field) -> this.roles.canWrite(model,field)
39
- canDelete: (model) -> this.roles.canDelete(model)
40
-
41
- logout: ->
42
- _.each(this.attributes, (value,key)=> @set(key, null) )
43
-
44
- setLoginData: (attrs, access)->
45
- this.access_data = access
46
- this.set(attrs)
47
-
48
- @attemptLogin: (login,password, options)->
49
- session = new Session( login: login, password: password )
50
- success = options.success
51
- session.save(_.extend(options,{
52
- success: (session)->
53
- Lanes.current_user.setLoginData(session.user, session.access)
54
- success.apply(options.scope, arguments)
55
- }))
56
-
57
- Lanes.current_user = new Lanes.Data.User
58
-
59
- class Lanes.Data.User.Collection extends Lanes.Data.Collection
60
- model: Lanes.Data.User
61
-
62
-
63
- class Session extends Lanes.Data.Model
64
- api_path: 'user-session'
65
- props:
66
- id: 'integer'
67
- login: 'string'
68
- password: 'string'
69
- access: 'object'
70
- user: 'object'
@@ -1,6 +0,0 @@
1
- //= require_self
2
- //= require ./Base
3
- //= require ./Extensions
4
- //= require ./load
5
-
6
- Lanes.namespace('Extension');
@@ -1,3 +0,0 @@
1
- <% Lanes::Extension.each(self) do | ext | %>
2
- <% require_asset ext.logical_path %>
3
- <% end %>
@@ -1 +0,0 @@
1
- //=require ./workspace
@@ -1,210 +0,0 @@
1
- // Underscore.inflection.js
2
- // (c) 2011 Jeremy Ruppel
3
- // Underscore.inflection is freely distributable under the MIT license.
4
- // Portions of Underscore.inflection are inspired or borrowed from ActiveSupport
5
- // Version 1.0.0
6
-
7
- ( function( _, undefined )
8
- {
9
- var
10
- plurals = [ ],
11
-
12
- singulars = [ ],
13
-
14
- uncountables = [ ];
15
-
16
- /**
17
- * Inflector
18
- */
19
- var inflector = {
20
-
21
- gsub : function( word, rule, replacement )
22
- {
23
- var pattern = new RegExp( rule.source || rule, 'gi' );
24
- return pattern.test( word ) ? word.replace( pattern, replacement ) : word;
25
- },
26
-
27
- plural : function( rule, replacement )
28
- {
29
- plurals.unshift( [ rule, replacement ] );
30
- },
31
-
32
- pluralize : function( word, count, includeNumber )
33
- {
34
- var result;
35
-
36
- if( count !== undefined )
37
- {
38
- count = Math.round(count);
39
- result = ( count === 1 ) ? this.singularize( word ) : this.pluralize( word );
40
- result = ( includeNumber ) ? [ count, result ].join( ' ' ) : result;
41
- }
42
- else
43
- {
44
- if( _( uncountables ).include( word ) )
45
- {
46
- return word;
47
- }
48
-
49
- result = word;
50
-
51
- _( plurals ).detect( function( rule )
52
- {
53
- var gsub = this.gsub( word, rule[ 0 ], rule[ 1 ] );
54
-
55
- return gsub ? ( result = gsub ) : false;
56
- },
57
- this );
58
- }
59
-
60
- return result;
61
- },
62
-
63
- singular : function( rule, replacement )
64
- {
65
- singulars.unshift( [ rule, replacement ] );
66
- },
67
-
68
- singularize : function( word )
69
- {
70
- if( _( uncountables ).include( word ) )
71
- {
72
- return word;
73
- }
74
-
75
- var result = word;
76
-
77
- _( singulars ).detect( function( rule )
78
- {
79
- var gsub = this.gsub( word, rule[ 0 ], rule[ 1 ] );
80
-
81
- return gsub ? ( result = gsub ) : false;
82
- },
83
- this );
84
-
85
- return result;
86
- },
87
-
88
- irregular : function( singular, plural )
89
- {
90
- this.plural( '\\b' + singular + '\\b', plural );
91
- this.singular( '\\b' + plural + '\\b', singular );
92
- },
93
-
94
- uncountable : function( word )
95
- {
96
- uncountables.unshift( word );
97
- },
98
-
99
- ordinalize : function( number )
100
- {
101
- if ( isNaN( number ) )
102
- return number;
103
-
104
- number = number.toString();
105
- var lastDigit = number.slice(-1);
106
- var lastTwoDigits = number.slice(-2);
107
-
108
- if ( lastTwoDigits === "11" || lastTwoDigits === "12" || lastTwoDigits === "13" )
109
- return number + "th";
110
-
111
- switch ( lastDigit ) {
112
- case "1":
113
- return number + "st";
114
- case "2":
115
- return number + "nd";
116
- case "3":
117
- return number + "rd";
118
- default:
119
- return number + "th";
120
- }
121
- },
122
-
123
- titleize : function( words )
124
- {
125
- if ( typeof words !== "string")
126
- return words;
127
-
128
- return words.replace(/_|-/g,' ').replace( /\S+/g, function( word ) {
129
- return word.charAt(0).toUpperCase() + word.slice(1);
130
- } );
131
- },
132
-
133
- resetInflections : function( )
134
- {
135
- plurals = [ ];
136
- singulars = [ ];
137
- uncountables = [ ];
138
-
139
- this.plural( /$/, 's' );
140
- this.plural( /s$/, 's' );
141
- this.plural( /(ax|test)is$/, '$1es' );
142
- this.plural( /(octop|vir)us$/, '$1i' );
143
- this.plural( /(octop|vir)i$/, '$1i' );
144
- this.plural( /(alias|status)$/, '$1es' );
145
- this.plural( /(bu)s$/, '$1ses' );
146
- this.plural( /(buffal|tomat)o$/, '$1oes' );
147
- this.plural( /([ti])um$/, '$1a' );
148
- this.plural( /([ti])a$/, '$1a' );
149
- this.plural( /sis$/, 'ses' );
150
- this.plural( /(?:([^f])fe|([lr])f)$/, '$1$2ves' );
151
- this.plural( /(hive)$/, '$1s' );
152
- this.plural( /([^aeiouy]|qu)y$/, '$1ies' );
153
- this.plural( /(x|ch|ss|sh)$/, '$1es' );
154
- this.plural( /(matr|vert|ind)(?:ix|ex)$/, '$1ices' );
155
- this.plural( /([m|l])ouse$/, '$1ice' );
156
- this.plural( /([m|l])ice$/, '$1ice' );
157
- this.plural( /^(ox)$/, '$1en' );
158
- this.plural( /^(oxen)$/, '$1' );
159
- this.plural( /(quiz)$/, '$1zes' );
160
-
161
- this.singular( /s$/, '' );
162
- this.singular( /(n)ews$/, '$1ews' );
163
- this.singular( /([ti])a$/, '$1um' );
164
- this.singular( /((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/, '$1$2sis' );
165
- this.singular( /(^analy)ses$/, '$1sis' );
166
- this.singular( /([^f])ves$/, '$1fe' );
167
- this.singular( /(hive)s$/, '$1' );
168
- this.singular( /(tive)s$/, '$1' );
169
- this.singular( /([lr])ves$/, '$1f' );
170
- this.singular( /([^aeiouy]|qu)ies$/, '$1y' );
171
- this.singular( /(s)eries$/, '$1eries' );
172
- this.singular( /(m)ovies$/, '$1ovie' );
173
- this.singular( /(x|ch|ss|sh)es$/, '$1' );
174
- this.singular( /([m|l])ice$/, '$1ouse' );
175
- this.singular( /(bus)es$/, '$1' );
176
- this.singular( /(o)es$/, '$1' );
177
- this.singular( /(shoe)s$/, '$1' );
178
- this.singular( /(cris|ax|test)es$/, '$1is' );
179
- this.singular( /(octop|vir)i$/, '$1us' );
180
- this.singular( /(alias|status)es$/, '$1' );
181
- this.singular( /^(ox)en/, '$1' );
182
- this.singular( /(vert|ind)ices$/, '$1ex' );
183
- this.singular( /(matr)ices$/, '$1ix' );
184
- this.singular( /(quiz)zes$/, '$1' );
185
- this.singular( /(database)s$/, '$1' );
186
-
187
- this.irregular( 'person', 'people' );
188
- this.irregular( 'man', 'men' );
189
- this.irregular( 'child', 'children' );
190
- this.irregular( 'sex', 'sexes' );
191
- this.irregular( 'move', 'moves' );
192
- this.irregular( 'cow', 'kine' );
193
-
194
- _( 'equipment information rice money species series fish sheep jeans'.split( /\s+/ ) ).each( function( word )
195
- {
196
- this.uncountable( word );
197
- },
198
- this );
199
-
200
- return this;
201
- }
202
-
203
- };
204
-
205
- /**
206
- * Underscore integration
207
- */
208
- _.mixin( inflector.resetInflections( ) );
209
-
210
- } )( _ );
@@ -1,4 +0,0 @@
1
- //= require_self
2
- //= require_tree .
3
-
4
- Lanes.namespace('plugins');
@@ -1,14 +0,0 @@
1
- //= require ./packaged
2
- //= require ./jquery-2
3
- //= require ./jquery.tap
4
- //= require ./bootstrap/transition
5
- //= require ./bootstrap/tooltip
6
- //= require ./bootstrap/popover
7
- //= require ./bootstrap/modal
8
- //= require ./bootstrap/dropdown
9
- //= require ./dataTables
10
- //= require ./message-bus
11
- //= require ./magicsuggest
12
- //= require_self
13
-
14
- Lanes.$ = window.jQuery.noConflict(true);