fix bugs in CalendarEditor

This commit is contained in:
rlx 2012-06-10 11:01:06 +00:00
parent 26681d7e39
commit 9c697cce7a

View file

@ -259,7 +259,9 @@ Ox.CalendarEditor = function(options, self) {
that.triggerEvent('loadlist'); that.triggerEvent('loadlist');
}, },
open: openItem, open: openItem,
select: selectItem select: function(data) {
selectItem(data);
}
}); });
self.$listStatusbar = Ox.Bar({ self.$listStatusbar = Ox.Bar({
@ -577,16 +579,23 @@ Ox.CalendarEditor = function(options, self) {
event.start = Ox.formatDate(startTime, '%Y-%m-%d %H:%M:%S', true); event.start = Ox.formatDate(startTime, '%Y-%m-%d %H:%M:%S', true);
event.end = Ox.formatDate(endTime, '%Y-%m-%d %H:%M:%S', true); event.end = Ox.formatDate(endTime, '%Y-%m-%d %H:%M:%S', true);
Ox.Log('Calendar', event); Ox.Log('Calendar', event);
self.$newEventButton.options({disabled: true});
self.$removeEventButton.options({disabled: true});
self.options.addEvent(encodeValues(event), function(result) { self.options.addEvent(encodeValues(event), function(result) {
if (result.status.code == '200') { if (result.status.code == '200') {
event.id = result.data.id; event.id = result.data.id;
if (self.options.hasMatches) {
event.matches = result.data.matches;
}
self.options.events.push(event); self.options.events.push(event);
var time0 = +new Date() // var time0 = +new Date()
self.$list.options({items: Ox.clone(self.options.events, true)}); self.$list.options({items: Ox.clone(self.options.events, true)});
Ox.Log('Calendar', 'TIME TO SET LIST OPTIONS:', +new Date() - time0); // Ox.Log('Calendar', 'TIME TO SET LIST OPTIONS:', +new Date() - time0);
self.$calendar.addEvent(event); self.$calendar.addEvent(event);
selectEvent(event); selectEvent(event);
self.$nameInput.focusInput(true); self.$nameInput.focusInput(true);
self.$newEventButton.options({disabled: false});
self.$removeEventButton.options({disabled: false});
} else { } else {
// FIXME // FIXME
// alert(result.status.text); // alert(result.status.text);
@ -714,14 +723,18 @@ Ox.CalendarEditor = function(options, self) {
function removeEvent() { function removeEvent() {
var id = self.selectedEvent, var id = self.selectedEvent,
index = Ox.getIndexById(self.options.events, id); index = Ox.getIndexById(self.options.events, id);
self.$newEventButton.options({disabled: true});
self.$removeEventButton.options({disabled: true});
self.options.removeEvent({id: id}, function(result) { self.options.removeEvent({id: id}, function(result) {
if (result.status.code == '200') { if (result.status.code == '200') {
selectEvent({});
self.options.events.splice(index, 1); self.options.events.splice(index, 1);
var time0 = +new Date(); var time0 = +new Date();
self.$list.options({items: Ox.clone(self.options.events, true)}); self.$list.options({items: Ox.clone(self.options.events, true)});
Ox.Log('Calendar', 'TIME TO SET LIST OPTIONS:', +new Date() - time0); Ox.Log('Calendar', 'TIME TO SET LIST OPTIONS:', +new Date() - time0);
self.$calendar.removeEvent(); self.$calendar.removeEvent();
selectEvent({}); self.$newEventButton.options({disabled: false});
self.$removeEventButton.options({disabled: false});
} else { } else {
// FIXME // FIXME
// alert(result.status.text); // alert(result.status.text);
@ -754,7 +767,7 @@ Ox.CalendarEditor = function(options, self) {
self.options.selected self.options.selected
? self.$list.value(self.options.selected) ? self.$list.value(self.options.selected)
: {} : {}
) );
isUndefined = !fromCalendar && !!self.options.selected isUndefined = !fromCalendar && !!self.options.selected
&& !self.$list.value(self.options.selected, 'type'); && !self.$list.value(self.options.selected, 'type');
if (!fromCalendar) { if (!fromCalendar) {
@ -794,7 +807,6 @@ Ox.CalendarEditor = function(options, self) {
self.options.mode == 'define' && self.$defineEventButton.hide(); self.options.mode == 'define' && self.$defineEventButton.hide();
self.$removeEventButton.hide(); self.$removeEventButton.hide();
} }
return;
} }
function updateList(key, value) { function updateList(key, value) {