ende 0.3.13 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. checksums.yaml +4 -4
  2. data/component.json +7 -0
  3. data/lib/assets/javascripts/aura/extensions/devise.js.coffee +2 -2
  4. data/lib/assets/javascripts/aura/extensions/loader.js.coffee +13 -11
  5. data/lib/assets/javascripts/aura/extensions/mask.js.coffee +54 -40
  6. data/lib/assets/javascripts/aura/extensions/mediator.js +5 -3
  7. data/lib/assets/javascripts/aura/extensions/models.js.coffee.erb +2 -2
  8. data/lib/assets/javascripts/aura/extensions/rivets/accounting.js.coffee +7 -1
  9. data/lib/assets/javascripts/aura/extensions/rivets/formatters.js.coffee +5 -1
  10. data/lib/assets/javascripts/aura/extensions/rivets.js.coffee +47 -29
  11. data/lib/assets/javascripts/aura/extensions/routes.js.coffee +10 -5
  12. data/lib/assets/javascripts/aura/extensions/states.js.coffee +2 -2
  13. data/lib/assets/javascripts/aura/extensions/widget/eventable.js.coffee +18 -19
  14. data/lib/assets/javascripts/aura/extensions/widget/lifecycleable.js.coffee +15 -10
  15. data/lib/assets/javascripts/config/initializers/jquery.js.coffee +2 -1
  16. data/lib/assets/javascripts/config/initializers/requirejs.js.coffee +3 -4
  17. data/lib/assets/javascripts/config/initializers.js.coffee +3 -0
  18. data/lib/assets/javascripts/config/load_components.js.coffee +106 -83
  19. data/lib/assets/javascripts/ende.js.coffee +13 -4
  20. data/lib/assets/javascripts/widgets/authenticator/presenter.js.coffee +3 -2
  21. data/lib/assets/javascripts/widgets/dialog/main.js.coffee +7 -3
  22. data/lib/assets/javascripts/widgets/support/main.js.coffee +3 -4
  23. data/lib/assets/javascripts/widgets/viewer/main.js.coffee +35 -103
  24. data/lib/assets/javascripts/widgets/viewer/presenters/default.js.coffee +2 -4
  25. data/lib/ende/version.rb +1 -1
  26. data/vendor/assets/components/build.js +30877 -0
  27. data/vendor/assets/components/ende_build.js +2487 -148
  28. data/vendor/assets/components/indemma_with_none.js +30553 -0
  29. data/vendor/assets/javascripts/spin/spin.js +349 -0
  30. data/vendor/components/indefinido-indemma/.gitignore +3 -0
  31. data/vendor/components/indefinido-indemma/.ruby-gemset +1 -1
  32. data/vendor/components/indefinido-indemma/.ruby-version +1 -1
  33. data/vendor/components/indefinido-indemma/build/development.js +17 -14
  34. data/vendor/components/indefinido-indemma/build/release.js +213 -148
  35. data/vendor/components/indefinido-indemma/build/test.js +213 -148
  36. data/vendor/components/indefinido-indemma/component.json +3 -1
  37. data/vendor/components/indefinido-indemma/karma.conf.js +50 -60
  38. data/vendor/components/indefinido-indemma/lib/record/associable.js +17 -17
  39. data/vendor/components/indefinido-indemma/lib/record/persistable.js +8 -1
  40. data/vendor/components/indefinido-indemma/lib/record/queryable.js +3 -0
  41. data/vendor/components/indefinido-indemma/lib/record/resource.js +25 -45
  42. data/vendor/components/indefinido-indemma/lib/record/restfulable.js +82 -28
  43. data/vendor/components/indefinido-indemma/lib/record/scopable.js +28 -2
  44. data/vendor/components/indefinido-indemma/lib/record/storable.js +1 -1
  45. data/vendor/components/indefinido-indemma/lib/record/validatable.js +15 -23
  46. data/vendor/components/indefinido-indemma/lib/record/validations/associated.js +3 -5
  47. data/vendor/components/indefinido-indemma/lib/record/validations/confirmation.js +3 -5
  48. data/vendor/components/indefinido-indemma/lib/record/validations/cpf.js +5 -7
  49. data/vendor/components/indefinido-indemma/lib/record/validations/presence.js +3 -5
  50. data/vendor/components/indefinido-indemma/lib/record/validations/remote.js +3 -7
  51. data/vendor/components/indefinido-indemma/lib/record/validations/type.js +2 -2
  52. data/vendor/components/indefinido-indemma/lib/record/validations/validatorable.js +12 -0
  53. data/vendor/components/indefinido-indemma/package.json +9 -0
  54. data/vendor/components/indefinido-indemma/spec/record/restfulable_spec.js +12 -0
  55. data/vendor/components/indefinido-indemma/spec/record/validatable_spec.js +4 -4
  56. data/vendor/components/indefinido-indemma/spec/record/validations/associated_spec.js +2 -2
  57. data/vendor/components/indefinido-indemma/src/lib/record/associable.coffee +44 -20
  58. data/vendor/components/indefinido-indemma/src/lib/record/persistable.coffee +7 -2
  59. data/vendor/components/indefinido-indemma/src/lib/record/queryable.coffee +1 -0
  60. data/vendor/components/indefinido-indemma/src/lib/record/resource.coffee +32 -32
  61. data/vendor/components/indefinido-indemma/src/lib/record/restfulable.coffee +79 -22
  62. data/vendor/components/indefinido-indemma/src/lib/record/scopable.coffee +27 -8
  63. data/vendor/components/indefinido-indemma/src/lib/record/storable.coffee +1 -1
  64. data/vendor/components/indefinido-indemma/src/lib/record/validatable.coffee +20 -19
  65. data/vendor/components/indefinido-indemma/src/lib/record/validations/associated.coffee +3 -5
  66. data/vendor/components/indefinido-indemma/src/lib/record/validations/confirmation.coffee +2 -4
  67. data/vendor/components/indefinido-indemma/src/lib/record/validations/cpf.coffee +4 -5
  68. data/vendor/components/indefinido-indemma/src/lib/record/validations/presence.coffee +2 -5
  69. data/vendor/components/indefinido-indemma/src/lib/record/validations/remote.coffee +3 -7
  70. data/vendor/components/indefinido-indemma/src/lib/record/validations/type.coffee +2 -3
  71. data/vendor/components/indefinido-indemma/src/lib/record/validations/validatorable.coffee +5 -0
  72. data/vendor/components/indefinido-indemma/src/spec/record/restfulable_spec.coffee +8 -0
  73. data/vendor/components/indefinido-indemma/src/spec/record/validatable_spec.coffee +4 -4
  74. data/vendor/components/indefinido-indemma/src/spec/record/validations/associated_spec.coffee +2 -2
  75. metadata +9 -3
  76. data/lib/assets/javascripts/aura/extensions/rivets/formatters.js.coffee~ +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 857b7d175f476f673248c3c9a0ddee276913fa0e
