mirror of
https://github.com/flynx/ImageGrid.git
synced 2025-10-30 02:40:08 +00:00
promptPlus now working, still need some tweaking and a better name...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
e3f08a460c
commit
9721fbef61
44
ui/ui.js
44
ui/ui.js
@ -453,8 +453,8 @@ var FIELD_TYPES = {
|
|||||||
test: function(val){
|
test: function(val){
|
||||||
return typeof(val) == typeof('abc')
|
return typeof(val) == typeof('abc')
|
||||||
},
|
},
|
||||||
set: function(field){
|
set: function(field, value){
|
||||||
$(field).find('.value').attr('value', this.default)
|
$(field).find('.value').attr('value', value)
|
||||||
},
|
},
|
||||||
get: function(field){
|
get: function(field){
|
||||||
return $(field).find('.value').attr('value')
|
return $(field).find('.value').attr('value')
|
||||||
@ -479,7 +479,7 @@ var FIELD_TYPES = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
get: function(field){
|
get: function(field){
|
||||||
return $(field).find('.value').attr('value')
|
return $(field).find('.value').attr('checked') == 'checked'
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
@ -491,6 +491,7 @@ var FIELD_TYPES = {
|
|||||||
// // simple field...
|
// // simple field...
|
||||||
// <field-description>: <default-value>,
|
// <field-description>: <default-value>,
|
||||||
//
|
//
|
||||||
|
// // XXX not yet implemented outside of FIELD_TYPES...
|
||||||
// <field-description>: {
|
// <field-description>: {
|
||||||
// type: <type-name>,
|
// type: <type-name>,
|
||||||
// text: <field-description>,
|
// text: <field-description>,
|
||||||
@ -516,14 +517,17 @@ var FIELD_TYPES = {
|
|||||||
// string - textarea
|
// string - textarea
|
||||||
// array - dropdown
|
// array - dropdown
|
||||||
//
|
//
|
||||||
|
// XXX add form testing...
|
||||||
|
// XXX add undefined field handling/reporting...
|
||||||
// XXX find a better name...
|
// XXX find a better name...
|
||||||
function promptPlus(message, config, btn){
|
function promptPlus(message, config, btn, cls){
|
||||||
|
cls = cls == null ? '' : cls
|
||||||
var form = $('<div class="form"/>')
|
var form = $('<div class="form"/>')
|
||||||
var data = {}
|
var data = {}
|
||||||
var res = $.Deferred()
|
var res = $.Deferred()
|
||||||
|
|
||||||
// XXX handle message and btn...
|
// handle message and btn...
|
||||||
// XXX
|
form.append($('<div class="text">'+message+'</div>'))
|
||||||
|
|
||||||
// build the form...
|
// build the form...
|
||||||
for(var t in config){
|
for(var t in config){
|
||||||
@ -536,14 +540,18 @@ function promptPlus(message, config, btn){
|
|||||||
html.find('.text').text(t)
|
html.find('.text').text(t)
|
||||||
field.set(html, config[t])
|
field.set(html, config[t])
|
||||||
|
|
||||||
html.on('resolve', function(){
|
// NOTE: this is here to isolate t and field.get values...
|
||||||
data[t] = field.get(html)
|
// ...is there a better way???
|
||||||
})
|
var _ = (function(title, getter){
|
||||||
|
html.on('resolve', function(evt, e){
|
||||||
|
data[title] = getter(e)
|
||||||
|
})
|
||||||
|
})(t, field.get)
|
||||||
|
|
||||||
form.append(html)
|
form.append(html)
|
||||||
|
|
||||||
did_handling = true
|
did_handling = true
|
||||||
continue
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -554,13 +562,17 @@ function promptPlus(message, config, btn){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// add button...
|
||||||
|
var button = $('<button class="accept">'+btn+'</button>')
|
||||||
|
form.append(button)
|
||||||
|
|
||||||
var root = $('.viewer')
|
var root = $('.viewer')
|
||||||
|
|
||||||
showInOverlay(root, form)
|
var overlay = showInOverlay(root, form)
|
||||||
.addClass('prompt dialog')
|
.addClass('dialog ' + cls)
|
||||||
.on('accept', function(){
|
.on('accept', function(){
|
||||||
form.find('.field').each(function(_, e){
|
form.find('.field').each(function(_, e){
|
||||||
$(e).trigger('resolve')
|
$(e).trigger('resolve', [$(e)])
|
||||||
})
|
})
|
||||||
|
|
||||||
// XXX test if all required stuff is filled...
|
// XXX test if all required stuff is filled...
|
||||||
@ -570,9 +582,13 @@ function promptPlus(message, config, btn){
|
|||||||
})
|
})
|
||||||
.on('close', function(){
|
.on('close', function(){
|
||||||
res.reject()
|
res.reject()
|
||||||
hideOverlay(root)
|
|
||||||
})
|
})
|
||||||
|
|
||||||
|
button.click(function(){
|
||||||
|
overlay.trigger('accept')
|
||||||
|
})
|
||||||
|
|
||||||
return res
|
return res
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user