Select Git revision
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
script.js 2.79 KiB
(function ($, STUDIP) {
'use strict';
var searchTimeout = null;
var lastRequestController = null;
$(document).ready(function () {
let source = null;
STUDIP.loadChunk('vue').then(function ({createApp}) {
createApp({
data: function () {
return {
needle: '',
results: false,
selectedTicket: false,
};
},
mounted () {
source = this.$el.dataset.source;
},
methods: {
searchTickets (event) {
const needle = this.needle.trim();
if (needle.trim().length < 3) {
return;
}
if (lastRequestController) {
lastRequestController.abort();
}
lastRequestController = new AbortController();
const { signal } = lastRequestController;
clearTimeout(searchTimeout);
searchTimeout = setTimeout(function () {
const url = STUDIP.URLHelper.getURL(source, {term: needle});
fetch(url, { signal }).then(function (response) {
return response.json();
}).then(function (json) {
this.results = json;
}.bind(this));
}.bind(this), 300);
}
},
computed: {
orderedResults () {
const needle = this.needle.trim();
return Object.values(this.results).sort(function (a, b) {
if (a[0] === needle) {
return 1;
}
if (b[0] === needle) {
return -1;
}
return b[0] - a[0];
});
}
}
}).$mount('#trac-migrate');
});
// const element = document.getElementById('trac-gitlab-needle');
// const source = element.dataset.source;
//
// $(element).keyup(function (event) {
// const needle = this.value.trim();
//
// if (needle.length < 3) {
// return;
// }
//
// $.getJSON(source, {data: {term: needle}}).done(function (response) {
// console.log("response", response);
// });
// });
});
}(jQuery, STUDIP));