Issabel ISO (Latest): Download Here
Cloud Services: User Portal - Quick Guide
News: Telegram channel
Become a Patron!
  • General
  • SOLICITUDES DE MEJORAS CODIGO - MODULOS

casoft Hola Casoft, he creado un boton rapido con lo que pides, no es lo mas bonito ya que puse texto pero es funcional :D he mantenido el hash (#/detailt....)para poder cambiar entre url a posterior sin problema

lo he creado con javascript pero lo he probado y creo es funcionarl

te explico como implementarlo

edita el fichero

vi /var/www/html/modules/campaign_monitoring/themes/default/informacion_campania.tpl

donde pone al principio casi
<script type="text/x-handlebars" data-template-name="campaign">

<b>{$ETIQUETA_CAMPANIA}:</b>
{literal}
{{view Ember.Select
contentBinding="content"
optionValuePath="content.key_campaign"
optionLabelPath="content.desc_campaign"
valueBinding="key_campaign" }}
{/literal}

{literal}{{outlet}}{/literal}

</script>
añade esto

<!--
creado por hgmnetwork.com 09-07-2018 para pruebas
funcion para obtener el id de campaña en funcion del hash ejemplo #/details/outgoing/10 nos devuelve 10
-->
<script>
function obtener_idcampania (){
//alert("entra");
var URLactual = window.location.hash;
//alert(URLactual);
var idcampania = URLactual.replace("#/details/outgoing/", "");
//console.log(idcampania);
console.log("el id de campania es " + idcampania);
document.location.href="index.php?menu=campaign_monitoring&action=ver_agendadas&idcampana=" + idcampania;
}

</script>

[ <a href="javascript:obtener_idcampania();">ver llamadas Agendadas</a> ]

( puedes quitar lo de hgm eso lo pongo en codigo para saber los cambios que hago si no luego el codigo seria una locura con las pruebas que hago :D )

y justo debajo ya aparece donde se selcciona campaña

quedaria asi

[ <a href="javascript:obtener_idcampania();">ver llamadas Agendadas</a> ]
<script type="text/x-handlebars" data-template-name="campaign/details">
{ Atributos de la campaña elegida }
<table width="100%" >
<tr>
<td><b>{$ETIQUETA_FECHA_INICIO}:</b></td>
<td>{literal}{{fechaInicio}}{/literal}</td>
<td><b>{$ETIQUETA_FECHA_FINAL}:</b></td>

con eso al hacer click en el texto de ver llamadas agendadas cambiaria a la url que me indicaste de la siguiente forma

index.php?menu=campaign_monitoring&action=ver_agendadas&idcampana=(el id que se tenga seleccionado)#...

un ejemplo quedaria asi

https://ip.voip.algo/index.php?menu=campaign_monitoring&action=ver_agendadas&idcampana=4#/details/outgoing/4

espero te ayude cualquier cosa me avisas y la miro a ver si puedo ayudarte en lo maximo posible y lo mas rapido posible porque me parece muy buen aporte e interesante esa opcion de ver las agendadas :D

cualquier cosa que necesites si puedo ayudarte encantado.

    hgmnetwork EXCELENTE!!!!!!

    Ya podemos liberar la primer alpha de el modulo con esas modificaciones, gracias a ese boton que la verdad me habia quedado grande crearlo.

    Aqui monto el link para la descarga, espero crear un repositorio en github como te habian sugerido para mejorar desde ahi las cosas, pero por ahora podemos avanzar por aqui.

    https://casoft.com.co/issabeldev/campaign_monitoring.tgz

    Los Betta tester son bienvenidos!

    casoft subelo a git y de ahi se baja y también realizas un push hacia issabel para siguiente iso que saldra. gracias.

      casoft Amigos el aporte es bueno, pero centralizar en un git va facilitar los cambios y llevar control.

      sobre el archivo tbz en que ruta se debe colocar para ver los cambios.?

        dale un push hacia issabel_foundation así lo tengan en cuenta. Gracias.

          No sale en Github me guiare por tu codigo y lo pruebo y hago pruebas y te voy diciendo pero inicialmente genial :D una cosa mas mejorada y que nos ayudará a muchos ! ahora a probarlo

          PAra hacer el push hay que todavia perfilarlo mas para que el texto del link y demas los use desde los ficheros de idiomas, ya que ahora estaria solo en español, de eso me puedo encargar yo, en cuanto tenga un hueco a probarlo me pongo con los cambios de idioma para hacerlo si le parece bien a casoft

            Una cosa Casoft, descargue tu codigo pero veo muchas carpetas y ficheros hay que subirlos dentro de html/modules/?? si me puedes orientar a como dejarlo instalado para probarlo te lo agradezco,

              Ya quedo listo en GitHub, perdon pero fue culpa de mi inexperiencia! jejej

              Si la idea es remplazar esos archivos por los que estran dentro de la carpeta /var/www/html/modules/campaign_monitoring

              Los reemplazas y listo

              casoft Ok, en cuanto tenga un hueco lo reviso y lo pruebo :D dentro del listado de Agendadas, se podria ver si se ha realizado llamadas anteriores ? no me he fijado en la db como se almacena lo pruebo a l anoche o mañana que espero tener algo mas de tiempo.

              Muy buen aporte Casoft, en cuanto pueda lo pruebo y si me da tiempo lo intento preparar para el uso de idiomas y adaptarlo para pruebas y subirlo a la oficial que seguro muchos lo utilizaran :D

                casoft he modificado a mano ya que tengo mucha parte de codigo retocada por mi y cambiar todo me cambiaria mucho, pero ya lo he podido probar y esta genial.

                He realizado un pequeño cambio a ver que les parece, al darle a ver llamadas agendadas cargaria lo mismo que monitoring y debajo ( en vez de un pagina nueva solo) añade al final las llamadas agendadas de la campaña asi se tiene en la misma pagina y es mas facil cambiar de campaña o realizar cualquier opcion.

                el codigo que he modificado es bien facil solo es añadir esto en el index.php

                buscamos case 'ver_agendadas':

                 break;
                    case 'ver_agendadas':

                //mostramos la informacion de la campaña en la parte superior prueba hgmnetwork.com 10-07-2018
                $sContenido = manejarMonitoreo_HTML($module_name, $smarty, $local_templates_dir);
                //Genera listado con las llamadas programadas
                $sContenido .= ver_agendadas($module_name,$smarty, $local_templates_dir,$pDB,getParameter('idcampana'));
                break;
                default:

                añadimos primero el modulo de la campaña y debajo ponemos la misma variable con . para que añada el resto.

                como les parece mejor ? en un panel por separado o debajo ? se puede poner tambien de mas formas es cuestion de que valoremos cual es mas útil en general.

                Tambien se puede poner al revés, primero las agendadas y debajo la información de la campaña asi no se pierde de vista las llamadas y agentes mientras se revisan las agendadas.

                  He probado a agendar una llamada, pero me sale en blanco, es decir me sale la tabla
                  Llamadas agendadas
                  N.TELEFONO AGENTE FECHA PROGRAMADA HORA PROGRAMADA ESTADO

                  pero sin nada debajo y en la db en calls esta correctamente agendada. igual es que me falta algo por modificar

                  Te pongo los ficheros que he modificado por si me he saltado algo.

                  modulo campain_monitorin crear carpeta libs y dentro

                  todo el codigo que tienes

                  luego en index.php

                  buscar

                  case 'checkStatus':
                  $sContenido = manejarMonitoreo_checkStatus($module_name, $smarty, $local_templates_dir);
                  break;
                  case 'loadPreviousLogEntries':
                  $sContenido = manejarMonitoreo_loadPreviousLogEntries($module_name, $smarty, $local_templates_dir);
                  break;

                  y debajo poner

                  case 'ver_agendadas':
                  //Genera listado con las llamadas programadas
                  $sContenido = ver_agendadas($module_name,$smarty, $local_templates_dir,$pDB,getParameter('idcampana'));
                  break;

                  justo debajo esta

                  default:
                      // Página principal con plantilla
                      $sContenido = manejarMonitoreo_HTML($module_name, $smarty, $local_templates_dir);
                  }
                  return $sContenido;

                  }

                  y añadir la funcion

                  function ver_agendadas($module_name,$smarty, $local_templates_dir,$pDB, $idcampana )
                  {
                  $oBreaks = new PaloSantoBreaks($pDB);
                  $datos=$oBreaks->Ver_Agendadas($idcampana);
                  $micon='<b>Llamadas agendadas</b>
                  <table width="100%">
                  <tr>
                  <td><b>N.TELEFONO</b></td>
                  <td><b>AGENTE</b></td>
                  <td><b>FECHA PROGRAMADA</b></td>
                  <td><b>HORA PROGRAMADA</b></td>
                  <td><b>ESTADO</b></td>
                  </tr>';
                  $cont = count($datos);
                  for ($i=0;$i<=$cont;$i++)
                  {
                  $micon.='<tr>
                  <td>'.$datos[$i][2].'</td>
                  <td>'.$datos[$i][19].'</td>
                  <td>'.$datos[$i][15].'</td>
                  <td>'.$datos[$i][17].'</td>
                  <td>'.$datos[$i][3] .'</td>
                  </tr>';
                  }
                  $micon.= '</table>
                  </div>';
                  return $micon;
                  }

                  igual me falta alguna parte mas por poner ya me dices cuando puedas para poder probarlo
                  gracias!

                    otra cuestion en la tabal calls veo que se puede programar fecha inicial y fecha fin entiendo que es para que haga la llamada entre el dia x al dia y y entre la hora x y la hora y pero en la imagen que pasaste solo sale una fecha y una hora, una vez resuelva lo de poder ver las agendadas añadire la opcion de si hay dos fechas y un rango de horas mostrarlo tambien para dejarlo mas completo y si no hay agente indicado que ponga cualquiera o algo asi para indicar que es un agente libre y no salga en blanco.

                    De pronto son las pequeñas cosas que se me ocurren para dejar mas completo el nuevo codigo

                    espero tus sugerencias tambien a v er que te parecen

                      Hola,

                      Gracias a todos por el estupendo trabajo. Cuando acuerden la mejor manera de incorporar el nuevo módulo por favor hagan un pull request via Github así lo incorporamos al producto de base. Ya hemos incorporado algunas mejoras contribuidas por @cmarodriguez y @hgmnetwork

                      Saludos,

                        asternic espero en breve poder tener tiempo para incorporar esta mejora tambien y poder ver las llamadas agendadas espero en este fin de semana tener mas tiempo y para el lunes o martes ya tenerlo todo listo y poder hacerlo

                          @asternic @hgmnetwork de nuevo por aqui, con ganas de sacar este fin de semana mas avances sobre el modulo para las llamadas agendadas.

                          No se como podamos hacer para ponernos de acuerdo si dejarlo en una pagina aparte o dentro de la misma pagina de el Monitor de campaña.

                          Yo propondria dejarlo aparte ya que el monitor de campaña es solo eso, un reporte mientras que el modulo de llamadas agendadas lo queremos llevar a el punto de podr reasignar agentes, poder cambiar las fechas y demas...
                          Otra cosa es que a futuro se podrian asignar permisos aparte donde solo pueda ver ese reporte o tambien entrar a realizar las modificaciones de agentes y horas...

                          No se que opinen, por ahora lo mantendre aparte (Igual migrarlo es muy sensillo) y espero evolucionar este fin de semana para activar la opcion para cambiar el agente a una llamada agendada.

                          Quedo atento a los comentarios de todos, gracias!

                          casoft En tu experiencia lo ves así, es mejor. Y que la estética de la página sea manejable. Al administrador y al usuario.

                            casoft Me parece bien que sea un módulo separado. Saludos,

                              Pero con testing, usen buenas practicas, por favor, me da cosas revisar el código, jajaja. Si tienen alguna pregunta, diganlo please