Avoid overlapping in the admin schedule
Not allow that an event is scheduled at the same time than other event in the admin schedule.
This commit is contained in:
parent
99f71497cc
commit
325a5ae77a
1 changed files with 31 additions and 3 deletions
|
|
@ -9,6 +9,18 @@ var Schedule = {
|
||||||
conference = conference_param;
|
conference = conference_param;
|
||||||
schedule_id = schedule_id_param;
|
schedule_id = schedule_id_param;
|
||||||
},
|
},
|
||||||
|
invalidateCells: function(element, length) {
|
||||||
|
for (i = 0; i < length; i++) {
|
||||||
|
element.addClass('with-event');
|
||||||
|
element = element.next();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
validateCells: function(element, length) {
|
||||||
|
for (i = 0; i < length; i++) {
|
||||||
|
element.removeClass('with-event');
|
||||||
|
element = element.next();
|
||||||
|
}
|
||||||
|
},
|
||||||
remove: function(element) {
|
remove: function(element) {
|
||||||
var e = $("#" + element);
|
var e = $("#" + element);
|
||||||
var event_schedule_id = e.attr("event_schedule_id");
|
var event_schedule_id = e.attr("event_schedule_id");
|
||||||
|
|
@ -18,6 +30,7 @@ var Schedule = {
|
||||||
}
|
}
|
||||||
delete events_to_save[event_id];
|
delete events_to_save[event_id];
|
||||||
var unscheduled = $(".unscheduled-events");
|
var unscheduled = $(".unscheduled-events");
|
||||||
|
Schedule.validateCells(e.parent(), e.attr("length"));
|
||||||
e.appendTo(unscheduled);
|
e.appendTo(unscheduled);
|
||||||
e.find(".schedule-event-delete-button").hide();
|
e.find(".schedule-event-delete-button").hide();
|
||||||
},
|
},
|
||||||
|
|
@ -81,8 +94,18 @@ $(document).ready( function() {
|
||||||
revertDuration: 200,
|
revertDuration: 200,
|
||||||
revert: function (event, ui) {
|
revert: function (event, ui) {
|
||||||
console.log(event.attr);
|
console.log(event.attr);
|
||||||
|
var dropable = $(this).parent();
|
||||||
|
if(!dropable.hasClass('unscheduled-events')){
|
||||||
|
Schedule.invalidateCells(dropable, $(this).attr("length"));
|
||||||
|
}
|
||||||
return !event;
|
return !event;
|
||||||
},
|
},
|
||||||
|
start: function(event, ui) {
|
||||||
|
var dropable = $(this).parent();
|
||||||
|
if(!dropable.hasClass('unscheduled-events')){
|
||||||
|
Schedule.validateCells(dropable, $(this).attr("length"));
|
||||||
|
}
|
||||||
|
},
|
||||||
stop: function(event, ui) {
|
stop: function(event, ui) {
|
||||||
this._originalPosition = this._originalPosition || ui.originalPosition;
|
this._originalPosition = this._originalPosition || ui.originalPosition;
|
||||||
ui.helper.animate( this._originalPosition );
|
ui.helper.animate( this._originalPosition );
|
||||||
|
|
@ -96,9 +119,12 @@ $(document).ready( function() {
|
||||||
$('.schedule-room-slot').droppable({
|
$('.schedule-room-slot').droppable({
|
||||||
accept: '.schedule-event',
|
accept: '.schedule-event',
|
||||||
tolerance: "pointer",
|
tolerance: "pointer",
|
||||||
|
accept: function(dropElem){
|
||||||
|
return !$(this).hasClass('with-event');
|
||||||
|
},
|
||||||
drop: function(event, ui) {
|
drop: function(event, ui) {
|
||||||
$(ui.draggable).appendTo(this);
|
|
||||||
var myId = $(ui.draggable).attr("guid");
|
var myId = $(ui.draggable).attr("guid");
|
||||||
|
var myLength = $(ui.draggable).attr("length");
|
||||||
var myRoom = $(this).attr("room-guid")
|
var myRoom = $(this).attr("room-guid")
|
||||||
var myDate = $(this).attr("date");
|
var myDate = $(this).attr("date");
|
||||||
var myTime = $(this).attr("hour");
|
var myTime = $(this).attr("hour");
|
||||||
|
|
@ -107,6 +133,8 @@ $(document).ready( function() {
|
||||||
$(ui.draggable).css("top", 0);
|
$(ui.draggable).css("top", 0);
|
||||||
$(this).css("background-color", "#ffffff");
|
$(this).css("background-color", "#ffffff");
|
||||||
Schedule.add(myId, myRoom, myDate, myTime, myEventSchedule);
|
Schedule.add(myId, myRoom, myDate, myTime, myEventSchedule);
|
||||||
|
Schedule.invalidateCells($(this), myLength);
|
||||||
|
$(ui.draggable).appendTo(this);
|
||||||
},
|
},
|
||||||
over: function(event, ui) {
|
over: function(event, ui) {
|
||||||
$(this).css("background-color", "#009ED8");
|
$(this).css("background-color", "#009ED8");
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue