晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
|
Server : Apache System : Linux srv.rainic.com 4.18.0-553.47.1.el8_10.x86_64 #1 SMP Wed Apr 2 05:45:37 EDT 2025 x86_64 User : rainic ( 1014) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/akaindir/www/crm/layouts/v7/modules/Vtiger/resources/ |
Upload File : |
/*+***********************************************************************************
* 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.
*************************************************************************************/
jQuery.Class("Vtiger_Popup_Js",{
getInstance: function(module){
if(!module || typeof module == 'undefined') {
var module = app.getModuleName();
}
var className = jQuery('#popUpClassName').val();
if(typeof className != 'undefined'){
var moduleClassName = className;
}else{
var moduleClassName = module+"_Popup_Js";
}
var fallbackClassName = Vtiger_Popup_Js;
if(typeof window[moduleClassName] != 'undefined'){
var instance = new window[moduleClassName]();
}else{
var instance = new fallbackClassName();
}
return instance;
}
},{
//holds the event name that child window need to trigger
eventName : '',
popupPageContentsContainer : false,
sourceModule : false,
sourceRecord : false,
sourceField : false,
multiSelect : false,
relatedParentModule : false,
relatedParentRecord : false,
getView : function(){
var view = jQuery('#view',this.getPopupPageContainer()).val();
if(view == '') {
view = 'PopupAjax';
} else {
view = view+'Ajax';
}
return view;
},
isMultiSelectMode : function() {
if(this.multiSelect == false){
this.multiSelect = jQuery('#multi_select',this.getPopupPageContainer());
}
var value = this.multiSelect.val();
if(value) {
return value;
}
return false;
},
/**
* Function to get source module
*/
getSourceModule : function(){
if(this.sourceModule == false){
this.sourceModule = jQuery('#parentModule',this.getPopupPageContainer()).val();
}
return this.sourceModule;
},
/**
* Function to get source record
*/
getSourceRecord : function(){
if(this.sourceRecord == false){
this.sourceRecord = jQuery('#sourceRecord',this.getPopupPageContainer()).val();
}
return this.sourceRecord;
},
/**
* Function to get source field
*/
getSourceField : function(){
if(this.sourceField == false){
this.sourceField = jQuery('#sourceField',this.getPopupPageContainer()).val();
}
return this.sourceField;
},
/**
* Function to get related parent module
*/
getRelatedParentModule : function(){
if(this.relatedParentModule == false){
this.relatedParentModule = jQuery('#relatedParentModule',this.getPopupPageContainer()).val();
}
return this.relatedParentModule;
},
/**
* Function to get related parent id
*/
getRelatedParentRecord : function(){
if(this.relatedParentRecord == false){
this.relatedParentRecord = jQuery('#relatedParentId',this.getPopupPageContainer()).val();
}
return this.relatedParentRecord;
},
/**
* Function to get Search key
*/
getSearchKey : function(){
return jQuery('#searchableColumnsList',this.getPopupPageContainer()).val();
},
/**
* Function to get Search value
*/
getSearchValue : function(){
return jQuery('#searchvalue',this.getPopupPageContainer()).val();
},
/**
* Function to get Order by
*/
getOrderBy : function(){
return jQuery('#orderBy',this.getPopupPageContainer()).val();
},
/**
* Function to get Sort Order
*/
getSortOrder : function(){
return jQuery("#sortOrder",this.getPopupPageContainer()).val();
},
/**
* Function to get Page Number
*/
getPageNumber : function(){
return jQuery('#pageNumber',this.getPopupPageContainer()).val();
},
getRelationId : function (){
return jQuery('#relationId',this.getPopupPageContainer()).val();
},
getPopupPageContainer : function(){
if(this.popupPageContentsContainer == false) {
this.popupPageContentsContainer = jQuery('#popupPageContainer');
}
return this.popupPageContentsContainer;
},
getPopupContents : function(){
return jQuery("#popupContents");
},
setEventName : function(eventName) {
this.eventName = eventName;
},
getEventName : function() {
return this.eventName;
},
getModuleName : function() {
return this.getPopupPageContainer().find('#module').val();
},
/**
* Function to get complete params
*/
getCompleteParams : function(){
var params = {};
params['view'] = this.getView();
params['src_module'] = this.getSourceModule();
params['src_record'] = this.getSourceRecord();
params['src_field'] = this.getSourceField();
params['search_key'] = this.getSearchKey();
params['search_value'] = this.getSearchValue();
params['orderby'] = this.getOrderBy();
params['sortorder'] = this.getSortOrder();
params['page'] = this.getPageNumber();
params['related_parent_module'] = this.getRelatedParentModule();
params['related_parent_id'] = this.getRelatedParentRecord();
params['module'] = this.getModuleName();
params.search_params = JSON.stringify(this.getPopupListSearchParams());
if(this.isMultiSelectMode()) {
params['multi_select'] = true;
}
params['relationId'] = this.getRelationId();
// Carry forward meta (LineItem Pricebook Popup > Search)
var getUrl = this.getPopupPageContainer().find('#getUrl');
if (getUrl.length) params['get_url'] = getUrl.val();
return params;
},
getPopupListSearchParams : function(){
var listViewPageDiv = jQuery('div.popupEntriesDiv');
var listViewTable = listViewPageDiv.find('.listViewEntriesTable');
var searchParams = new Array();
var currentSearchParams = new Array();
if(jQuery('#currentSearchParams').val())
currentSearchParams = JSON.parse(jQuery('#currentSearchParams').val());
listViewTable.find('.listSearchContributor').each(function(index,domElement){
var searchInfo = new Array();
var searchContributorElement = jQuery(domElement);
var fieldName = searchContributorElement.attr('name');
var fieldInfo = searchContributorElement.data('fieldinfo');
if(fieldName in currentSearchParams) {
delete currentSearchParams[fieldName];
}
var searchValue = searchContributorElement.val();
if(typeof searchValue == "object") {
if(searchValue == null) {
searchValue = "";
}else{
searchValue = searchValue.join(',');
}
}
searchValue = searchValue.trim();
if(searchValue.length <=0 ) {
//continue
return true;
}
var searchOperator = 'c';
if(fieldInfo.type == "date" || fieldInfo.type == "datetime") {
searchOperator = 'bw';
}else if (fieldInfo.type == 'percentage' || fieldInfo.type == "double" || fieldInfo.type == "integer"
|| fieldInfo.type == 'currency' || fieldInfo.type == "number" || fieldInfo.type == "boolean" ||
fieldInfo.type == "picklist") {
searchOperator = 'e';
}
searchInfo.push(fieldName);
searchInfo.push(searchOperator);
searchInfo.push(searchValue);
searchParams.push(searchInfo);
});
for(var i in currentSearchParams) {
var fieldName = currentSearchParams[i]['fieldName'];
var searchValue = currentSearchParams[i]['searchValue'];
var searchOperator = currentSearchParams[i]['comparator'];
if(fieldName== null || fieldName.length <=0 ){
continue;
}
var searchInfo = new Array();
searchInfo.push(fieldName);
searchInfo.push(searchOperator);
searchInfo.push(searchValue);
searchParams.push(searchInfo);
}
return new Array(searchParams);
},
/**
* Function to get Page Records
*/
getPageRecords : function(params){
var aDeferred = jQuery.Deferred();
app.helper.showProgress();
Vtiger_BaseList_Js.getPageRecords(params).then(
function(data){
jQuery('#popupContents').html(data);
vtUtils.applyFieldElementsView(jQuery('#popupContents'));
aDeferred.resolve(data);
}
);
return aDeferred.promise();
},
/**
* Function to handle next page navigation
*/
nextPageHandler : function(){
var aDeferred = jQuery.Deferred();
var popupContainer = this.getPopupPageContainer();
var pageLimit = jQuery('#pageLimit',popupContainer).val();
var noOfEntries = jQuery('#noOfEntries',popupContainer).val();
if(noOfEntries == pageLimit){
var pageNumber = jQuery('#pageNumber',popupContainer).val();
var nextPageNumber = parseInt(pageNumber) + 1;
var pagingParams = {
"page": nextPageNumber
}
var completeParams = this.getCompleteParams();
jQuery.extend(completeParams,pagingParams);
this.getPageRecords(completeParams).then(
function(data){
jQuery('#pageNumber',popupContainer).val(nextPageNumber);
aDeferred.resolve(data);
}
);
}
return aDeferred.promise();
},
/**
* Function to handle Previous page navigation
*/
previousPageHandler : function(){
var aDeferred = jQuery.Deferred();
var popupContainer = this.getPopupPageContainer();
var pageNumber = jQuery('#pageNumber',popupContainer).val();
var previousPageNumber = parseInt(pageNumber) - 1;
if(pageNumber > 1){
var pagingParams = {
"page": previousPageNumber
}
var completeParams = this.getCompleteParams();
jQuery.extend(completeParams,pagingParams);
this.getPageRecords(completeParams).then(
function(data){
jQuery('#pageNumber',popupContainer).val(previousPageNumber);
aDeferred.resolve(data);
}
);
}
return aDeferred.promise();
},
/**
* Function to handle search event
*/
searchHandler : function(){
var aDeferred = jQuery.Deferred();
var completeParams = this.getCompleteParams();
completeParams['page'] = 1;
this.getPageRecords(completeParams).then(
function(data){
aDeferred.resolve(data);
});
return aDeferred.promise();
},
/**
* Function to update Pagining status
*/
updatePagination : function(){
var popupContainer = this.getPopupPageContainer();
app.helper.hideProgress();
var previousPageExist = jQuery('#previousPageExist',popupContainer).val();
var nextPageExist = jQuery('#nextPageExist',popupContainer).val();
var previousPageButton = jQuery('#PreviousPageButton',popupContainer);
var nextPageButton = jQuery('#NextPageButton',popupContainer);
var listViewEntriesCount = jQuery('#noOfEntries',popupContainer).val();
var pageStartRange = jQuery('#pageStartRange',popupContainer).val();
var pageEndRange = jQuery('#pageEndRange',popupContainer).val();
var totalNumberOfRecords = jQuery('.totalNumberOfRecords',popupContainer);
var pageNumbersTextElem = jQuery('.pageNumbersText',popupContainer);
if(previousPageExist !== ""){
previousPageButton.removeClass('disabled');
} else if(previousPageExist === "") {
previousPageButton.addClass('disabled');
}
if((nextPageExist !== "")){
nextPageButton.removeClass('disabled');
} else if((nextPageExist === "")) {
nextPageButton.addClass('disabled');
}
if(listViewEntriesCount !== 0){
var pageNumberText = pageStartRange+" "+app.vtranslate('to')+" "+pageEndRange;
pageNumbersTextElem.html(pageNumberText);
totalNumberOfRecords.removeClass('hide');
} else {
pageNumbersTextElem.html("<span> </span>");
if(!totalNumberOfRecords.hasClass('hide')){
totalNumberOfRecords.addClass('hide');
}
}
this.registerPostPopupLoadEvents();
},
done : function(result, eventToTrigger){
var event = "post.popupSelection.click";
if(typeof eventToTrigger !== 'undefined'){
event = eventToTrigger;
}
if(typeof event == 'function') {
event(JSON.stringify(result));
} else {
app.event.trigger(event, JSON.stringify(result));
}
app.helper.hidePopup();
},
showPopup : function(params,eventToTrigger,callback) {
// we should hide all existing popup's
app.helper.hidePopup();
app.helper.showProgress();
app.request.post({"data":params}).then(function(err,data) {
app.helper.hideProgress();
if(err === null) {
var options = {};
if(typeof callback != 'undefined') {
options.cb = callback;
}
app.helper.showPopup(data,options);
app.event.trigger("post.Popup.Load",{"eventToTrigger":eventToTrigger, 'module':params.module});
}
});
},
getListViewEntries: function(e){
e.preventDefault();
var preEvent = jQuery.Event('pre.popupSelect.click');
app.event.trigger(preEvent);
if(preEvent.isDefaultPrevented()){
return;
}
var thisInstance = this;
var row = jQuery(e.currentTarget);
var dataUrl = row.data('url');
if(typeof dataUrl != 'undefined'){
dataUrl = dataUrl+'¤cy_id='+jQuery('#currencyId').val();
app.request.post({"url":dataUrl}).then(
function(err,data){
for(var id in data){
if(typeof data[id] == "object"){
var recordData = data[id];
}
}
thisInstance.done(data,thisInstance.getEventName());
});
e.preventDefault();
} else {
var id = row.data('id');
var recordName = row.attr('data-name');
var recordInfo = row.data('info');
var referenceModule = jQuery('#popupPageContainer').find('#module').val();
var response ={};
response[id] = {'name' : recordName,'info' : recordInfo, 'module' : referenceModule};
thisInstance.done(response,thisInstance.getEventName());
e.preventDefault();
}
},
registerEventForListViewEntryClick : function(){
var thisInstance = this;
var popupPageContentsContainer = this.getPopupPageContainer();
popupPageContentsContainer.off('click', '.listViewEntries');
popupPageContentsContainer.on('click','.listViewEntries',function(e){
thisInstance.getListViewEntries(e);
});
},
/**
* Function to register event for Search
*/
registerEventForSearch : function(){
var thisInstance = this;
var popupContainer = this.getPopupPageContainer();
popupContainer.on('click','#popupSearchButton',function(e){
jQuery('#totalPageCount',popupContainer).text("");
thisInstance.searchHandler().then(function(data){
jQuery('#pageNumber',popupContainer).val(1);
jQuery('#pageToJump',popupContainer).val(1);
thisInstance.updatePagination();
});
});
},
/**
* Function to handle Sort
*/
sortHandler : function(headerElement){
var aDeferred = jQuery.Deferred();
//Listprice column should not be sorted so checking for class noSorting
if(headerElement.hasClass('noSorting')){
return;
}
var fieldName = headerElement.data('columnname');
var sortOrderVal = headerElement.data('nextsortorderval');
var sortingParams = {
"orderby" : fieldName,
"sortorder" : sortOrderVal
}
var completeParams = this.getCompleteParams();
jQuery.extend(completeParams,sortingParams);
this.getPageRecords(completeParams).then(
function(data){
aDeferred.resolve(data);
},
function(textStatus, errorThrown){
aDeferred.reject(textStatus, errorThrown);
}
);
return aDeferred.promise();
},
/**
* Function to register event for Sorting
* @returns {undefined}
*/
registerEventForSort : function(){
var thisInstance = this;
var popupPageContentsContainer = this.getPopupPageContainer();
popupPageContentsContainer.on('click','.listViewHeaderValues',function(e){
var element = jQuery(e.currentTarget);
thisInstance.sortHandler(element).then(function(data){
thisInstance.updatePagination();
});
});
},
/**
* Function to register event for popup list Search
*/
registerEventForPopupListSearch : function(){
var thisInstance = this;
var popupPageContainer = this.getPopupPageContainer();
popupPageContainer.on('click','[data-trigger="PopupListSearch"]',function(e){
jQuery('#searchvalue').val("");
jQuery('#totalPageCount').text("");
thisInstance.searchHandler().then(function(data){
jQuery('#pageNumber').val(1);
jQuery('#pageToJump').val(1);
thisInstance.updatePagination();
});
}).on('keypress',function(e){
var code = e.keyCode || e.which;
if(code == 13){
var element = popupPageContainer.find('[data-trigger="PopupListSearch"]');
jQuery(element).trigger('click');
}
});
},
pageJump : function() {
var thisInstance = this;
var popupContainer = thisInstance.getPopupPageContainer();
var element = popupContainer.find('#totalPageCount');
var totalPageNumber = element.text();
var pageCount;
if(totalPageNumber === ""){
var totalCountElem = popupContainer.find('#totalCount');
var totalRecordCount = totalCountElem.val();
if(totalRecordCount !== '') {
var recordPerPage = popupContainer.find('#pageLimit').val();
if(recordPerPage === '0') recordPerPage = 1;
pageCount = Math.ceil(totalRecordCount/recordPerPage);
if(pageCount === 0){
pageCount = 1;
}
element.text(pageCount);
return;
}
thisInstance.getPageCount().then(function(data){
var pageCount = data.page;
totalCountElem.val(data.numberOfRecords);
if(pageCount === 0){
pageCount = 1;
}
element.text(pageCount);
});
}
},
pageJumpOnSubmit : function(element) {
var thisInstance = this;
var aDeferred = jQuery.Deferred();
var popupContainer = this.getPopupPageContainer();
var currentPageElement = jQuery('#pageNumber', popupContainer);
var currentPageNumber = parseInt(currentPageElement.val());
var newPageNumber = parseInt(jQuery('#pageToJump',popupContainer).val());
var totalPages = parseInt(jQuery('#totalPageCount', popupContainer).text());
if(newPageNumber > totalPages){
var message = app.vtranslate('JS_PAGE_NOT_EXIST');
app.helper.showErrorNotification({'message':message})
return aDeferred.reject();
}
if(newPageNumber === currentPageNumber){
var message = app.vtranslate('JS_YOU_ARE_IN_PAGE_NUMBER')+" "+newPageNumber;
app.helper.showAlertNotification({'message': message});
return aDeferred.reject();
}
var urlParams = thisInstance.getCompleteParams();
urlParams['page'] = newPageNumber;
this.getPageRecords(urlParams).then(
function(data){
jQuery('.btn-group', popupContainer).removeClass('open');
jQuery('#pageNumber',popupContainer).val(newPageNumber);
aDeferred.resolve(data);
}
);
return aDeferred.promise();
},
/**
* Function to get Page Jump Params
*/
getPageJumpParams : function(){
var params = this.getCompleteParams();
params['view'] = 'PopupAjax';
params['mode'] = 'getPageCount';
return params;
},
/**
* Function to get page count and total number of records in list
*/
getPageCount : function(){
var aDeferred = jQuery.Deferred();
var pageCountParams = this.getPageJumpParams();
var params = {
"type" : "GET",
"data" : pageCountParams
}
app.request.get(params).then(
function(err, data) {
var response;
if(typeof data !== "object"){
response = JSON.parse(data);
} else{
response = data;
}
aDeferred.resolve(response);
}
);
return aDeferred.promise();
},
totalNumOfRecords : function (currentEle) {
var thisInstance = this;
var popupContainer = thisInstance.getPopupPageContainer();
var totalRecordsElement = popupContainer.find('#totalCount');
var totalNumberOfRecords = totalRecordsElement.val();
currentEle.addClass('hide');
if(totalNumberOfRecords === '') {
thisInstance.getPageCount().then(function(data){
totalNumberOfRecords = data.numberOfRecords;
totalRecordsElement.val(totalNumberOfRecords);
popupContainer.find('ul#listViewPageJumpDropDown #totalPageCount').text(data.page);
thisInstance.showPagingInfo();
});
}else{
thisInstance.showPagingInfo();
}
},
showPagingInfo : function(){
var thisInstance = this;
var popupContainer = thisInstance.getPopupPageContainer();
var totalNumberOfRecords = jQuery('#totalCount', popupContainer).val();
var pageNumberElement = jQuery('.pageNumbersText', popupContainer);
var pageRange = pageNumberElement.text();
var newPagingInfo = pageRange.trim()+" "+app.vtranslate('of')+" "+totalNumberOfRecords;
var listViewEntriesCount = parseInt(jQuery('#noOfEntries', popupContainer).val());
if(listViewEntriesCount !== 0){
jQuery('.pageNumbersText', popupContainer).html(newPagingInfo);
} else {
jQuery('.pageNumbersText', popupContainer).html("");
}
},
initializePaginationEvents : function() {
var thisInstance = this;
var paginationObj = new Vtiger_Pagination_Js;
var popupContainer = thisInstance.getPopupPageContainer();
paginationObj.initialize(popupContainer);
app.event.on(paginationObj.nextPageButtonClickEventName, function(){
thisInstance.nextPageHandler().then(function(data){
var pageNumber = popupContainer.find('#pageNumber').val();
popupContainer.find('#pageToJump').val(pageNumber);
thisInstance.updatePagination();
thisInstance.handleCheckBoxSelection();
thisInstance.registerToRemoveEmailFieldClickAttr();
thisInstance.registerPostSelectionActions();
});
});
app.event.on(paginationObj.previousPageButtonClickEventName, function(){
thisInstance.previousPageHandler().then(function(data){
var pageNumber = popupContainer.find('#pageNumber').val();
popupContainer.find('#pageToJump').val(pageNumber);
thisInstance.updatePagination();
thisInstance.handleCheckBoxSelection();
thisInstance.registerToRemoveEmailFieldClickAttr();
thisInstance.registerPostSelectionActions();
});
});
app.event.on(paginationObj.pageJumpButtonClickEventName, function(event, currentEle){
thisInstance.pageJump();
thisInstance.registerPostSelectionActions();
});
app.event.on(paginationObj.totalNumOfRecordsButtonClickEventName, function(event, currentEle){
thisInstance.totalNumOfRecords(currentEle);
});
app.event.on(paginationObj.pageJumpSubmitButtonClickEvent, function(event, currentEle){
thisInstance.pageJumpOnSubmit().then(function(data){
thisInstance.updatePagination();
thisInstance.handleCheckBoxSelection();
thisInstance.registerToRemoveEmailFieldClickAttr();
thisInstance.registerPostSelectionActions();
});
});
},
/**
* Function to read selection
*/
readSelectedIds : function(decode){
var selectedIdsElement = jQuery('#selectedIds');
var selectedIdsDataAttr = 'SelectedIdsData';
var selectedIdsElementDataAttributes = selectedIdsElement.data();
if (!(selectedIdsDataAttr in selectedIdsElementDataAttributes) ) {
var selectedIds = new Array();
this.writeSelectedIds(selectedIds);
} else {
selectedIds = selectedIdsElementDataAttributes[selectedIdsDataAttr];
}
if(decode == true){
if(typeof selectedIds == 'object'){
return JSON.stringify(selectedIds);
}
}
return selectedIds;
},
/**
* Function to get selected recordIds from selection.
*/
getSelectedRecordIds : function(){
var thisInstance = this;
var recordIds = new Array();
var selectedData = thisInstance.readSelectedIds();
for(var data in selectedData){
if(typeof selectedData[data] == "object"){
var id = selectedData[data]['id'];
recordIds.push(id);
}
}
return recordIds;
},
/**
* Function to write selection
*/
writeSelectedIds : function(selectedIds){
jQuery('#selectedIds').data('SelectedIdsData',selectedIds);
},
registerSelectButton : function(){
var popupPageContentsContainer = this.getPopupPageContainer();
var thisInstance = this;
popupPageContentsContainer.on('click','button.select', function(e){
var selectedRecordDetails = {};
var recordIds = new Array();
var dataUrl;
var selectedData = thisInstance.readSelectedIds();
for(var data in selectedData){
if(typeof selectedData[data] == "object"){
var id = selectedData[data]['id'];
recordIds.push(id);
var name = selectedData[data]['name'];
dataUrl = selectedData[data]['url'];
selectedRecordDetails[id] = {'name' : name};
}
}
var jsonRecorIds = JSON.stringify(recordIds);
if(Object.keys(selectedRecordDetails).length <= 0) {
alert(app.vtranslate('JS_PLEASE_SELECT_ONE_RECORD'));
}else{
if(typeof dataUrl != 'undefined'){
dataUrl = dataUrl+'&idlist='+jsonRecorIds+'¤cy_id='+jQuery('#currencyId').val();
app.request.get({'url':dataUrl}).then(
function(error , data){
// for(var id in data){
// if(typeof data[id] == "object"){
// var recordData = data[id];
// }
// }
var recordData = data;
var recordDataLength = Object.keys(recordData).length;
if(recordDataLength == 1){
recordData = recordData[0];
}
thisInstance.done(recordData, thisInstance.getEventName());
e.preventDefault();
},
function(error,err){
}
);
}else{
thisInstance.done(selectedRecordDetails, thisInstance.getEventName());
}
}
});
},
selectAllHandler : function(e){
var thisInstance = this;
var currentElement = jQuery(e.currentTarget);
var isMainCheckBoxChecked = currentElement.is(':checked');
var tableElement = currentElement.closest('table');
if(isMainCheckBoxChecked) {
jQuery('input.entryCheckBox', tableElement).prop('checked',true);
var selectedId = thisInstance.readSelectedIds();
var recordIds = thisInstance.getSelectedRecordIds();
jQuery('input.entryCheckBox').each(function(index, checkBoxElement){
var checkBoxJqueryObject = jQuery(checkBoxElement);
var row = checkBoxJqueryObject.closest('tr');
var data = row.data();
if(thisInstance.getView() == 'EmailsRelatedModulePopup' || thisInstance.getView() == 'EmailsRelatedModulePopupAjax'){
var emailFields = jQuery(row).find('.emailField');
data.email = emailFields;
}
if(!(jQuery.inArray(row.data('id'), recordIds) !== -1)){
selectedId.push(data);
}
});
thisInstance.writeSelectedIds(selectedId);
}else {
jQuery('input.entryCheckBox', tableElement).removeAttr('checked').closest('tr').removeClass('highlightBackgroundColor');
jQuery('input.entryCheckBox').each(function(index, checkBoxElement){
var selectedId = thisInstance.readSelectedIds();
var recordIds = thisInstance.getSelectedRecordIds();
var checkBoxJqueryObject = jQuery(checkBoxElement);
var row = checkBoxJqueryObject.closest('tr');
selectedId.splice(jQuery.inArray(row.data('id'), recordIds), 1);
thisInstance.writeSelectedIds(selectedId);
});
}
},
registerEventForSelectAllInCurrentPage : function(){
var thisInstance = this;
var popupPageContentsContainer = this.getPopupPageContainer();
popupPageContentsContainer.on('change','input.selectAllInCurrentPage',function(e){
thisInstance.selectAllHandler(e);
thisInstance.registerPostSelectionActions();
});
},
checkBoxChangeHandler : function(e){
var elem = jQuery(e.currentTarget);
var parentElem = elem.closest('tr');
if(elem.is(':checked')){
parentElem.addClass('highlightBackgroundColor');
}else{
parentElem.removeClass('highlightBackgroundColor');
}
},
/**
* Function to register event for entry checkbox change
*/
registerEventForCheckboxChange : function(){
var thisInstance = this;
var popupPageContentsContainer = this.getPopupPageContainer();
popupPageContentsContainer.on('click','input.entryCheckBox',function(e){
e.stopPropagation();
var checkBoxJqueryObject = jQuery(e.currentTarget);
var row = checkBoxJqueryObject.closest('tr');
var data = row.data();
if(thisInstance.getView() == 'EmailsRelatedModulePopup' || thisInstance.getView() == 'EmailsRelatedModulePopupAjax'){
var emailFields = jQuery(row).find('.emailField');
data.email = emailFields;
}
var selectedId = thisInstance.readSelectedIds();
if(checkBoxJqueryObject.is(':checked')){
selectedId.push(data);
thisInstance.writeSelectedIds(selectedId);
thisInstance.registerPostSelectionActions();
}else{
var recordIds= thisInstance.getSelectedRecordIds();
selectedId.splice(jQuery.inArray(row.data('id'),recordIds), 1);
thisInstance.writeSelectedIds(selectedId);
thisInstance.registerPostSelectionActions();
}
thisInstance.checkBoxChangeHandler(e);
});
},
registerPostSelectionActions : function(){
var selectedIds = this.getSelectedRecordIds();
var selectionButton = jQuery('#popupContents').find('.select');
if(selectedIds.length > 0){
selectionButton.removeAttr("disabled");
}else if(selectedIds.length == 0){
selectionButton.attr("disabled", "disabled");
}
},
/**
* Function to handle CheckBoxSelection after navigation
*/
handleCheckBoxSelection : function(){
var thisInstance=this;
var recordIds= thisInstance.getSelectedRecordIds();
var selectedAll = true;
jQuery('input.entryCheckBox').each(function(index, checkBoxElement){
var checkBoxJqueryObject = jQuery(checkBoxElement);
var parentElem = checkBoxJqueryObject.closest('tr');
var row = checkBoxJqueryObject.closest('tr');
var id = row.data('id');
if((jQuery.inArray(id,recordIds))!== -1){
checkBoxJqueryObject.prop('checked',true);
}else{
selectedAll = false;
}
});
if(selectedAll === true){
jQuery('.selectAllInCurrentPage').prop('checked',true);
}
},
registerPostPopupLoadEvents : function(){
var popupContainer = jQuery('#popupModal');
var Options= {
axis:"yx",
setHeight:"400px", // Without height, it will not know where to start
scrollInertia: 200
};
app.helper.showVerticalScroll(popupContainer.find('.popupEntriesDiv'), Options);
// For Email Templates popup
var popupContainer = jQuery('.popupModal');
if(popupContainer.length != 0) {
var Options= {
axis:"yx",
scrollInertia: 200
};
app.helper.showVerticalScroll(popupContainer.find('.popupEntriesDiv'), Options);
}
},
registerToRemoveEmailFieldClickAttr : function() {
jQuery('#popupContents').find('a.emailField').removeAttr('onclick');
},
registerEvents: function(){
this.registerEventForListViewEntryClick();
this.registerEventForSearch();
this.registerEventForSort();
this.registerEventForPopupListSearch();
//For Pagination
this.initializePaginationEvents();
//END
this.registerToRemoveEmailFieldClickAttr();
//for record selection
this.registerEventForSelectAllInCurrentPage();
this.registerSelectButton();
this.registerEventForCheckboxChange();
}
});
jQuery(document).ready(function() {
app.event.on("post.Popup.Load",function(event,params){
vtUtils.applyFieldElementsView(jQuery('.myModal'));
var popupInstance = Vtiger_Popup_Js.getInstance(params.module);
var eventToTrigger = params.eventToTrigger;
if(typeof eventToTrigger != "undefined"){
popupInstance.setEventName(params.eventToTrigger);
}
popupInstance.registerEvents();
popupInstance.registerPostPopupLoadEvents();
});
});