lanes 0.1.9.5 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (304) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -0
  3. data/Rakefile +1 -1
  4. data/client/lanes/Boot.cjsx +3 -3
  5. data/client/lanes/Config.coffee +38 -3
  6. data/client/lanes/access/Extension.coffee +1 -1
  7. data/client/lanes/access/LoginDialog.cjsx +57 -47
  8. data/client/lanes/access/Roles.coffee +2 -2
  9. data/client/lanes/access/User.coffee +4 -3
  10. data/client/lanes/access/screens/user-management/UserManagement.cjsx +12 -11
  11. data/client/lanes/components/calendar/Calendar.cjsx +16 -0
  12. data/client/lanes/components/calendar/index.js +3 -0
  13. data/client/lanes/components/calendar/styles.scss +3 -0
  14. data/client/lanes/components/grid/Body.cjsx +86 -0
  15. data/client/lanes/components/grid/CellStyles.coffee +20 -0
  16. data/client/lanes/components/grid/EditingMixin.cjsx +84 -24
  17. data/client/lanes/components/grid/Editor.cjsx +45 -0
  18. data/client/lanes/components/grid/Grid.cjsx +62 -104
  19. data/client/lanes/components/grid/Header.cjsx +35 -0
  20. data/client/lanes/components/grid/PopOverMixin.cjsx +19 -9
  21. data/client/lanes/components/grid/PopoverEditor.cjsx +7 -1
  22. data/client/lanes/components/grid/RowEditor.cjsx +1 -1
  23. data/client/lanes/components/grid/Selections.cjsx +39 -0
  24. data/client/lanes/components/grid/Toolbar.cjsx +24 -5
  25. data/client/lanes/components/grid/editors.scss +22 -50
  26. data/client/lanes/components/grid/index.js +0 -1
  27. data/client/lanes/components/grid/row-editor.scss +68 -0
  28. data/client/lanes/components/grid/styles.scss +79 -3
  29. data/client/lanes/components/modal/Modal.cjsx +64 -24
  30. data/client/lanes/components/modal/styles.scss +12 -0
  31. data/client/lanes/components/record-finder/Clause.cjsx +11 -4
  32. data/client/lanes/components/record-finder/Dialog.cjsx +23 -24
  33. data/client/lanes/components/record-finder/RecordFinder.cjsx +45 -14
  34. data/client/lanes/components/record-finder/styles.scss +9 -6
  35. data/client/lanes/components/select-field/SelectField.cjsx +108 -53
  36. data/client/lanes/components/select-field/styles.scss +19 -0
  37. data/client/lanes/components/shared/ControlLabel.cjsx +45 -0
  38. data/client/lanes/components/shared/DateTime.cjsx +48 -0
  39. data/client/lanes/components/shared/DisplayValue.cjsx +16 -0
  40. data/client/lanes/components/shared/FieldMixin.cjsx +54 -23
  41. data/client/lanes/components/shared/FieldSet.cjsx +12 -35
  42. data/client/lanes/components/shared/FieldWrapper.cjsx +13 -0
  43. data/client/lanes/components/shared/FormGroup.cjsx +37 -0
  44. data/client/lanes/components/shared/Icon.cjsx +20 -0
  45. data/client/lanes/components/shared/ImageSaver.cjsx +33 -0
  46. data/client/lanes/components/shared/Input.cjsx +19 -0
  47. data/client/lanes/components/shared/InputFieldMixin.cjsx +48 -0
  48. data/client/lanes/components/shared/JobProgress.cjsx +27 -0
  49. data/client/lanes/components/shared/NetworkActivityOverlay.cjsx +58 -0
  50. data/client/lanes/components/shared/NumberInput.cjsx +29 -0
  51. data/client/lanes/components/shared/ResizeSensor.cjsx +11 -0
  52. data/client/lanes/components/shared/ScreenWrapper.cjsx +13 -0
  53. data/client/lanes/components/shared/Throbber.cjsx +3 -0
  54. data/client/lanes/components/shared/ToggleField.cjsx +33 -0
  55. data/client/lanes/components/shared/Tooltip.cjsx +2 -2
  56. data/client/lanes/components/shared/fields.scss +75 -13
  57. data/client/lanes/components/shared/fieldset.scss +3 -5
  58. data/client/lanes/components/shared/image-saver.scss +38 -0
  59. data/client/lanes/components/shared/index.js +2 -0
  60. data/client/lanes/{styles/plugins → components/shared}/overlay.scss +17 -4
  61. data/client/lanes/components/shared/resize-sensor.scss +30 -0
  62. data/client/lanes/components/shared/styles.scss +13 -0
  63. data/client/lanes/components/shared/throbber.scss +53 -0
  64. data/client/lanes/components/toolbar/RemoteChangeSets.cjsx +21 -48
  65. data/client/lanes/components/toolbar/SaveButton.cjsx +24 -0
  66. data/client/lanes/components/toolbar/Toolbar.cjsx +24 -37
  67. data/client/lanes/components/toolbar/changes-notification.scss +10 -6
  68. data/client/lanes/components/toolbar/styles.scss +29 -9
  69. data/client/lanes/extension/Base.coffee +4 -5
  70. data/client/lanes/index.js +0 -1
  71. data/client/lanes/index.scss.erb +10 -1
  72. data/client/lanes/lib/HotReload.coffee +13 -15
  73. data/client/lanes/lib/MakeBaseClass.coffee +6 -1
  74. data/client/lanes/lib/development.coffee +2 -0
  75. data/client/lanes/lib/dom-polyfills.coffee +5 -0
  76. data/client/lanes/lib/dom.coffee +38 -9
  77. data/client/lanes/lib/format.coffee +11 -0
  78. data/client/lanes/lib/index.js.erb +2 -0
  79. data/client/lanes/lib/production.coffee +6 -0
  80. data/client/lanes/lib/utilFunctions.coffee +50 -15
  81. data/client/lanes/models/AssociationMap.coffee +122 -46
  82. data/client/lanes/models/AssociationProxy.coffee +147 -0
  83. data/client/lanes/models/Base.coffee +97 -85
  84. data/client/lanes/models/ChangeMonitor.coffee +7 -3
  85. data/client/lanes/models/ChangeSet.coffee +2 -2
  86. data/client/lanes/models/Collection.coffee +49 -6
  87. data/client/lanes/models/JobStatus.coffee +32 -0
  88. data/client/lanes/models/PubSub.coffee +7 -5
  89. data/client/lanes/models/Query.coffee +115 -34
  90. data/client/lanes/models/ServerCache.coffee +67 -52
  91. data/client/lanes/models/State.coffee +97 -0
  92. data/client/lanes/models/Sync.coffee +18 -13
  93. data/client/lanes/models/SystemSettings.coffee +0 -0
  94. data/client/lanes/models/index.js +1 -0
  95. data/client/lanes/models/mixins/FileSupport.coffee +60 -0
  96. data/client/lanes/models/mixins/HasCodeField.coffee +13 -6
  97. data/client/lanes/models/query/ArrayResult.coffee +188 -0
  98. data/client/lanes/models/query/CollectionResult.coffee +71 -0
  99. data/client/lanes/models/query/Result.coffee +9 -0
  100. data/client/lanes/react/Component.coffee +7 -3
  101. data/client/lanes/react/PubSub.coffee +7 -7
  102. data/client/lanes/react/Root.cjsx +1 -4
  103. data/client/lanes/react/Screen.coffee +1 -0
  104. data/client/lanes/react/TypeValidators.coffee +3 -3
  105. data/client/lanes/react/Viewport.coffee +41 -7
  106. data/client/lanes/react/index.js +0 -1
  107. data/client/lanes/react/mixins/Access.coffee +4 -1
  108. data/client/lanes/react/mixins/Data.coffee +40 -25
  109. data/client/lanes/react/mixins/FieldErrors.coffee +27 -0
  110. data/client/lanes/react/mixins/RelayEditingState.coffee +4 -0
  111. data/client/lanes/react/mixins/Screen.coffee +14 -0
  112. data/client/lanes/react/mixins/Viewport.coffee +9 -3
  113. data/client/lanes/screens/ChangeListener.coffee +3 -3
  114. data/client/lanes/screens/Commands.coffee +14 -7
  115. data/client/lanes/screens/CommonComponents.cjsx +20 -0
  116. data/client/lanes/screens/Definitions.coffee +64 -20
  117. data/client/lanes/screens/SystemSettings.cjsx +56 -0
  118. data/client/lanes/screens/UserPreferences.cjsx +38 -0
  119. data/client/lanes/screens/index.js +3 -0
  120. data/client/lanes/screens/styles.scss +2 -1
  121. data/client/lanes/styles/fonts.scss +1 -0
  122. data/client/lanes/styles/global.scss +2 -1
  123. data/client/lanes/styles/global/flexbox.scss +16 -0
  124. data/client/lanes/styles/global/styles.scss +1 -0
  125. data/client/lanes/styles/mixins/_dropdown.scss +21 -0
  126. data/client/lanes/styles/mixins/_flexbox.scss +394 -0
  127. data/client/lanes/styles/mixins/all.scss +2 -0
  128. data/client/lanes/styles/variables.scss +28 -0
  129. data/client/lanes/testing/BeforeEach.coffee +15 -14
  130. data/client/lanes/testing/Helpers.coffee +14 -5
  131. data/client/lanes/testing/TestObjects.coffee +10 -2
  132. data/client/lanes/testing/index.js +1 -0
  133. data/client/lanes/testing/jasmine-react.js +125 -0
  134. data/client/lanes/vendor/base.js +56049 -74987
  135. data/client/lanes/vendor/calendar.js +17301 -0
  136. data/client/lanes/vendor/calendar.scss +303 -0
  137. data/client/lanes/vendor/commons.js +14990 -15847
  138. data/client/lanes/vendor/development.js +4912 -1952
  139. data/client/lanes/vendor/grid.js +14246 -5551
  140. data/client/lanes/vendor/grid.scss +876 -335
  141. data/client/lanes/vendor/index.js +1 -0
  142. data/client/lanes/vendor/message-bus-ajax.js +44 -0
  143. data/client/lanes/vendor/message-bus.js +414 -0
  144. data/client/lanes/vendor/rw-widgets.eot +0 -0
  145. data/client/lanes/vendor/rw-widgets.svg +18 -0
  146. data/client/lanes/vendor/rw-widgets.ttf +0 -0
  147. data/client/lanes/vendor/rw-widgets.woff +0 -0
  148. data/client/lanes/vendor/toggle.js +345 -0
  149. data/client/lanes/vendor/toggle.scss +138 -0
  150. data/client/lanes/vendor/widgets.js +21245 -6839
  151. data/client/lanes/vendor/widgets.scss +83 -67
  152. data/client/lanes/workspace/Layout.cjsx +18 -8
  153. data/client/lanes/workspace/Modal.cjsx +47 -0
  154. data/client/lanes/workspace/Navbar.cjsx +16 -2
  155. data/client/lanes/workspace/ScreenView.cjsx +10 -3
  156. data/client/lanes/workspace/ScreensMenu.cjsx +23 -7
  157. data/client/lanes/workspace/Tabs.cjsx +55 -0
  158. data/client/lanes/workspace/UIState.coffee +7 -8
  159. data/client/lanes/workspace/index.js +2 -1
  160. data/client/lanes/workspace/mixin.coffee +11 -0
  161. data/client/lanes/workspace/mixins/UIState.coffee +8 -0
  162. data/client/lanes/workspace/mixins/index.js +3 -0
  163. data/client/lanes/workspace/styles.scss +2 -1
  164. data/client/lanes/workspace/styles/header.scss +23 -1
  165. data/client/lanes/workspace/styles/layout.scss +26 -24
  166. data/client/lanes/workspace/styles/screens.scss +0 -4
  167. data/client/lanes/workspace/styles/tabs.scss +3 -10
  168. data/config/routes.rb +10 -4
  169. data/config/screens.rb +25 -0
  170. data/db/migrate/01_create_system_settings.rb +10 -0
  171. data/docs/todo-example-part-1.md +18 -20
  172. data/lanes.gemspec +15 -6
  173. data/lib/lanes.rb +4 -2
  174. data/lib/lanes/access/config/routes.rb +5 -3
  175. data/lib/lanes/access/config/screens.rb +1 -0
  176. data/lib/lanes/access/db/migrate/20140615031600_create_lanes_users.rb +1 -1
  177. data/lib/lanes/access/user.rb +1 -1
  178. data/lib/lanes/api.rb +2 -1
  179. data/lib/lanes/api/controller.rb +32 -71
  180. data/lib/lanes/api/default_routes.rb +10 -8
  181. data/lib/lanes/api/formatted_reply.rb +53 -0
  182. data/lib/lanes/api/handlers/file.rb +26 -0
  183. data/lib/lanes/api/helper_methods.rb +29 -5
  184. data/lib/lanes/api/javascript_processor.rb +36 -17
  185. data/lib/lanes/api/pub_sub.rb +6 -9
  186. data/lib/lanes/api/request_wrapper.rb +1 -2
  187. data/lib/lanes/api/root.rb +11 -43
  188. data/lib/lanes/api/routing.rb +63 -0
  189. data/lib/lanes/api/sprockets_extension.rb +15 -7
  190. data/lib/lanes/api/updates.rb +1 -2
  191. data/lib/lanes/command.rb +0 -1
  192. data/lib/lanes/command/app.rb +6 -5
  193. data/lib/lanes/command/console.rb +1 -0
  194. data/lib/lanes/command/generate.rb +3 -0
  195. data/lib/lanes/command/generate_migration.rb +33 -0
  196. data/lib/lanes/command/generate_model.rb +4 -26
  197. data/lib/lanes/command/migration_support.rb +29 -0
  198. data/lib/lanes/command/update_model.rb +14 -5
  199. data/lib/lanes/concerns/all.rb +2 -0
  200. data/lib/lanes/concerns/api_path.rb +4 -2
  201. data/lib/lanes/concerns/association_extensions.rb +1 -1
  202. data/lib/lanes/concerns/attr_accessor_with_default.rb +3 -1
  203. data/lib/lanes/concerns/code_identifier.rb +1 -1
  204. data/lib/lanes/concerns/image_uploader.rb +42 -0
  205. data/lib/lanes/concerns/pub_sub.rb +0 -1
  206. data/lib/lanes/concerns/queries.rb +2 -2
  207. data/lib/lanes/concerns/set_attribute_data.rb +4 -13
  208. data/lib/lanes/concerns/sorting_expressions.rb +34 -0
  209. data/lib/lanes/configuration.rb +48 -9
  210. data/lib/lanes/extension.rb +16 -7
  211. data/lib/lanes/extension/definition.rb +8 -2
  212. data/lib/lanes/job.rb +78 -0
  213. data/lib/lanes/job/failure_logger.rb +33 -0
  214. data/lib/lanes/model.rb +4 -0
  215. data/lib/lanes/rake_tasks.rb +6 -0
  216. data/lib/lanes/redis.rb +13 -0
  217. data/lib/lanes/screen.rb +34 -18
  218. data/lib/lanes/system_settings.rb +66 -0
  219. data/lib/lanes/version.rb +1 -1
  220. data/lib/lanes/workspace/extension.rb +1 -1
  221. data/npm-build/base.js +10 -3
  222. data/npm-build/calendar.js +6 -0
  223. data/npm-build/development.js +4 -5
  224. data/npm-build/grid.js +3 -5
  225. data/npm-build/package.json +40 -29
  226. data/npm-build/react-toggle.js +5 -0
  227. data/npm-build/react-widgets.js +6 -0
  228. data/npm-build/update-dayz +14 -0
  229. data/npm-build/webpack.config.js +5 -2
  230. data/spec/command-reference-files/initial/Gemfile +1 -1
  231. data/spec/command-reference-files/initial/config/routes.rb +2 -0
  232. data/spec/command-reference-files/initial/lib/appy-app.rb +4 -0
  233. data/spec/command-reference-files/initial/lib/appy-app/extension.rb +2 -0
  234. data/spec/command-reference-files/initial/spec/server/{spec_helpers.rb → spec_helper.rb} +0 -0
  235. data/spec/command-reference-files/model/config/routes.rb +2 -0
  236. data/spec/command-reference-files/model/spec/server/test_test_spec.rb +1 -1
  237. data/spec/command-reference-files/screen/client/appy-app/screens/ready-set-go/ReadySetGo.cjsx +6 -4
  238. data/spec/command-reference-files/screen/client/appy-app/screens/ready-set-go/index.scss +4 -3
  239. data/spec/command-reference-files/screen/config/screens.rb +4 -2
  240. data/spec/command-reference-files/screen/spec/appy-app/screens/ready-set-go/ReadySetGoSpec.coffee +1 -1
  241. data/spec/fixtures/system_settings.yml +1 -0
  242. data/spec/lanes/components/grid/GridSpec.coffee +56 -31
  243. data/spec/lanes/components/grid/RowEditorSpec.coffee +96 -0
  244. data/spec/lanes/components/select-field/SelectFieldSpec.coffee +99 -0
  245. data/spec/lanes/components/shared/NetworkActivityOverlaySpec.coffee +34 -0
  246. data/spec/lanes/models/AssociationMapSpec.coffee +36 -2
  247. data/spec/lanes/models/AssociationProxySpec.coffee +77 -0
  248. data/spec/lanes/models/BaseSpec.coffee +37 -4
  249. data/spec/lanes/models/CollectionSpec.coffee +11 -17
  250. data/spec/lanes/models/PubSubSpec.coffee +1 -1
  251. data/spec/lanes/models/ServerCacheSpec.coffee +65 -0
  252. data/spec/server/api/coffeescript_processor_spec.rb +1 -1
  253. data/spec/server/concerns/pub_sub_spec.rb +9 -10
  254. data/spec/server/concerns/sorting_expressions_spec.rb +34 -0
  255. data/spec/server/configuration_spec.rb +3 -3
  256. data/spec/server/job_spec.rb +54 -0
  257. data/spec/server/spec_helper.rb +0 -5
  258. data/spec/server/system_settings_spec.rb +23 -0
  259. data/templates/client/screens/Screen.cjsx +6 -4
  260. data/templates/client/screens/styles.scss +4 -3
  261. data/templates/config/routes.rb +2 -0
  262. data/templates/config/screen.rb +4 -2
  263. data/templates/lib/namespace.rb +4 -0
  264. data/templates/lib/namespace/extension.rb +2 -0
  265. data/templates/spec/client/Screen.coffee +1 -1
  266. data/templates/spec/server/model_spec.rb +1 -1
  267. data/templates/spec/server/{spec_helpers.rb → spec_helper.rb} +0 -0
  268. data/views/lanes_root_view.erb +70 -0
  269. data/views/specs.erb +2 -2
  270. metadata +207 -68
  271. data/client/images/lanes/dataTables/Sorting icons.psd +0 -0
  272. data/client/images/lanes/dataTables/back_disabled.png +0 -0
  273. data/client/images/lanes/dataTables/back_enabled.png +0 -0
  274. data/client/images/lanes/dataTables/back_enabled_hover.png +0 -0
  275. data/client/images/lanes/dataTables/favicon.ico +0 -0
  276. data/client/images/lanes/dataTables/forward_disabled.png +0 -0
  277. data/client/images/lanes/dataTables/forward_enabled.png +0 -0
  278. data/client/images/lanes/dataTables/forward_enabled_hover.png +0 -0
  279. data/client/images/lanes/dataTables/loading-background.png +0 -0
  280. data/client/images/lanes/dataTables/sort_asc.png +0 -0
  281. data/client/images/lanes/dataTables/sort_asc_disabled.png +0 -0
  282. data/client/images/lanes/dataTables/sort_both.png +0 -0
  283. data/client/images/lanes/dataTables/sort_desc.png +0 -0
  284. data/client/images/lanes/dataTables/sort_desc_disabled.png +0 -0
  285. data/client/lanes/components/shared/Resize.cjsx +0 -152
  286. data/client/lanes/components/shared/TextArea.cjsx +0 -19
  287. data/client/lanes/components/shared/TextField.cjsx +0 -25
  288. data/client/lanes/models/Bootstrap.coffee +0 -5
  289. data/client/lanes/models/QueryResults.coffee +0 -93
  290. data/client/lanes/react/FormBindings.coffee +0 -103
  291. data/client/lanes/react/Router.cjsx +0 -18
  292. data/client/lanes/styles/dataTables.scss +0 -4
  293. data/client/lanes/styles/plugins/all.scss +0 -2
  294. data/client/lanes/styles/plugins/resize-sensor.scss +0 -24
  295. data/client/lanes/vendor/jquery-2.js +0 -9190
  296. data/client/lanes/vendor/jquery.tap.js +0 -401
  297. data/client/lanes/vendor/magicsuggest.js +0 -1565
  298. data/client/lanes/vendor/message-bus.coffee +0 -264
  299. data/client/lanes/workspace/ActiveScreenSwitcher.cjsx +0 -38
  300. data/client/lanes/workspace/styles/toolbar.scss +0 -4
  301. data/lib/lanes/api/eco.js +0 -516
  302. data/lib/lanes/api/sprockets_compressor.rb +0 -39
  303. data/spec/command-reference-files/model/lib/appy-app.rb +0 -11
  304. data/views/index.erb +0 -19
