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/statusgroups.js | |
current code from svn, revision 62608
Diffstat (limited to 'resources/assets/javascripts/bootstrap/statusgroups.js')
| -rw-r--r-- | resources/assets/javascripts/bootstrap/statusgroups.js | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/resources/assets/javascripts/bootstrap/statusgroups.js b/resources/assets/javascripts/bootstrap/statusgroups.js new file mode 100644 index 0000000..e6b6ed4 --- /dev/null +++ b/resources/assets/javascripts/bootstrap/statusgroups.js @@ -0,0 +1,73 @@ +/*jslint esversion: 6*/ +STUDIP.ready(function() { + STUDIP.Statusgroups.ajax_endpoint = $('meta[name="statusgroups-ajax-movable-endpoint"]').attr('content'); + STUDIP.Statusgroups.apply(); + + $('a.get-group-members').on('click', function() { + var dataEl = $('article#group-members-' + $(this).data('group-id')), + url; + if ($.trim(dataEl.html()).length === 0) { + url = $(this).data('get-members-url'); + + dataEl.html( + $('<img>').attr({ + width: 32, + height: 32, + src: STUDIP.ASSETS_URL + 'images/ajax-indicator-black.svg' + }) + ); + + $.get(url).done(function(html) { + dataEl.html(html); + $(document).trigger('refresh-handlers'); + }); + } + }); + + var handle = '.sg-sortable-handle'; + // Check for touch device + handle = '.sg-sortable-handle'; + if (window.matchMedia('(hover: none)').matches) { + $('.course-statusgroups[data-sortable]').addClass('by-touch'); + } + + var index_before = null; + $('.course-statusgroups[data-sortable]') + .sortable({ + axis: 'y', + containment: 'parent', + forcePlaceholderSize: true, + handle: handle, + items: '> .draggable', + placeholder: 'sortable-placeholder', + start: function(event, ui) { + index_before = ui.item.index(); + }, + stop: function(event, ui) { + if (index_before === ui.item.index()) { + return; + } + + var url = $(this).data('sortable'); + $.post(url, { + id: ui.item.attr('id'), + index: ui.item.index() - 1 + }); + } + }); +}); + +STUDIP.ready(function() { + $('.nestable').each(function() { + $(this).nestable({ + rootClass: 'nestable', + maxDepth: $(this).data('max-depth') || 5 + }); + }); +}); + +$(document).on('submit', '#order_form', function() { + let structure = $('.nestable').nestable('serialize'); + let json_data = JSON.stringify(structure); + $('#ordering').val(json_data); +}); |
