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

View file

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

View file

@ -4,25 +4,25 @@ module Admin
def create
if @event_schedule.save
render json: { 'status' => 'ok', event_schedule_id: @event_schedule.id }
render json: { event_schedule_id: @event_schedule.id }
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
def update
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
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
def destroy
if @event_schedule.destroy
render json: { 'status' => 'ok' }
render json: {}
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

View file

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

View file

@ -37,7 +37,6 @@ describe Admin::EventSchedulesController do
start_time: conference.start_date)
expect(response).to be_success
expect(JSON.parse(response.body)['status']).to eq('ok')
end
end
@ -62,7 +61,7 @@ describe Admin::EventSchedulesController do
room_id: 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
@ -94,7 +93,6 @@ describe Admin::EventSchedulesController do
start_time: conference.start_date)
expect(response).to be_success
expect(JSON.parse(response.body)['status']).to eq('ok')
end
end
@ -119,7 +117,7 @@ describe Admin::EventSchedulesController do
room_id: 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
@ -136,7 +134,6 @@ describe Admin::EventSchedulesController do
delete :destroy, id: event_schedule.id, conference_id: conference.short_title
expect(response).to be_success
expect(JSON.parse(response.body)['status']).to eq('ok')
end
end
end