4
- data.tar.gz: 6d18ac351c4b2de2c4bda63c06a8ecfe24c3bb84
3
+ metadata.gz: 42feeb9bdfbce1fa04abe5a344b44da80456e256
4
+ data.tar.gz: f120b379354f93cab969053a7a3f519ffa7bc4b2
5
5
  SHA512:
6
- metadata.gz: 2f3f412ed571b37ad797fe61210e1e743707ae4f91280736ba7e143953763176692c917b196fcd74c67fdfc0c55591133857b6c321f18ee3b52178b218d38f2c
7
- data.tar.gz: b62a0062319c9b5de96e2e6bf9753a0e3307dc96dc437203da3418094b9a43be266fb93a1ff00a29936ce871942928fc018c04901f9be80bd93895fcf719c276
6
+ metadata.gz: 7b4e7ed00e3a274d3c69a4f6db887cef9f3a9eabded894be35c376dcc18f66bed17258c3f51a3457ed441b2fed4e1b93293da956c76897cb594aef978ecb0f76
7
+ data.tar.gz: cbc980da7c285c17b53d5c74552c4c568013b93fbbd9d27e2f2953c80d423468cd89dbe6cda628644f217e0317a802d55633a2c9e1a26fd507860c59e1fda29b
data/component.json CHANGED
@@ -22,7 +22,14 @@
22
22
  "scripts": [
23
23
  "vendor/assets/javascripts/lennon/lennon.js",
24
24
  "vendor/assets/javascripts/stampit/stampit.js",
25
+
26
+ "vendor/assets/javascripts/spin/spin.js",
27
+
25
28
  "vendor/assets/javascripts/jquery/inview.js",
29
+ "vendor/assets/javascripts/jquery/inputmask.js",
30
+ "vendor/assets/javascripts/jquery/inputmask.extensions.js",
31
+ "vendor/assets/javascripts/jquery/inputmask.numeric.extensions.js",
32
+
26
33
  "vendor/assets/javascripts/shims/es6-map-shim.js"
27
34
  ],
