1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
$(document).on('click', '.remove_topic', STUDIP.Dates.removeTopicFromIcon);
// Drag and drop support for topics in date list
function createDraggable() {
$('.dates.has-access tbody tr:not(:only-child) .themen-list li > a.title:not(.draggable-topic)').each(function() {
var table_id = $(this)
.closest('table')
.data().tableId;
$(this)
.children()
.addClass('draggable-topic-handle');
$(this)
.closest('li')
.addClass('draggable-topic')
.data('table-id', table_id)
.attr('data-table-id', table_id)
.draggable({
axis: 'y',
containment: $(this).closest('tbody'),
handle: '.draggable-topic-handle',
revert: true
});
});
}
STUDIP.domReady(function () {
if ($('body#course-dates-index').length === 0) {
return;
}
$(document).ajaxComplete(createDraggable);
$('.themen-list').each(function() {
var table_id = $(this)
.closest('table')
.data().tableId;
$(this)
.closest('td')
.addClass('topic-droppable')
.droppable({
accept: '.draggable-topic[data-table-id="' + table_id + '"]',
activeClass: 'active',
hoverClass: 'hovered',
drop: function(event, ui) {
var context = $(ui.draggable),
topic = context.closest('li').data().issue_id,
source = context.closest('tr').data().terminId,
target = $(this)
.closest('tr')
.data().terminId,
path = ['dispatch.php/course/dates/move_topic', topic, source, target].join('/'),
url = STUDIP.URLHelper.getURL(path),
cell = $(this);
if (source === target) {
return;
}
ui.draggable.draggable('option', 'revert', false);
$.post(url).done(function(response) {
ui.draggable
.draggable('destroy')
.closest('li')
.remove();
$('ul', cell).append(response);
});
}
});
});
createDraggable();
});
|