Render errors in JSON in the schedule correctly

This commit is contained in:
Ana 2016-08-09 14:55:39 +02:00
parent e8261d41bc
commit a1c7f67735
5 changed files with 32 additions and 37 deletions

View file

@ -17,21 +17,21 @@ 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 callback = function(data) { var success_callback = function(data) {
console.log(data); console.log(data);
if(data.status == 'ok'){ e.attr("event_schedule_id", null);
e.attr("event_schedule_id", null); e.appendTo($(".unscheduled-events"));
e.appendTo($(".unscheduled-events")); e.find(".schedule-event-delete-button").hide();
e.find(".schedule-event-delete-button").hide(); }
} var error_callback = function(data) {
else{ console.log(data);
showError(data.status); showError($.parseJSON(data.responseText).errors);
}
} }
$.ajax({ $.ajax({
url: my_url, url: my_url,
type: 'DELETE', type: 'DELETE',
success: callback, success: success_callback,
error: error_callback,
dataType : 'json' dataType : 'json'
}); });
} }
@ -40,6 +40,7 @@ var Schedule = {
} }
}, },
add: function (previous_parent, new_parent, event) { add: function (previous_parent, new_parent, event) {
event.appendTo(new_parent);
var event_schedule_id = event.attr("event_schedule_id"); var event_schedule_id = event.attr("event_schedule_id");
var my_url = url; var my_url = url;
var type = 'POST'; var type = 'POST';
@ -53,23 +54,22 @@ var Schedule = {
room_id: new_parent.attr("room_id"), room_id: new_parent.attr("room_id"),
start_time: (new_parent.attr("date") + ' ' + new_parent.attr("hour")) start_time: (new_parent.attr("date") + ' ' + new_parent.attr("hour"))
}}; }};
var callback = function(data) { var success_callback = function(data) {
console.log(data); console.log(data);
if(data.status == 'ok'){ event.attr("event_schedule_id", data.event_schedule_id);
event.appendTo(new_parent); event.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);
showError("The event couldn't been scheduled");
} }
var error_callback = function(data) {
console.log(data);
showError($.parseJSON(data.responseText).errors);
event.appendTo(previous_parent);
} }
$.ajax({ $.ajax({
url: my_url, url: my_url,
type: type, type: type,
data: params, data: params,
success: callback, success: success_callback,
error: error_callback,
dataType : 'json' dataType : 'json'
}); });
} }

View file

@ -23,14 +23,12 @@ $(function () {
} }
var callback = function(data) { var callback = function(data) {
if(data.status != 'ok'){ showError($.parseJSON(data.responseText).errors);
showError(data.status);
}
} }
$.ajax({ $.ajax({
url: url, url: url,
type: method, type: method,
success: callback, error: callback,
dataType: 'json' dataType: 'json'
}); });
}); });

View file

@ -4,25 +4,25 @@ module Admin
def create def create
if @event_schedule.save if @event_schedule.save
render json: { 'status' => 'ok', event_schedule_id: @event_schedule.id } render json: { event_schedule_id: @event_schedule.id }
else else
render json: { 'status' => "The event couldn't be scheduled. #{@event_schedule.errors.full_messages.join('. ')}" } render json: { errors: "The event couldn't be scheduled. #{@event_schedule.errors.full_messages.join('. ')}" }, status: 422
end end
end end
def update def update
if @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: { event_schedule_id: @event_schedule.id }
else else
render json: { 'status' => "The event couldn't be scheduled. #{@event_schedule.errors.full_messages.join('. ')}" } render json: { errors: "The event couldn't be scheduled. #{@event_schedule.errors.full_messages.join('. ')}" }, status: 422
end end
end end
def destroy def destroy
if @event_schedule.destroy if @event_schedule.destroy
render json: { 'status' => 'ok' } render json: {}
else else
render json: { 'status' => "The event couldn't be unscheduled. #{@event_schedule.errors.full_messages.join('. ')}" } render json: { errors: "The event couldn't be unscheduled. #{@event_schedule.errors.full_messages.join('. ')}" }, status: 422
end end
end end

View file

@ -20,7 +20,7 @@ module Admin
redirect_to admin_conference_program_path(@conference.short_title), redirect_to admin_conference_program_path(@conference.short_title),
notice: 'The program was successfully updated.' notice: 'The program was successfully updated.'
end end
format.js { render json: { 'status' => 'ok' } } format.js { render json: {} }
end end
else else
respond_to do |format| respond_to do |format|
@ -28,7 +28,7 @@ module Admin
flash[:error] = "Updating program failed. #{@program.errors.to_a.join('. ')}." flash[:error] = "Updating program failed. #{@program.errors.to_a.join('. ')}."
render :new render :new
end end
format.js { render json: { 'status' => "The selected schedule couldn't been updated #{@program.errors.to_a.join('. ')}" } } format.js { render json: { errors: "The selected schedule couldn't been updated #{@program.errors.to_a.join('. ')}" }, status: 422 }
end end
end end
end end

View file

@ -37,7 +37,6 @@ describe Admin::EventSchedulesController do
start_time: conference.start_date) start_time: conference.start_date)
expect(response).to be_success expect(response).to be_success
expect(JSON.parse(response.body)['status']).to eq('ok')
end end
end end
@ -62,7 +61,7 @@ describe Admin::EventSchedulesController do
room_id: nil, room_id: nil,
start_time: nil) start_time: nil)
expect(JSON.parse(response.body)['status']).to eq("The event couldn't be scheduled. Event can't be blank. Room can't be blank. Start time can't be blank") expect(response.status).to eq(422)
end end
end end
end end
@ -94,7 +93,6 @@ describe Admin::EventSchedulesController do
start_time: conference.start_date) start_time: conference.start_date)
expect(response).to be_success expect(response).to be_success
expect(JSON.parse(response.body)['status']).to eq('ok')
end end
end end
@ -119,7 +117,7 @@ describe Admin::EventSchedulesController do
room_id: nil, room_id: nil,
start_time: nil) start_time: nil)
expect(JSON.parse(response.body)['status']).to eq("The event couldn't be scheduled. Event can't be blank. Room can't be blank. Start time can't be blank") expect(response.status).to eq(422)
end end
end end
end end
@ -136,7 +134,6 @@ describe Admin::EventSchedulesController do
delete :destroy, id: event_schedule.id, conference_id: conference.short_title delete :destroy, id: event_schedule.id, conference_id: conference.short_title
expect(response).to be_success expect(response).to be_success
expect(JSON.parse(response.body)['status']).to eq('ok')
end end
end end
end end