$(document).ready(function () {
$('.sortable').sortable({
update: function (event, ui) {
// console.log(ui.item.find('input').val(), ui.item.index())
ui.item.find('input').val(ui.item.index());
},
});
$('#ajaxcancel').on('click', function (e) {
// console.log('Calncel');
if ($(this).data('hash') != null) {
location.hash = $(this).data('hash');
}
if ($(this).data('href') != null) {
location.href = $(this).data('href');
}
if ($(this).data('path') != null) {
location.path = $(this).data('path');
}
if ($(this).data('search') != null) {
location.search = $(this).data('search');
}
if ($(this).data('reload') != null) {
location.reload();
}
});
$('#ajaxsubmit2').on('click', function (e) {
var vdata = '';
var snd_command = 'savesettings';
$('.fpbx-submit').each(function () {
vdata = vdata + $(this).serialize() + '&';
});
if ($('.fpbx-submit').data('id') == "hw_edit") {
snd_command = 'save_hardware';
}
if ($('.fpbx-submit').data('id') == "dial_template") {
snd_command = 'save_dialplan_template';
}
$.ajax({
type: 'POST',
url: 'ajax.php?module=sccp_manager&command=' + snd_command,
data: vdata,
success: function (data) {
if (data.status === true) {
if (data.message) {
alert(data.message);
} else {
alert('Data Save');
}
} else {
if (Array.isArray(data.message)) {
data.message.forEach(function (entry) {
fpbxToast(entry, 'error', 'error');
});
}
}
}
});
});
$('#ajaxsubmit').on('click', function (e) {
var vdata = '';
var snd_command = 'savesettings';
$('.fpbx-submit').each(function () {
vdata = vdata + $(this).serialize() + '&';
});
if ($('.fpbx-submit').data('id') == "hw_edit") {
snd_command = 'save_hardware';
}
if ($('.fpbx-submit').data('id') == "dial_template") {
snd_command = 'save_dialplan_template';
}
$.ajax({
type: 'POST',
url: 'ajax.php?module=sccp_manager&command=' + snd_command,
data: vdata,
success: function (data) {
if (data.status === true) {
if (data.message) {
alert(data.message);
}
if (data.table_reload === true) {
$('table').bootstrapTable('refresh');
}
if (data.hash != null) {
location.hash = data.hash;
}
if (data.href != null) {
location.href = data.href;
}
if (data.path != null) {
location.path = data.path;
}
if (data.search != null) {
location.search = data.search;
}
if (data.reload === true) {
location.reload();
}
} else {
if (Array.isArray(data.message)) {
data.message.forEach(function (entry) {
fpbxToast(entry, 'error', 'error');
});
}
}
}
});
});
$(".input-js-add").click(function(){
add_dynamic_input($(this),$(this).data('for'),"","");
});
$(".table").on('click','.table-js-add', function (e) {
add_dynamic_table($(this),$(this).data('for'),"","");
});
$(".table").on('click','.table-js-del', function (e) {
del_dynamic_table($(this),$(this).data('for'));
});
$(".table").on('click','.btn-item-delete', function (e) {
var dev_cmd = '';
var dev_id = $(this).data('id');
var dev_for = $(this).data('for');
var ext_data = '';
if (dev_for =='softkeys') {
dev_cmd = 'deleteSoftKey';
ext_data = "softkey=" + dev_id;
}
if (dev_for =='model') {
dev_cmd = 'model_delete';
ext_data = "model=" + dev_id;
}
if (dev_for =='dialplan') {
dev_cmd = 'delete_dialplan';
ext_data = "dialplan=" + dev_id;
}
if (dev_for =='hardware') {
dev_cmd = 'delete_hardware';
ext_data = "idn[0]=" + dev_id;
}
// console.log("delete : " + data);
if (dev_cmd != '') {
if (confirm(_('Are you sure you wish to delete "' + dev_id.toString().toUpperCase() + '" inormation ?'))) {
$.ajax({
type: 'POST',
url: 'ajax.php?module=sccp_manager&command=' + dev_cmd,
command: dev_cmd,
data: ext_data,
success: function (data) {
// console.log(data);
if (data.status === true) {
if (data.message) {
alert(data.message);
}
if (data.table_reload === true) {
$('table').bootstrapTable('refresh');
}
if (data.reload === true) {
location.reload();
}
} else {
if (Array.isArray(data.message)) {
data.message.forEach(function (entry) {
fpbxToast(entry, 'error', 'error');
});
}
}
}
});
}
}
});
// ----------------------- Server.model.Button.Select----------------
$('.dropdown-menu a.dropitem').on("click", function (e) {
$(this).parents('div.btn-group').find('.dropdown_capture').text($(this).text());
// console.log($(this).data('id'));
ref_url = "ajax.php?module=sccp_manager&command=getDeviceModel&type=" + $(this).data('id');
$('#table-models').bootstrapTable('refresh', {url: ref_url});
});
// ---------------------------------------
$('.btnMultiselect').click(function (e) {
var kid = $(this).data('id');
if ($(this).data('key') === 'Right') {
$('select').moveToListAndDelete('#source_' + kid, '#destination_' + kid);
}
if ($(this).data('key') === 'AllRight') {
$('select').moveAllToListAndDelete('#source_' + kid, '#destination_' + kid);
}
if ($(this).data('key') === 'Left') {
$('select').moveToListAndDelete('#destination_' + kid, '#source_' + kid);
}
if ($(this).data('key') === 'AllLeft') {
$('select').moveAllToListAndDelete('#destination_' + kid, '#source_' + kid);
}
e.preventDefault();
});
// Form.buttons - Form.adddevice
$('.lineselect').change(function (e) {
var kid = $(this).data('id');
var kval = $(this).val();
$('.lineselect_' + kid).each(function () {
switch (kval) {
case 'silent':
case 'monitor':
case 'line':
case 'adv.line':
$(this).removeClass('hidden');
break;
case 'service':
case 'feature':
case 'speeddial':
case 'empty':
$(this).addClass('hidden');
break;
}
});
$('.linevalue_' + kid).each(function () {
switch (kval) {
case 'service':
case 'speeddial':
$(this).removeClass('hidden');
break;
case 'feature':
case 'silent':
case 'monitor':
case 'empty':
case 'adv.line':
case 'line':
$(this).addClass('hidden');
break;
}
});
$('.linefeature_' + kid).each(function () {
switch (kval) {
case 'feature':
$(this).removeClass('hidden');
break;
case 'adv.line':
case 'service':
case 'speeddial':
case 'silent':
case 'monitor':
case 'empty':
case 'line':
$(this).addClass('hidden');
break;
}
});
$('.lineadv_' + kid).each(function () {
if (kval == 'adv.line') {
$(this).removeClass('hidden');
} else {
$(this).addClass('hidden');
}
});
$('.linespeed_' + kid).each(function () {
if (kval == 'speeddial') {
$(this).removeClass('hidden');
} else {
$(this).addClass('hidden');
}
});
});
// Form.adddevice
$('.hw_select').change(function (e) {
// console.log('HwSelect');
var type_id = $('#sccp_hw_type').find(':selected').data('id');
var btn_dev = $('#sccp_hw_type').find(':selected').data('val');
// var btn_add=$('#sccp_hw_addon').find(':selected').data('val');
if (type_id === 1) {
if ($('#sccp_hw_addon').val() !== 'NONE') {
$('#sccp_hw_addon').val('NONE').change();
}
$('#sccp_hw_addon').attr("disabled", "disabled");
} else {
$('#sccp_hw_addon').removeAttr('disabled');
}
var btn_add = $('#sccp_hw_addon').find(':selected').data('val');
$('.line_button').each(function () {
if ($(this).data('id') < btn_dev + btn_add) {
$(this).removeClass('hidden');
$(this).removeAttr('hidden')
} else {
$(this).addClass('hidden');
}
});
});
$('.sccp_button_hide').each(function () { // On page create !!
var dev_id = $(this).data('vhide');
var dev_class = $(this).data('clhide');
var dev_val = $(this).val();
if ($(this).data('btn') == 'checkbox') {
dev_val = $('input',this).is(":checked");
}
var dev_state = $(this).attr('checked');
if (dev_state == 'checked'){
$(dev_class).each(function () {
if (dev_val != dev_id) {
$(this).removeClass('hidden');
$(this).removeAttr('hidden')
} else {
$(this).addClass('hidden');
}
});
}
dev_id = $(this).data('vshow');
if (dev_state == 'checked'){
dev_class = $(this).data('clshow');
$(dev_class).each(function () {
if (dev_val == dev_id) {
$(this).removeClass('hidden');
$(this).removeAttr('hidden')
} else {
$(this).addClass('hidden');
}
});
}
});
$('.sccp_button_hide').on('click', function (e) {
var dev_id = $(this).data('vhide');
var dev_class = $(this).data('clhide');
var dev_val = $(this).val();
if ($(this).data('btn') == 'checkbox') {
dev_val = $('input',this).is(":checked");
}
$(dev_class).each(function () {
if (dev_val != dev_id) {
$(this).removeClass('hidden');
$(this).removeAttr('hidden')
} else {
$(this).addClass('hidden');
}
});
dev_id = $(this).data('vshow');
if (dev_id !== ''){
dev_class = $(this).data('clshow');
$(dev_class).each(function () {
if (dev_val == dev_id) {
$(this).removeClass('hidden');
$(this).removeAttr('hidden')
} else {
$(this).addClass('hidden');
}
});
}
});
$('.sccp_button_disabled').each(function () { // On page create !!
var dev_id = $(this).data('vhide');
var dev_class = $(this).data('clhide');
var dev_val = $(this).val();
if ($(this).data('btn') == 'checkbox') {
dev_val = $('input',this).is(":checked");
}
$(dev_class).find('input, select, textarea, button').each(function() {
if (dev_val == dev_id) {
$(this).removeClass('disabled');
$(this).removeAttr('disabled')
} else {
$(this).addClass('disabled', true);
$(this).attr('disabled', 'disabled');
}
});
});
$('.sccp_button_disabled').on('click', function (e) {
var dev_id = $(this).data('vhide');
var dev_class = $(this).data('clhide');
var dev_val = $(this).val();
if ($(this).data('btn') == 'checkbox') {
dev_val = $('input',this).is(":checked");
}
$(dev_class).find('input, select, textarea, button').each(function() {
if (dev_val != dev_id) {
$(this).removeClass('disabled');
$(this).removeAttr('disabled')
} else {
$(this).addClass('disabled', true);
$(this).attr('disabled', 'disabled');
}
});
});
$('.button-checkbox').on('click', '', function (e) {
settings = {
true: {
icon: 'glyphicon glyphicon-unchecked'
},
false: {
icon: 'glyphicon glyphicon-check'
}
};
var button_1 = $('button',this);
var isChecked = $('input', this).is(':checked');
if (button_1.find('.state-icon').length == 0) {
button_1.prepend(' ');
} else {
button_1.find('.state-icon')
.removeClass()
.addClass('state-icon ' + settings[isChecked].icon);
}
if (isChecked) {
$('input', this).removeAttr('checked');
button_1.removeClass('active');
} else {
$('input', this).attr('checked');
$('input', this).prop('checked','true');
button_1.addClass('active');
}
});
// ----------------------- TEST Validate ----------------
$('.need-validate').on('change', function (e) {
var dev_class = $(this).attr('class');
var dev_id = $(this).val();
if (dev_class.includes('validate-netmask')) {
confirm(dev_id);
}
// confirm(dev_id);
});
$('.sccp_test').on('click', function (e) {
var dev_id = [];
// $('table').bootstrapTable('getSelections').forEach(function (entry) {
// dev_id.push(entry['name']);
// });
dv = dev_id;
confirm(dv);
});
// ----------------------- TEST ----------------
$('.test').on('click', function (e) {
var dev_fld = ['onhook', 'connected', 'onhold', 'ringin', 'offhook', 'conntrans', 'digitsfoll', 'connconf', 'ringout', 'offhookfeat',
'onhint', 'onstealable', 'holdconf', 'uriaction'];
// var x=document.getElementById("source_onhook");
// var x=$("#source_onhook")[0];
// console.log(x.length);
var datas = '';
var tmp_val = '';
var dev_opt = '';
for (var i = 0; i < dev_fld.length; i++) {
dev_opt = $('#destination_' + dev_fld[i])[0];
tmp_val = '';
for (var n = 0; n < dev_opt.length; n++) {
if (n > 0) {
tmp_val += ',';
}
tmp_val += dev_opt.options[n].value;
}
datas += dev_fld[i] + '=' + tmp_val + '&';
}
;
// console.log(datas);
});
$('.sccp_update').on('click', function (e) {
// console.log($(this).data('id'));
// ----------------------- Server.keyset form ----------------
//
if ($(this).data('id') === 'keyset_add') {
var dev_cmd = 'updateSoftKey';
if ($(this).data('mode') === 'new') {
dev_cmd = 'updateSoftKey';
}
var dev_fld = ['onhook', 'connected', 'onhold', 'ringin', 'offhook', 'conntrans', 'digitsfoll', 'connconf', 'ringout', 'offhookfeat',
'onhint', 'onstealable', 'holdconf'];
var datas = 'id=' + $('#new_keySetname').val() + '&';
var tmp_val = '';
var dev_opt = '';
for (var i = 0; i < dev_fld.length; i++) {
tmp_val = '';
dev_opt = $('#destination_' + dev_fld[i])[0];
for (var n = 0; n < dev_opt.length; n++) {
if (n > 0) {
tmp_val += ',';
}
tmp_val += dev_opt.options[n].value;
}
datas += dev_fld[i] + '=' + tmp_val + '&';
}
;
}
// ----------------------- Server.model form ----------------
if ($(this).data('id') === 'model_add') {
var dev_cmd = 'model_add';
// var dev_fld = ["model","vendor","dns","buttons","loadimage","loadinformationid","validate","enabled"];
var dev_fld = ["model", "vendor", "dns", "buttons", "loadimage", "loadinformationid", "nametemplate"];
datas = 'enabled=0' + '&';
for (var i = 0; i < dev_fld.length; i++) {
datas = datas + dev_fld[i] + '=' + $('#new_' + dev_fld[i]).val() + '&';
}
;
// $("#add_new_model").modal('hide');
}
if ($(this).data('id') === 'model_apply') {
var dev_cmd = 'model_update';
var dev_fld = ["model", "loadimage", "nametemplate"];
datas = '';
for (var i = 0; i < dev_fld.length; i++) {
datas = datas + dev_fld[i] + '=' + $('#editd_' + dev_fld[i]).val() + '&';
}
;
// $("#edit_model").modal('hide');
}
if (($(this).data('id') === 'model_enabled') || ($(this).data('id') === 'model_disabled')) {
var dev_cmd = $(this).data('id');
var tab_name ='#'+$(this).data('table');
var datas = '';
var i = 0;
$(tab_name).bootstrapTable('getSelections').forEach(function (entry) {
datas = datas + 'model[' + i + ']=' + entry['model'] + '&';
i++;
});
}
// ----------------------- form ----------------
if ($(this).data('id') === 'create-cnf') {
var dev_cmd = 'create_hw_tftp';
}
if ($(this).data('id') === 'delete_hardware') {
var dev_cmd = $(this).data('id');
var datas = '';
var i = 0;
$('table').bootstrapTable('getSelections').forEach(function (entry) {
datas = datas + 'idn[' + i + ']=' + entry['name'] + '&';
i++;
});
if (!confirm(_('Are you sure you wish to delete selected device ?'))) {
dev_cmd = '';
}
}
if ($(this).data('id') === 'reset_dev' || $(this).data('id') === 'reset_token') {
var dev_cmd = $(this).data('id');
var datas = '';
var i = 0;
$('table').bootstrapTable('getSelections').forEach(function (entry) {
datas = datas + 'name[' + i + ']=' + entry['name'] + '&';
i++;
});
if (datas === '') {
if (confirm('Resaet All device')) {
datas = 'name[0]=all';
} else {
dev_cmd = '';
}
}
}
if (dev_cmd !== '') {
$.ajax({
type: 'POST',
url: 'ajax.php?module=sccp_manager&command=' + dev_cmd,
data: datas,
success: function (data) {
// console.log(data);
if (data.status === true) {
if (data.message) {
alert(data.message);
}
if (data.table_reload === true) {
$('table').bootstrapTable('refresh');
}
if (data.reload === true) {
location.reload();
}
} else {
if (Array.isArray(data.message)) {
data.message.forEach(function (entry) {
fpbxToast(entry, 'error', 'error');
});
}
}
}
});
}
});
$('#cr_sccp_phone_xml').on('click', function (e) {
// console.log("asasdasdasdasd");
// console.log($('#update-sccp-phone').find(':selected').data('val'));
});
});
//$("table").on('click-cell.bs.table', function (field, value, row, $element) {
// var id_fld=$element['model']; Работает !
// console.log('Table test: '+ id_fld);
// $('#bt'+id_fld).removeAttr('hidden');
//});
// Bootstrap table Enabled / Disabled buttons ( class="btn-tab-select")
$("table").on('check-all.bs.table', function (rows) {
var id_fld = $(this).data('id');
$(".btn-tab-select").each(function () {
$(this).removeAttr('disabled');
});
// console.log('Table unselect all' + id_fld);
});
$("table").on('check.bs.table', function (e, row) {
var id_fld = $(this).data('id');
$(".btn-tab-select").each(function () {
$(this).removeAttr('disabled');
});
// console.log('Table select ' + id_fld);
});
$("table").on('uncheck.bs.table', function (e, row) {
var id_fld = $(this).data('id');
var id_parent = '#'+$(this).parent().find('table').attr('id');
// console.log(id_parent);
var id_count = $(id_parent).bootstrapTable('getAllSelections').length;
if (id_count < 1) {
$(".btn-tab-select").each(function () {
$(this).attr('disabled', true);
});
}
// console.log('Table unselect ' + id_count);
});
$("table").on('uncheck-all.bs.table', function (rows) {
var id_fld = $(this).data('id');
var id_parent = '#'+$(this).parent().find('table').attr('id');
// console.log(id_parent);
// var id_count = $(id_parent).bootstrapTable('getAllSelections').length;
var id_count = $("table").bootstrapTable('getAllSelections').length;
if (id_count < 1) {
$(".btn-tab-select").each(function () {
$(this).attr('disabled', true);
});
}
// console.log('Table unselect all' + id_fld);
});
//
// On table Click !!!!!!
$("table").on("post-body.bs.table", function () {
// console.log('Table ');
// delete extension
$(this).find(".clickable.delete").click(function () {
var id = $(this).data("id");
if (confirm(_("Are you sure you wish to delete this extension?"))) {
$.post("ajax.php", {command: "delete", module: "core", extensions: [id], type: "extensions"}, function (data) {
if (data.status) {
delete(extmap[id]);
$(".ext-list-sccp").bootstrapTable('remove', {
field: "name",
values: [id.toString()]
});
toggle_reload_button("show");
} else {
alert(data.message);
}
});
}
});
});
function load_oncliсk(e, data) {
// console.log('load_oncliсk');
var add_softkey = false;
var add_btn = false;
if (typeof e.href === 'undefined') {
add_softkey = false;
if (data == '*new*') {
add_softkey = true;
add_btn = true;
}
} else {
if (e.href.indexOf('#edit_softkeys')) {
add_softkey = true;
}
}
if (add_softkey) {
var dev_fld = ['onhook', 'connected', 'onhold', 'ringin', 'offhook', 'conntrans', 'digitsfoll', 'connconf', 'ringout', 'offhookfeat',
'onhint', 'onstealable', 'holdconf'];
if (add_btn) {
document.getElementById("new_keySetname").disabled = false;
data = 'SoftKeyset';
} else {
var datas = $('#softkey-all').bootstrapTable('getRowByUniqueId', data);
}
document.getElementById("new_keySetname").value = data;
document.getElementById("new_keySetname").disabled = !add_btn;
var opts = '';
var opts_idx = -1;
for (var i = 0; i < dev_fld.length; i++) {
opts = $('#destination_' + dev_fld[i] + ' option');
if (opts.length > 0) { // Remove all
$(opts).remove();
$('#source_' + dev_fld[i]).append($(opts).clone());
}
if (!add_btn) {
sv_data = datas[dev_fld[i]].split("
");
opts = $('#source_' + dev_fld[i] + ' option');
for (var n = 0; n < sv_data.length; n++) {
opts_idx = -1;
for (var j = 0; j < opts.length; j++) {
if (opts[j].value === sv_data[n]) {
opts_idx = j;
}
}
if (opts_idx >= 0) {
$('#destination_' + dev_fld[i]).append($(opts[opts_idx]).clone());
$(opts[opts_idx]).remove();
}
}
}
}
}
}
function add_dynamic_input(pe, pclass, vdefault) {
// We'd like a new one, please.
pcls = pe.data('for');
pname = pe.data('id');
pmax = pe.data('max');
jdata = JSON.parse(hex2bin(pe.data('json')));
var last = $("."+pcls+":last"),
ourid = last.data('nextid'),
nextid = ourid + 1;
var html = "