in pontoon/teams/static/js/request.js [164:293]
$(function () {
const container = $('#main .container');
let type = $('#server').data('locale-projects') ? 'locale-projects' : 'team';
// Switch between available projects/teams and projects/team to request
container.on('click', '.controls .request-toggle', function (e) {
e.stopPropagation();
e.preventDefault();
const type_ = $(this).is('.request-pretranslation')
? 'pretranslation'
: type;
Pontoon.requestItem.toggleItem($(this).is('.back'), type_);
$(this).siblings('.request-toggle').toggle();
});
// Select projects
container.on('click', '.items td.check', function (e) {
if ($('.controls .request-toggle').is('.back:visible')) {
e.stopPropagation();
const type_ = $('.items').is('.requesting-pretranslation')
? 'pretranslation'
: 'locale-projects';
$(this).toggleClass('enabled');
Pontoon.requestItem.toggleButton(true, type_);
}
});
// Radio button hover behavior
container.on(
{
mouseenter: function () {
$(this).toggleClass('fa-circle fa-dot-circle');
},
mouseleave: function () {
$(this).toggleClass('fa-circle fa-dot-circle');
},
},
'.items td.radio:not(.enabled)',
);
// Select team
container.on('click', '.items td.radio', function (e) {
if ($('.controls .request-toggle').is('.back:visible')) {
e.stopPropagation();
$(this)
.add('.items td.radio.enabled')
.toggleClass('fa far fa-circle fa-dot-circle enabled');
if ($(this).hasClass('enabled')) {
$(this).toggleClass('fa-circle fa-dot-circle');
}
Pontoon.requestItem.toggleButton(true, (type = 'locale-projects'));
}
});
// Prevent openning project page from the request panel
const menu = container.find('.project .menu');
menu.find('a').click(function (e) {
if (menu.find('.search-wrapper > a').is('.back:visible')) {
e.preventDefault();
}
});
// Enter team details
container.on(
'change keyup click',
'#request-team-form input[type=text]',
function (e) {
if ($('.controls .request-toggle').is('.back:visible')) {
e.stopPropagation();
Pontoon.requestItem.toggleButton(true, (type = 'team'));
}
},
);
// Request projects/team
container.on('click', '.request-item', function (e) {
e.preventDefault();
e.stopPropagation();
let locale = '';
if ($(this).is('.confirmed')) {
// Requesting from team page
if ($('body').hasClass('locale')) {
const projects = $('.items td.check.enabled')
.map(function (val, element) {
return $(element).siblings('.name').data('slug');
})
.get();
locale = $('#server').data('locale') || Pontoon.getSelectedLocale();
if ($('.items').is('.request')) {
$(this).html('Request new projects');
Pontoon.requestItem.requestProjects(locale, projects, 'projects');
} else if ($('.items').is('.requesting-pretranslation')) {
$(this).html('Request pretranslation');
Pontoon.requestItem.requestPretranslation(locale, projects);
}
$(this).removeClass('confirmed');
}
// Requesting from project page
else if (type === 'locale-projects' && $('body').hasClass('project')) {
const project = $('#server').data('project');
locale = $('.items td.radio.enabled').siblings('.name').data('slug');
Pontoon.requestItem.requestProjects(locale, [project], 'language');
$(this).removeClass('confirmed').html('Request new language');
} else if (type === 'team') {
locale = $.trim($('#request-team-form #id_name').val());
const code = $.trim($('#request-team-form #id_code').val());
Pontoon.requestItem.requestTeam(locale, code);
$(this).removeClass('confirmed').html('Request new team');
}
} else {
$(this).addClass('confirmed').html('Are you sure?');
}
});
});