workaround for select values not getting updated correctly when updating form values

This commit is contained in:
rlx 2011-10-11 11:22:16 +00:00
parent e5d0c3fd20
commit f43122f795
4 changed files with 39 additions and 24 deletions

View file

@ -484,7 +484,7 @@ Ox.ListCalendar = function(options, self) {
selectEvent(event);
self.$nameInput.focusInput();
} else {
alert(result.status.code)
alert(result.status.text);
}
});
}
@ -495,22 +495,26 @@ Ox.ListCalendar = function(options, self) {
data = {id: id};
data[key] = value;
self.options.editEvent(data, function(result) {
self.options.events[index][key] = value;
self.$list.value(id, key, value);
if (['name', 'type', 'start', 'end'].indexOf(key) > -1) {
self.$calendar.editEvent(id, key, value);
}
if (key == 'name') {
self.$eventName.options({title: value});
} else if (['start', 'end'].indexOf(key) > -1) {
self.$durationInput.options({
value: Ox.formatDateRangeDuration(
self.$startInput.options('value'),
self.$endInput.options('value')
|| Ox.formatDate(new Date(), '%Y-%m-%d %H%:%M:%S'),
true
)
});
if (result.status.code == 200) {
self.options.events[index][key] = value;
self.$list.value(id, key, value);
if (['name', 'type', 'start', 'end'].indexOf(key) > -1) {
self.$calendar.editEvent(id, key, value);
}
if (key == 'name') {
self.$eventName.options({title: value});
} else if (['start', 'end'].indexOf(key) > -1) {
self.$durationInput.options({
value: Ox.formatDateRangeDuration(
self.$startInput.options('value'),
self.$endInput.options('value')
|| Ox.formatDate(new Date(), '%Y-%m-%d %H%:%M:%S'),
true
)
});
}
} else {
alert(result.status.text);
}
});
}
@ -546,12 +550,16 @@ Ox.ListCalendar = function(options, self) {
var id = self.selectedEvent,
index = Ox.getPositionById(self.options.events, id);
self.options.removeEvent({id: id}, function(result) {
self.options.events.splice(index, 1);
var time0 = +new Date();
self.$list.options({items: Ox.clone(self.options.events, true)});
Ox.print('TIME TO SET LIST OPTIONS:', +new Date() - time0);
self.$calendar.removeEvent();
selectEvent({});
if (result.status.code == '200') {
self.options.events.splice(index, 1);
var time0 = +new Date();
self.$list.options({items: Ox.clone(self.options.events, true)});
Ox.print('TIME TO SET LIST OPTIONS:', +new Date() - time0);
self.$calendar.removeEvent();
selectEvent({});
} else {
alert(result.status.text);
}
});
}

View file

@ -138,6 +138,7 @@ Ox.Form = function(options, self) {
//Ox.print('VALUES', values)
return values;
} else {
Ox.print('SET FORM VALUES', arguments[0])
Ox.forEach(arguments[0], function(value, key) {
var index = getItemIndexById(key);
//index > -1 && Ox.print(':::::::', key, value)

View file

@ -43,11 +43,12 @@ Ox.Select = function(options, self) {
size: 'medium',
title: '',
type: 'text', // can be 'text' or 'image'
value: [],
value: '',
width: 'auto'
})
// fixme: make default selection restorable
// or allow for extra action items below options
// fixme: passing value has no effect
.options(options)
.addClass(
'OxSelect Ox' + Ox.toTitleCase(self.options.size) + (
@ -148,6 +149,7 @@ Ox.Select = function(options, self) {
function changeMenu(data) {
//Ox.print('clickMenu: ', self.options.id, data)
self.checked = self.optionGroup.checked();
self.options.value = data.checked[0].id;
self.$title && self.$title.html(
self.options.title ? self.options.title :
data.checked[0].title
@ -182,6 +184,8 @@ Ox.Select = function(options, self) {
}
};
// FIXME: selected() _and_ selectItem() _and_ value() ???
/*@
selected <f> gets selected item
() -> <o> returns object of selected items with id, title

View file

@ -335,10 +335,12 @@ Ox.Dialog = function(options, self) {
left: left,
top: top
}), animate);
/*
that.triggerEvent('resize', {
width: self.options.width,
height: self.options.height
});
*/
}
function resizestart(event) {