lanes 0.5.6 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (162) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +6 -2
  3. data/client/lanes/Config.coffee +6 -5
  4. data/client/lanes/access/LoginDialog.cjsx +4 -2
  5. data/client/lanes/access/Roles.coffee +3 -0
  6. data/client/lanes/access/screens/user-management/Editor.cjsx +1 -1
  7. data/client/lanes/components/grid/Body.cjsx +4 -3
  8. data/client/lanes/components/grid/Grid.cjsx +4 -3
  9. data/client/lanes/components/grid/Header.cjsx +1 -1
  10. data/client/lanes/components/grid/PopOverMixin.cjsx +6 -6
  11. data/client/lanes/components/grid/Selections.cjsx +16 -6
  12. data/client/lanes/components/grid/Toolbar.cjsx +1 -1
  13. data/client/lanes/components/grid/styles.scss +21 -5
  14. data/client/lanes/components/modal/Modal.cjsx +18 -9
  15. data/client/lanes/components/record-finder/Clause.cjsx +1 -2
  16. data/client/lanes/components/record-finder/Dialog.cjsx +11 -3
  17. data/client/lanes/components/record-finder/RecordFinder.cjsx +14 -7
  18. data/client/lanes/components/record-finder/styles.scss +1 -0
  19. data/client/lanes/components/select-field/SelectField.cjsx +36 -10
  20. data/client/lanes/components/select-field/styles.scss +7 -0
  21. data/client/lanes/components/shared/Checkbox.cjsx +34 -0
  22. data/client/lanes/components/shared/DateTime.cjsx +3 -2
  23. data/client/lanes/components/shared/ErrorDisplay.cjsx +1 -1
  24. data/client/lanes/components/shared/FieldMixin.cjsx +26 -15
  25. data/client/lanes/components/shared/FieldSet.cjsx +1 -1
  26. data/client/lanes/components/shared/FieldWrapper.cjsx +2 -2
  27. data/client/lanes/components/shared/FormGroup.cjsx +2 -2
  28. data/client/lanes/components/shared/Icon.cjsx +31 -4
  29. data/client/lanes/components/shared/IconButton.cjsx +8 -0
  30. data/client/lanes/components/shared/ImageAsset.cjsx +8 -5
  31. data/client/lanes/components/shared/IndeterminateCheckbox.cjsx +19 -0
  32. data/client/lanes/components/shared/InputFieldMixin.cjsx +6 -0
  33. data/client/lanes/components/shared/JobProgress.cjsx +4 -3
  34. data/client/lanes/components/shared/NetworkActivityOverlay.cjsx +1 -1
  35. data/client/lanes/components/shared/ScreenWrapper.cjsx +1 -1
  36. data/client/lanes/components/shared/ToggleField.cjsx +2 -1
  37. data/client/lanes/components/shared/Tooltip.cjsx +10 -2
  38. data/client/lanes/components/shared/fields.scss +7 -2
  39. data/client/lanes/components/toolbar/RemoteChangeSets.cjsx +10 -7
  40. data/client/lanes/components/toolbar/SaveButton.cjsx +5 -4
  41. data/client/lanes/components/toolbar/Toolbar.cjsx +18 -19
  42. data/client/lanes/components/toolbar/changes-notification.scss +3 -1
  43. data/client/lanes/components/toolbar/styles.scss +6 -3
  44. data/client/lanes/lib/HotReload.coffee +1 -1
  45. data/client/lanes/lib/all.js +1 -1
  46. data/client/lanes/lib/dom.coffee +14 -1
  47. data/client/lanes/lib/format.coffee +3 -0
  48. data/client/lanes/lib/loader.coffee +0 -2
  49. data/client/lanes/lib/{dom-polyfills.coffee → polyfills.coffee} +3 -0
  50. data/client/lanes/lib/utilFunctions.coffee +5 -7
  51. data/client/lanes/models/Asset.coffee +33 -20
  52. data/client/lanes/models/AssociationMap.coffee +5 -6
  53. data/client/lanes/models/Base.coffee +5 -2
  54. data/client/lanes/models/Collection.coffee +23 -2
  55. data/client/lanes/models/PubSub.coffee +51 -13
  56. data/client/lanes/models/Query.coffee +53 -42
  57. data/client/lanes/models/State.coffee +5 -4
  58. data/client/lanes/models/Sync.coffee +5 -3
  59. data/client/lanes/models/index.js +1 -1
  60. data/client/lanes/models/mixins/TrackCollectionRemovals.coffee +17 -0
  61. data/client/lanes/models/query/ArrayResult.coffee +16 -17
  62. data/client/lanes/models/query/CollectionResult.coffee +4 -4
  63. data/client/lanes/react/Component.coffee +14 -13
  64. data/client/lanes/react/Root.cjsx +1 -1
  65. data/client/lanes/react/Screen.coffee +1 -0
  66. data/client/lanes/react/Viewport.coffee +52 -16
  67. data/client/lanes/react/mixins/Access.coffee +5 -0
  68. data/client/lanes/react/mixins/Data.coffee +52 -144
  69. data/client/lanes/react/mixins/MonitorSize.coffee +1 -1
  70. data/client/lanes/react/mixins/ReadEditingState.coffee +3 -0
  71. data/client/lanes/screens/Commands.coffee +1 -1
  72. data/client/lanes/screens/CommonComponents.cjsx +2 -2
  73. data/client/lanes/screens/Definitions.coffee +3 -1
  74. data/client/lanes/screens/SystemSettings.cjsx +13 -18
  75. data/client/lanes/screens/UserPreferences.cjsx +1 -1
  76. data/client/lanes/styles/fonts.scss +2 -3
  77. data/client/lanes/styles/global/styles.scss +2 -1
  78. data/client/lanes/testing/TestObjects.coffee +6 -2
  79. data/client/lanes/vendor/action_cable.js +590 -0
  80. data/client/lanes/vendor/development/calendar.js +56 -56
  81. data/client/lanes/vendor/development/commons.js +7819 -6690
  82. data/client/lanes/vendor/development/data.js +1877 -1455
  83. data/client/lanes/vendor/development/helpers.js +39 -82
  84. data/client/lanes/vendor/development/toggle.js +20 -20
  85. data/client/lanes/vendor/development/ui.js +14629 -14261
  86. data/client/lanes/vendor/development/widgets.js +3146 -2173
  87. data/client/lanes/vendor/index.js +1 -2
  88. data/client/lanes/vendor/production/calendar.js +56 -56
  89. data/client/lanes/vendor/production/commons.js +6352 -6185
  90. data/client/lanes/vendor/production/data.js +1871 -1456
  91. data/client/lanes/vendor/production/toggle.js +20 -20
  92. data/client/lanes/vendor/production/ui.js +14694 -14286
  93. data/client/lanes/vendor/production/widgets.js +3139 -2166
  94. data/client/lanes/vendor/standalone/index.js +5666 -4586
  95. data/client/lanes/vendor/styles/widgets.scss +5 -5
  96. data/client/lanes/workspace/Layout.cjsx +1 -10
  97. data/client/lanes/workspace/Navbar.cjsx +8 -13
  98. data/client/lanes/workspace/ScreenView.cjsx +3 -4
  99. data/client/lanes/workspace/ScreensMenu.cjsx +8 -19
  100. data/client/lanes/workspace/Tabs.cjsx +6 -14
  101. data/db/migrate/02_create_assets.rb +1 -3
  102. data/lanes.gemspec +16 -11
  103. data/lib/lanes/access/test_fixture_extensions.rb +6 -10
  104. data/lib/lanes/access/track_modifications.rb +24 -0
  105. data/lib/lanes/api/cable.rb +49 -0
  106. data/lib/lanes/api/controller_base.rb +52 -9
  107. data/lib/lanes/api/default_routes.rb +9 -0
  108. data/lib/lanes/api/generic_controller.rb +2 -9
  109. data/lib/lanes/api/handlers/asset.rb +5 -6
  110. data/lib/lanes/api/helper_methods.rb +3 -2
  111. data/lib/lanes/api/javascript_processor.rb +6 -5
  112. data/lib/lanes/api/pub_sub.rb +14 -32
  113. data/lib/lanes/api/request_wrapper.rb +1 -1
  114. data/lib/lanes/api/root.rb +4 -7
  115. data/lib/lanes/api/routing.rb +3 -3
  116. data/lib/lanes/api/sprockets_extension.rb +1 -1
  117. data/lib/lanes/api.rb +4 -0
  118. data/lib/lanes/asset.rb +25 -25
  119. data/lib/lanes/concerns/asset_uploader.rb +25 -47
  120. data/lib/lanes/concerns/export_scope.rb +5 -7
  121. data/lib/lanes/concerns/queries.rb +7 -3
  122. data/lib/lanes/concerns/set_attribute_data.rb +12 -6
  123. data/lib/lanes/configuration.rb +4 -7
  124. data/lib/lanes/db.rb +3 -1
  125. data/lib/lanes/guard_tasks.rb +2 -1
  126. data/lib/lanes/hot_reload_plugin.rb +2 -1
  127. data/lib/lanes/job.rb +0 -1
  128. data/lib/lanes/logger.rb +3 -3
  129. data/lib/lanes/model.rb +0 -3
  130. data/lib/lanes/spec_helper.rb +1 -1
  131. data/lib/lanes/system_settings.rb +8 -14
  132. data/lib/lanes/version.rb +1 -1
  133. data/npm-build/data.js +1 -0
  134. data/npm-build/package.json +21 -19
  135. data/npm-build/ui.js +3 -0
  136. data/npm-build/update-dayz +2 -2
  137. data/npm-build/update-model-bindings.js +5 -0
  138. data/spec/command-reference-files/initial/Gemfile +1 -1
  139. data/spec/command-reference-files/initial/config/database.yml +1 -0
  140. data/spec/command-reference-files/initial/config/lanes.rb +3 -3
  141. data/spec/command-reference-files/screen/spec/appy-app/screens/ready-set-go/ReadySetGoSpec.coffee +1 -1
  142. data/spec/lanes/components/grid/GridSpec.coffee +2 -2
  143. data/spec/lanes/components/grid/PopoverEditorSpec.coffee +11 -12
  144. data/spec/lanes/components/select-field/SelectFieldSpec.coffee +6 -4
  145. data/spec/lanes/components/shared/NetworkActivityOverlaySpec.coffee +1 -1
  146. data/spec/lanes/models/PubSubSpec.coffee +6 -8
  147. data/spec/lanes/models/QuerySpec.coffee +19 -0
  148. data/spec/lanes/react/mixins/DataSpec.coffee +18 -16
  149. data/spec/server/api/coffeescript_processor_spec.rb +1 -1
  150. data/spec/server/api/controller_base_spec.rb +77 -0
  151. data/spec/server/api/pub_sub_spec.rb +9 -0
  152. data/spec/server/asset_spec.rb +23 -18
  153. data/spec/server/concerns/export_scope_spec.rb +2 -1
  154. data/spec/server/concerns/exported_limits_spec.rb +14 -9
  155. data/spec/server/concerns/set_attribute_data_spec.rb +17 -0
  156. data/spec/server/spec_helper.rb +29 -11
  157. data/templates/config/database.yml +1 -0
  158. data/templates/spec/client/Screen.coffee +1 -1
  159. data/views/specs.erb +4 -1
  160. metadata +138 -89
  161. data/client/lanes/vendor/message-bus-ajax.js +0 -44
  162. data/client/lanes/vendor/message-bus.js +0 -414
