tweaks and fixes....

Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
Alex A. Naanou 2017-01-19 03:40:22 +03:00
parent 3c0fd893c0
commit 8ca9c7be0a
2 changed files with 50 additions and 30 deletions

View File

@ -289,8 +289,8 @@ var MetadataUIActions = actions.Actions({
'metadata-editable-fields': [
//'Artist',
//'Copyright',
//'Comment',
//'Tags',
'Comment',
'Tags',
],
'metadata-field-order': [
// base
@ -475,11 +475,17 @@ var MetadataUIActions = actions.Actions({
})
// path selected...
.open(function(evt, path){
var editable = RegExp(that.config['metadata-editable-fields']
.map(function(f){ return util.quoteRegExp(f) })
.join('|'))
event.preventDefault()
var elem = o.filter(path).find('.text').last()
var editable = that.config['metadata-editable-fields']
var text = o.filter(path).find('.text')
var field = text.first().text()
.trim()
// remove the trailing ':'
.slice(0, -1)
var elem = text.last()
// handle select...
if(that.config['metadata-auto-select-mode'] == 'on open'){
@ -487,26 +493,13 @@ var MetadataUIActions = actions.Actions({
}
// skip non-editable fields...
if(editable.test(path)){
elem
.prop('contenteditable', true)
.focus()
.keydown(function(){
event.stopPropagation()
var n = keyboard.toKeyName(event.keyCode)
// reset to original value...
if(n == 'Esc'){
// XXX
// save value...
} else if(n == 'Enter' && event.ctrlKey){
event.preventDefault()
// XXX
}
})
if(editable.indexOf(field) >= 0){
elem.makeEditable({
activate: true,
clear_on_edit: false,
//blur_on_abort: false,
//blur_on_commit: false,
})
}
})
.on('close', function(){

View File

@ -124,10 +124,38 @@ function(text, options){
})
}
// XXX
Items.Selectable =
// make items with auto selected text on select...
//
// options format:
// {
// select_text: <number> | <string> | 'first' | 'last',
//
// ...
// }
//
Items.Selected =
function(text, options){
// XXX
var elem = (options.action ? this.Action : this).call(this, text, options)
.on('select', function(){
var text = elem.find('.text')
if(options.select_text == 'first' || options.select_text == 'last'){
text[options.selected_index]()
.selectText()
} else if(typeof(options.select_text) == typeof('str')){
elem.find(options.selected_index)
.selectText()
} else if(typeof(options.select_text) == typeof(123)){
text.eq(options.selected_index)
.selectText()
} else {
text.selectText()
}
})
return elem
}
// make Editable on select element...
@ -181,7 +209,6 @@ function(text, options){
// XXX
Items.SelectableField =
function(text, options){
// XXX
}
// XXX