ende 0.3.1 → 0.3.2
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bb1613e062a3e54de98840f579455b3f0f40e6f1
|
4
|
+
data.tar.gz: e54b6e9c72d7fca5a89cb08d1ffd897e85dba482
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 711ef07535c5cf8325fd6ffbe02c5bd741f9b7be6b977771577d50af5f806f10af905ad094988b1d8c046fcd3d80c57a383ecd6818bafb9ed5fe95f0b099bb12
|
7
|
+
data.tar.gz: 34515cb01be277154400b9950759ded82a462841bb4e80bb31afc0334ab768b7527b516c63bc771da76adf5bf81f61c843871e1777764b97a3a2b675d0efa7cd
|
@@ -255,7 +255,7 @@ define 'aura/extensions/rivets', ->
|
|
255
255
|
presented = presentation.presented
|
256
256
|
delete presentation.presented
|
257
257
|
|
258
|
-
@view = rivets.bind @$el, presentation, options
|
258
|
+
@sandbox._view = @view = rivets.bind @$el, presentation, options
|
259
259
|
|
260
260
|
presented(@view) if presented?
|
261
261
|
|
@@ -3,10 +3,19 @@
|
|
3
3
|
define [
|
4
4
|
'./states/index',
|
5
5
|
'./presenters/default',
|
6
|
+
'./presenters/default',
|
6
7
|
'/assets/jquery/inview',
|
7
8
|
'stampit/stampit'], (templates, presenter, inview, stampit) ->
|
8
9
|
|
9
|
-
observable
|
10
|
+
observable = require('indefinido-observable').mixin
|
11
|
+
|
12
|
+
# TODO define componentjs required packages, as requirejs packages
|
13
|
+
stampit ||= require 'stampit/stampit'
|
14
|
+
|
15
|
+
scopable = (widget) ->
|
16
|
+
# TODO add widget plug-in as an extension for a widget
|
17
|
+
require ['widgets/viewer/plugins/scopable'], (scopable) ->
|
18
|
+
scopable widget
|
10
19
|
|
11
20
|
paginable = stampit
|
12
21
|
flip_to: (page) ->
|
@@ -200,6 +209,9 @@ define [
|
|
200
209
|
@$el.addClass 'empty'
|
201
210
|
@$el.removeClass 'filled'
|
202
211
|
|
212
|
+
# Start widgets that may have been created by bindings
|
213
|
+
@sandbox.start @$el
|
214
|
+
|
203
215
|
@sandbox.emit "viewer.#{@identifier}.populated", records
|
204
216
|
|
205
217
|
@fetching.always =>
|
@@ -244,8 +256,7 @@ define [
|
|
244
256
|
|
245
257
|
@presentation = @presenter records
|
246
258
|
|
247
|
-
|
248
|
-
|
259
|
+
@$el.html templates[@options.resource]
|
249
260
|
|
250
261
|
if records.length
|
251
262
|
# boo.initialize @$el.find '.results .items'
|
@@ -254,8 +265,12 @@ define [
|
|
254
265
|
@$el.addClass 'empty'
|
255
266
|
|
256
267
|
# TODO move binders to application
|
268
|
+
@inherit_parent_presentation()
|
257
269
|
@bind @presentation, @presenter.presentation
|
258
270
|
|
271
|
+
# Start widgets that may have been created by bindings
|
272
|
+
@sandbox.start @$el
|
273
|
+
|
259
274
|
@handles 'click', 'back', '.back'
|
260
275
|
|
261
276
|
@sandbox.emit "viewer.#{@identifier}.populated", records
|
@@ -270,6 +285,38 @@ define [
|
|
270
285
|
|
271
286
|
paginable widget: @ if options.page
|
272
287
|
scrollable widget: @ if options.scroll
|
288
|
+
scopable @ if options.scope or options.scopable
|
289
|
+
|
290
|
+
# TODO listen for future parent presentation changes
|
291
|
+
inherit_parent_presentation: ->
|
292
|
+
return unless view = @sandbox?._parent?._view
|
293
|
+
|
294
|
+
isDescendant = (parent, child) ->
|
295
|
+
node = child.parentNode
|
296
|
+
|
297
|
+
while (node != null)
|
298
|
+
return true if (node == parent)
|
299
|
+
node = node.parentNode
|
300
|
+
|
301
|
+
false
|
302
|
+
|
303
|
+
models = {}
|
304
|
+
# Copy default models
|
305
|
+
# TODO think if its a good idea to notify about model name conflicts
|
306
|
+
for name, model of view.models
|
307
|
+
@presentation[name] ||= model # By default do not child models with parent models
|
308
|
+
|
309
|
+
for binding in view.bindings
|
310
|
+
# Copy each binding models
|
311
|
+
if binding.iterated
|
312
|
+
for view in binding.iterated
|
313
|
+
if isDescendant view.els[0], @$el.get(0)
|
314
|
+
for name, model of view.models
|
315
|
+
@presentation[name] ||= model
|
316
|
+
|
317
|
+
break
|
318
|
+
|
319
|
+
true
|
273
320
|
|
274
321
|
|
275
322
|
initialize: (options) ->
|
@@ -0,0 +1,39 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
# TODO define componentjs required packages, as requirejs packages
|
4
|
+
observable = require('indefinido-observable').mixin
|
5
|
+
|
6
|
+
define ->
|
7
|
+
(widget) ->
|
8
|
+
|
9
|
+
widget = observable widget
|
10
|
+
|
11
|
+
# TODO transfer data from old scope to new one
|
12
|
+
# widget.subscribe 'scope', ->
|
13
|
+
|
14
|
+
enhance_presenter = (presenter) ->
|
15
|
+
widget = @
|
16
|
+
presenter.presentation ||= {binders: {}}
|
17
|
+
presenter.presentation.binders ||= {}
|
18
|
+
|
19
|
+
{presentation: {binders}} = presenter
|
20
|
+
|
21
|
+
|
22
|
+
binders['scope-*'] =
|
23
|
+
bind: ->
|
24
|
+
@scope_name = @args[0].replace /-/g, '_'
|
25
|
+
routine: (element, value) ->
|
26
|
+
widget.scope_to widget.scope[@scope_name] value
|
27
|
+
|
28
|
+
binders.scope =
|
29
|
+
|
30
|
+
routine: (element, value) ->
|
31
|
+
keypath = @keypath.substring 1 if @keypath[0] == '_'
|
32
|
+
name = "by_#{@key}_#{keypath || @keypath}"
|
33
|
+
widget.scope_to widget.scope[name] value
|
34
|
+
|
35
|
+
enhance_presenter.call widget, widget.presenter
|
36
|
+
widget.subscribe 'presenter', enhance_presenter
|
37
|
+
|
38
|
+
|
39
|
+
|
data/lib/ende/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ende
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Heitor Salazar
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-01-
|
11
|
+
date: 2014-01-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -110,6 +110,7 @@ files:
|
|
110
110
|
- lib/assets/javascripts/widgets/support/main.js.coffee
|
111
111
|
- lib/assets/javascripts/widgets/tray/main.js.coffee
|
112
112
|
- lib/assets/javascripts/widgets/viewer/main.js.coffee
|
113
|
+
- lib/assets/javascripts/widgets/viewer/plugins/scopable.js.coffee
|
113
114
|
- lib/assets/javascripts/widgets/viewer/presenters/default.js.coffee
|
114
115
|
- lib/assets/javascripts/widgets/viewer/states/default.html
|
115
116
|
- lib/assets/javascripts/widgets/viewer/states/index.js.coffee
|