znt/module/project/js/manageproducts.ui.js

113 lines
3.7 KiB
JavaScript

window.checkUnlink = function()
{
const $elem = $(this);
if($elem.prop('checked')) return true;
const productID = +$elem.val();
if(unmodifiableProducts.includes(productID))
{
const $branch = $elem.closest('.product-block').find('[name^=branch]');
if($branch.length)
{
const branchID = +$branch.val();
if((branchID == BRANCH_MAIN && unmodifiableMainBranches[productID]) || (branchID != BRANCH_MAIN && $.inArray(branchID, unmodifiableBranches) != -1))
{
zui.Modal.confirm(unLinkProductTip.replace("%s", branchGroups[productID][branchID])).then((result) =>
{
if(!result) $elem.prop('checked', true);
});
}
}
else
{
zui.Modal.confirm(unLinkProductTip.replace("%s", allProducts[productID])).then((result) =>
{
if(!result) $elem.prop('checked', true);
});
}
}
}
$(function()
{
$('#manageProducts [type="submit"]').on('click', function(){
let checkedProducts = [];
$('input[name^="products"]:checked').each(function()
{
let value = $(this).val();
if(checkedProducts.indexOf(value) == -1) checkedProducts.push(value);
})
if(noticeSwitch && checkedProducts.length > 1)
{
notice();
return false;
}
});
$('#linkProduct [type="submit"]').on('click', function(){
let checkedProducts = $('[name^="otherProducts"]').val();
if(checkedProducts.length == 1 && checkedProducts[0] == '')
{
zui.Modal.alert(errorNoProduct);
return false;
}
if(noticeSwitch && checkedProducts.length > 1)
{
notice('otherProducts');
return false;
}
});
})
function notice(type)
{
zui.Modal.confirm(
{
'message' : noticeDivsion,
'actions': [
{text: stageBySwitchList['1'], key: 'confirm'},
{text: stageBySwitchList['0'], key: 'cancel'},
],
onResult: function(result)
{
let link;
let formData;
let stageBy = result ? 'product' : '';
if(type == 'otherProducts')
{
link = $('#linkProduct form').attr('action');
formData = {'otherProducts[]': $('[name^="otherProducts"]').val(), stageBy: stageBy};
}
else
{
let products = [];
let branch = [];
$('input[type="checkbox"][name^="products"]:checked').each(function() {
if(products.indexOf($(this).val()) == -1) products.push($(this).val());
});
$('input[type="hidden"][name^="products"]').each(function() {
if(products.indexOf($(this).val()) == -1) products.push($(this).val());
});
$('input[type="hidden"][name^="branch"]').each(function() {
if(branch.indexOf($(this).val()) == -1) branch.push($(this).val());
});
$('select[name^="branch"]').each(function() {
if(branch.indexOf($(this).val()) == -1) branch.push($(this).val());
});
link = $.createLink('project', 'manageproducts', 'projectID=' + projectID);
formData = {"products[]": products, "branch[]": branch, stageBy: stageBy};
}
$.ajaxSubmit({url: link, data: formData});
}
}
);
}