diff options
| author | Jan-Hendrik Willms <tleilax+github@gmail.com> | 2021-07-22 16:07:19 +0200 |
|---|---|---|
| committer | Jan-Hendrik Willms <tleilax+github@gmail.com> | 2021-07-22 16:19:12 +0200 |
| commit | a3da1483a9e689846179159355badfec8073dbec (patch) | |
| tree | 770dcca6bdf5f6f2a11b0e7fcbbeda6919a3fc52 /resources/assets/javascripts/bootstrap/dates.js | |
current code from svn, revision 62608
Diffstat (limited to 'resources/assets/javascripts/bootstrap/dates.js')
| -rw-r--r-- | resources/assets/javascripts/bootstrap/dates.js | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/resources/assets/javascripts/bootstrap/dates.js b/resources/assets/javascripts/bootstrap/dates.js new file mode 100644 index 0000000..c6cc77e --- /dev/null +++ b/resources/assets/javascripts/bootstrap/dates.js @@ -0,0 +1,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(); +}); |
