|
@@ -200,26 +200,31 @@
|
|
|
.catch(function (e) { flash(e.message, true); });
|
|
.catch(function (e) { flash(e.message, true); });
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
- // Drag reorder
|
|
|
|
|
- $inSprint.sortable({
|
|
|
|
|
- handle: '.handle',
|
|
|
|
|
- axis: 'y',
|
|
|
|
|
- placeholder: 'bg-slate-100 h-10',
|
|
|
|
|
- update: function () {
|
|
|
|
|
- const ordering = $inSprint.children('li').map(function (i, el) {
|
|
|
|
|
- return {
|
|
|
|
|
- sprint_worker_id: parseInt($(el).data('sw-id'), 10),
|
|
|
|
|
- sort_order: i + 1,
|
|
|
|
|
- };
|
|
|
|
|
- }).get();
|
|
|
|
|
-
|
|
|
|
|
- request('POST', '/sprints/' + sprintId + '/workers/reorder', ordering)
|
|
|
|
|
- .then(function (data) {
|
|
|
|
|
- flash(data.moved ? 'Order saved' : 'No changes');
|
|
|
|
|
- })
|
|
|
|
|
- .catch(function (e) { flash(e.message, true); });
|
|
|
|
|
- },
|
|
|
|
|
- });
|
|
|
|
|
|
|
+ // Drag reorder (requires jQuery UI)
|
|
|
|
|
+ if (typeof $.fn.sortable === 'function') {
|
|
|
|
|
+ $inSprint.sortable({
|
|
|
|
|
+ handle: '.handle',
|
|
|
|
|
+ axis: 'y',
|
|
|
|
|
+ placeholder: 'bg-slate-100 h-10',
|
|
|
|
|
+ update: function () {
|
|
|
|
|
+ const ordering = $inSprint.children('li').map(function (i, el) {
|
|
|
|
|
+ return {
|
|
|
|
|
+ sprint_worker_id: parseInt($(el).data('sw-id'), 10),
|
|
|
|
|
+ sort_order: i + 1,
|
|
|
|
|
+ };
|
|
|
|
|
+ }).get();
|
|
|
|
|
+
|
|
|
|
|
+ request('POST', '/sprints/' + sprintId + '/workers/reorder', ordering)
|
|
|
|
|
+ .then(function (data) {
|
|
|
|
|
+ flash(data.moved ? 'Order saved' : 'No changes');
|
|
|
|
|
+ })
|
|
|
|
|
+ .catch(function (e) { flash(e.message, true); });
|
|
|
|
|
+ },
|
|
|
|
|
+ });
|
|
|
|
|
+ } else {
|
|
|
|
|
+ // eslint-disable-next-line no-console
|
|
|
|
|
+ console.warn('[sprint-settings] jQuery UI not loaded — drag reorder disabled.');
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
function refreshEmptyStates() {
|
|
function refreshEmptyStates() {
|
|
|
$root.find('[data-empty-available]').toggle($available.children('li').length === 0);
|
|
$root.find('[data-empty-available]').toggle($available.children('li').length === 0);
|