{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./app/javascript/call_processing/call_processing.js","webpack:///./app/javascript/call_processing/call_processor_editor.js","webpack:///./app/javascript/packs/call_processing.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","CallProcessing","web_socket","js_callback","init","callback","console","log","gWebSocketsRef","this","socketConnected","connectSocket","protocol","document","location","call_processing_server","$","val","ws_uri","WebSocket","onmessage","msg","data","e","handle_ws_message","onopen","JSON","stringify","onWSOpen","onclose","code","Common","notify","setTimeout","validate_save_state","onWSClose","onerror","onWSError","get_processor_state","processor_data","querySelector","parse","getAttribute","close","send","text","showNoCallAlert","hideNoCallAlert","removeClass","addClass","CallProcessorEditor","update_row_after_edit_callback","update_row_after_invite_callback","click","preventDefault","show","hide","modal","on","remove","settings","hide_modal_templates","meta","group_role_id","trigger","selected_role","industries","length","option_elements","temp_el_id","temp_el","objectArrayIndexOf","parseInt","setAttribute","processing_queues","waitFor","call_types","industry_type","id","init_edit_modal_settings","multiselect","right","rightAll","rightSelected","leftSelected","leftAll","afterMoveToRight","update_call_ecp_types","afterMoveToLeft","template_selector","html","v","undefined","generate_processing_queues_select_options","append","populate_ecp_processing_queues_select_box","email","trim","role_id","industry_type_id","selected_industries_ids","each","push","selected_processing_queues_ids","selected_call_type_ids","validate_user_role","pageLoadingFrame","ajax","type","url","group_id","selected_industries","selected_call_types","dataType","success","result","r1","r2","r3","make_edit_button","user_id","modal_notify","error","handle_edit_link_click","attr","_get_processor_settings","handle_edit_link_click2","get_processor_settings","selected_industries_options","industry_names","selected_industry_name","post","industry","selected_call_types_name","call_type","call_type_name","x","indexOf","selected_call_type","found_match","z","a","industry_json","temp","index","status","role","window"],"mappings":"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","file":"js/call_processing-6a2b1a1391e846f8df53.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 337);\n","export var CallProcessing = function(){\n let web_socket = null;\n\n return {\n js_callback: null,\n\n // This is expected to be called on each call processing page\n // where we use web sockets to process call data.\n // callback function is used to return json data to the calling javascript code \n // so it can use the data.\n init: function( callback ){\n if (web_socket !== null) {\n console.log('[CallProcessing] web socket already created')\n return web_socket\n }\n \n CallProcessing.js_callback = callback;\n CallProcessing.gWebSocketsRef = this;\n CallProcessing.socketConnected = false;\n\n this.connectSocket()\n },\n\n connectSocket: function(){\n // Establish the socket connection\n let protocol = using_https() ? 'wss' : 'ws'\n var call_processing_server = $('#call_processing_server').val();\n if (! call_processing_server) {\n console.log('call_processing_server uri was not found')\n return\n }\n var ws_uri = `${protocol}://${call_processing_server}`\n // var ws_uri = `${protocol}://devapi01.autoid.com:4577`\n // var ws_uri = `${protocol}://aitest.autoid.com:3001`\n console.log('ws_uri: ' + ws_uri)\n web_socket = new WebSocket(ws_uri)\n web_socket.onmessage = function(msg) {\n handle_ws_message(msg)\n }\n web_socket.onopen = function(e) {\n onWSOpen(e)\n }\n web_socket.onclose = function(e) {\n onWSClose(e)\n }\n web_socket.onerror = function(e) {\n onWSError(e)\n }\n },\n\n // Finds and retuns the processor's info generated from the server.\n // Returns null if not found, otherwise reutrns JSON data\n get_processor_state: function() {\n var processor_data = document.querySelector('#call_processor_ws_data');\n if (processor_data === null) {\n console.log('No processor settings found. Skipping socket setup.')\n return null;\n }\n return JSON.parse( processor_data.getAttribute('value') )\n },\n\n close: function() {\n console.log('ws closing')\n web_socket.close()\n },\n\n // Exposed method to let other JS code send data to the web socket.\n send: function(data) {\n if (web_socket === null) {\n console.log('web socket not set')\n return\n }\n\n if (typeof data === 'object') {\n data = JSON.stringify(data)\n }\n\n web_socket.send(data);\n noCallDataAlertTimer()\n },\n\n showNoCallAlert: showNoCallAlert,\n hideNoCallAlert: hideNoCallAlert,\n\n } // return \n\n\n // returns true if the domain is using https\n function using_https() {return ('https:' == document.location.protocol);}\n\n function onWSOpen(e){\n console.log('onwsopen ' + JSON.stringify(e))\n CallProcessing.socketConnected = true;\n }\n \n function onWSClose(e) {\n console.log('closing')\n \n CallProcessing.socketConnected = false;\n\n if (e.code != 1000) {\n // Error code 1000 means that the connection was closed normally\n console.log('Web socket closed abnormally: ' + e.code)\n Common.notify( 'The web socket has been closed. Please wait a moment...', 'danger');\n }\n\n // add code here to show a warining if the back end goes down \n\n // force clients to reconnect\n // need to handle situations so we can reconnect to the same chat etc\n let that = this\n setTimeout(function() {\n console.log('web socket reconnect attempt')\n CallProcessing.gWebSocketsRef.connectSocket();\n\n // The view that is using sockets is expected to have this function defined\n validate_save_state();\n }, 6000); \n }\n\n function onWSError(e){\n console.log('ws error: ' + JSON.stringify(e) )\n }\n \n function handle_ws_message(msg) {\n console.log('handle_ws_message ')\n try {\n if (msg && typeof msg === 'object' && typeof msg.data === 'string') {\n pass_message_to_client(msg.data)\n }\n else {\n console.log('ws recevied unexpected data: ' + msg)\n }\n }\n catch(e) {\n console.log('ws exception: ' + e)\n }\n }\n\n // Pass any JSON data to the client for processing\n function pass_message_to_client(data) {\n //console.log('ws message json data: ' + data)\n if (CallProcessing.js_callback) {\n CallProcessing.js_callback(data)\n }\n else {\n console.log('No callback provided for CallProcessing.')\n }\n }\n\n // simple way to see if there is call data loaded in the ui\n // if not, we display an informational panel for the user.\n function noCallDataAlertTimer() {\n setTimeout( function() {\n const callid = $('#call_id').text()\n if (callid === '') {\n showNoCallAlert() \n }\n else {\n hideNoCallAlert() \n }\n }, 2000)\n }\n\n function showNoCallAlert() {\n $('#no_call_avail').removeClass('hide') \n }\n\n function hideNoCallAlert() {\n $('#no_call_avail').addClass('hide') \n }\n \n}();\n\n","export var CallProcessorEditor = function(){\n\n return {\n update_row_after_edit_callback: null,\n update_row_after_invite_callback: null,\n \n init: function(update_row_after_edit_callback, update_row_after_invite_callback){\n CallProcessing.update_row_after_edit_callback = update_row_after_edit_callback;\n CallProcessing.update_row_after_invite_callback = update_row_after_invite_callback;\n initialize();\n },\n handle_edit_link_click: function(e) {\n handle_edit_link_click2(e);\n },\n get_processor_settings: function(user_id, group_id, callback){\n _get_processor_settings(user_id, group_id, callback)\n }\n }\n\n\nfunction initialize() {\n $('#invite_modal').click( function(e) {\n e.preventDefault();\n $('.modal-title').text('Invite Call Processing User');\n $('#invite_user').show();\n $('#save_user').hide();\n $('#usage_mode').val('invite');\n $('#invited_email').val( '' );\n $('#invited_role').val( '' );\n $('user_id').val('');\n $(\"#invite_user_modal\").modal('show');\n })\n\n $('#invite_user_modal').on('hide.bs.modal', function () {\n $('#ecp_available_call_types option').remove()\n $('#ecp_selected_call_types option').remove()\n $('#ecp_available_processing_queues option').remove()\n $('#ecp_selected_processing_queues option').remove()\n $('#dcp_available_processing_queues option').remove()\n $('#dcp_selected_processing_queues option').remove()\n\n $('.edit_call_processing_settings.editing').removeClass('editing');\n })\n\n // reset modal items when shown\n $('#invite_user_modal').on('show.bs.modal', function () {\n var mode = $('#usage_mode').val();\n if (mode === 'edit') {\n init_edit_modal_settings();\n }\n else {\n $('#invited_role').val('')\n $('#invited_email').trigger('focus')\n hide_modal_templates()\n }\n })\n\n\n $('#dcp_available_processing_queues').multiselect({\n right: '#dcp_selected_processing_queues',\n rightAll: '#dcp_processing_queues_multiselect_rightAll',\n rightSelected:'#dcp_processing_queues_multiselect_rightSelected',\n leftSelected: '#dcp_processing_queues_multiselect_leftSelected',\n leftAll: '#dcp_processing_queues_multiselect_leftAll'\n });\n\n $('#ecp_available_processing_queues').multiselect({\n right: '#ecp_selected_processing_queues',\n rightAll: '#ecp_processing_queues_multiselect_rightAll',\n rightSelected:'#ecp_processing_queues_multiselect_rightSelected',\n leftSelected: '#ecp_processing_queues_multiselect_leftSelected',\n leftAll: '#ecp_processing_queues_multiselect_leftAll',\n afterMoveToRight: update_call_ecp_types,\n afterMoveToLeft: update_call_ecp_types,\n });\n\n $('#ecp_available_call_types').multiselect({\n right: '#ecp_selected_call_types',\n rightAll: '#ecp_call_types_multiselect_rightAll',\n rightSelected:'#ecp_call_types_multiselect_rightSelected',\n leftSelected: '#ecp_call_types_multiselect_leftSelected',\n leftAll: '#ecp_call_types_multiselect_leftAll'\n });\n\n $('#ocp_available_processing_queues').multiselect({\n right: '#ocp_selected_processing_queues',\n rightAll: '#ocp_processing_queues_multiselect_rightAll',\n rightSelected:'#ocp_processing_queues_multiselect_rightSelected',\n leftSelected: '#ocp_processing_queues_multiselect_leftSelected',\n leftAll: '#ocp_processing_queues_multiselect_leftAll'\n });\n\n // someone selected an industry\n $('#invite_user_modal .available_industry_types').on('change', function(e){\n var selected_role = $('#invited_role option:selected').data('name');\n var template_selector = '.call_processor_template#' + selected_role \n var v = $(template_selector +' .available_industry_types option:selected').val();\n //console.log('selected industry2: ' + v)\n\n // remove all data from industry selections and call types\n $(template_selector + ' .available_processing_queues option').remove()\n $(template_selector + ' .selected_processing_queues option').remove()\n $(template_selector + ' .available_call_types option').remove()\n $(template_selector + ' .selected_call_types option').remove()\n \n /*\n // add ajax call to get the available industries to show \n var url = '/admin/call_processing/sub_industries?industry=' + v\n pageLoadingFrame(\"show\");\n $.get(url, function(data){\n //console.log(data)\n var industries_el = $(template_selector +' .available_industries');\n $(template_selector +' .available_industries option').remove();\n var html = '';\n for (var i = 0; i < data.length; i++) {\n var temp = data[i]\n html += ``\n }\n $(industries_el).append(html)\n pageLoadingFrame(\"hide\");\n })\n */\n })\n\n\n // logic for when the invite user role changes\n $('#invite_user_modal #invited_role').on('change', function(e){\n var v = $('#invited_role option:selected').data('name');\n if (v !== undefined) {\n hide_modal_templates()\n\n $('.available_processing_queues option').remove()\n $('.ecp_available_call_types option').remove()\n $('.available_industry_types').val('')\n\n if (v === 'department_call_processor' ) {\n // populate the industries\n populate_dcp_processing_queues_select_box()\n }\n else if (v === 'enhanced_call_processor' ) {\n populate_ecp_processing_queues_select_box()\n }\n else if (v === 'outbound_call_processor' ) {\n }\n \n // show the appropriate template\n $('#user_options .call_processor_template#' + v).removeClass('hide')\n }\n })\n\n $('#invite_user_modal button#invite_user').click(function(e){\n e.preventDefault();\n $('#invited_email').removeClass('error');\n var email = $('#invited_email').val().trim();\n var role_id = $('#invited_role').val().trim();\n var id = $('#group_id').val();\n\n var selected_role = $('#invited_role option:selected').data('name');\n var template_selector = '.call_processor_template#' + selected_role \n var industry_type_id = $(template_selector +' .available_industry_types option:selected').val();\n var selected_industries_ids = [];\n $(template_selector +' .selected_industries option').each(function(e){\n selected_industries_ids.push( $(this).val() )\n });\n var selected_processing_queues_ids = [];\n $(template_selector +' .selected_processing_queues option').each(function(e){\n selected_processing_queues_ids.push( $(this).val() )\n });\n\n\n var selected_call_type_ids = []\n $(template_selector +' .selected_call_types option').each(function(e){\n selected_call_type_ids.push( $(this).val() )\n });\n\n if (email === '') {\n modal_notify('Please enter a valid email address.', 'danger');\n return;\n }\n\n if (role_id === '') {\n modal_notify('Please select a role for the user.', 'danger');\n return;\n }\n\n // validate based on selected user role \n if (! validate_user_role(selected_role) ) {\n return;\n }\n\n pageLoadingFrame(\"show\");\n $.ajax({\n type: 'POST',\n url: '/admin/call_processing_groups/invite',\n data: {email: email, group_id: id, role_id: role_id, industry_type: industry_type_id, selected_industries: selected_industries_ids, selected_processing_queues_ids: selected_processing_queues_ids, selected_call_types: selected_call_type_ids, selected_role: selected_role},\n dataType: 'json',\n success: function(result) {\n if (result.success)\n {\n $('#invite_user_modal').modal('hide')\n Common.notify(result.msg, 'success');\n if (CallProcessing.update_row_after_invite_callback) {\n CallProcessing.update_row_after_invite_callback( [result.r1, result.r2, result.r3, make_edit_button(result.group_id, result.user_id)] )\n }\n else {\n console.log('No callback provided to handle updating row data after invite.')\n }\n\n //users_table.row.add([result.r1, result.r2, result.r3, make_edit_button(result.group_id, result.user_id)]).draw(false);\n }\n else\n {\n modal_notify(result.msg, 'danger');\n $('#invited_email').addClass('error');\n }\n pageLoadingFrame(\"hide\");\n },\n error: function(e){\n pageLoadingFrame(\"hide\");\n } \n });\n });\n\n $('#invite_user_modal button#save_user').click(function(e){\n e.preventDefault();\n $('#invited_email').removeClass('error');\n var email = $('#invited_email').val().trim();\n var role_id = $('#invited_role').val().trim();\n var id = $('#group_id').val();\n var user_id = $('#user_id').val();\n\n var selected_role = $('#invited_role option:selected').data('name');\n var template_selector = '.call_processor_template#' + selected_role \n var industry_type_id = $(template_selector +' .available_industry_types option:selected').val();\n var selected_industries_ids = [];\n $(template_selector +' .selected_industries option').each(function(e){\n selected_industries_ids.push( $(this).val() )\n });\n\n var selected_processing_queues_ids = [];\n $(template_selector +' .selected_processing_queues option').each(function(e){\n selected_processing_queues_ids.push( $(this).val() )\n });\n\n var selected_call_type_ids = []\n $(template_selector +' .selected_call_types option').each(function(e){\n selected_call_type_ids.push( $(this).val() )\n });\n\n if (email === '') {\n modal_notify('Please enter a valid email address.', 'danger');\n return;\n }\n\n if (role_id === '') {\n modal_notify('Please select a role for the user.', 'danger');\n return;\n }\n\n // validate based on selected user role \n if (! validate_user_role(selected_role) ) {\n return;\n }\n\n pageLoadingFrame(\"show\");\n $.ajax({\n type: 'POST',\n url: '/admin/call_processing_groups/settings',\n data: {email: email,user_id: user_id, group_id: id, role_id: role_id, industry_type: industry_type_id, selected_industries: selected_industries_ids, selected_processing_queues_ids: selected_processing_queues_ids, selected_call_types: selected_call_type_ids, selected_role: selected_role},\n dataType: 'json',\n success: function(result) {\n //console.log(result)\n //console.log('update settings: ' + JSON.stringify(result) )\n\n if (CallProcessing.update_row_after_edit_callback) {\n CallProcessing.update_row_after_edit_callback(result)\n }\n else {\n console.log('No callback provided to handle updating row data after edit.')\n }\n\n pageLoadingFrame(\"hide\");\n $(\"#invite_user_modal\").modal('hide');\n },\n error: function(e){\n pageLoadingFrame(\"hide\");\n }\n });\n });\n\n}\n\nfunction make_edit_button(group_id, user_id ) {\n return `Edit`\n}\n\nfunction handle_edit_link_click2(e) {\n var user_id = $(e).attr('data_user_id')\n var group_id = $(e).attr('data_group_id')\n $(e).addClass('editing')\n\n /*\n pageLoadingFrame(\"show\");\n var url = '/admin/call_processing_groups/settings?user_id=' + user_id + '&group_id=' + group_id\n $.get(url, function(data){\n console.log(data)\n pageLoadingFrame(\"hide\");\n show_edit_modal(data);\n })\n */\n _get_processor_settings(user_id, group_id, function(data){\n show_edit_modal(data);\n })\n}\n\nfunction _get_processor_settings(user_id, group_id, callback) {\n pageLoadingFrame(\"show\");\n var url = '/admin/call_processing_groups/settings?user_id=' + user_id + '&group_id=' + group_id\n $.get(url, function(data){\n console.log(data)\n pageLoadingFrame(\"hide\");\n callback(data);\n })\n}\n\nfunction show_edit_modal(settings) {\n $('.modal-title').text('Edit Call Processing User');\n $('#invite_user').hide();\n $('#save_user').show();\n $('#usage_mode').val('edit');\n $('#user_settings').val( JSON.stringify(settings) );\n $('#user_id').val( settings.meta.user_id); \n $('#group_id').val( settings.meta.group_id); \n $('#invited_email').val( settings.meta.email );\n\n // remove any already selected options \n $('.selected_industries option').remove();\n $('.selected_call_types option').remove();\n \n $(\"#invite_user_modal\").modal('show');\n}\n\n\nfunction update_call_ecp_types() {\n var selected_industries_options = $('#ecp_selected_processing_queues option')\n var industry_names = []\n $('#ecp_selected_processing_queues option').each(function(e){\n var selected_industry_name = $(this).val()\n industry_names.push( selected_industry_name )\n })\n \n if (selected_industries_options.length === 0) {\n // if there are no longer any selected industries\n // delete all options from the call types select boxes\n $('#ecp_available_call_types option').remove()\n $('#ecp_selected_call_types option').remove()\n }\n else {\n var selected_industries = []\n \n // get call types for selected industries\n var url = '/admin/call_processing/call_types'\n pageLoadingFrame(\"show\");\n $.post(url, {'processing_queues': industry_names, 'prospectCallTypes': 1}, function(data){\n //console.log(JSON.stringify(data) )\n\n // get list of selected industry names\n $('#ecp_selected_processing_queues option').each(function(){\n var industry = $(this).text()\n selected_industries.push( industry)\n })\n\n // get list of selected call types, we do not want to duplicate them\n var selected_call_types = []\n var selected_call_types_name = []\n $('#ecp_selected_call_types option').each(function(){\n var call_type = $(this).val()\n selected_call_types.push( parseInt(call_type) )\n var call_type_name = $(this).text()\n selected_call_types_name.push( call_type_name )\n })\n\n //console.log('selected_call_types: ' + selected_call_types)\n\n $('#ecp_available_call_types option').remove();\n var html = '';\n for (var i = 0; i < data.length; i++) {\n // don't add if the item is already selected\n var x = data[i]\n if ( selected_call_types.indexOf(x['id']) === -1) {\n html += ``\n }\n }\n $('#ecp_available_call_types').append(html)\n\n\n\n\n // for each selected call type, iterate thru each\n // selected industry and see if the call type name starts\n // with a selected industry. If not, remove it from the list.\n $('#ecp_selected_call_types option').each(function(){\n var selected_call_type = $(this).text()\n\n var found_match = false\n for (var z=0; z < selected_industries.length; z++) {\n var selected_industry_name = selected_industries[z]\n\n // if the selected call type begins with the name of a selected industry\n // we do not want to delete it. \n if (selected_call_type.indexOf( selected_industry_name ) === 0) {\n found_match = true\n break\n }\n }// for\n\n if (! found_match) {\n $(this).remove()\n }\n })\n\n\n\n pageLoadingFrame(\"hide\");\n })\n \n }\n}\nfunction unpopulate_ecp_industries_select_box() {\n\n}\n\nfunction generate_processing_queues_select_options() {\n let a=$('#list_of_processing_queues').val()\n let industry_json = JSON.parse(a)\n var html = ''\n for (var i=0; i < industry_json.length; i++) {\n var temp = industry_json[i]\n html += ``\n }\n \n return html\n}\n\nfunction populate_dcp_processing_queues_select_box() {\n const html = generate_processing_queues_select_options()\n $('#dcp_available_processing_queues').append(html)\n}\n\nfunction populate_ecp_processing_queues_select_box() {\n const html = generate_processing_queues_select_options()\n $('#ecp_available_processing_queues').append(html)\n}\n\n\nfunction hide_modal_templates() {\n // hide templates\n $('#user_options .call_processor_template').each( function(index, e){\n $(this).addClass('hide')\n });\n}\n\n\n// Once the modal is shown, this is called \n// so we use it to setup the ui with the user's save data\nfunction init_edit_modal_settings() {\n var settings = $('#user_settings').val();\n settings = JSON.parse(settings);\n hide_modal_templates();\n $('#invited_role').val( settings.meta.group_role_id );\n $('#invited_role').trigger('change'); // causes the proper ui elements to be shown.\n\n let selected_role = $('#invited_role option:selected').data('name');\n if (selected_role === 'call_processor_manager') {\n // nothing else to setup for this role\n }\n else if (selected_role === 'department_call_processor') {\n // select saved industries\n if (settings.industries && settings.industries.length > 0) {\n var option_elements = $('#dcp_available_industries option');\n for (var i = 0; i < option_elements.length; i++ ) {\n var temp_el = option_elements[i];\n var temp_el_id = temp_el.getAttribute('value');\n // If the option value is found in the saved settings, make the option selected\n if (Common.objectArrayIndexOf(settings.industries, 'id', parseInt(temp_el_id)) !== -1) {\n temp_el.setAttribute('selected', 'selected');\n }\n } // for\n $('#dcp_industries_multiselect_rightSelected').click();\n }\n }\n else if (selected_role === 'enhanced_call_processor') {\n if (settings.processing_queues && settings.processing_queues.length > 0) {\n var option_elements = $('#ecp_available_processing_queues option');\n for (var i = 0; i < option_elements.length; i++ ) {\n var temp_el = option_elements[i];\n var temp_el_id = temp_el.getAttribute('value');\n // If the option value is found in the saved settings, make the option selected\n if (Common.objectArrayIndexOf(settings.processing_queues, 'id', parseInt(temp_el_id)) !== -1) {\n temp_el.setAttribute('selected', 'selected');\n }\n } // for\n $('#ecp_processing_queues_multiselect_rightSelected').click();\n\n\n // wait for the ajax request to complete \n\n Common.waitFor(\n function(){\n // This is the condition we are waiting for to be true.\n // When the ajax request is complete, this will populate.\n return $('#ecp_available_call_types option').length > 0;\n },\n function() {\n // Now select any selected call_types\n if (settings.call_types && settings.call_types.length > 0) {\n var option_elements = $('#ecp_available_call_types option');\n for (var i = 0; i < option_elements.length; i++ ) {\n var temp_el = option_elements[i];\n var temp_el_id = temp_el.getAttribute('value');\n // If the option value is found in the saved settings, make the option selected\n if (Common.objectArrayIndexOf(settings.call_types, 'id', parseInt(temp_el_id)) !== -1) {\n temp_el.setAttribute('selected', 'selected');\n }\n } // for\n $('#ecp_call_types_multiselect_rightSelected').click();\n }\n },\n function(){\n //console.log('waitFor industries TIMEOUT EXITING');\n },\n 3000\n ); // Wait for 3S for the resources to load\n } // if\n }\n else if (selected_role === 'outbound_call_processor') {\n if (settings.industry_type) {\n $('#ocp_available_industry_types').val( parseInt(settings.industry_type.id) );\n $('#ocp_available_industry_types').trigger('change');\n // wait a few moments for the ajax request to complete \n \n Common.waitFor(\n function(){\n // This is the condition we are waiting for to be true.\n // When the ajax request is complete, this will populate.\n return $('#ocp_available_industries option').length > 0;\n },\n function() {\n // Now select any selected industries\n if (settings.industries && settings.industries.length > 0) {\n var option_elements = $('#ocp_available_industries option');\n for (var i = 0; i < option_elements.length; i++ ) {\n var temp_el = option_elements[i];\n var temp_el_id = temp_el.getAttribute('value');\n // If the option value is found in the saved settings, make the option selected\n if (Common.objectArrayIndexOf(settings.industries, 'id', parseInt(temp_el_id)) !== -1) {\n temp_el.setAttribute('selected', 'selected');\n }\n } // for\n $('#ocp_industries_multiselect_rightSelected').click();\n }\n },\n function(){\n //console.log('waitFor industries TIMEOUT EXITING');\n },\n 3000\n ); // Wait for 3S for the resources to load\n }\n }\n}\n\n\nfunction modal_notify(msg, status) {\n Common.notify(msg, status, '#invite_user_modal .modal-body');\n}\n\nfunction validate_user_role(role) {\n var is_valid = true;\n\n if (role === 'call_processor_manager') {\n // nothing else to validate yet for this role\n }\n else if (role === 'department_call_processor') {\n // are there any selected queues?\n if ($('#dcp_selected_processing_queues option').length === 0) {\n modal_notify('Please select at least one queue.', 'danger');\n return false;\n }\n }\n else if (role === 'enhanced_call_processor') {\n // are there any selected call types?\n if ($('#ecp_selected_processing_queues option').length === 0) {\n modal_notify('Please select at least one queue.', 'danger');\n return false;\n }\n\n // are there any selected call types?\n if ($('#ecp_selected_call_types option').length === 0) {\n modal_notify('Please select at least one call type.', 'danger');\n return false; \n }\n }\n else if (role === 'outbound_call_processor') {\n var v = $('#ocp_available_industry_types').val().trim()\n if (v === '') {\n modal_notify('Please select an industry type.', 'danger');\n return false;\n }\n\n // are there any selected call types?\n if ($('#ocp_selected_industries option').length === 0) {\n modal_notify('Please select at least one industry.', 'danger');\n return false; \n }\n }\n \n return is_valid;\n}\n\n}();\n","import {CallProcessing} from 'call_processing/call_processing'\nwindow.CallProcessing = CallProcessing;\n\nimport {CallProcessorEditor} from 'call_processing/call_processor_editor'\nwindow.CallProcessorEditor = CallProcessorEditor;"],"sourceRoot":""}