aboutsummaryrefslogtreecommitdiff
path: root/resources/assets/javascripts/bootstrap/statusgroups.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/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.js73
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);
+});