晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
|
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/vlayout/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.
************************************************************************************/
Vtiger_List_Js('Vtiger_FindDuplicates_Js',{
massDeleteRecords : function(url) {
var listInstance = new Vtiger_FindDuplicates_Js();
var fields = jQuery('#duplicateSearchFields').val();
var ignoreEmpty = jQuery('#ignoreEmpty').val();
url += '&mode=FindDuplicates&fields=' + fields + '&ignoreEmpty=' + ignoreEmpty;
Vtiger_List_Js.massDeleteRecords(url,listInstance);
}
},{
popupWindowInstance : false,
/**
* Function that is triggered after deleting records
*/
postMassDeleteRecords : function() {
var aDeferred = jQuery.Deferred();
var thisInstance = this;
var fields = jQuery('#duplicateSearchFields').val();
var moduleName = app.getModuleName();
var pageNumber = jQuery('#pageNumber').val();
var ignoreEmpty = jQuery('#ignoreEmpty').val();
var url = 'module='+moduleName+'&view=FindDuplicates&fields='+fields+'&ignoreEmpty='+ignoreEmpty;
AppConnector.requestPjax(url+'&page='+pageNumber).then(
function(data){
jQuery('#listViewContents').html(data);
jQuery('#recordsCount').val('');
jQuery('#totalPageCount').text('');
var selectedIds = new Array();
thisInstance.writeSelectedIds(selectedIds);
thisInstance.calculatePages().then(function(){
thisInstance.updatePagination();
});
thisInstance.registerMergeRecordEvent(thisInstance.mergeRecordPopupCallback);
aDeferred.resolve();
}
);
return aDeferred.promise();
},
/**
* Function registers events for navigation in duplicate search view
*/
registerPageNavigationEvents : function() {
var thisInstance = this;
var fields = jQuery('#duplicateSearchFields').val();
var moduleName = app.getModuleName();
var ignoreEmpty = jQuery('#ignoreEmpty').val();
var url = 'module='+moduleName+'&view=FindDuplicates&fields='+fields+'&ignoreEmpty='+ignoreEmpty;
jQuery('#listViewNextPageButton').on('click',function() {
var pageLimit = jQuery('#pageLimit').val();
var noOfEntries = jQuery('#noOfEntries').val();
if(noOfEntries >= pageLimit) {
var pageNumber = jQuery('#pageNumber').val();
var nextPageNumber = parseInt(parseFloat(pageNumber)) + 1;
AppConnector.requestPjax(url+'&page='+nextPageNumber).then(function(data) {
jQuery('#listViewContents').html(data);
jQuery('#pageNumber').val(nextPageNumber);
jQuery('#pageToJump').val(nextPageNumber);
thisInstance.calculatePages().then(function(){
thisInstance.updatePagination();
});
thisInstance.registerMergeRecordEvent(thisInstance.mergeRecordPopupCallback);
});
}
});
jQuery('#listViewPreviousPageButton').on('click',function() {
var pageNumber = jQuery('#pageNumber').val();
if(pageNumber > 1) {
var previousPageNumber = parseInt(parseFloat(pageNumber)) - 1;
jQuery('#pageNumber').val(previousPageNumber);
jQuery('#pageToJump').val(previousPageNumber);
AppConnector.requestPjax(url+'&page='+previousPageNumber).then(
function(data){
jQuery('#listViewContents').html(data);
thisInstance.calculatePages().then(function(){
thisInstance.updatePagination();
});
thisInstance.registerMergeRecordEvent(thisInstance.mergeRecordPopupCallback);
}
);
}
});
jQuery('#listViewPageJump').on('click', function(e) {
jQuery('#pageToJump').validationEngine('hideAll');
var element = jQuery('#totalPageCount');
var totalPageNumber = element.text();
if(totalPageNumber == "") {
var totalRecordCount = jQuery('#totalCount').val();
if(totalRecordCount != 'undefined') {
var recordPerPage = jQuery('#noOfEntries').val();
if(recordPerPage == '0') recordPerPage = 1;
var totalPages = Math.ceil(totalRecordCount/recordPerPage);
if(totalPages == 0){
totalPages = 1;
}
element.text(totalPages);
return;
}
element.progressIndicator({});
thisInstance.getPageCount().then(function(data){
var pageCount = data['result']['page'];
if(pageCount == 0){
pageCount = 1;
}
element.text(pageCount);
element.progressIndicator({'mode': 'hide'});
});
}
});
jQuery('#listViewPageJumpDropDown').on('click','li',function(e) {
e.stopImmediatePropagation();
}).on('keypress','#pageToJump',function(e) {
if(e.which == 13) {
e.stopImmediatePropagation();
var element = jQuery(e.currentTarget);
var response = Vtiger_WholeNumberGreaterThanZero_Validator_Js.invokeValidation(element);
if(typeof response != "undefined"){
element.validationEngine('showPrompt',response,'',"topLeft",true);
} else {
element.validationEngine('hideAll');
var currentPageElement = jQuery('#pageNumber');
var currentPageNumber = currentPageElement.val();
var newPageNumber = parseInt(jQuery(e.currentTarget).val());
var totalPages = parseInt(jQuery('#totalPageCount').text());
if(newPageNumber > totalPages){
var error = app.vtranslate('JS_PAGE_NOT_EXIST');
element.validationEngine('showPrompt',error,'',"topLeft",true);
return;
}
if(newPageNumber == currentPageNumber){
var message = app.vtranslate('JS_YOU_ARE_IN_PAGE_NUMBER')+" "+newPageNumber;
var params = {
text: message,
type: 'info'
};
Vtiger_Helper_Js.showMessage(params);
return;
}
currentPageElement.val(newPageNumber);
AppConnector.requestPjax(url+'&page='+newPageNumber).then(
function(data){
jQuery('#listViewContents').html(data);
thisInstance.updatePagination();
element.closest('.btn-group').removeClass('open');
thisInstance.registerMergeRecordEvent(thisInstance.mergeRecordPopupCallback);
}
);
}
return false;
}
});
},
/**
* Function registers event for merge button
*/
registerMergeRecordEvent : function(cb) {
var thisInstance = this;
jQuery('input[name="merge"]').on('click', function(e) {
var element = jQuery(e.currentTarget);
var groupName = element.data('group');
var mergeRecordsCheckBoxes = jQuery('input[name="mergeRecord"]:checked');
if(mergeRecordsCheckBoxes.length < 2) {
Vtiger_Helper_Js.showMessage({text: app.vtranslate('JS_SELECT_ATLEAST_TWO_RECORD_FOR_MERGING')});
return false;
} else {
var count = 0;
var records = [];
var stop = false;
mergeRecordsCheckBoxes.each(function(key, obj) {
var ele = jQuery(obj);
if(ele.data('group') != groupName) {
Vtiger_Helper_Js.showMessage({text: app.vtranslate('JS_SELECT_RECORDS_TO_MERGE_FROM_SAME_GROUP')});
stop = true;
return false;
}
records.push(ele.data('id'));
count++;
});
if(stop) return false;
if(count > 3) {
Vtiger_Helper_Js.showMessage({text: app.vtranslate('JS_ALLOWED_TO_SELECT_MAX_OF_THREE_RECORDS')});
return false;
}
var popupInstance = Vtiger_Popup_Js.getInstance();
var url = 'module='+app.getModuleName()+'&view=MergeRecord&records='+records;
thisInstance.popupWindowInstance = popupInstance.show(url, '', '', '', function(params){
thisInstance.mergeRecordPopupCallback();
});
}
});
},
/**
* Callback function after the merge popup appears
*/
mergeRecordPopupCallback : function() {
var thisInstance = this;
var win = thisInstance.popupWindowInstance;
var form = win.document.forms['massMerge'];
jQuery(form.primaryRecord).on('change', function(event) {
var id = jQuery(event.currentTarget).val();
jQuery(form).find('[data-id='+id+']').attr('checked', true);
});
jQuery(form).on('submit', function(e){
e.preventDefault();
var params = jQuery(form).serialize();
AppConnector.request(params).then(function(data){
win.close();
thisInstance.postMassDeleteRecords();
});
});
},
/**
* Function registers various events for duplicate search
*/
registerEvents : function() {
var thisInstance = this;
thisInstance.registerMergeRecordEvent(thisInstance.mergeRecordPopupCallback);
thisInstance.registerMainCheckBoxClickEvent();
thisInstance.registerPageNavigationEvents();
thisInstance.registerCheckBoxClickEvent();
thisInstance.registerSelectAllClickEvent();
thisInstance.registerDeselectAllClickEvent();
thisInstance.registerEventForTotalRecordsCount();
},
/**
* Function returns current view name for the module
*/
getCurrentCvId : function(){
return jQuery('#viewName').val();
},
/**
* Function gets the record count
*/
getRecordsCount : function(){
var aDeferred = jQuery.Deferred();
var recordCountVal = jQuery("#recordsCount").val();
if(recordCountVal != ''){
aDeferred.resolve(recordCountVal);
} else {
var count = '';
var module = app.getModuleName();
var parent = app.getParentModuleName();
var fields = jQuery('#duplicateSearchFields').val();
var ignoreEmpty = jQuery('#ignoreEmpty').val();
var postData = {
"module": module, "parent": parent,
"view": "FindDuplicatesAjax", "mode": "getRecordsCount",
"fields": fields, "ignoreEmpty":ignoreEmpty
}
AppConnector.request(postData).then(
function(data) {
var response = JSON.parse(data);
jQuery("#recordsCount").val(response['result']['count']);
count = response['result']['count'];
aDeferred.resolve(count);
},
function(error,err){
}
);
}
return aDeferred.promise();
}
});