晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
|
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.
*************************************************************************************/
Vtiger.Class("Vtiger_Tag_Js",{},{
editTagTemplate : '<div class="popover" role="tooltip"><div class="arrow"></div>\n\
<form onsubmit="return false;">\n\
<div class="popover-content"></div>\n\
</form>\n\
</div>',
editTagContainerCached : false,
init : function() {
this.editTagContainerCached = jQuery('.editTagContainer');
},
saveTag : function(callerParams) {
var aDeferred = jQuery.Deferred();
var params = {
'module' : app.getModuleName(),
'action' : 'TagCloud',
'mode' : 'saveTags'
};
var params = jQuery.extend(params, callerParams);
app.helper.showProgress();
app.request.post({'data': params}).then(
function(error, data) {
app.helper.hideProgress();
if(error == null) {
aDeferred.resolve(data);
}else{
aDeferred.reject(error);
}
}
);
return aDeferred.promise();
},
updateTag : function(callerParams) {
var aDeferred = jQuery.Deferred();
var params = {
'module' : app.getModuleName(),
'action' : 'TagCloud',
'mode' : 'update'
}
params = jQuery.extend(params, callerParams);
app.request.post({'data' : params}).then(function(error, data){
if(error == null) {
aDeferred.resolve(data);
}else{
aDeferred.reject(error);
}
});
return aDeferred.promise();
},
constructTagElement : function (params) {
var tagElement = jQuery(jQuery('#dummyTagElement').html()).clone(true);
tagElement.attr('data-id',params.id).attr('data-type',params.type);
tagElement.find('.tagLabel').html(params.name);
return tagElement
},
addTagsToShowAllTagContianer : function(tagsList) {
var showAllTagContainer = jQuery('.showAllTagContainer');
var viewAllTagContainer = jQuery('.viewAllTagsContainer');
var currentTagHolder = showAllTagContainer.find('.currentTag');
var viewAllCurrentTagHolder = viewAllTagContainer.find('.currentTag');
var currentTagMenu = showAllTagContainer.find('.currentTagMenu');
for(var index in tagsList) {
var tagInfo = tagsList[index];
var tagId = tagInfo.id;
if(currentTagHolder.find('[data-id="'+ tagId +'"]').length > 0) {
continue;
}
var newTagEle = this.constructTagElement(tagInfo);
currentTagHolder.append(newTagEle);
viewAllCurrentTagHolder.append(newTagEle.clone());
currentTagMenu.find('[data-id="'+ tagId +'"]').closest('li.tag-item').remove();
}
if(currentTagHolder.find('.tag').length > 0){
currentTagHolder.find('.noTagsPlaceHolder').hide();
}
},
removeTagsFromShowTagContainer : function(tagsList, container) {
var showAllTagContainer = (typeof container === 'undefined') ? jQuery('.showAllTagContainer') : container;
var currentTagHolder = showAllTagContainer.find('.currentTag');
var currentTagMenu = showAllTagContainer.find('.currentTagMenu');
for(var index in tagsList) {
var tagInfo = tagsList[index];
var tagId = tagInfo.id;
var tagEle = currentTagHolder.find('[data-id="'+ tagId +'"]');
if(tagEle.length <= 0) {
continue;
}
tagEle.find('.editTag,.deleteTag').remove();
var newTagLiEle = jQuery('<li class="tag-item list-group-item"> <a style="margin-left:0px"></a> </li>').find('a').html(tagEle).closest('li');
currentTagMenu.find('ul').append(newTagLiEle);
currentTagMenu.find(".noTagExistsPlaceHolder").hide();
}
},
viewAllTags : function(container) {
var viewAllTagContainer = container.find('.viewAllTagsContainer').clone(true);
// There is no delete option from view All Tags
viewAllTagContainer.find(".deleteTag").remove();
app.helper.showModal(viewAllTagContainer.find('.modal-dialog'), {'cb' : function(modalContainer){
var registerViewAllTagEvents = function(modalContainer) {
var currentTagHolder = modalContainer.find('.currentTag');
app.helper.showScroll(currentTagHolder);
}
registerViewAllTagEvents(modalContainer);
}});
},
showAllTags : function(container, callerParams) {
var self = this;
var showTagModal = container.find('.showAllTagContainer').clone(true);
app.helper.showModal(showTagModal.find('.modal-dialog'),{'cb' : function(modalContainer){
var registerShowAllTagEvents = function(modalContainer) {
var currentTagsSelected = new Array();
var currentTagHolder = modalContainer.find('.currentTag');
var currentTagMenuHolder = modalContainer.find(".currentTagMenu");
var currentTagScroll = modalContainer.find('.currentTagScroll');
var deletedTags = new Array();
if(currentTagHolder.find(".tag").length <= 0){
currentTagHolder.find(".noTagsPlaceHolder").show();
}
if(currentTagMenuHolder.find(".tag").length <= 1){
currentTagMenuHolder.find(".noTagExistsPlaceHolder").show();
}else{
currentTagMenuHolder.find(".noTagExistsPlaceHolder").hide();
}
modalContainer.find('.dropdown-menu').on('click',function(e){
e.stopPropagation();
});
app.helper.showVerticalScroll(modalContainer.find('.dropdown-menu .scrollable'));
modalContainer.find('.currentTagMenu').off('click', 'li > a').on('click', 'li > a',function(e){
var element = jQuery(e.currentTarget);
var selectedTag = jQuery(element.html());
selectedTag.append('<i class="editTag fa fa-pencil"></i><i class="deleteTag fa fa-times"></i>');
currentTagsSelected.push(selectedTag.data('id'));
element.remove();
currentTagHolder.append(selectedTag);
currentTagHolder.find(".noTagsPlaceHolder").hide();
if(currentTagMenuHolder.find(".tag").length <= 1){
currentTagMenuHolder.find(".noTagExistsPlaceHolder").show();
}
});
app.helper.showScroll(currentTagHolder,{alwaysVisible:false});
modalContainer.find('.currentTagSelector').instaFilta({
targets : '.currentTagMenu li',
sections : '.currentTagMenu ul',
scope : modalContainer,
hideEmptySections : true,
beginsWith : false,
caseSensitive : false,
typeDelay : 0
});
var tagInputEle = modalContainer.find('input[name="createNewTag"]');
// var params = {tags : [], tokenSeparators: [","]};
// vtUtils.showSelect2ElementView(tagInputEle, params);
var form = modalContainer.find('form');
form.off('submit').on('submit',function(e){
e.preventDefault();
var modalContainerClone = modalContainer.clone(true);
app.helper.hideModal();
if(typeof callerParams == 'undefined') {
var saveParams = {};
}else{
var saveParams = callerParams;
}
var saveTagList = {};
saveTagList['existing'] = currentTagsSelected;
saveTagList['new'] = tagInputEle.val().split(',');
saveTagList['deleted'] = deletedTags;
saveParams['tagsList'] = saveTagList;
var formData = form.serializeFormData();
saveParams['newTagType'] = formData['visibility'];
self.saveTag(saveParams).then(function(data){
app.event.trigger('post.MassTag.save', modalContainerClone, data);
}, function(error){
//app.helper.showAlertBox({'message' : error})
})
return false;
});
modalContainer.off('click', '.deleteTag').on('click', '.deleteTag', function(e){
var currenttarget = jQuery(e.currentTarget);
var currentTagHolder = currenttarget.closest(".currentTag");
var tag = currenttarget.closest('.tag');
var deletedTagId = tag.data('id');
var index = currentTagsSelected.indexOf(deletedTagId);
//if the tag is currently selected then remove it from currently selected list
if(index >= 0) {
currentTagsSelected.splice(index, 1);
}else{
deletedTags.push(deletedTagId);
}
var tagInfo = {
'id' : deletedTagId
};
self.removeTagsFromShowTagContainer(new Array(tagInfo),modalContainer);
if(currentTagHolder.find(".tag").length <= 0){
currentTagHolder.find(".noTagsPlaceHolder").show();
}
});
}
registerShowAllTagEvents(modalContainer);
}});
},
registerShowMassTagListener : function() {
var self = this;
app.event.on('Request.MassTag.show',function(e, container, saveParams){
if(typeof container == 'undefined') {
container = jQuery('body');
}
self.showAllTags(container, saveParams);
});
},
registerEditTagEvents : function(){
var self = this;
jQuery(document).on('click','.editTag', function(e){
var element = jQuery(e.currentTarget);
var tag = element.closest('.tag');
var editTagContainer = self.editTagContainerCached.clone();
editTagContainer.find('[name="id"]').val(tag.data('id'));
editTagContainer.find('[name="tagName"]').val(tag.find('.tagLabel').text());
if(tag.attr('data-type') == "public") {
editTagContainer.find('[type="checkbox"]').prop('checked',true);
}else{
editTagContainer.find('[type="checkbox"]').prop('checked', false);
}
editTagContainer.removeClass('hide');
var container = element.closest('.modal').length ? element.closest('.modal') : jQuery('body');
var placement = app.view() == "Detail" ? 'bottom' : 'top';
element.popover({
'content' : editTagContainer,
'html' : true,
'placement' : placement,
'animation' : true,
'trigger' : 'manual',
'template' : self.editTagTemplate,
'container' : container
});
element.popover('show');
});
jQuery(document).on('click', '.editTagContainer .saveTag', function(e){
var element = jQuery(e.currentTarget);
var editTagContainer = element.closest('.editTagContainer');
var tagName = editTagContainer.find('[name="tagName"]').val();
if(tagName.trim() == ""){
var message = app.vtranslate('JS_PLEASE_ENTER_VALID_TAG_NAME');
app.helper.showErrorNotification({'message':message});
return;
}
var valueParams = {};
valueParams['name'] = editTagContainer.find('[name="tagName"]').val();
var visibility = 'private';
if(editTagContainer.find('[name="visibility"][type="checkbox"]').is(':checked')) {
visibility = editTagContainer.find('[name="visibility"][type="checkbox"]').val();
}
valueParams.visibility = visibility;
var tagId = editTagContainer.find('[name="id"]').val();
valueParams.id = tagId;
self.updateTag(valueParams).then(function(data){
var tagElement = jQuery('[data-id="'+ tagId +'"]');
tagElement.find('.tagLabel').text(data.name);
tagElement.attr('data-type', data.type);
var popOverId = element.closest('.popover').attr('id');
jQuery('[aria-describedby="'+ popOverId +'"]').popover('destroy');
}, function(error){
app.helper.showAlertBox({'message' : error.message});
});
});
jQuery(document).on('click', '.editTagContainer .cancelSaveTag', function(e){
var element = jQuery(e.currentTarget);
var popOverId = element.closest('.popover').attr('id');
jQuery('[aria-describedby="'+ popOverId +'"]').popover('destroy');
});
jQuery(document).on('keyup', '.editTagContainer [name="tagName"]', function(e) {
(e.keyCode || e.which) === 13 &&
jQuery(e.target).closest('.editTagContainer').find('.saveTag').trigger('click');
});
},
registerViewAllTagsListener : function() {
var self = this;
app.event.on('Request.AllTag.show', function(e, container){
if(typeof container == 'undefined') {
container = jQuery('body');
}
self.viewAllTags(container);
});
},
registerEvents : function() {
this.registerShowMassTagListener();
this.registerEditTagEvents();
this.registerViewAllTagsListener();
}
});