mirror of
https://github.com/openSUSE/osem.git
synced 2026-08-13 19:54:02 +00:00
Fix scheduling
Can't cache the event as the data is changed the scheduling js. We also can't verify the token in the EventSchedules controller as we are making susequent ajax calls and have no means to refresh the token for the second request. Make draggables scrollable. There also is no need to spam the console with debug code... Partly fixes #2353
This commit is contained in:
parent
ae9430dfb8
commit
6ec905b666
3 changed files with 32 additions and 36 deletions
|
|
@ -18,13 +18,11 @@ var Schedule = {
|
|||
if(event_schedule_id != null){
|
||||
var my_url = url + '/' + event_schedule_id;
|
||||
var success_callback = function(data) {
|
||||
console.log(data);
|
||||
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({
|
||||
|
|
@ -57,12 +55,10 @@ var Schedule = {
|
|||
params['event_schedule']['schedule_id'] = schedule_id;
|
||||
}
|
||||
var success_callback = function(data) {
|
||||
console.log(data);
|
||||
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);
|
||||
}
|
||||
|
|
@ -87,7 +83,6 @@ $(document).ready( function() {
|
|||
snap: '.schedule-room-slot',
|
||||
revertDuration: 200,
|
||||
revert: function (event, ui) {
|
||||
console.log(event.attr);
|
||||
return !event;
|
||||
},
|
||||
stop: function(event, ui) {
|
||||
|
|
@ -96,7 +91,8 @@ $(document).ready( function() {
|
|||
},
|
||||
opacity: 0.7,
|
||||
snapMode: "inner",
|
||||
zIndex: 2
|
||||
zIndex: 2,
|
||||
scroll: true
|
||||
});
|
||||
|
||||
// set room cells as droppable
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
module Admin
|
||||
class EventSchedulesController < Admin::BaseController
|
||||
load_and_authorize_resource :event_schedule
|
||||
skip_before_action :verify_authenticity_token
|
||||
|
||||
def create
|
||||
if @event_schedule.save
|
||||
|
|
|
|||
|
|
@ -1,30 +1,29 @@
|
|||
- cache [:admin, @conference, @program, :schedule, event] do
|
||||
- cells_length = event.event_type.length / @program.schedule_interval
|
||||
/ this height fits the room cells
|
||||
- compact_grid = @program.schedule_interval < 15
|
||||
- single_cell_height = compact_grid ? 32 : 58
|
||||
- height = (cells_length * single_cell_height)
|
||||
- height -= 23 unless compact_grid
|
||||
/ subtracting the padding before calculate the number of lines
|
||||
- lines = (height - 7) / 23
|
||||
- color = event.track.try(:color).present? ? event.track.try(:color) : 'FFFFFF'
|
||||
- non_schedulable = event_schedule_id && (EventSchedule.find(event_schedule_id).schedule != @schedule)
|
||||
.schedule-event{ style: "height: #{height}px; background-color: #{color}; color: #{contrast_color(color)}", |
|
||||
id: "event-#{event.id}", |
|
||||
event_id: event.id, |
|
||||
length: cells_length, |
|
||||
event_schedule_id: event_schedule_id, |
|
||||
class: "#{'compact' if compact_grid} #{'non_schedulable' if non_schedulable}" }
|
||||
.schedule-event-text{ style: "-webkit-line-clamp: #{lines}; height: #{lines * 23}px;"}
|
||||
%span.schedule-event-delete-button{ onclick: "Schedule.remove(\'event-#{event.id}\');" } X
|
||||
%b
|
||||
= link_to(event.id, admin_conference_program_event_path(@conference, event))
|
||||
= event.speakers.collect(&:name).to_sentence
|
||||
= ':'
|
||||
= event.title
|
||||
- if event.difficulty_level
|
||||
%span.label.label-default= event.difficulty_level.title
|
||||
- if event.event_type
|
||||
%span.label.label-default= event.event_type.title
|
||||
- if event.track
|
||||
%span.label.label-default= event.track.short_name
|
||||
- cells_length = event.event_type.length / @program.schedule_interval
|
||||
/ this height fits the room cells
|
||||
- compact_grid = @program.schedule_interval < 15
|
||||
- single_cell_height = compact_grid ? 32 : 58
|
||||
- height = (cells_length * single_cell_height)
|
||||
- height -= 23 unless compact_grid
|
||||
/ subtracting the padding before calculate the number of lines
|
||||
- lines = (height - 7) / 23
|
||||
- color = event.track.try(:color).present? ? event.track.try(:color) : 'FFFFFF'
|
||||
- non_schedulable = event_schedule_id && (EventSchedule.find(event_schedule_id).schedule != @schedule)
|
||||
.schedule-event{ style: "height: #{height}px; background-color: #{color}; color: #{contrast_color(color)}", |
|
||||
id: "event-#{event.id}", |
|
||||
event_id: event.id, |
|
||||
length: cells_length, |
|
||||
event_schedule_id: event_schedule_id, |
|
||||
class: "#{'compact' if compact_grid} #{'non_schedulable' if non_schedulable}" }
|
||||
.schedule-event-text{ style: "-webkit-line-clamp: #{lines}; height: #{lines * 23}px;"}
|
||||
%span.schedule-event-delete-button{ onclick: "Schedule.remove(\'event-#{event.id}\');" } X
|
||||
%b
|
||||
= link_to(event.id, admin_conference_program_event_path(@conference, event))
|
||||
= event.speakers.collect(&:name).to_sentence
|
||||
= ':'
|
||||
= event.title
|
||||
- if event.difficulty_level
|
||||
%span.label.label-default= event.difficulty_level.title
|
||||
- if event.event_type
|
||||
%span.label.label-default= event.event_type.title
|
||||
- if event.track
|
||||
%span.label.label-default= event.track.short_name
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue