Clase CloudFrameWorkInterface
CloudFrameWorkInterface()
Clase principal para interactuar con el sistema de interface y la cual es utilizada por el resto de clases. Es incluida en CFI (CloudFramework Interface) /app.html
<script src="/logic/app2020.js?v20240122"></script>
Esta clase permite la interacción con el interface de la aplicación principal.
01 - CloudFrameWorkInterface.init(callback)
Este método prepara el entorno inicializando las configuraciones y parámetros necesarios para que CloudFrameWorkInterface funcione correctamente, gestionando la autenticación y las configuraciones de API según las necesidades del entorno y del usuario. Además inicializa varias variables de la clase Core, necesarias para el funcionamiento de la plataforma
Variables:
callback: | (Function) Función que actúa como callback y se ejecutara al finalizar las configuraciones de este método init() |
CloudFrameWorkInterface.init(()=>{ console.log('Framework iniciado')})
02 - CloudFrameWorkInterface.rightModal(payload)
Este método facilita la creación y manejo de modales en la parte derecha de la aplicación. Dichas modales pueden mostrar contenido html proporcionado o bien pueden ser utilizadas para cargar una aplicación creada para tal propósito, además de permitir ciertos parámetros de personalización a través del objeto de configuración "payload"
[2024-09-13]
Se añade la posibilidad de tener múltiples modales abiertas al mismo tiempo en la plataforma.
Variables:
payload (Object) | Objeto de configuración de la modal. Dicho objeto acepta los siguiente parámetros |
payload.title: (String) | Título de la modal |
payload.icon: (String) | Icono para la modal. Ejemplo: 'fa-user' |
payload.size: (String) | Tamaño de la modal. Este parámetro acepta los siguientes valores
|
payload.content: (String) | Estructura html que representa el contenido que se mostrará en la modal. |
payload.url: (String) | Url para cargar la aplicación que se mostrará en la modal. |
payload.onclose: (Function) | Función que actuará como callback y se disparará cuando la modal se cierre |
CloudFrameWorkInterface.rightModal(payload);
{
title:'Modal title', // Modal title
icon:'fa-user', // Modal icon
size:'xl', // Modal sizes: 'sm': small, null: default md size , 'lg': large, 'xl': extra large, 'xxl': 90vw
content: 'Modal html content' // html content for the modal
}
03 - CloudFrameWorkInterface.waitUntilInit(callback)
Este método ejecutará una función cuando el estado de ‘CloudFrameWorkInterface.initiated’ cambie a verdadero. El proceso es recursivo y la función toma un parámetro ‘callback’, que será la función por ejecutar. La comprobación del estado se realiza cada 250 ms.
Variables:
callback: (Function) | Esta función sera ejecutada, cuando la variable CloudFrameWorkInterface.initiated sea verdadera. |
CloudFrameWorkInterface.waitUntilInit(()=>{ console.log('Proceso ejecutado')})
04 - CloudFrameWorkInterface.checkAuth(resolve)
El método verifica si el usuario está autenticado.
Si lo está, importa las variables ‘apiURL’, ‘cloudplatform’ y ‘webKey’ definidas en la configuración del usuario desde ‘Core’ a ‘CloudframeworInterface’. Luego, comprueba la validez del token.
Si el usuario no está autenticado o el token es inválido, se elimina la información del usuario de las cookies y se resetean los datos.
Variables:
resolve: (Function) | Esta función será ejecutada al finalizar las comprobaciones. |
CloudFrameWorkInterface.checkAuth(()=>{ console.log('verificación completada')})
//Output 'verificación completada'
05 - CloudFrameWorkInterface.signInWithUserPassword(email,passw,callback)
Este método permite iniciar sesión mediante correo electrónico y contraseña. Si el inicio de sesión es exitoso, se almacenará el token en las cookies y se guardará la información recibida en el Core.
Variables:
email: (String) | Correo con el que iniciaremos sesión. |
passw: (String) | Contraseña con la que iniciaremos sesión. |
callback: (Function) | Función que sera ejecutada, al finalizar el inicio de sesión. |
CloudFrameWorkInterface.signInWithUserPassword('user@mail.com','pass12345',()=>{ console.log('Sesión iniciada')})
06 - CloudFrameWorkInterface.signInWithDSToken(dstoken,callback)
Este método permite iniciar sesión mediante un token.
El proceso validara el estado del token. Si la comprobación resulta exitosa se almacenará el token en las cookies y se guardará la información del EP recibida, en el Core.
Variables:
dstoken: (String) | Token con el que previamente nos conectamos. |
callback: (Function) | Función que será ejecutada, al finalizar el inicio de sesión. |
CloudFrameWorkInterface.signInWithDSToken('token_12345', ()=>{ console.log('Sesión iniciada')})
07 - CloudFrameWorkInterface.sendForgotPassword(deprecated)
Esta función está en desuso.
08 - CloudFrameWorkInterface.sendRecoveryPassword(pass,token, callback, pnew, multidomain)(deprecated)
Esta función está en desuso.
09 - CloudFrameWorkInterface.signInWithOauthPopUp(social, retUrl,callback)(deprecated)
Esta función está en desuso.
10 - CloudFrameWorkInterface.signInWithOauthUrl(oauth_url,callback)(deprecated)
Esta función está en desuso.
11 - CloudFrameWorkInterface.logOut(callback)
Este método permite cerrar la sesión del usuario.
Al finalizar el proceso, se limpiara la cache y redireccionara al usuario a la pantalla de inicio de sesión.
Variables:
callback: (Function) | Función que será ejecutada, al finalizar la desconexión |
CloudFrameWorkInterface.logOut(()=>{ console.log('Usuario desconectado')})
12 - CloudFrameWorkInterface.initJsonEditors(callback)
Este método activará la librería JSON Editor en aquellos campos que sean de tipo ‘JSON’ y esten dentro de un contenedor con la clases 'show.bs.modal'.
Su uso se puede ver implementado en los CFO para dar formato a elementos de la base de datos de tipo (JSON | Objeto).
Ejemplo:
CloudFrameWorkInterface.initJsonEditors()
13 - CloudFrameWorkInterface.formatJSONFields()
Este método inicializa todos los elementos presentes en el DOM con la clase ‘json-editor’, permitiendo gestionar de forma más sencilla los objetos de tipo JSON. Además, brinda la posibilidad de cambiar la vista entre el modo Árbol o Código.
Ejemplo:
Vista en Modo Arbol:
Vista en Modo Código:
CloudFrameWorkInterface.formatJSONFields()
14 - CloudFrameWorkInterface.checkMarketplaceApps()
La ejecución de este método validará, si la plataforma actual, cuenta con el servicio de omnicanal activo.
Además, esta validación activará en el 'header' el botón para comunicarse a través de ‘WhatsApp’ en caso de que el servicio esté activo y visible en la configuración.
Ejemplo:
CloudFrameWorkInterface.checkMarketplaceApps()
15 - CloudFrameWorkInterface.checkLegal()
El método validará si el usuario conectado ha aceptado la versión más reciente de los términos y condiciones.
En caso de no haberlos aceptado, se mostrará una ventana modal, indicándole información con los nuevos términos y la opción de aceptarlos. De no aceptarlos, se bloqueará el acceso a la plataforma.
Ejemplo:
CloudFrameWorkInterface. checkLegal()
16 - CloudFrameWorkInterface.generateCapitals(name, delimiter)
Esta función capitaliza la primera letra de cada parte de un string, separado por un delimitador y las combina.
Variables:
name: (String) | Cadena de caracteres a capitalizar. |
delimiter: (String) | Valor que separara a 'name' |
CloudFrameWorkInterface.generateCapitals('Cloud=Framework','=');
//Output: 'CF'
17 - CloudFrameWorkInterface.refreshMainMenu(customMenu)
Este método actualiza el menú de navegación con el valor proporcionado en el parámetro ‘customMenu’. Si no se proporciona dicho valor, se recargará el menú con la configuración por defecto.
OJO! Al recargar la página, el menú volverá a su valor por defecto.
Variables:
customMenu: (Object) (Optional) | El objeto debe cumplir con el siguiente formato: CloudFrameWorkInterface.refreshMainMenu({ |
18 - CloudFrameWorkInterface.initAppInterface()
Este método inicia la carga de scripts, estilos y complementos necesarios para el funcionamiento del sistema. El proceso se ejecutará al iniciar sesión y se encargará de inicializar el menú, configurar omnichannel, realizar comprobaciones de términos y condiciones, integrar Firebase y otros aspectos esenciales.
Además, se encargará de definir el header de la aplicación, incluyendo el avatar del usuario y el menú de configuración correspondiente.
redirectUrl: (String)(Optional) | Este parámetro se utiliza para redireccionar a una sección específica del sistema. |
CloudFrameWorkInterface.initAppInterface();
19 - CloudFrameWorkInterface.mainMenu()
Este método se utiliza para gestionar el menú lateral.
La clase cuenta con tres métodos:
- loadMainMenu()
- composeMainMenuHtml()
- activateCmmdClick()
19.1 - CloudFrameWorkInterface.mainMenu.loadMainMenu(_reset_localizations)
El método realiza una petición al servidor para obtener el menú correspondiente a la plataforma. Utiliza como parámetros de consulta la configuración definida en `CloudFrameWorkInterface.cloudplatform`. Además, el método permite un parámetro opcional que indica si se debe reiniciar la localización del menú.
Este método devuelve una promesa que contendrá el resultado de la consulta.
Variables:
_reset_localizations: (Boolean)(Optional) | Reiniciar localización del menú. |
CloudFrameWorkInterface.mainMenu.loadMainMenu()
//Output: Promise
19.2 - CloudFrameWorkInterface.mainMenu.composeMainMenuHtml()
Este método crea el menú correspondiente al ‘Área’ activa. El código generado será una lista en formato HTML (<ul></ul>), que incluirá tanto el menú principal como los submenús.
Ejemplo:
CloudFrameWorkInterface.mainMenu.composeMainMenuHtml()
19.3 - CloudFrameWorkInterface.mainMenu.activateCmmdClick()
Este método permite que cada enlace del menú, se abra en una nueva pestaña, utilizando la combinación de tecla CMD + CLICK.
CloudFrameWorkInterface.mainMenu.activateCmmdClick()
20 - CloudFrameWorkInterface.changeOrg(indexMenu, reloadOrgTemplate, redirectUrl)
Este método nos permite cambiar entre las distintas áreas de la plataforma. Cada área, representa una sección del ERP a la cual se podrá acceder en caso de tener los permisos correspondientes.
Variables:
menuIndex: (Number) | Indice del area al que se quiere cambiar |
reloadOrgTemplate: (Boolean)(Optional) | Esta variable se utiliza para indicarle al sistema que navegue a la primera opción del menú. |
redirectUrl: (String)(Optional) | Cuando se envía el parámetro, se cargará dicho valor en el fragmento de la URL. |
CloudFrameWorkInterface.changeOrg(0,null,'https://mynewpage.page/');
21 - CloudFrameWorkInterface.template()
Este método se usa principalmente para la gestión de plantillas HTML, permitiendo la carga de plantillas desde una URL.
Esta clase cuenta con siete métodos para gestionar las plantillas del CFO:
- renderFromTemplate(templateUrl, data, mode, id, call_func)
- renderFromClientsTemplates(templateUrl, data, mode, id, call_func)
- renderFromScript(idScript, data, mode, id, call_func)
- load(url, node)
- render(html, data, mode, id, call_func)
- pageSetup(page_log)
- getParametersByName()
21.1 - CloudFrameWorkInterface.template.renderFromTemplate(templateName, data, mode, id, callback, version)
El método renderiza una plantilla en un elemento del DOM identificado por la variable ‘id’ y adjunta la información proporcionada en ‘data’.
Variables:
template: (String) | Nombre o URL de la plantilla que queremos cargar |
data: (Objecto) | Informacion que se adjuntara al elemento |
mode: (String) | Esta variable debe tener siempre ‘html’ como valor. Este es el único valor permitido. |
id: (String) | Elemento del DOM donde se hará la carga de la plantilla. |
callback: (Function) | Función que será ejecutada, al terminar el proceso |
version: (deprecated) |
CloudFrameWorkInterface.template.renderFromTemplate('https://app.cloudframework.app/404.html',{},'html','js-page-content',()=>{console.log('Termino la carga')})
21.2 - CloudFrameWorkInterface.template.renderFromClientsTemplates(templateName, data, mode, id, callback, version)
El método renderiza una plantilla en un elemento del DOM, utilizando la URL especificada en la variable templateUrl. Esta plantilla puede ser un archivo HTML o un archivo HTM del Framework Mustache.
La diferencia clave entre esta función y CloudFrameWorkInterface.template.renderFromTemplate es que aquí se puede cargar una plantilla local desde la ruta ‘/ajax/client_renders/’
Variables:
template: (String) | Nombre o URL de la plantilla que queremos cargar |
data: (Objecto) | Informacion que se adjuntara al elemento |
mode: (String) | Esta variable debe tener siempre ‘html’ como valor. Este es el único valor permitido. |
id: (String) | Elemento del DOM donde se hará la carga de la plantilla. |
callback: (Function) | Función que será ejecutada, al terminar el proceso |
CloudFrameWorkInterface.template.renderFromClientsTemplates('archive.html',{},'html','js-page-content',()=>{console.log('Termino la carga')})
21.3 - CloudFrameWorkInterface.template.renderFromScript(idScript,data,mode,id, callback)
El método cargará una plantilla Mustache (predefinida*) utilizando el parámetro idScript como referencia.
* Nota: En el archivo cfo_mustache_templates.htm se encuentra la lista con todas las plantillas predefinidas disponibles.
Variables:
idScript: (String) | id de la plantilla |
data: (Objecto) | Informacion que se adjuntara al elemento |
mode: (String) | Esta variable debe tener siempre ‘html’ como valor. Este es el único valor permitido. |
id: (String) | Elemento del DOM donde se hará la carga de la plantilla. |
callback: (Function) | Función que será ejecutada, al terminar el proceso |
CloudFrameWorkInterface.template.renderFromScript('template_right_modal',{},'html','js-page-content',()=>{console.log('Termino la carga')})
21.4 - CloudFrameWorkInterface.template.load(url, node)
El método carga un archivo desde la variable ‘url’ en un elemento del DOM definido en la variable ‘node’
Variables:
url: (String) | Dirección URL de la plantilla. |
node: (String) | Elemento del DOM donde cargara el archivo. |
CloudFrameWorkInterface.template.load('https://core20.web.app/ajax/tpl/cfo_mustache_templates.htm', 'cfo_mustache_scripts')
21.5 - CloudFrameWorkInterface.template.render(html,data,mode,id, callback)
El método cargará código HTML en un elemento del DOM, identificado por la variable ‘id’ y adjuntará la información proporcionada en ‘data’.
Variables:
html: (String) | Variable con el código HTML a renderizar. |
data: (Object) | Este objeto tendrá los datos y lógica necesarios para renderizar la plantilla. |
mode: (String) | Esta variable debe tener siempre ‘html’ como valor. Este es el único valor permitido. |
id: (String)(Optional) | Elemento del DOM donde se hará la carga de la plantilla. De no estar definido, se usara #content. |
callback: (Function) | Función que será ejecutada, al terminar el proceso |
CloudFrameWorkInterface.template.render('<div>Test<div>',{},'html','js-page-content',()=>{console.log('Termino la carga')})
21.6 - CloudFrameWorkInterface.template.pageSetUp(pageName)
Este método es crucial en cada nueva pantalla. Al crear o navegar a una nueva pantalla, debes ejecutar esta función de forma inicial. Con esto, se garantizará el correcto funcionamiento del sistema.
Variables:
pageName: (String) | Nombre de la página |
CloudFrameWorkInterface.template.pageSetUp('My cloudframework page')
21.7 - CloudFrameWorkInterface.template.getParametersByName()
Al ejecutar este método, obtendrás un objeto con los parámetros de la URL en la página actual.
//Ejemplo de URL http://web.com/app.html#https://start.com/dashboard.html?param=user_config&otherparam=admin
CloudFrameWorkInterface.template.getUrlParams()
//Output {param: 'user_config', otherparam: 'admin'}
22 - CloudFrameWorkInterface.jarvis(deprecated)
Esta función está en desuso.
23 - CloudFrameWorkInterface.error(title,content)
Este método, imprime en la consola una línea de error.
Variables:
title: (String) | Nombre para identificar el error. |
content: (any) | Contenido del error que se mostrara en la consola. |
CloudFrameWorkInterface.error('Título del error', {'message': 'Esto es un error', code: 400});
//Output: [CloudFrameWorkInterface.error] Título del error {message: 'Esto es un error', code: 400}
24 - CloudFrameWorkInterface.printDebug(deprecated)
Este método utiliza Core.log.print que está en desuso.
25 - CloudFrameWorkInterface.renderAPIError(response, elementId)
Este método renderizará un mensaje de error en un elemento del DOM. Aunque está diseñado para las respuestas de la API, también puede utilizarse en cualquier otro contexto.
Ejemplo:
Variables:
response: (Object) | El resultado de la consulta generado por la API se tomará en cuenta el campo ‘code’ en caso de estar presente. Si no está presente, se utilizará el primer elemento del arreglo en ‘errors’. |
elementId: (String) | Id del elemento en el DOM, donde se adjuntara el mensaje de error. |
CloudFrameWorkInterface.renderAPIError({ code: 'not-found', errors: ['Not Found [Info not found]','Second error'] }, 'app')
26 - CloudFrameWorkInterface.alertBox(deprecated)
Esta función está en desuso.
27 - CloudFrameWorkInterface.newAlertBox(type, title, message, time, url)
Al ejecutar este método, se mostrará una ventana estilo ‘toast’ en la que podremos presentar información al usuario de manera breve y no intrusiva. Este enfoque es útil para notificar sobre eventos, errores o cualquier otro mensaje relevante.
Ejemplo:
Variables:
type: (String) | Con esta variable podremos indicar el tipo de mensaje toast. Los disponibles son ‘ success | error | warning | info’ |
title: (String) | Título del mensaje |
message: (String) | Descripción detallada del mensaje |
time: (String) (Optional) | Duración del mensaje en segundos (8s por defecto). Si el valor es -1 el mensaje queda fijo hasta que lo cierre el usuario. |
url: (String) (Optional) | Usa este parámetro, si quieres redireccionar al usuario a algún lugar, después de tocar el mensaje. |
CloudFrameWorkInterface.newAlertBox('success', 'Este es el titulo', 'Este es el mensaje',5, 'https://app.cloudframework.app/');
28 - CloudFrameWorkInterface.copyToClipBoard(strToCopy, textSuccess)
Al ejecutar este método, podremos copiar un texto al portapapeles.
Ejemplo:
Variables:
strToCopy: (String) | Texto a copiar al portapapeles |
textSuccess: (String) | Mensaje informativo a mostrar |
CloudFrameWorkInterface.copyToClipBoard('Texto para el portapapeles', 'Listo copiaste')
29 - CloudFrameWorkInterface.getServerUrlFromHash()
Este método retorna la ruta base del proyecto. Su función principal es permitirnos identificar si estamos ejecutando el proyecto en local o en el servidor.
Esto es útil para adaptar el comportamiento de la aplicación según el entorno en el que se encuentre.
CloudFrameWorkInterface.getServerUrlFromHash();
//Output: Desde el Hosting https://core20.web.app
//Output: Desde el servidor local http://localhost:5000
30 - CloudFrameWorkInterface.cfiEmitter(scope)
Este método permite agregar la opción de emisor de eventos a un objeto. Recibe como parámetro un objeto al cual se le agregará la capacidad de emitir, crear o eliminar eventos. Es útil para implementar patrones de observación y notificación en tu aplicación.
Variables:
scope: (Object) | Objeto para gestionar eventos. |
//Crear emisor
let emisor = {};
CloudFrameWorkInterface.cfiEmitter(emisor);
//Emitir un evento:
emisor.emit('something_loaded');
//Esperar que se emita en evento
emitter.on('something_loaded', () => {
// Hacer algo al recibir la notificación del evento.
})
31 - CloudFrameWorkInterface.initFirebase()
Este método, inicia la conexión con firebase. (SOLO PARA PROYECTO CLOUDFRAMEWORK)
Es complementario a los métodos:
- CloudFrameWorkInterface.getFirebaseJWT()
- CloudFrameWorkInterface.firebaseCustomAuth()
32 - CloudFrameWorkInterface.getFirebaseJWT()
El método hace una consulta a la API de CFW para solicitar un token de autenticación. Este token será usado para la conexión del usuario con Firebase.
33 - CloudFrameWorkInterface.firebaseCustomAuth()
Este método conecta al usuario a la plataforma de Firebase, usando un token personalizado. Este token permite al usuario acceder al Firestore.
El token se crea desde CloudFrameWorkInterface.getFirebaseJWT()
35 - CloudFrameWorkInterface.initWebAppNotifications()
El método inicia la recepción de notificaciones push en el navegador. Al ejecutarlo, se le pedirá al usuario permisos para mostrar notificaciones.
36 - CloudFrameWorkInterface.utils()
Esta clase proporciona un conjunto de funciones utilitarias diseñadas para reutilizar tareas comunes y simplificar el código.
En total, cuenta con 16 métodos utilitarios que abordan diversas funcionalidades.
- dateToTimezone(date, in_format, out_format)
- timezoneToUTC(date, in_format, out_format)
- slugify(text)
- removeHtmlCode(html)
- getInitials(glue)
- generateTextAvatar(fullName, color)
- loadScripts(urls)
- loadCss(url, forceReload, id)
- isColor(color, returnType)
- hexToRgb(hex)
- hexToRgba(hex, opacity)
- rgbToHex(color)
- colorReduceBrightness(color, percent, exitFormat)
- colorIncreaseBrightness(color, percent, exitFormat)
- deleteElementFromDomObserver(idElemento, callbackFunction)
- anchor(id)
36.01 - CloudFrameWorkInterface.utils.dateToTimezone(date, in_format, out_format)
El método dateToTimezone convierte una cadena de caracteres o una variable de tipo Date en una fecha. La fecha se ajustará de UTC a la zona horaria definida en Core.user.info.User.UserTimeZone
Variables:
date: (String | Date) | Fecha a convertir |
in_format: (String)(Optional) | Formato inicial de la fecha. |
out_format: (String)(Optional) | Formato de salida de la fecha. |
CloudFrameWorkInterface.utils.dateToTimezone(new Date(), '', 'D MMM YY')
//Output: '11 jul. 24'
CloudFrameWorkInterface.utils.dateToTimezone('11 jul. 24', 'D MMM YY', 'DD-MM-YYYY')
//Output: '11-07-2024'
36.02 - CloudFrameWorkInterface.utils.timezoneToUTC(date, in_format, out_format)
El método convierte una cadena de caracteres o una variable de tipo Date en una fecha. La fecha se ajustará de la zona horaria local a UTC.
Variables:
date: (String | Date) | Fecha a convertir |
in_format: (String)(Optional) | Formato inicial de la fecha. |
out_format: (String)(Optional) | Formato de salida de la fecha. |
CloudFrameWorkInterface.utils.timezoneToUTC('2022-07-10 12:00', 'YYYY-MM-DD HH:mm', 'DD-MM-YYYY HH:mm')
//Output: '10-07-2022 10:00'
CloudFrameWorkInterface.utils.timezoneToUTC(new Date(), '', 'DD-MM-YYYY HH:mm')
//Output: '10-07-2022 21:50'
36.03 - CloudFrameWorkInterface.utils.slugify(text)
El método convierte una cadena de caracteres en una versión más legible para las URLs. Esto es útil para asegurarte de que los caracteres especiales se codifiquen correctamente y no causen problemas al formar parte de una dirección web.
Variables:
text: (String) | Cadena de caracteres a a covertir |
CloudFrameWorkInterface.utils.slugify('the !cloud framework#$! @!experience') //Output: 'the-cloud-framework-experience'
36.04 - CloudFrameWorkInterface.utils.removeHtmlCode(html)
El método elimina todo el código HTML presente en una cadena de caracteres. Esto es útil para asegurarte de que el texto no contenga etiquetas HTML y sea adecuado para su uso en contextos donde se requiere texto plano.
Variables:
text: (String) | Cadena de caracteres a a covertir |
CloudFrameWorkInterface.utils.removeHtmlCode('<div> <h1>CFW</h1> <p>Cloud framework </p></div> Eliminado')
//Output 'eliminado'
36.05 - CloudFrameWorkInterface.utils.getInitials(glue)
Esta función capitaliza la primera letra de cada parte de un string, separado por un delimitador y las combina.
Variables:
glue: (String) | Cadena de caracteres a capitalizar. |
CloudFrameWorkInterface.utils.getInitials('Cloud Framework')
//Output 'CF'
36.06 - CloudFrameWorkInterface.utils.generateTextAvatar(fullName, color)
Este método genera una imagen en formato Base64 para un avatar, basado en el nombre y el color proporcionados
Ejemplo:
Variables:
fullName: (String) | Nombre del avatar |
color: (String) | Color en formato hexadecimal, para el fondo del Avatar |
CloudFrameWorkInterface.utils.generateTextAvatar('Heysser aguilera', '#674EA7')
//Output 'data:image/png;base64,iVBORw0KGgoAAAAN...
36.07 - CloudFrameWorkInterface.utils.loadScripts(urls)
Este método nos permite cargar multiples scripts de forma asincrónica. Si el script ya está cargado, se resuelve inmediatamente.
El método devuelve una promesa que se resuelve cuando se cargan todos los scripts.
Variables:
urls: (Array<String> | String) | Arreglo con las URLs a cargar. |
CloudFrameWorkInterface.utils.loadScripts(['https://cfw-cdn.web.app/libs/vuex/vuex.min.js', 'https://js.stripe.com/v3/' ])
36.08 - CloudFrameWorkInterface.utils.getFromBetween
Este objeto nos permite extraer los valores presentes entre dos puntos de una cadena de caracteres.
Los pasos son los siguientes:
- Definir la cadena de caracteres CloudFrameWorkInterface.utils.getFromBetween.string = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.'
- Ejecutar CloudFrameWorkInterface.utils.getFromBetween.getFromBetween('ipsum', 'consectetur')
- Resultado: ' dolor sit amet, '
Variables:
string: (String) | Cadena de caracteres completa |
getFromBetween(textStart, textEnd) | Función para obtener los valores entre dos puntos. (solo la primer concurrencia) |
removeFromBetween(textStart, textEnd) | Función para eliminar los valores entre dos puntos. |
getAllResults(textStart, textEnd) | Función para obtener los valores entre dos puntos. (todas las concurrencias. |
36.09 - CloudFrameWorkInterface.utils.loadCss(url, forceReload, id)
Este método nos permite cargar un archivo CSS. Si el script ya está cargado, no se recarga.
Variables:
url: (String) | URL con el archivo CSS a cargar |
forceReload: (Boolean)(Optional) | Forzar la recarga del archivo |
id: (String)(Optional) | Identificador del archivo a cargar. |
CloudFrameWorkInterface.utils.loadCss('https://cfw-cdn.web.app/libs/vuetify2/vuetify@2.6.15_dist.min.css');
36.10 - CloudFrameWorkInterface.utils.isColor(color, returnType)
Este método nos permite cargar un archivo CSS. Si el script ya está cargado, no se recarga.
Variables:
url: (String) | URL con el archivo CSS a cargar |
forceReload: (Boolean)(Optional) | Forzar la recarga del archivo |
id: (String)(Optional) | Identificador del archivo a cargar. |
CloudFrameWorkInterface.utils.loadCss('https://cfw-cdn.web.app/libs/vuetify2/vuetify@2.6.15_dist.min.css');
36.11 - CloudFrameWorkInterface.utils.hexToRgb(hex)
Este método convierte un hexadecimal a formato RGB
Variables:
hex: (String) | Valor a convertir |
CloudFrameWorkInterface.utils.hexToRgb('#FF0000');
// Output: "rgb(255, 0, 0)"
CloudFrameWorkInterface.utils.hexToRgb('#F00');
// Output: "rgb(255, 0, 0)"
CloudFrameWorkInterface.utils.hexToRgb('invalid_hex_code');
// Output: null
36.12 - CloudFrameWorkInterface.utils.hexToRgba(hex, opacity)
Este método convierte un hexadecimal a formato RGBa
Variables:
hex: (String) | Valor a convertir |
opacity: (number) [0,1] | Opacidad del color |
CloudFrameWorkInterface.utils.hexToRgba('#FF0000',0.2);
// Output: "rgb(255, 0, 0, 0.2)"
36.13 - CloudFrameWorkInterface.utils.rgbToHex(color)***
Este método convierte un valor RGB a formato hexadecimal.
Variables:
color: (String) | Valor a convertir |
opacity: (number) [0,1] | Opacidad del color |
CloudFrameWorkInterface.utils.hexToRgba('#FF0000',0.2);
// Output: "rgb(255, 0, 0, 0.2)"
36.14 - CloudFrameWorkInterface.utils.colorReduceBrightness(color, percent, exitFormat)
Este método reduce el brillo de un color en formato RGB o Hexadecimal.
Variables:
color: (String) | Valor a convertir |
percent: (number) [0,1] | Valor entre uno y cero al que se reducirá el brillo del color. |
exitFormat: (String) | Fomato de salida ('hex' || 'rgb') |
CloudFrameWorkInterface.utils.colorReduceBrightness('rgb(255,0,0)',0.1);
// Output: '#ff0000'
CloudFrameWorkInterface.utils.colorReduceBrightness('rgb(255,0,0)',1);
// Output: '#fc0000'
36.15 - CloudFrameWorkInterface.utils.colorIncreaseBrightness(color, percent, exitFormat)
Este método reduce el brillo de un color en formato RGB o Hexadecimal.
Variables:
color: (String) | Valor a convertir |
percent: (number) [0,1] | Valor entre uno y cero al que se reducirá el brillo del color. |
exitFormat: (String) | Fomato de salida ('hex' || 'rgb') |
CloudFrameWorkInterface.utils.colorIncreaseBrightness('rgb(255,0,0)',0.1);
// Output: '#ff0000'
CloudFrameWorkInterface.utils.colorIncreaseBrightness('rgb(255,0,0)',1);
// Output: '#ff0303'
36.16 - CloudFrameWorkInterface.utils.deleteElementFromDomObserver(idElemento, callbackFunction)
Este método activa un observador de cambios, en el hijo de un nodo del elemento del DOM.
Variables:
idElemento: (String) | ID del elemento a observar cambios. |
callbackFunction: (Function) | Función que se ejecutará cada vez que se detecte un cambio. |
CloudFrameWorkInterface.utils.deleteElementFromDomObserver('id_element', ()=>{
console.log("Child changed")
});
36.17 - CloudFrameWorkInterface.utils.anchor(idElemento)
Este método crea un scroll a la parte superior de un elemento del DOM.
Variables:
id: (String) | ID del elemento al que se hará scroll. |
CloudFrameWorkInterface.utils.anchor('node_ecm_rows');
37 - CloudFrameWorkInterface.confirmationDialog(params)
Este método nos permite mostrar una ventana de confirmación o de notificación.
Variables:
params: (Object) | Objeto para gestionar la información de los eventos. |
params.type: (String) | Entre los valores disponibles están:
|
params.title: (String) | Titulo de la notificación |
params.message: (String) | Descripción a mostrar en la ventana |
params.label_confirm: (String) | Texto para el botón de confirmar |
params.label_cancel: (String) | Texto para el botón de cancelar |
params.callback: (String) | Función callback que retornará un booleano. True en caso de clicar botón de confirmación, False para no acepto (en el caso de type = 'confirm' |
Ejemplo:
// Type: Notificación
CloudFrameWorkInterface.confirmationDialog({
title:'Notificación',
type: 'dialog',
message: 'Esta es una ventana de notificación',
callback: ()=>{},
label_confirm: 'Aceptar',
})
// Type: Confirmation
CloudFrameWorkInterface.confirmationDialog({
title:'Confirmación',
type: 'confirm',
message: 'Esta es una ventana de Confirmación',
callback: (event)=>{ console.log('Confirmed modal', event)},
label_confirm: 'OK',
label_cancel: 'Cancelar'
})
38 - CloudFrameWorkInterface.getPlatformAssets()
Con este método podemos obtener el archivo de configuración de la plataforma actual. La respuesta será una promesa.
CloudFrameWorkInterface.getPlatformAssets()
//Output
{
"cloudplatform": "cloudframework",
"name": "CloudFrameWork",
"cfi_api": "https://api.cloudframework.io/core/cfi",
"cfi_login_api": "https:///api.cloudframework.io/siginup/v1/cloudframework/in",
"url_logo": "https://storage.googleapis.com/cloudframework-public/images/cloudframework/logo-cloudframework.svg",
"url_favicon": "https://storage.googleapis.com/cloudframework-public/static/app/2021/img/logo-cfw-favicon.png?v2",
"url_backgrounds": [
"https://storage.googleapis.com/cloudframework-public/images/cloudframework/cloudframework-slider1.jpg",
"https://storage.googleapis.com/cloudframework-public/images/cloudframework/cloudframework-slider2.jpg"
],
"theme_color": "#0fcad8",
"menu_config": {
"theme": "custom",
"_text_color": "#333",
"text_active_color": "#77d3da",
"_background_color": "#8edde5",
"_icon_color": "#5A4FA2"
},
"allow_mail_recovery": true,
"allow_login_password": true,
"allow_login_google": false,
"allow_login_facebook": false,
"recovery_password_method": "code",
"allow_login_twitter": false,
"password_strong_validation": true,
"version": "20240708104330",
"portal_users": false,
"portal_users_client_id": null,
"http_referer": "http://localhost:9998/",
"hostname": "localhost",
"marketplace": [ ]
}
39 - CloudFrameWorkInterface.setPlatform()
Este método carga en cache y en el Core, la configuración inicial de la plataforma desde la API. La respuesta es una promesa.
CloudFrameWorkInterface.setPlatform()
//Output
{
"cloudplatform": "cloudframework",
"name": "CloudFrameWork",
"cfi_api": "https://api.cloudframework.io/core/cfi",
"cfi_login_api": "https:///api.cloudframework.io/siginup/v1/cloudframework/in",
"url_logo": "https://storage.googleapis.com/cloudframework-public/images/cloudframework/logo-cloudframework.svg",
"url_favicon": "https://storage.googleapis.com/cloudframework-public/static/app/2021/img/logo-cfw-favicon.png?v2",
"url_backgrounds": [
"https://storage.googleapis.com/cloudframework-public/images/cloudframework/cloudframework-slider1.jpg",
"https://storage.googleapis.com/cloudframework-public/images/cloudframework/cloudframework-slider2.jpg"
],
"theme_color": "#0fcad8",
"menu_config": {
"theme": "custom",
"_text_color": "#333",
"text_active_color": "#77d3da",
"_background_color": "#8edde5",
"_icon_color": "#5A4FA2"
},
"allow_mail_recovery": true,
"allow_login_password": true,
"allow_login_google": false,
"allow_login_facebook": false,
"recovery_password_method": "code",
"allow_login_twitter": false,
"password_strong_validation": true,
"version": "20240708104330",
"portal_users": false,
"portal_users_client_id": null,
"http_referer": "http://localhost:9998/",
"hostname": "localhost",
"marketplace": [ ]
}
40 - CloudFrameWorkInterface.calculateColors()
Este método crea y agrega variables de CSS para el tema de SmartAdmin. Estas variables se crean en el :root de la cabecera HTML.
Variables:
primary: (String) | Valor hexadecimal con el color primario de la plataforma |
Ejemplo:
CloudFrameWorkInterface. calculateColors('#6610f2')
41 - CloudFrameWorkInterface.hexToHSL(hex)
Este método convierte un hexadecimal a formato HSL
Variables:
hex: (String) | Valor a convertir |
CloudFrameWorkInterface.hexToHSL('#6610f2');
// Output: "263,89.7%,50.6%"
42 - CloudFrameWorkInterface.jsonPrettyPrint()
Este método convierte un JSON en código HTML, creando una etiqueta <span> para cada ‘key’ y otra para cada ‘value’ del JSON.
Variables:
hex: (String) | Valor a convertir |
CloudFrameWorkInterface.jsonPrettyPrint({"key1": 'text example',"key2": 'test text description'})
//Output '{\n <span class="json-key" style="color: #333">test1</span>: <span class="json-string" style="color: #27a9b1">"12345"</span>,\n <span class="json-key" style="color: #333">test2</span>: <span class="json-string" style="color: #27a9b1">"test text description"</span>\n}'
43 - CloudFrameWorkInterface.centerModal(payload)
Este método facilita la creación y manejo de modales en la parte central de la aplicación. Dichas modales pueden mostrar contenido html proporcionando en la variable 'payload.content' o, pueden ser utilizadas para cargar una pagina desde una URL.
[2024-09-13]
Se añade la posibilidad de tener múltiples modales abiertas al mismo tiempo en la plataforma.
Variables:
payload (Object) | Objeto de configuración de la modal. Dicho objeto acepta los siguiente parámetros |
payload.title: (String) | Título de la modal |
payload.icon: (String) | Icono para la modal. Ejemplo: 'fa-user' |
payload.size: (String) | Tamaño de la modal. Este parámetro acepta los siguientes valores
|
payload.content:(String) | Estructura html que representa el contenido que se mostrará en la modal. |
payload.url: (String)(Optional) | De estar definido, se hará una llamada HTTP a la URL , la respuesta será almacenada en la variable 'payload.content' |
payload.onclose: (Function) | Función que actuará como callback y se disparará cuando la modal se cierre |
payload.buttons: (Array)(Optional) | De estar presente, se agregarán los botones en la parte inferior de la modal. |
payload.buttons[x].action | Función que actuará como evento del botón. |
payload.buttons[x].icon | Icono para el botón |
payload.buttons[x].title | Texto para el botón |
CloudFrameWorkInterface.centerModal({
title:'Modal title', // Modal title
icon:'fa-user', // Modal icon
modal_size:'xl', // Modal sizes: 'sm': small, null: default md size , 'lg': large, 'xl': extra large, 'xxl': 90vw
content: 'Modal html content' // html content for the modal
});
44 - CloudFrameWorkInterface.checkTagManagerScript()
El método verifica si la plataforma tiene un script de Tag Manager definido. Si está definido, se agregará en la cabecera.
La verificación se realiza comprobando la variable CloudFrameWorkInterface.platformData.platform.tagmanager
CloudFrameWorkInterface.checkTagManagerScript();
45 - CloudFrameWorkInterface.checkCustomFooter()
El método verifica si la plataforma tiene activo un pie de página personalizado. Si está definido, se agregará en la parte inferior de la página.
La verificación se realiza comprobando la variable CloudFrameWorkInterface.platformAssets.custom_footer
CloudFrameWorkInterface.checkCustomFooter();
46 - CloudFrameWorkInterface.checkUnsubscribeMessage()
Este método verifica si el usuario tiene una subscripción activa o no en la plataforma. El método calculará la diferencia de tiempo entre la fecha actual y una fecha límite especificada; en función de esta diferencia, generará un mensaje informativo del tiempo restante de subscripción.
Los mensaje varian según el tiempo restante.
- Un día o más: 'Falta(n) X día(s)'
- Menos de un día: 'Falta(n) X hora(s)'
- Tiempo expirado: ''Periodo agotado. Contacte con CloudFramework
CloudFrameWorkInterface.checkUnsubscribeMessage();
47 - CloudFrameWorkInterface.Webapps()***
Este método, nos permite crear y cargar una aplicación Web usando VUE, dentro del sistema de CFW.
Esta clase cuenta con una variable y un método para la carga de scripts de forma dinámica.
Archivo de ejemplo:
48 - CloudFrameWorkInterface.cleanUpUrlVariables()
Este método eliminará de la pagina actual el fragmento de la URL, esta acción no hará una recarga de la página.
//Original URL
https://app.cloudframework.app/app.html#https://core20.web.app/ajax/cfa.html?api=%2Ferp%2Fpeople-pannels&l=developersnbsp__a__0
CloudFrameWorkInterface.cleanUpUrlVariables();
//Output
https://app.cloudframework.app/app.html
49 - CloudFrameWorkInterface.signinWithERPCode()
La ejecución de este método permite iniciar sesión utilizando dos parámetros. Este método retornará una promesa y, para ejecutarla de forma satisfactoria debemos incluir en la URL los parámetros ‘ClientId’ y ‘ERPCode’.
//Example URL
https://app.cloudframework.app/app.html?ClientId=1234&ERPCode=code1234
//Method execution
CloudFrameWorkInterface.signinWithERPCode();
//Output
//Successful promise: Redirection to Dashboard Area.
//Unsuccessful promise: Redirection to Error Area.
50 - CloudFrameWorkInterface.signinWithERPAccessToken()
La ejecución de este método permite iniciar sesión, usando el parámetro ERPAccessToken definido en la URL.
El método retornará una promesa con la validación de ERPAccessToken
//Example URL
https://app.cloudframework.app/app.html?ERPAccessToken=ERP_ACCESS_CODE
//Method execution
CloudFrameWorkInterface.signinWithERPAccessToken();
//Output
//Successful promise: Redirection to Main Area.
//Unsuccessful promise: Error page
51 - CloudFrameWorkInterface.scriptsLoader()
Este método se usa principalmente para cargar scripts en formato '.js'.
Esta clase cuenta con cinco métodos para gestionar los scripts
- init(payload)
- getSrcBase(src)
- documentScripts()
- documentScriptBases()
- _load()
51.1 - CloudFrameWorkInterface.scriptsLoader.init(payload)
Con este método podremos cargar una lista de scripts. Para ello, se debe pasar una arreglo de tipo String, en la variable 'payload.scripts' a la función: CloudFrameWorkInterface.scriptsLoader.init(payload)
Variables:
payload: (Object) | Objeto de configuración de la carga de scripts. |
payload.callback: (Function) | Función que será ejecutada, al terminar la carga de los scripts |
payload.scripts: (Array) | Arreglo de tipo String, con las URLs de los scripts a cargar. |
CloudFrameWorkInterface.scriptsLoader.init({
callback: () => {},
scripts: ['https://cfw-cdn.web.app/libs/vee-validate/vee-validate@3.4.14.min.js']})
51.2 - CloudFrameWorkInterface.scriptsLoader.getSrcBase(src)
El método toma un string en el parámetro 'src' y devuelve un substring con la ultima ocurrencia del carácter '/'
Variables:
str: (String) | Cadena en formato URL |
CloudFrameWorkInterface.scriptsLoader.getSrcBase('https://cfw-cdn.web.app/libs/vee-validate/vee-validate@3.4.14.min.js')
//Output 'vee-validate@3.4.14.min.js'
51.3 - CloudFrameWorkInterface.scriptsLoader.documentScripts()
El método retorna todos los scripts que ya están cargados en la página.
CloudFrameWorkInterface.scriptsLoader.documentScripts()
//Output ['https://cfw-cdn.web.app/libs/vuedraggable/sortable.min.js', ...]
51.4 - CloudFrameWorkInterface.scriptsLoader.documentScripts()
El método retorna un string con el nombre y formato de todos los scripts cargados en la página.
CloudFrameWorkInterface.scriptsLoader.documentScriptBases()
//Output ['sortable.min.js', 'jquery.atwho.min.js', ...]
51.5 - CloudFrameWorkInterface.scriptsLoader._load()
El método hará la carga de todos los scripts almacenados en el Array CloudFrameWorkInterface.scriptsLoader.payload. En caso de que ya estén en caché, no se hará una recarga.
CloudFrameWorkInterface.scriptsLoader.documentScriptBases()
//Output ['sortable.min.js', 'jquery.atwho.min.js', ...]