ende 0.3.13 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- 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