Fix bug.
This commit is contained in:
parent
ba79afadd0
commit
51eba82b2a
|
@ -196,6 +196,15 @@ var Calendar = function(dom){
|
||||||
var agendaView = new AgendaView(c);
|
var agendaView = new AgendaView(c);
|
||||||
var loadeventsonviewchange = false;
|
var loadeventsonviewchange = false;
|
||||||
this.success_event = null;
|
this.success_event = null;
|
||||||
|
this.eventDataTransform = function(eventData){
|
||||||
|
if(eventData.allDay && eventData.end){
|
||||||
|
var tmp = new Date(eventData.end);
|
||||||
|
tmp.setTime(tmp.getTime() + 86400000); // Add one day for displaying
|
||||||
|
eventData.end = tmp.toISOString();
|
||||||
|
//eventData.end = eventData.end;
|
||||||
|
}
|
||||||
|
return eventData;
|
||||||
|
};
|
||||||
this.initialize = function(){
|
this.initialize = function(){
|
||||||
var date = new Date();
|
var date = new Date();
|
||||||
var d = date.getDate();
|
var d = date.getDate();
|
||||||
|
@ -316,14 +325,17 @@ var Calendar = function(dom){
|
||||||
})
|
})
|
||||||
$('form[data-remote]').bind("ajax:success",function(evt, data, status){
|
$('form[data-remote]').bind("ajax:success",function(evt, data, status){
|
||||||
c.event_create_space.html("").hide();
|
c.event_create_space.html("").hide();
|
||||||
if(type == "new")
|
data = c.eventDataTransform(data);
|
||||||
|
if(type == "new"){
|
||||||
c.renderEvent(data);
|
c.renderEvent(data);
|
||||||
if(type == "edit")
|
}
|
||||||
c.calendar_dom.fullCalendar("refetchEvents");
|
if(type == "edit"){
|
||||||
|
c.updateEvent(data);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
c.event_create_space.find("#event_period").change(function(){
|
// c.event_create_space.find("#event_period").change(function(){
|
||||||
//repeat_function();
|
//repeat_function();
|
||||||
})
|
// })
|
||||||
//repeat_function();
|
//repeat_function();
|
||||||
}
|
}
|
||||||
c.success_event = success_event;
|
c.success_event = success_event;
|
||||||
|
@ -357,6 +369,7 @@ var Calendar = function(dom){
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
eventDataTransform: c.eventDataTransform,
|
||||||
// events: 'https://fullcalendar.io/demo-events.json',
|
// events: 'https://fullcalendar.io/demo-events.json',
|
||||||
headerToolbar: false,
|
headerToolbar: false,
|
||||||
fixedWeekCount: false,
|
fixedWeekCount: false,
|
||||||
|
@ -536,13 +549,24 @@ var Calendar = function(dom){
|
||||||
this.updateEvent = function(eventStick){
|
this.updateEvent = function(eventStick){
|
||||||
c.calendar_dom.fullCalendar("updateEvent",eventStick);
|
c.calendar_dom.fullCalendar("updateEvent",eventStick);
|
||||||
}
|
}
|
||||||
|
this.getEventsById = function(id){
|
||||||
|
var org_events = c.calendar_dom.calendar.getEvents();
|
||||||
|
return org_events.filter(function(event){
|
||||||
|
return event.id == id;
|
||||||
|
})
|
||||||
|
}
|
||||||
|
this.cleanEvents = function(id){
|
||||||
|
var events = this.getEventsById(id);
|
||||||
|
events.forEach(function(event){
|
||||||
|
event.remove();
|
||||||
|
});
|
||||||
|
}
|
||||||
this.deleteEvent = function(delete_url,_id){
|
this.deleteEvent = function(delete_url,_id){
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type : "delete",
|
type : "delete",
|
||||||
url : delete_url,
|
url : delete_url,
|
||||||
success : function(){
|
success : function(){
|
||||||
c.calendar_dom.fullCalendar("removeEvents",[_id]);
|
c.cleanEvents(_id);
|
||||||
c.dialog.dismiss();
|
c.dialog.dismiss();
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -558,14 +582,34 @@ var Calendar = function(dom){
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
this.get_single_event = function(id, callback){
|
||||||
|
var activeRange = c.calendar_dom.calendar.currentData.dateProfile.activeRange;
|
||||||
|
var start = activeRange.start,
|
||||||
|
end = activeRange.end;
|
||||||
|
$.get("/admin/calendars/get_single_event", {
|
||||||
|
start: Math.round(start.getTime() / 1000),
|
||||||
|
end: Math.round(end.getTime() / 1000),
|
||||||
|
id: id
|
||||||
|
}).done(function(data){
|
||||||
|
$.each(data, function(i, event){
|
||||||
|
callback.call(id, event);
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
this.renderEvent = function(eventStick){
|
this.renderEvent = function(eventStick){
|
||||||
if(eventStick.recurring === true)
|
if(eventStick.recurring === true){
|
||||||
c.calendar_dom.calendar.refetchEvents();
|
this.get_single_event(eventStick.id, function(eventData){
|
||||||
else
|
eventData = c.eventDataTransform(eventData);
|
||||||
|
c.calendar_dom.calendar.addEvent(eventData);
|
||||||
|
});
|
||||||
|
}else{
|
||||||
c.calendar_dom.calendar.addEvent(eventStick);
|
c.calendar_dom.calendar.addEvent(eventStick);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
this.updateEvent = function(eventStick){
|
||||||
|
this.cleanEvents(eventStick.id);
|
||||||
|
this.renderEvent(eventStick);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
c.initialize();
|
c.initialize();
|
||||||
|
@ -581,7 +625,14 @@ var EventDialog = function(calendar,event){
|
||||||
if(!_event) throw new UserException("EventStick can't be null!");
|
if(!_event) throw new UserException("EventStick can't be null!");
|
||||||
_event.allDay = _event.event.allDay;
|
_event.allDay = _event.event.allDay;
|
||||||
_event._start = _event.event.start;
|
_event._start = _event.event.start;
|
||||||
_event._end = (_event.event.end ? _event.event.end : _event.event.start);
|
if(_event.event.end){
|
||||||
|
_event._end = _event.event.end;
|
||||||
|
if(_event.allDay){
|
||||||
|
_event._end.setTime(_event._end.getTime() - 86400000);
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
_event._end = _event.event.start;
|
||||||
|
}
|
||||||
// var start_date = getDateString(_event._start,calendar_variable.date_format);
|
// var start_date = getDateString(_event._start,calendar_variable.date_format);
|
||||||
// var end_date = getDateString(_event._end,calendar_variable.date_format);
|
// var end_date = getDateString(_event._end,calendar_variable.date_format);
|
||||||
_event.title = _event.event.title;
|
_event.title = _event.event.title;
|
||||||
|
@ -653,7 +704,7 @@ var EventDialog = function(calendar,event){
|
||||||
}
|
}
|
||||||
event_quick_view.html(template).appendTo("body").show();
|
event_quick_view.html(template).appendTo("body").show();
|
||||||
event_quick_view.find(".event-close-btn").one("click",function(){_t.dismiss();});
|
event_quick_view.find(".event-close-btn").one("click",function(){_t.dismiss();});
|
||||||
event_quick_view.find("a.delete").one("click",function(){calendar.deleteEvent(_this_event.delete_url,_this_event._id);return false;});
|
event_quick_view.find("a.delete").one("click",function(){calendar.deleteEvent(_this_event.delete_url, _this_event.event.id);return false;});
|
||||||
event_quick_view.find("a.edit").one("click",function(){calendar.editEvent(_this_event.edit_url,_this_event.allDay);return false;});
|
event_quick_view.find("a.edit").one("click",function(){calendar.editEvent(_this_event.edit_url,_this_event.allDay);return false;});
|
||||||
event_quick_view.find("a.hide_event").off("click").on("click", function(){
|
event_quick_view.find("a.hide_event").off("click").on("click", function(){
|
||||||
var _this = $(this);
|
var _this = $(this);
|
||||||
|
|
|
@ -34,7 +34,20 @@ class Admin::CalendarsController < OrbitAdminController
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
def get_single_event
|
||||||
|
@events = []
|
||||||
|
if params[:start].present? && params[:end].present?
|
||||||
|
sdt = Time.at(params[:start].to_i)
|
||||||
|
edt = Time.at(params[:end].to_i)
|
||||||
|
allevents = Event.where(:id=>params[:id]).agenda_events(sdt,edt, params[:display_hide] == 'true')
|
||||||
|
allevents.each do |e|
|
||||||
|
event_json = e.as_json
|
||||||
|
event_json["can_edit"] = can_edit_or_delete_event?(e)
|
||||||
|
@events << event_json
|
||||||
|
end
|
||||||
|
end
|
||||||
|
render :json => @events.to_json
|
||||||
|
end
|
||||||
# GET /events/1
|
# GET /events/1
|
||||||
# GET /events/1.json
|
# GET /events/1.json
|
||||||
def show
|
def show
|
||||||
|
|
|
@ -58,6 +58,7 @@ Rails.application.routes.draw do
|
||||||
get 'calendar_setting'
|
get 'calendar_setting'
|
||||||
post 'update_calendar_setting'
|
post 'update_calendar_setting'
|
||||||
patch 'update_calendar_setting'
|
patch 'update_calendar_setting'
|
||||||
|
get 'get_single_event'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
resources :calendar_types
|
resources :calendar_types
|
||||||
|
|
Loading…
Reference in New Issue