Files
CRM/layouts/vlayout/modules/PriceBooks/resources/PriceBooksPopup.js
BACHIR SOULDI 2794e62571 first commit
2025-09-28 08:49:37 +01:00

164 lines
5.0 KiB
JavaScript

/*+***********************************************************************************
* The contents of this file are subject to the vtiger CRM Public License Version 1.0
* ("License"); You may not use this file except in compliance with the License
* The Original Code is: vtiger CRM Open Source
* The Initial Developer of the Original Code is vtiger.
* Portions created by vtiger are Copyright (C) vtiger.
* All Rights Reserved.
*************************************************************************************/
Vtiger_Popup_Js("PriceBook_Products_Popup_Js",{
},{
/**
* Function to register event for enabling list price
*/
checkBoxChangeHandler : function(e){
this._super(e);
var elem = jQuery(e.currentTarget);
var parentRow = elem.closest('tr');
if(elem.is(':checked')) {
jQuery('input[name=listPrice]',parentRow).removeClass('invisible');
}else{
jQuery('input[name=listPrice]',parentRow).addClass('invisible');
}
},
/**
* Function to register event for add to pricebook button in the popup
*/
registerSelectButton : function(){
var popupPageContentsContainer = jQuery('#popupPage')
var thisInstance = this;
popupPageContentsContainer.on('jqv.form.result', function(e){
e.preventDefault();
var tableEntriesElement = popupPageContentsContainer.find('table.listViewEntriesTable');
var selectedRecords = jQuery('input.entryCheckBox', tableEntriesElement).filter(':checked');
if((selectedRecords.length) == 0){
var message = app.vtranslate("JS_PLEASE_SELECT_ONE_RECORD");
Vtiger_Helper_Js.showConfirmationBox({'message' : message})
return;
}
var invalidFields = popupPageContentsContainer.data('jqv').InvalidFields;
if((invalidFields.length) == 0){
var selectedRecordDetails = new Array();
selectedRecords.each(function(index, checkBoxElement){
var checkBoxJqueryObject = jQuery(checkBoxElement)
var row = checkBoxJqueryObject.closest('tr');
var rowListPrice = row.find('input[name=listPrice]');
var listPrice = rowListPrice.val();
var id = row.data('id');
selectedRecordDetails.push({'id' : id,'price' : listPrice});
});
thisInstance.done(selectedRecordDetails, thisInstance.getEventName());
}
});
},
/**
* Function to handle select all in the popup
*/
selectAllHandler : function(e){
this._super(e);
var currentElement = jQuery(e.currentTarget);
var isMainCheckBoxChecked = currentElement.is(':checked');
var tableElement = currentElement.closest('table');
if(isMainCheckBoxChecked) {
jQuery('input.entryCheckBox', tableElement).closest('tr').find('input[name="listPrice"]').removeClass('invisible');
}else {
jQuery('input.entryCheckBox', tableElement).closest('tr').find('input[name="listPrice"]').addClass('invisible');
}
},
/**
* Function to register event for actions buttons
*/
registerEventForActionsButtons : function(){
var thisInstance = this;
var popupPageContentsContainer = this.getPopupPageContainer();
popupPageContentsContainer.on('click','a.cancelLink',function(e){
thisInstance.done();
})
},
/**
* Function to get Page Records
*/
getPageRecords : function(params){
var thisInstance = this;
var aDeferred = jQuery.Deferred();
this._super(params).then(
function(data){
thisInstance.popupSlimScroll();
var form = jQuery('#popupPage');
form.validationEngine('detach');
form.validationEngine('attach');
aDeferred.resolve(data);
},
function(textStatus, errorThrown){
aDeferred.reject(textStatus, errorThrown);
}
);
return aDeferred.promise();
},
/**
* Function to handle sort
*/
sortHandler : function(headerElement){
var thisInstance = this;
//Listprice column should not be sorted so checking for class noSorting
if(headerElement.hasClass('noSorting')){
return;
}
this._super(headerElement).then(
function(data){
thisInstance.popupSlimScroll();
var form = jQuery('#popupPage');
form.validationEngine('detach');
form.validationEngine('attach');
},
function(textStatus, errorThrown){
}
);
},
/**
* Function to handle slim scroll for popup
*/
popupSlimScroll : function(){
var popupPageContentsContainer = this.getPopupPageContainer();
var element = popupPageContentsContainer.find('.popupEntriesDiv');
app.showScrollBar(element, {"height" : '400px'});
},
/**
* Function which will register event when user clicks on the row
*/
registerEventForListViewEntries : function() {
//To Make sure we will not close the window once he clicks on the row,
//which is default behaviour in normal popup
return true;
},
registerEventForListViewEntries : function(){
var popupPageContentsContainer = this.getPopupPageContainer();
popupPageContentsContainer.on('click','.listViewEntries',function(e){
return;
});
},
/**
* Function to register events
*/
registerEvents : function(){
this._super();
this.registerEventForActionsButtons();
this.popupSlimScroll();
jQuery('#popupPage').validationEngine({promptPosition : "topRight"});
}
});