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
@@ -1,95 +1,118 @@
1
- #= require require/require
2
- #= require build
3
- # TODO Move this file outside the initializers folder
4
-
5
1
  root = exports ? this
6
2
 
7
- # if jQuery is already included in the default build, we need to load
8
- # it and globalize it, because aurajs does not know we are using
9
- # component.io loader and thinks jquery must be shipped within it
10
- # TODO think in away to not use a global jquery
11
- # try
12
- # root.jQuery = root.$ = require 'component-jquery'
13
- # catch e
14
- # jQuery was not included in the component build, soo the application will fallback to the
15
- # jquery builded in aurajs
16
-
17
- define 'jquery', [], -> require 'component-jquery'
18
- root.jQuery = root.$ = require 'component-jquery'
19
-
20
- # This may be included in build, and loaded before aurajs requires for them
21
- # TODO also preload underscorejs
22
- # define 'underscore', require 'lodash'
23
- # TODO also preload eventemitter2
24
- # TODO also preload require-jstext
25
-
26
- # TODO!! Try to improve requirejs and components require integrationod
27
-
28
- # Little object class to merge component require and requirejs require
29
- loader =
30
- shim: ->
31
- # Store loaders functions
32
- loader.loaders.component = require
33
- loader.loaders.requirejs = requirejs
34
- loader.activate.define = root.define
35
-
36
- # Expand require fuction with requirejs configurations
37
- # so we can require without great problems
38
- loader.require.config = requirejs.config
39
- loader.require.s = requirejs.s
40
-
41
- initialize: ->
42
- extend = require 'segmentio-extend'
43
- extend loader.require, require
44
-
45
- # Override global require for ower one
46
- root.require = loader.require
47
- root.loader = loader
48
-
49
- # Resource loaders compatibility
50
- loaders:
51
- requirejs : null
52
- component : null
53
- discovered: null
54
-
55
- discover: (params...) ->
56
-
57
- if params[0] instanceof Array
58
- requirer = 'requirejs'
59
- else
60
- requirer = 'component'
61
-
62
- @activate (requirer) and requirer
63
-
64
- activate: (requirer) ->
65
- switch requirer
66
- when 'component'
67
- root.define = null
68
- when 'requirejs'
69
- root.define = @activate.define
3
+ # Prevent aura from defining jquery erroniously
4
+ define 'jquery' , ['config/load_components'], -> require 'component-jquery'
5
+ # TODO define 'underscore', ['config/load_components'], -> require 'lodash'
6
+
7
+ # TODO figure out how to use rjs optmizer to include component builds
8
+ # Use call method to avoid optmization at all
9
+ define 'ende_components', ['ende_build'], {}
10
+ define 'application_components', ['ende_components', 'build'], {}
11
+
12
+ requirejs.config
13
+ shim:
14
+ build:
15
+ # FIXME check that the build was loaded in a more elegant way
16
+ # probably create a undefined plug-in for component builder
17
+ exports: 'require.modules.seminovos/vendor/loaded'
18
+ deps: ['ende_build']
19
+ ende_build:
20
+ exports: 'require.register'
21
+
22
+ # In order to start, application and ende components must be loaded
23
+ define 'config/load_components', ['application_components'], ->
24
+
25
+ # TODO remove and use r.js optmizer wrapShim option, when
26
+ # optimizer gets updated
27
+ define 'jquery.inview' , ['jquery'], ->
28
+ require 'ened/vendor/assets/javascripts/jquery/inview.js'
29
+
30
+ define 'jquery.mask' , ['jquery'], ->
31
+ inner_lazy_require = 'ened/vendor/assets/javascripts/jquery/inputmask.js'
32
+ require inner_lazy_require
33
+
34
+ define 'jquery.mask_extensions' , ['jquery'], ->
35
+ inner_lazy_require = 'ened/vendor/assets/javascripts/jquery/inputmask.extensions.js'
36
+ require inner_lazy_require
37
+
38
+ define 'jquery.mask_numeric_extensions' , ['jquery'], ->
39
+ inner_lazy_require = 'ened/vendor/assets/javascripts/jquery/inputmask.numeric.extensions.js'
40
+ require inner_lazy_require
41
+
42
+ # Object.defineProperty window, 'jQuery',
43
+ # get: -> require 'component-jquery'
44
+ # set: -> debugger
45
+
46
+ # This may be included in build, and loaded before aurajs requires for them
47
+ # TODO also preload eventemitter2
48
+ # TODO also preload require-jstext
49
+
50
+ # Little object class to merge component require and requirejs require
51
+ loader =
52
+ shim: ->
53
+ # Store loaders functions
54
+ loader.loaders.component = require
55
+ loader.loaders.requirejs = requirejs
56
+ loader.activate.define = root.define
57
+
58
+ # Expand require fuction with requirejs configurations
59
+ # so we can require without great problems
60
+ loader.require.config = requirejs.config
61
+ loader.require.s = requirejs.s
62
+
63
+ initialize: ->
64
+ with_component = 'segmentio-extend'
65
+ extend = require with_component
66
+ extend loader.require, require
67
+
68
+ # Override global require for ower one
69
+ root.require = loader.require
70
+ root.loader = loader
71
+
72
+ # Resource loaders compatibility
73
+ loaders:
74
+ requirejs : null
75
+ component : null
76
+ discovered: null
77
+
78
+ discover: (params...) ->
79
+
80
+ if params[0] instanceof Array
81
+ requirer = 'requirejs'
70
82
  else