@@ -101,7 +101,7 @@ Foo = (function() {
101
101
 
102
102
  Bar.extend(Foo);
103
103
 
104
- })(window.Lanes,(window.Lanes ? window.Lanes['Foo'] : null),window.Lanes.Vendor.ld,window.Lanes.Components,window.Lanes.Vendor.React,window.Lanes.Vendor.ReactBootstrap,{namespace:window.Lanes['Foo'],extensionName:'Foo',path:[\"foo\",\"bar\",\"baz\"]}, window);
104
+ })(window.Lanes,(window.Lanes ? window.Lanes['Foo'] : null),window.Lanes.Vendor.ld,window.Lanes.Components,window.Lanes.Vendor.React,window.Lanes.Vendor.ReactBootstrap,{namespace:window.Lanes['Foo'],extension:{name:'Foo',identifier:'foo'},path:[\"foo\",\"bar\",\"baz\"]},window);
105
105
  EOS
106
106
 
107
107
  Scope = Struct.new(:logical_path)
@@ -54,9 +54,7 @@ describe "PubSub" do
54
54
  l.string :name, :number
55
55
  end
56
56
  end
57
-
58
57
  test.call
59
-
60
58
  end
61
59
  end
62
60
 
@@ -74,8 +72,10 @@ describe "PubSub" do
74
72
  end
75
73
 
76
74
  it "registers" do
77
- assert_equal [ :save, :create, :update, :destroy ], EventTester.valid_event_names
78
- assert_equal [ :save, :create, :update, :destroy, :test_one ], A.valid_event_names
75
+ assert_equal [ :save, :create, :update, :destroy ],
76
+ EventTester.valid_event_names
77
+ assert_equal [ :save, :create, :update, :destroy, :test_one ],
78
+ A.valid_event_names
79
79
  end
80
80
 
81
81
  it "can only observe valid events" do
@@ -106,23 +106,22 @@ describe "PubSub" do
106
106
 
107
107
  it "can be fired and observed" do
108
108
  results=[]
109
- A.observe(:test_one) do | ev, one, two |
110
- results = [ ev, one, two ]
109
+ A.observe(:test_one) do | one, two |
110
+ results = [ one, two ]
111
111
  end
112
112
  a=A.new
113
113
  a.send(:fire_pubsub_event, :test_one, 3, 5 )
114
- assert_equal [a, 3, 5], results
114
+ assert_equal [3, 5], results
115
115
 
116
116
  a.send(:fire_pubsub_event, :test_one, 'foo' )
117
- assert_equal [a, 'foo', nil], results
117
+ assert_equal ['foo', nil], results
118
118
  end
119
119
 
120
-
121
120
  it "can use custom event assertions" do
122
121
  assert_event_fires(A, :test_one) do
123
122
  A.new.send(:fire_pubsub_event, :test_one, 3, 5)
124
123
  end
125
- assert_equal [ 3, 5 ], last_event_results[1..-1]
124
+ assert_equal [ 3, 5 ], last_event_results
126
125
  end
127
126
 
128
127
  end
@@ -0,0 +1,34 @@
1
+ require_relative "../spec_helper"
2
+
3
+ class SortingExpressionsTest < Lanes::TestCase
4
+
5
+ include TestingModels
6
+
7
+ def teardown
8
+ TestModel.instance_variable_set(:@sorting_expressions, nil)
9
+ end
10
+
11
+ def test_assert_adds_sorting_expression
12
+ refute TestModel.has_sorting_expression?('foo')
13
+ TestModel.export_sort 'foo' do | query, dir |
14
+ query
15
+ end
16
+ assert TestModel.has_sorting_expression?('foo')
17
+ end
18
+
19
+ def test_sorting_by_field
20
+ query = TestModel.where(name: 'bar')
21
+ query = TestModel.append_sort_to_query(query, 'name', :asc)
22
+ assert_match 'ORDER BY name ASC', query.to_sql
23
+ end
24
+
25
+ def test_sorting_by_block
26
+ query = TestModel.where(name: 'bar')
27
+ TestModel.export_sort :test do | q, dir |
28
+ q.order(:name => 'desc')
29
+ end
30
+ query = TestModel.append_sort_to_query(query, 'test', :asc)
31
+ assert_match 'ORDER BY "test_models"."name" DESC', query.to_sql
32
+ end
33
+
34
+ end
@@ -4,11 +4,11 @@ describe Lanes::Configuration do
4
4
 
5
5
  def test_changing_values_are_logged
6
6
  begin
7
- assert_logs_matching( /table_prefix changed from / ) do
8
- Lanes.config.table_prefix=:foo
7
+ assert_logs_matching( /environment changed from / ) do
8
+ Lanes.config.environment='foo'
9
9
  end
10
10
  ensure
11
- Lanes.silence_logs { Lanes.config.table_prefix='' }
11
+ Lanes.silence_logs { Lanes.config.environment='foo' }
12
12
  end
13
13
  end
14
14
 
@@ -0,0 +1,54 @@
1
+ require_relative "spec_helper"
2
+ require 'active_job/test_helper'
3
+
4
+ class TestJob < Lanes::Job
5
+
6
+ def perform
7
+ sleep 0.1
8
+ job_status.save(output: {one:1})
9
+ end
10
+ end
11
+
12
+
13
+ class JobSpec < ActiveJob::TestCase
14
+
15
+ def setup
16
+ @adapter = ActiveJob::Base.queue_adapter
17
+ ActiveJob::Base.queue_adapter = :test
18
+ end
19
+
20
+ def teardown
21
+ ActiveJob::Base.queue_adapter = @adapter
22
+ end
23
+
24
+ def test_job_records_status
25
+ job = TestJob.perform_later
26
+ assert_equal job.job_status.job_name, 'TestJob'
27
+ status_id = job.job_status.id
28
+ status = Jobba.find(status_id)
29
+
30
+ refute_same status, job.job_status
31
+ assert_equal status.data, job.job_status.data
32
+ end
33
+
34
+ def test_queue_progress
35
+ assert_no_enqueued_jobs
36
+ job = TestJob.new
37
+ perform_enqueued_jobs do
38
+ assert_nil job.job_status
39
+ job.enqueue
40
+ assert_equal 'queued', job.job_status.state.name
41
+ Thread.new do
42
+ job.perform_now
43
+ end
44
+ sleep 0.1
45
+ assert_equal 'started', job.job_status.state.name
46
+ sleep 0.1
47
+ assert_equal 'succeeded', job.job_status.state.name
48
+ end
49
+ job_status = Jobba.find(job.job_id)
50
+ assert_equal 'succeeded', job_status.state.name
51
+ assert_equal( {"output" => {"one" => 1}}, job_status.data )
52
+ end
53
+
54
+ end
@@ -6,11 +6,6 @@ require 'lanes/command'
6
6
  require 'lanes/workspace/extension'
7
7
  require 'mocha/mini_test'
8
8
 
9
- # ext = Extensions.controlling
10
- # if ext.is_a?(::Lanes::Extensions::Base)
11
- # Extensions.lock_controlling!
12
- # require_relative '../workspace/extension'
13
- # end
14
9
 
15
10
  module TestingModels
16
11
  include ActiveRecordMocks::IncludeMe
@@ -0,0 +1,23 @@
1
+ require_relative "spec_helper"
2
+ require "lanes/cli"
3
+ require "find"
4
+
5
+ describe Lanes::SystemSettings do
6
+
7
+ setup do
8
+ # needed because otherwise the rollback will leave configs without a db record
9
+ Lanes::SystemSettings.instance_variable_set(:@config, nil)
10
+ end
11
+
12
+ def test_getting_config
13
+ assert_kind_of Lanes::SystemSettings::ExtensionSettings, Lanes::SystemSettings.for_ext('foo')
14
+ end
15
+
16
+ def test_persisting_config
17
+ settings = Lanes::SystemSettings.for_ext('foo')
18
+ settings.foo = 'bar'
19
+ settings.persist!
20
+ assert_equal({foo: 'bar'}, Lanes::SystemSettings.for_ext('foo').to_h)
21
+ end
22
+
23
+ end
@@ -1,7 +1,9 @@
1
1
  class <%= screen_class %> extends <%= namespace %>.Screens.Base
2
2
 
3
3
  render: ->
4
- <div className="fancy-header">
5
- <h1>Hello bright shiny world</h1>
6
- <h2>Served by the <%=namespace%> extension&rsquo;s <%= class_name %> screen</h2>
7
- </div>
4
+ <LC.ScreenWrapper identifier="<%= screen_id %>">
5
+ <div className="fancy-header">
6
+ <h1>Hello bright shiny world</h1>
7
+ <h2>Served by the <%=namespace%> extension&rsquo;s <%= class_name %> screen</h2>
8
+ </div>
9
+ </LC.ScreenWrapper>
@@ -1,8 +1,9 @@
1
1
  /*
2
- If your screen does not use any custom styles
3
-
4
- You should remove this file and it's reference from config/screens.rb
2
+ You should remove this file if your screen does not use any custom styles
5
3
 
6
4
  Otherwise Lanes will continue to fetch an empty file whenever
7
5
  the screen is displayed
8
6
  */
7
+ .<%= screen_id %> {
8
+
9
+ }
@@ -1,2 +1,4 @@
1
1
  Lanes::API.routes.draw do
2
+ # Set default view for the site root. Adjust to fit your needs
3
+ root_view :lanes_root_view
2
4
  end
@@ -6,7 +6,9 @@
6
6
  screen.model_class = "<%= options[:model_class] %>"
7
7
  screen.view_class = "<%= class_name %>"
8
8
  <% unless options[:fileless] -%>
9
- screen.js = "<%= screen_id %>.js"
10
- screen.css = "<%= screen_id %>.css"
9
+ # screen.model_access = "write" # defaults to "read"
10
+ # Can optionally explicity set files to be included
11
+ # screen.js = "<%= screen_id %>.js"
12
+ # screen.css = "<%= screen_id %>.css"
11
13
  <% end -%>
12
14
  end
@@ -6,6 +6,10 @@ require_relative "<%= identifier %>/extension.rb"
6
6
  # The main namespace for <%= namespace %>
7
7
  module <%= namespace %>
8
8
 
9
+ def self.system_settings
10
+ Lanes::SystemSettings.for_ext('<%= identifier %>')
11
+ end
12
+
9
13
  end
10
14
 
11
15
  require_relative "<%= identifier %>/model"
@@ -17,6 +17,8 @@ module <%= namespace %>
17
17
 
18
18
  identifier "<%= identifier %>"
19
19
 
20
+ title "<%= title %>"
21
+
20
22
  root_path Pathname.new(__FILE__).dirname.join("..","..").expand_path
21
23
 
22
24
  # If a data structure that can be represented as JSON
@@ -2,4 +2,4 @@ describe "<%= screen_class %>", ->
2
2
 
3
3
  it "can be rendered", ->
4
4
  screen = LT.renderComponent(<%= screen_class %>)
5
- expect(screen.getDOMNode().textContent).toMatch("Hello")
5
+ expect(_.dom(screen).text).toMatch("Hello")
@@ -1,4 +1,4 @@
1
- require_relative 'spec_helpers'
1
+ require_relative 'spec_helper'
2
2
 
3
3
  class <%= class_name %>Spec < <%= namespace %>::TestCase
4
4
 
@@ -0,0 +1,70 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, minimal-ui"/>
7
+ <title><%= lanes_application_title %></title>
8
+ <style>
9
+ .loading {
10
+ position: fixed;
11
+ z-index: 999;
12
+ height: 2em;
13
+ width: 2em;
14
+ overflow: show;
15
+ margin: auto;
16
+ top: 0;
17
+ left: 0;
18
+ bottom: 0;
19
+ right: 0;
20
+ font-size: 2.8rem;
21
+ text-shadow: none;
22
+ background-color: transparent;
23
+ border: 0;
24
+ transition: opacity .5s ease-in-out;
25
+ }
26
+
27
+ .loading:before {
28
+ content: '';
29
+ display: block;
30
+ position: fixed;
31
+ top: 0;
32
+ left: 0;
33
+ width: 100%;
34
+ height: 100%;
35
+ background-color: rgba(0,0,0,0.3);
36
+ }
37
+
38
+ .loading:after {
39
+ content: '';
40
+ display: block;
41
+ font-size: 10px;
42
+ width: 1em;
43
+ height: 1em;
44
+ margin-top: -3em;
45
+ margin-left: -3em;
46
+ animation: spinner 1500ms infinite linear;
47
+ border-radius: 0.5em;
48
+ box-shadow: rgba(0, 0, 0, 0.75) 1.5em 0 0 0, rgba(0, 0, 0, 0.75) 1.1em 1.1em 0 0, rgba(0, 0, 0, 0.75) 0 1.5em 0 0, rgba(0, 0, 0, 0.75) -1.1em 1.1em 0 0, rgba(0, 0, 0, 0.75) -1.5em 0 0 0, rgba(0, 0, 0, 0.75) -1.1em -1.1em 0 0, rgba(0, 0, 0, 0.75) 0 -1.5em 0 0, rgba(0, 0, 0, 0.75) 1.1em -1.1em 0 0;
49
+ }
50
+
51
+ @keyframes spinner {
52
+ 0% { transform: rotate(0deg); }
53
+ 100% { transform: rotate(360deg); }
54
+ }
55
+ .loading.complete {
56
+ opacity: 0;
57
+ }
58
+ </style>
59
+ <%= lanes_stylesheet_tags %>
60
+ </head>
61
+
62
+ <body>
63
+ <div class="loading">Loading&#8230;</div>
64
+ <div id="root" />
65
+ <%= lanes_javascript_tags %>
66
+ <script type="text/javascript">
67
+ Lanes.renderScreenTo('#root', <%= client_bootstrap_data %> );
68
+ </script>
69
+ </body>
70
+ </html>
data/views/specs.erb CHANGED
@@ -5,7 +5,7 @@
5
5
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, minimal-ui"/>
7
7
  <title>Lanes Specs</title>
8
- <%= lanes_javascript_tag %>
8
+ <%= lanes_javascript_tags %>
9
9
  <%= javascript_tag 'lanes/screens/all.js' %>
10
10
  <% specs.css_files.each do |css_file| %>
11
11
  <link rel="stylesheet" href="<%= css_file %>" type="text/css" media="screen"/>
@@ -14,7 +14,7 @@
14
14
  <script src="<%= js_file %>" type="text/javascript"></script>
15
15
  <% end %>
16
16
  <script type="text/javascript">
17
- Lanes.Models.Bootstrap.initialize( <%= client_bootstrap_data %> );
17
+ Lanes.config.bootstrap( <%= client_bootstrap_data %> );
18
18
  </script>
19
19
 
20
20
  </head>
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lanes
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.9.5
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan Stitt
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-07-07 00:00:00.000000000 Z
11
+ date: 2016-03-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -24,6 +24,48 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '4.2'
27
+ - !ruby/object:Gem::Dependency
28
+ name: activejob
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '4.2'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '4.2'
41
+ - !ruby/object:Gem::Dependency
42
+ name: jobba
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.4'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.4'
55
+ - !ruby/object:Gem::Dependency
56
+ name: resque
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '1.25'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '1.25'
27
69
  - !ruby/object:Gem::Dependency
28
70
  name: pg
29
71
  requirement: !ruby/object:Gem::Requirement
@@ -84,44 +126,44 @@ dependencies:
84
126
  name: message_bus
85
127
  requirement: !ruby/object:Gem::Requirement
86
128
  requirements:
87
- - - "~>"
129
+ - - '='
88
130
  - !ruby/object:Gem::Version
89
- version: '1.0'
131
+ version: 2.0.0.beta.6
90
132
  type: :runtime
91
133
  prerelease: false
92
134
  version_requirements: !ruby/object:Gem::Requirement
93
135
  requirements:
94
- - - "~>"
136
+ - - '='
95
137
  - !ruby/object:Gem::Version
96
- version: '1.0'
138
+ version: 2.0.0.beta.6
97
139
  - !ruby/object:Gem::Dependency
98
- name: rack_csrf
140
+ name: rack-protection
99
141
  requirement: !ruby/object:Gem::Requirement
100
142
  requirements:
101
143
  - - "~>"
102
144
  - !ruby/object:Gem::Version
103
- version: '2.5'
145
+ version: '1.5'
104
146
  type: :runtime
105
147
  prerelease: false
106
148
  version_requirements: !ruby/object:Gem::Requirement
107
149
  requirements:
108
150
  - - "~>"
109
151
  - !ruby/object:Gem::Version
110
- version: '2.5'
152
+ version: '1.5'
111
153
  - !ruby/object:Gem::Dependency
112
154
  name: sprockets
113
155
  requirement: !ruby/object:Gem::Requirement
114
156
  requirements:
115
157
  - - "~>"
116
158
  - !ruby/object:Gem::Version
117
- version: '2.0'
159
+ version: '3.0'
118
160
  type: :runtime
119
161
  prerelease: false
120
162
  version_requirements: !ruby/object:Gem::Requirement
121
163
  requirements:
122
164
  - - "~>"
123
165
  - !ruby/object:Gem::Version
124
- version: '2.0'
166
+ version: '3.0'
125
167
  - !ruby/object:Gem::Dependency
126
168
  name: coffee-script
127
169
  requirement: !ruby/object:Gem::Requirement
@@ -198,14 +240,14 @@ dependencies:
198
240
  requirements:
199
241
  - - "~>"
200
242
  - !ruby/object:Gem::Version
201
- version: '1.1'
243
+ version: '1.2'
202
244
  type: :runtime
203
245
  prerelease: false
204
246
  version_requirements: !ruby/object:Gem::Requirement
205
247
  requirements:
206
248
  - - "~>"
207
249
  - !ruby/object:Gem::Version
208
- version: '1.1'
250
+ version: '1.2'
209
251
  - !ruby/object:Gem::Dependency
210
252
  name: compass-import-once
211
253
  requirement: !ruby/object:Gem::Requirement
@@ -305,33 +347,19 @@ dependencies:
305
347
  - !ruby/object:Gem::Version
306
348
  version: '2.3'
307
349
  - !ruby/object:Gem::Dependency
308
- name: yui-compressor
309
- requirement: !ruby/object:Gem::Requirement
310
- requirements:
311
- - - "~>"
312
- - !ruby/object:Gem::Version
313
- version: '0.12'
314
- type: :runtime
315
- prerelease: false
316
- version_requirements: !ruby/object:Gem::Requirement
317
- requirements:
318
- - - "~>"
319
- - !ruby/object:Gem::Version
320
- version: '0.12'
321
- - !ruby/object:Gem::Dependency
322
- name: closure-compiler
350
+ name: uglifier
323
351
  requirement: !ruby/object:Gem::Requirement
324
352
  requirements:
325
353
  - - "~>"
326
354
  - !ruby/object:Gem::Version
327
- version: '1.1'
355
+ version: '2.7'
328
356
  type: :runtime
329
357
  prerelease: false
330
358
  version_requirements: !ruby/object:Gem::Requirement
331
359
  requirements:
332
360
  - - "~>"
333
361
  - !ruby/object:Gem::Version
334
- version: '1.1'
362
+ version: '2.7'
335
363
  - !ruby/object:Gem::Dependency
336
364
  name: guard-jasmine
337
365
  requirement: !ruby/object:Gem::Requirement
@@ -402,6 +430,62 @@ dependencies:
402
430
  - - "~>"
403
431
  - !ruby/object:Gem::Version
404
432
  version: '3.0'
433
+ - !ruby/object:Gem::Dependency
434
+ name: carrierwave
435
+ requirement: !ruby/object:Gem::Requirement
436
+ requirements:
437
+ - - "~>"
438
+ - !ruby/object:Gem::Version
439
+ version: 0.10.0
440
+ type: :runtime
441
+ prerelease: false
442
+ version_requirements: !ruby/object:Gem::Requirement
443
+ requirements:
444
+ - - "~>"
445
+ - !ruby/object:Gem::Version
446
+ version: 0.10.0
447
+ - !ruby/object:Gem::Dependency
448
+ name: fog
449
+ requirement: !ruby/object:Gem::Requirement
450
+ requirements:
451
+ - - "~>"
452
+ - !ruby/object:Gem::Version
453
+ version: 1.37.0
454
+ type: :runtime
455
+ prerelease: false
456
+ version_requirements: !ruby/object:Gem::Requirement
457
+ requirements:
458
+ - - "~>"
459
+ - !ruby/object:Gem::Version
460
+ version: 1.37.0
461
+ - !ruby/object:Gem::Dependency
462
+ name: mini_magick
463
+ requirement: !ruby/object:Gem::Requirement
464
+ requirements:
465
+ - - "~>"
466
+ - !ruby/object:Gem::Version
467
+ version: 4.3.6
468
+ type: :runtime
469
+ prerelease: false
470
+ version_requirements: !ruby/object:Gem::Requirement
471
+ requirements:
472
+ - - "~>"
473
+ - !ruby/object:Gem::Version
474
+ version: 4.3.6
475
+ - !ruby/object:Gem::Dependency
476
+ name: fastimage
477
+ requirement: !ruby/object:Gem::Requirement
478
+ requirements:
479
+ - - "~>"
480
+ - !ruby/object:Gem::Version
481
+ version: 1.8.1
482
+ type: :runtime
483
+ prerelease: false
484
+ version_requirements: !ruby/object:Gem::Requirement
485
+ requirements:
486
+ - - "~>"
487
+ - !ruby/object:Gem::Version
488
+ version: 1.8.1
405
489
  - !ruby/object:Gem::Dependency
406
490
  name: bundler
407
491
  requirement: !ruby/object:Gem::Requirement
@@ -466,20 +550,6 @@ files:
466
550
  - client/fonts/fontawesome-webfont.woff
467
551
  - client/fonts/fontawesome-webfont.woff2
468
552
  - client/images/lanes/ajax-loader.gif
469
- - client/images/lanes/dataTables/Sorting icons.psd
470
- - client/images/lanes/dataTables/back_disabled.png
471
- - client/images/lanes/dataTables/back_enabled.png
472
- - client/images/lanes/dataTables/back_enabled_hover.png
473
- - client/images/lanes/dataTables/favicon.ico
474
- - client/images/lanes/dataTables/forward_disabled.png
475
- - client/images/lanes/dataTables/forward_enabled.png
476
- - client/images/lanes/dataTables/forward_enabled_hover.png
477
- - client/images/lanes/dataTables/loading-background.png
478
- - client/images/lanes/dataTables/sort_asc.png
479
- - client/images/lanes/dataTables/sort_asc_disabled.png
480
- - client/images/lanes/dataTables/sort_both.png
481
- - client/images/lanes/dataTables/sort_desc.png
482
- - client/images/lanes/dataTables/sort_desc_disabled.png
483
553
  - client/images/lanes/logo-sm.png
484
554
  - client/lanes/Boot.cjsx
485
555
  - client/lanes/Config.coffee
@@ -493,16 +563,25 @@ files:
493
563
  - client/lanes/access/screens/user-management/index.js
494
564
  - client/lanes/access/screens/user-management/index.scss
495
565
  - client/lanes/access/styles.scss
566
+ - client/lanes/components/calendar/Calendar.cjsx
567
+ - client/lanes/components/calendar/index.js
568
+ - client/lanes/components/calendar/styles.scss
496
569
  - client/lanes/components/enabled.js.erb
570
+ - client/lanes/components/grid/Body.cjsx
571
+ - client/lanes/components/grid/CellStyles.coffee
497
572
  - client/lanes/components/grid/EditingMixin.cjsx
573
+ - client/lanes/components/grid/Editor.cjsx
498
574
  - client/lanes/components/grid/Grid.cjsx
575
+ - client/lanes/components/grid/Header.cjsx
499
576
  - client/lanes/components/grid/PopOverMixin.cjsx
500
577
  - client/lanes/components/grid/PopoverEditor.cjsx
501
578
  - client/lanes/components/grid/RowEditor.cjsx
579
+ - client/lanes/components/grid/Selections.cjsx
502
580
  - client/lanes/components/grid/Toolbar.cjsx
503
581
  - client/lanes/components/grid/config.json
504
582
  - client/lanes/components/grid/editors.scss
505
583
  - client/lanes/components/grid/index.js
584
+ - client/lanes/components/grid/row-editor.scss
506
585
  - client/lanes/components/grid/styles.scss
507
586
  - client/lanes/components/helpers.coffee
508
587
  - client/lanes/components/index.js
@@ -519,21 +598,38 @@ files:
519
598
  - client/lanes/components/select-field/SelectField.cjsx
520
599
  - client/lanes/components/select-field/index.js
521
600
  - client/lanes/components/select-field/styles.scss
601
+ - client/lanes/components/shared/ControlLabel.cjsx
522
602
  - client/lanes/components/shared/CountBadge.cjsx
603
+ - client/lanes/components/shared/DateTime.cjsx
604
+ - client/lanes/components/shared/DisplayValue.cjsx
523
605
  - client/lanes/components/shared/ErrorDisplay.cjsx
524
606
  - client/lanes/components/shared/FieldMixin.cjsx
525
607
  - client/lanes/components/shared/FieldSet.cjsx
608
+ - client/lanes/components/shared/FieldWrapper.cjsx
609
+ - client/lanes/components/shared/FormGroup.cjsx
526
610
  - client/lanes/components/shared/GenericField.cjsx
527
611
  - client/lanes/components/shared/Helpers.coffee
612
+ - client/lanes/components/shared/Icon.cjsx
613
+ - client/lanes/components/shared/ImageSaver.cjsx
614
+ - client/lanes/components/shared/Input.cjsx
615
+ - client/lanes/components/shared/InputFieldMixin.cjsx
616
+ - client/lanes/components/shared/JobProgress.cjsx
617
+ - client/lanes/components/shared/NetworkActivityOverlay.cjsx
618
+ - client/lanes/components/shared/NumberInput.cjsx
528
619
  - client/lanes/components/shared/RadioField.cjsx
529
- - client/lanes/components/shared/Resize.cjsx
530
- - client/lanes/components/shared/TextArea.cjsx
531
- - client/lanes/components/shared/TextField.cjsx
620
+ - client/lanes/components/shared/ResizeSensor.cjsx
621
+ - client/lanes/components/shared/ScreenWrapper.cjsx
622
+ - client/lanes/components/shared/Throbber.cjsx
623
+ - client/lanes/components/shared/ToggleField.cjsx
532
624
  - client/lanes/components/shared/Tooltip.cjsx
533
625
  - client/lanes/components/shared/fields.scss
534
626
  - client/lanes/components/shared/fieldset.scss
627
+ - client/lanes/components/shared/image-saver.scss
535
628
  - client/lanes/components/shared/index.js
629
+ - client/lanes/components/shared/overlay.scss
630
+ - client/lanes/components/shared/resize-sensor.scss
536
631
  - client/lanes/components/shared/styles.scss
632
+ - client/lanes/components/shared/throbber.scss
537
633
  - client/lanes/components/toolbar/RemoteChangeSets.cjsx
538
634
  - client/lanes/components/toolbar/SaveButton.cjsx
539
635
  - client/lanes/components/toolbar/Toolbar.cjsx
@@ -552,8 +648,10 @@ files:
552
648
  - client/lanes/lib/MakeBaseClass.coffee
553
649
  - client/lanes/lib/ModuleSupport.coffee
554
650
  - client/lanes/lib/development.coffee
651
+ - client/lanes/lib/dom-polyfills.coffee
555
652
  - client/lanes/lib/dom.coffee
556
653
  - client/lanes/lib/el.coffee
654
+ - client/lanes/lib/format.coffee
557
655
  - client/lanes/lib/index.js.erb
558
656
  - client/lanes/lib/loader.coffee
559
657
  - client/lanes/lib/namespace.coffee
@@ -564,30 +662,34 @@ files:
564
662
  - client/lanes/lib/results.coffee
565
663
  - client/lanes/lib/utilFunctions.coffee
566
664
  - client/lanes/models/AssociationMap.coffee
665
+ - client/lanes/models/AssociationProxy.coffee
567
666
  - client/lanes/models/Base.coffee
568
- - client/lanes/models/Bootstrap.coffee
569
667
  - client/lanes/models/ChangeMonitor.coffee
570
668
  - client/lanes/models/ChangeSet.coffee
571
669
  - client/lanes/models/Collection.coffee
572
670
  - client/lanes/models/EnumMap.coffee
671
+ - client/lanes/models/JobStatus.coffee
573
672
  - client/lanes/models/PubSub.coffee
574
673
  - client/lanes/models/Query.coffee
575
- - client/lanes/models/QueryResults.coffee
576
674
  - client/lanes/models/ServerCache.coffee
675
+ - client/lanes/models/State.coffee
577
676
  - client/lanes/models/Sync.coffee
677
+ - client/lanes/models/SystemSettings.coffee
578
678
  - client/lanes/models/User.coffee
579
679
  - client/lanes/models/index.js
680
+ - client/lanes/models/mixins/FileSupport.coffee
580
681
  - client/lanes/models/mixins/HasCodeField.coffee
682
+ - client/lanes/models/query/ArrayResult.coffee
683
+ - client/lanes/models/query/CollectionResult.coffee
684
+ - client/lanes/models/query/Result.coffee
581
685
  - client/lanes/plugins/ResizeSensor.js
582
686
  - client/lanes/plugins/index.js
583
687
  - client/lanes/react/Component.coffee
584
688
  - client/lanes/react/DefaultComponentNotFound.cjsx
585
- - client/lanes/react/FormBindings.coffee
586
689
  - client/lanes/react/ModelObserver.coffee
587
690
  - client/lanes/react/ModelUpdate.coffee
588
691
  - client/lanes/react/PubSub.coffee
589
692
  - client/lanes/react/Root.cjsx
590
- - client/lanes/react/Router.cjsx
591
693
  - client/lanes/react/Screen.coffee
592
694
  - client/lanes/react/TimedHighlight.coffee
593
695
  - client/lanes/react/TimedMask.coffee
@@ -598,6 +700,7 @@ files:
598
700
  - client/lanes/react/mixins/Access.coffee
599
701
  - client/lanes/react/mixins/Component.coffee
600
702
  - client/lanes/react/mixins/Data.coffee
703
+ - client/lanes/react/mixins/FieldErrors.coffee
601
704
  - client/lanes/react/mixins/MonitorSize.coffee
602
705
  - client/lanes/react/mixins/ReadEditingState.coffee
603
706
  - client/lanes/react/mixins/RelayEditingState.coffee
@@ -606,7 +709,10 @@ files:
606
709
  - client/lanes/react/mixins/Viewport.coffee
607
710
  - client/lanes/screens/ChangeListener.coffee
608
711
  - client/lanes/screens/Commands.coffee
712
+ - client/lanes/screens/CommonComponents.cjsx
609
713
  - client/lanes/screens/Definitions.coffee
714
+ - client/lanes/screens/SystemSettings.cjsx
715
+ - client/lanes/screens/UserPreferences.cjsx
610
716
  - client/lanes/screens/all.js.erb
611
717
  - client/lanes/screens/index.js
612
718
  - client/lanes/screens/mixins/index.js
@@ -684,7 +790,6 @@ files:
684
790
  - client/lanes/styles/bootstrap/mixins/_text-emphasis.scss
685
791
  - client/lanes/styles/bootstrap/mixins/_text-overflow.scss
686
792
  - client/lanes/styles/bootstrap/mixins/_vendor-prefixes.scss
687
- - client/lanes/styles/dataTables.scss
688
793
  - client/lanes/styles/fonts.scss
689
794
  - client/lanes/styles/fonts/_animated.scss
690
795
  - client/lanes/styles/fonts/_bordered-pulled.scss
@@ -702,35 +807,49 @@ files:
702
807
  - client/lanes/styles/fonts/index.scss
703
808
  - client/lanes/styles/global.scss
704
809
  - client/lanes/styles/global/fancy-header.scss
705
- - client/lanes/styles/plugins/all.scss
706
- - client/lanes/styles/plugins/overlay.scss
707
- - client/lanes/styles/plugins/resize-sensor.scss
810
+ - client/lanes/styles/global/flexbox.scss
811
+ - client/lanes/styles/global/styles.scss
812
+ - client/lanes/styles/mixins/_dropdown.scss
813
+ - client/lanes/styles/mixins/_flexbox.scss
814
+ - client/lanes/styles/mixins/all.scss
815
+ - client/lanes/styles/variables.scss
708
816
  - client/lanes/testing/BeforeEach.coffee
709
817
  - client/lanes/testing/Helpers.coffee
710
818
  - client/lanes/testing/ModelSaver.coffee
711
819
  - client/lanes/testing/StubRouter.coffee
712
820
  - client/lanes/testing/TestObjects.coffee
713
821
  - client/lanes/testing/index.js
822
+ - client/lanes/testing/jasmine-react.js
714
823
  - client/lanes/vendor/base.js
824
+ - client/lanes/vendor/calendar.js
825
+ - client/lanes/vendor/calendar.scss
715
826
  - client/lanes/vendor/commons.js
716
827
  - client/lanes/vendor/development.js
717
828
  - client/lanes/vendor/grid.js
718
829
  - client/lanes/vendor/grid.scss
719
830
  - client/lanes/vendor/index.js
720
- - client/lanes/vendor/jquery-2.js
721
- - client/lanes/vendor/jquery.tap.js
722
- - client/lanes/vendor/magicsuggest.js
723
- - client/lanes/vendor/message-bus.coffee
831
+ - client/lanes/vendor/message-bus-ajax.js
832
+ - client/lanes/vendor/message-bus.js
833
+ - client/lanes/vendor/rw-widgets.eot
834
+ - client/lanes/vendor/rw-widgets.svg
835
+ - client/lanes/vendor/rw-widgets.ttf
836
+ - client/lanes/vendor/rw-widgets.woff
837
+ - client/lanes/vendor/toggle.js
838
+ - client/lanes/vendor/toggle.scss
724
839
  - client/lanes/vendor/widgets.js
725
840
  - client/lanes/vendor/widgets.scss
726
- - client/lanes/workspace/ActiveScreenSwitcher.cjsx
727
841
  - client/lanes/workspace/Extension.coffee
728
842
  - client/lanes/workspace/Layout.cjsx
843
+ - client/lanes/workspace/Modal.cjsx
729
844
  - client/lanes/workspace/Navbar.cjsx
730
845
  - client/lanes/workspace/ScreenView.cjsx
731
846
  - client/lanes/workspace/ScreensMenu.cjsx
847
+ - client/lanes/workspace/Tabs.cjsx
732
848
  - client/lanes/workspace/UIState.coffee
733
849
  - client/lanes/workspace/index.js
850
+ - client/lanes/workspace/mixin.coffee
851
+ - client/lanes/workspace/mixins/UIState.coffee
852
+ - client/lanes/workspace/mixins/index.js
734
853
  - client/lanes/workspace/styles.scss
735
854
  - client/lanes/workspace/styles/forms.scss
736
855
  - client/lanes/workspace/styles/header.scss
@@ -738,11 +857,12 @@ files:
738
857
  - client/lanes/workspace/styles/layout.scss
739
858
  - client/lanes/workspace/styles/screens.scss
740
859
  - client/lanes/workspace/styles/tabs.scss
741
- - client/lanes/workspace/styles/toolbar.scss
742
860
  - coffeelint.json
743
861
  - config.ru
744
862
  - config/database.yml
745
863
  - config/routes.rb
864
+ - config/screens.rb
865
+ - db/migrate/01_create_system_settings.rb
746
866
  - docs/command.md
747
867
  - docs/model.md
748
868
  - docs/react.md
@@ -770,8 +890,9 @@ files:
770
890
  - lib/lanes/api/coffeescript_processor.rb
771
891
  - lib/lanes/api/controller.rb
772
892
  - lib/lanes/api/default_routes.rb
773
- - lib/lanes/api/eco.js
774
893
  - lib/lanes/api/error_formatter.rb
894
+ - lib/lanes/api/formatted_reply.rb
895
+ - lib/lanes/api/handlers/file.rb
775
896
  - lib/lanes/api/helper_methods.rb
776
897
  - lib/lanes/api/javascript_processor.rb
777
898
  - lib/lanes/api/null_authentication_provider.rb
@@ -779,7 +900,6 @@ files:
779
900
  - lib/lanes/api/request_wrapper.rb
780
901
  - lib/lanes/api/root.rb
781
902
  - lib/lanes/api/routing.rb
782
- - lib/lanes/api/sprockets_compressor.rb
783
903
  - lib/lanes/api/sprockets_extension.rb
784
904
  - lib/lanes/api/test_specs.rb
785
905
  - lib/lanes/api/updates.rb
@@ -794,10 +914,12 @@ files:
794
914
  - lib/lanes/command/generate.rb
795
915
  - lib/lanes/command/generate_component.rb
796
916
  - lib/lanes/command/generate_component.usage
917
+ - lib/lanes/command/generate_migration.rb
797
918
  - lib/lanes/command/generate_model.rb
798
919
  - lib/lanes/command/generate_model.usage
799
920
  - lib/lanes/command/generate_screen.rb
800
921
  - lib/lanes/command/generate_screen.usage
922
+ - lib/lanes/command/migration_support.rb
801
923
  - lib/lanes/command/model_attribute.rb
802
924
  - lib/lanes/command/named_command.rb
803
925
  - lib/lanes/command/server.rb
@@ -816,10 +938,12 @@ files:
816
938
  - lib/lanes/concerns/export_methods.rb
817
939
  - lib/lanes/concerns/export_scope.rb
818
940
  - lib/lanes/concerns/exported_limit_evaluator.rb
941
+ - lib/lanes/concerns/image_uploader.rb
819
942
  - lib/lanes/concerns/pub_sub.rb
820
943
  - lib/lanes/concerns/queries.rb
821
944
  - lib/lanes/concerns/sanitize_fields.rb
822
945
  - lib/lanes/concerns/set_attribute_data.rb
946
+ - lib/lanes/concerns/sorting_expressions.rb
823
947
  - lib/lanes/configuration.rb
824
948
  - lib/lanes/db.rb
825
949
  - lib/lanes/db/migrations.rb
@@ -828,14 +952,18 @@ files:
828
952
  - lib/lanes/extension/definition.rb
829
953
  - lib/lanes/guard_tasks.rb
830
954
  - lib/lanes/hot_reload_plugin.rb
955
+ - lib/lanes/job.rb
956
+ - lib/lanes/job/failure_logger.rb
831
957
  - lib/lanes/logger.rb
832
958
  - lib/lanes/model.rb
833
959
  - lib/lanes/numbers.rb
834
960
  - lib/lanes/rails_engine.rb
835
961
  - lib/lanes/rake_tasks.rb
962
+ - lib/lanes/redis.rb
836
963
  - lib/lanes/screen.rb
837
964
  - lib/lanes/spec_helper.rb
838
965
  - lib/lanes/strings.rb
966
+ - lib/lanes/system_settings.rb
839
967
  - lib/lanes/validators/all.rb
840
968
  - lib/lanes/validators/email.rb
841
969
  - lib/lanes/validators/set.rb
@@ -845,14 +973,17 @@ files:
845
973
  - log/.gitkeep
846
974
  - npm-build/README
847
975
  - npm-build/base.js
976
+ - npm-build/calendar.js
848
977
  - npm-build/common.js
849
978
  - npm-build/compile.coffee
850
979
  - npm-build/development.js
851
980
  - npm-build/grid.js
852
981
  - npm-build/package.json
982
+ - npm-build/react-toggle.js
853
983
  - npm-build/react-widgets.js
854
984
  - npm-build/react-widgets.less
855
985
  - npm-build/shims/underscore.js
986
+ - npm-build/update-dayz
856
987
  - npm-build/webpack.config.js
857
988
  - spec/command-reference-files/component/client/appy-app/components/Big.cjsx
858
989
  - spec/command-reference-files/component/spec/appy-app/components/BigSpec.coffee
@@ -882,11 +1013,10 @@ files:
882
1013
  - spec/command-reference-files/initial/lib/appy-app/model.rb
883
1014
  - spec/command-reference-files/initial/lib/appy-app/version.rb
884
1015
  - spec/command-reference-files/initial/spec/appy-app/helpers/AppyAppHelpers.coffee
885
- - spec/command-reference-files/initial/spec/server/spec_helpers.rb
1016
+ - spec/command-reference-files/initial/spec/server/spec_helper.rb
886
1017
  - spec/command-reference-files/model/client/appy-app/models/TestTest.coffee
887
1018
  - spec/command-reference-files/model/config/routes.rb
888
1019
  - spec/command-reference-files/model/db/migrate/20150218032025_create_test_tests.rb
889
- - spec/command-reference-files/model/lib/appy-app.rb
890
1020
  - spec/command-reference-files/model/lib/appy-app/model.rb
891
1021
  - spec/command-reference-files/model/lib/appy-app/models/test_test.rb
892
1022
  - spec/command-reference-files/model/spec/appy-app/models/TestTestSpec.coffee
@@ -898,16 +1028,22 @@ files:
898
1028
  - spec/command-reference-files/screen/client/appy-app/screens/ready-set-go/index.scss
899
1029
  - spec/command-reference-files/screen/config/screens.rb
900
1030
  - spec/command-reference-files/screen/spec/appy-app/screens/ready-set-go/ReadySetGoSpec.coffee
1031
+ - spec/fixtures/system_settings.yml
901
1032
  - spec/lanes/components/grid/GridSpec.coffee
1033
+ - spec/lanes/components/grid/RowEditorSpec.coffee
1034
+ - spec/lanes/components/select-field/SelectFieldSpec.coffee
1035
+ - spec/lanes/components/shared/NetworkActivityOverlaySpec.coffee
902
1036
  - spec/lanes/helpers/.gitkeep
903
1037
  - spec/lanes/helpers/jasmine-matchers.js
904
1038
  - spec/lanes/helpers/lanes-helpers.coffee
905
1039
  - spec/lanes/helpers/mock-ajax.js
906
1040
  - spec/lanes/models/AssociationMapSpec.coffee
1041
+ - spec/lanes/models/AssociationProxySpec.coffee
907
1042
  - spec/lanes/models/BaseSpec.coffee
908
1043
  - spec/lanes/models/CollectionSpec.coffee
909
1044
  - spec/lanes/models/EnumMapSpec.coffee
910
1045
  - spec/lanes/models/PubSubSpec.coffee
1046
+ - spec/lanes/models/ServerCacheSpec.coffee
911
1047
  - spec/lanes/models/SyncSpec.coffee
912
1048
  - spec/lanes/models/UserSpec.coffee
913
1049
  - spec/lanes/react/mixins/DataSpec.coffee
@@ -925,11 +1061,14 @@ files:
925
1061
  - spec/server/concerns/exported_limits_spec.rb
926
1062
  - spec/server/concerns/pub_sub_spec.rb
927
1063
  - spec/server/concerns/set_attribute_data_spec.rb
1064
+ - spec/server/concerns/sorting_expressions_spec.rb
928
1065
  - spec/server/configuration_spec.rb
1066
+ - spec/server/job_spec.rb
929
1067
  - spec/server/minitest_assertions.rb
930
1068
  - spec/server/numbers_spec.rb
931
1069
  - spec/server/spec_helper.rb
932
1070
  - spec/server/strings_spec.rb
1071
+ - spec/server/system_settings_spec.rb
933
1072
  - tasks/migrations.rake
934
1073
  - tasks/publish.rake
935
1074
  - templates/Gemfile
@@ -968,8 +1107,8 @@ files:
968
1107
  - templates/spec/client/models/ModelSpec.coffee
969
1108
  - templates/spec/fixtures/namespace/model.yml
970
1109
  - templates/spec/server/model_spec.rb
971
- - templates/spec/server/spec_helpers.rb
972
- - views/index.erb
1110
+ - templates/spec/server/spec_helper.rb
1111
+ - views/lanes_root_view.erb
973
1112
  - views/specs.erb
974
1113
  - yard_ext/all.rb
975
1114
  - yard_ext/code_identifier_handler.rb
@@ -1004,7 +1143,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1004
1143
  version: '0'
1005
1144
  requirements: []
1006
1145
  rubyforge_project:
1007
- rubygems_version: 2.4.8
1146
+ rubygems_version: 2.4.5.1
1008
1147
  signing_key:
1009
1148
  specification_version: 4
1010
1149
  summary: Lanes is a framework for easily writing single page web applications