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