71
- false
83
+ requirer = 'component'
72
84
 
73
- @loaders.discovered = @loaders[requirer]
85
+ @activate (requirer) and requirer
74
86
 
75
- true
87
+ activate: (requirer) ->
88
+ switch requirer
89
+ when 'component'
90
+ root.define = null
91
+ when 'requirejs'
92
+ root.define = @activate.define
93
+ else
94
+ false
76
95
 
77
- require: (params...) ->
78
- using = loader.discover params...
96
+ @loaders.discovered = @loaders[requirer]
79
97
 
80
- try
98
+ true
81
99
 
82
- module = loader.loaders.discovered.apply @, params
100
+ require: (params...) ->
101
+ using = loader.discover params...
83
102
 
84
- catch e
85
- console.warn 'Failed to load \'', params[0], "' with #{using}: Error: '", e.message, '\'. Trying with requirejs.'
86
- loader.activate 'requirejs'
87
- module = loader.loaders.discovered.apply @, params unless module
103
+ try
104
+
105
+ module = loader.loaders.discovered.apply @, params
88
106
 
89
- # Always let requirjs active by default
90
- loader.activate 'requirejs'
107
+ catch e
108
+ console.warn 'Failed to load \'', params[0], "' with #{using}: Error: '", e.message, '\'. Trying with requirejs.'
109
+ loader.activate 'requirejs'
110
+ module = loader.loaders.discovered.apply @, params unless module
111
+
112
+ # Always let requirjs active by default
113
+ loader.activate 'requirejs'
91
114
 
92
- module
115
+ module
93
116
 
94
- loader.shim()
95
- loader.initialize()
117
+ loader.shim()
118
+ loader.initialize()
@@ -1,4 +1,13 @@
1
- #= require ende_build
2
- #= require config/load_components
3
- #= require_tree ./config/initializers
4
- # TODO think if require jquery and jquery inview in this place is actualy a good idead
1
+ # TODO think if require jquery and jquery inview in this place is actualy a good idead
2
+
3
+ # TODO use requirejs alias / packing modules definition for this
4
+ define 'ende', ['config/load_components', 'config/initializers'], ->
5
+
6
+ # Override defaults components definition
7
+ # TODO better way to forward component modules to application
8
+ define 'observable', [], -> require("indefinido-observable").mixin
9
+ define 'advisable' , [], -> require("indefinido-advisable").mixin
10
+
11
+ # TODO FIX THIS!
12
+ require.register('observable', (r, e, module) -> module.exports = require("indefinido-observable").mixin)
13
+ require.register('advisable' , (r, e, module) -> module.exports = require("indefinido-advisable").mixin )
@@ -1,6 +1,7 @@
1
1
  'use strict'
2
- define ->
3
- observable = require('observable').mixin
2
+
3
+ lazy_require = 'observable'
4
+ define [lazy_require], (observable) ->
4
5
 
