2018-03-09 15:18:59 -05:00
|
|
|
import $ from 'jquery';
|
2017-03-11 01:45:34 -05:00
|
|
|
import Cookies from 'js-cookie';
|
2020-01-02 19:07:45 -05:00
|
|
|
import { GlBreakpointInstance as bp } from '@gitlab/ui/dist/utils';
|
2017-05-12 04:15:28 -04:00
|
|
|
import UsersSelect from './users_select';
|
2020-11-18 04:09:02 -05:00
|
|
|
import { loadCSSFile } from './lib/utils/css_utils';
|
2017-03-11 01:45:34 -05:00
|
|
|
|
2017-10-26 16:14:18 -04:00
|
|
|
export default class IssuableContext {
|
|
|
|
constructor(currentUser) {
|
|
|
|
this.userSelect = new UsersSelect(currentUser);
|
2020-09-29 05:09:49 -04:00
|
|
|
this.reviewersSelect = new UsersSelect(currentUser, '.js-reviewer-search');
|
2017-10-26 16:14:18 -04:00
|
|
|
|
2019-01-29 04:35:53 -05:00
|
|
|
import(/* webpackChunkName: 'select2' */ 'select2/select2')
|
|
|
|
.then(() => {
|
2020-11-18 04:09:02 -05:00
|
|
|
// eslint-disable-next-line promise/no-nesting
|
|
|
|
loadCSSFile(gon.select2_css_path)
|
|
|
|
.then(() => {
|
|
|
|
$('select.select2').select2({
|
|
|
|
width: 'resolve',
|
|
|
|
dropdownAutoWidth: true,
|
|
|
|
});
|
|
|
|
})
|
|
|
|
.catch(() => {});
|
2019-01-29 04:35:53 -05:00
|
|
|
})
|
|
|
|
.catch(() => {});
|
2017-10-26 16:14:18 -04:00
|
|
|
|
|
|
|
$('.issuable-sidebar .inline-update').on('change', 'select', function onClickSelect() {
|
|
|
|
return $(this).submit();
|
|
|
|
});
|
|
|
|
$('.issuable-sidebar .inline-update').on('change', '.js-assignee', function onClickAssignee() {
|
|
|
|
return $(this).submit();
|
|
|
|
});
|
|
|
|
$(document)
|
|
|
|
.off('click', '.issuable-sidebar .dropdown-content a')
|
2020-12-23 19:10:25 -05:00
|
|
|
.on('click', '.issuable-sidebar .dropdown-content a', (e) => e.preventDefault());
|
2017-10-26 16:14:18 -04:00
|
|
|
|
|
|
|
$(document)
|
|
|
|
.off('click', '.edit-link')
|
|
|
|
.on('click', '.edit-link', function onClickEdit(e) {
|
2016-07-24 16:45:11 -04:00
|
|
|
e.preventDefault();
|
2017-10-26 16:14:18 -04:00
|
|
|
const $block = $(this).parents('.block');
|
|
|
|
const $selectbox = $block.find('.selectbox');
|
2016-07-24 16:45:11 -04:00
|
|
|
if ($selectbox.is(':visible')) {
|
|
|
|
$selectbox.hide();
|
2018-04-18 18:29:58 -04:00
|
|
|
$block.find('.value:not(.dont-hide)').show();
|
2016-07-24 16:45:11 -04:00
|
|
|
} else {
|
|
|
|
$selectbox.show();
|
2018-04-18 18:29:58 -04:00
|
|
|
$block.find('.value:not(.dont-hide)').hide();
|
2016-07-24 16:45:11 -04:00
|
|
|
}
|
2017-10-26 16:14:18 -04:00
|
|
|
|
2016-07-24 16:45:11 -04:00
|
|
|
if ($selectbox.is(':visible')) {
|
2017-10-26 16:14:18 -04:00
|
|
|
setTimeout(() => $block.find('.dropdown-menu-toggle').trigger('click'), 0);
|
2016-07-24 16:45:11 -04:00
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2017-10-26 16:14:18 -04:00
|
|
|
window.addEventListener('beforeunload', () => {
|
|
|
|
// collapsed_gutter cookie hides the sidebar
|
|
|
|
const bpBreakpoint = bp.getBreakpointSize();
|
2020-01-02 19:07:45 -05:00
|
|
|
const supportedSizes = ['xs', 'sm', 'md'];
|
|
|
|
|
|
|
|
if (supportedSizes.includes(bpBreakpoint)) {
|
2017-10-26 16:14:18 -04:00
|
|
|
Cookies.set('collapsed_gutter', true);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|