Платформа ЦРНП "Мирокод" для разработки проектов
https://git.mirocod.ru
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
99 lines
2.6 KiB
99 lines
2.6 KiB
const {csrf} = window.config; |
|
|
|
export default async function initProject() { |
|
if (!window.config || !window.config.PageIsProjects) { |
|
return; |
|
} |
|
|
|
const {Sortable} = await import(/* webpackChunkName: "sortable" */'sortablejs'); |
|
const boardColumns = document.getElementsByClassName('board-column'); |
|
|
|
for (const column of boardColumns) { |
|
new Sortable( |
|
column.getElementsByClassName('board')[0], |
|
{ |
|
group: 'shared', |
|
animation: 150, |
|
onAdd: (e) => { |
|
$.ajax(`${e.to.dataset.url}/${e.item.dataset.issue}`, { |
|
headers: { |
|
'X-Csrf-Token': csrf, |
|
'X-Remote': true, |
|
}, |
|
contentType: 'application/json', |
|
type: 'POST', |
|
error: () => { |
|
e.from.insertBefore(e.item, e.from.children[e.oldIndex]); |
|
}, |
|
}); |
|
}, |
|
} |
|
); |
|
} |
|
|
|
$('.edit-project-board').each(function () { |
|
const projectTitleLabel = $(this).closest('.board-column-header').find('.board-label'); |
|
const projectTitleInput = $(this).find( |
|
'.content > .form > .field > .project-board-title' |
|
); |
|
|
|
$(this) |
|
.find('.content > .form > .actions > .red') |
|
.on('click', function (e) { |
|
e.preventDefault(); |
|
|
|
$.ajax({ |
|
url: $(this).data('url'), |
|
data: JSON.stringify({title: projectTitleInput.val()}), |
|
headers: { |
|
'X-Csrf-Token': csrf, |
|
'X-Remote': true, |
|
}, |
|
contentType: 'application/json', |
|
method: 'PUT', |
|
}).done(() => { |
|
projectTitleLabel.text(projectTitleInput.val()); |
|
projectTitleInput.closest('form').removeClass('dirty'); |
|
$('.ui.modal').modal('hide'); |
|
}); |
|
}); |
|
}); |
|
|
|
$('.delete-project-board').each(function () { |
|
$(this).click(function (e) { |
|
e.preventDefault(); |
|
|
|
$.ajax({ |
|
url: $(this).data('url'), |
|
headers: { |
|
'X-Csrf-Token': csrf, |
|
'X-Remote': true, |
|
}, |
|
contentType: 'application/json', |
|
method: 'DELETE', |
|
}).done(() => { |
|
setTimeout(window.location.reload(true), 2000); |
|
}); |
|
}); |
|
}); |
|
|
|
$('#new_board_submit').click(function (e) { |
|
e.preventDefault(); |
|
|
|
const boardTitle = $('#new_board'); |
|
|
|
$.ajax({ |
|
url: $(this).data('url'), |
|
data: JSON.stringify({title: boardTitle.val()}), |
|
headers: { |
|
'X-Csrf-Token': csrf, |
|
'X-Remote': true, |
|
}, |
|
contentType: 'application/json', |
|
method: 'POST', |
|
}).done(() => { |
|
boardTitle.closest('form').removeClass('dirty'); |
|
setTimeout(window.location.reload(true), 2000); |
|
}); |
|
}); |
|
}
|
|
|