Saltar a contenido

7.2.11

Notas de la Versión Clarive 7.2.11

Fecha de lanzamiento: 23 de noviembre de 2018

Nos complace presentar nuestra nueva versión Clarive 7.2.11. Mayormente es una versión de corrección de errores pero también hemos incluido las siguientes funcionalidades:

Nuevo registro de eventos en API ClaJS

Hemos agregado la posibilidad de registrar eventos en plugins creados con la API ClaJS

reg.register("event.my_new_plugin.my_named_event", {
    text: _("This is the text"),
    name: _("This is the long name"),
    description: _("This will be the description that you can see in the event log"),
    vars: ["my_variable"]
});

Después de registrar eventos, podrás declarar hooks para estos nuevos eventos como para cualquier otro evento estándar de Clarive:

reg.beforeEvent("event.my_new_plugin.my_named_event", function() {
    console.log("My new event has been fired");
};

Disparar evento desde API ClaJS

Ahora puedes disparar eventos desde tus propios plugins desarrollados

Si registras un nuevo evento en tu plugin, probablemente también quieras poder dispararlo. Esta función dispara eventos.

  • eventKey - la cadena clave del evento que estamos disparando, p.ej. event.myplugin.someevent.
  • eventData - cualquier dato aleatorio (objeto Javascript) de nuestro plugin y relacionado con el evento que queremos compartir con reglas u otras extensiones que puedan personalizar el evento.
  • eventFunction - este es el código central que ejecuta la lógica del evento. Esto es opcional, pero permite que las reglas y otros hooks eviten que se ejecute. Los datos devueltos por eventFunction se fusionarán en eventData y serán accesibles para hooks de evento after y reglas (online y offline).

En el siguiente ejemplo registramos y disparamos un evento:

var reg = require('cla/reg');

reg.register('event.myplugin.something', {
    name: 'Event fired when something happens'
});

// then later in your plugin...

reg.fireEvent(
    'event.myplugin.something',
    { foo: 123, bar: [1,2,3] },
    function(stash){
        console.log('This is the core of what happens in my event');
        console.log('Got foo here=' + stash.foo);

        // return values get pushed into the stash for event hooks to use
        return { result: 'this result goes back into the stash' };
    }
);

Registrar y disparar eventos en tu plugin es una excelente manera de habilitar personalización de usuario (con reglas) e interoperabilidad con otros plugins. Recomendamos usarlo para cualquier funcionalidad de plugin que consideres extensible o personalizable por otros.

Warning

¡No dispares eventos internos de Clarive desde dentro de tu plugin! (ejemplo: event.topic.create) Pueden ocurrir cosas inesperadas. Usa fireEvent para disparar eventos que creaste en tu plugin.

Más mejoras y problemas resueltos

  • [ENH] Optimización del módulo JS cla/web
  • [FIX] Opción de habilitar Pubsub en config
  • [FIX] Formato de fecha de fieldlets Milestones
  • [FIX] Exportación CSV de Reports
  • [FIX] Mejoras en cascada de actualización de topic
  • [FIX] Las categorías con nombres UTF-8 no pueden abrirse
  • [FIX] La operación de archivos Tar con varios includes no incluye todos los archivos
  • [FIX] Los assets de entorno adjuntos a topics no se hacen checkout correctamente
  • [FIX] Notificaciones a "Emails"
  • [FIX] Las transiciones desde Kanban muestran id de estado en actividad de topic
  • [FIX] El demonio de Job falla cuando se elimina el changeset del trabajo
  • [FIX] Mejorar velocidad de guardado de topic con padres

¿Listo para actualizar?

Simplemente sigue el procedimiento estándar para instalar la nueva versión. Haz clic aquí para obtenerla desde nuestra página de Instalación.

Agradecimientos

Únete a nosotros en nuestra Comunidad para hacer sugerencias y reportar errores.

Gracias a todos los que participaron allí.