28
35
  "development": {},
@@ -1,9 +1,9 @@
1
+ 'use strict'
2
+
1
3
  root = exports ? this
2
4
 
3
5
  define 'aura/extensions/devise', ->
4
6
 
5
- 'use strict'
6
-
7
7
  sandbox = null
8
8
  mediator = null
9
9
  core = null
@@ -1,9 +1,10 @@
1
- define 'aura/extensions/loader', ->
1
+ 'use strict';
2
2
 
3
- 'use strict';
3
+ define 'aura/extensions/loader', ->
4
4
 
5
5
  Spinner = null
6
6
 
7
+ # TODO return plain object instead of function
7
8
  (application) ->
8
9
  {core} = application
9
10
 
@@ -36,16 +37,17 @@ define 'aura/extensions/loader', ->
36
37
  new Spinner(core.util.extend {}, @options, options).spin target[0]
37
38
 
38
39
  name: 'loader'
39
- version: '0.1.0'
40
+
41
+ version: '0.1.1'
42
+
43
+ require:
44
+ paths:
45
+ spinner: 'spin/spin'
46
+
40
47
  initialize: (application) ->
41
- {sandbox} = application
42
-
43
- # TODO add a default spinner on ende, and add application load
44
- # paths
45
- try
46
- Spinner = require 'seminovos/vendor/assets/javascripts/spin/spin'
47
- catch e
48
- Spinner = require 'modacad/vendor/assets/javascripts/spin/spin'
48
+ {sandbox} = application
49
+ with_aura = 'spinner'
50
+ Spinner = require with_aura
49
51
 
50
52
  # Extend application
51
53
  sandbox.ui = core.util.extend sandbox.ui, loader: -> loader.create arguments...
@@ -1,61 +1,75 @@
1
- #= require 'jquery/inputmask'
2
- #= require 'jquery/inputmask.extensions'
3
- #= require 'jquery/inputmask.numeric.extensions'
1
+ 'use strict'
4
2
 
5
- $.extend $.inputmask.defaults.aliases.integer,
6
- groupSeparator : '.'
7
- autoGroup : true
8
- autoUnmask : true
3
+ define 'aura/extensions/mask',
9
4
 
10
- $.extend $.inputmask.defaults.aliases.decimal,
11
- groupSeparator : '.'
12
- radixPoint : ','
13
- autoGroup : true
14
- autoUnmask : true
5
+ version: '0.1.1'
15
6
 
7
+ require:
8
+ paths:
9
+ jquery: true
10
+ 'jquery.mask': true
11
+ 'jquery.mask_extensions': true
12
+ 'jquery.mask_numeric_extensions': true
13
+ shim:
14
+ # TODO implement exports option to check for properties
15
+ 'jquery.mask_extensions': ['jquery.mask']
16
+ 'jquery.mask_numeric_extensions': ['jquery.mask', 'jquery.mask_extensions']
16
17
 
17
- $.extend $.inputmask.defaults.aliases,
18
- price:
19
- alias : 'decimal'
20
- digits : 2
21
- allowMinus : false
22
- allowPlus : false
18
+ initialize: (application) ->
19
+ {core, sandbox} = application
23
20
 
24
- plate:
25
- mask : 'AAA-9999'
21
+ with_aura = 'jquery.mask'
22
+ require with_aura
26
23
 
27
- meters:
28
- alias : 'integer'
29
- allowMinus : false
30
- allowPlus : false
31
- integerDigits : 6
24
+ with_aura = 'jquery.mask_extensions'
25
+ require with_aura
32
26
 