5
6
  (authenticator, recoverer, base) ->
6
7
 
@@ -84,9 +84,13 @@ define ->
84
84
  initialize: (options) ->
85
85
  @sandbox.logger.log "initialized!"
86
86
 
87
- # TODO integrate component and requirejs
88
- dialog = require('dialog').Dialog
89
- overlay = require 'component-overlay'
87
+ # TODO integrate component and requirejs in a more consize way
88
+ with_component = 'dialog'
89
+ dialog = require(with_component).Dialog
90
+
91
+ with_component = 'component-overlay'
92
+ overlay = require with_component
93
+
90
94
  @sandbox.util.extend dialog.prototype, dialog_extensions
91
95
 
92
96
  # Initialize fundamental style
@@ -1,8 +1,7 @@
1
- # TODO bettter require
2
- stampit = require 'indefinido-indemma/vendor/stampit.js'
3
- observable = require('observable').mixin
1
+ 'use strict';
4
2
 
5
- define ->
3
+ lazy_require = 'observable'
4
+ define ['stampit/stampit', lazy_require], (stampit, observable) ->
6
5
 
7
6
  handlers =
8
7
  adapter_loaded: (composable) ->
@@ -1,17 +1,13 @@
1
1
  'use strict';
2
2
 
3
+ lazy_requires = ['observable', 'advisable']
3
4
  define [
4
5
  './states/index',
5
6
  './presenters/default',
6
- './presenters/default',
7
- '/assets/jquery/inview',
8
- 'stampit/stampit'], (templates, presenter, inview, stampit) ->
9
-
10
- observable = require('observable').mixin
11
- advisable = require('advisable').mixin
12
-
13
- # TODO define componentjs required packages, as requirejs packages
14
- stampit ||= require 'stampit/stampit'
7
+ 'jquery.inview',
8
+ 'stampit/stampit',
9
+ lazy_requires[0],
10
+ lazy_requires[1]], (templates, presenter, inview, stampit, observable, advisable) ->
15
11
 
16
12
  scopable = (widget) ->
17
13
  deferred = widget.sandbox.data.deferred()
