ende 0.4.25 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +3 -2
- data/component.json +0 -1
- data/lib/assets/javascripts/aura/extensions/domain.js.coffee +55 -0
- data/lib/assets/javascripts/aura/extensions/models.js.coffee.erb +13 -4
- data/lib/assets/javascripts/aura/extensions/platform.js.coffee +8 -2
- data/lib/assets/javascripts/aura/extensions/rivets.js.coffee +10 -21
- data/lib/assets/javascripts/aura/extensions/stamps/stampit.js +242 -568
- data/lib/assets/javascripts/aura/extensions/widget/composable.js.coffee +18 -35
- data/lib/assets/javascripts/config/load_components.js.coffee +7 -5
- data/lib/assets/javascripts/widgets/attachable/main.js.coffee +77 -0
- data/lib/assets/javascripts/widgets/list/presenter.js.coffee +4 -5
- data/lib/assets/javascripts/widgets/support/adapters/olark.js +1 -1
- data/lib/assets/javascripts/widgets/tray/main.js.coffee +22 -16
- data/lib/assets/javascripts/widgets/viewer/main.js.coffee +4 -8
- data/lib/assets/javascripts/widgets/viewer/plugins/scopable.js.coffee +1 -7
- data/lib/ende/version.rb +1 -1
- data/vendor/assets/components/ende_build.js +463 -5150
- data/vendor/components/indefinido-indemma/build/development.js +2 -2
- data/vendor/components/indefinido-indemma/build/release.js +4 -5
- data/vendor/components/indefinido-indemma/build/test.js +2 -2
- data/vendor/components/indefinido-indemma/component.json +1 -0
- data/vendor/components/indefinido-indemma/lib/record/restfulable.js +2 -3
- data/vendor/components/indefinido-indemma/lib/record/validatable.js +2 -2
- data/vendor/components/indefinido-indemma/src/lib/record/restfulable.coffee +3 -9
- data/vendor/components/indefinido-indemma/src/lib/record/validatable.coffee +3 -3
- data/vendor/components/indefinido-observable/component.json +3 -7
- data/vendor/components/indefinido-observable/lib/observable.js +19 -9
- metadata +4 -60
- data/build/build.css +0 -111
- data/vendor/assets/javascripts/stampit/stampit.js +0 -392
- data/vendor/components/indefinido-observable/.gitignore +0 -15
- data/vendor/components/indefinido-observable/.ruby-gemset +0 -1
- data/vendor/components/indefinido-observable/.ruby-version +0 -1
- data/vendor/components/indefinido-observable/Gemfile +0 -13
- data/vendor/components/indefinido-observable/Guardfile +0 -39
- data/vendor/components/indefinido-observable/History.md +0 -0
- data/vendor/components/indefinido-observable/Readme.md +0 -116
- data/vendor/components/indefinido-observable/build/build.js +0 -14798
- data/vendor/components/indefinido-observable/build/development.js +0 -339
- data/vendor/components/indefinido-observable/build/release.js +0 -14937
- data/vendor/components/indefinido-observable/build/test.js +0 -339
- data/vendor/components/indefinido-observable/components/chaijs-chai/component.json +0 -46
- data/vendor/components/indefinido-observable/components/chaijs-chai/index.js +0 -1
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/assertion.js +0 -132
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/core/assertions.js +0 -1270
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/error.js +0 -60
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/interface/assert.js +0 -1060
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/interface/expect.js +0 -12
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/interface/should.js +0 -76
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/addChainableMethod.js +0 -94
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/addMethod.js +0 -37
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/addProperty.js +0 -40
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/eql.js +0 -124
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/flag.js +0 -32
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/getActual.js +0 -19
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/getEnumerableProperties.js +0 -25
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/getMessage.js +0 -49
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/getName.js +0 -20
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/getPathValue.js +0 -102
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/getProperties.js +0 -35
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/index.js +0 -108
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/inspect.js +0 -316
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/objDisplay.js +0 -48
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/overwriteMethod.js +0 -51
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/overwriteProperty.js +0 -54
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/test.js +0 -26
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/transferFlags.js +0 -44
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai/utils/type.js +0 -45
- data/vendor/components/indefinido-observable/components/chaijs-chai/lib/chai.js +0 -79
- data/vendor/components/indefinido-observable/components/cjohansen-sinon/sinon.js +0 -4290
- data/vendor/components/indefinido-observable/components/component-jquery/component.json +0 -14
- data/vendor/components/indefinido-observable/components/component-jquery/index.js +0 -9601
- data/vendor/components/indefinido-observable/components/kapit-observe-shim/component.json +0 -11
- data/vendor/components/indefinido-observable/components/kapit-observe-utils/component.json +0 -13
- data/vendor/components/indefinido-observable/karma.conf.js +0 -92
- data/vendor/components/indefinido-observable/spec/legacy/observable_spec.js +0 -126
- data/vendor/components/indefinido-observable/spec/observable_spec.js +0 -92
- data/vendor/components/indefinido-observable/spec/spec_helper.js +0 -8
- data/vendor/components/indefinido-observable/spec/vendor/accessors_spec.js +0 -63
- data/vendor/components/indefinido-observable/src/lib/adapters/rivets.js.coffee +0 -15
- data/vendor/components/indefinido-observable/src/spec/legacy/observable_spec.coffee +0 -132
- data/vendor/components/indefinido-observable/src/spec/observable_spec.coffee +0 -85
- data/vendor/components/indefinido-observable/src/spec/spec_helper.coffee +0 -5
- data/vendor/components/indefinido-observable/src/spec/vendor/accessors_spec.coffee +0 -59
- data/vendor/components/indefinido-observable/vendor/spec/boot.js +0 -104
- data/vendor/components/indefinido-observable/vendor/spec/jasmine.js +0 -2054
@@ -32,7 +32,6 @@ define 'aura/extensions/widget/composable', ->
|
|
32
32
|
for advice in advices
|
33
33
|
|
34
34
|
# in order to preserve declaration order, we must reverse the callbacks order
|
35
|
-
# TODO rename advice.name to advice.type
|
36
35
|
advice.callbacks.reverse() if advice.name == 'before'
|
37
36
|
|
38
37
|
# Advice with all callbacks
|
@@ -43,44 +42,28 @@ define 'aura/extensions/widget/composable', ->
|
|
43
42
|
advisor.advisable = (factory) ->
|
44
43
|
original = factory.compose
|
45
44
|
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
composed_advices
|
52
|
-
|
53
|
-
composable_advices = (stamps...) ->
|
54
|
-
advices = []
|
55
|
-
for stamped in stamps
|
56
|
-
{fixed: {methods: stamp_methods}} = stamped
|
57
|
-
advices = advices.concat extract_advices stamp_methods
|
45
|
+
stamp.mixIn factory,
|
46
|
+
compose: (stamps...) ->
|
47
|
+
{fixed: {methods: composition_methods}} = @composition
|
48
|
+
advices = extract_advices composition_methods
|
58
49
|
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
#
|
63
|
-
# TODO do not store advices definitions in the prototype chain
|
64
|
-
stamps.push stamp compose_advices advices
|
50
|
+
for stamped in stamps
|
51
|
+
{fixed: {methods: stamp_methods}} = stamped
|
52
|
+
advices = advices.concat extract_advices stamp_methods
|
65
53
|
|
66
|
-
|
54
|
+
adviced_stamp = {}
|
55
|
+
for advice in advices
|
56
|
+
adviced_stamp[advice.key] ||= []
|
57
|
+
adviced_stamp[advice.key] = adviced_stamp[advice.key].concat advice.callbacks
|
67
58
|
|
68
|
-
|
69
|
-
|
70
|
-
|
59
|
+
# Create a ultimate stamp with all advices arrays or functions merged
|
60
|
+
# TODO do not store advices definitions in the prototype chain
|
61
|
+
stamps.push stamp adviced_stamp
|
71
62
|
|
72
|
-
|
73
|
-
compose: (stamps...) ->
|
74
|
-
stamps.unshift factory.composition
|
75
|
-
original.apply factory, composable_advices stamps...
|
63
|
+
original.apply factory, stamps
|
76
64
|
|
77
65
|
advice: advisor.advice
|
78
66
|
|
79
|
-
|
80
|
-
composable = advisor.composable
|
81
|
-
advisor.composable = ->
|
82
|
-
advisor.advisable composable.apply advisor, arguments
|
83
|
-
|
84
67
|
advisor
|
85
68
|
|
86
69
|
composerable = (compositor) ->
|
@@ -120,8 +103,8 @@ define 'aura/extensions/widget/composable', ->
|
|
120
103
|
methods = extend methods, fixed.methods, definition_methods or definition
|
121
104
|
state = extend state , fixed.state , definition_state
|
122
105
|
|
123
|
-
initializers
|
124
|
-
initializers
|
106
|
+
initializers.push fixed.enclose if fixed.enclose
|
107
|
+
initializers.push definition.enclose if definition.enclose
|
125
108
|
|
126
109
|
enclosed = (properties) ->
|
127
110
|
initializers.forEach (initializer) => initializer.call @, properties
|
@@ -138,7 +121,7 @@ define 'aura/extensions/widget/composable', ->
|
|
138
121
|
|
139
122
|
{core: {Widgets, util: {extend}, stamp}} = application
|
140
123
|
|
141
|
-
Widgets = advisorable
|
124
|
+
Widgets = composerable advisorable Widgets
|
142
125
|
|
143
126
|
# THINK how to at the same time respect aura ways of instantiating
|
144
127
|
# widgets and preserve widget logic composability
|
@@ -26,6 +26,8 @@ define 'modernizr' , ['config/load_components'], ->
|
|
26
26
|
require 'modernizr'
|
27
27
|
window.Modernizr
|
28
28
|
|
29
|
+
define 'rivets', ['config/load_components'], -> require 'rivets'
|
30
|
+
|
29
31
|
# TODO define 'underscore', ['config/load_components'], -> require 'lodash'
|
30
32
|
|
31
33
|
# TODO figure out how to use rjs optmizer to include component builds
|
@@ -121,8 +123,8 @@ define 'config/load_components', ['application_components'], ->
|
|
121
123
|
using = loader.discover params...
|
122
124
|
|
123
125
|
try
|
124
|
-
|
125
|
-
|
126
|
+
# TODO rename mod to module
|
127
|
+
mod = loader.loaders.discovered.apply @, params
|
126
128
|
|
127
129
|
catch e
|
128
130
|
if e.require
|
@@ -132,15 +134,15 @@ define 'config/load_components', ['application_components'], ->
|
|
132
134
|
|
133
135
|
# Since it failed to load with component, try to load with requirejs
|
134
136
|
loader.activate 'requirejs'
|
135
|
-
unless
|
136
|
-
|
137
|
+
unless mod
|
138
|
+
mod = loader.loaders.discovered.apply @, params
|
137
139
|
else
|
138
140
|
throw e
|
139
141
|
|
140
142
|
# Always let requirejs active by default
|
141
143
|
loader.activate 'requirejs'
|
142
144
|
|
143
|
-
|
145
|
+
mod
|
144
146
|
|
145
147
|
loader.shim()
|
146
148
|
loader.initialize()
|
@@ -0,0 +1,77 @@
|
|
1
|
+
define ->
|
2
|
+
|
3
|
+
# TODO create diferent type for non-ui composable widgets
|
4
|
+
# TODO think about how to make this widget dependent on eventable extension
|
5
|
+
# TODO move this widtet to an extension when element is stored in the sandbox
|
6
|
+
type: 'Base'
|
7
|
+
|
8
|
+
version: '0.1.0'
|
9
|
+
|
10
|
+
# TODO options: {state: 'reset' # Will preserve initial widget state }
|
11
|
+
|
12
|
+
initialize: (options) ->
|
13
|
+
|
14
|
+
@sandbox._attachments = []
|
15
|
+
|
16
|
+
@$el.addClass "widget #{@name} composing"
|
17
|
+
|
18
|
+
# TODO think how to extend widgets as a way of knowing all children have started
|
19
|
+
@compose_when_parent()
|
20
|
+
|
21
|
+
# TODO think how to extend widgets as a way of knowing all children have started
|
22
|
+
compose_when_parent: ->
|
23
|
+
@interval = setInterval =>
|
24
|
+
if @sandbox._parent?
|
25
|
+
@compose @sandbox._parent._widget
|
26
|
+
clearInterval @interval
|
27
|
+
, 800
|
28
|
+
|
29
|
+
# Create a widget type to replace @$el for a html comment
|
30
|
+
compose: (parent) ->
|
31
|
+
@parent = parent
|
32
|
+
parent_namespace = parent.name + '.' + parent.identifier
|
33
|
+
|
34
|
+
# TODO move to elementless widgets
|
35
|
+
@transform_into_elementless()
|
36
|
+
|
37
|
+
@sandbox.on "#{parent_namespace}.reattach", @reattach, @
|
38
|
+
@sandbox.on "#{parent_namespace}.detach" , @detach , @
|
39
|
+
@sandbox.on "#{parent_namespace}.attach" , @attach , @
|
40
|
+
|
41
|
+
transform_into_elementless: ->
|
42
|
+
serializable_options = _.omit @options, '$el', 'el', 'ref', '_ref', 'require', 'baseUrl'
|
43
|
+
|
44
|
+
marker = " #{@name}.#{@identifier} for #{@parent.name}.#{parent.identifier}"
|
45
|
+
marker += " with #{JSON.stringify serializable_options} "
|
46
|
+
node = document.createComment marker
|
47
|
+
@$el.replaceWith node
|
48
|
+
|
49
|
+
@$el = $ node
|
50
|
+
|
51
|
+
reattach: (selector) ->
|
52
|
+
@detach()
|
53
|
+
@attach selector
|
54
|
+
|
55
|
+
detach: ->
|
56
|
+
@sandbox.stopListening()
|
57
|
+
# TODO Support multiple deatachments events storage
|
58
|
+
current_events = @sandbox._events
|
59
|
+
@sandbox._events = @sandbox._attachments.shift() || []
|
60
|
+
@sandbox._attachments.push current_events
|
61
|
+
|
62
|
+
# TODO unbind and store jquery handlers
|
63
|
+
# TODO store element position in the attachment
|
64
|
+
@parent.$el.detach()
|
65
|
+
|
66
|
+
attach: (selector) ->
|
67
|
+
element = @sandbox.dom.find selector
|
68
|
+
@sandbox.logger.error "attach: No element found for #{selector} for attachment" unless element.length
|
69
|
+
|
70
|
+
# TODO Support multiple deatachments events storage
|
71
|
+
@sandbox._attachments.push @sandbox._events
|
72
|
+
@sandbox._events = @sandbox._attachments.shift() || []
|
73
|
+
@sandbox.startListening()
|
74
|
+
|
75
|
+
# TODO rebind jquery handlers
|
76
|
+
# TODO restore element position of the attachment
|
77
|
+
element.append @parent.$el
|
@@ -1,13 +1,13 @@
|
|
1
1
|
'use strict'
|
2
|
-
observable = require('indefinido-observable').mixin
|
3
2
|
|
4
|
-
define
|
3
|
+
define ->
|
5
4
|
|
6
5
|
(items, luna) ->
|
7
6
|
|
8
7
|
resource = items[0].resource
|
9
8
|
|
10
|
-
|
9
|
+
# TODO create view_model
|
10
|
+
searcher:
|
11
11
|
query: ''
|
12
12
|
search: (event, models) ->
|
13
13
|
|
@@ -22,8 +22,7 @@ define (model) ->
|
|
22
22
|
|
23
23
|
false
|
24
24
|
|
25
|
-
|
26
|
-
list: observable Object.create null,
|
25
|
+
list: Object.create null,
|
27
26
|
resource:
|
28
27
|
set: (resource) -> null
|
29
28
|
get: -> resource
|
@@ -114,7 +114,7 @@ define(function () {
|
|
114
114
|
update_user: function (user) {
|
115
115
|
user.email && olark('api.visitor.updateEmailAddress', {emailAddress: user.email});
|
116
116
|
user.name && olark('api.visitor.updateFullName' , {fullName: user.name});
|
117
|
-
user.phone && olark('api.visitor.updatePhoneNumber' , {phoneNumber: user.phone});
|
117
|
+
user.phone.toString() && olark('api.visitor.updatePhoneNumber' , {phoneNumber: user.phone.toString()});
|
118
118
|
// TODO rename user._id to user.id
|
119
119
|
user._id && olark('api.visitor.updateCustomFields', {id: user._id});
|
120
120
|
}
|
@@ -1,24 +1,22 @@
|
|
1
|
-
|
1
|
+
'use strict'
|
2
2
|
|
3
|
-
|
3
|
+
define
|
4
4
|
|
5
5
|
type: 'Base'
|
6
6
|
|
7
7
|
version: '0.1.2'
|
8
8
|
|
9
9
|
initialize: (options) ->
|
10
|
-
names = []
|
11
10
|
{identifier} = options
|
11
|
+
@names = []
|
12
12
|
|
13
|
-
# TODO access omit method throuhgh
|
13
|
+
# TODO access omit method throuhgh sandbox
|
14
14
|
widget_options = _.omit options, 'el', 'ref', '_ref', 'name', 'require', 'baseUrl', 'resource'
|
15
15
|
|
16
16
|
# TODO remove jquery dependency
|
17
|
-
|
18
|
-
names.push suboptions.name || name
|
19
|
-
@add suboptions.name || name, suboptions
|
17
|
+
injections = @prepare_injections widget_options
|
20
18
|
|
21
|
-
@$el.addClass ['tray', 'widget'].concat(names).join(' ')
|
19
|
+
@$el.addClass ['tray', 'widget'].concat(@names).join(' ')
|
22
20
|
|
23
21
|
@identifier ||= identifier
|
24
22
|
|
@@ -27,13 +25,21 @@ define ->
|
|
27
25
|
@identifier = identifier
|
28
26
|
@$el.attr 'id', identifier
|
29
27
|
|
30
|
-
|
28
|
+
# TODO get defer through sandbox
|
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>'
|
31
41
|
|
32
|
-
|
42
|
+
@injection
|
43
|
+
name: suboptions.name || name
|
44
|
+
options: suboptions
|
33
45
|
|
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
|
@@ -256,6 +256,9 @@ define [
|
|
256
256
|
# use it here instead of overriding all records
|
257
257
|
viewer.items = records
|
258
258
|
|
259
|
+
# Start widgets created by bindings
|
260
|
+
@syncronize_children()
|
261
|
+
|
259
262
|
@fetching.done (records) =>
|
260
263
|
if viewer.items.length
|
261
264
|
# boo.initialize @$el.find '.results .items'
|
@@ -322,14 +325,7 @@ define [
|
|
322
325
|
|
323
326
|
# TODO move binders to application
|
324
327
|
@inherit_parent_presentation()
|
325
|
-
|
326
|
-
@bind @presentation, @sandbox.util.extend(true, @presenter.presentation, @options.presentation)
|
327
|
-
|
328
|
-
@presentation.viewer.subscribe 'items', =>
|
329
|
-
# Start possible widgets created by items with widget
|
330
|
-
# instantiation markup
|
331
|
-
@syncronize_children()
|
332
|
-
|
328
|
+
@bind @presentation, @presenter.presentation
|
333
329
|
|
334
330
|
# Start widgets that may have been created by bindings
|
335
331
|
@sandbox.emit 'aura.sandbox.start', @sandbox
|
@@ -1,11 +1,6 @@
|
|
1
1
|
'use strict';
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
# TODO define componentjs required packages, as requirejs packages
|
6
|
-
observable = require('indefinido-observable').mixin
|
7
|
-
|
8
|
-
define ['stampit/stampit'], (stampit) ->
|
3
|
+
define ['stampit/stampit', 'observable'], (stampit, observable) ->
|
9
4
|
|
10
5
|
scopingable = stampit
|
11
6
|
start: ->
|
@@ -42,7 +37,6 @@ define ['stampit/stampit'], (stampit) ->
|
|
42
37
|
@
|
43
38
|
|
44
39
|
|
45
|
-
|
46
40
|
scopable = stampit
|
47
41
|
forward_scope_data: (scope_name, data) ->
|
48
42
|
switch @scope['$' + scope_name].constructor
|
data/lib/ende/version.rb
CHANGED