Update JS dependencies (#15033)
* Update JS dependencies - Update all JS dependencies - For octicons, rename trashcan to trash - For svgo, migrate to v2 api, output seems to have slightly changed but icons look the same - For stylelint, update config, fix custom property duplicates - For monaco, drop legacy Edge support - For eslint, enable new rules, fix new issues - For less-loader, remove deprecated import syntax * update svgo usage in generate-images and rebuild logo.svg with it
This commit is contained in:
parent
a587a28434
commit
1a03fa7a4f
273 changed files with 1858 additions and 1656 deletions
|
@ -247,7 +247,6 @@ function initReactionSelector(parent) {
|
|||
parent.find(`${reactions}a.label`).popup({position: 'bottom left', metadata: {content: 'title', title: 'none'}});
|
||||
|
||||
parent.find(`.select-reaction > .menu > .item, ${reactions}a.label`).on('click', function (e) {
|
||||
const vm = this;
|
||||
e.preventDefault();
|
||||
|
||||
if ($(this).hasClass('disabled')) return;
|
||||
|
@ -263,7 +262,7 @@ function initReactionSelector(parent) {
|
|||
}
|
||||
}).done((resp) => {
|
||||
if (resp && (resp.html || resp.empty)) {
|
||||
const content = $(vm).closest('.content');
|
||||
const content = $(this).closest('.content');
|
||||
let react = content.find('.segment.reactions');
|
||||
if ((!resp.empty || resp.html === '') && react.length > 0) {
|
||||
react.remove();
|
||||
|
@ -343,13 +342,12 @@ function reload() {
|
|||
|
||||
function initImagePaste(target) {
|
||||
target.each(function () {
|
||||
const field = this;
|
||||
field.addEventListener('paste', async (e) => {
|
||||
this.addEventListener('paste', async (e) => {
|
||||
for (const img of getPastedImages(e)) {
|
||||
const name = img.name.substr(0, img.name.lastIndexOf('.'));
|
||||
insertAtCursor(field, `![${name}]()`);
|
||||
insertAtCursor(this, `![${name}]()`);
|
||||
const data = await uploadFile(img);
|
||||
replaceAndKeepCursor(field, `![${name}]()`, ``);
|
||||
replaceAndKeepCursor(this, `![${name}]()`, ``);
|
||||
const input = $(`<input id="${data.uuid}" name="files" type="hidden">`).val(data.uuid);
|
||||
$('.files').append(input);
|
||||
}
|
||||
|
@ -2667,12 +2665,10 @@ $(document).ready(async () => {
|
|||
});
|
||||
|
||||
$('.issue-action').on('click', function () {
|
||||
let {action} = this.dataset;
|
||||
let {elementId} = this.dataset;
|
||||
const issueIDs = $('.issue-checkbox').children('input:checked').map(function () {
|
||||
return this.dataset.issueId;
|
||||
let {action, elementId, url} = this.dataset;
|
||||
const issueIDs = $('.issue-checkbox').children('input:checked').map((_, el) => {
|
||||
return el.dataset.issueId;
|
||||
}).get().join();
|
||||
const {url} = this.dataset;
|
||||
if (elementId === '0' && url.substr(-9) === '/assignee') {
|
||||
elementId = '';
|
||||
action = 'clear';
|
||||
|
@ -3107,9 +3103,8 @@ function initVueComponents() {
|
|||
$(this.$el).find('.poping.up').popup();
|
||||
$(this.$el).find('.dropdown').dropdown();
|
||||
this.setCheckboxes();
|
||||
const self = this;
|
||||
Vue.nextTick(() => {
|
||||
self.$refs.search.focus();
|
||||
this.$refs.search.focus();
|
||||
});
|
||||
},
|
||||
|
||||
|
@ -3266,14 +3261,12 @@ function initVueComponents() {
|
|||
},
|
||||
|
||||
searchRepos() {
|
||||
const self = this;
|
||||
|
||||
this.isLoading = true;
|
||||
|
||||
if (!this.reposTotalCount) {
|
||||
const totalCountSearchURL = `${this.suburl}/api/v1/repos/search?sort=updated&order=desc&uid=${this.uid}&team_id=${this.teamId}&q=&page=1&mode=`;
|
||||
$.getJSON(totalCountSearchURL, (_result, _textStatus, request) => {
|
||||
self.reposTotalCount = request.getResponseHeader('X-Total-Count');
|
||||
this.reposTotalCount = request.getResponseHeader('X-Total-Count');
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -3282,19 +3275,19 @@ function initVueComponents() {
|
|||
const searchedQuery = this.searchQuery;
|
||||
|
||||
$.getJSON(searchedURL, (result, _textStatus, request) => {
|
||||
if (searchedURL === self.searchURL) {
|
||||
self.repos = result.data;
|
||||
if (searchedURL === this.searchURL) {
|
||||
this.repos = result.data;
|
||||
const count = request.getResponseHeader('X-Total-Count');
|
||||
if (searchedQuery === '' && searchedMode === '' && self.archivedFilter === 'both') {
|
||||
self.reposTotalCount = count;
|
||||
if (searchedQuery === '' && searchedMode === '' && this.archivedFilter === 'both') {
|
||||
this.reposTotalCount = count;
|
||||
}
|
||||
Vue.set(self.counts, `${self.reposFilter}:${self.archivedFilter}:${self.privateFilter}`, count);
|
||||
self.finalPage = Math.floor(count / self.searchLimit) + 1;
|
||||
self.updateHistory();
|
||||
Vue.set(this.counts, `${this.reposFilter}:${this.archivedFilter}:${this.privateFilter}`, count);
|
||||
this.finalPage = Math.floor(count / this.searchLimit) + 1;
|
||||
this.updateHistory();
|
||||
}
|
||||
}).always(() => {
|
||||
if (searchedURL === self.searchURL) {
|
||||
self.isLoading = false;
|
||||
if (searchedURL === this.searchURL) {
|
||||
this.isLoading = false;
|
||||
}
|
||||
});
|
||||
},
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue