(function () { /** DetailView **/ "use strict"; jQuery('.listViewActionsDiv .addButton[onclick*="runListViewWorkflow"]').each(function(index, ele) { var html = jQuery('strong', this).html(); jQuery(this).html('' + html + ''); var onclick = jQuery(this).attr('onclick'); if(onclick.indexOf('//#') != -1) { var parts = onclick.split('//'); parts[1] = parts[1].replace(';',''); jQuery(this).css('backgroundColor', parts[1]); } }); //hh var WorkflowRecordMessages = []; function startWorkflowById(workflow, crmid, async) { if(typeof async == "undefined") { async = true; } if(async != true) { async = false; } if(typeof crmid == "undefined") { crmid = "0"; } if(typeof workflow == "undefined") { return false; } var html = "




Executing Workflow ...
"; jQuery("body").append(html); jQuery.ajax("index.php", { async: async, cache: false, data:{ "module" : "Workflow2", "action" : "Workflow2Ajax", "file" : "ajaxExecuteWorkflow", "crmid" : crmid, "workflow" : workflow }, type: 'POST', dataType: 'json' }).always(function( response ) { jQuery("#workflow_executer").remove(); if(response.result == "startfields") { var html = "
"; html += ""; html += "
These Workflow requests some values.
"; jQuery.each(response.fields, function(index, value) { var inputField = ""; var fieldName = '' + value.name + ''; switch(value.type) { case "TEXT": inputField = ''; break; case "CHECKBOX": if(value.default === null) { value.default = "off"; } inputField = ''; break; case "SELECT": var splitValues = value["default"].split("\n"); inputField = ''; break; case "DATE": inputField = ''; inputField += ''; inputField += ''; break; } html += ""; }); html += ""; html += "
"; jQuery("#startfieldsContainer").hide(); jQuery("#startfieldsContainer").html(html); jQuery("#startfieldsContainer").fadeIn("fast"); } }); } function reloadWFDWidget() { var widgetContainer = jQuery('div.widgetContainer#' + jQuery("#module").val() + '_sideBar_Workflows'); var key = widgetContainer.attr('id'); FlexUtils('Workflow2').cacheSet(key, 0); widgetContainer.html(''); // Vtiger_Index_Js.loadWidgets(widgetContainer); } window.continueWorkflow = function (execid, crmid, block_id) { var Execution = new WorkflowExecution(); Execution.setContinue(execid, block_id); Execution.execute(); } window.stopWorkflow = function(execid, crmid, taskid, direct) { if(typeof direct == 'undefined' || direct != true) { if(!confirm("stop Workflow?")) return; } jQuery.post("index.php?module=Workflow2&action=QueueStop", { "crmid" : crmid, "execID" : execid, "taskID" : taskid }, function(response) { reloadWFDWidget(); } ); return false; } /** ListView **/ function executeWorkflow(button, module, selection) { var selectedIDs = ""; if(typeof selection == "undefined") { selectedIDs = jQuery('#allselectedboxes').val().split(";"); selectedIDs = selectedIDs.join(";"); } else { selectedIDs = selection.join(";"); } if (jQuery("#Wf2ListViewPOPUP").length == 0) { var div = document.createElement('div'); div.setAttribute('id','Wf2ListViewPOPUP'); div.setAttribute('style','display:none;width:350px; position:absolute;'); div.innerHTML = 'Loading'; document.body.appendChild(div); // for IE7 compatiblity we can not use setAttribute('style', ) as well as setAttribute('class', ) newdiv = document.getElementById('Wf2ListViewPOPUP'); newdiv.style.display = 'none'; newdiv.style.width = '400px'; newdiv.style.position = 'absolute'; } jQuery('#status').show(); currentListViewPopUpContent = "#wf2popup_wf_execute"; jQuery.post("index.php", { "module" : "Workflow2", "action" : "Workflow2Ajax", "file" : "ListViewPopup", "return_module" : module, "record_ids" : selectedIDs }, function(response) { jQuery("#Wf2ListViewPOPUP").html(response); fnvshobj(button,'Wf2ListViewPOPUP'); var EMAILListview = document.getElementById('Wf2ListViewPOPUP'); var EMAILListviewHandle = document.getElementById('Workflow2ViewDivHandle'); Drag.init(EMAILListviewHandle,EMAILListview); jQuery('#status').hide(); }); } var currentListViewPopUpContent = "#wf2popup_wf_execute"; function showWf2PopupContent(id) { jQuery(currentListViewPopUpContent + "_TAB").addClass("deactiveWf2Tab"); jQuery(id + "_TAB").removeClass("deactiveWf2Tab"); jQuery(currentListViewPopUpContent).hide(); jQuery(id).show(); currentListViewPopUpContent= id; if(id == "wf2popup_wf_importer") { jQuery("#execute_mode").val("execute"); } else { jQuery("#execute_mode").val("import"); } } function executeLVWorkflow() { if(jQuery("#execute_mode").val() == "import") { return true; } var record_ids = jQuery("#WFLV_record_ids").val(); var return_module = jQuery("#WFLV_return_module").val(); var workflow = jQuery("#exec_this_workflow").val(); var parallel = jQuery("#exec_workflow_parallel").attr("checked")=="checked"?1:0; var ids = record_ids.split("#~#"); jQuery("#executionProgress_Value").html("0 / " + ids.length); jQuery("#executionProgress").show(); jQuery.ajaxSetup({async:false}); var counter = 0; jQuery.each(ids, function(index, value) { jQuery.post("index.php?module=Workflow2&action=Workflow2Ajax&file=ajaxExecuteWorkflow", { "crmid" : value, "return_module" : return_module, "workflow" : workflow, "allow_parallel" : parallel } ); counter = counter + 1; jQuery("#executionProgress_Value").html(counter + " / " + ids.length); }); jQuery.ajaxSetup({async:true}); jQuery("#executionProgress_Value").html("100%"); if(currentListViewPopUpContent == "#wf2popup_wf_execute") { return false; } } var ENABLEredirectionOrReloadAfterFinish = true; var WorkflowMetaData = {}; var WithinRecordLessWF = false; function runListViewWorkflow(workflowId, couldStartWithoutRecord, collection_process) { if(typeof couldStartWithoutRecord === 'undefined' && typeof collection_process === 'undefined') { if(typeof WorkflowMetaData[workflowId] === 'undefined') { FlexAjax('Workflow2').postAction('WorkflowInfo', {workflow_id: workflowId}, 'json').then(function (workflowInfo) { WorkflowMetaData[workflowId] = workflowInfo; runListViewWorkflow(workflowId); }); return false; } else { couldStartWithoutRecord = WorkflowMetaData[workflowId].withoutrecord; collection_process = WorkflowMetaData[workflowId].collection_process; } } if(WithinRecordLessWF === true) { couldStartWithoutRecord = false; } if(typeof couldStartWithoutRecord === 'undefined') { couldStartWithoutRecord = false; } if(typeof collection_process === 'undefined') { collection_process = false; } var processSettings = {}; if(typeof WorkflowDesignerProcessSettings == 'undefined' || typeof WorkflowDesignerProcessSettings[workflowId] == 'undefined') { processSettings = {'withoutrecord': couldStartWithoutRecord, 'collection_process' : collection_process}; } else { processSettings = WorkflowDesignerProcessSettings[workflowId]; } var listInstance = window.app.controller(); var params = listInstance.getListSelectAllParams(false); if(params !== false) { var selectedIds = params.selected_ids; } else { var selectedIds = [0]; } RedooUtils('Workflow2').blockUI({ title: 'Executing ... ', message: '

' + FLEXLANG('Please wait', 'Workflow2') + ' ...    0 of ' + (selectedIds!='all'?selectedIds.length:'?') + ' done

', theme: false, css: { 'backgroundColor':'#2d3e49', 'color': '#ffffff', 'border': '1px solid #fff' }, onBlock: function() { var counter = -1; if(selectedIds == 'all') { jQuery.ajaxSetup({async:false}); var parameter = listInstance.getDefaultParams(); parameter.module = 'Workflow2'; parameter.view = undefined; parameter.action = 'GetSelectedIds'; jQuery.post('index.php', parameter, function(response) { selectedIds = response.ids; }, 'json'); jQuery('#workflowDesignerTotal').html(selectedIds.length); jQuery.ajaxSetup({async:true}); } var totalIds = selectedIds.length; if(selectedIds.length > 1) { ENABLEredirectionOrReloadAfterFinish = false; } var couldStartWithoutRecord = false; if(selectedIds.length == 0 && processSettings.withoutrecord == false) { alert('Please choose a record to execute'); RedooUtils('Workflow2').unblockUI(); return; } /* if(selectedIds.length == 0) { couldStartWithoutRecord = true; } */ if(processSettings.collection_process == "1") { var workflow = new Workflow(); ENABLEredirectionOrReloadAfterFinish = true; workflow.setRequestedData({ 'recordids':selectedIds.join(',') }, 'collection_recordids'); var crmid = selectedIds.shift(); workflow.execute(workflowId, crmid, function(response) { RedooUtils('Workflow2').unblockUI(); if(typeof response.redirection == "undefined") { window.location.reload(); } return true; }); return; } if(processSettings.withoutrecord == "1" && selectedIds.length == 1 && selectedIds[0] == 0) { var workflow = new Workflow(); ENABLEredirectionOrReloadAfterFinish = true; var crmid = 0; WithinRecordLessWF = true; workflow.execute(workflowId, crmid, function(response) { RedooUtils('Workflow2').unblockUI(); if(typeof response.redirection == "undefined") { window.location.reload(); } return true; }, true); return; } function _executeCallback() { counter = counter + 1; jQuery('#workflowDesignerDone').html(counter); var crmid = selectedIds.shift(); if(couldStartWithoutRecord === true) { crmid = 0; couldStartWithoutRecord = false; } var progress = Math.round(((totalIds - selectedIds.length) / totalIds) * 100); jQuery('#executionProgress .progress-bar-success').css('width', progress + '%'); if(typeof crmid !== 'undefined') { var workflow = new Workflow(); workflow.setBackgroundMode(true); workflow.execute(workflowId, crmid, _executeCallback); } else { RedooUtils('Workflow2').unblockUI(); window.location.reload(); } } _executeCallback(); } }); } function runListViewSidebarWorkflow() { runListViewWorkflow(jQuery("#workflow2_workflowid").val(), jQuery("#workflow2_workflowid option:selected").data('withoutrecord') == '1'); } function runSidebarWorkflow(crmid) { if(jQuery("#workflow2_workflowid").val() == "") { return; } var workflow = new Workflow(); workflow.execute(jQuery("#workflow2_workflowid").val(), crmid); } function WorkflowWidgetLoaded() { jQuery('.WFdivider', '#WorkflowDesignerWidgetContainer').each(function(index, element) { if(jQuery(element).next().length == 0 || jQuery(element).next().hasClass('WFdivider')) { jQuery(element).hide(); } }); } var WFDvisibleMessages = {}; var WorkflowHandler = { startImport : function(moduleName) { RedooAjax('Workflow2').postView('ImportModal', {target_module:moduleName}).then(function(response) { RedooUtils('Workflow2').hideModalBox(); RedooUtils('Workflow2').showContentOverlay(response).then(function() { RedooUtils('Workflow2').loadScript('modules/Workflow2/js/Importer.js').then(function() { var Import = new Importer(); Import.init(); }); }); }); /* jQuery.post('index.php?module=Workflow2&view=ImportStep1', { source_module: source_module, currentUrl: window.location.href }, function(html) { app.showModalWindow(html, function(data) { jQuery('#modalSubmitButton').removeAttr('disabled'); }); }); */ } }; window.WorkflowHandler = WorkflowHandler; function showEntityData(crmid) { jQuery.post('index.php?module=Workflow2&view=EntityData', { crmid:crmid }, function(html) { app.showModalWindow(html, function(data) { jQuery('.EntityDataDelete').on('click', function(e) { var dataid = jQuery(e.currentTarget).data('id'); jQuery.post('index.php', { 'module':'Workflow2', 'action':'EntityDataDelete', 'dataid':dataid }, function() { showEntityData(crmid); }); }); }); }); } var workflowObj; window.closeForceNotification = function(messageId) { jQuery.post('index.php?module=Workflow2&action=MessageClose', { messageId:messageId, force: 1 }); } var UserQueue = { run: function(exec_id, block_id) { var Execution = new WorkflowExecution(); Execution.setContinue(exec_id, block_id); Execution.execute(); } }; var WorkflowPermissions = { returnCounter:0, submit: function(execID, confID, hash, result) { if(jQuery('#row_' + confID).data('already') == '1') { if(!confirm('Permission already set. Set again?')) { return; } } var execution = new WorkflowExecution(); execution.setCallback(function(response) { }); execution.setContinue(execID, 0); //execution.enableRedirection(false); execution.submitRequestFields('authPermission', [{name:'permission', value: result}, {name:'confid', value: confID}, {name:'hash', value: hash}], {}, jQuery('.confirmation_container')); var row = jQuery('#row_' + confID); jQuery('.btn.decision', row).removeClass('pressed').addClass('unpressed'); jQuery('.btn.decision_' + result, row).addClass('pressed').removeClass('unpressed'); return false; }, submitAll:function(blockId, result) { /*if(jQuery('table.block' + blockId + ' [data-already="1"]').length > 0) { if(!confirm('This will overwrite every already defined value! Continue?')) { return; } }*/ jQuery('table.block' + blockId + ' .permissionRow input.selectRows:checked').each(function(index, value) { var row = jQuery(this).closest('.permissionRow'); var confId = jQuery(row).data('id'); var execID = jQuery(row).data('execid'); var hash = jQuery(row).data('hash'); WorkflowPermissions.returnCounter++; var execution = new WorkflowExecution(); execution.setCallback(function(response) { WorkflowPermissions.returnCounter--; if(WorkflowPermissions.returnCounter == 0) window.location.reload(); }); execution.setContinue(execID, 0); execution.enableRedirection(false); execution.submitRequestFields('authPermission', [{name:'permission', value: result}, {name:'confid', value: confId}, {name:'hash', value: hash}], {}, jQuery('.confirmation_container')); }); return false; } }; window.WorkflowPermissions = WorkflowPermissions; var WorkflowFrontendTypes = { getWorkflows:function(type, module, crmid) { if(typeof type === 'undefined') { console.error('You do not define a FrontendType. Please check!'); return; } if(typeof module === 'undefined') { console.error('You do not define a Module of FrontendTypes. Please check!'); return; } if(typeof crmid === 'undefined' && typeof WFDFrontendConfig !== 'undefined' && typeof WFDFrontendConfig[type] !== 'undefined' && typeof WFDFrontendConfig[type][module] !== 'undefined') { var aDeferred = jQuery.Deferred(); var result = []; jQuery.each(WFDFrontendConfig[type][module], function(index, value) { var tmp = value.config; tmp.workflow_id = value.workflowid; tmp.module = module; tmp.label = value.label; tmp.color = value.color; tmp.textcolor = value.textcolor; result.push(tmp); }); aDeferred.resolveWith({}, [result]); return aDeferred.promise(); } return FlexAjax('Workflow2').postAction('FrontendLinks', { 'type' : type, 'target_module' : module, 'target_crmid' : crmid }, 'json'); }, triggerWorkflow:function(type, workflowid, crmid, envVars) { var dfd = jQuery.Deferred(); var execution = new WorkflowExecution(); execution.setCallback(function(response) { var workflowFrontendActions = new Workflow(); workflowFrontendActions.checkFrontendActions('init', crmid); dfd.resolve(response); return false; }); execution.init(crmid); execution.setWorkflowById(workflowid); if(typeof envVars === 'undefined') { var envVars = {}; } execution.setFrontendType(type); execution.setEnvironment(envVars); execution.execute(); return dfd.promise(); }, trigggerWorkflow:function(type, workflowid, crmid, envVars) { return WorkflowFrontendTypes.triggerWorkflow(type, workflowid, crmid, envVars); } }; window.WorkflowFrontendTypes = WorkflowFrontendTypes; ;(function ($) { "use strict"; var ScopeName = 'Workflow2'; var Version = '2.4.1'; /** * FlexUtils V2.4.1 * 2.4.1 - 23.05.2019 * - Fix bug related to modals, when first one is closed * 2.4.0 - 25.07.2018 * - add createFileDrop function * - add FlexForm component * 2.3.1 - 18.07.2018 * - Fixed setFieldValue for picklists in VT7 * 2.3.0 - 12.07.2018 * - JSHint recommendations applied * 2.2.1 - 21.05.2018 * - add onQuickCreate from VT6 * 2.2.0 - 26.04.2018 * - add FlexTranslate component * 2.1.3 - 02.03.2018 * - improve compatibility with old RedooUtils * 2.1.2 - 23.02.2018 * - add close callback to showModalBox * 2.1.1 - 09.02.2018 * - add initial local cache handler * 2.1.0 - 20.12.2017 * - Rename to FlexUtils * - Add function showRecordInOverlay * 2.0.13 - 18.11.2017 * - Implement Exception Output in postAction / postView * 2.0.12 - 16.11.2017 * - add showModalBox replacement if already box is shown * 2.0.11 - 08.11.2017 * - add convertComponents parameter to refreshContent to convert select2 * 2.0.10 - 04.11.2017 * - add showNotification * - add Init console log * 2.0.09 - 31.10.2017 * - add getCurrentDateFormat function * 2.0.08 - 22.09.2017 * - add getContentMaxWidth / getContentMaxHeight functions * 2.0.07 - 13.08.2017 * - add getMainRecordId function * - add getCurrentCustomViewId * - add onListChange * 2.0.06 - 13.06.2017 * - getListFields fixed for VT6 * 2.0.05 - 12.06.2017 * - first version build with TypeScript * - fix getFieldElement on SummaryView * - Fix issues reported from TypeScript * 2.0.04 - 11.16.2017 * - improve showModalBox Function * - add hideModalBox Function * - add FlexAjax.postSettingsView as wrapper for default function * - add FlexAjax.postSettingsAction as wrapper for default function * - add FlexUtils.refreshContent * 2.0.03 - add getCurrentLayout Function * - add layoutDependValue Function * - add BlockUI * 2.0.02 - add getQueryParams Function * - Extend getMainModule by Query Params * - Introduce RedooUtils Action on Server * - add setFieldValue Function * 2.0.01 - VT7 Compatibility * - add FlexUtils.onFieldChange method * - add FlexUtils.onRelatedListChange method * - add FlexUtils.isVT7 method * - add FlexUtils.Signal Implementation * - add global RedooEvents * 1.0.11 - Make postAction / postView settings flag optional * Add wrong Ajax Response error output * 1.0.10 - Add getRecordLabels function * 1.0.9 - Add fillFieldSelect, loadStyles functions * 1.0.8 - Add returnInput Parameter to getFieldElement function * 1.0.7 - Add FlexUtils.loadScript *//*globals confirm:false */ /** * You must generate a FlexAjax Environment by useing FlexAjax(ScopeName) * @example * FlexAjax("ScopeName") * @global * @toc * @namespace **/ var FlexAjax = { /** * This function sends a POST request to a given Action.
* Module is get from ScopeName * * @example * FlexAjax("ScopeName").postAction( * "ActionName", * { * "param1": value1, * "param2": value2 * }, * true, * "json" * ).then(function(responseJson) { * // ... do something with JSON response * }); * @param {string} actionName - Action to call * @param {array} [params] - parameters to send * @param {boolean|string} [settings] - (boolean) Is action within CRM Settings?
(string) DataType * @param {string} [dataType] - Datatype of response * @returns {string|json} */ postAction: function (actionName, params, settings, dataType) { if (typeof params == 'undefined') { params = {}; } params.module = ScopeName; params.action = actionName; if (typeof dataType == 'undefined' && typeof settings == 'string') { dataType = settings; settings = false; } if (typeof settings != 'undefined' && settings == true) { params.parent = 'Settings'; } return FlexAjax.post('index.php', params, dataType); }, /** * This function send a POST request to a given Action. * Module is get from ScopeName * * @example * FlexAjax("ScopeName").postAction( * "ActionName", * { * "param1": value1, * "param2": value2 * }, * true, * "json" * ).then(function(responseJson) { * // ... do something with JSON response * }); * @param viewName * @param params * @param dataType * @returns {*} */ postSettingsView: function (viewName, params, dataType) { return FlexAjax.postView(viewName, params, true, dataType); }, /** * * @param actionName * @param params * @param dataType * @returns {*} */ postSettingsAction: function (actionName, params, dataType) { return FlexAjax.postAction(actionName, params, true, dataType); }, /** * * @param viewName * @param params * @param settings * @param dataType * @returns {*} */ postView: function (viewName, params, settings, dataType) { if (typeof params == 'undefined') { params = {}; } params.module = ScopeName; params.view = viewName; if (typeof dataType == 'undefined' && typeof settings == 'string') { dataType = settings; settings = false; } if (typeof settings != 'undefined' && settings == true) { params.parent = 'Settings'; } return FlexAjax.post('index.php', params, dataType); }, /** * * @param url URL to call * @param params Object with POST parameters * @param dataType Single value of datatype if not set in params * @returns {*} */ post: function (url, params, dataType) { var aDeferred = jQuery.Deferred(); if (typeof url == 'object') { params = url; url = 'index.php'; } if (typeof params == 'undefined') { params = {}; } if (typeof dataType == 'undefined' && typeof params.dataType != 'undefined') { dataType = params.dataType; } var options = { url: url, data: params }; if (typeof dataType != 'undefined') { options.dataType = dataType; } //options.dataType = undefined; options.dataType = 'text'; options.type = 'POST'; jQuery.ajax(options) .always(function (data) { if (typeof dataType != 'undefined' && dataType == 'json') { try { data = jQuery.parseJSON(data); } catch (e) { FlexUtils.unblockUI(); console.error('FlexAjax Error - Should: JSON Response:'); console.log('Request: ', options); console.log(data); var height = 10; jQuery('.RedooAjaxError').each(function (index, ele) { height += jQuery(ele).height() + 30; }); var id = 'error_' + (Math.floor(Math.random() * 1000000)); var content = data.substr(0, 500).replace(/ 500) { content += ' .....shortened....... ' + data.substr(-500).replace(/ERROR: ' + e + '
Response:' + content + ''; jQuery('body').append(html); jQuery('#' + id).on('click', function () { jQuery(this).fadeOut('fast', function () { jQuery(this).remove(); }); }); /* window.setTimeout(function() { jQuery('#' + id).hide(function() { jQuery(this).remove(); }) }); */ //app.showModalWindow(response); return; } } if (typeof data.success != 'undefined') { if (data.success == false && (data.error.code.indexOf('request') != -1)) { if (confirm('Request Error. Reload of Page is required.')) { window.location.reload(); } FlexUtils.showNotification(data.error.message, false); return; } } aDeferred.resolve(data); //callback(data) }); return aDeferred.promise(); }, /** * * @param url * @param params * @param dataType */ get: function (url, params, dataType) { console.error('Vtiger do not support GET Requests'); return; }, /** * Drop In Replacement for AppConnector.request * * @param params object * @returns {*} */ request: function (params) { return FlexAjax.post('index.php', params); } };/** * You must generate a FlexCache Environment by useing FlexCache(ScopeName) * @example * FlexCache("ScopeName") * @global * @namespace **/ var FlexCache = { get: function (key, defaultValue) { if (typeof _FlexCache[key] != 'undefined') { return _FlexCache[key]; } return defaultValue; }, set: function (key, value) { _FlexCache[key] = value; } }; /** * You must generate a FlexForm Environment by useing FlexForm(ScopeName) * @example * FlexForm("ScopeName") * @global * @namespace **/ var FlexForm = { /** * * @param params * @returns {FlexFormObj} */ getInstance:function(params) { var FlexFormObj = function(parameters) { this.parameters = parameters; this.fields = []; this.events = $({}); this.on = function(event, callbackFunction) { this.events.on(event, callbackFunction); }; this.addField = function(label, name, type, value, options) { var field = new FlexFormField(name, type, label); if(typeof options !== 'undefined') { field.setOptions(options); } if(typeof value !== 'undefined') { field.setValue(value); } var row = []; row.push(field); this.fields.push(row); }; this.initCSS = function() { var html = ''; var checksumFkt = function(s) { var hash = 0, i, char; if (s.length == 0) { return hash; } var l = s.length; for (i = 0; i < l; i++) { char = s.charCodeAt(i); hash = ((hash << 5) - hash) + char; hash |= 0; // Convert to 32bit integer } return hash; }; var checksum = checksumFkt(html); var className = 'flexformmodalcss' + checksum; if($('style.' + className).length === 0) { var htmlele = $(html).addClass(className); $('head').append(htmlele); } }; this.renderModal = function(widthPx, headline, successText, cancelText) { this.initCSS(); if(typeof widthPx === 'undefined') { widthPx = 600; } if(typeof headline === 'undefined') { headline = ''; } if(typeof successText === 'undefined') { successText = 'Save'; } if(typeof cancelText === 'undefined') { cancelText = 'Cancel'; } var html = ''; html += ''; FlexUtils.showModalBox(html).then($.proxy(function(window, data) { jQuery.each(this.fields, function(index, fields) { jQuery.each(fields, function(fieldIndex, field) { field.init(); }); }); $('.btn-success', window).on('click', $.proxy(function() { var data = {}; jQuery.each(this.fields, function(index, fields) { jQuery.each(fields, function(fieldIndex, field) { data[field.getFieldName()] = field.getValue(); }); }); this.events.trigger('save', data); }, this)); jQuery('.materialstyle input, .materialstyle select, .materialstyle textarea', window).on('blur', function() { // check if the input has any value (if we've typed into it) if (jQuery(this).val()) { jQuery(this).addClass('used'); } else { jQuery(this).removeClass('used'); } }).trigger('blur'); jQuery('.materialstyle .select2-container, .materialstyle input[type="file"]', window).each(function (index, ele) { // console.log(ele, jQuery(ele).closest('.materialstyle')); jQuery(ele).closest('.materialstyle').addClass('fixedUsed'); }); }, this)); }; }; var FlexFormField = function(field_name, field_type, field_label) { var defaultOptions = { 'selfdecorate': false }; this.field_options = defaultOptions; this.field_value = null; this.field_type = field_type; this.field_name = field_name; this.field_label = field_label; this.rendered = false; this.containerId = 'cfid' + Math.round(Math.random(999999) * 100000) + Math.round(Math.random(999999) * 100000); this.fieldclass = 'cf' + Math.round(Math.random() * 100000) + Math.round(Math.random() * 100000); this.typedata = FlexForm.getType(field_type); this.setOptions = function(options) { this.field_options = $.extend(true, defaultOptions, options); }; this.getOptions = function() { return this.field_options; }; this.setValue = function(value) { this.field_value = value; if(this.rendered === true) { this.typedata.setter(this.field_value, this); } }; this.init = function() { if(typeof this.typedata.init === 'function') { this.typedata.init(this); } }; this.getValue = function() { return this.typedata.getter(this); }; this.getFieldName = function() { return this.field_name; }; this.render = function() { var html = '
'; html += this.typedata.render(this); html += ''; html += '
'; this.rendered = true; return html; }; this.getContainer = function() { return $('#' + this.containerId); }; }; return new FlexFormObj(params); }, registerType:function(type, renderFunction, initFunction, validateFunction, getterFunction, setterFunction, options) { FlexForm._types[type] = { 'init': initFunction, 'render': renderFunction, 'validate': validateFunction, 'setter': getterFunction, 'getter': setterFunction, 'options': options }; }, getType:function(type) { if(typeof FlexForm._types[type] === 'undefined') { throw "[" + ScopeName +"] FlexForm: " + type + " is undefined"; } return FlexForm._types[type]; }, _types:{ 'text' : { 'options': { }, 'render': function(fieldInstance) { return ''; }, 'validate': function(value, fieldInstance) { return true; }, 'getter': function(fieldInstance) { return fieldInstance.getContainer().find('.' + fieldInstance.fieldclass).val(); }, 'setter': function(value, fieldInstance) { fieldInstance.getContainer().find('.' + fieldInstance.fieldclass).val(value); } }, 'textarea' : { 'options': { // 'selfdecorate': false, }, 'render': function(fieldInstance) { return ''; }, 'validate': function(value, fieldInstance) { return true; }, 'getter': function(fieldInstance) { return fieldInstance.getContainer().find('.' + fieldInstance.fieldclass).val(); }, 'setter': function(value, fieldInstance) { fieldInstance.getContainer().find('.' + fieldInstance.fieldclass).val(value); } }, 'picklist' : { 'options': { // 'selfdecorate': false, }, 'render': function(fieldInstance) { var options = fieldInstance.getOptions(); var html = ''; return html; }, 'init': function(fieldInstance) { }, 'validate': function(value, fieldInstance) { return true; }, 'getter': function(fieldInstance) { return fieldInstance.getContainer().find('.' + fieldInstance.fieldclass).select2('val'); }, 'setter': function(value, fieldInstance) { fieldInstance.getContainer().find('.' + fieldInstance.fieldclass).select2('val', value); } }, } };/** * You must generate a FlexTranslate Environment by useing FlexTranslate(ScopeName) * @example * FlexTranslate("ScopeName") * @global * @namespace **/ var FlexTranslate = { init:function(language, translations) { FlexCache.set('__translations_' + language, translations); }, getTranslator:function() { return function(string) { return FlexTranslate.__(string); }; }, __:function(string) { var language = app.getUserLanguage(); var translations = FlexCache.get('__translations_' + language, {}); if(typeof translations === 'function') { FlexTranslate.init(language, translations()); return FlexTranslate.__(string); } if(typeof translations[string] !== 'undefined') { return translations[string]; } return string; } }; /*globals Vtiger_Edit_Js:false,Vtiger_Detail_Js:false,Vtiger_Popup_Js:false */ /** * You must generate a FlexUtils Environment by useing FlexUtils(ScopeName) * @example * FlexUtils("ScopeName") * @global * @namespace **/ var FlexUtils = { layout: null, currentLVRow: null, listViewFields: false, isVT7: function () { return typeof app.helper !== 'undefined'; }, createFileDrop: function(options) { if(typeof options === 'undefined') { options = {}; } if(typeof options.hovertext === 'undefined') { options.hovertext = 'Drop File'; } if(typeof options.container === 'undefined') { options.container = 'body'; } if(typeof options.container === 'undefined') { options.container = 'body'; } if(typeof options.data === 'undefined') { options.data = {}; } if($(options.container).prop('tagName') !== 'BODY' && $(options.container).css('position') == 'static') { $(options.container).css('position', 'relative'); } $(options.container).addClass('RegisteredFileDrop'); var containerHeight = $(options.container).height(); if(typeof options.url === 'undefined') { if(typeof options.action === 'undefined') { throw 'URL or action is mandatory for FileDrop Component'; } else { options.url = 'index.php?module=' + ScopeName + '&action=' + options.action; if(typeof options.settings !== 'undefined' && options.settings === true) { options.url += '&parent=Settings'; } } } if($('style#FlexFileDropStyles').length === 0) { var fontSize = 20; var showIcon = true; var positionText = '40%'; if(containerHeight < 200) { fontSize = 12; showIcon = false; positionText = '10%'; } var html = ''; $('head').append(html); } if($('.FlexFileDropOverlay', options.container).length === 0) { var html = ''; $(options.container).append(html); } var Overlay = $('.FlexFileDropOverlay', options.container); $(options.container).on('dragenter', $.proxy(function (e) { e.stopPropagation(); e.preventDefault(); }, this)); $(options.container).on('dragover', $.proxy(function (e) { e.stopPropagation(); e.preventDefault(); }, this)); $(options.container).on('drop', $.proxy(function (e) { e.stopPropagation(); e.preventDefault(); }, this)); var aSignal = new FlexUtils.Signal(); $(options.container).append(''); $(options.container).find('.fileselector').on('change', function(e) { var target = $(e.currentTarget); if(target.prop('files').length > 0) { uploadFile(target.prop('files')[0]); } }); $(options.container).find('.fileselector').on('click', function(e) { e.stopPropagation(); }); $(options.container).on('click', function() { $(options.container).find('.fileselector').trigger('click'); }); var DragContainer = $(options.container); DragContainer.on('dragenter', function (e) { Overlay.fadeIn('fast'); } ); Overlay.on('dragleave', function (e) { Overlay.fadeOut('fast'); }); function uploadFile(file) { var fd = new FormData(); fd.append('file', file); var uploadURL = options.url; var extraData = options.data; $.each(options.data, function(key, value) { fd.append(key, value); }); var jqXHR = jQuery.ajax({ url: uploadURL, type: "POST", contentType:false, processData: false, cache: false, data: fd, success: function(data){ aSignal.dispatch(data); } }); } Overlay.on('drop', function (e) { e.preventDefault(); e.stopPropagation(); Overlay.fadeOut('fast'); var fileList = e.originalEvent.dataTransfer.files; $.each(fileList, jQuery.proxy(function(index, file) { uploadFile(file); }, this)); }); return aSignal; }, showRecordInOverlay:function(setype, crmid) { window.open('index.php?module=' + setype + '&view=Detail&record=' + crmid); }, showNotification:function(message, isSuccess, options) { if(typeof isSuccess == 'undefined') { isSuccess = true; } if(typeof options == 'undefined') { options = {}; } if(FlexUtils.isVT7()) { options.message = message; if(isSuccess === true) { app.helper.showSuccessNotification(options); } else { app.helper.showErrorNotification(options); } } }, cacheSet:function(key, value) { if(FlexUtils.isVT7()) { return app.storage.set(key, value); } }, cacheGet:function(key, defaultValue) { if(FlexUtils.isVT7()) { return app.storage.get(key, defaultValue); } }, cacheClear:function(key) { if(FlexUtils.isVT7()) { return app.storage.clear(key); } }, cacheFlush:function() { if(FlexUtils.isVT7()) { return app.storage.flush(); } }, getCurrentDateFormat:function(type) { type = type.toLowerCase(); if(FlexCache.get('__CurrentDateFormat_' + type, false) !== false) { return FlexCache.get('__CurrentDateFormat_' + type, false); } var replacement = {}; switch(type) { case 'php': replacement = { 'yyyy' : '%Y', 'yy' : '%y', 'dd' : '%d', 'mm' : '%m' }; break; case 'moment': replacement = { 'yyyy' : 'YYYY', 'yy' : 'YY', 'dd' : 'DD', 'mm' : 'MM' }; break; } var currentFormat; if(FlexUtils.isVT7()) { currentFormat = app.getDateFormat(); } $.each(replacement, function(oldPart, newPart) { currentFormat = currentFormat.replace(oldPart, newPart); }); FlexCache.set('__CurrentDateFormat_' + type, currentFormat); return currentFormat; }, getCurrentCustomViewId: function() { if(FlexUtils.isVT7() === true) { return $('input[name="cvid"]').val(); } else { return jQuery('#customFilter').val(); } }, selectRecordPopup: function (params, multiple) { var aDeferred = jQuery.Deferred(); var popupInstance = Vtiger_Popup_Js.getInstance(); if (FlexUtils.isVT7()) { if(typeof params == 'string') { params = { 'module':params, 'view':'Popup', 'src_module':'Emails', // module=Documents&view=&src_module=Emails&src_field=testfield&multi_select=1 'src_field':'testfield' }; } if(typeof multiple != 'undefined' && multiple === true) { params.multi_select = 1; } app.event.off('FlexUtils.SelectRecord'); app.event.one('FlexUtils.SelectRecord', function (e, data) { aDeferred.resolveWith(window, [jQuery.parseJSON(data)]); }); popupInstance.showPopup(params, 'FlexUtils.SelectRecord', function (data2) { /* Callback when visible **/ }); } else { if(typeof params == 'string') { params = { 'module':params, 'view':'Popup', 'src_module':'Emails', // module=Documents&view=&src_module=Emails&src_field=testfield&multi_select=1 'src_field':'testfield' }; } if(typeof multiple != 'undefined' && multiple === true) { params.multi_select = 1; } popupInstance.show(params, function (data) { aDeferred.resolveWith(data); }); } return aDeferred.promise(); }, getCurrentLayout: function () { if (FlexUtils.layout !== null) { return FlexUtils.layout; } var skinpath = jQuery('body').data('skinpath'); var matches = skinpath.match(/layouts\/([^/]+)/); if (matches.length >= 2) { FlexUtils.layout = matches[1]; return matches[1]; } FlexUtils.layout = 'vlayout'; return 'vlayout'; }, getQueryParams: function (paramName) { var sURL = window.document.URL.toString(); if (sURL.indexOf("?") > 0) { var arrParams = sURL.split("?"); var arrURLParams = arrParams[1].split("&"); var arrParamNames = new Array(arrURLParams.length); var arrParamValues = new Array(arrURLParams.length); var i = 0; for (i = 0; i < arrURLParams.length; i++) { var sParam = arrURLParams[i].split("="); arrParamNames[i] = sParam[0]; if (sParam[1] != "") { arrParamValues[i] = decodeURI(sParam[1]); } else { arrParamValues[i] = "No Value"; } } for (i = 0; i < arrURLParams.length; i++) { if (arrParamNames[i] == paramName) { //alert("Parameter:" + arrParamValues[i]); return arrParamValues[i]; } } } return false; }, onListChange: function() { if (FlexCache.get('__onListChangeSignal', false) == false) { var aSignal = new FlexUtils.Signal(); app.event.on("post.listViewFilter.click", function (e, container) { aSignal.dispatch(container); }); FlexCache.set('__onListChangeSignal', aSignal); } return FlexCache.get('__onListChangeSignal'); }, onRelatedListChange: function () { if (FlexCache.get('__onRelatedListChangeSignal', false) == false) { var aSignal = new FlexUtils.Signal(); app.event.on("post.relatedListLoad.click", function (e, container) { aSignal.dispatch(container); }); FlexCache.set('__onRelatedListChangeSignal', aSignal); } return FlexCache.get('__onRelatedListChangeSignal'); }, UUIDCounter: 1, FieldChangeEventInit: false, // Will register an event, when a field is changed onFieldChange: function (parentEle) { if(typeof parentEle === 'undefined') { parentEle = 'div#page'; } // Only register one signal for FieldChanges if (jQuery(parentEle).data('fielduid') === undefined) { jQuery(parentEle).data('fielduid', 'parentEle' + FlexUtils.UUIDCounter); FlexUtils.UUIDCounter++; } var Fielduid = jQuery(parentEle).data('fielduid'); jQuery(parentEle).addClass('RedooFieldChangeTracker'); var aSignal; if (FlexCache.get('__onFieldChangeSignal' + Fielduid, false) == false) { aSignal = new FlexUtils.Signal(); if (FlexUtils.isVT7()) { if (FlexUtils.FieldChangeEventInit === false) { if(typeof Vtiger_Detail_Js !== 'undefined') { app.event.on(Vtiger_Detail_Js.PostAjaxSaveEvent, function (e, fieldBasicData, postSaveRecordDetails, contentHolder) { var fieldElement = fieldBasicData.closest('.RedooFieldChangeTracker'); var Fielduid = fieldElement.data('fielduid'); aSignal = FlexCache.get('__onFieldChangeSignal' + Fielduid); aSignal.dispatch({ name: fieldBasicData.data('name'), "new": postSaveRecordDetails[fieldBasicData.data('name')].value }, fieldBasicData, postSaveRecordDetails, contentHolder); }); FlexUtils.FieldChangeEventInit = true; } } } else { if(FlexUtils.getViewMode() !== "listview" && typeof Vtiger_Detail_Js !== "undefined") { var thisInstance = Vtiger_Detail_Js.getInstance(); var detailContentsHolder = thisInstance.getContentHolder(); detailContentsHolder.on(thisInstance.fieldUpdatedEvent, function(e, values) { var target = $(e.target); var fieldName = target.attr('name'); var fieldElement = target.closest('.RedooFieldChangeTracker'); var Fielduid = fieldElement.data('fielduid'); aSignal = FlexCache.get('__onFieldChangeSignal' + Fielduid); aSignal.dispatch({ name: fieldName, "new": values.new }, values, {}, detailContentsHolder); }); } } FlexCache.set('__onFieldChangeSignal' + Fielduid, aSignal); } else { aSignal = FlexCache.get('__onFieldChangeSignal' + Fielduid); } return FlexCache.get('__onFieldChangeSignal' + Fielduid); }, getRecordLabels: function (ids) { var aDeferred = jQuery.Deferred(); var newIds = []; var LabelCache = FlexCache.get('LabelCache', {}); jQuery.each(ids, function (index, value) { if (typeof LabelCache[value] == 'undefined') { newIds.push(value); } }); if (newIds.length > 0) { FlexAjax.postAction('RecordLabel', { ids: newIds, 'dataType': 'json' }).then(function (response) { jQuery.each(response.result, function (id, value) { LabelCache[id] = value; }); FlexCache.set('LabelCache', LabelCache); aDeferred.resolveWith({}, [LabelCache]); }); } else { aDeferred.resolveWith({}, [LabelCache]); } return aDeferred.promise(); }, getFieldList: function (moduleName) { var aDeferred = jQuery.Deferred(); if (typeof _FlexCache.FieldLoadQueue[moduleName] != 'undefined') { return _FlexCache.FieldLoadQueue[moduleName]; } _FlexCache.FieldLoadQueue[moduleName] = aDeferred; if (typeof _FlexCache.FieldCache[moduleName] != 'undefined') { aDeferred.resolve(_FlexCache.FieldCache[moduleName]); return aDeferred.promise(); } FlexAjax.post('index.php', { 'module': ScopeName, 'mode': 'GetFieldList', 'action': 'RedooUtils', 'module_name': moduleName }, 'json').then(function (data) { _FlexCache.FieldCache[moduleName] = data; aDeferred.resolve(data.fields); }); return aDeferred.promise(); }, filterFieldListByFieldtype: function (fields, fieldtype) { var result = {}; jQuery.each(fields, function (blockLabel, fields) { var block = []; jQuery.each(fields, function (fieldName, fieldData) { if (fieldData.type == fieldtype) { block.push(fieldData); } }); if (block.length > 0) { result[blockLabel] = block; } }); return result; }, fillFieldSelect: function (fieldId, selected, module, fieldtype) { if (typeof fieldtype == 'undefined') { fieldtype = ''; } if (typeof module == 'undefined' && typeof window.moduleName !== 'undefined') { module = window.moduleName; } if (typeof selected == 'string') { selected = [selected]; } FlexUtils.getFieldList(module, fieldtype).then(function (fields) { if (fieldtype != '') { fields = FlexUtils.filterFieldListByFieldtype(fields, fieldtype); } var html = ''; jQuery.each(fields, function (blockLabel, fields) { html += ''; jQuery.each(fields, function (index, field) { html += ''; }); html += ''; jQuery('#' + fieldId).html(html); if (jQuery('#' + fieldId).hasClass('select2')) { jQuery('#' + fieldId).select2('val', selected); } jQuery('#' + fieldId).trigger('FieldsLoaded'); }); }); }, _getDefaultParentEle: function () { return 'div#page'; }, getMainModule: function (parentEle) { if (FlexUtils.isVT7()) { return FlexUtils._getMainModuleVT7(parentEle); } else { return FlexUtils._getMainModuleVT6(parentEle); } }, _getMainModuleVT6: function (parentEle) { if (typeof parentEle == 'undefined') { parentEle = FlexUtils._getDefaultParentEle(); } var viewMode = FlexUtils.getViewMode(parentEle); if (viewMode == 'detailview' || viewMode == 'summaryview') { return $('#module', parentEle).val(); } else if (viewMode == 'editview' || viewMode == 'quickcreate') { return $('[name="module"]', parentEle).val(); } else if (viewMode == 'listview') { return $('#module', parentEle).val(); } else if (viewMode == 'relatedview') { if ($('[name="relatedModuleName"]', parentEle).length > 0) { return $('[name="relatedModuleName"]', parentEle).val(); } if ($('#module', parentEle).length > 0) { return $('#module', parentEle).val(); } } var QueryModule = FlexUtils.getQueryParams('module'); if (QueryModule !== false) { return QueryModule; } return ''; }, _getMainModuleVT7: function (parentEle) { if (typeof parentEle == 'undefined') { parentEle = FlexUtils._getDefaultParentEle(); } var viewMode = FlexUtils.getViewMode(parentEle); if ($(parentEle).data('forcerecordmodule') !== undefined) { return $(parentEle).data('forcerecordmodule'); } if (parentEle != '#overlayPageContent.in' && $('#overlayPageContent.in').length > 0) { return FlexUtils._getMainModuleVT7('#overlayPageContent.in'); } if (typeof _META != 'undefined' && (viewMode == 'detailview' || viewMode == 'summaryview' || viewMode == 'commentview' || viewMode == 'historyview' || viewMode == 'editview' || viewMode == 'listview') && ($(parentEle).hasClass('modal') == false)) { return _META.module; } else { if (viewMode == 'detailview' || viewMode == 'summaryview') { return $('#module', parentEle).val(); } else if (viewMode == 'editview' || viewMode == 'quickcreate') { if ($('#module', parentEle).length > 0) { return $('#module', parentEle).val(); } else { return $('[name="module"]', parentEle).val(); } } else if (viewMode == 'listview') { return $('#module', parentEle).val(); } else if (viewMode == 'relatedview') { if ($('[name="relatedModuleName"]', parentEle).length > 0) { return $('[name="relatedModuleName"]', parentEle).val(); } if ($('#module', parentEle).length > 0) { return $('#module', parentEle).val(); } } } var QueryModule = FlexUtils.getQueryParams('module'); if (QueryModule !== false) { return QueryModule; } return ''; }, getMainRecordId: function () { var parentEle = 'div#page'; if (typeof parentEle == 'undefined') { parentEle = FlexUtils._getDefaultParentEle(); } var recordId = false; var viewMode = FlexUtils.getViewMode(parentEle); // if (viewMode == 'detailview' || viewMode == 'summaryview') { recordId= $('#recordId', parentEle).val(); // } return recordId; }, getRecordIds: function (parentEle) { if (typeof parentEle == 'undefined') { parentEle = FlexUtils._getDefaultParentEle(); } var recordIds = []; var viewMode = FlexUtils.getViewMode(parentEle); if (viewMode == 'detailview' || viewMode == 'summaryview') { recordIds.push($('#recordId', parentEle).val()); } else if (viewMode == 'quickcreate') { // do nothing } else if (viewMode == 'editview') { recordIds.push($('[name="record"]').val()); } else if (viewMode == 'listview') { $('.listViewEntries').each(function (index, value) { recordIds.push($(value).data('id')); }); } else if (viewMode == 'relatedview') { $('.listViewEntries').each(function (index, value) { recordIds.push($(value).data('id')); }); } return recordIds; }, onQuickCreate: function(callback) { jQuery('.quickCreateModule, .addButton[data-url*="QuickCreate"]').on('click', function __checkQC() { if (jQuery('.quickCreateContent', '.modelContainer').length == 0) { window.setTimeout(__checkQC, 200); } else { var form = jQuery('.modelContainer'); console.log('onQuickCreate Done'); callback(form.find('input[name="module"]').val(), form); } }); }, getViewMode: function (parentEle) { if (FlexUtils.isVT7()) { return FlexUtils._getViewModeVT7(parentEle); } else { return FlexUtils._getViewModeVT6(parentEle); } }, _getViewModeVT6: function (parentEle) { if (typeof parentEle == 'undefined') { parentEle = FlexUtils._getDefaultParentEle(); } var viewEle = $("#view", parentEle); _FlexCache.viewMode = false; if (viewEle.length > 0 && viewEle[0].value == "List") { _FlexCache.viewMode = "listview"; } if ($(".detailview-table", parentEle).length > 0) { _FlexCache.viewMode = "detailview"; } else if ($(".summaryView", parentEle).length > 0) { _FlexCache.viewMode = "summaryview"; } else if ($(".recordEditView", parentEle).length > 0) { if ($('.quickCreateContent', parentEle).length == 0) { _FlexCache.viewMode = "editview"; } else { _FlexCache.viewMode = "quickcreate"; } } if ($('.relatedContents', parentEle).length > 0) { _FlexCache.viewMode = "relatedview"; if ($('td[data-field-type]', parentEle).length > 0) { _FlexCache.popUp = false; } else { _FlexCache.popUp = true; } } if (_FlexCache.viewMode === false) { if ($('#view', parentEle).length > 0) { if ($('#view', parentEle).val() == 'Detail') { _FlexCache.viewMode = 'detailview'; } } } return _FlexCache.viewMode; }, _getViewModeVT7: function (parentEle) { if (typeof parentEle == 'undefined') { parentEle = FlexUtils._getDefaultParentEle(); } _FlexCache.viewMode = false; if ($(".detailview-table", parentEle).length > 0) { _FlexCache.viewMode = "detailview"; } else if ($(".summaryView", parentEle).length > 0) { _FlexCache.viewMode = "summaryview"; } else if ($(".recordEditView", parentEle).length > 0) { if ($('.quickCreateContent', parentEle).length == 0) { _FlexCache.viewMode = "editview"; } else { _FlexCache.viewMode = "quickcreate"; } } else if ($(".commentsRelatedContainer", parentEle).length > 0) { _FlexCache.viewMode = "commentview"; } else if ($(".HistoryContainer", parentEle).length > 0) { _FlexCache.viewMode = "historyview"; } else if (jQuery('.relatedContainer', parentEle).find('.relatedModuleName').length > 0) { _FlexCache.viewMode = "relatedview"; } else if (jQuery('.listViewContentHeader', parentEle).length > 0 && typeof _META != 'undefined' && _META.view == 'List') { _FlexCache.viewMode = "listview"; } if (_FlexCache.viewMode === false) { if ($('#view', parentEle).length > 0) { if ($('#view', parentEle).val() == 'Detail') { _FlexCache.viewMode = 'detailview'; } } } return _FlexCache.viewMode; }, getContentMaxHeight: function() { if(FlexUtils.isVT7() == false) { switch(FlexUtils.getCurrentLayout()) { case 'begbie': return jQuery('.mainContainer').height(); default: return jQuery('#leftPanel').height() - 50; } } else { return jQuery('#page').height(); } }, getContentMaxWidth: function() { if(FlexUtils.isVT7() == false) { return jQuery('#rightPanel').width(); } }, hideModalBox: function (content) { if (FlexUtils.isVT7() === true) { app.helper.hideModal(); } else { app.hideModalWindow(); } }, showModalBox: function (content,params) { var aDeferred = jQuery.Deferred(); if (FlexUtils.isVT7() === false) { app.showModalWindow(content, function (data) { aDeferred.resolveWith(window, data); }); } else { if(typeof params == 'undefined') { params = { close:function() { }}; } if(typeof params.close == 'undefined') { params.close = function() { }; } FlexCache.set('__onModalClose', params.close); if(jQuery('.myModal .modal-dialog').length > 0 && jQuery('.modal.in').length > 0) { jQuery('.myModal .modal-dialog').replaceWith(content); aDeferred.resolveWith(window, jQuery('.modal.myModal')[0]); } else { var container = app.helper.showModal(content, { cb: function (data) { aDeferred.resolveWith(window, data); } }); container.off('hidden.bs.modal').on('hidden.bs.modal', function() { params.close(); }); } } return aDeferred.promise(); }, showContentOverlay: function(data, params) { if(FlexUtils.isVT7()) { return app.helper.loadPageContentOverlay(data, params); } else { if($('#overlayPageContent').length == 0) { $('body').append('
\n' + '
\n' + '
\n' + ' \n' + '
'); } var aDeferred = new jQuery.Deferred(); var defaultParams = { backdrop:true, show:true, keyboard: false }; params = jQuery.extend(defaultParams, params); var overlayPageContent = $('#overlayPageContent'); //if(jQuery(".content-area").length && jQuery(".content-area").hasClass('full-width')|| (jQuery('.settingsgroup').length === 0 && jQuery('#modules-menu').length === 0)){ overlayPageContent.addClass('full-width'); //} var alreadyShown = false; if(overlayPageContent.hasClass('in')) { alreadyShown = true; } overlayPageContent.one('shown.bs.modal',function(){ aDeferred.resolve($('#overlayPageContent')); }); overlayPageContent.one('hidden.bs.modal',function(){ overlayPageContent.find('.data').html(''); }); overlayPageContent.find('.data').html(data); //vtUtils.applyFieldElementsView(overlayPageContent); overlayPageContent.modal(params); if(alreadyShown) { aDeferred.resolve(jQuery('#overlayPageContent')); } return aDeferred.promise(); } }, hideContentOverlay: function() { if(FlexUtils.isVT7()) { app.helper.hidePageContentOverlay(); } else { var aDeferred = new jQuery.Deferred(); var overlayPageContent = $('#overlayPageContent'); overlayPageContent.one('hidden.bs.modal', function() { overlayPageContent.find('.data').html(''); aDeferred.resolve(); }); $('#overlayPageContent').modal('hide'); return aDeferred.promise(); } }, setFieldValue: function (fieldName, fieldValue, parentEle) { if (typeof parentEle == 'undefined' || parentEle == null) { parentEle = FlexUtils._getDefaultParentEle(); } var fieldElement = FlexUtils.getFieldElement(fieldName, parentEle, true); switch (fieldElement.prop('tagName')) { case 'INPUT': switch (fieldElement.attr('type')) { case 'text': if (fieldElement.hasClass('dateField')) { if(FlexUtils.isVT7()) { fieldElement.datepicker('update', fieldValue); } else { if(fieldValue !== '') { fieldElement.val(fieldValue).DatePickerSetDate(fieldValue, true); } else { fieldElement.val(fieldValue).DatePickerClear(); } } } else { fieldElement.val(fieldValue); } break; case 'hidden': if (fieldElement.hasClass('sourceField')) { var obj = Vtiger_Edit_Js.getInstance(); var container = fieldElement.closest('td'); if (fieldValue.id != '') { obj.setReferenceFieldValue(container, { id: fieldValue.id, name: fieldValue.label }); } else { $('.clearReferenceSelection', container).trigger('click'); } } break; } break; case 'SELECT': fieldElement.val(fieldValue); if(FlexUtils.isVT7() === false) { if (fieldElement.hasClass('chzn-select')) { fieldElement.trigger('liszt:updated'); } } else { if (fieldElement.hasClass('select2')) { fieldElement.trigger('change.select2'); } } break; } }, layoutDependValue: function (value, defaultValue) { var currentLayout = FlexUtils.getCurrentLayout(); if (typeof value[currentLayout] !== 'undefined') { return value[currentLayout]; } return defaultValue; }, getFieldElement: function (fieldName, parentEle, returnInput) { if (typeof parentEle == 'undefined' || parentEle == null) { parentEle = FlexUtils._getDefaultParentEle(); } if (typeof returnInput == 'undefined') { returnInput = false; } if (typeof fieldName == "object") { return fieldName; } var fieldElement = false; if (FlexUtils.getViewMode(parentEle) == "detailview") { if ($('#' + FlexUtils.getMainModule(parentEle) + '_detailView_fieldValue_' + fieldName, parentEle).length > 0 || $('#Events_detailView_fieldValue_' + fieldName, parentEle).length > 0) { fieldElement = $('#' + FlexUtils.getMainModule(parentEle) + '_detailView_fieldValue_' + fieldName); if (FlexUtils.getMainModule(parentEle) == 'Calendar' && fieldElement.length == 0) { fieldElement = $('#Events_detailView_fieldValue_' + fieldName, parentEle); } } else if ($('#_detailView_fieldValue_' + fieldName, parentEle).length > 0) { fieldElement = $('#_detailView_fieldValue_' + fieldName, parentEle); } } else if (FlexUtils.getViewMode(parentEle) == "summaryview") { var ele_1; if (FlexUtils.isVT7()) { ele_1 = jQuery('[data-name="' + fieldName + '"]', this.parentEle); } else { ele_1 = jQuery('[name="' + fieldName + '"]', this.parentEle); } if (ele_1.length == 0) { return false; /* if(typeof this.summaryFields[fieldName] != 'undefined') { fieldElement = jQuery(jQuery(FlexUtils.getCurrentLayout() == 'vlayout' ? '.summary-table td.fieldValue' : '.summary-table div.mycdivfield')[this.summaryFields[fieldName] - 1]); } else { return false; }*/ } else { fieldElement = $(ele_1[0]).closest(FlexUtils.layoutDependValue({ 'vlayout': 'td', 'v7': '.row', 'begbie': 'div.mycdivfield', 'responsive': '.row', }, 'td')); } } else if (FlexUtils.getViewMode(parentEle) == "editview" || FlexUtils.getViewMode(parentEle) == 'quickcreate') { var ele = $('[name="' + fieldName + '"]', parentEle); if (ele.length == 0) { return false; } if (returnInput == true) { return ele; } fieldElement = $(ele[0]).closest(FlexUtils.layoutDependValue({ 'vlayout': '.fieldValue', 'v7': '.fieldValue', 'begbie': 'div.mycdivfield', 'responsive': '.fieldValue' }, '.fieldValue')); } else if (FlexUtils.getViewMode(parentEle) == 'listview') { if (FlexUtils.listViewFields === false) { FlexUtils.listViewFields = FlexUtils.getListFields(parentEle); } if (FlexUtils.currentLVRow !== null) { if (typeof FlexUtils.listViewFields[fieldName] != 'undefined') { if (FlexUtils.listViewFields[fieldName] >= 0) { fieldElement = $($('td.listViewEntryValue', FlexUtils.currentLVRow)[FlexUtils.listViewFields[fieldName]]); } else { fieldElement = $($('td.listViewEntryValue', FlexUtils.currentLVRow)[Number(FlexUtils.listViewFields[fieldName] + 100) * -1]); } } else { return false; } } else { return false; } } else if (FlexUtils.getViewMode(parentEle) == 'relatedview') { if (FlexUtils.listViewFields === false) { FlexUtils.listViewFields = FlexUtils.getListFields(parentEle); } if ($('td[data-field-type]', FlexUtils.currentLVRow).length > 0) { fieldElement = $($('td[data-field-type]', FlexUtils.currentLVRow)[FlexUtils.listViewFields[fieldName]]); } else { fieldElement = $($('td.listViewEntryValue', FlexUtils.currentLVRow)[FlexUtils.listViewFields[fieldName]]); } } return fieldElement; }, refreshContent: function (viewName, isSettings, params, convertComponents) { if (typeof params === 'undefined') { convertComponents = false; } if (typeof params === 'undefined') { params = {}; } if (typeof isSettings === 'undefined') { isSettings = false; } params.module = ScopeName; params.view = viewName; if (isSettings === true) { params.parent = 'Settings'; } var aDeferred = jQuery.Deferred(); if (FlexUtils.isVT7()) { FlexAjax.request(params).then(function (data) { var target; if(jQuery('.settingsPageDiv').length > 0) { jQuery(".settingsPageDiv").html(data); target = jQuery(".settingsPageDiv"); } else { jQuery(".ContentReplacement").html(data); target = jQuery(".ContentReplacement"); } if(convertComponents === true) { jQuery(".select2", target).select2(); } aDeferred.resolve(); }); } else { FlexAjax.request(params).then(function (data) { jQuery(jQuery(".contentsDiv")[0]).html(data); if(convertComponents === true) { jQuery(jQuery(".contentsDiv")[0]).find('.select2').select2(); } aDeferred.resolve(); }); } return aDeferred.promise(); }, getListFields: function (parentEle) { var cols; if(FlexUtils.isVT7()) { cols = jQuery(".listview-table .listViewContentHeaderValues", parentEle); } else { cols = jQuery(".listViewEntriesTable .listViewHeaderValues", parentEle); } var listViewFields = {}; for (var colIndex in cols) { if (cols.hasOwnProperty(colIndex) && jQuery.isNumeric(colIndex)) { var value = cols[colIndex]; if (jQuery(value).data("columnname") == undefined) { listViewFields[jQuery(value).data("fieldname")] = colIndex; } else { listViewFields[jQuery(value).data("columnname")] = colIndex; } } } return listViewFields; }, loadStyles: function (urls, nocache) { if (typeof urls == 'string') { urls = [urls]; } var aDeferred = jQuery.Deferred(); if (typeof nocache == 'undefined') { nocache = false; // default don't refresh } $.when.apply($, $.map(urls, function (url) { if (nocache) { url += '?_ts=' + new Date().getTime(); // refresh? } return $.get(url, function () { $('', { rel: 'stylesheet', type: 'text/css', 'href': url }).appendTo('head'); }); })).then(function () { aDeferred.resolve(); }); return aDeferred.promise(); }, loadScript: function (url, options) { var aDeferred = jQuery.Deferred(); if (typeof FlexCache.loadedScript == 'undefined') { FlexCache.loadedScript = {}; } if (typeof FlexCache.loadedScript[url] != 'undefined') { aDeferred.resolve(); return aDeferred; } // Allow user to set any option except for dataType, cache, and url options = jQuery.extend(options || {}, { dataType: "script", cache: true, url: url }); // Use $.ajax() since it is more flexible than $.getScript // Return the jqXHR object so we can chain callbacks return jQuery.ajax(options); } };var _FlexCache = { 'FieldCache': {}, 'FieldLoadQueue': {}, 'viewMode': false, 'popUp': false }; if(typeof console != 'undefined' && typeof console.log != 'undefined') { console.log('Initialize FlexUtils ' + ScopeName + " V" + Version); } if (typeof window.FlexStore == 'undefined') { window.FlexStore = {}; } if (typeof window.RedooStore == 'undefined') { window.RedooStore = {}; } window.RedooStore[ScopeName] = window.FlexStore[ScopeName] = { 'Ajax': FlexAjax, 'Utils': FlexUtils, 'Cache': FlexCache, 'Form': FlexForm, 'Translate': FlexTranslate }; if (typeof window.FlexAjax == 'undefined') { /** * @ignore * @param {string} ScopeName * @returns {FlexAjax} */ window.FlexAjax = function (ScopeName) { if (typeof window.FlexStore[ScopeName] != 'undefined') { return window.FlexStore[ScopeName].Ajax; } if (typeof window.RedooStore[ScopeName] != 'undefined') { return window.RedooStore[ScopeName].Ajax; } console.error('FlexAjax ' + ScopeName + ' Scope not found'); }; } if (typeof window.RedooAjax == 'undefined') { window.RedooAjax = window.FlexAjax; } if (typeof window.FlexUtils == 'undefined') { /** * @ignore * @param ScopeName * @returns FlexUtils * @constructor */ window.FlexUtils = function (ScopeName) { if (typeof window.FlexStore[ScopeName] != 'undefined') { return window.FlexStore[ScopeName].Utils; } if (typeof window.RedooStore[ScopeName] != 'undefined') { return window.RedooStore[ScopeName].Utils; } console.error('FlexUtils ' + ScopeName + ' Scope not found'); }; } if (typeof window.RedooUtils == 'undefined') { window.RedooUtils = window.FlexUtils; } if (typeof window.FlexCache == 'undefined') { /** * @ignore * @param ScopeName * @returns FlexCache * @constructor */ window.FlexCache = function (ScopeName) { if (typeof window.RedooStore[ScopeName] != 'undefined') { return window.RedooStore[ScopeName].Cache; } if (typeof window.FlexStore[ScopeName] != 'undefined') { return window.FlexStore[ScopeName].Cache; } console.error('FlexCache ' + ScopeName + ' Scope not found'); }; } if (typeof window.RedooCache == 'undefined') { window.RedooCache = window.FlexCache; } if (typeof window.FlexForm == 'undefined') { /** * @ignore * @param ScopeName * @returns FlexCache * @constructor */ window.FlexForm = function (ScopeName) { if (typeof window.FlexStore[ScopeName] != 'undefined') { return window.FlexStore[ScopeName].Form; } console.error('FlexForm ' + ScopeName + ' Scope not found'); }; } if (typeof window.FlexTranslate == 'undefined') { /** * @ignore * @param ScopeName * @returns FlexCache * @constructor */ window.FlexTranslate = function (ScopeName) { if (typeof window.FlexStore[ScopeName] != 'undefined') { return window.FlexStore[ScopeName].Translate; } console.error('FlexTranslate ' + ScopeName + ' Scope not found'); }; } if (typeof window.FlexEvents == 'undefined') { /** * @ignore * @returns jQuery Eventhandler * @constructor */ window.FlexEvents = $({}); }// Dependency /* jshint ignore:start */ /* JS Signals Released under the MIT license Author: Miller Medeiros Version: 1.0.0 - Build: 268 (2012/11/29 05:48 PM) */ function h(a, b, c, d, e) { this._listener = b; this._isOnce = c; this.context = d; this._signal = a; this._priority = e || 0; } function g(a, b) { if (typeof a !== "function") throw Error("listener is a required param of {fn}() and should be a Function.".replace("{fn}", b)); } function e() { this._bindings = []; this._prevParams = null; var a = this; this.dispatch = function () { e.prototype.dispatch.apply(a, arguments); }; } h.prototype = { active: !0, params: null, execute: function (a) { var b; this.active && this._listener && (a = this.params ? this.params.concat(a) : a, b = this._listener.apply(this.context, a), this._isOnce && this.detach()); return b; }, detach: function () { return this.isBound() ? this._signal.remove(this._listener, this.context) : null; }, isBound: function () { return !!this._signal && !!this._listener; }, isOnce: function () { return this._isOnce; }, getListener: function () { return this._listener; }, getSignal: function () { return this._signal; }, _destroy: function () { delete this._signal; delete this._listener; delete this.context; }, toString: function () { return "[SignalBinding isOnce:" + this._isOnce + ", isBound:" + this.isBound() + ", active:" + this.active + "]"; } }; e.prototype = { VERSION: "1.0.0", memorize: !1, _shouldPropagate: !0, active: !0, _registerListener: function (a, b, c, d) { var e = this._indexOfListener(a, c); if (e !== -1) { if (a = this._bindings[e], a.isOnce() !== b) throw Error("You cannot add" + (b ? "" : "Once") + "() then add" + (!b ? "" : "Once") + "() the same listener without removing the relationship first."); } else a = new h(this, a, b, c, d), this._addBinding(a); this.memorize && this._prevParams && a.execute(this._prevParams); return a; }, _addBinding: function (a) { var b = this._bindings.length; do --b; while (this._bindings[b] && a._priority <= this._bindings[b]._priority); this._bindings.splice(b + 1, 0, a); }, _indexOfListener: function (a, b) { for (var c = this._bindings.length, d; c--;) if (d = this._bindings[c], d._listener === a && d.context === b) return c; return -1; }, has: function (a, b) { return this._indexOfListener(a, b) !== -1; }, add: function (a, b, c) { g(a, "add"); return this._registerListener(a, !1, b, c); }, addOnce: function (a, b, c) { g(a, "addOnce"); return this._registerListener(a, !0, b, c); }, remove: function (a, b) { g(a, "remove"); var c = this._indexOfListener(a, b); c !== -1 && (this._bindings[c]._destroy(), this._bindings.splice(c, 1)); return a; }, removeAll: function () { for (var a = this._bindings.length; a--;) this._bindings[a]._destroy(); this._bindings.length = 0; }, getNumListeners: function () { return this._bindings.length; }, halt: function () { this._shouldPropagate = !1; }, dispatch: function (a) { if (this.active) { var b = Array.prototype.slice.call(arguments), c = this._bindings.length, d; if (this.memorize) this._prevParams = b; if (c) { d = this._bindings.slice(); this._shouldPropagate = !0; do c--; while (d[c] && this._shouldPropagate && d[c].execute(b) !== !1); } } }, forget: function () { this._prevParams = null; }, dispose: function () { this.removeAll(); delete this._bindings; delete this._prevParams; }, toString: function () { return "[Signal active:" + this.active + " numListeners:" + this.getNumListeners() + "]"; } }; var f = e; f.Signal = e; FlexUtils.Signal = f.Signal; /* * jQuery BlockUI; v20141123 * http://jquery.malsup.com/block/ * Copyright (c) 2014 M. Alsup; Dual licensed: MIT/GPL */ (function () { "use strict"; function e(e) { function o(o, i) { var s, h, k = o == window, v = i && void 0 !== i.message ? i.message : void 0; if (i = e.extend({}, FlexUtils.blockUI.defaults, i || {}), !i.ignoreIfBlocked || !e(o).data("blockUI.isBlocked")) { if (i.overlayCSS = e.extend({}, FlexUtils.blockUI.defaults.overlayCSS, i.overlayCSS || {}), s = e.extend({}, FlexUtils.blockUI.defaults.css, i.css || {}), i.onOverlayClick && (i.overlayCSS.cursor = "pointer"), h = e.extend({}, FlexUtils.blockUI.defaults.themedCSS, i.themedCSS || {}), v = void 0 === v ? i.message : v, k && b && t(window, { fadeOut: 0 }), v && "string" != typeof v && (v.parentNode || v.jquery)) { var y = v.jquery ? v[0] : v, m = {}; e(o).data("blockUI.history", m), m.el = y, m.parent = y.parentNode, m.display = y.style.display, m.position = y.style.position, m.parent && m.parent.removeChild(y); } e(o).data("blockUI.onUnblock", i.onUnblock); var g, I, w, U, x = i.baseZ; g = r || i.forceIframe ? e('') : e(''), I = i.theme ? e('') : e(''), i.theme && k ? (U = '") : i.theme ? (U = '") : U = k ? '' : '', w = e(U), v && (i.theme ? (w.css(h), w.addClass("ui-widget-content")) : w.css(s)), i.theme || I.css(i.overlayCSS), I.css("position", k ? "fixed" : "absolute"), (r || i.forceIframe) && g.css("opacity", 0); var C = [g, I, w], S = k ? e("body") : e(o); e.each(C, function () { this.appendTo(S); }), i.theme && i.draggable && e.fn.draggable && w.draggable({ handle: ".ui-dialog-titlebar", cancel: "li" }); var O = f && (!e.support.boxModel || e("object,embed", k ? null : o).length > 0); if (u || O) { if (k && i.allowBodyStretch && e.support.boxModel && e("html,body").css("height", "100%"), (u || !e.support.boxModel) && !k) var E = d(o, "borderTopWidth"), T = d(o, "borderLeftWidth"), M = E ? "(0 - " + E + ")" : 0, B = T ? "(0 - " + T + ")" : 0; e.each(C, function (e, o) { var t = o[0].style; if (t.position = "absolute", 2 > e) k ? t.setExpression("height", "Math.max(document.body.scrollHeight, document.body.offsetHeight) - (jQuery.support.boxModel?0:" + i.quirksmodeOffsetHack + ') + "px"') : t.setExpression("height", 'this.parentNode.offsetHeight + "px"'), k ? t.setExpression("width", 'jQuery.support.boxModel && document.documentElement.clientWidth || document.body.clientWidth + "px"') : t.setExpression("width", 'this.parentNode.offsetWidth + "px"'), B && t.setExpression("left", B), M && t.setExpression("top", M); else if (i.centerY) k && t.setExpression("top", '(document.documentElement.clientHeight || document.body.clientHeight) / 2 - (this.offsetHeight / 2) + (blah = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"'), t.marginTop = 0; else if (!i.centerY && k) { var n = i.css && i.css.top ? parseInt(i.css.top, 10) : 0, s = "((document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + " + n + ') + "px"'; t.setExpression("top", s); } }); } if (v && (i.theme ? w.find(".ui-widget-content").append(v) : w.append(v), (v.jquery || v.nodeType) && e(v).show()), (r || i.forceIframe) && i.showOverlay && g.show(), i.fadeIn) { var j = i.onBlock ? i.onBlock : c, H = i.showOverlay && !v ? j : c, z = v ? j : c; i.showOverlay && I._fadeIn(i.fadeIn, H), v && w._fadeIn(i.fadeIn, z); } else i.showOverlay && I.show(), v && w.show(), i.onBlock && i.onBlock.bind(w)(); if (n(1, o, i), k ? (b = w[0], p = e(i.focusableElements, b), i.focusInput && setTimeout(l, 20)) : a(w[0], i.centerX, i.centerY), i.timeout) { var W = setTimeout(function () { k ? e.unblockUI(i) : e(o).unblock(i); }, i.timeout); e(o).data("blockUI.timeout", W); } } } function t(o, t) { var s, l = o == window, a = e(o), d = a.data("blockUI.history"), c = a.data("blockUI.timeout"); c && (clearTimeout(c), a.removeData("blockUI.timeout")), t = e.extend({}, FlexUtils.blockUI.defaults, t || {}), n(0, o, t), null === t.onUnblock && (t.onUnblock = a.data("blockUI.onUnblock"), a.removeData("blockUI.onUnblock")); var r; r = l ? e("body").children().filter(".blockUI").add("body > .blockUI") : a.find(">.blockUI"), t.cursorReset && (r.length > 1 && (r[1].style.cursor = t.cursorReset), r.length > 2 && (r[2].style.cursor = t.cursorReset)), l && (b = p = null), t.fadeOut ? (s = r.length, r.stop().fadeOut(t.fadeOut, function () { 0 === --s && i(r, d, t, o); })) : i(r, d, t, o); } function i(o, t, i, n) { var s = e(n); if (!s.data("blockUI.isBlocked")) { o.each(function () { this.parentNode && this.parentNode.removeChild(this); }), t && t.el && (t.el.style.display = t.display, t.el.style.position = t.position, t.el.style.cursor = "default", t.parent && t.parent.appendChild(t.el), s.removeData("blockUI.history")), s.data("blockUI.static") && s.css("position", "static"), "function" == typeof i.onUnblock && i.onUnblock(n, i); var l = e(document.body), a = l.width(), d = l[0].style.width; l.width(a - 1).width(a), l[0].style.width = d; } } function n(o, t, i) { var n = t == window, l = e(t); if ((o || (!n || b) && (n || l.data("blockUI.isBlocked"))) && (l.data("blockUI.isBlocked", o), n && i.bindEvents && (!o || i.showOverlay))) { var a = "mousedown mouseup keydown keypress keyup touchstart touchend touchmove"; o ? e(document).bind(a, i, s) : e(document).unbind(a, s); } } function s(o) { if ("keydown" === o.type && o.keyCode && 9 == o.keyCode && b && o.data.constrainTabKey) { var t = p, i = !o.shiftKey && o.target === t[t.length - 1], n = o.shiftKey && o.target === t[0]; if (i || n) return setTimeout(function () { l(n); }, 10), !1; } var s = o.data, a = e(o.target); return a.hasClass("blockOverlay") && s.onOverlayClick && s.onOverlayClick(o), a.parents("div." + s.blockMsgClass).length > 0 ? !0 : 0 === a.parents().children().filter("div.blockUI").length; } function l(e) { if (p) { var o = p[e === !0 ? p.length - 1 : 0]; o && o.focus(); } } function a(e, o, t) { var i = e.parentNode, n = e.style, s = (i.offsetWidth - e.offsetWidth) / 2 - d(i, "borderLeftWidth"), l = (i.offsetHeight - e.offsetHeight) / 2 - d(i, "borderTopWidth"); o && (n.left = s > 0 ? s + "px" : "0"), t && (n.top = l > 0 ? l + "px" : "0"); } function d(o, t) { return parseInt(e.css(o, t), 10) || 0; } e.fn._fadeIn = e.fn.fadeIn; var c = e.noop || function () { }, r = /MSIE/.test(navigator.userAgent), u = /MSIE 6.0/.test(navigator.userAgent) && !/MSIE 8.0/.test(navigator.userAgent); document.documentMode || 0; var f = e.isFunction(document.createElement("div").style.setExpression); FlexUtils.blockUI = function (e) { o(window, e); }; FlexUtils.unblockUI = function (e) { t(window, e); }, e.growlUI = function (o, t, i, n) { var s = e('
'); o && s.append("

" + o + "

"), t && s.append("

" + t + "

"), void 0 === i && (i = 3e3); var l = function (o) { o = o || {}, e.blockUI({ message: s, fadeIn: o.fadeIn !== void 0 ? o.fadeIn : 700, fadeOut: o.fadeOut !== void 0 ? o.fadeOut : 1e3, timeout: o.timeout !== void 0 ? o.timeout : i, centerY: !1, showOverlay: !1, onUnblock: n, css: FlexUtils.blockUI.defaults.growlCSS }); }; l(), s.css("opacity"), s.mouseover(function () { l({ fadeIn: 0, timeout: 3e4 }); var o = e(".blockMsg"); o.stop(), o.fadeTo(300, 1); }).mouseout(function () { e(".blockMsg").fadeOut(1e3); }); }, e.fn.block = function (t) { if (this[0] === window) return e.blockUI(t), this; var i = e.extend({}, FlexUtils.blockUI.defaults, t || {}); return this.each(function () { var o = e(this); i.ignoreIfBlocked && o.data("blockUI.isBlocked") || o.unblock({ fadeOut: 0 }); }), this.each(function () { "static" == e.css(this, "position") && (this.style.position = "relative", e(this).data("blockUI.static", !0)), this.style.zoom = 1, o(this, t); }); }, e.fn.unblock = function (o) { return this[0] === window ? (e.unblockUI(o), this) : this.each(function () { t(this, o); }); }, FlexUtils.blockUI.version = 2.7, FlexUtils.blockUI.defaults = { message: "

Please wait...

", title: null, draggable: !0, theme: !1, css: { padding: 0, margin: 0, width: "30%", top: "40%", left: "35%", textAlign: "center", color: "#000", border: "3px solid #aaa", backgroundColor: "#fff", cursor: "wait" }, themedCSS: { width: "30%", top: "40%", left: "35%" }, overlayCSS: { backgroundColor: "#000", opacity: 0.6, cursor: "wait" }, cursorReset: "default", growlCSS: { width: "350px", top: "10px", left: "", right: "10px", border: "none", padding: "5px", opacity: 0.6, cursor: "default", color: "#fff", backgroundColor: "#000", "-webkit-border-radius": "10px", "-moz-border-radius": "10px", "border-radius": "10px" }, iframeSrc: /^https/i.test(window.location.href || "") ? "javascript:false" : "about:blank", forceIframe: !1, baseZ: 2e3, centerX: !0, centerY: !0, allowBodyStretch: !0, bindEvents: !0, constrainTabKey: !0, fadeIn: 200, fadeOut: 400, timeout: 0, showOverlay: !0, focusInput: !0, focusableElements: ":input:enabled:visible", onBlock: null, onUnblock: null, onOverlayClick: null, quirksmodeOffsetHack: 4, blockMsgClass: "blockMsg", ignoreIfBlocked: !1 }; var b = null, p = []; } "function" == typeof define && define.amd && define.amd.jQuery ? define(["jquery"], e) : e(jQuery); })(); /* jshint ignore:end */ })(jQuery); //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkZsZXhVdGlscy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiJGbGV4VXRpbHMuanMiLCJzb3VyY2VzQ29udGVudCI6W119 ;jQuery(function() { var workflowFrontendActions = new Workflow(); workflowFrontendActions.checkFrontendActions('init'); var listenCommentWidget = false; if(typeof Vtiger_Detail_Js != 'undefined' && jQuery('#recordId').length > 0) { var thisInstance = Vtiger_Detail_Js.getInstance(); var detailContentsHolder = thisInstance.getContentHolder(); RedooUtils('Workflow2').onFieldChange('div#page').add(function() { workflowFrontendActions.checkFrontendActions('edit'); }); /* detailContentsHolder.on(thisInstance.fieldUpdatedEvent, function(e, params){ var fieldName = jQuery(e.target).attr("name"); workflowFrontendActions.checkFrontendActions('edit'); }); */ detailContentsHolder.on(thisInstance.widgetPostLoad, function(e, p) { if(listenCommentWidget == false) return; if(jQuery('.commentContainer', e.target).length > 0) { listenCommentWidget = false; workflowFrontendActions.checkFrontendActions('edit'); } }); detailContentsHolder.on('click','.detailViewSaveComment', function(e){ listenCommentWidget = true; }); } /* // TODO: UPDATE for VT7 if(typeof Vtiger_Header_Js != 'undefined') { var thisInstance = Vtiger_Header_Js.getInstance(); thisInstance.registerQuickCreateCallBack(function(e, b, c) { var workflowFrontendActions = new Workflow(); workflowFrontendActions.checkFrontendActions('both', e.data.result['_recordId']); }); } */ jQuery(window).on('workflow.detail.sidebar.ready', function() { jQuery('#WorkflowDesignerErrorLoaded').hide(); var workflow = new Workflow(); workflowObj = workflow; }).on('workflow.list.sidebar.ready', function() { jQuery('#WorkflowDesignerErrorLoaded').hide(); var workflow = new Workflow(); workflowObj = workflow; }); /* jQuery(window).on('workflow.list.sidebar.ready', function() { console.log('List-Sidebar ready'); }); */ if(typeof Vtiger_Edit_Js != 'undefined') { jQuery('body').on(Vtiger_Edit_Js.referenceSelectionEvent, function (e, b, c, d) { var workflowObj = new Workflow(); workflowObj.setBackgroundMode(true); workflowObj.addExtraEnvironment('source_module', jQuery('[name="module"]').val()) workflowObj.addExtraEnvironment('source_record', jQuery('[name="record"]').val()); workflowObj.execute('WF_REFERENCE', b.record, function() { workflowObj.checkFrontendActions('edit'); }); }); } var viewMode = Workflow2Frontend.getViewMode(jQuery('div#page')); // if (viewMode == 'detailview' || viewMode == 'summaryview') { Workflow2Frontend.TopbuttonHandler(jQuery('div#page')); // } if (jQuery('#module', jQuery('div#page')).length > 0) { if (jQuery('#module', jQuery('div#page')).val() == 'Campaigns' && typeof Campaigns_Detail_Js != 'undefined') { // Enable ViewCheck if ( typeof WFDFrontendConfig !== 'undefined' && typeof WFDFrontendConfig['relatedbtn'] !== 'undefined' ) { var viewMode = Workflow2Frontend.getViewMode(jQuery('div#page')); if (viewMode == 'relatedview') { Workflow2Frontend.RelatedListHandler(jQuery('div#page')); } jQuery(document).on('postajaxready', function (e) { var viewMode = Workflow2Frontend.getViewMode(jQuery('div#page')); if (viewMode == 'relatedview') { Workflow2Frontend.RelatedListHandler(jQuery('div#page')); } }); if (jQuery('#module', jQuery('div#page')).length > 0) { if (jQuery('#module', jQuery('div#page')).val() == 'Campaigns' && typeof Campaigns_Detail_Js != 'undefined') { thisInstance = Campaigns_Detail_Js.getInstance(); var detailContentsHolder = thisInstance.getContentHolder(); var detailContainer = detailContentsHolder.closest('div.detailViewInfo'); jQuery('.related', detailContainer).on('click', 'li', function (e, urlAttributes) { window.setTimeout(function () { var viewMode = Workflow2Frontend.getViewMode(jQuery('div#page')); if (viewMode == 'relatedview') { Workflow2Frontend.RelatedListHandler(jQuery('div#page')); } }, 1000); }); } } } } } RedooUtils('Workflow2').onRelatedListChange().add(function() { var objWorkflow = new Workflow(); objWorkflow.showInlineButtons(); }); jQuery('.quickCreateModule, .addButton[data-url*="QuickCreate"]').on('click', function __check() { if(jQuery('.quickCreateContent','.modelContainer').length == 0) { window.setTimeout(__check, 200); } else { jQuery('#globalmodal form[name="QuickCreate"] .btn[type="submit"]').on('click', function() { WorkflowExecution }); } }); });;jQuery('#WorkflowDesignerErrorLoaded').hide(); var WFUserIsAdmin; window.Workflow = function () { this.crmid = 0; this._allowParallel = 0; this._workflowid = null; this._workflowTrigger = null; this._currentExecId = null; this.ExecutionCallback = null; this._requestValues = {}; this._requestValuesKey = null; this._backgroundMode = false; this._extraEnvironment = {}; this._ListViewMode = false; /** * * @param workflow WorkflowID or Trigger * @param crmid Record to use */ this.execute = function(workflow, crmid, callback, ignoreViewMode) { if(typeof ignoreViewMode === 'undefined') ignoreViewMode = false; this.crmid = crmid; if(FlexUtils('Workflow2').getViewMode() == 'listview' && crmid == 0 && ignoreViewMode === false) { runListViewWorkflow(workflow); } else { if (jQuery.isNumeric(workflow)) { this._executeById(workflow, callback); } else { this._executeByTrigger(workflow, callback); } } }; this.setListView = function(value) { this._ListViewMode = (value == true); }; this.checkFrontendActions = function(step, crmid) { WorkflowRecordMessages = []; if(typeof crmid == 'undefined') { var crmid = 0; var recordId; if (Workflow2Frontend.getViewMode(jQuery('div#page')) == 'detailview' || Workflow2Frontend.getViewMode(jQuery('div#page')) == 'summaryview') { recordId = $('#recordId', jQuery('div#page')).val(); } else if (Workflow2Frontend.getViewMode(jQuery('div#page')) == 'quickcreate') { recordId = 0; } else if (Workflow2Frontend.getViewMode(jQuery('div#page')) == 'editview') { recordId = jQuery('[name="record"]').val(); } else if (Workflow2Frontend.getViewMode(jQuery('div#page')) == 'listview') { recordId = 0; } else if (Workflow2Frontend.getViewMode(jQuery('div#page')) == 'relatedview') { recordId = 0; } else if (Workflow2Frontend.getViewMode(jQuery('div#page')) == 'composemail') { var ids = jQuery('[name="selected_ids"]').val(); recordId = jQuery.parseJSON(ids)[0]; } else { recordId = 0; } } else { recordId = Number(crmid); } if(recordId == 0 || typeof recordId == 'undefined') { if( $('#recordId').length > 0) { var recordId = $('#recordId').val(); } } /*if(typeof recordId == "undefined" || recordId == 0) { return; }*/ if(typeof _META != 'undefined') { var moduleName = _META.module; } else { var moduleName = RedooUtils('Workflow2').getMainModule('div#page'); } RedooAjax('Workflow2').postAction('CheckFrontendActions', {'crmid':recordId, 'step':step, src_module: moduleName}, 'json').then(jQuery.proxy(function(response) { if(response.length == 0) return; if(typeof response.buttons != 'undefined' && response.buttons.length > 0) { this.generateInlineButtons(response.buttons); } if(typeof response.detailviewtop != 'undefined' && response.detailviewtop.length > 0) { this.generateDetailViewTopButtons(response.detailviewtop); } if(typeof response['btn-list'] == 'object') { this.generateBtnTrigger(response['btn-list']); } if(jQuery('.wfdGeneralButton').length == 0) { if(typeof _META != 'undefined') { var moduleName = _META.module; } else { var moduleName = RedooUtils('Workflow2').getMainModule(parentEle); } var recordId = jQuery('[name="record_id"]').val(); if(response.show_general_button != false) { if(jQuery('.detailview-header-block').length > 0) { var TopButton = ''; jQuery('.detailViewButtoncontainer .btn-toolbar .btn-group:first-of-type').prepend('' + TopButton + ''); } else if(jQuery('#appnav .nav ').length > 0){ var TopButton = ''; jQuery('#appnav .nav ').prepend('
  • ' + TopButton + '
  • '); } else { //resposnvie var TopButton = ''; jQuery('div#appnav').find('div.btn-group').prepend(TopButton); } /*if (jQuery('.WFDetailViewGroupTop').length > 0) { jQuery('.WFDetailViewGroupTop').prepend(TopButton); } else { jQuery('.detailViewButtoncontainer .btn-toolbar ').prepend('
    ' + TopButton + '
    '); }*/ jQuery('.wfdGeneralButton').on('click', function (e) { var module = jQuery(e.currentTarget).data('module'); var crmid = jQuery(e.currentTarget).data('crmid'); var view = jQuery(e.currentTarget).data('view'); Workflow2Frontend.showWorkflowPopup(module, crmid, view); }); } } WFUserIsAdmin = response.is_admin == true ? true : false; jQuery.each(response.actions, function(index, value) { switch(value.type) { case 'redirect': if(value.configuration.url == '_internal_reload') { window.location.reload(); return false; } if(value.configuration.target == "same") { window.location.href = value.configuration.url; return false; } else { window.open(value.configuration.url); return; } break; case 'confirmation': if(jQuery('.confirmation_container').length == 0) { var html = '
    '; jQuery('div.details').before(html); } var config = value.configuration; var bgColor = config.backgroundcolor; //if(bgColor == '') { bgColor = '#ffffff'; //} /* if(config.border != '') { var borderCSS = 'border:2px solid ' + config.border + ';border-top:0;'; } else { var borderCSS = ''; }*/ var borderCSS = ''; var html = '
    '; html += '
    ' + config.infomessage + '
    ' + config.text_eingestellt +': ' + config.first_name + ' ' + config.last_name + ' / ' + config.timestamp + '
    '; html += '
    '; if(config.buttons.btn_accept != '') { html += '' + config.buttons.btn_accept + ''; } if(value.configuration.buttons.btn_rework != '') { html += '' + config.buttons.btn_rework + ''; } if(value.configuration.buttons.btn_decline != '') { html += '' + config.buttons.btn_decline + ''; } jQuery('.confirmation_container').append(html); jQuery('.confirmation_container').slideDown(); break; case 'requestValues': continueWorkflow(value.configuration.execid, value.configuration.crmid, value.configuration.blockid); return false; break; case 'message': WorkflowRecordMessages.push(value.configuration); break; } }); this.parseMessages(); }, this)); }; this.generateBtnTrigger = function(buttons) { jQuery('.wfdButtonHeaderbutton').remove(); if(typeof buttons.headerbtn != 'undefined') { var html = ''; jQuery.each(buttons.headerbtn, $.proxy(function(index, value) { var rand = Math.floor(Math.random() * 9999999) + 1000000; if(value.color != '') { var cssStyle = 'color:' + value.textcolor + ';background-color: ' + value.color + ';background-image:none;'; } else { var cssStyle = '' } html += '
  • '; }, this)); jQuery('#appnav .nav ').prepend('' + html + ''); jQuery('.wfdButtonHeaderbutton').on('click', function(e) { var target = jQuery(e.currentTarget); var workflowObj = new Workflow(); if(FlexUtils('Workflow2').getViewMode() == 'listview') { workflowObj.execute(target.data('id'), 0); } else { workflowObj.execute(target.data('id'), RedooUtils('Workflow2').getRecordIds()[0]); } }); } }; this.generateDetailViewTopButtons = function(buttons) { jQuery('.WFDetailViewGroupTop').remove(); var html = ''; jQuery.each(buttons, function(index, value) { var rand = Math.floor(Math.random() * 9999999) + 1000000; if(value.color != '') { var cssStyle = 'color:' + value.textcolor + ';background-color: ' + value.color + ';background-image:none;'; } else { var cssStyle = '' } html += ''; }); jQuery('.detailViewButtoncontainer .btn-toolbar ').prepend('
    ' + html + '
    '); jQuery('.wfdButtonTopbutton').on('click', function() { var workflow = new Workflow(); workflow.execute(jQuery(this).data('id'), jQuery('#recordId').val()); }); }; this.generateInlineButtons = function(buttons) { var final = {}; jQuery.each(buttons, jQuery.proxy(function (index, button) { jQuery.each(button.config.field, jQuery.proxy(function (fieldIndex, fieldName) { if (typeof final[fieldName] == 'undefined') { final[fieldName] = { config: button.config, buttons: [] }; } final[fieldName]['buttons'].push(button); }, this)); // }, this)); RedooCache('Workflow2').set('currentInlineButtons', final); this.showInlineButtons(); }; this.showInlineButtons = function() { jQuery('.WFInlineButton').remove(); jQuery('.WFDInlineDropdown').remove(); jQuery.each(RedooCache('Workflow2').get('currentInlineButtons', []), jQuery.proxy(function(fieldName, fields) { var field = RedooUtils('Workflow2').getFieldElement(fieldName); if(field != false) { var dropdownHTML = ''; var buttonHTML = ''; jQuery.each(fields['buttons'], jQuery.proxy(function (index, button) { if(typeof button.config.dropdown == 'undefined' || button.config.dropdown == '0') { // Buttons shouldn't arranged as DropDown var existingButtons = jQuery('.WFInlineButton[data-wfid="' + button.workflow_id + '"][data-frontendid="' + button.frontend_id + '"][data-fieldname="' + fieldName + '"]'); if (existingButtons.length > 0) { jQuery(existingButtons).show().removeClass('tmpbtn'); } else { buttonHTML = ''; } } else { // Buttons shouldn't arranged as DropDown //jQuery.each(fields['buttons'], jQuery.proxy(function (index, button) { dropdownHTML += ''; //}, this)); } }, this)); jQuery('.WFDInlineDropdown', field).remove(); if(RedooUtils('Workflow2').getViewMode() == 'detailview') { if(dropdownHTML != '') { var finalHTML = '
    '; field.append(finalHTML); } if(buttonHTML != '') { field.append(buttonHTML); } } else if(RedooUtils('Workflow2').getViewMode() == 'summaryview') { if(dropdownHTML != '') { var finalHTML = '
    '; field.append(finalHTML); } console.log(buttonHTML, field); if(buttonHTML != '') { field.append(buttonHTML); } } } }, this)); jQuery('.WFInlineButton.tmpbtn').hide(); jQuery('.WFInlineButton, .WFDInlineDropdown li a').off('click').on('click', function(e) { e.stopPropagation(); var wfId = jQuery(e.currentTarget).data('wfid'); var workflow = new Workflow(); workflow.execute(wfId, RedooUtils('Workflow2').getRecordIds()[0], function() {}); }); jQuery("div.WFDInlineDropdown").on('click', function(e) { e.stopPropagation(); jQuery(".dropdown-toggle", e.currentTarget).dropdown('toggle'); }); }; this.setBackgroundMode = function(value) { this._backgroundMode = value; }; this.setRequestedData = function(values, relatedKey) { this._requestValues = values; this._requestValuesKey = relatedKey; }; this.allowParallel = function(value) { this._allowParallel = value?1:0; }; this.addExtraEnvironment = function(key, value) { this._extraEnvironment[key] = value; }; this._executeByTrigger = function(triggerName, ExecutionCallback) { var Execution = new WorkflowExecution(); Execution.init(this.crmid); Execution.setRequestedData(this._requestValues, this._requestValuesKey); if(this._allowParallel == 1) { Execution.allowParallel(); } Execution.enableRedirection(ENABLEredirectionOrReloadAfterFinish); if(typeof ExecutionCallback != 'undefined') { this._workflowTrigger = triggerName; } if(typeof ExecutionCallback != 'undefined') { Execution.setCallback(ExecutionCallback); } jQuery.each(this._extraEnvironment, function(index, value) { Execution.addEnvironment(index, value); }); Execution.setBackgroundMode(this._backgroundMode); Execution.setWorkflowByTrigger(triggerName); Execution.execute(); }; this._executeById = function(workflow_id, ExecutionCallback) { var Execution = new WorkflowExecution(); Execution.init(this.crmid); Execution.setRequestedData(this._requestValues, this._requestValuesKey); if(this._allowParallel == 1) { Execution.allowParallel(); } Execution.enableRedirection(ENABLEredirectionOrReloadAfterFinish); if(typeof ExecutionCallback != 'undefined') { this._workflowid = workflow_id; } if(typeof ExecutionCallback != 'undefined') { Execution.setCallback(ExecutionCallback); } jQuery.each(this._extraEnvironment, function(index, value) { Execution.addEnvironment(index, value); }); Execution.setListViewMode(this._ListViewMode); Execution.setBackgroundMode(this._backgroundMode); Execution.setWorkflowById(workflow_id); Execution.execute(); }; /** ExecuteById **/ this._submitStartfields = function(fields, urlStr) { app.hideModalWindow(); RedooUtils('Workflow2').blockUI({ 'message' : 'Workflow is executing', // disable if you want key and mouse events to be enable for content that is blocked (fix for select2 search box) bindEvents: false, //Fix for overlay opacity issue in FF/Linux applyPlatformOpacityRules : false }); jQuery.post("index.php", { "module" : "Workflow2", "action" : "Execute", "file" : "ajaxExecuteWorkflow", "crmid" : this.crmid, "workflow" : this._workflowid, allow_parallel: this._allowParallel, "startfields": fields }, jQuery.proxy(function(response) { RedooUtils('Workflow2').unblockUI(); try { response = jQuery.parseJSON(response); } catch (e) { console.log(response); return; } if(response["result"] == "ok") { if(ENABLEredirectionOrReloadAfterFinish) { window.location.reload(); } } else { console.log(response); } }, this) ); } this.closeForceNotification = function(messageId) { jQuery.post('index.php?module=Workflow2&action=MessageClose', { messageId:messageId, force: 1 }); } this.parseMessages = function() { if(typeof WorkflowRecordMessages != 'object' || WorkflowRecordMessages.length == 0) { return; } RedooUtils('Workflow2').loadScript('modules/Workflow2/views/resources/js/noty/jquery.noty.packaged.min.js').then(jQuery.proxy(function() { jQuery.each(WorkflowRecordMessages, function(index, value) { if(typeof WFDvisibleMessages['workflowMessage' + value['id']] != 'undefined' && WFDvisibleMessages['workflowMessage' + value['id']] == true) { return; } var type = 'alert'; switch(value.type) { case 'success': type = 'success'; break; case 'info': type = 'alert'; break; case 'error': type = 'error'; break; } value.message = '' + value.subject + "
    " + value.message; if(value.show_until != '') { value.message += '
    ' +value.show_until + ''; } if(WFUserIsAdmin == true) { value.message += '  (Remove Message)'; } WFDvisibleMessages['workflowMessage' + value['id']] = true; if(value.position != -1) { noty({ text: value.message, id: 'workflowMessage' + value['id'], type: value.type, timeout: false, 'layout': value.position, 'messageId': value.id, callback: { "afterClose": function () { WFDvisibleMessages['workflowMessage' + this.options.messageId] = false; jQuery.post('index.php?module=Workflow2&action=MessageClose', {messageId: this.options.messageId}); } } }); } }); }), this); } this.loadCachedScript = function( url, options ) { // Allow user to set any option except for dataType, cache, and url options = jQuery.extend( options || {}, { dataType: "script", cache: true, url: url }); // Use $.ajax() since it is more flexible than $.getScript // Return the jqXHR object so we can chain callbacks return jQuery.ajax( options ); }; } ;var WorkflowRunning = false; var Workflow2Frontend = { viewMode:false, runCampaignRealationWF:function(workflow_id) { runListViewWorkflow(workflow_id); }, showWorkflowPopup:function(MainModule, RecordIds, MainView) { //var MainView = RedooUtils('Workflow2').getViewMode(parentEle); // var RecordIds = RedooUtils('Workflow2').getRecordIds(parentEle); RedooAjax('Workflow2').postView('WorkflowPopup', { 'target_module': MainModule, 'target_view': MainView, 'target_record': RecordIds }).then(function(response) { RedooUtils('Workflow2').showModalBox(response).then(function(data) { jQuery('[type="submit"]', data).on('click', function(e) { if(jQuery('#workflow2_workflowid').val() == '' || jQuery('#workflow2_workflowid').val() == null) { e.preventDefault(); e.stopPropagation(); return false; } RedooUtils('Workflow2').hideModalBox(); var crmid = jQuery('.WorkflowPopupCRMID', data).val(); var workflow = new Workflow(); workflow.execute(jQuery('#workflow2_workflowid').val() , crmid); }); }); }); }, TopbuttonHandler:function(parentEle) { var MainModule = RedooUtils('Workflow2').getMainModule(parentEle); var CurrentViewMode = FlexUtils('Workflow2').getViewMode(); if ( typeof WFDFrontendConfig !== 'undefined' && typeof WFDFrontendConfig['morebtn'] !== 'undefined' && typeof WFDFrontendConfig['morebtn'][MainModule] !== 'undefined' ) { if(jQuery('.detailViewButtoncontainer ul.dropdown-menu').hasClass('WFDAddHandler') === false) { var html = ''; jQuery.each(WFDFrontendConfig['morebtn'][MainModule], function(index, value) { var rand = Math.floor(Math.random() * 9999999) + 1000000; html += '
  • ' + value.label + '
  • '; }); jQuery('.detailViewButtoncontainer ul.dropdown-menu').addClass('WFDAddHandler'); jQuery('.detailViewButtoncontainer ul.dropdown-menu').append(html); jQuery('.wfdButtonMoreBtn a').on('click', function(e) { e.preventDefault(); return false; }); jQuery('.wfdButtonMoreBtn').on('click', function() { var workflow = new Workflow(); workflow.execute(jQuery(this).data('id'), jQuery('#recordId').val()); }); } } if ( CurrentViewMode == 'listview' && typeof WFDFrontendConfig !== 'undefined' && typeof WFDFrontendConfig['listviewbtn'] !== 'undefined' && typeof WFDFrontendConfig['listviewbtn'][MainModule] !== 'undefined' ) { if(jQuery('.detailViewButtoncontainer').hasClass('WFDAddHandler') === false) { var html = ''; jQuery.each(WFDFrontendConfig['listviewbtn'][MainModule], function(index, value) { var rand = Math.floor(Math.random() * 9999999) + 1000000; if(value.color != '') { var cssStyle = 'color:' + value.textcolor + ';background-color: ' + value.color + ';background-image:none;'; } else { var cssStyle = '' } html += ''; }); jQuery('.detailViewButtoncontainer').addClass('WFDAddHandler'); jQuery('.listViewActionsContainer').append(html); jQuery('.wfdButtonTopbutton').on('click', function(e) { e.preventDefault(); var workflow = new Workflow(); workflow.execute(jQuery(this).data('id'), 0); }); } } }, RelatedListHandler:function(parentEle) { if(typeof WFDFrontendConfig !== 'undefined' && typeof WFDFrontendConfig['relatedbtn'] !== 'undefined') { var MainModule = Workflow2Frontend.getMainModule(parentEle); if(typeof WFDFrontendConfig['relatedbtn'][MainModule] !== 'undefined') { var btnHtml = ''; for(var index in WFDFrontendConfig['relatedbtn'][MainModule] ) { if (WFDFrontendConfig['relatedbtn'][MainModule].hasOwnProperty(index) && jQuery.isNumeric(index)) { var value = WFDFrontendConfig['relatedbtn'][MainModule][index]; btnHtml += ''; } } var parent = jQuery(jQuery('div.relatedHeader .btn')[0]).closest('.btn-group').parent(); parent.append('
    ' + btnHtml + '
    '); } } }, getMainModule:function (parentEle) { var viewMode = Workflow2Frontend.getViewMode(parentEle); if (viewMode == 'detailview' || viewMode == 'summaryview') { return jQuery('#module', parentEle).val(); } else if (viewMode == 'editview' || viewMode == 'quickcreate') { return jQuery('[name="module"]', parentEle).val(); } else if (viewMode == 'listview') { return jQuery('#module', parentEle).val(); } else if (viewMode == 'relatedview') { if (jQuery('[name="relatedModuleName"]', parentEle).length > 0) { return jQuery('[name="relatedModuleName"]', parentEle).val(); } if (jQuery('#module', parentEle).length > 0) { return jQuery('#module', parentEle).val(); } } return ''; }, getViewMode: function(parentEle, obj) { var viewEle = jQuery("#view", parentEle); if(viewEle.length > 0 && viewEle[0].value == "List") { Workflow2Frontend.viewMode = "listview"; } if(jQuery(".detailview-table", parentEle).length > 0) { Workflow2Frontend.viewMode = "detailview"; } else if(jQuery(".summary-table", parentEle).length > 0) { Workflow2Frontend.viewMode = "summaryview"; } else if(jQuery(".recordEditView", parentEle).length > 0) { if(jQuery('.quickCreateContent', parentEle).length == 0) { Workflow2Frontend.viewMode = "editview"; } else { Workflow2Frontend.viewMode = "quickcreate"; } } if(jQuery('.relatedContents', parentEle).length > 0) { Workflow2Frontend.viewMode = "relatedview"; if(jQuery('td[data-field-type]', parentEle).length > 0) { Workflow2Frontend.popUp = false; } else { Workflow2Frontend.popUp = true; } } if(Workflow2Frontend.viewMode === false) { if(jQuery('#view', parentEle).length > 0) { if(jQuery('#view', parentEle).val() == 'Detail') { Workflow2Frontend.viewMode = 'detailview'; } } } return Workflow2Frontend.viewMode; } };;window.WorkflowExecution = function() { this._crmid = null; this._execId = null; this._workflowId = null; this._workflowTrigger = null; this._execId = null; this._blockID = null; this._requestValues = {}; this._requestValuesKey = null; this._callback = null; this._allowParallel = false; this._allowRedirection = true; this._backgroundMode = false; this._extraEnvironment = {}; this._ListViewMode = false; this._FrontendType = undefined; this.setFrontendType = function(type) { this._FrontendType = type; }; this.setEnvironment = function(envVars) { this._extraEnvironment = envVars; }; this.addEnvironment = function(key, value) { this._extraEnvironment[key] = value; }; this.setRequestedData = function(values, relatedKey) { this._requestValues = values; this._requestValuesKey = relatedKey; }; this.allowParallel = function() { this._allowParallel = true; }; this.init = function(crmid) { this._crmid = crmid; }; this.setWorkflowByTrigger = function(triggerName) { this._workflowTrigger = triggerName; this._workflowId = undefined; }; this.setWorkflowById = function(workflow_id) { this._workflowId = workflow_id; this._workflowTrigger = undefined; }; this.setBackgroundMode = function(value) { this._backgroundMode = value; }; this.setCallback = function(callback) { this._callback = callback; }; this.setListViewMode = function(listView) { this._ListViewMode = listView == true; }; this.enableRedirection = function(value) { this._allowRedirection = value ? true : false; }; this._handleDownloads = function(response) { var html = '

    ' + response.download_text + '

    '; html += ''; bootbox.dialog({ message:html, closeButton:true, buttons: { ok: { label: 'Ok', className: 'btn-success' } } }); }; this._handleRedirection = function(response) { if(this._allowRedirection === true) { if(response["redirection_target"] == "same") { window.location.href = response["redirection"]; return true; } else { window.open(response["redirection"]); return true; } } return false; }; this.setContinue = function(execID, blockID) { this._execId = execID; this._blockID = blockID; }; this.executeWithForm = function(form) { if(typeof jQuery(form).ajaxSubmit == 'undefined') { console.error('jquery.forms plugin requuired!'); return; } WorkflowRunning = true; RedooUtils('Workflow2').blockUI({ message: '


    Please wait ...

    ' }); jQuery(form).ajaxSubmit({ 'url' : "index.php", 'type': 'post', data: { "module" : "Workflow2", "action" : "ExecuteNew", 'crmid' : this._crmid, 'workflowID' : this._workflowId === null ? undefined : this._workflowId, 'allowParallel': this._allowParallel ? 1 : 0, 'continueExecId': this._execId === null ? undefined : this._execId, 'continueBlockId': this._blockID === null ? undefined : this._blockID, 'requestValues': this._requestValues === null ? undefined : this._requestValues, 'requestValuesKey': this._requestValuesKey === null ? undefined : this._requestValuesKey, 'extraEnvironment': this._extraEnvironment, 'listviewmode': this._ListViewMode ? 1 : 0 }, success:jQuery.proxy(this.executionResponse, this), error:jQuery.proxy(this.executionResponse, this) }); }; this.frontendWorkflows = function(workflowIDs, record) { var dfd = jQuery.Deferred(); RedooAjax('Workflow2').post('index.php', { 'module': 'Workflow2', 'action': 'FrontendWorkflowExec', 'workflow_ids': workflowIDs, 'record': record, 'dataType': 'json' }).then($.proxy(function(data) { //this.executionResponse(data); dfd.resolve( data ); }, this)); return dfd.promise(); }; this.execute = function() { if(this._backgroundMode === false) { RedooUtils('Workflow2').blockUI({message: '


    Please wait ...

    '}); } WorkflowRunning = true; jQuery.post("index.php", { "module" : "Workflow2", "action" : "ExecuteNew", //XDEBUG_PROFILE:1, 'frontendtype': this._FrontendType, 'crmid' : this._crmid, 'workflowID' : this._workflowId === null ? undefined : this._workflowId, 'triggerName' : this._workflowTrigger === null ? undefined : this._workflowTrigger, 'allowParallel': this._allowParallel ? 1 : 0, 'continueExecId': this._execId === null ? undefined : this._execId, 'continueBlockId': this._blockID === null ? undefined : this._blockID, 'requestValues': this._requestValues === null ? undefined : this._requestValues, 'requestValuesKey': this._requestValuesKey === null ? undefined : this._requestValuesKey, 'extraEnvironment': this._extraEnvironment, 'listviewmode': this._ListViewMode ? 1 : 0 } ).always(jQuery.proxy(this.executionResponse, this)); }; this.executionResponse = function(responseTMP) { if(typeof responseTMP == 'object' && typeof responseTMP.responseText != 'undefined') { responseTMP = responseTMP.responseText; } if(responseTMP.indexOf('Invalid request') !== -1) { alert('You did not do any action in VtigerCRM since a long time. The page needs to be reloaded, before you could use the Workflow Designer.'); window.location.reload(); return; } if(this._backgroundMode === false) { RedooUtils('Workflow2').unblockUI(); } WorkflowRunning = false; var response; try { response = jQuery.parseJSON(responseTMP); } catch(exp) { console.log(exp); console.log(responseTMP); return; } if(response !== null && response["result"] == "ready") { if(typeof this._callback == 'function') { var retVal = this._callback.call(this, response); if(typeof retVal != 'undefined' && retVal === false) { return; } } if(typeof response["redirection"] != "undefined" && typeof response["downloads"] != "undefined") { this._handleDownloads(response); this._handleRedirection(response); return; } else if(typeof response["redirection"] != "undefined") { this._handleRedirection(response); return; } else if(typeof response["downloads"] != "undefined") { this._handleDownloads(response); return; } if(this._allowRedirection === true && this._backgroundMode === false && typeof response["prevent_reload"] === 'undefined') { window.location.reload(); } } else if(response !== null && response["result"] == "asktocontinue") { jQuery('body').append(''); bootbox.confirm({ message: response['question'], buttons: { confirm: { label: response['LBL_YES'], className: 'btn-success' }, cancel: { label: response['LBL_NO'], className: 'btn-danger' } }, callback: function (result) { if(result === true) { FlexUtils('Workflow2').hideModalBox(); var Execution = new WorkflowExecution(); Execution.setContinue(response['execid'], response['blockid']); Execution.execute(); } } }); } else if(response !== null && response["result"] == "requestForm") { this._requestValuesKey = response['fields_key']; this._execId = response['execId']; if(typeof RequestValuesForm2 == 'undefined') { jQuery.getScript('modules/Workflow2/views/resources/js/RequestValuesForm2.js', jQuery.proxy(function() { var requestForm = new RequestValuesForm2(response['fields_key'], response); requestForm.setCallback(jQuery.proxy(this.submitRequestFields, this)); requestForm.show(response.html, response.script); //response, this._requestValuesKey, response['request_message'], , response['stoppable'], response['pausable'], response['options']); }, this)); } else { var requestForm = new RequestValuesForm2(response['fields_key'], response); requestForm.setCallback(jQuery.proxy(this.submitRequestFields, this)); requestForm.show(response.html, response.script); } } else if(response !== null && response["result"] == "reqvalues") { this._requestValuesKey = response['fields_key']; this._execId = response['execId']; if(typeof RequestValuesForm == 'undefined') { jQuery.getScript('modules/Workflow2/views/resources/js/RequestValuesForm.js', jQuery.proxy(function() { var requestForm = new RequestValuesForm(); requestForm.show(response, this._requestValuesKey, response['request_message'], jQuery.proxy(this.submitRequestFields, this), response['stoppable'], response['pausable'], response['options']); }, this)); } else { var requestForm = new RequestValuesForm(); requestForm.show(response, this._requestValuesKey, response['request_message'], jQuery.proxy(this.submitRequestFields, this), response['stoppable'], response['pausable'], response['options']); } } else if(response !== null && response["result"] == "error") { console.log('Errorcode: ' + response.errorcode); app.showModalWindow('
    ' + response.message + '
    '); } else { console.log(response); } }; this.submitRequestFields = function(key, values, value2, form) { this._requestValues = {}; this._requestValuesKey = key; var html = ''; jQuery.each(values, jQuery.proxy(function(index, value) { if(value.name.substr(-2) != '[]') { this._requestValues[value.name] = value.value; } else { var varName = value.name.substr(0, value.name.length - 2); if(typeof this._requestValues[varName] === 'undefined') { this._requestValues[varName] = []; } this._requestValues[varName].push(value.value); } }, this)); if(jQuery('[type="file"]', form).length > 0) { var html = '
    '; jQuery('input, select, button', form).attr('disabled', 'disabled'); jQuery('[type="file"]', form).removeAttr('disabled').each(jQuery.proxy(function(index, ele) { var name = jQuery(ele).attr('name'); jQuery(ele).attr('name', 'fileUpload[' + name + ']'); this._requestValues[name] = jQuery(ele).data('filestoreid'); }, this)); html += '
    '; this.executeWithForm(form); return; } this.execute(); } }; //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZyb250ZW5kLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiJmcm9udGVuZC5qcyIsInNvdXJjZXNDb250ZW50IjpbXX0= }()) /** HANDLER START **/ var WFDFrontendConfig = []; var WFDLanguage = {"These Workflow requests some values":"These Workflow requests some values","Execute Workflow":"Execute Workflow","enter values later":"enter values later","stop Workflow":"stop Workflow","Executing Workflow ...":"Executing Workflow ..."}; /* Render take 0.01s */ /** MODULELANGUAGESTRINGS START **/ if(typeof FLEXMODLANGUAGE == "undefined") var FLEXMODLANGUAGE = {}; if(typeof FLEXLANG == "undefined") var FLEXLANG = function(key, module) { var lang = app.getUserLanguage(); if(typeof FLEXMODLANGUAGE[module] != "undefined" && typeof FLEXMODLANGUAGE[module][lang] != "undefined" && typeof FLEXMODLANGUAGE[module][lang][key] != "undefined") { return FLEXMODLANGUAGE[module][lang][key]; } return key; }; FLEXMODLANGUAGE["Workflow2"] = {"en_us":{"LBL_GET_KNOWN_ENVVARS":"Recognized environment variables","LBL_DUPLICATE_BLOCK":"duplicate Block","LBL_DELETE_BLOCK":"remove Block","LBL_CHANGE_BLOCKCOLOR":"change color","LBL_REMOVE_BLOCKCOLOR":"remove color","HEAD_USAGE_OF_THIS_CONNECTION":"Usage of this path","LBL_DATE":"Date","TXT_CHOOSE_VALID_FIELD":"choose a field","LBL_MANAGE_SIDEBARTOOGLE":"Workflow Designer process your input","LBL_CREATE_TYPE":"create new block manually","LBL_SAVED_SUCCESSFULLY":"Successfully saved","page":"Page","select all of this type":"Select this type","LBL_PASTE_BLOCK":"paste blocks","LBL_COPY_BLOCK":"copy blocks","Reset value":"Reset value","Empty field":"Empty field","Reference Field":"Reference Field","Available fields":"Available fields","Quantity":"Quantity","Unit Price":"Unit Price","Product Description":"Description","Product":"Product","Export Blocks by Text":"Export Blocks by Text","Import Blocks by Text":"Import Blocks by Text","Expression-Errors found":"Expression-Errors found","Name of new Folder?":"Name of new Folder?","Filter Workflows":"Filter Workflows","Please wait":"Please wait","WF_DELETE_CONFIRM":"Please confirm to delete the Workflow?\n\nRunning processes will be stopped!"},"ru_ru":{"LBL_GET_KNOWN_ENVVARS":"\u041e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f","LBL_DUPLICATE_BLOCK":"\u0414\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0431\u043b\u043e\u043a","LBL_DELETE_BLOCK":"\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0431\u043b\u043e\u043a","LBL_CHANGE_BLOCKCOLOR":"\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0446\u0432\u0435\u0442","LBL_REMOVE_BLOCKCOLOR":"\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0446\u0432\u0435\u0442","HEAD_USAGE_OF_THIS_CONNECTION":"\u041f\u0443\u0442\u044c","LBL_DATE":"\u0414\u0430\u0442\u0430","TXT_CHOOSE_VALID_FIELD":"\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u043f\u043e\u043b\u0435","LBL_MANAGE_SIDEBARTOOGLE":"\u041a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u0431\u0438\u0437\u043d\u0435\u0441-\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0432\u0430\u0448\u0438 \u0434\u0430\u043d\u043d\u044b\u0435","LBL_CREATE_TYPE":"\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u0431\u043b\u043e\u043a \u0432\u0440\u0443\u0447\u043d\u0443\u044e","LBL_SAVED_SUCCESSFULLY":"\u0423\u0441\u043f\u0435\u0448\u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043e","page":"\u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430","select all of this type":"\u0412\u044b\u0431\u0440\u0430\u0442\u044c \u0432\u0441\u0435 \u044d\u0442\u043e\u0433\u043e \u0442\u0438\u043f\u0430","LBL_PASTE_BLOCK":"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0431\u043b\u043e\u043a\u0438","LBL_COPY_BLOCK":"\u0421\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0431\u043b\u043e\u043a\u0438","Reset value":"\u0421\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435","Empty field":"\u041f\u0443\u0441\u0442\u043e\u0435 \u043f\u043e\u043b\u0435","Reference Field":"\u0418\u0441\u0445\u043e\u0434\u043d\u043e\u0435 \u043f\u043e\u043b\u0435","Available fields":"\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u043f\u043e\u043b\u044f","Quantity":"\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e","Unit Price":"\u0426\u0435\u043d\u0430 \u0435\u0434\u0438\u043d\u0438\u0446\u044b","Product Description":"\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435","Product":"\u0422\u043e\u0432\u0430\u0440","Export Blocks by Text":"\u042d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0417\u0430\u0434\u0430\u0447\u0438 \u0432 \u0442\u0435\u043a\u0441\u0442","Import Blocks by Text":"\u0418\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0438 \u0438\u0437 \u0442\u0435\u043a\u0441\u0442\u0430","Expression-Errors found":"\u041e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u044b \u043e\u0448\u0438\u0431\u043a\u0438 \u0432 \u0412\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u0445","Name of new Folder?":"\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043d\u043e\u0432\u043e\u0439 \u043f\u0430\u043f\u043a\u0438","Filter Workflows":"\u0424\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u0430\u0442\u044c \u0411\u0438\u0437\u043d\u0435\u0441-\u041f\u0440\u043e\u0446\u0435\u0441\u0441\u044b","Please wait":"Please wait","WF_DELETE_CONFIRM":"\u0412\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u0431\u0438\u0437\u043d\u0435\u0441-\u043f\u0440\u043e\u0446\u0435\u0441\u0441?\n\u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f, \u0432\u0441\u0435 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0435 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u044b \u044d\u0442\u043e\u0433\u043e \u0431\u0438\u0437\u043d\u0435\u0441-\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0431\u0443\u0434\u0443\u0442 \u043d\u0435\u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u044b."}}; /** MODULELANGUAGESTRINGS END **/