<?php namespace AloVoice; ?> <center><h3 class="h3 card-body">Настройки</h3></center> <form id="alv_settings_form"> <div class="flex-row py-2"> <label for="asterisk_host" class="col-4 col-form-label text-right p-r-10">IP или доменный Адрес Менеджера Астериск (AMI) </label> <div class="col-auto"> <input type="text" class="form-control" id="asterisk_host"> </div> </div> <div class="flex-row py-2"> <label for="asterisk_port" class="col-4 col-form-label text-right p-r-10">Порт Менеджера Астериск (AMI) </label> <div class="col-auto"> <input type="text" class="form-control" id="asterisk_port"> </div> </div> <div class="flex-row py-2"> <label for="asterisk_username" class="col-4 col-form-label text-right p-r-10">Пользователь Менеджера Астериск (AMI) </label> <div class="col-auto"> <input type="text" class="form-control" id="asterisk_username"> </div> </div> <div class="flex-row py-2"> <label for="asterisk_secret" class="col-4 col-form-label text-right p-r-10">Пароль к Менеджеру Астериск (AMI) </label> <div class="col-auto"> <input type="text" class="form-control" id="asterisk_secret"> </div> </div> <div class="flex-row py-2"> <label for="unumbers_from" class="col-4 col-form-label text-right p-r-10">Диапазон номеров для автоназначения сотрудникам </label> <div class="col-auto flex-row"> <div class="col-3"> <input type="number" class="form-control" id="unumbers_from" placeholder="" value=""> </div> <div class="col-1 text-center"> - </div> <div class="col-3"> <input type="number" class="form-control" id="unumbers_to" placeholder="" value=""> </div> </div> </div> <div class="flex-row py-2"> <label for="sipaddress_local" class="col-4 col-form-label text-right p-r-10">SIP адрес и порт (локальный)</label> <div class="col-auto flex-row"> <div class="col-5"> <input type="text" class="form-control" id="sipaddress_local" placeholder="" value=""> </div> <div class="col-1 text-center">:</div> <div class="col-3"> <input type="number" class="form-control" id="sipport_local" placeholder="" value=""> </div> </div> </div> <div class="flex-row py-2"> <label for="sipaddress_out" class="col-4 col-form-label text-right p-r-10">SIP адрес и порт (внешний)</label> <div class="col-auto flex-row"> <div class="col-5"> <input type="text" class="form-control" id="sipaddress_out" placeholder="" value=""> </div> <div class="col-1 text-center">:</div> <div class="col-3"> <input type="number" class="form-control" id="sipport_out" placeholder="" value=""> </div> </div> </div> <div class="flex-row py-2"> <label for="miscallagentname" class="col-4 col-form-label text-right p-r-10">Кто ОТВЕТСТВЕННЫЙ по умолчанию: </label> <div class="col-auto"> <div class="input-group mb-3"> <input type="text" class="form-control" id="miscallagentname" readonly aria-label="Кто ОТВЕТСТВЕННЫЙ по умолчанию?" aria-describedby="miscallagentid_chooser_btn"> <input type="hidden" id="miscallagentid"> <button class="btn btn-primary" type="button" id="miscallagentid_chooser_btn" onclick="BX24.selectUser(selectmiscallagentid)">Выбрать...</button> </div> </div> </div> <div class="flex-row py-2"> <label for="lead_reason_field" class="col-4 col-form-label text-right p-r-10">Поле "Причина звонка" в таблице ЛИДЫ: </label> <div class="col-auto"> <select entity="lead" id="lead_reason_field" name="lead_reason_field" class="form-select"></select> </div> </div> <div class="flex-row py-2"> <label for="deal_reason_field" class="col-4 col-form-label text-right p-r-10">Поле "Причина звонка" в таблице СДЕЛКИ: </label> <div class="col-auto"> <select entity="deal" id="deal_reason_field" name="deal_reason_field" class="form-select"></select> </div> </div> <div class="flex-row py-2"> <label for="contact_reason_field" class="col-4 col-form-label text-right p-r-10">Поле "Причина звонка" в таблице КОНТАКТЫ: </label> <div class="col-auto"> <select entity="contact" id="contact_reason_field" name="contact_reason_field" class="form-select"></select> </div> </div> <div class="flex-row py-2"> <label for="company_reason_field" class="col-4 col-form-label text-right p-r-10">Поле "Причина звонка" в таблице КОМПАНИИ: </label> <div class="col-auto"> <select entity="company" id="company_reason_field" name="company_reason_field" class="form-select"></select> </div> </div> <div class="flex-row py-2"> <label for="showcallcard" class="col-4 col-form-label text-right p-r-10">Запускать окно обработки звонка? </label> <div class="col-auto"> <div class="form-check form-switch"> <input class="form-check-input" type="checkbox" role="switch" id="showcallcard" checked> <!--label class="form-check-label" for="showcallcard">Вкл</label--> </div> </div> </div> <div class="flex-row py-2"> <label for="auto_create_entity_type" class="col-4 col-form-label text-right p-r-10">Тип сущности для Авто создания при звонке: </label> <div class="col-auto"> <select entity="call" id="auto_create_entity_type" name="auto_create_entity_type" onChange="autoCreateEntity(this)" class="form-select"> <option value="LEAD" selected>Лид</option> <option value="CONTACT">Контакт</option> <option value="COMPANY">Компания</option> <option value="DEAL">Сделка</option> </select> </div> </div> <div class="flex-row py-2"> <label for="autocreatelead_out" class="col-4 col-form-label text-right p-r-10">Создать автоматически <span class="entity_text">лид</span> при ИСХОДЯЩИХ вызовов? </label> <div class="col-auto"> <div class="form-check form-switch"> <input class="form-check-input" type="checkbox" role="switch" id="autocreatelead_out" checked> <!--label class="form-check-label" for="showcallcard">Вкл</label--> </div> </div> </div> <div class="flex-row py-2"> <label for="autocreatelead_in" class="col-4 col-form-label text-right p-r-10">Создать автоматически <span class="entity_text">лид</span> при ВХОДЯЩИХ вызовов? </label> <div class="col-auto"> <div class="form-check form-switch"> <input class="form-check-input" type="checkbox" role="switch" id="autocreatelead_in" checked> <!--label class="form-check-label" for="showcallcard">Вкл</label--> </div> </div> </div> <div class="flex-row py-2"> <label for="add_to_chat" class="col-4 col-form-label text-right p-r-10">Оповещать о всех звонках в чате? </label> <div class="col-auto"> <div class="form-check form-switch"> <input class="form-check-input" type="checkbox" role="switch" id="add_to_chat" checked> <!--label class="form-check-label" for="showcallcard">Вкл</label--> </div> </div> </div> <div class="flex-row py-2"> <label for="resposible_wait" class="col-4 col-form-label text-right p-r-10">Сколько секунд ожидать ответственного перед отправкой в очередь?</label> <div class="col-auto"> <input type="number" class="form-control" id="resposible_wait" placeholder="" value=""> <div id="resposible_waitHelp" class="form-text">0 сек - ожидание отключается.</div> </div> </div> <!-- BUTTON BLOCK --> <div class="flex-row py-2"> <label for="resposible_wait" class="col-4 col-form-label text-right p-r-10"> </label> <div class="col-auto"> <a href="#" class="btn btn-primary" id="save_alovoice_settings">Сохранить</a> </div> </div> <!--div class="form-group row"> <div class="form-group ml-4"> <div class="form-check"> <input class="form-check-input" type="checkbox" id="add_to_chat"> <label class="form-check-label" for="add_to_chat">Оповещать о всех звонках в чате</label> </div> </div> </div--> <!--div class="form-group"> <div class="form-group row"> <div class="col p-0"><label for="resposible_wait">Звонок отправлять в очередь после ожидания ответственного сек:</label></div> <div class="col-2 p-0"><input type="text" class="form-control" id="resposible_wait" value="0"></div> </div> <small id="resposible_wait_Help" class="form-text text-muted">0 сек - ожидание отключается</small> </div--> </form> <script> //-lg window.alovoice_settings = {}; var autoCreateEntity = function(me){ $(".entity_text").text($(me).find('option:selected').text()); } var afterLoadPage = function(){ window.selectmiscallagentid = function(user){ if(typeof user !== 'undefined' && typeof user.id !== 'undefined' && typeof user.name !== 'undefined'){ $("#miscallagentid").val(user.id); $("#miscallagentname").val(user.name); } } loadAloVoiceInfo("alovoice_settings",function(res){ /* // 'host' => $this->config["asterisk_host"], // 'port' => $this->config["asterisk_port"], // 'username' => $this->config["asterisk_username"], // 'secret' => $this->config["asterisk_secret"] */ console.log("AloVoice settings RES:",res); window.alovoice_settings = res; $.each(res,function(ks,vs){ if($("#"+ks)){ if($("#"+ks).prop("tagName")=="SELECT"){ $("#"+ks).val(vs).change(); } else if($("#"+ks).attr('type')=="checkbox"){ $("#"+ks).prop('checked',(vs=="true") ? true : false); } else{ $("#"+ks).val(vs); } } }); loadAloVoiceInfo("alovoice_crmfields",function(res){ console.log(" Fields res", res); $.each(res,function(ent_code,fields){ var entity = ent_code.split("_")[0]; $.each(fields,function(code,field){ if(typeof field.type != 'undefined' && field.type == 'enumeration'){ var isSelected = (entity+"_reason_field") $("#"+entity+"_reason_field").append( $("<option/>") .attr("value",code) .text(field.listLabel) ); if(typeof window.alovoice_settings[entity+"_reason_field"] != 'undefined' && window.alovoice_settings[entity+"_reason_field"] == code ){ $("#"+entity+"_reason_field").val(code).change(); } } }); }); }); // if(typeof res.host !== 'undefined' ){ $("#asterisk_host").val(res.host); } // if(typeof res.port !== 'undefined' ){ $("#asterisk_port").val(res.port); } // if(typeof res.username !== 'undefined' ){ $("#asterisk_user").val(res.username); } // if(typeof res.secret !== 'undefined' ){ $("#asterisk_pass").val(res.secret); } // if(typeof res.unumbers_from !== 'undefined' ){ $("#unumbers_from").val(res.unumbers_from); } // if(typeof res.unumbers_to !== 'undefined' ){ $("#unumbers_to").val(res.unumbers_to); } $("#save_alovoice_settings").click(function(){ var saveElements = {}; var last = $("input").length-1; $.each($("select"),function(ind,obj){ console.log("Check VAL:",$(obj).attr("id"), "[",$(obj).val(),"]"); saveElements[$(obj).attr("id")] = $(obj).val(); }); $.each($("input"),function(ind,obj){ var iVal = ($(obj).attr('type')=="checkbox") ? $(obj).prop('checked') : $(obj).val(); console.log("Check VAL:",$(obj).attr("id"), "[",iVal,"]"); saveElements[$(obj).attr("id")] = iVal; if(last == ind){ console.log("Finish: ",saveElements); saveElements["restmethod"] = "savealovoicesettings"; loadAloVoiceInfo(saveElements,function(res){ console.log("Save RES: ",res); $("#alv_settings_form").prepend('<div class="alert alert-success" id="savesuccesbox" role="alert">Настройки сохранены!</div>'); setTimeout(function(){ $("#savesuccesbox").remove(); },3000); }); } }); }); }); } </script>