aboutsummaryrefslogtreecommitdiff
path: root/resources/assets/javascripts/bootstrap/dates.js
diff options
context:
space:
mode:
authorJan-Hendrik Willms <tleilax+github@gmail.com>2021-07-22 16:07:19 +0200
committerJan-Hendrik Willms <tleilax+github@gmail.com>2021-07-22 16:19:12 +0200
commita3da1483a9e689846179159355badfec8073dbec (patch)
tree770dcca6bdf5f6f2a11b0e7fcbbeda6919a3fc52 /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.js75
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();
+});