Buenas, en estos días estuve viendo que algunos preguntaron acerca de la posibilidad de poder crear nuevos grupos en el panel de operador de issabel.
No le preste mucha importancia hasta que me toco a mi el pedido por parte del cliente de crear mas grupos.
Así que me puse mano a la obra, mirando y analizando los códigos logre crear varios grupos, comparto el procedimiento con ustedes, yo uso Atom para editar los códigos, igual pueden usar el que les guste.
Primero editamos el siguiente archivo.
/var/www/html/modules/control_panel/libs/paloControlPanelUtils.class.php
en la linea 132 agregamos el ancho para las areas
'left' => array('Area1','Area2','Area3','Area4','Area5','Area6','Queues','Conferences','Parkinglots'),
Se agregan la cantidad de areas que necesitaremos
Luego editamos el siguiente archivo
/var/www/html/modules/control_panel/themes/default/reporte.tpl
Se copia desde la linea 78 hasta la linea 96 e insertamos el codigo en la linea 138 el codigo seria el siguiente.
{ La lista de las extensiones asignadas al área 4 }
{literal}
{{#view App.PBXPanelView controllerBinding="area4" }}
{{view App.EditableTitleView }}
<dd>
{{#if finishedloading}}
{{#view App.SortablePanelView }}
{{#each }}
{{view App.ExtensionView}}
{{else}}
<br/>
{{/each}}
{{/view}}
{{else}}
<img class="icon" src="modules/{/literal}{$module_name}{literal}/images/loading.gif"/>
{{/if}}
</dd>
{{/view}}
{/literal}
Se agrega la cantidad de areas que se necesiten.
Luego editamos el siguiente archivo.
/var/www/html/modules/control_panel/themes/default/js/javascript.js
en la linea 782 agregamos el siguiente codigo:
var_init['ESTADO_PANELES']['Area4']['typedclass'] = App.Extension;
en la linea 796 agregamos lo siguiente:
this.area4 = App.PBXPanelController.create(var_init['ESTADO_PANELES']['Area4']);
en la linea 873 agregamos la variente de nuestro nuevo panel que seria ´area4´:
var controllerList = ['extensions', 'area1', 'area2', 'area3','area4''];
en la linea 941 agregamos ´area4´:
var controlkeys = ['extensions', 'area1', 'area2', 'area3','area4','queues',
'conferences', 'parkinglots', 'dahdi', 'iptrunks'];
en la linea 959 agregamos lo siguiente:
case 'Area4': controller = this.get('area4'); break;
en la linea 1050 agregamos ´Area 4´:
var rightPanels = ['Area1', 'Area2', 'Area3','Area4','Queues', 'Conferences', 'Parkinglots'];
Luego hacemos una copia de la base de datos que esta alojado en: /var/www/db/control_panel_design.db
Bajamos la base de datos en la pc y lo editamos con algun problema, yo uso DB BROWE SQLITE
Seleccionamos la tabla area y agregamos un nuevo campo como en la imagen, se agrega un nuevo campo por cada area que necesitemos. luego se guarda la base de datos y se reemplaza en el servidor.
https://ibb.co/7WFppTp
Espero que le sea de ayuda, cuando tenga tiempo estaré haciendo un video.