@@ -129,32 +125,7 @@ define [
129
125
  viewed: (event, in_view, horizontal, vertical) ->
130
126
  boo[if in_view then 'pride' else 'shame'] event.target
131
127
 
132
-
133
- # TODO Move each handler to independent features
134
- handleable = stampit
135
- handleables:
136
- item:
137
- hover: (event, models) ->
138
- if event.type == 'mouseenter'
139
- @hover models.item
140
- else if event.type == 'mouseleave'
141
- @hover null
142
- else
143
- throw new TypeError 'viewer.handlers.hover: Event type incompatible with hovering.'
144
-
145
- clicked: (event, models) -> @select models.item
146
-
147
- , {}, ->
148
-
149
- throw new TypeError "Widget property is mandatory for handleable stamp" unless @widget?
150
-
151
- @handlers =
152
- item:
153
- clicked: $.proxy @handleables.item.clicked, @widget
154
- hover : $.proxy @handleables.item.hover , @widget
155
-
156
- @
157
- version: '0.2.4'
128
+ version: '0.2.1'
158
129
 
159
130
  # TODO better separation of concerns
160
131
  # TODO Current remote page that is beign displayed
@@ -185,16 +156,8 @@ define [
185
156
  # We extend presentation.selected just to assign all values of the item model
186
157
  # TODO call presenter to do this job
187
158
  @sandbox.util.extend @presentation.selected , item.model.json?() || item.model
188
-
189
- # TODO change paramters to item, item.model
190
159
  @sandbox.emit "viewer.#{@identifier}.selected", item.model
191
160
 
192
- # Called when hover in and out from model
193
- hover: (item) ->
194
- # TODO call presenter to do this job
195
- # @sandbox.util.extend @presentation.hovered , item.model.json?() || item.model
196
- @sandbox.emit "viewer.#{@identifier}.hovered", item, item && item.model
197
-
198
161
  scope_to: (scope, child_scope) ->
199
162
  # Singuralize in order to accept association scopes, since
200
163
  # association scopes return almost the same kind as of it's
@@ -202,14 +165,16 @@ define [
202
165
  sent_scope = @inflector.singularize scope.resource.toString()
203
166
  current_scope = @inflector.singularize @scope.resource.toString()
204
167
 
205
- deferred = @sandbox.data.deferred()
206
-
207
168
  if sent_scope != current_scope
208
169
  throw new TypeError "Invalid scope sent to viewer@#{@identifier} sent: '#{sent_scope}', expected: '#{current_scope}'"
209
170
 
210
171
  # For sobsequent usages we must store the scope
211
172
  @scope = scope
212
173
 
174
+ # TODO better hierachical event distribution
175
+ for { _widget: widget } in @sandbox._children?
176
+ widget.scope_to? child_scope
177
+
213
178
  @sandbox.emit "viewer.#{@identifier}.scope_changed", @scope
214
179
 
215
180
  # TODO better scope data binding, and updating
@@ -219,15 +184,6 @@ define [
219
184
 
220
185
  @repopulate()
221
186
 
222
- # TODO rename this method
223
- # TODO also move this to an external tag
224
- statused: (status) ->
225
- if status
226
- @status = status
227
- @sandbox.emit "viewer.#{@identifier}.status_changed", status
228
- else
229
- @status
230
-
231
187
  repopulate: ->
232
188
  unless @fetching?
233
189
  if @load?
@@ -238,10 +194,9 @@ define [
238
194
 
239
195
  # TODO store spinner instance, instead of creating a new one every time
240
196
  unless @load?
241
- @load = @sandbox.ui.loader @$results
197
+ @load = @sandbox.ui.loader @$el.find '.results .items'
242
198
 
243
199
  # TODO implement status for viewer widget
244
- @statused 'loading'
245
200
  @$el.addClass 'idle'
246
201
  @$el.removeClass 'loading'
247
202
 
@@ -276,7 +231,6 @@ define [
276
231
 
277
232
  @fetching.always =>
278
233
  # TODO implement status for viewer widget
279
- @statused 'loading'
280
234
  @$el.addClass 'idle'
281
235
  @$el.removeClass 'loading'
282
236
 
@@ -285,11 +239,12 @@ define [
285
239
  @load = null
286
240
 
287
241
 
288
- populate: ->
289
- @load = @sandbox.ui.loader @$el
242
+ populate: (handlers) ->
243
+ sandbox = @sandbox
244
+
245
+ @load = @sandbox.ui.loader @$results
290
246
 
291
247
  # TODO implement status for viewer widget
292
- @statused 'loading'
293
248
  @$el.removeClass 'idle'
294
249
  @$el.addClass 'loading'
295
250
 
@@ -314,12 +269,9 @@ define [
314
269
 
315
270
  @load.stop()
316
271
 
317
- # TODO do not send records as parameter
318
- @presentation = @presenter records, @scope, @handleable
272
+ @presentation = @presenter records, @scope
319
273
 
320
- # Initialize elements
321
274
  @$el.html templates[@options.resource]
322
- @$results = @$el.find '.results .items'
323
275
 
324
276
  if records.length
325
277
  # boo.initialize @$el.find '.results .items'
@@ -346,7 +298,7 @@ define [
346
298
 
347
299
 
348
300
  plugins: (options) ->
349
- deferreds = [@]
301
+ deferreds = []
350
302
 
351
303
  deferreds.push paginable widget: @ if options.page
352
304
  deferreds.push scrollable widget: @ if options.scroll
@@ -357,7 +309,6 @@ define [
357
309
  # TODO move this method to an extension
358
310
  syncronize_children: ->
359
311
  @sandbox._children ||= []
360
- @sandbox._widget ||= @
361
312
 
362
313
  # Add possible new childs
363
314
  @constructor.startAll(@$el).done (widgets...) =>
@@ -367,12 +318,6 @@ define [
367
318
 
368
319
  @sandbox._children = @sandbox._children.concat widgets
369
320
 
370
- for widget in widgets
371
- # TODO emit this event only when all siblings have initialized
372
- @sandbox.emit "#{widget.name}.#{widget.identifier}.siblings_initialized", @sandbox._children
373
-
374
- true
375
-
376
321
  # TODO better internal aura widget selection
377
322
  # Prevent other child to be instantiated
378
323
  @$el.find('[data-aura-widget]').each (i, element) ->
@@ -456,56 +401,43 @@ define [
456
401
  initialize: (options) ->
457
402
  # TODO import core extensions in another place
458
403
  @resource = @sandbox.resource options.resource
459
- @scope = @resource
460
-
461
- # Instantiate it's on handleable factory
462
- widget = @
463
- widgetable = stampit().enclose -> @widget = widget; @
464
- @handleable = stampit.compose widgetable, handleable
404
+ @scope = model = @resource
465
405
 
466
406
  {sandbox: {util: {@inflector}}} = @
467
407
 
468
408
  @sandbox.on "viewer.#{@identifier}.scope", @scope_to, @
469
409
 
470
- # Initalize plugins
471
- # TODO think how to implement plugins api
410
+ # Iniitalize plugins
472
411
  loading = @plugins options
473
412
 
474
- @statused 'idle'
475
413
  @$el.addClass "viewer widget #{@inflector.cssify @identifier} idle clearfix"
476
414
 
477
- loading.done (widget) ->
478
- widget.require_custom options.resource
479
-
480
- # TODO externalize this code to an extension
481
- require_custom: (resource) ->
482
- deferred = @sandbox.data.deferred()
415
+ loading.done => @require_custom options
483
416
 
417
+ require_custom: (options) ->
484
418
  # Fetch custom templates
485
419
  # TODO better custom templates structure and custom presenter
486
420
  # TODO better segregation of concerns on this code
487
421
  # TODO handle case where custom presenter does not exist!
488
422
  require [
489
- "text!./widgets/viewer/templates/default/#{resource}.html"
490
- "./widgets/viewer/presenters/#{resource}"
423
+ "text!./widgets/viewer/templates/default/#{options.resource}.html"
424
+ "./widgets/viewer/presenters/#{options.resource}"
491
425
  ], (custom_default_template, custom_presenter) =>
492
426
 
493
- unless presenter.hasOwnProperty 'handlers'
494
- Object.defineProperty presenter, 'handlers',
495
- get: -> throw new Error "presenter.hanlder is deprecated, please compose upon handleable"
496
- set: -> throw new Error "presenter.hanlder is deprecated, please compose upon handleable"
427
+ # TODO Better way to preserve widgets handlers
428
+ handlers =
429
+ item:
430
+ clicked: (event, models) =>
431
+ @select models.item
497
432
 
498
- custom_default_template and templates[resource] = custom_default_template
499
- @presenter = @sandbox.util.extend custom_presenter, presenter if custom_presenter
433
+ presenter.handlers = handlers
500
434
 
501
- # Fetch default data
502
- @populate()
435
+ custom_default_template and templates[options.resource] = custom_default_template
436
+ @presenter = @sandbox.util.extend custom_presenter, presenter if custom_presenter
503
437
 
504
- deferred.resolveWith @, [resource]
438
+ @$results = @$el.find '.results .items'
505
439
 
506
- , (error) =>
507
- # TODO handle other status codes with xhr error
508
- @sandbox.logger.error "Error when loading presenter and template for resource '#{resource}':\n\n", error.message + "\n\n", error
509
- deferred.rejectWith @, arguments
440
+ # Fetch default data
441
+ @populate handlers
510
442
 
511
- deferred
443
+ true
@@ -3,10 +3,8 @@
3
3
  # TODO implement default presenter
4
4
  # define ['aura/presenterable'], (presenterable) ->
5
5
  # presenterable()
6
- # TODO move observable to requirejs
7
- observable = require('observable').mixin
8
-
9
- define ['stampit/stampit'], (stampit) ->
6
+ lazy_require = 'observable'
7
+ define ['stampit/stampit', lazy_require], (stampit, observable) ->
10
8
 
11
9
  itemable = stampit().enclose -> observable @
12
10
 
data/lib/ende/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Ende
2
- VERSION = "0.3.13"
2
+ VERSION = "0.4.0"
3
3
  end