ende 0.4.20 → 0.4.21
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +2 -3
- data/build/build.css +111 -0
- data/component.json +1 -0
- data/lib/assets/javascripts/aura/extensions/models.js.coffee.erb +4 -13
- data/lib/assets/javascripts/aura/extensions/platform.js.coffee +2 -8
- data/lib/assets/javascripts/aura/extensions/rivets.js.coffee +21 -10
- data/lib/assets/javascripts/aura/extensions/states.js.coffee +25 -27
- data/lib/assets/javascripts/aura/extensions/widget/eventable.js.coffee +28 -23
- data/lib/assets/javascripts/aura/extensions/widget/lifecycleable.js.coffee +21 -34
- data/lib/assets/javascripts/aura/extensions/widget/napable.js.coffee +17 -13
- data/lib/assets/javascripts/config/load_components.js.coffee +5 -7
- data/lib/assets/javascripts/widgets/dialog/main.js.coffee +1 -2
- data/lib/assets/javascripts/widgets/list/presenter.js.coffee +5 -4
- data/lib/assets/javascripts/widgets/support/adapters/olark.js +1 -1
- data/lib/assets/javascripts/widgets/tray/main.js.coffee +16 -22
- data/lib/assets/javascripts/widgets/viewer/main.js.coffee +39 -102
- data/lib/assets/javascripts/widgets/viewer/plugins/scopable.js.coffee +7 -1
- data/lib/ende/version.rb +1 -1
- data/vendor/assets/components/ende_build.js +5732 -1047
- data/vendor/components/indefinido-indemma/build/development.js +2 -2
- data/vendor/components/indefinido-indemma/build/release.js +9 -4
- data/vendor/components/indefinido-indemma/build/test.js +115 -21916
- data/vendor/components/indefinido-indemma/component.json +0 -1
- data/vendor/components/indefinido-indemma/lib/record/restfulable.js +7 -2
- data/vendor/components/indefinido-indemma/lib/record/validatable.js +2 -2
- data/vendor/components/indefinido-indemma/src/lib/record/persistable.coffee +2 -0
- data/vendor/components/indefinido-indemma/src/lib/record/resource.coffee +3 -2
- data/vendor/components/indefinido-indemma/src/lib/record/restfulable.coffee +16 -4
- data/vendor/components/indefinido-indemma/src/lib/record/validatable.coffee +3 -3
- data/vendor/components/indefinido-observable/.gitignore +15 -0
- data/vendor/components/indefinido-observable/.ruby-gemset +1 -0
- data/vendor/components/indefinido-observable/.ruby-version +1 -0
- data/vendor/components/indefinido-observable/Gemfile +13 -0
- data/vendor/components/indefinido-observable/Guardfile +39 -0
- data/vendor/components/indefinido-observable/History.md +0 -0
- data/vendor/components/indefinido-observable/Readme.md +116 -0
- data/vendor/components/indefinido-observable/build/build.js +14798 -0
- data/vendor/components/indefinido-observable/build/development.js +339 -0
- data/vendor/components/indefinido-observable/build/release.js +14937 -0
- data/vendor/components/indefinido-observable/build/test.js +339 -0
- data/vendor/components/indefinido-observable/component.json +7 -3
- data/vendor/components/indefinido-observable/components/chaijs-chai/component.json +46 -0
- data/vendor/components/indefinido-observable/components/chaijs-chai/index.js +1 -0
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/assertion.js +132 -0
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/core/assertions.js +1270 -0
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/error.js +60 -0
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/interface/assert.js +1060 -0
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/interface/expect.js +12 -0
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/interface/should.js +76 -0
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/addChainableMethod.js +94 -0
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/addMethod.js +37 -0
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/addProperty.js +40 -0
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/eql.js +124 -0
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/flag.js +32 -0
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/getActual.js +19 -0
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/getEnumerableProperties.js +25 -0
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/getMessage.js +49 -0
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/getName.js +20 -0
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/getPathValue.js +102 -0
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/getProperties.js +35 -0
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/index.js +108 -0
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/inspect.js +316 -0
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/objDisplay.js +48 -0
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/overwriteMethod.js +51 -0
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/overwriteProperty.js +54 -0
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/test.js +26 -0
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/transferFlags.js +44 -0
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/type.js +45 -0
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai.js +79 -0
- data/vendor/components/indefinido-observable/components/cjohansen-sinon/sinon.js +4290 -0
- data/vendor/components/indefinido-observable/components/component-jquery/component.json +14 -0
- data/vendor/components/indefinido-observable/components/component-jquery/index.js +9601 -0
- data/vendor/components/indefinido-observable/components/kapit-observe-shim/component.json +11 -0
- data/vendor/components/indefinido-observable/components/kapit-observe-utils/component.json +13 -0
- data/vendor/components/indefinido-observable/karma.conf.js +92 -0
- data/vendor/components/indefinido-observable/lib/observable.js +9 -19
- data/vendor/components/indefinido-observable/spec/legacy/observable_spec.js +126 -0
- data/vendor/components/indefinido-observable/spec/observable_spec.js +92 -0
- data/vendor/components/indefinido-observable/spec/spec_helper.js +8 -0
- data/vendor/components/indefinido-observable/spec/vendor/accessors_spec.js +63 -0
- data/vendor/components/indefinido-observable/src/lib/adapters/rivets.js.coffee +15 -0
- data/vendor/components/indefinido-observable/src/spec/legacy/observable_spec.coffee +132 -0
- data/vendor/components/indefinido-observable/src/spec/observable_spec.coffee +85 -0
- data/vendor/components/indefinido-observable/src/spec/spec_helper.coffee +5 -0
- data/vendor/components/indefinido-observable/src/spec/vendor/accessors_spec.coffee +59 -0
- data/vendor/components/indefinido-observable/vendor/spec/boot.js +104 -0
- data/vendor/components/indefinido-observable/vendor/spec/jasmine.js +2054 -0
- metadata +60 -8
- data/lib/assets/javascripts/aura/extensions/domain.js.coffee +0 -55
- data/lib/assets/javascripts/aura/extensions/stamps.js.coffee +0 -35
- data/lib/assets/javascripts/aura/extensions/widget/composable.js.coffee +0 -135
- data/lib/assets/javascripts/aura/extensions/widget/flowable.js.coffee +0 -65
- data/lib/assets/javascripts/widgets/attachable/main.js.coffee +0 -77
- /data/{lib/assets/javascripts/aura/extensions/stamps → vendor/assets/javascripts/stampit}/stampit.js +0 -0
@@ -1,22 +1,24 @@
|
|
1
|
-
|
1
|
+
define ->
|
2
2
|
|
3
|
-
|
3
|
+
'use strict'
|
4
4
|
|
5
5
|
type: 'Base'
|
6
6
|
|
7
7
|
version: '0.1.2'
|
8
8
|
|
9
9
|
initialize: (options) ->
|
10
|
+
names = []
|
10
11
|
{identifier} = options
|
11
|
-
@names = []
|
12
12
|
|
13
|
-
# TODO access omit method throuhgh
|
13
|
+
# TODO access omit method throuhgh underscore
|
14
14
|
widget_options = _.omit options, 'el', 'ref', '_ref', 'name', 'require', 'baseUrl', 'resource'
|
15
15
|
|
16
16
|
# TODO remove jquery dependency
|
17
|
-
|
17
|
+
for name, suboptions of widget_options when $.type(suboptions) is "object"
|
18
|
+
names.push suboptions.name || name
|
19
|
+
@add suboptions.name || name, suboptions
|
18
20
|
|
19
|
-
@$el.addClass ['tray', 'widget'].concat(
|
21
|
+
@$el.addClass ['tray', 'widget'].concat(names).join(' ')
|
20
22
|
|
21
23
|
@identifier ||= identifier
|
22
24
|
|
@@ -25,21 +27,13 @@ define
|
|
25
27
|
@identifier = identifier
|
26
28
|
@$el.attr 'id', identifier
|
27
29
|
|
28
|
-
|
29
|
-
_.defer =>
|
30
|
-
@sandbox.start injections
|
31
|
-
|
32
|
-
prepare_injections: (widget_options) ->
|
33
|
-
# TODO remove jquery dependency, and use type detection through sandbox
|
34
|
-
for name, suboptions of widget_options when $.type(suboptions) is "object"
|
35
|
-
@names.push suboptions.name || name
|
36
|
-
|
37
|
-
# TODO do not allow elements outside of the tray
|
38
|
-
# TODO remove jquery dependency, and use documentFragment to build widgets
|
39
|
-
# TODO allow widgets without elements
|
40
|
-
@$el.append suboptions.el = jQuery '<div class="widget"></div>'
|
30
|
+
@sandbox.start()
|
41
31
|
|
42
|
-
|
43
|
-
name: suboptions.name || name
|
44
|
-
options: suboptions
|
32
|
+
add: (name, options) ->
|
45
33
|
|
34
|
+
# TODO add widgets as childrens of the tray widget sandbox
|
35
|
+
# TODO remove jquery dependency, and use documentFragment to build widgets
|
36
|
+
element = jQuery '<div class="widget"></div>'
|
37
|
+
options.el = element
|
38
|
+
@$el.append element
|
39
|
+
@inject name, options
|
@@ -1,13 +1,14 @@
|
|
1
|
+
|
1
2
|
'use strict';
|
2
3
|
|
3
|
-
|
4
|
+
lazy_requires = ['observable', 'advisable']
|
4
5
|
define [
|
5
6
|
'./states/index',
|
6
7
|
'./presenters/default',
|
7
8
|
'jquery.inview',
|
8
9
|
'stampit/stampit',
|
9
|
-
|
10
|
-
|
10
|
+
lazy_requires[0],
|
11
|
+
lazy_requires[1]], (templates, presenter, inview, stampit, observable, advisable) ->
|
11
12
|
|
12
13
|
scopable = (widget) ->
|
13
14
|
deferred = widget.sandbox.data.deferred()
|
@@ -29,7 +30,6 @@ define [
|
|
29
30
|
|
30
31
|
return unless total_pages?
|
31
32
|
|
32
|
-
# TODO set default abortion to decreatse page numbers amount
|
33
33
|
scope.page ++page_number
|
34
34
|
|
35
35
|
if page_number <= total_pages
|
@@ -126,32 +126,7 @@ define [
|
|
126
126
|
viewed: (event, in_view, horizontal, vertical) ->
|
127
127
|
boo[if in_view then 'pride' else 'shame'] event.target
|
128
128
|
|
129
|
-
|
130
|
-
# TODO Move each handler to independent features
|
131
|
-
handleable = stampit
|
132
|
-
handleables:
|
133
|
-
item:
|
134
|
-
hover: (event, models) ->
|
135
|
-
if event.type == 'mouseenter'
|
136
|
-
@hover models.item
|
137
|
-
else if event.type == 'mouseleave'
|
138
|
-
@hover null
|
139
|
-
else
|
140
|
-
throw new TypeError 'viewer.handlers.hover: Event type incompatible with hovering.'
|
141
|
-
|
142
|
-
clicked: (event, models) -> @select models.item
|
143
|
-
|
144
|
-
, {}, ->
|
145
|
-
|
146
|
-
throw new TypeError "Widget property is mandatory for handleable stamp" unless @widget?
|
147
|
-
|
148
|
-
@handlers =
|
149
|
-
item:
|
150
|
-
clicked: $.proxy @handleables.item.clicked, @widget
|
151
|
-
hover : $.proxy @handleables.item.hover , @widget
|
152
|
-
|
153
|
-
@
|
154
|
-
version: '0.2.4'
|
129
|
+
version: '0.2.1'
|
155
130
|
|
156
131
|
# TODO better separation of concerns
|
157
132
|
# TODO Current remote page that is beign displayed
|
@@ -182,16 +157,8 @@ define [
|
|
182
157
|
# We extend presentation.selected just to assign all values of the item model
|
183
158
|
# TODO call presenter to do this job
|
184
159
|
@sandbox.util.extend @presentation.selected , item.model.json?() || item.model
|
185
|
-
|
186
|
-
# TODO change paramters to item, item.model
|
187
160
|
@sandbox.emit "viewer.#{@identifier}.selected", item.model
|
188
161
|
|
189
|
-
# Called when hover in and out from model
|
190
|
-
hover: (item) ->
|
191
|
-
# TODO call presenter to do this job
|
192
|
-
# @sandbox.util.extend @presentation.hovered , item.model.json?() || item.model
|
193
|
-
@sandbox.emit "viewer.#{@identifier}.hovered", item, item && item.model
|
194
|
-
|
195
162
|
scope_to: (scope, child_scope) ->
|
196
163
|
# Singuralize in order to accept association scopes, since
|
197
164
|
# association scopes return almost the same kind as of it's
|
@@ -199,14 +166,16 @@ define [
|
|
199
166
|
sent_scope = @inflector.singularize scope.resource.toString()
|
200
167
|
current_scope = @inflector.singularize @scope.resource.toString()
|
201
168
|
|
202
|
-
deferred = @sandbox.data.deferred()
|
203
|
-
|
204
169
|
if sent_scope != current_scope
|
205
170
|
throw new TypeError "Invalid scope sent to viewer@#{@identifier} sent: '#{sent_scope}', expected: '#{current_scope}'"
|
206
171
|
|
207
172
|
# For sobsequent usages we must store the scope
|
208
173
|
@scope = scope
|
209
174
|
|
175
|
+
# TODO better hierachical event distribution
|
176
|
+
for { _widget: widget } in @sandbox._children?
|
177
|
+
widget.scope_to? child_scope
|
178
|
+
|
210
179
|
@sandbox.emit "viewer.#{@identifier}.scope_changed", @scope
|
211
180
|
|
212
181
|
# TODO better scope data binding, and updating
|
@@ -216,15 +185,6 @@ define [
|
|
216
185
|
|
217
186
|
@repopulate()
|
218
187
|
|
219
|
-
# TODO rename this method
|
220
|
-
# TODO also move this to an external tag
|
221
|
-
statused: (status) ->
|
222
|
-
if status
|
223
|
-
@status = status
|
224
|
-
@sandbox.emit "viewer.#{@identifier}.status_changed", status
|
225
|
-
else
|
226
|
-
@status
|
227
|
-
|
228
188
|
repopulate: ->
|
229
189
|
unless @fetching?
|
230
190
|
if @load?
|
@@ -235,10 +195,9 @@ define [
|
|
235
195
|
|
236
196
|
# TODO store spinner instance, instead of creating a new one every time
|
237
197
|
unless @load?
|
238
|
-
@load = @sandbox.ui.loader @$results
|
198
|
+
@load = @sandbox.ui.loader @$el.find '.results .items'
|
239
199
|
|
240
200
|
# TODO implement status for viewer widget
|
241
|
-
@statused 'loading'
|
242
201
|
@$el.addClass 'idle'
|
243
202
|
@$el.removeClass 'loading'
|
244
203
|
|
@@ -253,7 +212,7 @@ define [
|
|
253
212
|
records = _.map records, @resource, @resource unless records[0]?.resource or records[0]?.itemable
|
254
213
|
|
255
214
|
# TODO implement Array.concat ou Array.merge in observer, and
|
256
|
-
# use it here instead of
|
215
|
+
# use it here instead of pushing each record
|
257
216
|
viewer.items = records
|
258
217
|
|
259
218
|
# Start widgets created by bindings
|
@@ -272,20 +231,21 @@ define [
|
|
272
231
|
@sandbox.emit "viewer.#{@identifier}.populated", records, @
|
273
232
|
|
274
233
|
@fetching.always =>
|
234
|
+
# TODO implement status for viewer widget
|
235
|
+
@$el.addClass 'idle'
|
236
|
+
@$el.removeClass 'loading'
|
237
|
+
|
275
238
|
if @load?
|
276
239
|
@load.stop()
|
277
240
|
@load = null
|
278
241
|
|
279
|
-
# TODO implement status for viewer widget
|
280
|
-
@$el.removeClass 'loading'
|
281
|
-
@statused 'idle'
|
282
|
-
@$el.addClass 'idle'
|
283
242
|
|
284
|
-
populate: ->
|
285
|
-
|
243
|
+
populate: (handlers) ->
|
244
|
+
sandbox = @sandbox
|
245
|
+
|
246
|
+
@load = @sandbox.ui.loader @$results
|
286
247
|
|
287
248
|
# TODO implement status for viewer widget
|
288
|
-
@statused 'loading'
|
289
249
|
@$el.removeClass 'idle'
|
290
250
|
@$el.addClass 'loading'
|
291
251
|
|
@@ -310,12 +270,9 @@ define [
|
|
310
270
|
|
311
271
|
@load.stop()
|
312
272
|
|
313
|
-
|
314
|
-
@presentation = @presenter records, @scope, @handleable
|
273
|
+
@presentation = @presenter records, @scope
|
315
274
|
|
316
|
-
# Initialize elements
|
317
275
|
@$el.html templates[@options.resource]
|
318
|
-
@$results = @$el.find '.results .items'
|
319
276
|
|
320
277
|
if records.length
|
321
278
|
# boo.initialize @$el.find '.results .items'
|
@@ -342,7 +299,7 @@ define [
|
|
342
299
|
|
343
300
|
|
344
301
|
plugins: (options) ->
|
345
|
-
deferreds = [
|
302
|
+
deferreds = []
|
346
303
|
|
347
304
|
deferreds.push paginable widget: @ if options.page
|
348
305
|
deferreds.push scrollable widget: @ if options.scroll
|
@@ -353,7 +310,6 @@ define [
|
|
353
310
|
# TODO move this method to an extension
|
354
311
|
syncronize_children: ->
|
355
312
|
@sandbox._children ||= []
|
356
|
-
@sandbox._widget ||= @
|
357
313
|
|
358
314
|
# Add possible new childs
|
359
315
|
@constructor.startAll(@$el).done (widgets...) =>
|
@@ -363,12 +319,6 @@ define [
|
|
363
319
|
|
364
320
|
@sandbox._children = @sandbox._children.concat widgets
|
365
321
|
|
366
|
-
for widget in widgets
|
367
|
-
# TODO emit this event only when all siblings have initialized
|
368
|
-
@sandbox.emit "#{widget.name}.#{widget.identifier}.siblings_initialized", @sandbox._children
|
369
|
-
|
370
|
-
true
|
371
|
-
|
372
322
|
# TODO better internal aura widget selection
|
373
323
|
# Prevent other child to be instantiated
|
374
324
|
@$el.find('[data-aura-widget]').each (i, element) ->
|
@@ -452,56 +402,43 @@ define [
|
|
452
402
|
initialize: (options) ->
|
453
403
|
# TODO import core extensions in another place
|
454
404
|
@resource = @sandbox.resource options.resource
|
455
|
-
@scope = @resource
|
456
|
-
|
457
|
-
# Instantiate it's on handleable factory
|
458
|
-
widget = @
|
459
|
-
widgetable = stampit().enclose -> @widget = widget; @
|
460
|
-
@handleable = stampit.compose widgetable, handleable
|
405
|
+
@scope = model = @resource
|
461
406
|
|
462
407
|
{sandbox: {util: {@inflector}}} = @
|
463
408
|
|
464
409
|
@sandbox.on "viewer.#{@identifier}.scope", @scope_to, @
|
465
410
|
|
466
|
-
#
|
467
|
-
# TODO think how to implement plugins api
|
411
|
+
# Iniitalize plugins
|
468
412
|
loading = @plugins options
|
469
413
|
|
470
|
-
@statused 'idle'
|
471
414
|
@$el.addClass "viewer widget #{@inflector.cssify @identifier} idle clearfix"
|
472
415
|
|
473
|
-
loading.done
|
474
|
-
widget.require_custom options.resource
|
475
|
-
|
476
|
-
# TODO externalize this code to an extension
|
477
|
-
require_custom: (resource) ->
|
478
|
-
deferred = @sandbox.data.deferred()
|
416
|
+
loading.done => @require_custom options
|
479
417
|
|
418
|
+
require_custom: (options) ->
|
480
419
|
# Fetch custom templates
|
481
420
|
# TODO better custom templates structure and custom presenter
|
482
421
|
# TODO better segregation of concerns on this code
|
483
422
|
# TODO handle case where custom presenter does not exist!
|
484
423
|
require [
|
485
|
-
"text!./widgets/viewer/templates/default/#{resource}.html"
|
486
|
-
"./widgets/viewer/presenters/#{resource}"
|
424
|
+
"text!./widgets/viewer/templates/default/#{options.resource}.html"
|
425
|
+
"./widgets/viewer/presenters/#{options.resource}"
|
487
426
|
], (custom_default_template, custom_presenter) =>
|
488
427
|
|
489
|
-
|
490
|
-
|
491
|
-
|
492
|
-
|
428
|
+
# TODO Better way to preserve widgets handlers
|
429
|
+
handlers =
|
430
|
+
item:
|
431
|
+
clicked: (event, models) =>
|
432
|
+
@select models.item
|
493
433
|
|
494
|
-
|
495
|
-
@presenter = @sandbox.util.extend custom_presenter, presenter if custom_presenter
|
434
|
+
presenter.handlers = handlers
|
496
435
|
|
497
|
-
|
498
|
-
@
|
436
|
+
custom_default_template and templates[options.resource] = custom_default_template
|
437
|
+
@presenter = @sandbox.util.extend custom_presenter, presenter if custom_presenter
|
499
438
|
|
500
|
-
|
439
|
+
@$results = @$el.find '.results .items'
|
501
440
|
|
502
|
-
|
503
|
-
|
504
|
-
@sandbox.logger.error "Error when loading presenter and template for resource '#{resource}':\n\n", error.message + "\n\n", error
|
505
|
-
deferred.rejectWith @, arguments
|
441
|
+
# Fetch default data
|
442
|
+
@populate handlers
|
506
443
|
|
507
|
-
|
444
|
+
true
|
@@ -1,6 +1,11 @@
|
|
1
1
|
'use strict';
|
2
2
|
|
3
|
-
|
3
|
+
window.domo = []
|
4
|
+
|
5
|
+
# TODO define componentjs required packages, as requirejs packages
|
6
|
+
observable = require('indefinido-observable').mixin
|
7
|
+
|
8
|
+
define ['stampit/stampit'], (stampit) ->
|
4
9
|
|
5
10
|
scopingable = stampit
|
6
11
|
start: ->
|
@@ -37,6 +42,7 @@ define ['stampit/stampit', 'observable'], (stampit, observable) ->
|
|
37
42
|
@
|
38
43
|
|
39
44
|
|
45
|
+
|
40
46
|
scopable = stampit
|
41
47
|
forward_scope_data: (scope_name, data) ->
|
42
48
|
switch @scope['$' + scope_name].constructor
|
data/lib/ende/version.rb
CHANGED