@@ -8,7 +8,7 @@ webpackJsonp([0],{
8
8
 
9
9
  Lanes.Vendor.Dayz = __webpack_require__(10);
10
10
 
11
- __webpack_require__(426);
11
+ __webpack_require__(431);
12
12
 
13
13
  /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))
14
14
 
@@ -22,15 +22,15 @@ webpackJsonp([0],{
22
22
  var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
23
23
 
24
24
  var React = __webpack_require__(11);
25
- var moment = __webpack_require__(47);
26
- var Layout = __webpack_require__(150);
27
- var Day = __webpack_require__(271);
28
- var XLabels = __webpack_require__(404);
29
- var YLabels = __webpack_require__(408);
25
+ var moment = __webpack_require__(42);
26
+ var Layout = __webpack_require__(146);
27
+ var Day = __webpack_require__(267);
28
+ var XLabels = __webpack_require__(409);
29
+ var YLabels = __webpack_require__(413);
30
30
 
31
- __webpack_require__(412); // needed in order to for range to install itself
31
+ __webpack_require__(417); // needed in order to for range to install itself
32
32
 
33
- var EventsCollection = __webpack_require__(413);
33
+ var EventsCollection = __webpack_require__(418);
34
34
 
35
35
  var Dayz = React.createClass({
36
36
  displayName: 'Dayz',
@@ -132,7 +132,7 @@ webpackJsonp([0],{
132
132
 
133
133
  /***/ },
134
134
 
135
- /***/ 150:
135
+ /***/ 146:
136
136
  /***/ function(module, exports, __webpack_require__) {
137
137
 
138
138
  'use strict';
@@ -141,11 +141,11 @@ webpackJsonp([0],{
141
141
 
142
142
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
143
143
 
144
- var assign = __webpack_require__(151);
145
- var each = __webpack_require__(182);
146
- var moment = __webpack_require__(47);
147
- var EventLayout = __webpack_require__(269);
148
- var C = __webpack_require__(270);
144
+ var assign = __webpack_require__(147);
145
+ var each = __webpack_require__(178);
146
+ var moment = __webpack_require__(42);
147
+ var EventLayout = __webpack_require__(265);
148
+ var C = __webpack_require__(266);
149
149
 
150
150
  function cacheKey(day) {
151
151
  return day.format('YYYYMMDD');
@@ -340,15 +340,15 @@ webpackJsonp([0],{
340
340
 
341
341
  /***/ },
342
342
 
343
- /***/ 182:
343
+ /***/ 178:
344
344
  /***/ function(module, exports, __webpack_require__) {
345
345
 
346
- module.exports = __webpack_require__(183);
346
+ module.exports = __webpack_require__(179);
347
347
 
348
348
 
349
349
  /***/ },
350
350
 
351
- /***/ 269:
351
+ /***/ 265:
352
352
  /***/ function(module, exports, __webpack_require__) {
353
353
 
354
354
  'use strict';
@@ -357,7 +357,7 @@ webpackJsonp([0],{
357
357
 
358
358
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
359
359
 
360
- var moment = __webpack_require__(47);
360
+ var moment = __webpack_require__(42);
361
361
 
362
362
  // an event layout describes how an event is displayed.
363
363
  // A event may be split into one or more layouts in order to be split across week boundaries
@@ -457,7 +457,7 @@ webpackJsonp([0],{
457
457
 
458
458
  /***/ },
459
459
 
460
- /***/ 270:
460
+ /***/ 266:
461
461
  /***/ function(module, exports) {
462
462
 
463
463
  "use strict";
@@ -470,7 +470,7 @@ webpackJsonp([0],{
470
470
 
471
471
  /***/ },
472
472
 
473
- /***/ 271:
473
+ /***/ 267:
474
474
  /***/ function(module, exports, __webpack_require__) {
475
475
 
476
476
  'use strict';
@@ -478,12 +478,12 @@ webpackJsonp([0],{
478
478
  var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
479
479
 
480
480
  var React = __webpack_require__(11);
481
- var Layout = __webpack_require__(150);
482
- var Event = __webpack_require__(272);
483
- var Label = __webpack_require__(403);
484
- var assign = __webpack_require__(151);
485
- var each = __webpack_require__(182);
486
- var ReactDOM = __webpack_require__(273);
481
+ var Layout = __webpack_require__(146);
482
+ var Event = __webpack_require__(268);
483
+ var Label = __webpack_require__(408);
484
+ var assign = __webpack_require__(147);
485
+ var each = __webpack_require__(178);
486
+ var ReactDOM = __webpack_require__(269);
487
487
 
488
488
  var IsDayClass = new RegExp('(\\s|^)(events|day|label)(\\s|$)');
489
489
 
@@ -616,14 +616,14 @@ webpackJsonp([0],{
616
616
 
617
617
  /***/ },
618
618
 
619
- /***/ 272:
619
+ /***/ 268:
620
620
  /***/ function(module, exports, __webpack_require__) {
621
621
 
622
622
  'use strict';
623
623
 
624
624
  var React = __webpack_require__(11);
625
- var ReactDOM = __webpack_require__(273);
626
- var EventLayout = __webpack_require__(269);
625
+ var ReactDOM = __webpack_require__(269);
626
+ var EventLayout = __webpack_require__(265);
627
627
  var IsResizeClass = new RegExp('(\\s|^)event(\\s|$)');
628
628
 
629
629
  var Event = React.createClass({
@@ -695,7 +695,7 @@ webpackJsonp([0],{
695
695
 
696
696
  /***/ },
697
697
 
698
- /***/ 403:
698
+ /***/ 408:
699
699
  /***/ function(module, exports, __webpack_require__) {
700
700
 
701
701
  'use strict';
@@ -723,13 +723,13 @@ webpackJsonp([0],{
723
723
 
724
724
  /***/ },
725
725
 
726
- /***/ 404:
726
+ /***/ 409:
727
727
  /***/ function(module, exports, __webpack_require__) {
728
728
 
729
729
  'use strict';
730
730
 
731
731
  var React = __webpack_require__(11);
732
- var map = __webpack_require__(405);
732
+ var map = __webpack_require__(410);
733
733
 
734
734
  var XLabels = React.createClass({
735
735
  displayName: 'XLabels',
@@ -771,16 +771,16 @@ webpackJsonp([0],{
771
771
 
772
772
  /***/ },
773
773
 
774
- /***/ 408:
774
+ /***/ 413:
775
775
  /***/ function(module, exports, __webpack_require__) {
776
776
 
777
777
  'use strict';
778
778
 
779
779
  var React = __webpack_require__(11);
780
- var moment = __webpack_require__(47);
781
- var Layout = __webpack_require__(150);
782
- var each = __webpack_require__(182);
783
- var range = __webpack_require__(409);
780
+ var moment = __webpack_require__(42);
781
+ var Layout = __webpack_require__(146);
782
+ var each = __webpack_require__(178);
783
+ var range = __webpack_require__(414);
784
784
 
785
785
  var YLabels = React.createClass({
786
786
  displayName: 'YLabels',
@@ -832,10 +832,10 @@ webpackJsonp([0],{
832
832
 
833
833
  /***/ },
834
834
 
835
- /***/ 409:
835
+ /***/ 414:
836
836
  /***/ function(module, exports, __webpack_require__) {
837
837
 
838
- var createRange = __webpack_require__(410);
838
+ var createRange = __webpack_require__(415);
839
839
 
840
840
  /**
841
841
  * Creates an array of numbers (positive and/or negative) progressing from
@@ -885,12 +885,12 @@ webpackJsonp([0],{
885
885
 
886
886
  /***/ },
887
887
 
888
- /***/ 410:
888
+ /***/ 415:
889
889
  /***/ function(module, exports, __webpack_require__) {
890
890
 
891
- var baseRange = __webpack_require__(411),
892
- isIterateeCall = __webpack_require__(156),
893
- toNumber = __webpack_require__(168);
891
+ var baseRange = __webpack_require__(416),
892
+ isIterateeCall = __webpack_require__(152),
893
+ toNumber = __webpack_require__(164);
894
894
 
895
895
  /**
896
896
  * Creates a `_.range` or `_.rangeRight` function.
@@ -923,7 +923,7 @@ webpackJsonp([0],{
923
923
 
924
924
  /***/ },
925
925
 
926
- /***/ 411:
926
+ /***/ 416:
927
927
  /***/ function(module, exports) {
928
928
 
929
929
  /* Built-in method references for those with the same name as other `lodash` methods. */
@@ -958,7 +958,7 @@ webpackJsonp([0],{
958
958
 
959
959
  /***/ },
960
960
 
961
- /***/ 413:
961
+ /***/ 418:
962
962
  /***/ function(module, exports, __webpack_require__) {
963
963
 
964
964
  'use strict';
@@ -967,11 +967,11 @@ webpackJsonp([0],{
967
967
 
968
968
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
969
969
 
970
- var Event = __webpack_require__(414);
971
- var Emitter = __webpack_require__(415);
972
- var _each = __webpack_require__(182);
973
- var assign = __webpack_require__(151);
974
- var sortBy = __webpack_require__(416);
970
+ var Event = __webpack_require__(419);
971
+ var Emitter = __webpack_require__(420);
972
+ var _each = __webpack_require__(178);
973
+ var assign = __webpack_require__(147);
974
+ var sortBy = __webpack_require__(421);
975
975
 
976
976
  function lengthCompare(event) {
977
977
  return event.attributes.range.start.diff(event.attributes.range.end);
@@ -1034,7 +1034,7 @@ webpackJsonp([0],{
1034
1034
 
1035
1035
  /***/ },
1036
1036
 
1037
- /***/ 414:
1037
+ /***/ 419:
1038
1038
  /***/ function(module, exports, __webpack_require__) {
1039
1039
 
1040
1040
  'use strict';
@@ -1044,9 +1044,9 @@ webpackJsonp([0],{
1044
1044
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
1045
1045
 
1046
1046
  var React = __webpack_require__(11);
1047
- var assign = __webpack_require__(151);
1048
- var each = __webpack_require__(182);
1049
- var Emitter = __webpack_require__(415);
1047
+ var assign = __webpack_require__(147);
1048
+ var each = __webpack_require__(178);
1049
+ var Emitter = __webpack_require__(420);
1050
1050
 
1051
1051
  var EVENT_COUNTER = 1;
1052
1052
 
@@ -1181,7 +1181,7 @@ webpackJsonp([0],{
1181
1181
 
1182
1182
  /***/ },
1183
1183
 
1184
- /***/ 415:
1184
+ /***/ 420:
1185
1185
  /***/ function(module, exports) {
1186
1186
 
1187
1187
  function E () {
@@ -1254,7 +1254,7 @@ webpackJsonp([0],{
1254
1254
 
1255
1255
  /***/ },
1256
1256
 
1257
- /***/ 426:
1257
+ /***/ 431:
1258
1258
  /***/ function(module, exports, __webpack_require__) {
1259
1259
 
1260
1260
  module.exports = __webpack_require__.p + "calendar.scss";