Introduce a "Save" button for the admin schedule
The changes were saved after you drop an event, and now it only saves the schedule when you're done with the changes and click the "Save" button.
This commit is contained in:
parent
2d95cd05ff
commit
99f71497cc
3 changed files with 52 additions and 37 deletions
|
|
@ -1,6 +1,9 @@
|
|||
var conference; // Should be initialize in Schedule.initialize
|
||||
var schedule_id; // Should be initialize in Schedule.initialize
|
||||
|
||||
var events_to_save = {};
|
||||
var events_to_remove = {};
|
||||
|
||||
var Schedule = {
|
||||
initialize: function(conference_param, schedule_id_param) {
|
||||
conference = conference_param;
|
||||
|
|
@ -9,56 +12,62 @@ var Schedule = {
|
|||
remove: function(element) {
|
||||
var e = $("#" + element);
|
||||
var event_schedule_id = e.attr("event_schedule_id");
|
||||
var event_id = e.attr("guid");
|
||||
if(event_schedule_id != null){
|
||||
var url = '/admin/conference/' + conference + '/event_schedule/' + event_schedule_id;
|
||||
var params = {
|
||||
event: e.attr("guid"),
|
||||
schedule: schedule_id
|
||||
};
|
||||
var callback = function(data) {
|
||||
console.log(data);
|
||||
e.attr("event_schedule_id", null);
|
||||
}
|
||||
$.ajax({
|
||||
url: url,
|
||||
type: 'DELETE',
|
||||
data: params,
|
||||
success: callback,
|
||||
dataType : 'json'
|
||||
});
|
||||
events_to_remove[event_id] = { event_schedule_id: event_schedule_id };
|
||||
}
|
||||
delete events_to_save[event_id];
|
||||
var unscheduled = $(".unscheduled-events");
|
||||
e.appendTo(unscheduled);
|
||||
e.find(".schedule-event-delete-button").hide();
|
||||
},
|
||||
add: function (event_id, room_id, date, time, event_schedule_id) {
|
||||
var url = '/admin/conference/' + conference + '/event_schedule';
|
||||
var type = 'POST'
|
||||
if(event_schedule_id != null){
|
||||
type = 'PUT';
|
||||
url += ('/' + event_schedule_id);
|
||||
}
|
||||
var params = {
|
||||
event: event_id,
|
||||
schedule: schedule_id,
|
||||
room: room_id,
|
||||
date: date,
|
||||
time: time,
|
||||
schedule: schedule_id
|
||||
event_schedule_id: event_schedule_id
|
||||
};
|
||||
var callback = function(data) {
|
||||
events_to_save[event_id] = params;
|
||||
delete events_to_remove[event_id];
|
||||
$("#event-" + event_id).find(".schedule-event-delete-button").show();
|
||||
},
|
||||
saveEvents: function () {
|
||||
var callback_save = function(data) {
|
||||
console.log(data);
|
||||
var e = $("#event-" + event_id);
|
||||
e.attr("event_schedule_id", data.event_schedule_id);
|
||||
e.find(".schedule-event-delete-button").show();
|
||||
$("#event-" + data.event).attr("event_schedule_id", data.event_schedule_id);
|
||||
}
|
||||
$.ajax({
|
||||
url: url,
|
||||
type: type,
|
||||
data: params,
|
||||
success: callback,
|
||||
dataType : 'json'
|
||||
});
|
||||
var callback_remove = function(data) {
|
||||
console.log(data);
|
||||
$("#event-" + data.event).attr("event_schedule_id", null);
|
||||
}
|
||||
for (var key in events_to_save){
|
||||
var type = 'POST';
|
||||
var url = '/admin/conference/' + conference + '/event_schedule';
|
||||
var event_schedule_id = events_to_save[key].event_schedule_id;
|
||||
if(event_schedule_id != null){
|
||||
type = 'PUT';
|
||||
url += ('/' + event_schedule_id);
|
||||
}
|
||||
$.ajax({
|
||||
url: url,
|
||||
type: type,
|
||||
data: events_to_save[key],
|
||||
success: callback_save,
|
||||
dataType : 'json'
|
||||
});
|
||||
}
|
||||
for (var key in events_to_remove){
|
||||
$.ajax({
|
||||
url: '/admin/conference/' + conference + '/event_schedule/' + events_to_remove[key].event_schedule_id,
|
||||
type: 'DELETE',
|
||||
success: callback_remove,
|
||||
dataType : 'json'
|
||||
});
|
||||
}
|
||||
alert('Schedule correctly saved');
|
||||
}
|
||||
};
|
||||
|
||||
|
|
@ -106,4 +115,8 @@ $(document).ready( function() {
|
|||
$(this).css("background-color", "#ffffff");
|
||||
}
|
||||
});
|
||||
|
||||
$('.schedule-save').on('click', function(e) {
|
||||
Schedule.saveEvents();
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -4,17 +4,17 @@ module Admin
|
|||
|
||||
def create
|
||||
event_schedule = EventSchedule.create(get_event_schedule_params(params))
|
||||
render json: { 'status' => 'ok', event_schedule_id: event_schedule.id }
|
||||
render json: { 'status' => 'ok', event: event_schedule.event.guid, event_schedule_id: event_schedule.id }
|
||||
end
|
||||
|
||||
def update
|
||||
@event_schedule.update(get_event_schedule_params(params))
|
||||
render json: { 'status' => 'ok', event_schedule_id: @event_schedule.id }
|
||||
render json: { 'status' => 'ok', event: @event_schedule.event.guid, event_schedule_id: @event_schedule.id }
|
||||
end
|
||||
|
||||
def destroy
|
||||
@event_schedule.destroy if @event_schedule
|
||||
render json: { 'status' => 'ok' }
|
||||
render json: { 'status' => 'ok', event: @event_schedule.event.guid }
|
||||
end
|
||||
|
||||
private
|
||||
|
|
|
|||
|
|
@ -21,6 +21,8 @@
|
|||
off_color: 'warning',
|
||||
on_text: 'Yes',
|
||||
off_text: 'No' }
|
||||
%button.btn.btn-success.schedule-save
|
||||
Save
|
||||
.h4
|
||||
Unscheduled events
|
||||
.unscheduled-events
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue