EventSchedulesController when something goes wrong

Consider that create, update or destroy can fails in EventSchedulesController

Params in remove deleted because they were not used
This commit is contained in:
Ana 2016-08-04 17:06:34 +02:00
parent 13bcee485e
commit 310c521790
2 changed files with 44 additions and 31 deletions

View file

@ -1,6 +1,7 @@
var url; // Should be initialize in Schedule.initialize var url; // Should be initialize in Schedule.initialize
var schedule_id; // Should be initialize in Schedule.initialize var schedule_id; // Should be initialize in Schedule.initialize
var error_remove = "The event couldn't be unscheduled";
var Schedule = { var Schedule = {
initialize: function(url_param, schedule_id_param) { initialize: function(url_param, schedule_id_param) {
url = url_param; url = url_param;
@ -11,44 +12,53 @@ var Schedule = {
var event_schedule_id = e.attr("event_schedule_id"); var event_schedule_id = e.attr("event_schedule_id");
if(event_schedule_id != null){ if(event_schedule_id != null){
var my_url = url + '/' + event_schedule_id; var my_url = url + '/' + event_schedule_id;
var params = {
event: e.attr("id"),
schedule_id: schedule_id
};
var callback = function(data) { var callback = function(data) {
console.log(data); console.log(data);
e.attr("event_schedule_id", null); if(data.status == 'ok'){
e.attr("event_schedule_id", null);
e.appendTo($(".unscheduled-events"));
e.find(".schedule-event-delete-button").hide();
}
else{
alert(error_remove);
}
} }
$.ajax({ $.ajax({
url: my_url, url: my_url,
type: 'DELETE', type: 'DELETE',
data: params,
success: callback, success: callback,
dataType : 'json' dataType : 'json'
}); });
} }
var unscheduled = $(".unscheduled-events"); else{
e.appendTo(unscheduled); alert(error_remove);
e.find(".schedule-event-delete-button").hide(); }
}, },
add: function (event_id, room_id, date, time, event_schedule_id) { add: function (previous_parent, new_parent, event) {
my_url = url; var event_schedule_id = event.attr("event_schedule_id");
var type = 'POST' var my_url = url;
var type = 'POST';
if(event_schedule_id != null){ if(event_schedule_id != null){
type = 'PUT'; type = 'PUT';
my_url += ('/' + event_schedule_id); my_url += ('/' + event_schedule_id);
} }
var params = { event_schedule: { var params = { event_schedule: {
event_id: event_id, event_id: event.attr("event_id"),
schedule_id: schedule_id, schedule_id: schedule_id,
room_id: room_id, room_id: new_parent.attr("room_id"),
start_time: (date + ' ' + time) start_time: (new_parent.attr("date") + ' ' + new_parent.attr("hour"))
}}; }};
var callback = function(data) { var callback = function(data) {
console.log(data); console.log(data);
var e = $("#event-" + event_id); if(data.status == 'ok'){
e.attr("event_schedule_id", data.event_schedule_id); event.appendTo(new_parent);
e.find(".schedule-event-delete-button").show(); event.attr("event_schedule_id", data.event_schedule_id);
event.find(".schedule-event-delete-button").show();
}
else{
event.appendTo(previous_parent);
alert("The event couldn't been scheduled");
}
} }
$.ajax({ $.ajax({
url: my_url, url: my_url,
@ -86,16 +96,10 @@ $(document).ready( function() {
accept: '.schedule-event', accept: '.schedule-event',
tolerance: "pointer", tolerance: "pointer",
drop: function(event, ui) { drop: function(event, ui) {
$(ui.draggable).appendTo(this);
var myId = $(ui.draggable).attr("event_id");
var myRoom = $(this).attr("room_id")
var myDate = $(this).attr("date");
var myTime = $(this).attr("hour");
var myEventSchedule = $(ui.draggable).attr("event_schedule_id");
$(ui.draggable).css("left", 0); $(ui.draggable).css("left", 0);
$(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($(ui.draggable).parent(), $(this), $(ui.draggable));
}, },
over: function(event, ui) { over: function(event, ui) {
$(this).css("background-color", "#009ED8"); $(this).css("background-color", "#009ED8");

View file

@ -3,18 +3,27 @@ module Admin
load_and_authorize_resource :event_schedule load_and_authorize_resource :event_schedule
def create def create
@event_schedule.save if @event_schedule.save
render json: { 'status' => 'ok', event_schedule_id: @event_schedule.id } render json: { 'status' => 'ok', event_schedule_id: @event_schedule.id }
else
render json: { 'status' => 'error' }
end
end end
def update def update
@event_schedule.update(event_schedule_params) if @event_schedule.update(event_schedule_params)
render json: { 'status' => 'ok', event_schedule_id: @event_schedule.id } render json: { 'status' => 'ok', event_schedule_id: @event_schedule.id }
else
render json: { 'status' => 'error' }
end
end end
def destroy def destroy
@event_schedule.destroy if @event_schedule.destroy
render json: { 'status' => 'ok' } render json: { 'status' => 'ok' }
else
render json: { 'status' => 'error' }
end
end end
private private