RedooUtils('Workflow2').loadScript('modules/Workflow2/views/resources/js/noty/jquery.noty.packaged.min.js').then(function() {
var type = 'alert';
switch(config.type) {
case 'success':
type = 'success';
break;
case 'info':
type = 'alert';
break;
case 'error':
type = 'error';
break;
}
config.message = '' + config.subject + "
" + config.message;
if(config.position != -1) {
noty({
'text' : config.message,
'type' : config.type,
'timeout': config.timeout == 0 ? null : config.timeout,
'layout': config.position
});
}
});
Vtiger_Helper_Js.showConfirmationBox({'message' : config.message}).then(
function(e) {
var data = {};
data[config.key] = 'yes';
callback(data);
},
function(error, err){
var data = {};
data[config.key] = 'no';
callback(data);
});
fieldEle = jQuery(config.inputele);
value = config.value;
fieldEvents = fieldEle.data('events');
if(fieldEle.hasClass('autoComplete')) {
return;
}
if(fieldEle.hasClass('dateField')) {
fieldEle.val(value).DatePickerSetDate(value, true);
}
if(fieldEle.hasClass('chzn-select')) {
fieldEle.val(value).trigger('liszt:updated');
}
if(fieldEle.hasClass('select2')) {
fieldEle.val(value).trigger('change');
}
if(fieldEle.attr('type') == 'checkbox') {
fieldEle.prop('checked', value == '1');
}
if(fieldEle.hasClass('sourceField')) {
var obj = Vtiger_Edit_Js.getInstance();
obj.setReferenceFieldValue(allFieldEleParent, {
id: value,
name: newRecord.record[field + '_display']
});
}
if(fieldEle.attr('type') == 'checkbox') {
fieldEle.prop('checked', value == '1');
}
if(fieldEle.attr('type') == 'text' || fieldEle.prop("tagName") == 'TEXTAREA') {
fieldEle.val(value);
}
fieldEle.trigger('keyup');
fieldEle.trigger('focusout');
jQuery('[name="' + config.field + '"] option', this.parentEle).show();
jQuery('[name="' + config.field + '"] option:not([value=""])', this.parentEle).prop('disabled', 'disabled');
var selectObj = jQuery('[name="' + config.field + '"]', this.parentEle);
var currentValue = selectObj.val();
var resetValue = true;
jQuery.each(config.values, function(index, value) {
jQuery('[value="' + value + '"]', selectObj).prop('disabled', false)
if(value === currentValue) {
resetValue = false;
}
});
if(resetValue === true) {
selectObj.val('');
}
jQuery('option.shouldHide', selectObj).hide().removeClass('shouldHide').trigger('liszt:updated');
var tooltips = RedooCache('Workflow2').get('WFToolTips', {});
if(typeof tooltips[config.tooltipid] != 'undefined') {
jQuery.each(tooltips[config.tooltipid], function(index, ele) {
jQuery(ele).tooltipster('destroy');
});
tooltips[config.tooltipid] = [];
}
if(!jQuery("body").hasClass("ColorizerTooltipsterCSSLoaded") && !jQuery("body").hasClass("WorkflowTooltipsterCSSLoaded")) {
RedooUtils('Workflow2').loadStyles('https://cdn.jsdelivr.net/jquery.tooltipster/4.2.5/css/tooltipster.bundle.min.css');
jQuery("body").addClass("WorkflowTooltipsterCSSLoaded");
}
RedooUtils('Workflow2').loadStyles('https://cdn.jsdelivr.net/jquery.tooltipster/4.2.5/css/tooltipster.bundle.min.css').then(function() {
RedooUtils('Workflow2').loadScript('https://cdn.jsdelivr.net/jquery.tooltipster/4.2.5/js/tooltipster.bundle.min.js').then(function() {
var currentHash = Math.ceil(Math.random() * 10000);
jQuery("head").append("");
jQuery.each(config.field, function(index, ele) {
if(config.target == 'input') {
var fieldEle = RedooUtils('Workflow2').getFieldElement(ele, this.parentEle, true);
} else {
var fieldEle = RedooUtils('Workflow2').getFieldElement(ele);
if(config.target == 'label') {
fieldEle = fieldEle.prev();
}
}
if(jQuery(fieldEle).hasClass('tooltipstered')) {
// jQuery(fieldEle).tooltipster('destroy');
}
var instance = jQuery(fieldEle).tooltipster({
content: config.content,
contentAsHTML: config.html_enabled == '1',
theme: ["tooltipster-" + config.theme, "tt" + currentHash],
side: config.position,
interactive: config.interactive == "1",
trigger: 'custom',
distance: 2,
multiple: true,
timer: config.timeout == '' ? 0 : config.timeout * 1000
}).tooltipster('open');
if(config.tooltipid != '') {
var tooltips = RedooCache('Workflow2').get('WFToolTips', {});
if(typeof tooltips[config.tooltipid] == 'undefined') {
tooltips[config.tooltipid] = [];
}
tooltips[config.tooltipid].push(instance);
RedooCache('Workflow2').set('WFToolTips', tooltips);
}
});
});
});
var fieldEle = RedooUtils('Workflow2').getFieldElement(config.field, this.parentEle, true).focus();
if(typeof config.flash != 'undefined' && config.flash == '1') {
fieldEle.effect( 'highlight', { color: config.flashcolor }, 500 );
}
array(
'type' => 'templatefield',
'label' => 'Input Selector you want to set',
),
'value' => array(
'type' => 'templatefield',
'label' => 'New value',
),
), 'Can be used to set a value into a input field, by directory use a jQuery/CSS Selector. More information');
PluginFrontendAction::registerStandalone('message', '\\Workflow\Plugins\FrontendActions\\Core::message');
PluginFrontendAction::registerStandalone('Confirmation', '\\Workflow\Plugins\FrontendActions\\Core::confirmation');
PluginFrontendAction::registerSimple('Disable Form submit', 'disableSubmit', '\\Workflow\Plugins\FrontendActions\\Core::disableSubmit');
PluginFrontendAction::registerSimple('Enable Form submit', 'enableSubmit', '\\Workflow\Plugins\FrontendActions\\Core::enableSubmit');
PluginFrontendAction::registerSimple('Focus a field', 'focusField', '\\Workflow\Plugins\FrontendActions\\Core::focusField', array(
'field' => array(
'type' => 'field',
'label' => 'Focus this field'
),
'flash' => array(
'type' => 'checkbox',
'label' => 'Should field highlighted'
),
'flashcolor' => array(
'type' => 'colorpicker',
'label' => 'If yes, set color to flash'
)
));
PluginFrontendAction::registerSimple('Remove Tooltip', 'removeTooltip', '\\Workflow\Plugins\FrontendActions\\Core::removeTooltip', array(
'tooltipid' => array(
'type' => 'templatefield',
'label' => 'ID of Tooltip to Remove',
),
));
PluginFrontendAction::registerSimple('Disable Values in Picklist', 'picklistfilter', '\\Workflow\Plugins\FrontendActions\\Core::picklistFilter', array(
'field' => array(
'type' => 'field',
'fieldtype' => 'picklist',
'label' => 'Which field to limit',
),
'values' => array(
'type' => 'related_picklist',
'multiple' => true,
'src' => 'field',
'label' => 'Only show these Values',
),
));
PluginFrontendAction::registerSimple('Remove Picklistvalue Filter', 'picklistfilterRemove', '\\Workflow\Plugins\FrontendActions\\Core::picklistFilterRemove', array(
'field' => array(
'type' => 'field',
'fieldtype' => 'picklist',
'label' => 'Which field to limit',
)
));
PluginFrontendAction::registerSimple('Show Tooltip', 'showTooltip', '\\Workflow\Plugins\FrontendActions\\Core::showTooltip', array(
'field' => array(
'type' => 'fields',
'label' => 'Tooltips to this fields'
),
'content' => array(
'type' => 'templatearea',
'label' => 'Content of Tooltip'
),
'theme' => array(
'type' => 'select',
'label' => 'Theme',
'options' => array('light' => 'Light', 'default' => 'Default', 'noir' => 'Noir', 'shadow' => 'Shadow'),
),
'position' => array(
'type' => 'picklist',
'label' => 'Position',
'options' => array('top' => 'Top', 'left' => 'Left', 'right' => 'Right', 'bottom' => 'Bottom'),
),
'target' => array(
'type' => 'select',
'label' => 'Element',
'options' => array('field' => 'Field', 'input' => 'Field / Formelement', 'label' => 'Label'),
),
'html_enabled' => array(
'type' => 'checkbox',
'label' => 'Checkbox contains HTML Tags',
),
'interactive' => array(
'type' => 'checkbox',
'label' => 'Interactions as possible? For example if you use links',
),
'backgroundcolor' => array(
'type' => 'colorpicker',
'label' => 'Backgroundcolor',
),
'textcolor' => array(
'type' => 'colorpicker',
'default' => '#000000',
'label' => 'Textcolor',
),
'timeout' => array(
'type' => 'templatefield',
'label' => 'Timeout of Tooltip in seconds',
'description' => 'Tooltip automatically disappear after this time (0=permanent)'
),
'tooltipid' => array(
'type' => 'templatefield',
'label' => 'ID of Tooltip',
'description' => 'Used to remove Tooltip, if shown permanent'
),
));