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
  • 'sm': small,
  • md size ,
  • 'lg': large,
  • 'xl': extra large,
  • 'xxl': 90vw
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:

Untitled

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({
"editable": false,
"Organizations": [
{
"Organization": "cfw",
"OrganizationIndex": 1,
"OrganizationName": "Menu name",
"OrganizationLogo": "image",
"OrganizationHomeTemplate": "www.cloudfw.io",
"OrganizationHomeIcon": "fa-home",
"OrganizationFavicon": "",
"OrganizationMenu": [                {
icon: "fa-calendar",
level: 0,
name: "Sub menu option",
security: null,
template: "www.cloudfw.io/test"
}
    ],
"OrganizationHomeHidden": false
}
]
});
// Los iconos disponibles son de Font Awesome

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:

  1. Definir la cadena de caracteres CloudFrameWorkInterface.utils.getFromBetween.string = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.'
  2. Ejecutar CloudFrameWorkInterface.utils.getFromBetween.getFromBetween('ipsum', 'consectetur') 
  3. 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:
  • ​dialog 
  • confirm
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
  • 'sm': small,
  • md size ,
  • 'lg': large,
  • 'xl': extra large,
  • 'xxl': 90vw
​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', ...]



Cesta de compras