晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
|
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/Products/resources/ |
Upload File : |
/*+***********************************************************************************
* The contents of this file are subject to the vtiger CRM Public License Version 1.1
* ("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.
*************************************************************************************/
PriceBooks_Detail_Js("Products_Detail_Js", {
triggerEditQuantity: function(url) {
app.request.get({url: url}).then(
function(err, data) {
app.helper.showModal(data, {cb: function() {
var productDetailjs = new Products_Detail_Js();
productDetailjs.registerEventForUpdateQuantity();
}
});
});
},
}, {
/**
* function to register event for showing multiple images using bxslider
*/
registerEventForImageGraphics: function() {
if (jQuery('#imageContainer').find("img").length > 0) {
jQuery('#imageContainer').bxSlider({
slideWidth: 400,
infiniteLoop: false,
minSlides: 1,
maxSlides: 1,
slideMargin: 10,
nextText: "",
prevText: "",
hideControlOnEnd: true
});
jQuery('.bx-next').css({"font-size": "20px", "color": "gray"});
jQuery('.bx-next').addClass("fa fa-arrow-right");
jQuery('.bx-prev').css({"font-size": "20px", "color": "gray"});
jQuery('.bx-prev').addClass("fa fa-arrow-left");
}
},
/**
* function to register event for editing the list price in related list
*/
registerEventForUpdateQuantity: function() {
var self = this;
var updateQuantityForm = jQuery('#quantityUpdate');
updateQuantityForm.vtValidate({
submitHandler: function(form) {
var selectedRecordDetails = {};
var quantityEle = updateQuantityForm.find('input[name="quantity"]');
var quantity = quantityEle.val();
var relid = updateQuantityForm.find('input[name="relid"]').val();
selectedRecordDetails[relid] = quantity;
var relatedListInstance = self.getRelatedController();
var relation = relatedListInstance.updateRelations(selectedRecordDetails);
app.helper.hideModal();
relation.done(self.loadRelatedList());
}
});
},
registerEventForChangeTotalCost: function() {
var detailContentsHolder = this.getContentHolder();
var thisInstance = this;
detailContentsHolder.on('click', '#updatePrice', function(e) {
var element = jQuery(e.currentTarget);
if (element.attr('disabled')) {
return;
}
app.helper.showProgress();
var unitPrice = jQuery('.subProductsTotalCost').text();
var params = {
'module': app.getModuleName(),
'relatedModule': thisInstance.getRelatedModuleName(),
'record': thisInstance.getRecordId(),
'tabLabel': jQuery('#tab_label').val(),
'action': 'RelationAjax',
'mode': 'changeBundleCost',
'unit_price': unitPrice
}
app.request.post({data: params}).then(
function(err, data) {
app.helper.hideProgress();
if (data) {
element.attr('disabled', true);
var message = 'JS_SUCCESSFULLY_CHANGED_BUNDLE_COST';
app.helper.showSuccessNotification({message: app.vtranslate(message)});
}
});
});
thisInstance.registerPopover();
detailContentsHolder.on('click', '.totalCostCalculationInfo', function(e) {
var element = jQuery(e.currentTarget);
element.popover({
'html': true,
'container':'body',
'placement': 'top',
}).data('bs.popover').tip().addClass('productBundlePopover');
element.one('shown.bs.popover',function(){
app.helper.showVerticalScroll(jQuery('.productBundlePopover .popover-content'));
});
});
},
/**
* Function to register event for select button click on pricebooks in Products related list
*/
registerEventForSelectOptionToShowBundleInInventory: function() {
var thisInstance = this;
var detailContentsHolder = this.getContentHolder();
detailContentsHolder.on('click', '.showBundlesInInventory', function(e) {
var currentTarget = jQuery(e.currentTarget);
var prevSelectedValue = jQuery('.isShowBundles').val();
var isChecked = currentTarget.find('input[type="checkbox"]').is(':checked');
var value = 0;
if (isChecked) {
value = 1;
}
if (value != prevSelectedValue) {
var params = {
'module': app.getModuleName(),
'relatedModule': thisInstance.getRelatedModuleName(),
'record': thisInstance.getRecordId(),
'tabLabel': jQuery('#tab_label').val(),
'action': 'RelationAjax',
'mode': 'updateShowBundles',
'value': value
}
app.request.post({data: params}).then(
function(err, response) {
jQuery('.isShowBundles').val(value);
if (value) {
currentTarget.attr('checked', 'true');
} else {
currentTarget.removeAttr('checked');
}
var message = 'JS_SUB_PRODUCTS_WILL_NOT_BE_SHOWN_IN_INVENTORY';
if (value) {
message = 'JS_SUB_PRODUCTS_WILL_BE_SHOWN_IN_INVENTORY';
}
app.helper.showSuccessNotification({message:app.vtranslate(message)});
}
);
}
});
},
loadRelatedList: function(){
var relatedController = this.getRelatedController();
var self = this;
relatedController.loadRelatedList().then(function(){
relatedController.triggerRelationAdditionalActions();
});
},
registerPopover: function() {
if (jQuery('.totalCostCalculationInfo').length !== 0) {
jQuery('.totalCostCalculationInfo').popover({html: true, container: 'body', placement: 'top'}).data('bs.popover').tip().addClass('productBundlePopover');
}
},
registerBasicEvents: function(){
this._super();
this.registerEventForImageGraphics();
},
/**
* Function to register events
*/
registerEvents: function() {
var self = this;
app.event.on("post.RecordList.click", function(event, data) {
var responseData = JSON.parse(data);
app.helper.hideModal();
var relatedController = self.getRelatedController();
relatedController.addRelations(responseData).then(self.loadRelatedList());
});
this._super();
this.registerEventForSelectOptionToShowBundleInInventory();
this.registerEventForChangeTotalCost();
app.event.on("post.relatedListLoad.click", function() {
self.registerPopover();
self.registerEventForImageGraphics();
});
app.event.on("popover.click.event", function(e) {
self.registerPopover();
});
}
});