mirror of
https://github.com/flynx/ImageGrid.git
synced 2025-10-29 18:30:09 +00:00
tweaking events...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
a314131066
commit
b60bb38fbe
@ -520,6 +520,7 @@ var BrowserPrototype = {
|
|||||||
this.__dom = value },
|
this.__dom = value },
|
||||||
|
|
||||||
|
|
||||||
|
// Element renderers...
|
||||||
//
|
//
|
||||||
// Foramt:
|
// Foramt:
|
||||||
// <div class="browse-widget" tabindex="0">
|
// <div class="browse-widget" tabindex="0">
|
||||||
@ -534,6 +535,7 @@ var BrowserPrototype = {
|
|||||||
// </div>
|
// </div>
|
||||||
//
|
//
|
||||||
// XXX instrument interactions...
|
// XXX instrument interactions...
|
||||||
|
// XXX register event handlers...
|
||||||
renderList: function(items, context){
|
renderList: function(items, context){
|
||||||
var that = this
|
var that = this
|
||||||
var options = context.options || this.options
|
var options = context.options || this.options
|
||||||
@ -557,6 +559,9 @@ var BrowserPrototype = {
|
|||||||
: item) })
|
: item) })
|
||||||
dialog.appendChild(list)
|
dialog.appendChild(list)
|
||||||
|
|
||||||
|
// XXX event handlers...
|
||||||
|
// XXX
|
||||||
|
|
||||||
return dialog
|
return dialog
|
||||||
},
|
},
|
||||||
//
|
//
|
||||||
@ -592,6 +597,7 @@ var BrowserPrototype = {
|
|||||||
// </div>
|
// </div>
|
||||||
//
|
//
|
||||||
// XXX can we influence how the options are passed to the header???
|
// XXX can we influence how the options are passed to the header???
|
||||||
|
// XXX register event handlers...
|
||||||
renderNested: function(header, sublist, item, context){
|
renderNested: function(header, sublist, item, context){
|
||||||
var that = this
|
var that = this
|
||||||
var options = context.options || this.options
|
var options = context.options || this.options
|
||||||
@ -613,11 +619,9 @@ var BrowserPrototype = {
|
|||||||
&& header.classList.add('collapsed')
|
&& header.classList.add('collapsed')
|
||||||
|
|
||||||
// collapse action handler...
|
// collapse action handler...
|
||||||
// XXX STUB: make this overloadable...
|
// XXX make this overloadable...
|
||||||
// XXX handle the 'open' event...
|
$(header).on('open', function(evt){
|
||||||
header.addEventListener('click', function(evt){
|
|
||||||
item.collapsed = !item.collapsed
|
item.collapsed = !item.collapsed
|
||||||
// XXX need to pass the root context here...
|
|
||||||
that.render(context)
|
that.render(context)
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -634,6 +638,9 @@ var BrowserPrototype = {
|
|||||||
e.appendChild(item) })
|
e.appendChild(item) })
|
||||||
: null
|
: null
|
||||||
|
|
||||||
|
// XXX event handlers... (???)
|
||||||
|
// XXX
|
||||||
|
|
||||||
item.dom = e
|
item.dom = e
|
||||||
|
|
||||||
return e
|
return e
|
||||||
@ -677,6 +684,7 @@ var BrowserPrototype = {
|
|||||||
if(options.hidden && !options.renderHidden){
|
if(options.hidden && !options.renderHidden){
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
var text = JSON.stringify(item.value)
|
||||||
var elem = document.createElement('div')
|
var elem = document.createElement('div')
|
||||||
|
|
||||||
// classes...
|
// classes...
|
||||||
@ -697,7 +705,7 @@ var BrowserPrototype = {
|
|||||||
Object.entries(item.attrs || {})
|
Object.entries(item.attrs || {})
|
||||||
.forEach(function([key, value]){
|
.forEach(function([key, value]){
|
||||||
elem.setAttribute(key, value) })
|
elem.setAttribute(key, value) })
|
||||||
elem.setAttribute('value', JSON.stringify(item.value))
|
elem.setAttribute('value', text)
|
||||||
|
|
||||||
// values...
|
// values...
|
||||||
;(item.value instanceof Array ? item.value : [item.value])
|
;(item.value instanceof Array ? item.value : [item.value])
|
||||||
@ -710,6 +718,10 @@ var BrowserPrototype = {
|
|||||||
})
|
})
|
||||||
|
|
||||||
// events...
|
// events...
|
||||||
|
// XXX revise signature...
|
||||||
|
elem.addEventListener('click',
|
||||||
|
function(){ $(elem).trigger('open', [text, item, elem]) })
|
||||||
|
//elem.addEventListener('tap', function(){ $(elem).trigger('open', [text, item, elem]) })
|
||||||
Object.entries(item.events || {})
|
Object.entries(item.events || {})
|
||||||
// shorthand events...
|
// shorthand events...
|
||||||
.concat([
|
.concat([
|
||||||
@ -749,7 +761,9 @@ var BrowserPrototype = {
|
|||||||
return elem
|
return elem
|
||||||
},
|
},
|
||||||
|
|
||||||
// save the rendered state to .dom and wrap a list of nodes in a div...
|
// This does tow additional things:
|
||||||
|
// - save the rendered state to .dom
|
||||||
|
// - wrap a list of nodes (nested list) in a div
|
||||||
render: function(options){
|
render: function(options){
|
||||||
var d = object.parent(BrowserPrototype.render, this).call(this, ...arguments)
|
var d = object.parent(BrowserPrototype.render, this).call(this, ...arguments)
|
||||||
|
|
||||||
@ -760,10 +774,19 @@ var BrowserPrototype = {
|
|||||||
c.appendChild(e) })
|
c.appendChild(e) })
|
||||||
d = c
|
d = c
|
||||||
}
|
}
|
||||||
|
|
||||||
this.dom = d
|
this.dom = d
|
||||||
return this.dom
|
return this.dom
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// Custom events...
|
||||||
|
// XXX do we use jQuery event handling or vanilla?
|
||||||
|
// ...feels like jQuery here wins as it provides a far simpler
|
||||||
|
// API + it's a not time critical area...
|
||||||
|
open: function(func){
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
filter: function(){},
|
filter: function(){},
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user