晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
|
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/Settings/Roles/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.
*************************************************************************************/
var Settings_Roles_Js = {
newPriviliges : false,
initDeleteView: function() {
var form = jQuery('#roleDeleteForm');
var params = {
submitHandler : function(form) {
var form = jQuery(form);
var transferRecordNameEle = jQuery('[name="transfer_record_display"]', form);
var transferRecordEle = jQuery('[name="transfer_record"]', form);
var transferRecordName = transferRecordNameEle.val();
var transferRecordRoleId = transferRecordEle.val();
if(transferRecordName === '' || transferRecordRoleId === '') {
transferRecordNameEle.addClass('input-error');
return false;
}else {
transferRecordNameEle.removeClass('input-error');
}
app.helper.showProgress();
var formData = form.serializeFormData();
app.request.post({'data' : formData}).then(function(err, data){
app.helper.hideProgress();
app.helper.hideModal();
if(err === null){
jQuery('.settingsPageDiv').html(data);
Settings_Roles_Js.initTreeView();
}
});
}
};
form.vtValidate(params);
//toggle readonly- So validation works for the element
jQuery('[name="transfer_record_display"]', form).on('focus', function() {
jQuery(this).prop('readonly',true);
}).on('focusout', function() {
jQuery(this).prop('readonly',false);
});
jQuery('[data-action="popup"]').on('click',function(e) {
e.preventDefault();
var target = $(e.currentTarget);
var field = target.data('field');
var popupjs = new Vtiger_Popup_Js();
var transferRole = function(container) {
jQuery('.roleEle', container).click(function(e){
e.preventDefault();
var target = jQuery(e.currentTarget);
var selectedRoledId = target.closest('li').data('roleid');
jQuery('[name="'+field+'_display"]', form).val(target.text());
jQuery('.clearReferenceSelection').removeClass('hide');
jQuery('[name="'+field+'"]', form).val(selectedRoledId);
jQuery('[name="transfer_record_display"]', form).valid();
app.helper.hidePopup();
});
};
popupjs.showPopup(target.data('url'),'', transferRole);
});
jQuery('#clearRole').on('click',function(e){
jQuery('[name="transfer_record_display"]', form).val('');
jQuery('[name="transfer_record"]', form).val('');
jQuery('.clearReferenceSelection').addClass('hide');
});
},
initTreeView: function() {
function applyMoveChanges(roleid, parent_roleid) {
var params = {
module: 'Roles',
action: 'MoveAjax',
parent: 'Settings',
record: roleid,
parent_roleid: parent_roleid
}
app.request.post({'data' : params}).then(function(err, res) {
if (err) {
alert(app.vtranslate('JS_FAILED_TO_SAVE'));
window.location.reload();
}
});
}
function modalActionHandler(event) {
var target = $(event.currentTarget);
var params = {};
params.cb = function(data){
Settings_Roles_Js.initDeleteView();
};
app.request.get({'url' : target.data('url')}).then(function(err, data){
if(err === null) {
app.helper.showModal(data, params);
}
});
}
jQuery('[data-action="modal"]').click(modalActionHandler);
jQuery('.toolbar').hide();
jQuery('.toolbar-handle').bind('mouseover', function(e){
var target = $(e.currentTarget);
jQuery('.toolbar', target).css({display: 'inline'});
});
jQuery('.toolbar-handle').bind('mouseout', function(e){
var target = $(e.currentTarget);
jQuery('.toolbar', target).hide();
});
jQuery('.draggable').draggable({
containment: '.treeView',
start : function(event, ui) {
var container = jQuery(ui.helper);
var referenceid = container.data('refid');
var sourceGroup = jQuery('[data-grouprefid="'+referenceid+'"]');
var sourceRoleId = sourceGroup.data('roleid');
if(sourceRoleId == 'H5' || sourceRoleId == 'H2') {
var params = {};
params.title = app.vtranslate('JS_PERMISSION_DENIED');
params.message = app.vtranslate('JS_NO_PERMISSIONS_TO_MOVE');
app.helper.showErrorNotification(params);
}
},
helper: function(event) {
var target = $(event.currentTarget);
var targetGroup = target.closest('li');
var timestamp = +(new Date());
var container = $('<div/>');
container.css('z-index',1000);
container.data('refid', timestamp);
container.html(targetGroup.clone());
// For later reference we shall assign the id before we return
targetGroup.attr('data-grouprefid', timestamp);
//remove tooltip in the clone
container.find('.tooltip').remove();
return container;
}
});
jQuery('.droppable').droppable({
hoverClass: 'btn-primary',
tolerance: 'pointer',
drop: function(event, ui) {
var container = $(ui.helper);
var referenceid = container.data('refid');
var sourceGroup = $('[data-grouprefid="'+referenceid+'"]');
var thisWrapper = $(this).closest('div');
var targetRole = thisWrapper.closest('li').data('role');
var targetRoleId= thisWrapper.closest('li').data('roleid');
var sourceRole = sourceGroup.data('role');
var sourceRoleId = sourceGroup.data('roleid');
// Attempt to push parent-into-its own child hierarchy?
if (targetRole.indexOf(sourceRole) == 0) {
// Sorry
return;
}
//Attempt to move the roles CEO and Sales Person
if (sourceRoleId == 'H5' || sourceRoleId == 'H2') {
return;
}
sourceGroup.appendTo(thisWrapper.next('ul'));
applyMoveChanges(sourceRoleId, targetRoleId);
}
});
vtUtils.enableTooltips();
},
registerShowNewProfilePrivilegesEvent : function() {
jQuery('[name="profile_directly_related_to_role"]').on('change',function(e){
var target = jQuery(e.currentTarget);
var hanlder = target.data('handler');
var container = jQuery('[data-content="'+ hanlder + '"]');
vtUtils.hideValidationMessage(jQuery('#profilesList'));
if(hanlder === 'new'){
Settings_Roles_Js.getProfilePriviliges();
return false;
}else {
jQuery('#profilesList', container).removeClass('hide');
Settings_Roles_Js.registerProfileEvents();
}
jQuery('[data-content]').not(container).fadeOut('slow',function(){
container.fadeIn('slow');
});
});
},
/**
* To register Profile Edit View Events
*/
_registeredProfileEvents: false,
registerProfileEvents : function() {
if(!this._registeredProfileEvents && typeof window['Settings_Profiles_Edit_Js'] != 'undefined'){
var instance = new Settings_Profiles_Edit_Js();
this._registeredProfileEvents = true;
}
},
onLoadProfilePrivilegesAjax : function() {
jQuery('[name="profile_directly_related_to_role"]:checked').trigger('change');
},
getProfilePriviliges : function() {
var content = jQuery('[data-content="new"]');
var profileId = jQuery('[name="profile_directly_related_to_role_id"]').val();
var params = {
data : {
module : 'Profiles',
parent: 'Settings',
view : 'EditAjax',
record : profileId
}
}
if(Settings_Roles_Js.newPriviliges == true) {
jQuery('[data-content="existing"]').fadeOut('slow',function(){
content.fadeIn('slow');
});
return false;
}
app.helper.showProgress();
app.request.post(params).then(function(err, data) {
app.helper.hideProgress();
if(err === null) {
content.find('.profileData').html(data);
vtUtils.showSelect2ElementView(jQuery('#directProfilePriviligesSelect'));
Settings_Roles_Js.registerExistingProfilesChangeEvent();
Settings_Roles_Js.newPriviliges = true;
jQuery('[data-content="existing"]').fadeOut('slow',function(){
content.fadeIn('slow',function(){
});
});
Settings_Roles_Js.registerProfileEvents();
}else {
app.helper.showErrorNotification({'message' : err.message});
}
});
},
registerExistingProfilesChangeEvent : function() {
jQuery('#directProfilePriviligesSelect').on('change',function(e) {
var profileId = jQuery(e.currentTarget).val();
var params = {
module : 'Profiles',
parent: 'Settings',
view : 'EditAjax',
record : profileId
};
app.helper.showProgress();
app.request.get({'data' : params}).then(function(err, data) {
app.helper.hideProgress();
if(err === null) {
jQuery('[data-content="new"]').find('.profileData').html(data);
vtUtils.showSelect2ElementView(jQuery('#directProfilePriviligesSelect'));
Settings_Roles_Js.registerExistingProfilesChangeEvent();
Settings_Roles_Js.registerProfileEvents();
}
});
});
},
registerSubmitEvent : function() {
var thisInstance = this;
var form = jQuery('[name="EditRole"]');
var params = {
submitHandler : function(data) {
jQuery("button[name='saveButton']").attr("disabled","disabled");
var form = jQuery(data);
if(form.data('submit') == 'true' && form.data('performCheck') == 'true') {
return true;
} else {
if(this.numberOfInvalids() <= 0) {
app.helper.showProgress();
var formData = form.serializeFormData();
thisInstance.checkDuplicateName({
'rolename' : formData.rolename,
'record' : formData.record
}).then(
function(data){
app.helper.showProgress();
form.data('submit', 'true');
form.data('performCheck', 'true');
app.request.post({'data' : formData}).then(function(err, data){
app.helper.hideProgress();
if(err === null ){
window.history.back();
}else {
}
});
},
function(err){
app.helper.hideProgress();
app.helper.showErrorNotification({'message' : err.message});
});
} else {
//If validation fails, form should submit again
form.removeData('submit');
}
}
}
};
form.vtValidate(params);
},
/*
* Function to check Duplication of Role Names
* returns boolean true or false
*/
checkDuplicateName : function(details) {
var aDeferred = jQuery.Deferred();
var params = {
'module' : app.getModuleName(),
'parent' : app.getParentModuleName(),
'action' : 'EditAjax',
'mode' : 'checkDuplicate',
'rolename' : details.rolename,
'record' : details.record
};
app.request.get({'data' : params}).then(
function(err, response) {
if(err === null) {
var result = response['success'];
if(result === true) {
aDeferred.reject(response);
} else {
aDeferred.resolve(response);
}
}
});
return aDeferred.promise();
},
registerEvents : function() {
var view = app.view();
if(view === 'Index') {
Settings_Roles_Js.initTreeView();
} else if(view === 'Edit') {
Settings_Roles_Js.registerShowNewProfilePrivilegesEvent();
Settings_Roles_Js.onLoadProfilePrivilegesAjax();
Settings_Roles_Js.registerSubmitEvent();
}
}
};
Vtiger.Class("Settings_Roles_Index_Js",{},{
init : function() {
this.addComponents();
Settings_Roles_Js.registerEvents();
},
addComponents : function() {
this.addModuleSpecificComponent('Index','Vtiger',app.getParentModuleName());
}
});
Vtiger.Class("Settings_Roles_Edit_Js",{},{
init : function() {
this.addComponents();
Settings_Roles_Js.registerEvents();
},
addComponents : function() {
this.addModuleSpecificComponent('Index','Vtiger',app.getParentModuleName());
}
});