33
- cpf:
34
- mask : '999.999.999-99'
27
+ with_aura = 'jquery.mask_numeric_extensions'
28
+ require with_aura
35
29
 
36
- cnpj:
37
- mask : '99.999.999/9999-99'
38
30
 
39
- phone:
40
- mask : '(99) 9999[9]-9999'
31
+ mask = (selector, mask, options) -> $(selector).inputmask mask, options
41
32
 
33
+ sandbox.ui = sandbox.util.extend sandbox.ui, mask: mask
42
34
 
35
+ extend: ->
43
36
 
44
- define 'aura/extensions/mask', (mask) ->
37
+ # TODO conditionally extend and require this masks
45
38
 
46
- 'use strict'
39
+ $.extend $.inputmask.defaults.aliases.integer,
40
+ groupSeparator : '.'
41
+ autoGroup : true
42
+ autoUnmask : true
47
43
 
44
+ $.extend $.inputmask.defaults.aliases.decimal,
45
+ groupSeparator : '.'
46
+ radixPoint : ','
47
+ autoGroup : true
48
+ autoUnmask : true
48
49
 
49
- (application) ->
50
+ $.extend $.inputmask.defaults.aliases,
51
+ price:
52
+ alias : 'decimal'
53
+ digits : 2
54
+ allowMinus : false
55
+ allowPlus : false
50
56
 
57
+ plate:
58
+ mask : 'AAA-9999'
51
59
 
52
- mask = (selector, mask, options) ->
53
- $(selector).inputmask mask, options
60
+ meters:
61
+ alias : 'integer'
62
+ allowMinus : false
63
+ allowPlus : false
64
+ integerDigits : 6
54
65
 
66
+ cpf:
67
+ mask : '999.999.999-99'
55
68
 
56
- version: '0.1.0'
69
+ cnpj:
70
+ mask : '99.999.999/9999-99'
71
+
72
+ phone:
73
+ mask : '(99) 9999[9]-9999'
57
74
 
58
- initialize: (application) ->
59
- {core, sandbox} = application
60
75
 
