En aquest article t'explique com he muntat unes autorespostes baix del camp de descripció de les assistències informàtiques per a no haver de repetir diàriament les mateixes respostes.
Per a mi és mes important les automatitzacions que no l'anomenada "intel·ligència" artificial, perquè jo no vull que el gestor d'assistències Mantis Bug Tracker prenga decssisions per sí mateix o invente informacions, sinó que, com la meua feina està procedimentada i normalment els passos a seguir sempre segueixen uns processos molt similars, és més productiu implementar automatitzacions per tal d'estalviar-me temps i esforços donant les mateixes informacions als usuaris.
Doncs bé, la idea és afegir aquest llistat i botó just baix del textarea on escrivim les notes (o comentaris) a les peticions dels usuaris:
De manera que tenim ja preparades les respostes dels processos més quotidians en l'assistència informàtica de primera línia, i així fem en 1 minut el que abans ens costava 5 minuts, simplement seleccionant la resposta que volem afegir automàticament en el camp de la nota i personalitzant el nom de l'usuari, i ja ho tenim:
Per a fer-ho, cal afegir el formulari de les respostes al fitxer /var/www/mantis_bug_tracker/bugnote_add_inc.php així:
< td width="85%">
< textarea name="bugnote_text" id="bugnote_text" class="" rows="7">
< ?php
// Comprovar si l'usuari és administrador o desenvolupador (nivell >= 70)
// DEVELOPER = 55, MANAGER = 70, ADMINISTRATOR = 90
$t_user_access_level = access_get_project_level( null, auth_get_current_user_id() );
$t_mostrar_textos_predefinits = ( $t_user_access_level >= DEVELOPER );
< !-- -->
if( $t_mostrar_textos_predefinits ) {
? >
< !-- INICI: Listbox amb opcions predefinides -->
< div style="margin-top: 10px; padding: 8px; background-color: #f5f5f5; border-radius: 4px;">
< label for="text_options_select" style="display: inline-block; margin-right: 10px; font-weight: normal;">
Respuestas automáticas:
< /label>
< select id="text_options_select" class="input-sm" style="width: auto; display: inline-block; margin-right: 10px;">
< option value="">-- Selecciona una opció --< /option>
< option value="opcio6">AS-SIM-D02 Respuesta tipo BOP< /option>
< option value="opcio7">AS-SIM-D03 Respuesta tipo SGIR< /option>
< option value="opcio9">AS-SIM-D06 Respuesta tipo Formación< /option>
< option value="opcio8">AS-SIM-D07 Respuesta tipo CAU DIPCAS< /option>
< option value="opcio10">AS-SIM-D07 Respuesta tipo Gestiona< /option>
< option value="opcio1">GU-SIM-P01 Alta de usuario< /option>
< option value="opcio2">GU-SIM-P01 Alta de la cuenta con alias< /option>
< option value="opcio3">GU-SIM-P03 Baja de la cuenta< /option>
< option value="opcio4">GU-SIM-04 Cambio contraseña< /option>
< option value="opcio5">GU-SIM-P09 Alta usuario del buzón interno de denuncias< /option>
< / select>
< button type="button" id="btn_insert_predefined_text" class="btn btn-sm btn-white btn-round">
Inserir text
< /button>
< /div>
< !-- FINAL: Listbox amb opcions predefinides -->
< ?php
}
? >
I afegim al final d'aquest fitxer, l'enllaç a l'script javascript, quasi quan acaba el fitxer, així:
< div class="widget-toolbox padding-8 clearfix">
< input type="submit" class="btn btn-primary btn-white btn-round" value="" />
< /div>
< /div>
< /div>
< /form>
< /div>
< script src="js/inserir_text_predefinit.js">< /script>
< ? php
}
I crearem el nostre script javascript en /var/www/mantis_bug_tracker/js/inserir_text_predefinit.js amb el següent contingut:
// Fitxer: inserir_text_predefinit.js
// Funcionalitat per afegir text predefinit al textarea de notes
//
(function() {
'use strict';
//
// Funció per inserir text predefinit
function insertarTextPredefinit() {
try {
var select = document.getElementById('text_options_select');
var textarea = document.getElementById('bugnote_text');
//
console.log('insertarTextPredefinit: Select trobat:', select);
console.log('insertarTextPredefinit: Textarea trobat:', textarea);
//
if (!select) {
alert('ERROR: No s\'ha trobat el select');
return;
}
//
if (!textarea) {
alert('ERROR: No s\'ha trobat el textarea');
return;
}
//
var opcioSeleccionada = select.value;
console.log('insertarTextPredefinit: Opció seleccionada:', opcioSeleccionada);
//
if (!opcioSeleccionada || opcioSeleccionada === '') {
alert('Important, selecciona una opció del llistat');
return;
}
//
var textAInserir = '';
//
switch(opcioSeleccionada) {
case 'opcio1':
textAInserir = '**Castellano**\n\nBuenos días X,\n\nEn relación a la solicitud recibida, te informamos que hemos creado tu nueva cuenta *nombre.apellido*.\n\nSi se trata de una cuenta asociada a un correo electrónico corporativo, tu correo será "nombre.apellido@dominio.es" y también lo hemos añadido al alias de correo "XXXXX@dominio.es", al cual podrás acceder desde Zimbra en la url https://agenda.dipcas.es \n\nPara mayor seguridad, tu contraseña temporal se te proporcionará aparte.\n\nDebes tener en cuenta:\n\n1) La contraseña que te hemos proporcionado es temporal y de un solo uso. Esto significa que si accedes a cualquier servicio con ella, tu cuenta se bloqueará. Para evitar esto, deberás cambiarte la contraseña incluso antes de iniciar sesión por primera vez. \nLo puedes hacer siguiendo las instrucciones de la infografía que te prestamos a través del siguiente enlace: https://sepam.dipcas.es/infografia \n\n2) Una vez accedas al correo, cuando vayas a enviar un correo podrás enviarlo tanto desde tu cuenta personal como también desde el alias de correo, manteniendo así varias identidades de correo electrónico. Si quieres organizarte bien los correos del alias podrás crearte una carpeta en la columna izquierda del correo y hacer un filtro para que todos tus correos de alias vayan directamente a esta carpeta y no a la bandeja de entrada.\n\nPor último informarte que para cualquier consulta o duda, así como si necesitas asistencia para la configuración de tu equipo, puedes contactar con nosotros a través de https://asistencias.dipcas.es \n\nUn saludo. \n\n**Valenciano**\n\nBon dia X,\n\nAmb relació a la sol·licitud rebuda, t\'informem que hem creat el teu nou compte *nom.cognom*.\n\nSi es tracta d\'un compte associat a un correu electrònic corporatiu, el teu correu serà "nom.cognom@domini.es" i també l\'hem afegit a l\'àlies de correu "XXXXX@domini.es", al qual podràs accedir des de Zimbra en la url https://agenda.dipcas.es \n\nPer a major seguretat, la teua contrasenya temporal se\'t proporcionarà a part.\n\nCal tindre en compte:\n\n1) La contrasenya que t\'hem proporcionat és temporal i d\'un sol ús. Açò significa que si accedeixes amb ella, el teu compte es bloquejarà. Per tal d\'evitar açò, deuràs canviar-te la contrasenya inclòs abans d\'iniciar sessió per primera vegada.\n Ho pots fer seguint les indicacions de la infografia que et proporcionem mitjançant aquest enllaç: https://sepam.dipcas.es/infografia \n\n2) Una vegada accedisques al correu, quan vages a enviar un correu podràs enviar-lo tant des del teu compte personal com també des de l\'àlies de correu, mantenint així diverses identitats de correu electrònic. Si vols organitzar-te bé els correus de l\'àlies podràs crear-te una carpeta en la columna esquerra del correu i fer un filtre perquè tots els teus correus d\'àlies vagen directament a aquesta carpeta i no a la safata d\'entrada.\n\nPer últim, informar-te que per a qualsevol consulta o dubte, així com si necessites assistència per a la configuració del teu equip, pots contactar amb nosaltres mitjançant https://asistencias.dipcas.es';
break;
case 'opcio2':
textAInserir = '**Castellano**\n\nBuenos días X,\n\nEn relación a la solicitud recibida, te informamos que hemos creado tu nueva cuenta *nombre.apellido*.\n\nSi se trata de una cuenta asociada a un correo electrónico corporativo, tu correo será "nombre.apellido@dominio.es" y también lo hemos añadido al alias de correo "XXXXX@dominio.es", al cual podrás acceder desde Zimbra en la url https://agenda.dipcas.es \n\nPara mayor seguridad, tu contraseña temporal se te proporcionará aparte.\n\nDebes tener en cuenta:\n\n1) La contraseña que te hemos proporcionado es temporal y de un solo uso. Esto significa que si accedes a cualquier servicio con ella, tu cuenta se bloqueará. Para evitar esto, deberás cambiarte la contraseña incluso antes de iniciar sesión por primera vez. \n Lo puedes hacer siguiendo las instrucciones de la infografía que te prestamos a través del siguiente enlace: https://sepam.dipcas.es/infografia \n\n2) Una vez accedas al correo, cuando vayas a enviar un correo podrás enviarlo tanto desde tu cuenta personal como también desde el alias de correo, manteniendo así varias identidades de correo electrónico. Si quieres organizarte bien los correos del alias podrás crearte una carpeta en la columna izquierda del correo y hacer un filtro para que todos tus correos de alias vayan directamente a esta carpeta y no a la bandeja de entrada. \n\nPor último informarte que para cualquier consulta o duda, así como si necesitas asistencia para la configuración de tu equipo, puedes contactar con nosotros a través de https://asistencias.dipcas.es \n\nUn saludo. \n\n**Valenciano** \n\nBon dia X, \n\nAmb relació a la sol·licitud rebuda, t\'informem que hem creat el teu nou compte *nom.cognom*.\n\n Si es tracta d\'un compte associat a un correu electrònic corporatiu, el teu correu serà "nom.cognom@domini.es" i també l\'hem afegit a l\'àlies de correu "XXXXX@domini.es", al qual podràs accedir des de Zimbra en la url https://agenda.dipcas.es \n\nPer a major seguretat, la teua contrasenya temporal se\'t proporcionarà a part. \n\nCal tindre en compte:\n\n1) La contrasenya que t\'hem proporcionat és temporal i d\'un sol ús. Açò significa que si accedeixes amb ella, el teu compte es bloquejarà. Per tal d\'evitar açò, deuràs canviar-te la contrasenya inclòs abans d\'iniciar sessió per primera vegada.\nHo pots fer seguint les indicacions de la infografia que et proporcionem mitjançant aquest enllaç: https://sepam.dipcas.es/infografia \n\n2) Una vegada accedisques al correu, quan vages a enviar un correu podràs enviar-lo tant des del teu compte personal com també des de l\'àlies de correu, mantenint així diverses identitats de correu electrònic. Si vols organitzar-te bé els correus de l\'àlies podràs crear-te una carpeta en la columna esquerra del correu i fer un filtre perquè tots els teus correus d\'àlies vagen directament a aquesta carpeta i no a la safata d\'entrada. \n\nPer últim, informar-te que per a qualsevol consulta o dubte, així com si necessites assistència per a la configuració del teu equip, pots contactar amb nosaltres mitjançant https://asistencias.dipcas.es';
break;
case 'opcio3':
textAInserir = '**CASTELLANO**\n\nBuenos días,\nSolicitud realizada. Se ha dado de baja la cuenta de "nombre.apellido".\n\nUn saludo,\n\n**VALENCIANO**\n\nBon dia,\nSol·licitud realitzada. S\'ha donat de baixa el compte de "nom.cognom".\n\nUna salutació,';
break;
case 'opcio4':
textAInserir = '**Castellano**\n\nHola X,\n\nPara tu información, puedes cambiarte la contraseña tú mismo accediendo a http://cambio.dipcas.es/ (es necesario tener un certificado de la ACCV instalado en el navegador o en formato de tarjeta criptográfica).\n\nSi no dispones de certificado digital, por favor debes rellenar el siguiente formulario: https://cloud.dipcas.es/nextcloud/index.php/s/Nueva_contrasena \n\nSaludos.\n\n**Valenciano**\n\nHola X,\n\nPer a la teua informació, et pots canviar la contrasenya tú mateixa accedint a http://cambio.dipcas.es/ (és necessari tenir un certificat de l\'ACCV instal·lat en el navegador o en format de targeta criptogràfica).\n\nSi no disposes de certificat digital, per favor has d\'omplir el formulari següent: https://cloud.dipcas.es/nextcloud/index.php/s/Nueva_contrasena \n\nSalutacions,';
break;
case 'opcio5':
textAInserir = 'Hola [@USUARIO INFORMADOR],\n ya os hemos creado vuestro(s) usuario(s). \n\nTu usuario es "destinatario1" (con correo electrónico [CORREO2@]) \nEl usuario de Lorena es "destinatario2" (con correo electrónico [CORREO2@]) \n\nAmbas habrá recibido ahora mismo un correo automático de la plataforma. Entrad y activad vuestra cuenta, y se le pedirá que meta dos veces una contraseña. La contraseña debe tener 12 caracteres como mínimo (con letras minúsculas, letras mayúsculas, números y algún caracter especial). \n\nLa url pública del buzón interno de denuncias del [NOMBRE DE LA ENTIDAD LOCAL] es https://[URL] \nPara entrar con vuestras credenciales: http://[URL]/#/login \n\nSi queréis que hablamos por teléfono os puedo hacer un repaso del funcionamiento rápidamente para que sepáis entrar y leer denuncias. \n\nCerramos la petición. \n\nSaludos,';
break;
case 'opcio6':
textAInserir = '**Castellano**\n\nBuenos días,\nPara cualquier gestión, duda o asistencia con el BOP debéis enviar un correo a bop@dipcas.es y os atenderán desde el Servicio del Boletín Oficial de la Provincia.\n\nCerramos el ticket.\n\nSaludos.\n\n**Valenciano**\n\nBon dia,\nPer a qualsevol gestió, dubte o assistència amb el BOP heu de enviar un correu a bop@dipcas.es i vos atendran des del Servei del Butlletí Oficial de la Província.\n\nTanquem el ticket.\n\nSalutacions.';
break;
case 'opcio7':
textAInserir = '*Castellano**\n\nBuenos días,\nPara cualquier gestión, duda o asistencia con la OVR o recaudación debéis de mandar un correo electrónico a ovr@dipcas.es y os atenderán desde el Servicio de Recaudación de Diputación.\n\nCerramos el ticket.\n\nSaludos.\n\n**Valenciano**\n\nBon dia,\nPer a qualsevol gestió, dubte o assistència amb l\'OVR o recaptació deveu d\’enviar un correu electrònic a ovr@dipcas.es i vos atendran des del Servei de Recaptació de Diputació.\n\nTanquem el ticket.\n\nSalutacions.';
break;
case 'opcio8':
textAInserir = 'Buenos días,\nNosotros no podemos gestionar cuentas propias de Diputación, solo de entidades locales.\n\nPara cualquier gestión, duda o asistencia relacionada con cuentas de Diputación debéis abrir incidencia en https://cau.dipcas.es \n\nCerramos el ticket.\n\nSaludos';
break;
case 'opcio9':
textAInserir = '**Castellano**\n\nBuenos días,\nPara cualquier gestión, duda o asistencia relacionada con Formación debéis poneros en contacto con la Sección de Formación de la Diputación.\n\nEl teléfono de Formación es 964 359 794 y su correo \'formacion@dipcas.es\'.\n\nCerramos el ticket.\n\nSaludos.\n\n**Valenciano**\n\nBon dia,\nPer a qualsevol gestió, dubte o assistència relacionada amb Formació heu de posar-vos en contacte amb la Secció de Formació de la Diputació.\n\nEl telèfon de Formación és 964 359 794 i el seu correu \'formacion@dipcas.es\'.\n\nTanquem el ticket.\n\nSalutacions.';
break;
case 'opcio10':
textAInserir = 'Buenos días,\n\nPara cualquier consulta o duda sobre la sede electrónica deben contactar con Gestiona (Espublico) en el 976 300 110 o enviando un correo a sac@espublico.com .\n\nSaludos,';
break;
default:
alert('Opció no reconeguda: ' + opcioSeleccionada);
return;
}
//
console.log('insertarTextPredefinit: Text a inserir:', textAInserir);
//
// Afegir el text al textarea
if (textarea.value !== '') {
// Si ja hi ha text, afegir amb dues línies en blanc de separació
textarea.value += '\n\n' + textAInserir;
} else {
// Si està buit, afegir directament
textarea.value = textAInserir;
}
//
console.log('insertarTextPredefinit: Text inserit correctament');
//
// Posar el focus al textarea i moure el cursor al final
textarea.focus();
if (textarea.setSelectionRange) {
textarea.setSelectionRange(textarea.value.length, textarea.value.length);
}
//
// Resetear el select a l'opció per defecte
select.selectedIndex = 0;
//
} catch(error) {
console.error('insertarTextPredefinit: Error:', error);
alert('Error: ' + error.message);
}
}
//
// Funció per inicialitzar els event listeners
function inicialitzarEventListeners() {
console.log('Inicialitzant event listeners per text predefinit...');
//
// Event listener per al botó
var btnInsert = document.getElementById('btn_insert_predefined_text');
if (btnInsert) {
console.log('Botó trobat, afegint event listener');
btnInsert.addEventListener('click', insertarTextPredefinit);
} else {
console.log('AVÍS: No s\'ha trobat el botó btn_insert_predefined_text');
}
//
// Event listener per al select (tecla Enter)
var selectElement = document.getElementById('text_options_select');
if (selectElement) {
console.log('Select trobat, afegint event listener per Enter');
selectElement.addEventListener('keypress', function(e) {
if (e.key === 'Enter' || e.keyCode === 13) {
e.preventDefault();
insertarTextPredefinit();
}
});
} else {
console.log('AVÍS: No s\'ha trobat el select text_options_select');
}
}
//
// Executar quan el DOM estigui carregat
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', inicialitzarEventListeners);
} else {
// DOM ja està carregat
inicialitzarEventListeners();
}
//
})();





