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

hgmnetwork efectivamente, ya esta funcional, la idea es que al ingresar a el modulo "Monitoreo de campaña" exista un boton que me lleve a la seccion de el modulo y me pase por parametro el ID de la campaña con el cual voy a hacer la consulta a la base de datos.

Neceisto la ayuda de alguien para crear ese boton dentro de el modulo y que me pase como parametro idcampana con el numero de la campaña. Si alguien sabe como hacerlo de forma rapida le agradezco ya que si lo paso por URL me funciona pero no he podido crear el boton, no se como construirlo en ese modulo.
La URL me pasa asi manualmente y me funciona:
index.php?menu=campaign_monitoring&action=ver_agendadas&idcampana=2

Lo de cambiar el numero de el agente lo voy a revisar creo que es algo viable y sensillo, espero esta noche poder montar el codigo.

    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,