61
- sandbox.ui = sandbox.util.extend sandbox.ui, mask: mask
@@ -7,7 +7,7 @@ define('aura/extensions/mediator', function () {
7
7
  require: {
8
8
  paths: {
9
9
  eventemitter: 'components/eventemitter2/lib/eventemitter2',
10
- underscore: 'components/underscore/underscore'
10
+ underscore: 'components/underscore/underscore'
11
11
  },
12
12
  shim: {
13
13
  underscore: {
@@ -17,8 +17,10 @@ define('aura/extensions/mediator', function () {
17
17
  },
18
18
 
19
19
  initialize: function (app) {
20
- var EventEmitter = require('eventemitter');
21
- var _ = require('underscore');
20
+ var with_aura = 'eventemitter';
21
+ var EventEmitter = require(with_aura);
22
+ var with_aura = 'underscore'
23
+ var _ = require(with_aura);
22
24
 
23
25
  app.config.mediator = _.defaults(app.config.mediator || {}, {
24
26
  wildcard: true,
@@ -22,7 +22,6 @@ end
22
22
 
23
23
  'use strict'
24
24
 
25
-
26
25
  root = exports ? this
27
26
 
28
27
  define 'aura/extensions/models', <%= models_list.to_json %>, (models...) ->
@@ -57,9 +56,10 @@ define 'aura/extensions/models', <%= models_list.to_json %>, (models...) ->
57
56
  # inflector outside it
58
57
  define: owl.pluralize.define
59
58
 
60
- # TODO rename core.models and core.domain to core.resources, completely
59
+ # TODO rename core.models, core.domain and core.resources to core.resourceable completely
61
60
  core.resourceable = core.resources = core.domain = core.models = sandbox.models = indemma.model
62
61
 
62
+
63
63
  core.resource = core.model = sandbox.resource = sandbox.model = (name) ->
64
64
  # TODO use a Map internally in indemma
65
65
  model = indemma.model[name]
@@ -1,6 +1,12 @@
1
1
  #= require accounting/accounting
2
2
 
3
- define 'aura/extensions/rivets/accounting', ['vendor/accounting'], (accounting) ->
3
+ # TODO remove require from sprockets from this file
4
+ # TODO manage dependencies through aura, remove dependencies from this define call
5
+
6
+ 'use strict'
7
+
8
+ # TODO unifiy extension plug-in api
9
+ define 'aura/extensions/rivets/accounting', ['aura/extensions/rivets', 'vendor/accounting'], (parent, accounting) ->
4
10
 
5
11
  rivets = require 'mikeric-rivets/dist/rivets'
6
12
 
@@ -1,4 +1,8 @@
1
- define 'extensions/rivets/formatters',
1
+ 'use strict'
2
+
3
+
4
+ # TODO unifiy extension plug-in api
5
+ define 'aura/extensions/rivets/formatters',
2
6
 
3
7
  # ### exists
4
8
  # ```data-show="user.name | exists"```
@@ -1,16 +1,20 @@
1
- #= require 'aura/extensions/rivets/formatters'
1
+ 'use strict';
2
2
 
3
- define 'aura/extensions/rivets', ['extensions/rivets/formatters'], (formatters)->
4
3
 
5
- 'use strict';
4
+ # TODO require formatters through aura instead of directly loding a module
5
+ define 'aura/extensions/rivets', ['aura/extensions/rivets/formatters'], (formatters) ->
6
6
 
7
- extend = require 'segmentio-extend'
7
+ extend = null
8
8
 
9
- rivets = require 'mikeric-rivets/dist/rivets'
9
+ with_component = 'mikeric-rivets/dist/rivets'
10
+ rivets = require with_component
11
+ Rivets = rivets._
10
12
 
11
- Rivets = rivets._
13
+ with_component = 'indefinido-observable/lib/adapters/rivets'
14
+ observable_configuration = require with_component
12
15
 
13
- observable_configuration = require 'indefinido-observable/lib/adapters/rivets'
16
+ with_component = 'segmentio-extend'
17
+ extend = require with_component
14
18
 
15
19
  extend rivets.formatters, formatters
16
20
 
@@ -217,34 +221,48 @@ define 'aura/extensions/rivets', ['extensions/rivets/formatters'], (formatters)-
217
221
  el.value = if value? then value else ''
218
222
 
219
223
 
220
- (application) ->
221
- version: '0.1.0'
224
+ require:
225
+ paths:
226
+ # TODO optimize formatters with r.js
227
+ # formatters: 'aura/extensions/rivets/formatters'
228
+ observable: true
222
229
 
223
- initialize: (application) ->
224
- observable = require('observable').mixin
230
+ version: '0.1.1'
225
231
 
226
- # TODO implement small view interface
227
- original_bind = rivets.bind
228
- rivets.bind = (selector, presentation) ->
229
- for name, model of presentation
230
- unless model?
231
- console.warn "Model object not specified for key #{name}"
232
- model = {}
232
+ initialize: (application) ->
233
+ # TODO optimize formatters with r.js, and put module names under
234
+ # rivets namespace
235
+ # with_aura = 'formatters'
236
+ # formatters = require with_aura
233
237
 
234
- presentation[name] = observable model unless model.observed?
238
+ # TODO check if it is needed to do earliear formatters loading
239
+ # extend rivets.formatters, formatters
235
240
 
236
- original_bind.apply rivets, arguments
241
+ # TODO implement compatibility between observable and aura loader
242
+ observable = requirejs 'observable'
237
243
 
238
- extend application.sandbox,
239
- view: rivets
244
+ # TODO implement small view interface
245
+ original_bind = rivets.bind
246
+ rivets.bind = (selector, presentation) ->
247
+ for name, model of presentation
248
+ unless model?
249
+ console.warn "Model object not specified for key #{name}"
250
+ model = {}
240
251
 
241
- extend application.core.Widgets.Base.prototype,
242
- bind: (presentation, options) ->
243
- if presentation.presented
244
- presented = presentation.presented
245
- delete presentation.presented
252
+ presentation[name] = observable model unless model.observed?
246
253
 
247
- @sandbox._view = @view = rivets.bind @$el, presentation, options
254
+ original_bind.apply rivets, arguments
248
255
 
249
- presented(@view) if presented?
256
+ extend application.sandbox,
257
+ view: rivets
258
+
259
+ extend application.core.Widgets.Base.prototype,
260
+ bind: (presentation, options) ->
261
+ if presentation.presented
262
+ presented = presentation.presented
263
+ delete presentation.presented
264
+
265
+ @sandbox._view = @view = rivets.bind @$el, presentation, options
266
+
267
+ presented(@view) if presented?
250
268
 
@@ -1,12 +1,17 @@
1
- define 'aura/extensions/routes', (routes) ->
1
+ 'use strict'
2
2
 
3
- 'use strict'
3
+ define 'aura/extensions/routes', (routes) ->
4
4
 
5
5
  # TODO Remove .call null
6
- # TODO Remove .call null
6
+ # TODO Remove modernizr global variable dependency from this extension
7
7
  loader.require.call null, 'modernizr'
8
8
  # TODO rename from ened to ende
9
+ # TODO Remove jquery global variable dependency from this extension
10
+ with_component = 'jquery'
11
+ window.jQuery = window.$ = require with_component
12
+ # TODO Remove .call null
9
13
  loader.require.call null, 'ened/vendor/assets/javascripts/lennon/lennon.js'
14
+
10
15
  query = loader.require.call null, 'querystring'
11
16
  router = null
12
17
 
@@ -91,7 +96,7 @@ define 'aura/extensions/routes', (routes) ->
91
96
 
92
97
 
93
98
  #-- No route has been found, hence, nothing dispatched
94
- application.logger.warn('No route dispatched')
99
+ application.logger.warn 'No route dispatched'
95
100
 
96
101
  location: (href, process = true) ->
97
102
  # TODO load router depending of history api
@@ -129,4 +134,4 @@ define 'aura/extensions/routes', (routes) ->
129
134
 
130
135
  initialize: (application) ->
131
136
  {logger} = application
132
- application.sandbox.location = location
137
+ application.sandbox.location = location
@@ -1,6 +1,6 @@
1
- define 'aura/extensions/states', ['application/states'], (states) ->
1
+ 'use strict'
2
2
 
3
- 'use strict'
3
+ define 'aura/extensions/states', ['application/states'], (states) ->
4
4
 
5
5
  (application) ->
6
6
  {core, logger} = application
@@ -2,8 +2,6 @@ define 'aura/extensions/widget/eventable', ->
2
2
 
3
3
  'use strict';
4
4
 
5
- extend = require 'segmentio-extend'
6
-
7
5
  extractor = /.*?\$(.*?)@(.*?)\+(.*?)/
8
6
 
9
7
  translations = new Map()
@@ -41,26 +39,27 @@ define 'aura/extensions/widget/eventable', ->
41
39
  @
42
40
 
43
41
 
44
- (application) ->
42
+ initialize: (application) ->
43
+ with_component = 'segmentio-extend'
44
+ extend = require with_component
45
45
 
46
- initialize: (application) ->
47
- Widgets = application.core.Widgets
46
+ Widgets = application.core.Widgets
48
47
 
49
- extend Widgets.Base.prototype,
50
- # TODO implement rivets compatibility, instead of generic
51
- # binding events, alter html
52
- handles: (event_name, widget_event_name = event_name, selector = @$el) ->
53
- unless @name
54
- message = "Widget name must be provided in order to use handlers, but this.name is '#{@name}' \n"
55
- message = "Also you may have forgotten to set the type of your widget to 'Base'"
56
- throw message
48
+ extend Widgets.Base.prototype,
49
+ # TODO implement rivets compatibility, instead of generic
50
+ # binding events, alter html
51
+ handles: (event_name, widget_event_name = event_name, selector = @$el) ->
52
+ unless @name
53
+ message = "Widget name must be provided in order to use handlers, but this.name is '#{@name}' \n"
54
+ message = "Also you may have forgotten to set the type of your widget to 'Base'"
55
+ throw message
57
56
 
58
- context = @$el unless selector == @$el
57
+ context = @$el unless selector == @$el
59
58
 
60
- event_name = translations.get(event_name) ? event_name
59
+ event_name = translations.get(event_name) ? event_name
61
60
 
62
- @sandbox.dom.find(selector, context).on event_name, create_handler(@, widget_event_name || event_name)
61
+ @sandbox.dom.find(selector, context).on event_name, create_handler(@, widget_event_name || event_name)
63
62
 
64
- # TODO replace Base.extend inheritance to stampit composition
65
- Widgets.Base = Widgets.Base.extend eventable
66
- eventable.super = Widgets.Base.__super__
63
+ # TODO replace Base.extend inheritance to stampit composition
64
+ Widgets.Base = Widgets.Base.extend eventable
65
+ eventable.super = Widgets.Base.__super__
@@ -1,10 +1,12 @@
1
- define 'aura/extensions/widget/lifecycleable', ->
1
+ 'use strict'
2
2
 
3
- 'use strict'
3
+ define 'aura/extensions/widget/lifecycleable', ->
4
4
 
5
5
  # TODO Remove jquery and use core dependencies
6
- jQuery = require 'jquery'
7
- core = null
6
+ with_component = 'jquery'
7
+ jQuery = require with_component
8
+
9
+ core = null
8
10
 
9
11
  lifecycleable =
10
12
  injection: (definition) ->
@@ -74,9 +76,6 @@ define 'aura/extensions/widget/lifecycleable', ->
74
76
  core.inject name, options
75
77
 
76
78
  initialized: ->
77
- # TODO think how to access parent widget in children ones
78
- @sandbox._widget ||= @
79
-
80
79
  @sandbox.emit "#{@name}.#{@identifier}.initialized", @
81
80
 
82
81
  started: ->
@@ -86,7 +85,6 @@ define 'aura/extensions/widget/lifecycleable', ->
86
85
  stopped: ->
87
86
  @$el.remove()
88
87
 
89
-
90
88
  (application) ->
91
89
 
92
90
  version: '0.2.0'
@@ -101,7 +99,14 @@ define 'aura/extensions/widget/lifecycleable', ->
101
99
  # Cache usefull methods
102
100
  lifecycleable.sources = application.config.widgets.sources
103
101
  lifecycleable.find = core.dom.find
104
- lifecycleable.root = core.dom.find app.startOptions.widgets
102
+
103
+ # TODO Keep searching for root until found, and only throw
104
+ # exception if someone tries to initialize widgets in root
105
+ # without a valid root selector
106
+ lifecycleable.root = core.dom.find app.startOptions.widgets || 'body'
107
+
108
+ throw new TypeError "No root node found for selector '#{app.startOptions.widgets}'." unless lifecycleable.root.length != 0
109
+
105
110
  lifecycleable.decamelize = core.util.decamelize
106
111
  lifecycleable.capitalize = core.util.capitalize
107
112
 
@@ -139,4 +144,4 @@ define 'aura/extensions/widget/lifecycleable', ->
139
144
  # Add support for element removal after stoping widget
140
145
  # TODO replace Base.extend inheritance to stampit composition
141
146
  core.Widgets.Base = core.Widgets.Base.extend recyclable
142
- recyclable.super = core.Widgets.Base.__super__
147
+ recyclable.super = core.Widgets.Base.__super__
@@ -1,4 +1,5 @@
1
- require ['jquery'], ($) ->
1
+ lazy_require = 'jquery'
2
+ define 'config/initializers/jquery', [lazy_require], ($) ->
2
3
  # TODO use prefilter instead of beforeSend
3
4
  # $.ajaxPrefilter(function(options, originalOptions, xhr){ if ( !options.crossDomain ) { rails.CSRFProtection(xhr); }});
4
5
  $.ajaxSetup
@@ -1,4 +1,3 @@
1
- requirejs.config({
2
- baseUrl: '/assets'
3
- waitSeconds: 15
4
- });
1
+ define 'config/initializers/requirejs', ->
2
+ requirejs.config
3
+ waitSeconds: 15
@@ -0,0 +1,3 @@
1
+ # TODO read all files from initializer folder and add require call
2
+ define 'config/initializers', ['config/load_components'], ->
3
+ require ['config/initializers/jquery', 'config/initializers/requirejs']