2022-01-28 16:00:11 -05:00
|
|
|
import $ from 'jquery';
|
|
|
|
|
2021-11-09 04:27:25 -05:00
|
|
|
const {csrfToken} = window.config;
|
|
|
|
|
2021-11-22 21:44:38 -05:00
|
|
|
export function initRepoEllipsisButton() {
|
|
|
|
$('.ellipsis-button').on('click', function (e) {
|
2021-10-16 13:28:04 -04:00
|
|
|
e.preventDefault();
|
2021-11-22 21:44:38 -05:00
|
|
|
const expanded = $(this).attr('aria-expanded') === 'true';
|
2021-10-16 13:28:04 -04:00
|
|
|
$(this).parent().find('.commit-body').toggle();
|
2021-11-22 21:44:38 -05:00
|
|
|
$(this).attr('aria-expanded', String(!expanded));
|
2021-10-16 13:28:04 -04:00
|
|
|
});
|
|
|
|
}
|
2021-11-09 04:27:25 -05:00
|
|
|
|
|
|
|
export function initRepoCommitLastCommitLoader() {
|
|
|
|
const entryMap = {};
|
|
|
|
|
|
|
|
const entries = $('table#repo-files-table tr.notready')
|
|
|
|
.map((_, v) => {
|
|
|
|
entryMap[$(v).attr('data-entryname')] = $(v);
|
|
|
|
return $(v).attr('data-entryname');
|
|
|
|
})
|
|
|
|
.get();
|
|
|
|
|
|
|
|
if (entries.length === 0) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
const lastCommitLoaderURL = $('table#repo-files-table').data('lastCommitLoaderUrl');
|
|
|
|
|
|
|
|
if (entries.length > 200) {
|
|
|
|
$.post(lastCommitLoaderURL, {
|
|
|
|
_csrf: csrfToken,
|
|
|
|
}, (data) => {
|
|
|
|
$('table#repo-files-table').replaceWith(data);
|
|
|
|
});
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
$.post(lastCommitLoaderURL, {
|
|
|
|
_csrf: csrfToken,
|
|
|
|
'f': entries,
|
|
|
|
}, (data) => {
|
|
|
|
$(data).find('tr').each((_, row) => {
|
|
|
|
if (row.className === 'commit-list') {
|
|
|
|
$('table#repo-files-table .commit-list').replaceWith(row);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
entryMap[$(row).attr('data-entryname')].replaceWith(row);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
2022-04-26 15:09:46 -04:00
|
|
|
|
|
|
|
export function initCommitStatuses() {
|
|
|
|
$('.commit-statuses-trigger').each(function () {
|
|
|
|
const positionRight = $('.repository.file.list').length > 0 || $('.repository.diff').length > 0;
|
|
|
|
const popupPosition = positionRight ? 'right center' : 'left center';
|
|
|
|
$(this)
|
|
|
|
.popup({
|
|
|
|
on: 'click',
|
|
|
|
lastResort: popupPosition, // prevent error message "Popup does not fit within the boundaries of the viewport"
|
|
|
|
position: popupPosition,
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|