summaryrefslogtreecommitdiffstats
path: root/web_src/js/features/repo-commit.js
diff options
context:
space:
mode:
Diffstat (limited to 'web_src/js/features/repo-commit.js')
-rw-r--r--web_src/js/features/repo-commit.js41
1 files changed, 41 insertions, 0 deletions
diff --git a/web_src/js/features/repo-commit.js b/web_src/js/features/repo-commit.js
index 336a37d654..847fed3f1d 100644
--- a/web_src/js/features/repo-commit.js
+++ b/web_src/js/features/repo-commit.js
@@ -1,6 +1,47 @@
+const {csrfToken} = window.config;
+
export function initRepoCommitButton() {
$('.commit-button').on('click', function (e) {
e.preventDefault();
$(this).parent().find('.commit-body').toggle();
});
}
+
+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);
+ });
+ });
+}