Commit eacdaa70 authored by Andrew Fontaine's avatar Andrew Fontaine

Merge branch 'tz-improve-project-js' into 'master'

Improved project.js and select2 loading

See merge request gitlab-org/gitlab!42355
parents 722f3e63 57214375
...@@ -97,7 +97,10 @@ const groupsSelect = () => { ...@@ -97,7 +97,10 @@ const groupsSelect = () => {
}); });
}; };
export default () => export default () => {
if ($('.ajax-groups-select').length) {
import(/* webpackChunkName: 'select2' */ 'select2/select2') import(/* webpackChunkName: 'select2' */ 'select2/select2')
.then(groupsSelect) .then(groupsSelect)
.catch(() => {}); .catch(() => {});
}
};
...@@ -13,6 +13,7 @@ import initDeprecatedJQueryDropdown from '~/deprecated_jquery_dropdown'; ...@@ -13,6 +13,7 @@ import initDeprecatedJQueryDropdown from '~/deprecated_jquery_dropdown';
export default class Project { export default class Project {
constructor() { constructor() {
const $cloneOptions = $('ul.clone-options-dropdown'); const $cloneOptions = $('ul.clone-options-dropdown');
if ($cloneOptions.length) {
const $projectCloneField = $('#project_clone'); const $projectCloneField = $('#project_clone');
const $cloneBtnLabel = $('.js-git-clone-holder .js-clone-dropdown-label'); const $cloneBtnLabel = $('.js-git-clone-holder .js-clone-dropdown-label');
const mobileCloneField = document.querySelector( const mobileCloneField = document.querySelector(
...@@ -48,13 +49,18 @@ export default class Project { ...@@ -48,13 +49,18 @@ export default class Project {
} }
$('.js-git-empty .js-clone').text(url); $('.js-git-empty .js-clone').text(url);
}); });
}
// Ref switcher // Ref switcher
if (document.querySelector('.js-project-refs-dropdown')) {
Project.initRefSwitcher(); Project.initRefSwitcher();
$('.project-refs-select').on('change', function() { $('.project-refs-select').on('change', function() {
return $(this) return $(this)
.parents('form') .parents('form')
.submit(); .submit();
}); });
}
$('.hide-no-ssh-message').on('click', function(e) { $('.hide-no-ssh-message').on('click', function(e) {
Cookies.set('hide_no_ssh_message', 'false'); Cookies.set('hide_no_ssh_message', 'false');
$(this) $(this)
...@@ -78,6 +84,7 @@ export default class Project { ...@@ -78,6 +84,7 @@ export default class Project {
.remove(); .remove();
return e.preventDefault(); return e.preventDefault();
}); });
Project.projectSelectDropdown(); Project.projectSelectDropdown();
} }
......
...@@ -110,7 +110,10 @@ const projectSelect = () => { ...@@ -110,7 +110,10 @@ const projectSelect = () => {
}); });
}; };
export default () => export default () => {
if ($('.ajax-project-select').length) {
import(/* webpackChunkName: 'select2' */ 'select2/select2') import(/* webpackChunkName: 'select2' */ 'select2/select2')
.then(projectSelect) .then(projectSelect)
.catch(() => {}); .catch(() => {});
}
};
...@@ -561,6 +561,8 @@ function UsersSelect(currentUser, els, options = {}) { ...@@ -561,6 +561,8 @@ function UsersSelect(currentUser, els, options = {}) {
}, },
}); });
}); });
if ($('.ajax-users-select').length) {
import(/* webpackChunkName: 'select2' */ 'select2/select2') import(/* webpackChunkName: 'select2' */ 'select2/select2')
.then(() => { .then(() => {
$('.ajax-users-select').each((i, select) => { $('.ajax-users-select').each((i, select) => {
...@@ -613,7 +615,11 @@ function UsersSelect(currentUser, els, options = {}) { ...@@ -613,7 +615,11 @@ function UsersSelect(currentUser, els, options = {}) {
data.results.unshift(anyUser); data.results.unshift(anyUser);
} }
} }
if (showEmailUser && data.results.length === 0 && query.term.match(/^[^@]+@[^@]+$/)) { if (
showEmailUser &&
data.results.length === 0 &&
query.term.match(/^[^@]+@[^@]+$/)
) {
const trimmed = query.term.trim(); const trimmed = query.term.trim();
const emailUser = { const emailUser = {
name: sprintf(__('Invite "%{trimmed}" by email'), { trimmed }), name: sprintf(__('Invite "%{trimmed}" by email'), { trimmed }),
...@@ -647,6 +653,7 @@ function UsersSelect(currentUser, els, options = {}) { ...@@ -647,6 +653,7 @@ function UsersSelect(currentUser, els, options = {}) {
}); });
}) })
.catch(() => {}); .catch(() => {});
}
} }
UsersSelect.prototype.initSelection = function(element, callback) { UsersSelect.prototype.initSelection = function(element, callback) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment