ende 0.3.13 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/component.json +7 -0
- data/lib/assets/javascripts/aura/extensions/devise.js.coffee +2 -2
- data/lib/assets/javascripts/aura/extensions/loader.js.coffee +13 -11
- data/lib/assets/javascripts/aura/extensions/mask.js.coffee +54 -40
- data/lib/assets/javascripts/aura/extensions/mediator.js +5 -3
- data/lib/assets/javascripts/aura/extensions/models.js.coffee.erb +2 -2
- data/lib/assets/javascripts/aura/extensions/rivets/accounting.js.coffee +7 -1
- data/lib/assets/javascripts/aura/extensions/rivets/formatters.js.coffee +5 -1
- data/lib/assets/javascripts/aura/extensions/rivets.js.coffee +47 -29
- data/lib/assets/javascripts/aura/extensions/routes.js.coffee +10 -5
- data/lib/assets/javascripts/aura/extensions/states.js.coffee +2 -2
- data/lib/assets/javascripts/aura/extensions/widget/eventable.js.coffee +18 -19
- data/lib/assets/javascripts/aura/extensions/widget/lifecycleable.js.coffee +15 -10
- data/lib/assets/javascripts/config/initializers/jquery.js.coffee +2 -1
- data/lib/assets/javascripts/config/initializers/requirejs.js.coffee +3 -4
- data/lib/assets/javascripts/config/initializers.js.coffee +3 -0
- data/lib/assets/javascripts/config/load_components.js.coffee +106 -83
- data/lib/assets/javascripts/ende.js.coffee +13 -4
- data/lib/assets/javascripts/widgets/authenticator/presenter.js.coffee +3 -2
- data/lib/assets/javascripts/widgets/dialog/main.js.coffee +7 -3
- data/lib/assets/javascripts/widgets/support/main.js.coffee +3 -4
- data/lib/assets/javascripts/widgets/viewer/main.js.coffee +35 -103
- data/lib/assets/javascripts/widgets/viewer/presenters/default.js.coffee +2 -4
- data/lib/ende/version.rb +1 -1
- data/vendor/assets/components/build.js +30877 -0
- data/vendor/assets/components/ende_build.js +2487 -148
- data/vendor/assets/components/indemma_with_none.js +30553 -0
- data/vendor/assets/javascripts/spin/spin.js +349 -0
- data/vendor/components/indefinido-indemma/.gitignore +3 -0
- data/vendor/components/indefinido-indemma/.ruby-gemset +1 -1
- data/vendor/components/indefinido-indemma/.ruby-version +1 -1
- data/vendor/components/indefinido-indemma/build/development.js +17 -14
- data/vendor/components/indefinido-indemma/build/release.js +213 -148
- data/vendor/components/indefinido-indemma/build/test.js +213 -148
- data/vendor/components/indefinido-indemma/component.json +3 -1
- data/vendor/components/indefinido-indemma/karma.conf.js +50 -60
- data/vendor/components/indefinido-indemma/lib/record/associable.js +17 -17
- data/vendor/components/indefinido-indemma/lib/record/persistable.js +8 -1
- data/vendor/components/indefinido-indemma/lib/record/queryable.js +3 -0
- data/vendor/components/indefinido-indemma/lib/record/resource.js +25 -45
- data/vendor/components/indefinido-indemma/lib/record/restfulable.js +82 -28
- data/vendor/components/indefinido-indemma/lib/record/scopable.js +28 -2
- data/vendor/components/indefinido-indemma/lib/record/storable.js +1 -1
- data/vendor/components/indefinido-indemma/lib/record/validatable.js +15 -23
- data/vendor/components/indefinido-indemma/lib/record/validations/associated.js +3 -5
- data/vendor/components/indefinido-indemma/lib/record/validations/confirmation.js +3 -5
- data/vendor/components/indefinido-indemma/lib/record/validations/cpf.js +5 -7
- data/vendor/components/indefinido-indemma/lib/record/validations/presence.js +3 -5
- data/vendor/components/indefinido-indemma/lib/record/validations/remote.js +3 -7
- data/vendor/components/indefinido-indemma/lib/record/validations/type.js +2 -2
- data/vendor/components/indefinido-indemma/lib/record/validations/validatorable.js +12 -0
- data/vendor/components/indefinido-indemma/package.json +9 -0
- data/vendor/components/indefinido-indemma/spec/record/restfulable_spec.js +12 -0
- data/vendor/components/indefinido-indemma/spec/record/validatable_spec.js +4 -4
- data/vendor/components/indefinido-indemma/spec/record/validations/associated_spec.js +2 -2
- data/vendor/components/indefinido-indemma/src/lib/record/associable.coffee +44 -20
- data/vendor/components/indefinido-indemma/src/lib/record/persistable.coffee +7 -2
- data/vendor/components/indefinido-indemma/src/lib/record/queryable.coffee +1 -0
- data/vendor/components/indefinido-indemma/src/lib/record/resource.coffee +32 -32
- data/vendor/components/indefinido-indemma/src/lib/record/restfulable.coffee +79 -22
- data/vendor/components/indefinido-indemma/src/lib/record/scopable.coffee +27 -8
- data/vendor/components/indefinido-indemma/src/lib/record/storable.coffee +1 -1
- data/vendor/components/indefinido-indemma/src/lib/record/validatable.coffee +20 -19
- data/vendor/components/indefinido-indemma/src/lib/record/validations/associated.coffee +3 -5
- data/vendor/components/indefinido-indemma/src/lib/record/validations/confirmation.coffee +2 -4
- data/vendor/components/indefinido-indemma/src/lib/record/validations/cpf.coffee +4 -5
- data/vendor/components/indefinido-indemma/src/lib/record/validations/presence.coffee +2 -5
- data/vendor/components/indefinido-indemma/src/lib/record/validations/remote.coffee +3 -7
- data/vendor/components/indefinido-indemma/src/lib/record/validations/type.coffee +2 -3
- data/vendor/components/indefinido-indemma/src/lib/record/validations/validatorable.coffee +5 -0
- data/vendor/components/indefinido-indemma/src/spec/record/restfulable_spec.coffee +8 -0
- data/vendor/components/indefinido-indemma/src/spec/record/validatable_spec.coffee +4 -4
- data/vendor/components/indefinido-indemma/src/spec/record/validations/associated_spec.coffee +2 -2
- metadata +9 -3
- 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
|
-
#
|
8
|
-
|
9
|
-
#
|
10
|
-
|
11
|
-
#
|
12
|
-
#
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
#
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
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
|
-
|
83
|
+
requirer = 'component'
|
72
84
|
|
73
|
-
|
85
|
+
@activate (requirer) and requirer
|
74
86
|
|
75
|
-
|
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
|
-
|
78
|
-
using = loader.discover params...
|
96
|
+
@loaders.discovered = @loaders[requirer]
|
79
97
|
|
80
|
-
|
98
|
+
true
|
81
99
|
|
82
|
-
|
100
|
+
require: (params...) ->
|
101
|
+
using = loader.discover params...
|
83
102
|
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
module = loader.loaders.discovered.apply @, params unless module
|
103
|
+
try
|
104
|
+
|
105
|
+
module = loader.loaders.discovered.apply @, params
|
88
106
|
|
89
|
-
|
90
|
-
|
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
|
-
|
115
|
+
module
|
93
116
|
|
94
|
-
loader.shim()
|
95
|
-
loader.initialize()
|
117
|
+
loader.shim()
|
118
|
+
loader.initialize()
|
@@ -1,4 +1,13 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
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 )
|
@@ -84,9 +84,13 @@ define ->
|
|
84
84
|
initialize: (options) ->
|
85
85
|
@sandbox.logger.log "initialized!"
|
86
86
|
|
87
|
-
# TODO integrate component and requirejs
|
88
|
-
|
89
|
-
|
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
|
-
|
2
|
-
stampit = require 'indefinido-indemma/vendor/stampit.js'
|
3
|
-
observable = require('observable').mixin
|
1
|
+
'use strict';
|
4
2
|
|
5
|
-
|
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
|
-
'
|
7
|
-
'/
|
8
|
-
|
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
|
-
|
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
|
-
|
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
|
-
#
|
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
|
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
|
-
|
494
|
-
|
495
|
-
|
496
|
-
|
427
|
+
# TODO Better way to preserve widgets handlers
|
428
|
+
handlers =
|
429
|
+
item:
|
430
|
+
clicked: (event, models) =>
|
431
|
+
@select models.item
|
497
432
|
|
498
|
-
|
499
|
-
@presenter = @sandbox.util.extend custom_presenter, presenter if custom_presenter
|
433
|
+
presenter.handlers = handlers
|
500
434
|
|
501
|
-
|
502
|
-
@
|
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
|
-
|
438
|
+
@$results = @$el.find '.results .items'
|
505
439
|
|
506
|
-
|
507
|
-
|
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
|
-
|
443
|
+
true
|
@@ -3,10 +3,8 @@
|
|
3
3
|
# TODO implement default presenter
|
4
4
|
# define ['aura/presenterable'], (presenterable) ->
|
5
5
|
# presenterable()
|
6
|
-
|
7
|
-
|
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