The documentation is mixed between English and Catalan, for no special reason.
I tend to write in English for technical issues, when the target is a developer or a system administrator. For more friendly explanations or instructions to final users, then I use Catalan.
La documentació es barreja entre l'anglès i el català, sense cap motiu especial.
Tendeixo a escriure en anglès per raons tècniques, quan l'objectiu és un desenvolupador o un administrador del sistema. Quan intento explicacions o instruccions més amigables als usuaris finals, utilitzo el català.
BaaS is a full-featured service running in a cloud, usually with not less than 4Gb of RAM serving a minimum of 2 vCPU.
Well, this configuration is by choice. The BaaS structure is distributed and fully scalable. The databases could be located on different computers, using different database servers. The same applies to the web application, running on a JEE compliant server. BaaS fits perfectly on Amazon Web Services, like EC2, EBS and RDS.
BaaS components, BrightSide and Elephant, are Open Source projects hosted at TiC Foundation. Both can be freely distributed.
BlueBee service is a retailer brand example, based on BaaS. As you can see in this graphic, BaaS integrates seamlessly.
Turró.Org BaaS has a self-hosted unique SSO method. Only affects BaaS users and the implementation isn't provided as standard. Developers can implement their own methods by using the IElephantSSO interface.
Single Sign On will be fully deployed on March 19. In order to make it consistent with Live Links and to actually substitute them, changes will follow this roadmap.
March 2019 |
|
April 2019 |
|
May 2019 |
|
BrightSide és un conjunt de mòduls integrables funcionant sobre les llibreries Elephant. Elephant és una aplicació web, executable des dels navegadors d'Internet, amb el control d'usuaris i els rols dels mateixos integrada.
Tot mòdul creat per a Elephant utilitza el sistema de seguretat integrat. Les encriptacions internes es generen usant criptografia simétrica i asimétrica, segons el tipus de clau, i amb claus d'encriptació úniques generades pel propi entorn i diferents per a cada web.
BrightSide es desplega còmodament en la WAN per excelència: Internet. Les bases de dades poden ser distribuides en diferents llocs, segons necessitats d'accesibilitat, capacitat o seguretat.
Elephant, i per tant BrightSide, s'han desenvolupat per a la JEE, Java Enterprise Edition, i es despleguen en qualsevol contenidor compatible amb l'especificació.
Els sistemes operatius soportats son:
BrightSide utilitza el JPA com a Persistent Layer. La configuració del JPA està diferenciada per mòdul, sent possible connectar la majoria de Servidors SQL del mercat:
El client de Elephant i BrightSide és el navegador d'Internet. Qualsevol sistema operatiu amb navegador d'Internet pot veure planes web i també pot executar l'aplicació. Els navegadors soportats son:
El marc per aplicacions de BrightSide és el mòdul sobre el que es construeixen la resta de mòduls de BrightSide. També és el que dona les característiques comunes a l'entorn.
Marc de treball
El marc de treball de l'aplicació està basat en sessions d'usuari. La sessió normal caduca al cap de 5 minuts d'inactivitat, mentre que dins del marc l'allarga fins a 3 hores.
La composició del marc es distribueix en una barra de menús, una barra d'accés ràpid, una barra d'estat i l'espai de treball central. Els llistats i els formularis ocupen l'espai central en forma de pestanyes, cadascuna d'elles independent. Un usuari pot tenir obertes tantes pestanyes com necessiti.
La barra de menús i la barra d'accés ràpid són sensibles als mòduls habilitats i als permisos d'usuari. Quan l'usuari no té permisos per un apartat concret de l'aplicació, l'opció de menú o el menú sencer no es mostren.
La barra d'estat mostra l'usuari autenticat en un component d'informació de contacte que permet la navegació quan es clica a sobre. En el cas d'usar el mòdul de facturació, la barra d'estat mostra també l'empresa.
Una sessió es correspon a un usuari/navegador. Les pestanyes d'un navegador comparteixen la mateixa sessió. L'acció de tancar sessió esborra la sessió actual i en crea una de nova, sense usuari autenticat.
Les opcions mostrades dins el marc de treball depenen dels mòduls habilitats. Els mòduls que posa a disposició la Fundació TiC són els que es veuen en la següent gràfica.
Mòduls relacionats amb el marc
Entrar en una plataforma BrightSide on sigueu usuaris registrats es fa seguint l'adreça http://domini/user
, com a configuració per defecte. Els propietaris del domini podrien canviar la manera d'accedir-hi segons les seves necessitats.
Si s'acaba de registrar, rebrà un correu per poder accedir a la plataforma. Un cop hagi accedit, procedeixi com s'indica a Canvi de password.
Si ha entrat usant un correu de notificació, procedeixi com s'indica a Canvi de password.
Si es troba a l'àrea d'usuari, on es pregunta Usuari/Email i Password, però no sap el password, faci el següent:
Al moment es genera un correu amb un enllaç per poder entrar a la plataforma. Revisi el seu correu i segueixi les instruccions. Seguidament, canviï el password.
Vagi a l'àrea d'usuari. Veurà un menú on apareix el seu nom, amb el que es va registrar. Posis a sobre i es desplegaran més opcions. Premi sobre Canviar password. S'obrirà un diàleg on podrà posar el nou password.
Els usuaris amb permisos adequats, poden personificar altres usuaris. Això permet veure les dades tal i com les veurà l'usuari personificat.
Quan es personifica un usuari, les entrades a registre es veuran com l'usuari real, sent la personificació una acció feta per aquest usuari. Així, quan un usuari amb permisos suplanti un altre usuari, en el registre es veurà l'acció Usuari real -> Personifica -> Usuari
, usant els noms.
Tot i així, cal actuar amb precaució quan es facin accions que resultin en notificacions. Aquestes sí es veuran com fetes per l'usuari personificat i podria rebre la notificació.
Personificar no està pensat perquè un usuari administrador pugui usar l'aplicació com si fos un altre usuari. La finalitat real, i la més útil, és usar la personificació per saber què pot veure un usuari i com ho veu.
Podeu personificar des del BaaS o des de l'àrea d'usuari.
Les opcions relacionades amb personificar són:
Les opcions relacionades amb personificar són les úniques que recorden l'usuari real. Així, Personificar continuarà sent visible encara que s'estigui suplantant un usuari que no pot usar aquesta opció.
Per poder personificar, l'usuari real necessita tenir accés al BaaS i poder administrar contactes.
La personificació a la web i dins el BaaS són conjuntes. Quan suplantem un usuari, ho fem arreu. Així com la web carrega pàgina a cada petició i l'usuari suplantat es fa evident, cal tenir en compte que si es tenen dues sessions (pestanyes explorador) obertes, una a la web i l'altre al BaaS, i es suplanta des de la web, el BaaS no carregarà pàgina però actuarà com si fos l'usuari suplantat.
BrightSide permet afegir tasques desl mòduls dins la seva agenda programable. Les tasques programables tenen la finalitat que defineix el mòdul. L'agenda decideix en quin moment s'executaran aquestes tasques.
Les entitats programables son entitats definides dins els mòduls. L'agenda asegura que una entitat programada executarà l'opció configurada en el moment indicat.
BrightSide Contacts és la base comuna de persones físiques o jurídiques. Els contactes també poden arribar a ser derivats de persones jurídiques, com seus i departaments.
El mínim per poder crear un contacte és el nom. Les dades que se li poden afegir es descriuen a continuació:
Camp |
Descripció |
Nom |
Representa el nom del contacte. També pot representar-se en les variacions per l'ús formal o informal d'aquest. La fitxa de contacte té una opció que permet endevinar quines són les variacions basant-se en el nom complet. Més informació a Complex names . |
Tipus |
Indica si el contacte és un Usuari, Empresa, Centre d'estudis o per ús Intern. En els casos d'Usuari o Intern, la potencialitat de ser un usuari s'explica amb més detall a connectors o a Users . |
Agrupament |
Permet una classificació interna i amplia. Les finalitats més usades són el filtratge quan cap altre tipus de dada ho permet. |
Identificador global |
També anomenat NIF, és l'identificador del contacte en la seva forma global, més enllà de l'aplicatiu. |
CNAE, Facturació, Personal |
Camps directament associats a l'activitat d'empreses. |
Lloc |
Indica la regió basada en zones del món. Permet descobrir llenguatge i formats específics del contacte. |
Moneda |
Moneda utilitzada en la zona del contacte. |
Clau |
Permet definir una clau pel contacte. També permet reiniciar de la clau actual. Si fos aquest el cas, cal clicar primerament en el nom del camp per activar l'entrada. |
Desactivat |
Quan marcat, desactiva el contacte. Un contacte desactivat continua sent vàlid per l'ús, però no podrà autenticar, ni rebrà cap mena de notificació per correu. |
Grups socials |
Veieu Grups socials . |
Elements d'un contacte
Els connectors d'un contacte permeten definir quins sistemes tenim per connectar-hi. També són útils per a propietats d'altres tipus, com veurem en algunes de les convencions del nom de connector.
Els connectors són bàsicament el Nom del connector i el Valor del connector. Els noms de connectors són completament lliures, tot i que alguns segueixen unes convencions per poder ser usats en altres mòduls. Aquestes són els noms de connector amb un ús específic:
Nom del connector |
Valor |
On s'usa |
|
Conté el correu electrònic primari del contacte. Ha de ser únic, tant el connector com el valor. |
Per l'autenticació d'usuari, l'enviament de recordatoris de password, l'enviament de notificacions i comunicacions, el perfil. |
PhoneProfile |
Conté el telèfon de l'usuari. |
En el perfil. |
Web |
Conté la web de l'usuari. Perquè aquesta sigui vàlida en fitxes de la web, cal que s'indiqui l'adreça completa, incloent-hi el protocol. Ex https://www.domain.cat |
En el perfil. |
NetworkProfile |
Conté l'adreça completa al perfil extern de l'usuari. Habitualment alguna xarxa social. |
En el perfil. |
TradeName |
Conté el nom comercial del contacte. |
En el perfil. |
FiscalName |
Usat quan el nom comercial és la base primària del contacte. Permet crear la imatge d'una persona jurídica a partir d'una persona física. En aquestes ocasions, l'Identificador global del contacte és dins aquesta imatge, enlloc del contacte original. |
En la facturació. |
indica que l'usuari pot editar-ho en el seu Perfil .
Un contacte pot tenir diverses adreces, diferenciades pel nom. Les convencions pel nom són:
Nom de l'adreça |
On s'usa |
Fiscal |
En la facturació i en qualsevol informe fiscal. |
Delivery |
En la botiga en línia |
indica que l'usuari ho manté.
Les relacions amb empreses o centres permeten crear l'organigrama o organigrames del contacte. Els contactes no estan restringits a una sola relació. Aquesta és una descripció dels camps:
Camp |
Significat |
Empresa |
Indica l'empresa, centre, seu o departament on el contacte ocupa una posició. Els organigrames complexos (seus i departaments) només es poden gestionar des de l'aplicatiu. |
Tipus |
Indica el tipus de relació segons l'aplicatiu. Aquesta relació no és visible pel contacte i només té significat intern. Els tipus especials s'expliquen més extensament a Relacions . |
Descripció |
Indica la posició dins l'empresa segons l'usuari. |
Data inici / final |
Indica el període on el contacte va ocupar una posició dins l'empresa. Sense inici s'entén com des de sempre i sense final s'entén com fins ara. |
Preferent |
Indica l'empresa preferent del contacte. S'utilitza per resoldre l'empresa principal del perfil quan el contacte té diverses relacions actives. |
Validat |
Indica quan la relació ha estat validada per un usuari administrador o pel contacte de RRHH de l'empresa. |
indica que l'usuari pot editar-ho en el seu Perfil .
Els comentaris són texts lliures associats a un contacte. Alguns prefixes de comentari segueixen convencions de mòduls per donar-hi utilitats concretes. Les convencions són:
Prefixe |
Signicat |
On s'usa |
#cv# |
És Al voltant de el contacte. S'usa tant per contactes individuals com per empreses o centres. El prefixe té variacions per acceptar la regionalització:
|
En el perfil. |
#reg |
Són les dades fiscals específiques per documents oficials. |
En la facturació. |
indica que l'usuari pot editar-ho en el seu Perfil o en el perfil de l'empresa, si té els permisos.
La gràfica a continuació mostra com els contactes poden integrar-se en altres mòduls, transformant-se en Clients, Dinamitzadors de projecte, Subscriptors de newsletter, etc.
Integració d'un contacte
Els contactes s'assignen a grups socials perquè agafin el conjunt de permisos necessaris per funcionar dins el mòduls BrightSide.
Podeu trobar una relació completa a Social groups
.
Es contactes poden agafar un rol dins l'activitat dels mòduls. Aquest rol queda definit pels permisos estàtics del Grup social
i la participació activa dins un o varis mòduls.
Rol |
Dossier |
Financials |
Responsable relació amb empresa |
Intervenció com a Titular |
|
Responsable de comissió |
Propietari de la categoria de la comissió |
|
Membre de comissió |
Assistent a la categoria de la comissió |
|
Dinamitzador d'un dossier |
Participa com a Dinamitzador |
|
Beneficiari d'un dossier |
Participa com a Beneficiari |
|
Oferent d'un dossier |
Participa com a Oferent |
Un cop el funcionament d'aquests rols es va assentant, la intenció és passar-los a atributs directes. Un exemple és el rol de responsable de la relació amb empreses externes. La convenció no contempla si haurà de rebre documents generats per Financials, deixant un buit clar. També les participacions a dossier són clarament insuficients; la convenció respon al text del discriminador de la participació i les competències assignades es veuen diferenciades dins el codi.
Les variacions que es facin tindran compatibilitat descendent i apuntaran a millores més que a substitucions.
El servei BaaS permet la creació d'eines de networking dins l'entorn web de l'usuari del servei, adaptant-se a la imatge corporativa de la web.
La part central del networking dins del BaaS, és la base de contactes.
L'objectiu de l'espai de Networking és posar en contacte als usuaris d'un determinat perfil. Aquests poden editar les seves dades, definir les seves habilitats, indicar el sector on desenvolupen la seva activitat econòmica i quines són les seves especialitats.
Els membres de l'espai de networking són els socis i els formants de la junta.
Tipus de membre |
Grup social del contacte |
Junta |
|
Soci |
|
Cal entendre socis i junta com la definició social del grup. Per explicar millor l'exemple, veiem dues definicions de soci en dos mòduls diferents de BrightSide.
Mòdul |
Configuració |
Atribucions / Obligacions |
Networking |
BS Financials |
Contracte de tipus |
Aportacions al capital, repartiment de dividends. |
|
BS Contacts |
Grup social |
Pagament de quota, accés al serveis. Dins BS Financials podria ser un Client. |
|
El perfil d'usuari és l'espai on l'usuari autenticat gestiona les seves dades, Relacions i Habilitats .
El perfil està separat quatre seccions: Dades d'usuari, Experiència, Estudis i Habilitats. La secció d'usuari té un contingut fix, mentre que experiència, estudis i habilitats són col·leccions que poden contenir des de zero a múltiples elements.
Secció |
Camp |
Descripció |
Mantingut per l'usuari |
Privacitat |
Dades d'usuari |
Nom |
Nom en el moment de l'alta. Els canvis de nom s'han de tramitar amb els usuaris administradors. |
|
|
Dades d'usuari |
Correu electrònic |
Correu de validació de l'alta. Els canvis de correu s'han de tramitar amb els usuaris administradors. |
|
|
Dades d'usuari |
Imatge |
Imatge del perfil. |
|
|
Dades d'usuari |
Telèfon |
Camp descriptiu |
|
|
Dades d'usuari |
Xarxa professional |
Adreça URL completa. |
|
|
Experiència |
Múltiples |
Explicat a Relacions |
|
|
Estudis |
Múltiples |
Explicat a Relacions |
|
|
Habilitats |
Múltiples |
Explicat a Habilitats |
|
|
Els perfils es poden veure en diferents llocs de l'espai web del servei BaaS. En algunes ocasions com a emergents, per exemple, en etiquetes o en els noms dels usuaris. En altres, en fitxes de perfil, habitualment en directoris.
Component |
Descripció |
Nom d'usuari |
Quan clicable, mostra l'emergent de perfil. |
Etiqueta d'usuari i empresa |
Permet clicar sobre l'usuari o l'empresa, mostrant l'emergent de cadascun d'ells per separat. |
Fitxa de directori |
Per defecte mostra les relacions vigents, en les seccions d'experiència i estudis, i les habilitats. |
Emergent |
Per defecte mostra totes les relacions. Les no vigents apareixen sobre un fons sòlid i en colors més tènues. |
En tots els casos, les dades mostrades tenen en compte l'usuari que visualitza i les opcions de privacitat de l'usuari del perfil.
Alguns dels apartats del perfil són controlats per les polítiques de privacitat. Aquestes es veuen com a icones al costat dels camps configurables. El significat de les icones és aquest:
Icona |
Ajuda emergent |
Descripció |
|
Públic |
El contingut del camp és públic. |
|
Usuaris |
El contingut del camp és visible exclusivament per a usuaris registrats. |
|
Seguint |
El contingut del camp és visible exclusivament per a usuaris a qui l'usuari del perfil segueix. |
|
Privat |
El contingut del camp és privat i serà visible exclusivament per a l'usuari del perfil i per a tasques d'administració interna. |
El perfil d'empresa és l'espai on l'usuari autenticat gestiona les dades de la seva empresa. Per a poder editar l'empresa cal ser considerat Responsable tal com es defineix a Relacions .
Camp |
Descripció |
Mantingut pel responsable |
Nom |
Nom en el moment de l'alta. Els canvis de nom s'han de tramitar amb els usuaris administradors. |
|
Web |
Web de l'empresa o centre. |
|
Imatge |
Logotip de l'empresa o centre. |
|
Nom comercial |
Nom comercial de l'empresa o centre. |
|
Sector |
Sectors als quals pertany l'activitat de l'empresa o centre. Es poden especificar varis. Explicat a Sector i especialitats . |
|
Especialitat |
Especialitats en els serveis de l'empresa o centre. Es poden especificar vàries. Explicat a Sector i especialitats . |
|
Quadres de text amb idiomes |
Informació al voltant de l'empresa o centre. El quadre |
|
Tant contactes com relacions tenen una tipificació interna que apunta a facilitar la creació de noves relacions per part dels usuaris.
La finalitat de les relacions és crear una base d'experiències i estudis mantinguda pels mateixos usuaris.
Els tipus de contactes afecten el perfil i les relacions establertes amb altres contactes, independentment dels permisos d'accés que aquests tinguin i el rol que juguin dins del conjunt de mòduls. Els contactes poden ser de quatre tipus diferents:
Tipus |
Descripció |
Usuari |
És el tipus per defecte quan l'usuari es registra dins del BaaS. Els contactes tipus usuari són els que, habitualment, fan login i participen en les activitats. |
Empresa |
Són contactes amb qui l'usuari pot establir relació per omplir la seva Experiència, sigui passada o vigent. |
Centre d'estudis |
Són contactes amb qui l'usuari pot establir relació per omplir els seus Estudis, siguin cursats o en curs. |
Intern |
Són contactes que no participen del networking. Per exemple proveïdors interns, organismes recaptadors de tributs, etc. |
Quan parlem d'Experiència o d'Estudis dins del BaaS, parlem de relacions entre usuaris, empreses i/o centres. Aquestes relacions es composen de la següent informació:
Camp |
Descripció |
Mantingut per l'usuari |
Privacitat |
Empresa o centre |
És l'empresa o centre amb qui l'usuari es relaciona. |
|
|
Tipus |
És el tipus de relació. Quan l'usuari crea la relació, sempre és del tipus STAFF (Personal). El tipus de relació té un significat intern traduïble a: com es relaciona la persona en qüestió amb l'entitat propietaria del BaaS, quan actua en nom de l'empresa relacionada. |
|
Sempre privat |
Posició o curs |
Si la relació és amb una empresa, representa la posició. Si és amb un centre, representa el curs. Aquest camp permet escollir entre valors existents o crear-ne de nous. |
|
|
Data d'inici |
Data d'inici de la relació. Si no es posa cap valor vol dir des de sempre. |
|
|
Data final |
Data final de la relació. Si no es posa cap valor vol dir en curs. |
|
|
Preferent |
Camp de desambiguació. Permet escollir una relació preferent entre les existents. Habitualment, la lògica de relacions ja permet descobrir quina és la relació preferent. |
|
|
Validada |
Indica quan la relació a passat les regles de validació. Únicament les relacions validades es mostren en el perfil. |
|
|
Els tipus per descobriment són aquells que no s'assignen directament com a tals, sinó que es dedueixen a partir dels tipus definits. Aquests tipus per descobriment són bàsics pel Perfil i pels diferents tipus de Directori .
Tipus |
Composició |
Natural |
El contacte és del tipus Usuari i té relacions amb contactes jurídics. |
Jurídic |
El contacte és del tipus Empresa o Centre d'Estudis. |
Treballador |
El contacte és del tipus per descobriment Professional i/o Docent. |
Professional |
El contacte té una relació vigent amb una Empresa. |
Docent |
El contacte té una relació vigent amb un Centre d'estudis i la relació no és del tipus STAFF. |
Estudiant |
El contacte té una relació vigent amb un Centre d'estudis i la relació és del tipus STAFF. |
STAFF (Personal) |
El contacte té una relació vigent del tipus STAFF. |
Responsable |
El contacte té una relació vigent diferent del tipus STAFF. |
HHRR |
El contacte té una relació vigent diferent del tipus Recursos Humans. |
Autònom |
El contacte és del tipus Usuari i no té relacions amb contactes jurídics. |
La següent imatge mostra els diferents tipus d'usuaris i les interseccions dels tipus per descobriment.
Tipus de contacte per tipificació i per descobriment.
S'entén una relació com a vigent, quan es troba dins les dates d'inici i fi. Aquesta vigència es valida amb la data actual del sistema.
Alguns mòduls usen tant el contacte com la seva empresa o centre, per gestionar la participació. En aquests casos, la vigència es valida amb la data de la participació, no la de sistema. Això permet la traçabilitat en les participacions d'empresa o centre.
Les relacions iniciades per usuaris autenticats queden pendents de validació. Per resoldre aquest estat, se segueixen unes regles predefinides:
El resultat del procés, en cas de validar-se, generarà un avís pels usuaris administradors. Totes les validacions pendents es veuran en la cua d'avisos dels usuaris administradors.
Si l'usuari escull el cas 4, internament poden donar-se els següents casos:
Les habilitats permeten ampliar el perfil d'usuari i són usades internament per a la gestió d'homònims.
Les habilitats se separen en tres tipus:
Tipus |
Descripció |
Coneixement |
Habilitats de coneixement, descrites amb substantius. Comptabilitat, Administració, Programació, ... |
Funcional |
Habilitats funcionals, descrites amb verbs. Organitzar, Promocionar, Liderar, ... |
Actitut |
Habilitats d’actitud, descrites amb adjectius. Pacient, Independent, Ordenat, ... |
Els usuaris poden afegir tantes habilitats al seu perfil com creguin oportunes.
Les empreses i centres poden ampliar el perfil afegint sectors i especialitats.
Tipus |
Descripció |
Sector |
Un sector empresarial comprèn diverses empreses que produeixen béns i serveis en l’economia. |
Especialitat |
Àrea de negoci o estudi en què l’empresa / centre està especialitzada o té coneixements especials. |
El calendari és una eina associada a l'activitat dins els mòduls del servei BaaS. Això s'explica pel fet que moltes activitats tenen dates associades, siguin d'inici, modificació, finalització i d'altres. Els calendaris són capaços de mostrar l'activitat, lligant-la a l'entitat que l'ha produïda. Així, des d'una data, l'usuari pot arribar fins a l'activitat i acabar consultant els usuaris associats.
Com la resta de components, el calendari és sensible a la privacitat imposada per l'usuari en el seu perfil.
Les convocatòries formen part de l'anomenat Networking, donat que és l'eina per a reunir un grup d'usuaris en unes dates i hores determinades. Els usuaris convocats poden consultar les convocatòries públiques vigents o passades i les convocatòries privades on han estat convocats. En el visor complet de convocatòries hi ha llistat els assistents usant etiquetes de contacte que mostren el perfil emergent de l'usuari.
Convocatòries està explicat a Convocatòries
.
El Directori és un llistat de perfils on els usuaris amb permisos poden consultar les dades dels perfils segons les polítiques de privacitat que cadascun dels usuaris del perfil hagin definit.
Els directoris poden ser totals o per tipus.
Tipus |
Descripció |
Tot |
Mostra tots els usuaris que no siguin del tipus Intern. |
Empreses |
Mostra els contactes del tipus Empresa. |
Centres d'Estudi |
Mostra tots els contactes del tipus Centre d'Estudis. |
Treballadors |
Mostra tots els contactes del tipus per descobriment Treballador. |
Professionals |
Mostra tots els contactes del tipus per descobriment Professional. |
Docents |
Mostra tots els contactes del tipus per descobriment Docent. |
Estudiants |
Mostra tots els contactes del tipus per descobriment Estudiant. |
Autònoms |
Mostra tots els contactes sense relacions. |
Es pot trobar informació dels diferents tipus a Relacions .
El tauler d'anuncis permet als usuaris penjar ofertes o demandes de diferents tipus. Aquests anuncis poden estar associats a l'empresa o directament a l'usuari, segons configuració. El tauler d'anuncis és una ampliació dels serveis de contacte.
El Serveis són reservats a les empreses donades d'alta a la base de contactes. La definició d'empresa és molt laxa i es refereix a contactes que tenen treballadors en el seu organigrama.
Camp |
Descripció |
|
Títol |
El títol que apareix als llistat i que utilitza el cercador. |
|
Empresa |
Una de les empreses de l'usuari autenticat |
|
Dinamitzador |
O responsable. Un dels treballadors de l'empresa, incloent l'usuari autenticat. |
|
Rol |
Si es tracta d'una oferta o una demanda. |
|
Tipus |
El tipus de servei. Predefinits Servei, Formació, Seminari, Webminar, Activitat, Producte i Esdeveniment. Els usuaris poden afegir tipus nous. |
|
Temàtica |
Reglamentari o orientatiu segons el tipus de servei. |
|
Enllaç |
Enllaç on trobar més informació del servei. |
|
Data inici |
Moment en el que s'inicia el servei. |
Opcional |
Data final |
Moment en el que s'acaba el servei. |
Opcional |
Preu |
Si fos el cas, el preu del servei. Base imposable. |
Opcional |
Impost |
Si fos el cas, l'impost al que està subjecte el servei. Habitualment IVA. |
Opcional |
Periodicitat |
La periodicitat amb que es carrega el preu. |
Opcional |
Descripció |
Descripció amb text ric del servei. |
Els serveis són sempre editables pels treballadors de l'empresa que dóna el servei i pels usuaris administradors. L'aplicació permet enviar un correu de prova als treballadors de l'empresa.
Un servei es pot publicar. L'acció de publicar pot executar-se una sola vegada per part dels treballadors i tantes vegades com vulguin els usuaris administradors. L'àmbit de l'acció de publicar són els subscriptors de la cua Notificacions del lloc web. També pot haver-hi un context dins la web amb els serveis publicats.
Usant els serveis de contactes i les Macros del mòdul, és possible crear un context tipus marketplace.
En l'exemple que es mostra a continuació, el context que mostra el marketplace és /marketplace
.
{ @services:all:all:/marketplace:12:#preload} <div class="ui basic padded segment"> <div class="ui stackable grid"> <div class="five wide column"> <div class="ui segment"> <h3>{ @res:VIEW_CALENDAR:2}</h3> { @marker:calendar:fullcalendar:sources=[servTypes=all;color=#880E0E]} <div class="ui hidden divider"></div> <h3>{ @res:VIEW_LASTENTRIES:2}</h3> { @lastservice-summary:all:all:/marketplace:10:item} </div> </div> <div class="eleven wide column"> { @dao-search:/marketplace} { @services:all:all:/marketplace:12} </div> </div> </div>
La primera macro usa el template fals #preload, per indicar al iterador que carregui els valors previs. Aquests serviran per omplir les llistes de rols, tipus i temàtiques dels serveis, usades pel cercador estàndard per a serveis.
La resta afegiran, a la part esquerra, un calendari i un llistat de darreres entrades. I a la part dreta, el cercador i l'iterador de serveis amb pàgines de 12 serveis màxim.
Context final segons l'exemple.
dao-search-marketplace
A Best Practices
hi ha un exemple de com afegir un buscador. El template search
és part de l'estàndard.
<?xml version="1.0" encoding="ISO-8859-1"?> <elephant version="1.0"> <dao-search class="services-search" root="service" template="search"> <input name="search-value"/> <select name="role"/> <select name="type"/> <input name="actives"/> <input name="with-date"/> </dao-search> </elephant>
El marketplace té configuracions específiques dins l'arxiu service-context.properties
que es troba a BaaS -> Eines -> Fitxers -> Configuració -> Propietats. El format de l'arxiu és clau=valor.
Clau |
Significat |
type_n |
Seguint l'ordinal n seran els tipus de servei per defecte. |
thematic_n |
Seguint l'ordinal n seran les temàtiques de servei per defecte. |
allow-single |
Permet crear serveis lligats al propi contacte. Per defecte els serveis només poden estar enllaçats a l'empresa. |
market-roles |
Són els rols d'usuari per a poder crear nous serveis. La definició de roles és igual que a Context role Attributes . |
question-roles |
Són els rols d'usuari per a poder fer preguntes al responsable anònimament. La definició de roles és igual que a Context role Attributes . |
Mostrar la darrera activitat és una manera d'incentivar usuaris a ser més actius. Aprofitant LastActivity API i UserLastActivity API de la llibreria Elephant, l'apartat de Networking pot mostrar el moviment dins del servei BaaS.
LastActivity API recull els darrers moviments de les entitats del sistema, hi associa el conjunt de participants usant una cerca profunda i, finalment, serialitza els resultats pel seu ús. Per a cada element d'activitat, l'API contrasta amb el controlador de l'entitat si el participant pot veure l'element. Com a resultat, els elements mostrats són específics per l'usuari a qui es mostren.
L'aproximació usada per UserLastActivity API és diferent. En ser un llistat orientat a l'usuari, la cerca es fa en les activitats específiques d'aquest. El resultat final és un conjunt d'elements restringits a l'usuari a qui es mostra.
Quan es pretén mostrar l'activitat de tercers, els elements mostrats es controlen usant Visual elements .
Tots els mòduls del servei BaaS donen la possibilitat de crear espais públics i espais restringits. La diferència és, en moltes ocasions, subtil. En ambdós casos, les dades a mostrar poden variar la privacitat segons el rol de la persona a qui es mostren. Una única entitat podria ser formada per parts amb privacitats ben diferents.
Característica |
Públic |
Restringit |
Espai on es publica |
Qualsevol pàgina de la web és vàlid per a publicar contingut d'entitats. |
L'àrea d'usuari és el lloc on hi ha tots els visors restringits d'entitats. |
Qui ho pot veure? |
Vindrà controlat pels permisos donats al context. |
Exclusivament els participants. |
Quines dades poden veure? |
Les que s'hagin definit específicament pel visor. |
Només les dades que pertoquen a l'usuari segons el seu rol. |
On es configura? |
El visor usa Visual elements per a controlar quines dades es mostraran segons el rol de l'usuari. |
Dins l'aplicació, en l'entitat i la participació de l'usuari. |
Cas d'ús |
Volem mostrar l'activitat en projectes, tauler d'anuncis i/o talent a usuaris no autenticats o autenticats sense rols. Veuran títols, només empreses i/o estudiants i una part de les descripcions i de la documentació. |
Donem als usuaris un entorn web amigable per a veure les seves dades en els diferents mòduls: projectes, dossiers, contractes, productes contractats, factures, cartera comptable pròpia, convocatòries, dispositius on està autenticat i un llarg etc. |
Junta / Socis | Clients / Proveïdors / Col·laboradors | Estudiants | Marketplace | Usuaris | |||||
---|---|---|---|---|---|---|---|---|---|
Projectes |
|||||||||
Context públic | |||||||||
Descriptors d'obertura | |||||||||
Descriptors de tancament | |||||||||
Arxius adjunts | |||||||||
Nom dels participants | |||||||||
Nom de les empreses | |||||||||
Opció a participar | |||||||||
Presentar ofertes | |||||||||
Networking |
|||||||||
Context públic | |||||||||
Directori | |||||||||
Directori d'empreses i centres | |||||||||
Debats al fòrum | Una porció del tòpic | Una porció del tòpic | Una porció del tòpic | Una porció del tòpic | |||||
Convocatòries públiques | |||||||||
Marketplace |
|||||||||
Context públic | |||||||||
Publicar ofertes | |||||||||
Contactar anònimament | |||||||||
Talent |
|||||||||
Context públic | |||||||||
Plataforma talent | |||||||||
Borsa de pràctiques | |||||||||
Reptes | |||||||||
Directori d'estudiants | |||||||||
Directori de centres |
Quan es busquen contactes dins l'entorn BrightSide, es possible variar la manera com es busca i concretar els llocs on es busca.
Si simplement introduïm un text, aquest es divideix en paraules i es busca l'existència de cadascuna d'elles dins els diferents camps del contacte.
headquarters
, department
, management
, administration
, sales
, purchasing
, technical
, maintenance
, production
, quality
, hhrr
, staff
.Les propostes d'alta poden ser en format vCard o CSV. En ambdues opcions s'utilitzen les convencions vCard amb les extensions BS Contacts.
Els fitxers d'importació han d'usar la codificació UTF-8. En el cas dels CSV, els separadors són punt-i-coma (;) i tots els camps entrecometes (").
Camp |
Traducció |
X-GID |
NIF/CIF, internament l'identificador global. |
FN |
Nom del contacte |
N:First N:Middle N:Last |
Concatenats, nom del contacte. |
ADR:WORK |
Adreça fiscal |
ADR:WORK:Street |
Carrer |
ADR:WORK:City |
Ciutat |
ADR:WORK:Province |
Provincia |
ADR:WORK:ZipCode |
Codi postal |
ADR:WORK:State |
Estat |
ADR:HOME |
Adreça postal |
ADR:HOME:Street |
Carrer |
ADR:HOME:City |
Ciutat |
ADR:HOME:Province |
Provincia |
ADR:HOME:ZipCode |
Codi postal |
ADR:HOME:State |
Estat |
|
Connector Email |
TEL |
Connector Telèfon |
CELL |
Connector Mòbil |
FAX |
Connector Fax |
WEB |
Connector Web |
NOTE |
Commentari |
CON:ID |
Connector ID |
Les propostes de relacions són un mètode ràpid per donar d'alta relacions per a contactes existents o nous.
El format de l'arxiu a importar és CSV estàndard. Camps separats per comes i text entre cometes (si cal, quan el text conté comes)
Camp |
Descripció |
|
Email del contacte. |
name |
Nom del contacte. |
relatedTo |
Nom de l'empresa o centre. |
position |
Posició o estudis. |
Les propostes d'alta de relació poden generar nous contactes, o simplement crear una relació. Cal tenir en compte:
email
, es donarà d'alta un contacte nou. El correu no haurà estat validat pel procés de registre.relatedTo
és un nom que no es troba a la base, és necessari omplir la llista desplegable amb l'empresa o centre.position
és obligatori.Quan es marca Enviar benvinguda, un cop finalitzada l'alta de la relació, s'envia un correu de benvinguda a l'usuari.
BrightSide Attachments és el mòdul de base documental. El motiu pel qual s'anomena d'adjunts és perquè permet bases documentals associades a entitats. La base d'adjunts se separa en dos grans tipus, els adjunts pròpiament dits i els fitxers.
La categorització de documents segons l'origen, el tipus, les dates i d'altres atributs és un dels grans esculls de les bases documentals. BS Attachments soluciona bona part del problema en automatitzar el procés de crear espais per a documents allà on aquests es generen. Contactes, dossiers, temes, contractes, factures, són exemples d'espais complets de base documental pròpia.
Tot i formar bases documentals separades, el sistema usat per la base d'adjunts, en qualsevol de les modalitats, permet una arrel comuna, visible pels administradors, que facilita la localització dels documents.
BS Attachments se separa en dos grans tipus: Adjunts i Fitxers. Alhora, Fitxers ho fa en dos subtipus: Publicables i Privats. Malgrat la diferència en el nom, tots els tipus són adjuntables.
Tots els tipus d'adjunts poden ser visualitzats a Elephant Web. La diferència principal és que només els Fitxers Publicables són accessibles directament, la resta fan servir visors específics que controlen permisos i activitat. L'ús dels directament publicables és, principalment, imatges, galeries d'imatges i documents públics. Els Adjunts i Fitxers Privats s'usen per a documents privats on els permisos determinen l'accés per part d'usuaris.
Elements d'adjunts
Característica |
Adjunts |
Fitxers |
Basats en |
Base de dades |
Dispositiu físic |
Publicables |
Amb visor específic |
Sí a l'arrel publicable. Amb visor específic la resta. |
Control de versions integrat |
Sí |
No |
Carpetes |
Sí |
Sí |
Galeries d'imatges |
No |
Sí, veure Galeria d'imatges |
Control de descàrregues |
Sí |
Sí |
Personalització de les descàrregues |
Sí, veure Convencions |
No |
El mòdul d'adjunts utilitza convencions per automatitzar l'ús de la base documental dins altres mòduls BrightSide.
L'atribut de participació Veure tots els adjunts
controla que el participant vegi o no adjunts amb la propietat publicable
.
Veure tots els adjunts |
Publicable |
Visible |
No |
No |
No |
No |
Sí |
Sí |
Sí |
No |
Sí |
Sí |
Sí |
Sí |
Per dossiers amb visor públic a la web, la propietat publicable
controla si l'arxiu es mostra.
Quan els participants a dossier ho fan usant els atributs de participació, és possible crear carpetes visibles només pel tipus de participació. Per activar aquest mecanisme es prefixe la carpeta amb el símbol #. El format és #participació
, sent participació el nom de l'atribut.
Participació |
Nom |
Carpeta |
|
Dinamitzador |
#Driver |
|
Coordinador |
#Coordinator |
|
Beneficiari |
#Beneficiary |
|
Consorci |
#Consortium |
|
Oferent |
#Offerer |
|
I+D |
#Research |
|
Finançament |
#Funding |
|
Suport |
#Support |
|
Administrador |
#Admin |
Quan el participant té definit un discriminador
, és possible crear carpetes visibles només pels participants amb el mateix discriminador
. Per activar aquest mecanisme es prefixe la carpeta amb el símbol #. El format és #discriminador
, sent discriminador el valor posat en aquest camp.
Per permetre que un participant pugui veure totes les carpetes amb el prefix #, la propietat discriminador
seria *
.
El rol dels participants a dossier pot ser usat com a discriminador de carpetes. Funciona igual que Carpetes segons discriminador sent el discriminador el rol de la participació.
Rol |
Carpeta |
Propietari |
#PARTICIPANT_OWNER |
Assistent |
#PARTICIPANT_ASSISTANT |
Subjecte |
#PARTICIPANT_SUBJECT |
Per temes amb visor públic a la web, la propietat publicable
controla si l'arxiu es mostra.
L'atribut publicable
controla quan es mostren els documents adjunts al subjecte del contracte, dins els visor de contractes.
Quan s'envia un document per email, l'atribut publicable
controla quins documents s'adjunten en el email. La convenció és Mail/[Tipus document]/[Arxiu]
. Per exemple, si vol que un document s'envií conjuntament amb les factures d'un determinat contracte, segueixi els següents passos:
Adjunts
Mail
si no existeixFactura
si no existeixpublicable
és certa (icona )L'atribut publicable controla quan l'adjunt s'envia per email conjuntament amb el document. Per exemple, si té documents relacionats amb una factura i vol que s'enviïn pel correu que genera BrightSide, segueixi els següents passos:
Adjunts
publicable
és certa (icona )Enviar document
És possible modificar el comportament de l'arbre d'adjunts què es mostra a la web.
Es crea el context quan la carpeta s'anomena /#ROT
(Read Only Terms). Els arxius d'aquesta carpeta seran descarregables només si s'accepta el text contingut dins l'arxiu /_internal/terms/content/rot.txt
.
No cal ser usuari registrat. No queda registre de l'acceptació.
L'atribut Requereix acceptació controla l'accés a l'arxiu. Inicialment és Prohibit. Els usuaris autenticats podran crear una petició de lectura, adjuntant el motiu pel que volen l'arxiu. La petició s'envia a l'usuari que ha pujat l'arxiu, que és qui l'ha d'acceptar. Mentre la petició no és acceptada, l'usuari veu l'estat de Pendent. Un cop acceptada la petició, l'usuari veu l'estat Acceptat i ja pot descarregar l'arxiu.
Els usuaris reben correus en els canvis d'estat. Queda registre del moment de la petició i el moment de l'acceptació. Les descàrregues, al ser un circuit per a usuaris registrats, queden en el registre de l'arxiu i del sistema.
|
|
|
|
L'atribut Marca d'aigua controla que la descàrrega la faci un usuari registrat. L'arxiu que s'entrega conté el nom de l'usuari com a marca d'aigua a totes les pàgines del document.
Si la descàrrega és anònima, l'arxiu és buit.
Els Fitxers són una part de BrightSide Attachment. A diferència d'adjunts, basats en bases de dades, fitxers són directoris i arxius reals.
Els fitxers se separen en dues categories.
Són arxius que podran ser llegits directament pels navegadors d'internet. Publicables és útil per imatges o documents dels quals no necessitem un registre d'activitat.
Són arxius accessibles només des de navegadors BrightSide Attachment amb l'excepció dels components [ Deliverables, Documentation ]
.
Usant els fitxers publicables de les entitats BrightSide és possible crear galeries d'imatges. La distribució estàndard inclou un template que segueix les següents convencions per crear galeries.
Les imatges tindran com extensió .jpg
o .png
en minúscules.
Dins Fitxers -> Publicables, es busca el directori gallery
. Si existeix, totes les imatges dins aquest directori formen una galeria.
Dins el directori gallery
és possible crear sub-directoris amb imatges. Les galeries creades usant aquests sub-directoris tindran com a nom el nom del directori.
BrightSide Dossiers permet fer un seguiment relatiu a diferents tipus de informació. Un dossier és un grup de dades i canvis executats sobre aquestes dades. El dossier es pot fer servir com agrupació de documents i compartir-los amb els diferents participants del dossier. També permet el seguiment de temes, amb assignació de informants i responsables.
Els dossiers es poden agrupar en categories, que poden identificar-se com a grups de treball.
Al donar nom a les categories, transformem el dossier en diferents tipus de grups d'informació. Aquestes categories son configurables pel usuari, o creades automàticament per altres mòduls BrightSide. Quan es creen automàticament, el dossier o tema queda associat a la entitat que l'ha creat.
Tant dossiers com temes poden ser usats de manera no prevista inicialment, només aprofitant el flux de estats dels temes. Es poden crear extensions que siguin visibles a les web, públicament. Un exemple son les preguntes freqüents o l'assoliment d'objectius.
Es possible assignar camps definits a les categories de dossiers. Tots els dossiers de la categoria tindran camps addicionals d'informació.
Camp |
Ús |
Exemple |
dossierOpenUrl |
Resums de dossier obert |
|
dossierClosedUrl |
Resums de dossier tancat |
Igual que per oberts |
issueOpenUrl |
Resums de tema obert |
Per a navegadors amb Per a navegadors amb |
issueClosedUrl |
Resums de tema tancat |
Igual que per oberts |
context
de la web, ja autenticat.
Les categories de dossiers permeten crear una estructura jeràrquica on assignar els dossiers i projectes que es vagin creant. Aquesta estructura té a més, un ordre jeràrquic real pel que fa als permisos d'usuari.
Les categories formen estructures d'arbre amb tantes branques com calguin. Els usuaris assignats a una categoria tindran els seus permisos propagats per a totes les branques inferiors. Les arrels són aquelles categories que no tenen una categoria pare.
L'ús de dossiers i projectes és prou transversal i adaptable com per a permetre crear arbres amb usos ben diferenciats. Un dels punts més feixucs és enfrontar-se a una estructura buida i projectar què necessitarem en el futur. Aquest epígraf és per ajudar a decidir quins són els nostres arbres.
Aquesta arrel es crea automàticament quan s'utilitza la creació de temes i dossiers des de BS Financials. La categoria arrel es diu Financials i les branques són els tipus de contracte.
Els participants d'aquestes categories solen posar-se només a l'arrel i són part de l'administració de l'empresa.
L'ús immediat d'aquesta categoria és ordenar correctament les incidències produïdes per la relació comptable amb clients, proveïdors, col·laboradors, entitats tributàries i similars. Un exemple ràpid serien: la gestió d'impagats, les no-conformitats, els canvis en factures ja emeses, etc.
Les automatitzacions d'aquesta arrel creen les relacions pertinents entre:
A més d'aquestes automatitzacions, és possible navegar del dossier al contracte, del tema al document i a l'inrevés.
Tota activitat segueix estratègies que apunten a corregir-la i millorar-la. Un primer pas és descobrir quines són aquestes estratègies. En el cas d'una empresa de serveis, la categorització dels serveis probablement serveix. Per una empresa de fabricació, segurament seran les línies de treball que permeten que el producte es fabriqui i arribi al destinatari.
Veurem aquestes categories com a grups de treball inter-empresa i dinàmics. Cadascuna d'elles podrà tenir els seus responsables i beneficiaris, oferents i observadors.
Els elements dins aquesta arrel solen ser projectes que compleixen els següents requisits:
L'arrel d'estructura interna conté dossiers i projectes que solen ser interessants només per a les parts implicades. Alguns exemples d'aquesta arrel serien:
Els participants d'aquesta arrel solen ser els responsables de cada punt. La part externa interessada participa només en els dossiers que els hi pertoquen.
Arrel |
Visibilitat |
Arrel de gestió i comptable |
Aquesta arrel és privada. El possible accés que hi tinguin clients, proveïdors o col·laboradors s'hauria de gestionar via els temes i sempre aquells temes on participin directament, mai donar-los visibilitat per a tot. |
Arrel d'àrees estratègiques |
Aquesta arrel pot ser publicada, sempre que es consideri interesant que visitants o convidats puguin accedir a aquesta informació. Les parts concretes vindran controlades pels Visual elements . |
Arrel d'estructura interna |
No és recomanable publicar aquesta arrel. El contingut és accessible entre les parts interessades des de l'àrea d'usuari. |
Arrel |
Participants |
Objectiu per a tercers |
Publicable |
Auto-registre |
Arrel de gestió i comptable |
|
No. |
No. |
No. |
Arrel d'àrees estratègiques |
|
Sí. |
Sí. |
Millor usuaris auto-registrats. |
Arrel d'estructura interna |
|
No. |
No. |
Qualsevol cas val. |
Els temes de BrightSide Dossiers apunten accions concretes a una resolució final.
Els temes son un sistema de seguiment. El seu principal objectiu és reunir els defectes, millores, característiques i similars, i redirigir-los a responsables. Per l'usuari, constitueix una eina per solucionar, millorar o realitzar qualsevol objectiu, alhora que reuneix tota l'informació en un sol lloc.
L'informant és que qui va crear el tema, ja sigui donant-lo d'alta o informant del mateix. Durant la vida del tema, d'altres podran inserir comentaris o obtenir funcions específiques.
El tema necessita un responsable. En cas de no indicar quin és, el sistema assigna a la persona que dona d'alta el tema. Responsables són els que poden resoldre el problema, o tenen intenció de fer-ho.
Els temes amb un control de qualitat assignat, tenen un pas més a cobrir dins el flux del tema: la verificació. Només el contacte assignat com a QA és qui pot verificar la resolució.
No té cap responsabilitat. Només rep informació de com avança el tema i pot afegir comentaris.
El tema no necessita de l'existència del control de qualitat, així com qui verifica o tanca els temes. No és important, ja que tots els implicats en el tema seran sempre notificats dels canvis.
Els temes poden veure's com a llistat d'activitat d'un dossier. Per a dossiers amb molta activitat, aquest tipus de visor té poca utilitat. També és poc útil per a trobar temes concrets quan es desconeix a quin dossier han estat associats. Per a resoldre les diferents necessitats que adrecen els temes, el mòdul de dossiers dóna diferents visors de temes.
El visor de Els meus temes dóna una visió global dels temes pendents, sigui dins el context de dossier, de categoria o total.
Els meus temes s'ordena per estats, prioritats i tipus, sent sensible a la persona que ho consulta. Dins l'ordenació es contemplen les agrupacions Data sobrepassada
, Per fer
, Per supervisar
, Reunió demanada
, Per venir
i Congelats
. Un mateix tema seria dins Per fer
si ho consultés el responsable i dins Per supervisar
si ho fes l'informant.
És un subconjunt de les opcions que dóna Els meus temes i es mostra en tres columnes: Per fer
, En progrés
i Fet
. El visor Kanban del mòdul de dossiers dóna per fets aquells temes resolts i encara no tancats. Degut a la quantitat de temes que es podrien crear dins un sol dossier, no té massa sentit mostrar els temes ja tancats.
Mostra els temes com un llistat de temes, podent seleccionar veure només els oberts. La diferència del llistat normal és que mostra d'una manera molt clara quins són els temes que depenen de la terminació o l'inici d'altres.
Genera una gràfica Gantt amb les dades dels temes. Quan no s'han assignat hores estimades, li assigna 1 hora al tema. Si hi ha hores reals, ho mostra en una barra sobreposada.
Genera un graph amb les relacions del temes. La diferència amb el visor de tasques és que permet amagar els temes que no siguin fites, facilitant la tasca de treballar arbres complexes amb fites.
Estat |
Establit per |
Timming |
Explicació |
NOU |
Automàticament |
Responsable, QA |
Estat inicial del problema. L'informant ha omplert els camps. |
INCOMPLET |
Responsable |
Informant |
El responsable pensa que no hi ha prou informació per començar. |
COMENÇAT |
Responsable |
Responsable |
El responsable ha acceptat la qüestió. A partir d'ara, ell és l'únic que es preocupa per l'estat de la qüestió. |
REOBERT |
Informant, QA |
Responsable, QA |
Qualsevol tema pot ser reobert si l'informant o el QA creuen que no està ben resolt. |
REUNIÓ |
Informant, QA, Responsable |
Informant, QA, Responsable |
Algú ha demanat una reunió. Es congela el tema fins que es canvií l'estat. |
CONGELAT |
Informant, QA, Responsable |
Informant, QA, Responsable |
Algú ha congelat el tema. Es tracta els temes congelats com si estiguessin tancats, fins un canvi d'estat. |
RESOLT |
Responsable |
Informant, QA |
El responsable resol el tema. Vegeu les resolucions. |
VERIFICAT |
QA |
Informant |
El QA ha comprovat el tema. Quan no hi ha control de qualitat aquesta etapa no existeix i es passa directament a l'estat proper. |
TANCAT |
Informant, QA |
Informant, QA |
El tema és finalment tancat. Els temes tancats no surten directament en |
Les prioritats del tema es numeren de P1 fins P5, sent P1 la més important /greu.
Prioritat |
Explicació |
P1 |
|
P2 |
|
P3 |
|
P4 |
|
P5 |
|
Per a ser un bon informant cal tenir en compte que la persona que rebrà la informació no és dins el context on aquesta s'ha donat. El que segueix és una petita guia pel bon informant:
El sumari és el que surt en els llistats, el primer que es veu del tema. Per això la descripció que es doni en el sumari és la que identificarà el tema.
Es bo incloure en el comentari els recursos usats, possibles versions o números de sèrie. També està bé posar la periodicitat en que es reprodueix el tema.
Si es coneix, és una bona pràctica incloure un pas a pas per reproduir el cas. També què és el que s'esperava que fes.
Si hi han arxius relacionats, com PDFs, còpies de pantalla... és bo adjuntar-los al tema. Les còpies de pantalla s'haurien de adjuntar en format imatge (JPG, PNG...) ja que així son visibles sense necessitat de descarregar-les.
Un cop iniciat, un tema anirà generant missatges segons informin els participants. Un bon informant farà cas d'aquests missatges i prendrà les accions pertinents.
No hi ha prou informació
: L'informant haurà de donar la informació requerida i reobrir el tema.És important incloure comentaris en cada canvi d'estat, per fer més fàcil la interpretació del canvi.
La informació cal interpretar-la i després escriure el que s'ha entès. Copiar-i-enganxar només pot portar confusió.
Cal evitar l'esment a persones que no intervinguin en el tema, ja des d'un bon principi. Qui vulgui, o pugui, participar, ja ho farà pel seu compte.
No copiar-i-enganxar text que vingui d'altres converses i que contingui noms de persones. Evitar els 'tal ha dit'.
Un bon responsable és aquell que resol els temes ràpida i eficaçment. Però també és aquell que detalla el motiu del problema i com ha arribat a solucionar-lo. Saber quin era el problema i què s'ha fet per resoldre'l pot ser de gran utilitat per a l'informant.
No cal ser educat (salutacions, abraços, etc.) ni fer comentaris punyents. L'ideal és provar a ser sintètic en les descripcions, sense afegir qüestions personals.
Hi ha moments, però, en que la defensa d'un tema pot portar a parlar d'estats d'ànim, molèsties i d'altres similars. És en aquests moments on un punt d'educació ho agrairan tots els implicats.
Els temes permeten portar el compte d'acumulats estimats i reals per a les categories hores, despeses i preu. En l'ús normal, s'entén que els acumulats reals es resten dels d'estimacions, donant l'acumulat restant. Si això ho portem al dossier, aquests treballa amb els acumulats dels seus temes, respectant el tipus d'acumulat i la seva categoria.
Per a tots els casos que es veuran a continuació, els valors imputats a l'agregat tenen el mateix propòsit. És possible mesclar propòsits quan la categoria de l'agregat canvia.
Aquests són casos d'ús adaptats al món real per usuaris de BS Dossiers.
Els packs de manteniment porten la problemàtica dels diferents tipus d'hores. El cas que veurem inclou les hores preventives i les hores d'acció ràpida. La diferència entre els dos tipus és la manera com s'apliquen.
Tipus d'hora |
Com s'aplica |
Preu |
Hores contractades |
Total |
Preventiva |
Via l'agenda de preferència del responsable. Es calcula basant-se en la duració de la rutina preventiva. |
70€ |
5 / mes |
350€ |
Acció ràpida |
Per incidència en el concepte del manteniment. S'adapta al nombre d'incidències per un període estipulat. |
140€ |
10 / mes |
1.400€ |
Totals mes |
15 hores |
1.750€ |
Per adaptar el funcionament a un dossier i portar el control d'hores, seguiríem aquestes passes:
Tema |
Descripció |
Hores estimades |
Hores reals |
Factura de manteniment |
Crearem un tema indicant que és una factura de provisió pel manteniment. La quantitat d'hores serà la suma d'ambdós tipus, preventives i d'acció ràpida. |
|
|
Intervenció preventiva |
Crearem un tema indicant el tipus d'intervenció. És important esgotar les hores preventives acordades, donat que no tenim manera de diferenciar el tipus d'hora. |
|
|
Acció ràpida |
Crearem un tema indicant que és una acció ràpida. En casos reals, el client pot haver demanat una intervenció normal usant les hores del contracte. |
|
|
Regularització per termini de període |
Crearem un tema indicant que és una regularització per termini de període. Les hores poden ser negatives, amb l'objectiu de deixar l'acumulat a zero. |
|
|
Al final del període contractat, es pot fer un seguiment de les hores contractades (estimades) i les sobrants. Aquest seguiment el poden fer també els clients amb el pack contractat, via els informes per correu o per accés a l'àrea de membres de la web.
Els packs d'hores són fàcilment controlables des d'un dossier específic.
Per adaptar el funcionament a un dossier i portar el control d'hores contractades vs. gastades, seguiríem aquestes passes:
Tema |
Descripció |
Hores estimades |
Hores reals |
Factura de pack d'hores |
Crearem un tema indicant que és una factura de provisió d'hores. La quantitat d'hores serà quantitat total del pack. |
|
|
Intervecions relacionades amb el pack |
Crearem un tema indicant el motiu de la intervenció. |
|
|
Des del dossier és visible el nombre d'hores restants al pack.
El control d'impagats es pot portar des d'un dossier específic. En aquest exemple usarem l'agregat de preu.
Per adaptar el funcionament a un dossier i portar el control dels imports impagats, els documents a què corresponen i les respostes del subjecte del dossier, seguiríem aquestes passes:
Tema |
Descripció |
Preu estimat |
Preu real |
Document impagat |
Crearem un tema indicant quin és el document impagat. A preu posarem el total del document. |
|
|
Pagaments totals o fraccionats |
Crearem un tema indicant quin tipus de pagament és. El pagament el posarem a preu. |
|
|
Contacte amb el subjecte per resoldre el pagament |
Crearem un tema indicant com ens hem posat en contacte i amb qui hem parlat. |
|
|
En el visor del dossier tindrem les quantitats degudes, les liquidades i el restant. Per aquest dossier és útil el visor d'activitat transversal dels temes. Aquest visor dóna una seqüència temporal de la relació amb el subjecte.
Els comentaris generats quan s'aporta informació d'un tema inclouen una versió text de les dades. Aquest text és el mostrat quan es veu l'activitat d'un tema. També és la informació que s'envia per correu als integrants del tema i en els resums d'activitat dels propietaris de dossier.
Un exemple del text rebut seria:
Canvis
Descripció []: Assegurar que es crida isEmpty() per permetre la gravació de tots els EntityComposer
Dossier []: BrightSide Application Framework
Prioritat [P3: Tinc una sol·lució]: P1: No puc continuar
Tipus [Tasca]: Acció correctiva
Versió []: 1.5
Participants
Informant: Someone
Responsable: Someone
Amb la vinguda de les LastActivity
com a secció externa de les Newsletter
, el comentari d'activitat contenia més informació de la necessària per a cada data mostrada. Això ha obligat a crear un parser del text del comentari que permet tipificar les dades contingudes. El resultat és la possibilitat de retallar i donar format al contigut.
Un exemple de detall amb format de l'informe de darrera activitat seria:
578 » ASSEGURAR QUE ES CRIDA ISEMPTY() PER PERMETRE LA GRAVACIÓ DE TOTS ELS ENTITYCOMPOSER [1.5 » 9 FEBR. 2011] [ACCIÓ CORRECTIVA, NOU]
3 gen. 2017
Tipus: Tasca > Acció correctiva
Prioritat: P3: Tinc una sol·lució > P1: No puc continuar
Participants: Someone (Informant), Someone (Responsable)
Les propietats que separa el parser són: comment, participants, attachments, description, prioritity, type, grouping, dossier, version, publishable, control, delivery, startDate, status, resolution, duplicated, hours, expenses, price, previsionHours, previsionExpenses, previsionPrice
.
El mòdul BrigthSide Publication permet convertir un context de la web en:
La categoria de la publicació permet filtrar el conjunt de publicacions, per decidir coses com:
Les categories admeten subscriptors. Quan aquests subscriptors poden fer manteniment de la seva subscripció, o no, es decideix per categoria. En les categories públiques, els usuaris administren la seva subscripció. Les categories públiques poden també restringir l'accés per grup social
; quan és així els usuaris que no siguin del grup social no podran subscriure's.
Els usuaris poden sempre demanar no rebre d'una categoria, sigui o no privada, exceptuant les notificacions de sistema.
Les publicacions s'ordenen per la data de la publicació, editable, en ordre descendent. És a dir, la més nova la primera.
La funcionalitat per bloggers és estrictament a nivell web i per publicacions no acceptades. No s'entra a l'aplicació.
Es poden afegir bloggers a una categoria. Els bloggers poden ser, amés, administradors de la categoria.
Per veure què es pot fer segons el rol assignat, consulteu aquesta taula:
Operació dins la categoria |
Administrador |
Blogger |
Veure publicacions aceptades |
No |
No |
Nova publicació |
Sí |
Sí |
Editar publicació pròpia |
Sí |
Sí |
Editar publicació aliena |
Sí |
No |
Funcionalitat per categoria |
Pública |
Privada |
Sortir en el context de publicacions de la web |
Sí |
No |
Subscripció administrada per usuari |
Sí |
No |
Personalitzable amb nom, email, etc. |
No |
Sí |
Les publicacions s'envien per correu als subscriptors. Una publicació enviada ja no es torna a enviar. L'atribut enviada
és editable, així que un administrador pot controlar els enviaments i els re-enviaments.
Quan especificat, l'atribut Retenir fins
controla que no es faci l'enviament fins que es compleixi la data i hora.
La forma estàndard d'enviament de publicacions és mitjançant una tasca d'enviament. La periodicitat d'execució d'aquesta tasca és configurable. Quan la tasca troba publicacions no enviades les prepara per enviar als subscriptors de la categoria de la publicació.
Per poder enviar la publicació usant la forma estàndard, cal que l'usuari hagi confirmat els seus Agreements i haver donat conformitat a la seva subscripció en Mail queue .
Una publicació sempre pot ser enviada usant Sendables
.
Les newsletter poden veure's com publicacions i també poden funcionar igual. Però són, internament, completament diferents. Així com una newsletter pot fer de publicació, al la inversa és impossible.
La composició d'una newsletter és el següent (només els camps més significatius):
Camp |
Explicació |
Títol |
És el títol de la newsletter. Per a newsletter tipus informe, el títol de la newsletter pot contenir macros que s'expandiran en el moment de l'enviament. Això permet crear els números de newsletter a partir d'una sola maquetació. |
Acceptat |
Cert quan la newsletter és llesta per a ser enviada. |
Categoria |
Es correspon a les categories d'enviament del sistema i inclouen les categories de publicacions. Les categories són les que administren les subscripcions. |
Plantilla |
És el sobre que s'utilitzarà per enviar la newsletter. Per defecte és el mateix que s'utilitza per a la resta de notificacions. En la configuració bàsica s'afegeix la NoLogo, que elimina el logo inicial de la plantilla per defecte, i la Clean que només deixa el cos central de la plantilla. |
Contingut estàtic |
Aquest atribut controla la duració en el temps del contingut d'una newsletter. Quan el contingut és estàtic, la newsletter està pensada per a ser enviada una única vegada. Les newsletter amb contingut estàtic poden ser fàcilment substituïdes per publicacions dins newsletter sense contingut estàtic. |
Vol o Podria voler |
La Newsletter pot comportar-se com una notificació de sistema variant aquest atribut.
Per a més informació, veieu Mail queue . |
Seccions |
Són el contingut de la newsletter. Poden ser de diferents tipus, segons la informació que continguin. |
Les seccions tenen propietats comunes i propietats específiques segons el tipus.
Propietat |
Explicació |
Columna |
Una secció pot ser una columna. Si es marca aquest atribut, les seccions adjacents amb el mateix atribut formen columnes. |
Ample |
Si la secció és una columna, aquest atribut controla l'amplada de la columna. Si no s'indica res, les columnes es distribueixen amb el mateix ample. |
Disparador |
Per enviaments que necessitin disparador, aquest atribut converteix la secció en un disparador només si té contingut. |
Tipus |
Explicació |
Text |
Les seccions de tipus text són de contingut wiki. Contenen text amb format, imatges i qualsevol altre contingut multimèdia admès pel wiki. |
Imatge |
Les seccions d'imatge són formades per una imatge que ocuparà el 100% d'ample de la secció. La utilitat és crear banners amb facilitat. |
Externa |
Les seccions externes s'alimenten del contingut dels mòduls BrightSide. Una secció externa, per exemple, podria contenir publicacions, una publicació sola, un llistat de temes per fer, projectes, contractes, documents. Les seccions externes admeten crear filtres de les dades que mostren, poden fer que el contingut sigui personalitzat per a cada persona a qui s'envia. |
Tipus |
Propietat |
Explicació |
Text o Externa |
Banner |
És el banner que encapçalarà la secció. La newsletter proporciona un editor de banners per facilitar-ne la creació. |
Imatge |
Imatge |
És la imatge que omplirà la secció. La imatge ocuparà l'ample total de la secció, tenint en compte si és una columna. |
Imatge |
Enllaç |
Si es defineix un enllaç, quan es faci click sobre la imatge es navegarà fins l'enllaç. |
Les seccions externes permeten incloure contingut d'altres mòduls. La comunicació es fa via funcions macro que s'expandeixen en el contingut final. Segons els atributs, una funció pot tornar contingut específic per a cada usuari o genèric per a tots.
No cal escriure les macros senceres. La majoria funcionen correctament amb els paràmetres per defecte.
convocations([context=<String>];[count=10<Integer>];[template=summary<String>];[restricted=true<Boolean>];[public=false<Boolean>];[future=true<Boolean>])
Atributs |
Descripció | Tipus | Opcions | Per defecte |
---|---|---|---|---|
context | Indica on porten els enllaços per llegir més. | <String> | ||
count | El nombre d'ítems a mostrar. | <Integer> | 10 | |
template | El patró del format per mostrar els items. | <String> | summary | |
restricted | Cert si el que es mostra és específic per a l'usuari. | <Boolean> | true | |
public | <Boolean> | false | ||
future | Cert si es mostren els items amb data futura. | <Boolean> | true |
polls([context=<String>];[count=10<Integer>];[restricted=true<Boolean>];[active=false<Boolean>];[template=summary<String>])
Atributs |
Descripció | Tipus | Opcions | Per defecte |
---|---|---|---|---|
context | Indica on porten els enllaços per llegir més. | <String> | ||
count | El nombre d'ítems a mostrar. | <Integer> | 10 | |
restricted | Cert si el que es mostra és específic per a l'usuari. | <Boolean> | true | |
active | Cert si l'item es actiu. | <Boolean> | false | |
template | El patró del format per mostrar els items. | <String> | summary |
dossiers([status=onwork<onwork|closed|all>];[context=<String>];[categoryIds=<String>];[dossierId=0<Long>];[count=10<Integer>];[restricted=false<Boolean>];[direct=false<Boolean>];[related=false<Boolean>];[template=summary<String>])
Atributs |
Descripció | Tipus | Opcions | Per defecte |
---|---|---|---|---|
status | L'estat en que es troba l'item. | <String> | onwork|closed|all | onwork |
context | Indica on porten els enllaços per llegir més. | <String> | ||
categoryIds | Les categories a mostrar. Buit per a totes. | <String> | ||
dossierId | L'identificador del dossier a mostrar. | <Long> | 0 | |
count | El nombre d'ítems a mostrar. | <Integer> | 10 | |
restricted | Cert si el que es mostra és específic per a l'usuari. | <Boolean> | false | |
direct | Cert si el que es mostra és per participació directe de l'usuari. | <Boolean> | false | |
related | Cert si el que es mostra es participat per membres de la mateixa empresa que l'usuari. | <Boolean> | false | |
template | El patró del format per mostrar els items. | <String> | summary |
projects(status=onwork<onwork|closed|all>;context=<String>;[categoryIds=<String>];[dossierId=0<Long>];[count=10<Integer>];[restricted=false<Boolean>];[direct=false<Boolean>];[related=false<Boolean>];[template=summary<String>])
Atributs |
Descripció | Tipus | Opcions | Per defecte |
---|---|---|---|---|
status | L'estat en que es troba l'item. | <String> | onwork|closed|all | onwork |
context | Indica on porten els enllaços per llegir més. | <String> | ||
categoryIds | Les categories a mostrar. Buit per a totes. | <String> | ||
dossierId | L'identificador del dossier a mostrar. | <Long> | 0 | |
count | El nombre d'ítems a mostrar. | <Integer> | 10 | |
restricted | Cert si el que es mostra és específic per a l'usuari. | <Boolean> | false | |
direct | Cert si el que es mostra és per participació directe de l'usuari. | <Boolean> | false | |
related | Cert si el que es mostra es participat per membres de la mateixa empresa que l'usuari. | <Boolean> | false | |
template | El patró del format per mostrar els items. | <String> | summary |
issues(status=onwork<onwork|closed|all>;context=<String>;[categoryId=0<Long>];[dossierId=0<Long>];[count=10<Integer>];[restricted=false<Boolean>];[template=summary<String>])
Atributs |
Descripció | Tipus | Opcions | Per defecte |
---|---|---|---|---|
status | L'estat en que es troba l'item. | <String> | onwork|closed|all | onwork |
context | Indica on porten els enllaços per llegir més. | <String> | ||
categoryId | La categoria que es mostrarà. Zero per a totes. | <Long> | 0 | |
dossierId | L'identificador del dossier a mostrar. | <Long> | 0 | |
count | El nombre d'ítems a mostrar. | <Integer> | 10 | |
restricted | Cert si el que es mostra és específic per a l'usuari. | <Boolean> | false | |
template | El patró del format per mostrar els items. | <String> | summary |
workload(context=<String>;[count=10<Integer>];[template=summary<String>])
Atributs |
Descripció | Tipus | Opcions | Per defecte |
---|---|---|---|---|
context | Indica on porten els enllaços per llegir més. | <String> | ||
count | El nombre d'ítems a mostrar. | <Integer> | 10 | |
template | El patró del format per mostrar els items. | <String> | summary |
kb(context=<String>;[count=10<Integer>];[template=summary<String>])
Atributs |
Descripció | Tipus | Opcions | Per defecte |
---|---|---|---|---|
context | Indica on porten els enllaços per llegir més. | <String> | ||
count | El nombre d'ítems a mostrar. | <Integer> | 10 | |
template | El patró del format per mostrar els items. | <String> | summary |
contracts([status=active<active|closed|all>];[context=<String>];[count=10<Integer>];[intervention=true<Boolean>];[type=0<Integer>];[template=summary<String>])
Atributs |
Descripció | Tipus | Opcions | Per defecte |
---|---|---|---|---|
status | L'estat en que es troba l'item. | <String> | active|closed|all | active |
context | Indica on porten els enllaços per llegir més. | <String> | ||
count | El nombre d'ítems a mostrar. | <Integer> | 10 | |
intervention | Cert si es comprova la intervenció dins el contracte. | <Boolean> | true | |
type | El tipus de l'item. | <Integer> | 0 | |
template | El patró del format per mostrar els items. | <String> | summary |
last-activity([context=<String>];[count=50<Integer>];[days=7<Integer>];[path=<String>];[template=summary<String>])
Atributs |
Descripció | Tipus | Opcions | Per defecte |
---|---|---|---|---|
context | Indica on porten els enllaços per llegir més. | <String> | ||
count | El nombre d'ítems a mostrar. | <Integer> | 50 | |
days | Nombre de dies a revisar. | <Integer> | 7 | |
path | Trajectoria de l'entitat a revisar. Buit si totes. | <String> | ||
template | El patró del format per mostrar els items. | <String> | summary |
publications([context=<String>];[categoryId=0<Long>];[groupId=0<Long>];[count=10<Integer>];[template=summary<String>];[notSent=false<Boolean>];[lang=<String>];[asBlogger=false<Boolean>];[future=false<Boolean>])
Atributs |
Descripció | Tipus | Opcions | Per defecte |
---|---|---|---|---|
context | Indica on porten els enllaços per llegir més. | <String> | ||
categoryId | La categoria que es mostrarà. Zero per a totes. | <Long> | 0 | |
groupId | El grup que es mostrarà. Zero per a tots. | <Long> | 0 | |
count | El nombre d'ítems a mostrar. | <Integer> | 10 | |
template | El patró del format per mostrar els items. | <String> | summary | |
notSent | Cert si es mostren les no enviades. | <Boolean> | false | |
lang | L'idiome de l'item. Buit per a tots. | <String> | ||
asBlogger | Els items pendents de l'usuari amb el rol de blogger. | <Boolean> | false | |
future | Cert si es mostren els items amb data futura. | <Boolean> | false |
challenges([status=active<active|closed|all>];[context=<String>];[count=10<Integer>];[restricted=false<Boolean>];[studentRelated=false<Boolean>];[challengerRelated=false<Boolean>];[responseFrom=15<Integer>];[template=summary<String>])
Atributs |
Descripció | Tipus | Opcions | Per defecte |
---|---|---|---|---|
status | L'estat en que es troba l'item. | <String> | active|closed|all | active |
context | Indica on porten els enllaços per llegir més. | <String> | ||
count | El nombre d'ítems a mostrar. | <Integer> | 10 | |
restricted | Cert si el que es mostra és específic per a l'usuari. | <Boolean> | false | |
studentRelated | <Boolean> | false | ||
challengerRelated | <Boolean> | false | ||
responseFrom | <Integer> | 15 | ||
template | El patró del format per mostrar els items. | <String> | summary |
Per tal de cobrir tots els casos que permeten les newsletter, la tasca que llança el contingut pels subscriptors és diferent de la tasca d'enviament de publicacions.
La llançadora de newsletter té en compte que els diferents continguts venen de diferents mòduls. Si la llançadora es defineix com a Necessita disparador, previ a l'enviament, la llançadora comprovarà que hi hagi continguts en aquelles seccions marcades com a Disparador.
Opcionalment, la llançadora pot restringir els nombre de recipients a criteris de mòdul. Un cop seleccionats els recipients, aquests passaran pel filtre de subscripció, on es diu si volen o no rebre de la categoria de la newsletter.
Tot i que és possible crear tantes newsletter com s'enviïn, l'objectiu principal és permetre usar les newsletter com eina de maquetació i captar el contingut de l'activitat dins les bases de dades.
El que segueix són exemples dels diferents tipus de newsletter segons els atributs o la llançadora que s'utilitzi.
Valor |
Explicació |
Títol |
Pot ser un títol normal, tipus Informe d'estat. |
Estàtica/Dinàmica |
El contingut no es guarda com enviat en una data determinada. Cada vegada que es consulti o s'enviï, variarà segons les dades del moment de la consulta. |
Valor |
Explicació |
Títol |
El títol ha de contenir el número. Aquest pot ser del format any/mes per enviaments mensuals. |
Estàtica/Dinàmica |
El contingut es guarda com enviat en una data determinada. Cada vegada que es consulti o s'enviï el número, es veurà el mateix que es va enviar per primer cop. |
Llançadora |
Explicació |
Tasca periòdica |
Una tasca periòdica genera el contingut i l'envia als subscriptors. |
Llançadora |
Explicació |
Una activitat concreta |
Una activitat genera el contingut i l'envia als subscriptors. |
Tant les publicacions com les newsletter s'envien usant diferents mètodes. El més habitual és usar una tasca programada que faci l'enviament, però també poden ser enviades en moments concrets a usuaris determinats.
Per entendre la complexitat dels enviaments, veiem quines són les peces en joc:
Peça |
Explicació |
Categoria de publicacions |
Poden ser públiques o privades. Les públiques són gestionades per l'usuari. Les privades les gestiona l'administrador de publicacions. |
Categoria de notificacions |
Són categories creades pel sistema. La divisió entre públiques i privades funciona igual que les categories de publicacions. El sistema usa les notificacions privades per enviar missatges de sistema, com per exemple, la recuperació de passwords. |
Subscripcions |
Per a tota categoria pública, les subscripcions són gestionades per l'usuari, podent ser restringides pel Per categories privades, l'usuari no pot subscriure's, però si demanar no rebre. |
Enviables |
Els enviables són qualsevol entitat que pugui ser enviada per correu. La finalitat dels enviables és poder enviar correus de manera puntual. |
Acords |
Els acords són acceptats o declinats per l'usuari. Hi ha dos tipus d'acord, el que restringeix l'accés a l'aplicació i el que prohibeix l'enviament de notificacions o publicacions. |
Algunes de les peces anteriors actuen com a filtres. La següent imatge mostra els elements a lloc.
Enviaments a usuaris
Les categories públiques són gestionades per l'usuari. Si no vol rebre d'una categoria, pot aturar l'enviament per configuració. Si vol subscriure's a alguna categoria, també ho pot fer per configuració.
Els enviables tenen com a únic filtre els acords. L'usuari és requerit a un pronunciament vers l'acord una sola vegada. Un cop accepta o declina, ja no se li recorda més. Amés, els acords són acumulables per usuari. Un acord declinat atura tot enviament. L'efecte d'això, és que l'usuari no pot aturar l'enviament per configuració i té com a única solució demanar que s'aturi tot enviament.
Les tasques programades, llançadores d'enviaments de categories de publicacions o newsletter, estan optimitzades per a enviaments massius. Utilitzem tasques d'enviament per lots que eviten ser marcats com spam pel volum de correus.
Dins les tasques programades, evitar l'ús de Guardar i executar, incidint més en una programació correcte.
Tant publicacions com newsletters poden definir-se per a un idioma concret. El resultat és el següent:
Idioma |
Qui ho veu |
Buit o nul |
Tots els visitants de la web veurien la publicació o newsletter. |
Un idioma de la web |
Tots els visitants si l'idioma de visualització de la web o la del seu navegador coincideixen. En la majoria de webs aquest és seleccionable pel visitant. |
Un idioma no configurat a la web |
Només els visitants si l'idioma del seu navegador coincideix i la seva selecció d'idioma és Configuració per defecte. |
Pels enviaments, la diferència està en l'idioma a comparar. S'utilitza sempre la configuració regional del contacte.
Idioma |
S'envia? |
Buit o nul |
S'envia a tots els contactes seleccionats. |
Un idioma concret |
S'envia exclusivament als contactes seleccionats configurats amb el mateix idioma. La resta no rebran la publicació o newsletter. |
Com a regla general, s'entén posar un idioma quan:
No posaríem idioma si:
Les publicacions són bàsicament un blog. Van lligades a una data, un autor, unes lectures, una valoració i comentaris. Les publicacions utilitzen Mail queue per gestionar les subscripcions de les categories de publicació, així que poden ser enviades per correu a tot usuari registrat que ho vulgui. Les publicacions cobreixen abastament les necessitats de comunicació més habituals, via web o correu.
Si és així, doncs perquè hauríem de voler una nova eina?
Les Newsletter entomen la casuística que comporta l'enviament per correu. Maquetació, formats i continguts sota estàndards que funcionen en qualsevol client de correu.
Les Newsletter, amés, no han vingut soles. Per tal de donar contingut a les seccions externes, s'han creat els ContentProvider
. Cada mòdul pot definir els seus per dotar de contingut les Newsletter.
Funcionalitat |
Publication |
Newsletter |
Publicació web |
Sí, és l'entorn on millor es desenvolupa. |
Sí, però no hi està pensat. |
Enviament per correu |
Sí, envia les publicacions no enviades prèviament. |
Sí. |
Control de subscriptors |
Sí, per categories de publicació. |
Sí, per categories de publicació, de mòduls i de sistema. |
Funcionalitat notificació |
No. |
Sí, via disparadors de secció. |
Contingut personalitzat |
Sí, nom, correu i enllaços actius ( |
Sí, igual que publicacions més contingut personalitzat de mòduls. |
Contingut dinàmic |
No. |
Sí, una sola Newsletter pot configurar-se per a ser enviada amb resums que variaran segons el seu estat en el moment de l'enviament. |
Les publicacions generen una URL d'accés a la publicació sencera. Aquesta URL segueix les convencions estàndard per URLs fàcils de llegir i acceptades pels buscadors. En una primera versió, les URL són el mateix títol adaptat.
Dins els templates de publicacions, s'ha afegit una convenció de directoris amb funcionalitat per a imatges.
topmost
surten després del títol, ocupant tot l'ample.priorized
surten després del sumari, ocupant tot l'ample.included
surten al final del cos, ocupant la meitat de l'ample.Tant les topmost
com les priorized
es veuen en el llistat. Les included
només quan es veu la publicació sencera.
De la mateixa manera, les topmost
i les priorized
s'envien dins la notificació per correu.
Dins els templates de publicacions, s'ha afegit una convenció de directoris amb funcionalitat per a documents.
attached
surten després de la publicació, quan es mostra sencera.attached
es mostren com a directoris desplegables.Els documents dins l'arrel de attached
s'envien com adjunts dins les notificacions per correu de categories marcades com Evitar la cua
o usant la pestanya Enviable.
BrightSide CRM es composa dels elements que permeten fer un seguiment de les accions fetes pels comercials i tècnics, dirigides a clients i clients potencials, per assolir una venda.
Els blocs principals del CRM son:
Les dades que s'utilitzen per organitzar les accions de venda son:
Les accions de venda son el nucli de BrightSide CRM. Son la font del calendari dels venedors, dels resultats de les prospeccions i les campanyes. També permeten crear estadística envers els tipus d'acció i la seva efectivitat. Mantenir al dia les accions de venda dona qualitat a l'informació tornada pel sistema.
Nom |
Descripció |
Data inici |
Indica quan s'ha fet o es preveu fer l'acció. |
Data final |
Indica la finalització de l'acció. |
Adreça |
S'agafa de les adreces del client, incloent seus, departaments i contactes. S'escull una de la llista. |
Venedor |
És el venedor que ha fet o farà l'acció. |
Tipus |
És el tipus d'acció que s'ha fet o es farà:
|
Participants |
Son les persones que han participat o participaran en l'acció. Els participants poden assignar-se manualment a l'acció o venir donats per la prospecció de venda. Quan la prospecció és part d'una campanya, serà |
Comentari |
Resum de l'acció descrita pel venedor. En accions futures el comentari descriu què es pretén fer. En accions ja fetes, el resum descriu com s'ha resol l'acció. |
Touchpoint |
Punt de contacte o fita que s'ha aconseguit en l'acció. Les noves accions hereten els touchpoint d'accions anteriors, entenent que no es perd contacte, sino que es manté o es guanya. |
Estat |
Indica quan l'acció és per fer, cancel·lada o feta. Una acció amb estat |
La prospecció de venda de BrightSide CRM és el conjunt de les accions de venda fetes a un client o client potencial amb un objectiu definit.
Atribut |
Descripció |
Client |
Client a qui es fa la prospecció. |
Descripció |
Descripció del motiu pel que es contacte amb el client o client potencial. Quan la prospecció ve d'una campanya, la descripció és de la campanya. |
Data inici |
Inici de la prospecció. |
Data final |
Opcional, fi de la prospecció. Quan s'arriba a la data de finalització, la prospecció es dona per acabada negativament, en cas de no haver estat acabada amb anterioritat positivament. |
Participants |
Son les persones que es faran participar en la prospecció. |
Venedors |
Son els venedors que poden fer accions de venda en la prospecció. Cada venedor apareix en la prospecció amb una fórmula de comissió i una d'alerta. |
Les campanyes de BrightSide CRM son eines per crear prospeccions de venda seleccionant múltiples clients o clients potencials. Al afegir un client a la campanya es genera una nova prospecció de venda, escollint els targets segons es defineix amb Ideal Target
.
Atribut |
Descripció |
Descripció |
Descripció del motiu pel que es contacte amb els clients o clients potencials. |
Data inici |
Inici de la campanya. |
Data final |
Opcional, fi de la campanya. Quan s'arriba a la data de finalització, la campanya dona per acabades negativament totes les prospeccions generades, en cas de que no haguessin estat acabades amb anterioritat positivament. |
Targets |
Usant |
Publicació |
Descripció amb contingut ric, HTML, imatges, videos, etc. per publicar via web o email. |
Venedors |
Venedors assignats a la campanya. Cada venedor apareix en la campanya amb una fórmula de comissió i una d'alerta. Quan no es defineixin venedors, les prospeccions generades agafaran els venedors assignats al client de la prospecció. |
campanya
vista com la adició de clients
per aconseguir prospeccions de venda
El client és el contacte sobre el que es fan prospeccions de venda. Quan el contacte que representa el client té definit l'organigrama, facilita la obtenció de targets usant Ideal Target
.
Atribut |
Descripció |
Nom |
És el nom del client. Es selecciona d'una llista de contactes i s'ha de correspondre a un contacte vàlid. |
Sectors d'activitat |
Sectors en els que classifiquem el client. |
Tecnologies |
Tecnologies que utilitza el client. |
Sectors on treballa |
Sectors en els que classifiquem els clients a qui dona servei el client. |
Venedors |
Son els venedors a qui s'assigna el client. Cada venedor apareix amb una fórmula de comissió i una d'alerta. |
El sumari de client és on es mostra l'activitat del contacte en altres mòduls de BrightSide. Aquest és un dels avantatges d'una plataforma integrada. Alguns exemples son:
El venedor és el contacte que fa les accions de venda i a qui se li assignen clients, prospeccions i campanyes.
Atribut |
Descripció |
Nom |
És el nom del venedor. Es selecciona d'una llista de contactes i s'ha de correspondre a un contacte vàlid. |
És posible filtrar els productes que tinguin relació amb contractes de dues maneres:
Productes
.Contracte
.
L'entrada de productes admet els següents casos:
#
abans del codi. El producte es valida immediatament.##
o escriure'l directament. En aquest darrer cas, si el codi de contractant no és coincident amb cap codi de producte produirà el mateix resultat.Quan un contracte té marcada la opció Usar codis del contractant
s'usaran, visualment, els codis definits pel contractant. De tota manera, la cerca de productes funciona igual independentment de com estigui marcada aquesta opció. Quan s'ha buscat per codi i l'opció es marcada, l'entrada troba el codi de contractant correcte.
Quan en el filtre es selecciona un tipus document, aquest respon sempre al document que es vol fer. Al dir Rebut Despesa
, per exemple, es veurien tots els documents que poden continuar el flux cap a Rebut Despesa
, per exemple Factura Rebuda
i Venciment a Pagar
.
Cadascun dels documents relacionables té com atributs Ancestre
i Descendent
, visibles en la pestanya Relacions
del document. Un document es relaciona amb altres documents en dos sentits:
Venciment
.Quan un document no té ancestres, és possible desmarcar l'atribut Ancestre
per evitar que continui sortint en cartera. El cas és el mateix pel que fa als descendents.
Un document pot programar-se com entitat. Es configura amb el botó .
Les accions programables son:
El model 111 llista les dades per:
Les retencions s'agrupen per:
El model 111 és només a títol informatiu. Els comptes implicats es liquiden fent servir l'opció Liquidacions
.
El model 303 mostra les dades d'IVA dels trimestres. El desglòs és:
I els totals per a cada cas. Les dades per trimestre i desglòs son:
L'import declarat es fa servir per a dues coses:
Els totals del desglòs mostren dues bases, la que es declararà i la real. Seràn diferents si existissin hi haguessin moviments exempts d'IVA.
Per a cada trimestre, la fila inferior mostra els totals d'IVA suportat i repecutit. Quan existeix assentament, el camp declarat mostra l'import declarat en l'assentament. Quan no existeix assentament, un botó proposa generar-lo.
La generació del assentament és automàtica, no queda gravat fins que s'accepta i corregeix errors en trimestres passats.
En gravar l'assentament, els comptes d'IVA queden a cero i l'import passa a Hisenda deutora o creditora, segons sigui el cas.
Les liquidacions permeten pagar o ingressar, segons toqui, d'un dipòsit de tresoreria. Es genera un assentament que liquida els comptes d'Hisenda deutora o creditora contra el compte de tresoreria escollit.
És possible escollir quins comptes es volen liquidar.
El format dels comptes associats al IVA i IRPF és:
[Major][Modificador].[(IVA|IRPF)*10]
Per exemple:
4720000180
4751200019
Per aconseguir compatibilitat amb versions anteriors on IVA i IRPF no admetien cap decimal en les actualitzacions s'inclou un autoupdate SQL
que opera sobre la base afegint un 0
al final dels comptes associats.
Si existeix la 4720000018 o la 4770000018 Converteix fent: (Digits del 1 al 7) + (Digits del 9 al 10) + 0 Si no No facis res
El resultat de la modificació és que els comptes associats perden el vuitè dígit i guanyen un darrer zero.
Es liquiden els comptes associats a IVA i IRPF contra els comptes acabats en 000
. La liquidació de compte associada a compte de liquidació es fa al tancar trimestre. El pagament (o cobrament) es fa en la data especificada.
BS Financials dóna un conjunt d'informes comptables estàndard, més la possibilitat de crear nous informes a mida per l'usuari.
El balanç és exportable en el format de sumes dels deure i haver. L'exportació permet extreure les dades del balanç de sumes i saldos. Via les opcions d'exportació, també és possible obtenir un format adequat per a taules pivot.
Any |
L'any objectiu de l'informe. |
Mes |
El mes de l'any objectiu del qual es fa l'informe |
Incorporar saldos inicials |
Incorpora l'assentament inicial a l'informe. En cas de no trobar-lo en l'any objectiu, busca el darrer i acumula els imports. |
Desglòs |
Desglossa els imports per trimestres. Afegeix l'any pel cas d'incorporar saldos inicials en anys sense assentament inicial. |
L'escenari correcte és un any objectiu amb l'assentament inicial fet o amb l'any anterior tancat. A diferència de l'opció de balanç del menú, l'exportació força la inclusió de l'assentament inicial quan es demana que s'incorporin, anant a buscar-lo en anys anteriors.
Les opcions de saldos inicials i desglòs donen l'oportunitat de treure fulles amb més informació i per a diferents propòsits.
És important tenir en compte que quan es demana incorporar saldos inicials i desglòs conjuntament, els saldos inicials són acumulats en el primer trimestre de cada any. Quan aquests s'han trobat en anys anteriors (any objectiu sense assentament inicial), també s'acumularan els assentaments de tancament en el darrer trimestre. Si es vol veure l'evolució trimestral dels comptes, els saldos inicials desfiguraran l'informe. Aquesta regla no s'aplica als comptes d'explotació, excepte quan l'any objectiu no té assentament inicial.
Els informes comptables configurables permeten crear taules amb valors reals de la base de dades Financials usant des de
i fins
dates.
El format de la definició de l'informe és text JSON i pot configurar-se a Eines -> Arxius -> Informes. L'extensió de l'arxiu amb la definició cal que sigui .json
. Els informes seran executables des de Financials -> Comptabilitat -> Informes. Un exemple de definició seria:
{ "name": "Nom de l'informe", "rows": [ { "order": 1, "name": "Concepte de la fila 1", "regexp": [ "700.*" ], "sumType": "CREDIT", "negate": false }, { "order": 2, "name": "Concepte de la fila 2", "regexp": [ "600.*" ], "sumType": "DEBIT", "negate": false }, { "order": 3, "name": "Total", "sum": true } ], "columns": [ { "order": 1, "name": "Concepte de la columna 1", "regexp": [ ".*[0-4]" ] }, { "order": 2, "name": "Concepte de la columna 2", "regexp": [ ".*[5-9]" ] } ] }
Les fulles d'informe BS Financials són informes basats en fulles de càlcul amb configuració de comptes. El módul de fulles d'informe fa còpia de la fulla de configuració i reemplaça les cel·les amb configuració de comptes, pels valors reals de la base comptable.
Es proporcionen dues fulles estàndard que representen el Balanç de Situació en format anual i mensual. Per executar-les aneu a Financials -> Comptabilitat -> Fulles informe. El camp Data
serà usat per extreure l'any o l'any i el mes, segons l'informe.
Data
seleccionar una data qualsevol de l'any del qual es vol el balanç.Fulla
ComptesAnuals.En la tasca es defineixen els usos requerits:
Es defineix en la tasca i controla quan els usos son visibles a compres:
En tots els casos es defineix un valor de retard. Per exemple, un retard de menys un hora, més Comprar al acabar predecessor, faria que les compres veiessin els usos un hora abans de la previssió d'acabament del predecessor, o el que seria el mateix, una hora abans del moment previst de començar la tasca.
El pas de planificant a preparada és responsabilitat de la persona que prepara les tasques.
Una tasca preparada estarà en espera quan:
En la resta de casos, la tasca preparada estarà llesta per començar.
Una tasca iniciada pot passar a acabada quan:
L'API de convocatòries permet crear convocatòries basades en els participants en entitats de qualsevol mòdul BrightSide.
Les convocatòries es composen dels següents camps:
Descripció |
Nom de la convocatòria. Surt en el calendari i com a subjecte dels correus. |
Organitzador |
Contacte que convoca. Si el correu es correspon al domini del BaaS, serà l'utilitzat quan s'envií la convocatòria. En cas de no correspondre, s'usaria el correu per defecte. |
Data inici i data final |
Les dates de l'esdeveniment. |
Lloc |
Lloc de l'esdeveniment. |
En línia |
Indica que l'esdeveniment es fa en línia. |
URL |
L'adreça per poder accedir a l'esdeveniment. Aquesta adreça només es fa pública a les persones convocades, via email, consultant l'àrea d'usuaris o la pàgina web de l'esdeveniment. |
Entitat |
Entitat BrightSide d'on s'agafen els assistents. La convocatòria pot afegir de l'entitat o fer un afegit profund, usant altres entitats relacionades. Per ex. Dossier i Categoria. |
Text |
Text explicatiu de l'esdeveniment. |
Assistents |
Contactes assistents a la convocatòria. Poden afegir-se de l'entitat o directament. |
Les convocatòries queden registrades en els calendaris BrightSide de l'organitzador i els assistents. Aquests calendaris es poden importar a diferents plataformes de calendari i dispositius.
Apart del calendari BrightSide, les convocatòries poden enviar-se per correu. Quan es segueix aquest mètode, els correus són de organitzador a assistent, un a un i privat. Dins cada correu s'inclou l'esdeveniment en format iCal
. Com el comportament varia segons les plataformes, cal tenir en compte:
Les convocatòries poden usar-se com a control de registre i assistència per a trobades, cursos o qualsevol altre esdeveniment.
Els correus enviats als contactes convocats inclouen un codi QR amb un text indicant que servirà per a validar l'assistència.
|
Guardi aquest codi QRAquest codi s'utilitzarà per a validar la seva assistència. |
En el registre d'assistents previ a l'acte els contactes registrats i en possessió del codi QR podran ser validats fent una lectura del codi. La lectura de codi la podrà fer un usuari registrat i pertanyent al grup social
Auxiliars d'esdeveniments.
Una convocatòria pot admetre que els contactes puguin registrar-se (afegir-se a la convocatòria). Quan s'habiliti el registre a la convocatòria, caldrà tenir en compte:
grup social
dins el BaaS. Habitualment el rol concret es defineix dins xproles-site.xml
.Ens posarem en mode administració web i crearem un context restringit pel rol escollit.
Un cop creat el context, l'editarem afegint la macro
, sent [id_convocatòria] igual al id de la pestanya convocatòria dins el BaaS.{
Un cop gravat el context, es mostrarà la convocatòria seleccionada. El format serà:
La intenció de l'editor wiki és facilitar l'entrada de la Wiki syntax per a pàgines, publicacions i d'altres elements editables.
La sintaxi wiki gestiona correctament l'entrada de text normal, creant paràgrafs quan es deixen espais en blanc, o salts simples de línia.
Si es selecciona text dins l'editor i s'aplica alguna de les opcions de menú sobre el text, només el text seleccionat es veu afectat. Per exemple, si volem tornar un text a negreta, seleccionant-lo i prement el botó de negreta, l'editor afegirà
Seleccionant un text i prement Crear grup d'estils, el grup envoltarà el text seleccionat entre
.
En ordre d'esquerra a dreta:
Botó |
Funcionalitat |
Capçalera 1 |
Torna el paràgraf on es troba el cursor a l'estil capçalera 1. |
Capçalera 2 |
Torna el paràgraf on es troba el cursor a l'estil capçalera 1. |
Capçalera 3 |
Torna el paràgraf on es troba el cursor a l'estil capçalera 1. |
Capçalera 4 |
Torna el paràgraf on es troba el cursor a l'estil capçalera 1. |
Negreta |
Torna el text seleccionat a negreta. |
Cursiva |
Torna el text seleccionat a cursiva. |
Mono-espaiada |
Torna el text seleccionat a mono-espaiada. |
Alineació esquerra |
Alinea el bloc d'estils a l'esquerra. |
Alineació centre |
Centra el contingut del bloc d'estils. |
Alineació dreta |
Alinea el bloc d'estils a la dreta. |
Text justificat |
Justifica el contingut del bloc d'estils. |
Flotant esquerra |
El bloc d'estils flota a l'esquerra. |
Flotant dreta |
El bloc d'estils flota a la dreta. |
Element de llista |
Torna el paràgraf on es troba el cursor en un element d'una llista. |
Element de llista ordenada |
Torna el paràgraf on es troba el cursor en un element d'una llista ordenada. |
Color |
Defineix el color de la font i/o del fons del grup d'estils on es troba el cursor. |
Taula |
Crea elements de taula, com columnes i files diferenciant si són de capçalera. |
Agrupacions |
Defineix varis elements que funcionen com a grups d'estils.
|
Esborrar estils |
Esborra els atributs associats al grup d'estils on es troba el cursor. |
Imatge |
Permet pujar una imatge al repositori adequat i seleccionar-la. |
Enllaç |
Permet crear un enllaç, incloent enllaços a arxius. El selector d'arxius permet també pujar-ne. |
Protecció |
Crea elements wiki a partir d'elements HTML, intentant respectar els atributs. |
Vista prèvia |
Mostra una vista prèvia de l'HTML generat. |
Ajuda |
Porta a l'ajuda contextual de l'editor wiki. |
L’API d’enquestes permet crear grups de preguntes relacionades amb entitats BrightSide.
Una enquesta és un grup de preguntes relacionades amb una entitat BrightSide. Com atributs, l'enquesta té títol, una descripció, una data límit per respondre, la possibilitat d'adjuntar documentació usant el mòdul d'adjunts i atributs de comportament que veurem més endavant amb més detall.
Al mostrar-se, l'enquesta deixa al participant navegar entre l'entitat relacionada i la pròpia enquesta, tal i com es mostra en els següents exemples.
Enquesta a l'àrea d'usuari
Enquesta en l'entitat relacionada
Attribut |
Explicació |
Permetre negatius |
Quan es permeten negatius, els valors que es guarden per a cadascuna de les opcions de l'enquesta són -1, 0 i 1. La transcripció serà En contra, Abstenció i A favor. La opció de vot a la web es mostrarà com vermell, groc o verd, remarcant la opció escollida. Quan no es permeten negatius, només es guarden las votacions positives. Depenent de si es mostren o no participants, la opció de vot es mostrarà com un OK blau o un Checkmark verd. |
Mostrar participants |
Quan es mostren participants, es crea una taula on els participants es mostren en l'eix Y i les opcions en l'eix X. Dels participants es veurà el nom i el sentit vot. Quan no es mostren participants, l'usuari que vota només veu les opcions. |
Mostrar vots |
Quan es mostren vots, el nombre total de vots es veu per a cada opció. Quan també es mostren participants, la suma dels vots es veu a peu de taula. Quan no es mostren vots, l'usuari no sap en cap moment el resultat de la votació. |
Permetre insercions |
Permetre insercions activa la possibilitat que els usuaris puguin afegir opcions a votar. |
Màxim per opció |
Màxim per opció controla la quantitat de vots admesos per opció. Aquest punt té sentit quan s'està fent un tipus d'enquesta on les opcions admeten un nombre de votants determinat. Quan el màxim per opció és zero, tots els participants poden votar totes les opcions. |
Màxim d'opcions votades |
Màxim d'opcions votades controla la quantitat de vots emesos per un participant. L'explicació seria es pot votar un màxim de 3 del total de 5, sent 3 i 5 part de l'exemple. Quan el màxim d'opcions és zero, el participant pot votar totes les opcions. |
Tipus |
L'atribut tipus afecta al títol de les opcions. El tipus String es el que admet més varietat i pot ser usat per defecte. |
No permet negatius, no mostra participants
Permet negatius, no mostra participants
No permet negatius, mostra participants
Permet negatius, mostra participants
Les enquestes poden ser enviades per correu. Els recipients seran els participants de l'entitat relacionada. Veiem un exemple usant dos entitats diferents:
Entitat relacionada dossier |
Els participants de l'enquesta seran els participants al dossier i a les categories d'on penja el dossier. |
Entitat relacionada publicació |
Els participants de l'enquesta seran els subscriptors de la categoria de la publicació. |
El correu mostra el títol de l'enquesta, l'entitat relacionada, la descripció i les opcions a votar, incloent el sentit del vot en cas d'ésser votada.
Elephant is an application framework based on components. Web Application Developers would not start from scratch, instead will implement standard interfaces. Some of the great advantages of using Elephant are the existing set of components and site administration. Elephant users can expand the site at will, by adding childs to existing pages and selecting whether these childs my or not show in navigators.
Take a look at the Elephant building structure. By creating a new component, you are reusing a lot of already working code. Your application will integrate smoothly into already existing web sites, using standard components as: Portal Mailing System, Automated Mailing Lists, Web Search System, Page Scripting, Macro Scripting, etc.
Web masters will enjoy using the existing set of components. It gives them full power on web site appearence while makes quite easy creating new pages and their content. Navigation issues are fully supported by Elephant configuration files, with attributes like: Show In Navigators, Tell Robots NOT_TO_INDEX / NOT_TO_FOLLOW, Supported Languages, Internationalized Names, etc.
Page's content is also greatly assisted. When no component is defined, Elephant's DefaultElement takes place. DefaultElement implements what is required to create page content. Repository for images and documents, easy syntax (no HTML, though is permited), version control, author tracking, multi-language support, etc.
One of the magic things that make Elephant easy to use and powerful is the structure is build on. When Elephant takes control you are always in a Context
. As for creating web pages, you'll need to understand what a context is and its relation with other contexts.
A context
is a web page. We didn't called web page
because it seemed too simple for such a marvellous creature, but is nothing more than a web page. Anyway, as to continue making things complicated where they should be easy, we will call this web page a context
.
Context builds up with two different kinds of elements. The actual elements and the layout elements. Despite their names, they respond to a very usual situation. You know how your site should look and don't want to repeat the design for each page. These elements are the layout elements. They are defined at top level, in site's home, and inherited for lower levels.
The image shows what the layout elements are, surrounding the actual content, which is not more than the actual element mentioned above.
By default, the actual element is HTML content, text, written with the special Elephant syntax.
Elephant sites allow creating as many contexts as you might require, remember a context is equivalent to a page. There is no other limit than the available space and your imagination. Creating pages involve thinking where you want to contruct them. To understand this you might think of your site as a tree. The trunk is the home page. First branches will be home its children and so on. Your tree can have many branches, Elephant will take care to make easy the navigation among them.
Each context has several attributes that define its behaviour.
Attribute |
Description |
Order |
Controls context ordering. It's an alphanumeric value, write numbers with leading zeros. ex. 001, 002 and so on. |
Show in navigators |
When selected the context is shown in navigators. It's useful when you have pages you don't want them accessed directly. |
Show always |
Even if the context is protected by a role, it will show in navigators. With this attribute set to true, a context will force visitors to login if they want to see the content. |
Context role |
Protects a context using user's permissions, roles or syndications. See Security . |
Language |
Coma separated list of languages used in this context. This value is inherited from parent context. If you set a language in root context, web site's |
Redirection |
Redirects to a different context when context is selected. If the path contains a full URL, the redirection will also inform the browser is being redirected. A path equal to |
Not to index / Not to follow |
Values passed to search engines. |
Show print version option |
When checked, shows a link to printer version.
Print version will render current page and all its descendants in reading order.
|
Show control version system |
When checked, shows different versions of this page, including language, author and modification date. |
Name |
Context's name. Yoy may need to specify as many names as languages the context has. Name is what appears on menus, tabs, popup menus, etc. |
When you want to show an image in a page, you need first to upload the image file. Where this file goes to it's called repository
. Each context has its own repository. So, you have as many repositories as web pages. Each one with its own structure and content.
Elephant maintains different caches to increase performance.
site.xml
.The Tools menu has an option that allows to reset these caches. Also forces the sitemap generation. Use with caution.
Elephant provides a DefaultElement
with edition capabilities. The editor uses the Wiki syntax
to ensure a correct HTML result. Also, the wiki syntax, used as is with no classes and styles, is compliant with the email templates. Write once, use everywhere.
This graphic shows the elements that provide content for a web page or an email. By changing the templates root, the marker will generate different layouts. The wiki syntax ensures that the content fits into these templates.
See a complete reference of the available Macros
As noticed above, email templates are not the same than web templates. The main reason is because for web templates we have a complete framework whereas email templates have only a subset. Email clients, or readers, limit the number of CSS and JavaScript features available, making emails a complete different world.
To understand how Elephant deals with those differences, see the button template for an email and for the web.
<table border="0" cellpadding="0" cellspacing="0"> <tr> <td align="center" bgcolor="${bgcolor}" style="-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px;"> <a href="${link}" style="padding:10px 20px;display:block;text-decoration:none;border:0;font-weight:bold;font-size:15px;color:${color};background:${bgcolor};border:1px solid ${bgcolor};-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px;line-height:17px;" class="button_link"> ${text} </a> </td> </tr> </table>
<a href="${link}" class="ui primary button"> ${text} </a>
Elephant renders its contexts using layouts.
Template layout is the new default layout for new Elephant versions. In order to make template layout compliant with current table layout versions, template layout makes use of different CSS files.
Table layout |
Template layout |
default-site.css |
default-template-site.css |
default-navigator.css |
default-template-navigator.css |
default-navigator-site.css |
default-template-navigator-site.css |
To activate templates for the whole site, use the template
element under layout
on the root context. For local templates, those applying to the context where are defined, use the local-template
element.
Typical configuration is:
<?xml version="1.0" encoding="ISO-8859-1"?> <elephant-context lang="_en"> <i18n> <name> <_en>Home</_en> </name> </i18n> <layout> <local-template name="landing"/> <template name="web"/> </layout> </elephant-context>
<#include "header.html"/> <div class="webBody" style="width:100%;background:#fff;"> <div style="width:1000px;margin:auto;"> <table style="width:100%"> <tr style="vertical-align:top;"> <#if nav.hasOptions(2,1,true)> <td style="width:25%;padding-top:15px;padding-right:15px;"> ${nav.drawOptions(false,2,1,true)} </td> #if> <td style="padding-top:15px;"> <#if traversal>${nav.drawTraversal(true)}#if> ${body.startConstruction()} <#if traversal>${nav.drawTraversal(false)}#if> <#if printVersion??>${printVersion}#if> <#if fileVersion??>${fileVersion.render()}#if> </td> </tr> </table> </div> </div> <#include "footer.html"/>
<div class="header"> <div style="width:1000px;margin:auto;"> <table cellpadding="0" cellspacing="0" style="width:100%;height:40px;"> <tr style="vertical-align:bottom;"> <td> <a href="${constructor.rootWebPath}"> <img src="${constructor.rootWebPath}/_internal/repository/logo.png"/> </a> </td> <td> ${nav.drawTabulator(1)} </td> </tr> </table> </div> </div> <div style="width:100%;margin-top:43px;"> <div style="width:1000px;margin:auto;"> ${nav.drawLocation()} </div> </div>
<div class="footer"> <div style="width:1000px;margin:auto;"> <table cellpadding="5"> <tr style="vertical-align:top;"> <td>${webmap.draw(3)}</td> <td width="20%"><#include "credentials.html"/></td> </tr> </table> </div> </div>
<#include "header.html"/> ${body.startConstruction()} <#include "footer.html"/>
Table layout was the out-of-the-box configured layout from the beginning. Table layout creates an HTML table as the main container. Uses context/_internal/context.xml
files to read the configuration. Tipical web root configuration is:
<?xml version="1.0" encoding="ISO-8859-1"?> <elephant-context lang="_en"> <i18n> <name> <_en>Home</_en> </name> </i18n> <layout> <element id="20060126192226678" align="top" type="default-container" container="true"> <attrib name="type" value="header"/> <element id="20060126192226654" align="top" type="default-element"> </element> <element id="20060126192226679" align="left" type="default-navigator"> <attrib name="type" value="tabulator"/> <attrib name="level" value="1"/> </element> </element> <element id="20060126192226680" align="top" type="default-container" container="true"> <attrib name="type" value="locator"/> <element id="20060126192226681" align="left" type="default-navigator"> <attrib name="type" value="location"/> </element> </element> <element id="20060126192226682" align="left" type="default-container" container="true"> <attrib name="type" value="container"/> <attrib name="width" value="180px"/> <element id="20060126192226683" align="top" type="default-navigator"> <attrib name="type" value="options"/> <attrib name="level" value="2"/> <attrib name="children" value="2"/> <attrib name="show-current" value="true"/> </element> </element> <element id="20060126192226685" align="bottom" type="default-container" container="true"> <attrib name="type" value="footer"/> <element id="20060126192226684" align="top" type="default-element"> <attrib name="type" value="footer-inside"/> </element> </element> </layout> </elephant-context>
Elephant uses ElephantMarker as the template parser. It's based on FreeMarker and adds the necessary configuration to operate with the Elephant IConstructor.
ElephantMarker uses a template root to locate templates. The template root is configured in the site.xml
file.
Templates are used at different levels to generate the final HTML, CSS and JavaScript.
Level |
Usage |
Root |
Generate the HTML frame, including html, head and body tags. The template child is |
Layout |
Generate the page layout within body tag. This includes de web page header and its menus, the sidebar, responsive controls and contextual menus. The template child is |
Entities |
Generate the layout for single entities. Usually entities templates are called by content iterators and entities made available to the template using variables. The template child use to have the entity name (ex. contact, dossier, document...). |
The conventional way ElephantMarker uses to locate a template is by searching [templates_root]/[context]/[name]Template.html
. The context
variable is the child explained is the above table and helps to differentiate templates usage. Name is the actual template name and the marker appends Template.html
.
This convention allows the overriding system Overriding templates
.
To understand the override mechanism used by the Elephant library you need to understand how templates are found. By default, ElephantMarker
searches templates in /WEB-INF/elephant/[templates_root]/[context]/[name]Template.html
, being context
and name
variables. templates_root
is defined in /elephant/conf/site.xml
configuration file.
Provided the templates_root
is templates-semantic, a context
and a name
, Elephant will first search /WEB-INF/elephant/templates-semantic/site/[context]/[name]Template.html
and, if no file existed, in /WEB-INF/elephant/templates-semantic/[context]/[name]Template.html
.
This is a list of commonly used content templates. Does not reflect the actual number of templates available for layouts, entities and email senders.
The banner templates use a JSON source as banner data. Its form is:
The most common way to use it would be the marker-jason macro
, where {
tmpl-root
is files, template
can be bannerImage or bannerCard, and repository-file
would be the location of the JSON file.
In the example will be using the banners.json
file, located at this context's repository.
{@ marker-json:files:bannerImage:*/banners.json}
you get:
{@ marker-json:files:bannerCard:*/banners.json}
you get:
{ "name" : "slider", "minHeight" : "400px", "banners" : [ { "imageLink" : "banners/_internal/repository/elementals.jpg", "background" : "#00000066", "color" : "#fff", "header" : "Some header", "meta" : "Sub header", "description" : "Lorem Ipsum is simply dummy text of the printing and typesetting industry...", "action" : "Visit...", "link" : "#", "subaction" : "Or visit...", "sublink" : "#" }, { "imageLink" : "banners/_internal/repository/emotion-ocean.jpg", "background" : "#ffffff66", "color" : "#000", "header" : "Some other header", "meta" : "Some header support", "description" : "Lorem Ipsum is simply dummy text of the printing and typesetting industry...", "action" : "Visit...", "link" : "#" } ] }
Elephant Users is based on the BrightSide Contacts module. A user is always a contact.
Any contact can be transformed into a user, by giving a connector called Email
. Users with this connector can authenticate into the User area and manage their own profile.
If enabled, the User area can also admit new sign-ups. The sign-up process validates the user email. Registered users get the Social Group Guest
, with no permissions attached. Administrators receive an email and push notification with the new user name and email.
User's permissions are controlled by the Elephant Security System, explained in Security .
ComplexName property gives the choice of treating users with a chain of formality. The API also offers a guessing option, using the European way of treatment, excluding titles and gender.
Property |
Description |
Required |
Can be guessed |
Full |
Is the full name. For entities, this should be the unique given value. Things like the Trade Name, are managed in the entity profile or by connectors like |
|
|
Friendly |
Should be the friendly way to address the user. It's guessed to be the first name. |
|
|
Formal |
Should be the more formal way to address the user. It's guessed to be the first encountered surname. |
|
|
ComplexName will always return a value, despite the property being empty.
Property |
Returns |
Name |
The full name. |
Friendly |
The Friendly value. Fallback to the Formal value. |
Formal |
The Formal value. Fallback to the Name value. |
In Elephant nomenclature, a user is a contact with an email and able to sign in. Users can also sign up, if the website allows it (has a sign up context)
Elephant gives the user the opportunity to enrich his profile, while getting more permissions. Any user can send a request for a new relation, and acquire permissions once validated. There are some limitations, though, to make sure a single user has not contradictory roles (ex. student and docent)
When configured, the profile completion gives the user some tips about completing the profile. Tips may vary, depending on the relation type and what has already been completed.
Using user's profile, any user can add relations to existing companies or learning centers. Relations created by users are moderated, administrators must validate all proposed relations.
When a user has no relations, it is offered several options, depending on the existence of companies or learning centers. If none of them are in your contacts database, nothing will be offered.
The differences among these relations, are:
Type | Description |
---|---|
Professional | Has a current relation with a company. |
Student | Has a current non-responsible relation (staff ) with a learning center. |
Docent | Has a current responsible relation (not staff ) with a learning center. |
After a relation request has been sent, the profile will update the status.
Recipient | Description |
---|---|
User | Receives a notification when the relation is accepted. |
Admins | Depending on the relation status, the subject can be:
|
Activity catchers are mainly related to user activity or participation. Their purpose is to isolate modules from contacts, without losing the ability to react on changes.
Catchers are lists of activities. Activities can be entity participations. Each activity use to contain a user participation. For instance, a user will participate in an issue if has a role within the issue, but not if just commented or participates in issue's dossier.
Assistants are users that do not actually participate in an entity, but have entity permissions to assist. An example of assistants is the add by entity combobox. Deep assistants are those who do not assist directly in the related entity, but do indirectly in a parent oriented hierarchy.
The Elephant system also provides last activity catchers. The activity source might be known
or at first unknown
. Known sources are data collected from actual entities. The unknown source is basically the log system, in which user activities are registered.
Collected activity
The Agreements API help web administrators to deal with legal issues regarding data protection, terms and conditions.
You may need to warn the user about things like:
The Agreements API provides a lightweight method to store when a user accepts what the agreement proposes. In order to achieve this, there are some restrictions you should be aware of:
First of all, you create an agreement. The main fields are:
Field |
Usage |
Title |
Title of the agreement. Is what it shows in listings and the subject in notifications. |
Text |
Body of the agreement. Accepts del |
Required to notify |
Describes this agreement as required when sending email notifications to users. |
Required to access |
Describes this agreement as required to operate for authenticated users. |
Peremptory |
Will force sending a Pending signature notification each time encounters a failed intent, up to ten notifications. |
Action |
Defines de agreement as related to a user action. Those actions are reported by the modules (see module-actions). When unknown, let it blank. |
Social groups |
Defines de agreement for specific social groups. The input requires comma separated social group id's (as in Grups socials ). When unknown, let it blank. |
When the required signature forbids sending notifications, a Pending signature notification will be sent. The user will be able to Accept or Decline the agreement from the notification email.
When the required signature forbids operating, the user will be redirected to the agreement, expecting to Accept or Decline the agreement.
Modules chose whether to treat users as Observers or Participants.
Agreement |
Not set |
Accepted |
Declined |
Wants |
Send |
Send |
Don't send |
May want |
Don't send |
Send |
Don't send |
Module |
Recipients |
Sendables |
Since sendables are configured by administrators, recipients are manually selected. Those who explicitly declined to receive notifications, despite being selected, will not receive any email. |
Publications |
Only those who explicitly accepted to receive notifications and are category subscribers, will receive the email. |
Dossiers |
Only those who explicitly declined to receive notifications, will not receive the email. |
Newsletter |
Each Newsletter decide how to treat the subscribers. |
The generic rule to follow explains itself better in terms of participation. When a user participates in a module, the participation will prevail to the not signed status.
Publication category subscriptors are not considered participants, but observers. In this case, not signed prevails.
API provided by modules |
Key for the action |
Marketplace new entry |
|
New project idea |
|
New challenge |
|
New response to challenge |
|
Elephant Calendars are a full set of events, generated from application entities. Unlike Activity, calendars also contain future events and a relevant subset of the activity.
Calendars intention is to gather, in a temporal element, information about entities, display a summary and a link to the entity.
Calendars can be configured to show different content, and related-content. To understand what to expect from a Calendar, depending on the context where it's shown, see the tables below:
Type | Description |
---|---|
Non-related | Displays application-wide events, as configured (See Calendar entities) |
Entity-related | Displays entity-related events. For instance, if it's a category calendar, it will only show events related to that category. |
Type | Description |
---|---|
Public | Displays public events. Includes Non-related and Entity-related calendars. |
With target | Displays public events, plus those specific to the target user, usually the one currently authenticated. Includes Non-related and Entity-related calendars. |
Each Non-related Calendar can be configured to display certain entities. The entities that can be configured are:
Entity | Description |
---|---|
Publications | Exposes publications as events using publication date. |
Issues | Exposes issues as events using modification date. |
Convocations | Exposes convocations as events using call date. |
Services | Exposes services as events using start date. |
Calendar popups are user conscious, showing only what is allowed to see by the target user. If allowed, users can see full detail in the user area, or the corresponding context if configured. For admins, when appropriate, also a link to the application.
Some calendars are provided out-of-the-box, as part of the application functionality.
Calendar | Description |
---|---|
User calendar | Available at the user area, on Networking -> Calendar . This calendar is Non-related and With-target.
|
Category calendar | Part of projects, Entity-related to the selected category or all. |
Noticeboard | Part of the Noticeboard, Entity-related to services. |
Public calendar | Non-related and usually part of the landing page. |
Admins have full access to calendar events using BaaS -> Session -> Calendar
.
Elephant Colors API provides some useful methods for manipulating colors. The main goal, though, is finding the adequate font color, based on a solid background. The API can be accessed within templates using the helper object helper.color([name|hexvalue|rgb[a]()])
. This function returns a Color
object with these methods:
Method |
Description |
css() |
The color in a CSS format #RRGGBB |
font() |
A |
bw() |
A gray-scale |
This palette is provided as color choosing helper. Any other color can be used with the Elephant Colors API. The palette uses the API to choose the adequate font color using the Color
object:
// assign color using color = helper.color('name or hexvalue or rgb[a]()') <div style="background-color:${color.css()};color:${color.font().css()}"> ${color_name} (${color.css()}) </div>
Elephant provides a cookie tracking mechanism to allow
/ decline
types of cookies. The Cookie Management's goal is the ability to work in Elephant templates.
helper.cookies.anyUnset() |
Returns true if any configured cookie is unset. |
helper.cookies.unset(type) |
Returns true if the tracking cookie is unset. |
helper.cookies.allow(type) |
Returns true if the tracking cookie was accepted. |
helper.cookies.decline(type) |
Returns true if the tracking cookie was declined. |
helper.cookies.createPost(type, accept) |
Creates an asynchronous call for |
helper.cookies.createFormAction() |
Creates the URL to use on form action attribute. |
This example will show how to use the cookie tracking mechanism to allow or decline Google Analytics.
First, check if "track" type of cookies is unset and provide a user selection:
<#if helper.cookies.unset("track")> Would you allow Google Analytics? <a onclick='${helper.cookies.createPost("track", true)}'>Allow analytics</a> <a onclick='${helper.cookies.createPost("track", false)}'>Forbid analytics</a> < /#if>Now, if "track" type of cookies are allowed include Analytics:
<#if helper.cookies.allow("track")>
#your Analytics code here
< /#if>
Elephant also provides a cookie management easy to activate. By default remains inactive due no configured cookies. To use the Elephant management create the file cookie-context.properties
in /WEB-INF/elephant/conf
folder. Edit in BaaS -> Tools -> Files -> Configuration -> Properties editor and write this:
track=lTrackCookie
This line will activate de track cookie, explained in the labels key lTrackCookie. Now, just put the tracking code like this:
<#if helper.cookies.allow("track")>
// the tracking code, ex. Google Analytics
< /#if>
To control more kind of cookies, simply add more lines to the cookie-context.properties
, being the key the cookies' type. For single language sites, is possible to explain the type directly in this file. Otherwise, use a label key and add the corresponding values to the labels-site[_lang]
files (see BaaS -> Tools -> Files -> Configuration -> Resources)
Authenticated users will be able to modify their cookie preferences in the Session menu.
You can use any HTML tag with EWiki, by simply enclosing the tag in brackets []
. Also, you can convert any HTML tag to a Text container by adding -text
to tag's name.
EWiki defines a Container as the content wrapped between [tag]
and [/tag]
. Containers are similar to normal HTML containers, with no especial treatment for new lines and empty lines.
A Text container, on the other hand, is the content wrapped between [tag-text]
and [/tag-text]
. Text containers treat new lines as line feeds, and empty lines as the beginning of a new paragraph.
Type | Activation | Usage | Example |
---|---|---|---|
Container | [tag]...[/tag] | Banners, compositions, images... | [div]...[/div] |
Text container | [tag-text]...[/tag-text] | Normal text, messages, mixed content... | [div-text]...[/div-text] |
The directives related to changing the interpreter mode are no longer required. HTML can be embedded within wiki causing no extra formatting, except for text containers. Java code and XML can be included as blocks or inline using enclosing java
and xml
tags.
Any character can be escaped using the backslash. The exception are macro parameters, where compiler especial characters should be transformed to HTML entities.
To the EWiki compiler, tags are simple names that will be transformed into the HTML format. A [div]
will be a <div>
, without paying any further attention at the name div.
Parameters differ from HTML. They are enclosed within parenthesis, separated by commas, using a colon to divide the attribute from its value. In the simple form, [div(font-weight:bold)]
will be as HTML <div style="font-weight:bold">
. At this point, doesn't seem to help much, but let's consider this: [div(font-weight:bold,margin:10px,class=supersized)]
, where the HTML will be <div style="font-weight:bold;margin:10px" class="supersized")>
. First thing you may notice is that the compiler detected class
as a separated attribute. Also, it's not necessary to create a style
, nor include quotes.
As in HTML, EWiki tags are containers. You can add content within the container opening tag, and the closing tag.
EWiki introduces a major difference here, allowing any container to easily write text. By adding the suffix -text
, EWiki containers create paragraphs by using simple line feeds. By default, the root container is a text container.
EWiki | HTML | Description |
---|---|---|
[div] Hello world [/div] |
Hello world
|
Behaves as normal HTML, where line feeds are white spaces. |
[div-text] Hello world [/div-text] |
Hello world |
Creates HTML paragraphs for new lines. |
EWiki macros are resolved at compile time, when wiki is transformed to HTML. An expanded macro will not change, despite there are changes in the macro, until you save/compile the wiki content.
EWiki macros are self-contained in a single file, and the compiler finds and expands them.
An EWiki macro can have nested content, including more macros, or single line.
Macro parameters are enclosed in parentheses, must be named as name=value
and comma separated. Values with special characters, like a comma, can be enclosed in double or single quotes.
Creates a button. Text can be enclosed or in text parameter.
button parameters | Description | Values |
---|---|---|
category | Actions | |
class | Adds extra classes to ui button |
See Fomantic-UI definition for button. |
style | Adds CSS styles | See CSS documentation. |
icon | Adds an icon | See FontAwesome icons. |
link | Link action | |
new | True if the link opens a new page | |
text | Text inside the button |
Creates a card.
card parameters | Description | Values |
---|---|---|
category | Cards | |
class | Adds extra classes to ui card |
See Fomantic-UI definition for card. |
style | Adds CSS styles | See CSS documentation. |
image | Adds an image |
Creates a container for cards.
cards parameters | Description | Values |
---|---|---|
category | Cards | |
class | Adds extra classes to ui cards |
See Fomantic-UI definition for cards. |
style | Adds CSS styles | See CSS documentation. |
Creates content for cards, items and lists.
content parameters | Description | Values |
---|---|---|
category | Cards,Items,Lists | |
class | Adds extra classes to content |
|
style | Adds CSS styles | See CSS documentation. |
header | Adds a content header |
Creates extra content for cards, items. For items, should be nested into a content.
extra parameters | Description | Values |
---|---|---|
category | Cards,Items | |
class | Adds extra classes to extra content |
|
style | Adds CSS styles | See CSS documentation. |
Creates a rotated content with the given degrees.
rotated parameters | Description | Values |
---|---|---|
category | Containers | |
class | Adds class attribute | |
style | Adds CSS styles | See CSS documentation. |
degrees | Rotation | By default -2. Positive number rotates clockwise, negative number rotates counter clockwise. |
Creates a segment.
segment parameters | Description | Values |
---|---|---|
category | Containers | |
class | Adds extra classes to ui segment |
See Fomantic-UI definition for segment. |
style | Adds CSS styles | See CSS documentation. |
Creates a segment with the provided background color. Font color is automatically selected to make the content visible.
solid parameters | Description | Values |
---|---|---|
category | Containers | |
class | Adds extra classes to ui segment |
See Fomantic-UI definition for segment. |
style | Adds CSS styles | See CSS documentation. |
color | Background color | See CSS standard for accepted colors. |
image | Background image | To ensure readability, the color should be image predominant. |
Creates a grid column.
column parameters | Description | Values |
---|---|---|
category | Grids | |
class | Adds extra classes to column |
See Fomantic-UI definition for grid. |
style | Adds CSS styles | See CSS documentation. |
Creates a grid. Can nest row and column.
grid parameters | Description | Values |
---|---|---|
category | Grids | |
class | Adds extra classes to ui grid |
See Fomantic-UI definition for grid. |
style | Adds CSS styles | See CSS documentation. |
Creates a grid row. Can nest column.
row parameters | Description | Values |
---|---|---|
category | Grids | |
class | Adds extra classes to row |
See Fomantic-UI definition for grid. |
style | Adds CSS styles | See CSS documentation. |
Creates a container for centered images.
centeredImage parameters | Description | Values |
---|---|---|
category | Images | |
class | Adds classes | |
style | Adds CSS styles | See CSS documentation. |
Creates content for cards, items and lists.
content parameters | Description | Values |
---|---|---|
category | Cards,Items,Lists | |
class | Adds extra classes to content |
|
style | Adds CSS styles | See CSS documentation. |
header | Adds a content header |
Creates extra content for cards, items. For items, should be nested into a content.
extra parameters | Description | Values |
---|---|---|
category | Cards,Items | |
class | Adds extra classes to extra content |
|
style | Adds CSS styles | See CSS documentation. |
Creates a item.
item parameters | Description | Values |
---|---|---|
category | Items | |
class | Adds extra classes to ui item |
See Fomantic-UI definition for item. |
style | Adds CSS styles | See CSS documentation. |
imgclass | Adds extra classes to ui image |
See Fomantic-UI definition for image. |
image | Adds an image |
Creates a container for items.
items parameters | Description | Values |
---|---|---|
category | Items | |
class | Adds extra classes to ui items |
See Fomantic-UI definition for items. |
style | Adds CSS styles | See CSS documentation. |
Creates a label.
label parameters | Description | Values |
---|---|---|
category | Labels | |
class | Adds extra classes to ui label |
See Fomantic-UI definition for label. |
style | Adds CSS styles | See CSS documentation. |
image | Adds an image | |
text | Text inside the label | |
detail | Detail inside the label |
Creates a container for labels.
labels parameters | Description | Values |
---|---|---|
category | Labels | |
class | Adds extra classes to ui labels |
See Fomantic-UI definition for labels. |
style | Adds CSS styles | See CSS documentation. |
Creates content for cards, items and lists.
content parameters | Description | Values |
---|---|---|
category | Cards,Items,Lists | |
class | Adds extra classes to content |
|
style | Adds CSS styles | See CSS documentation. |
header | Adds a content header |
Creates a list item. Text can be enclosed or in text parameter.
li parameters | Description | Values |
---|---|---|
category | Lists | |
class | Adds extra classes to item |
See Fomantic-UI definition for list. |
style | Adds CSS styles | See CSS documentation. |
icon | Adds an icon | See FontAwesome icons. |
text | Text inside the list item |
Creates a list item with header. Text can be enclosed or in text parameter.
lih parameters | Description | Values |
---|---|---|
category | Lists | |
class | Adds extra classes to item |
See Fomantic-UI definition for list. |
style | Adds CSS styles | See CSS documentation. |
icon | Adds an icon | See FontAwesome icons. |
header | Header inside the list item | |
text | Text inside the list item |
Creates an ordered list.
ol parameters | Description | Values |
---|---|---|
category | Lists | |
class | Adds extra classes to ui list |
See Fomantic-UI definition for list. |
style | Adds CSS styles | See CSS documentation. |
Creates an unordered list.
ul parameters | Description | Values |
---|---|---|
category | Lists | |
class | Adds extra classes to ui list |
See Fomantic-UI definition for list. |
style | Adds CSS styles | See CSS documentation. |
Creates a friendly formatted message. The message content goes between open and closing macro.
message parameters | Description | Values |
---|---|---|
category | Messages | |
class | Adds extra classes to ui message |
warning, error, positive, negative... See Fomantic-UI definition for message. |
style | Adds CSS styles | See CSS documentation. |
icon | Adds an icon | See FontAwesome icons. |
header | Adds a message header |
Creates a horizontal stripe with the provided background color. Font color is automatically selected to make the content visible.
stripe parameters | Description | Values |
---|---|---|
category | Stripes | |
class | Adds extra classes to ui fluid padded container segment |
See Fomantic-UI definition for segment and container. |
style | Adds CSS styles | See CSS documentation. |
color | Background color | See CSS standard for accepted colors. |
image | Background image | To ensure readability, the color should be image predominant. Also accepts 'radial' and 'linear'. |
Creates a text friendly segment.
text parameters | Description | Values |
---|---|---|
category | Stripes | |
class | Adds extra classes to ui basic text container segment |
See Fomantic-UI definition for segment and container. |
style | Adds CSS styles | See CSS documentation. |
Creates a text friendly horizontal stripe with the provided background color. Font color is automatically selected to make the content visible.
textstripe parameters | Description | Values |
---|---|---|
category | Stripes | |
class | Adds extra classes to ui fluid padded text container segment |
See Fomantic-UI definition for segment and container. |
style | Adds CSS styles | See CSS documentation. |
color | Background color | See CSS standard for accepted colors. |
image | Background image | To ensure readability, the color should be image predominant. Also accepts 'radial' and 'linear'. |
Creates an iframe.
iframe parameters | Description | Values |
---|---|---|
category | Support | |
src | Iframe URL | |
width | Iframe width | |
height | Iframe height | |
allow | Iframe allow |
Creates a script. If src has a value, the script is correctly closed.
script parameters | Description | Values |
---|---|---|
category | Support | |
src | Script URL |
If href has a value, loads a stylesheet. If not, creates a style block.
stylesheet parameters | Description | Values |
---|---|---|
category | Support | |
href | Stylesheet URL |
Creates a table. Can nest theader, trow, tcol and tfooter.
table parameters | Description | Values |
---|---|---|
category | Tables | |
class | Adds extra classes to ui table |
See Fomantic-UI definition for table. |
style | Adds CSS styles | See CSS documentation. |
Adds a table column. If not value is set, content must be nested.
tcol parameters | Description | Values |
---|---|---|
category | Tables | |
class | Adds classes to td |
See Fomantic-UI definition for table, and CSS documentation. |
style | Adds CSS styles | See CSS documentation. |
value | Value of the column |
Adds a table footer.
tfooter parameters | Description | Values |
---|---|---|
category | Tables | |
class | Adds classes to tfoot |
See Fomantic-UI definition for table, and CSS documentation. |
style | Adds CSS styles | See CSS documentation. |
values | Values of footers, separated by | | If the footer starts with >, will be right aligned. |
Adds a table header column. If not value is set, content must be nested.
thead parameters | Description | Values |
---|---|---|
category | Tables | |
class | Adds classes to th |
See Fomantic-UI definition for table, and CSS documentation. |
style | Adds CSS styles | See CSS documentation. |
value | Value of the column |
Adds a table header.
theader parameters | Description | Values |
---|---|---|
category | Tables | |
class | Adds classes to thead |
See Fomantic-UI definition for table, and CSS documentation. |
style | Adds CSS styles | See CSS documentation. |
values | Values of headers, separated by | | If the header starts with >, will be right aligned. |
Adds a table row. If no values are set, the columns must be nested.
trow parameters | Description | Values |
---|---|---|
category | Tables | |
class | Adds classes to tr |
See Fomantic-UI definition for table, and CSS documentation. |
style | Adds CSS styles | See CSS documentation. |
values | Values of columns, separated by | | If the value starts with >, will be right aligned. |
Creates a divider.
divider parameters | Description | Values |
---|---|---|
category | Text | |
class | Adds extra classes to ui divider |
See Fomantic-UI definition of divider. |
text | Adds text for horizontal and vertical dividers |
Creates a header.
header parameters | Description | Values |
---|---|---|
category | Text | |
class | Adds extra classes to ui header |
See Fomantic-UI definition of header. |
style | Adds CSS styles | See CSS documentation. |
icon | Adds an icon | See FontAwesome icons. |
Creates an inline text.
inline parameters | Description | Values |
---|---|---|
category | Text | |
class | Adds extra classes to ui text |
See Fomantic-UI definition for text. |
style | Adds CSS styles | See CSS documentation. |
text | The text |
Creates a striped text with the provided stripe color. Font color is automatically selected to make the content visible.
striped parameters | Description | Values |
---|---|---|
category | Text | |
class | Adds class attribute | |
style | Adds CSS styles | See CSS documentation. |
color | Background color | See CSS standard for accepted colors. |
image | Background image | To ensure readability, the color should be image predominant. Also accepts 'radial' and 'linear'. |
separation | Separation between lines | By default is 1. |
Creates a subheader.
subheader parameters | Description | Values |
---|---|---|
category | Text | |
class | Adds extra classes to sub header |
See Fomantic-UI definition of header. |
style | Adds CSS styles | See CSS documentation. |
Creates current user's signature.
signature parameters | Description | Values |
---|---|---|
category | Users |
EWiki provided macros may help you to create rich content, like striped landing pages, documentation, encapsulation, ...
The macro header
creates an HTML header with an optional icon and a sub header.
@w{header(icon=cog)} This is a header @w{subheader}...with a sub header.@w{/subheader} @w{/header}
Headers can also change size.
@w{header(class=big,icon=cog)} This is a header @w{subheader}...with a sub header.@w{/subheader} @w{/header}
The macros stripe
and textstripe
create a container that will reach the left and right borders, and a nested container with the normal width. This ensures a full stripe of the desired color, occupying the container limits. For landing pages, horizontal limits are the browser width.
@w{stripe(color=RedGold)} @w{header(icon=cog)} This is a header @w{subheader}...with a sub header.@w{/subheader} @w{/header} @w{/stripe}
@w{textstripe(color=RedGold)} @w{header(icon=cog)} This is a header @w{subheader}...with a sub header.@w{/subheader} @w{/header} @w{/textstripe}
The message
macro is a way to draw attention to specific content.
@w{message(class=info,icon=info,header=Informative message)} This content can be any EWiki content. @w{/message}
@w{message(class=warning,icon=warning,header=Warning message)} This content can be any EWiki content. @w{/message}
The cards
and card
macros create an encapsulated content, with an optional image.
@w{card(image=repository(/topcard.jpg))} @w{content(header=Card header)} This content can be any EWiki content. @w{/content} @w{/card}
Wrapping cards within the cards
macro can control how cards will show in rows, the type of card, color and more. Check the cards
macro definition.
The items
and item
macros create an encapsulated content, with an optional image.
@w{items} @w{item(imgclass=tiny,image=repository(/topcard.jpg))} @w{content(header=Card header)} This content can be any EWiki content. @w{/content} @w{/item} @w{/items}
Wrapping items within the items
macro can control the type of item, color and more. Check the items
macro definition.
Files based are components using the private part of Files from BrightSide Attachments. Each uses a specific root and makes the content available to specific roles or users, depending on functionality.
Current components are [ Deliverables, Documentation ]
.
The Deliverables component aims to facilitate publishing entity deliverables. The roles allowing uploads and downloads can be controlled using Concept permissions . The show permissions grant users to download. The action permissions grant users to upload.
The administration form is quite forward and responds to user roles.
The goal of this component is to allow specific roles to require documentation to specific users.
Before requiring documentation, a definition about this documentation must be made. The definition fields are:
Field |
Description |
Required |
Name |
The name of the documentation. This name must be user-friendly and unmistakable. |
|
Type |
Indicates the type of files to be uploaded. Can be:
|
|
Description |
Supporting text describing what the documentation is about. |
|
Allowed root |
Filters whether this documentation will be shown. The |
|
Multiple contacts |
Allows adding more contacts to a single documentation petition. |
|
Upload control |
Allows overriding files only when the uploaded version is newer than the already existing. When the failing condition is met, shows a message requesting the user to use the last file version. |
|
min, max |
Controls the numbers of files that should be uploaded. The |
|
References |
Files used as a reference to documentation. In some cases, references can be the forms to fulfill. |
Documentation fulfillment is a conversation between a requester and a requested, both registered users. The status of pending actions will appear in both users areas, with an easy-to-follow link.
Empty documentation form. The request action must be initiated by users with specific roles, depending on the associated entity.
The user with the right roles starts a request and the status changes to pending to upload. Only the requested user will be able to see the form and upload documents.
The documentation is uploaded and pending validation. Only the requester or administrators can validate or deny the documentation.
Denied documentation with a reason message.
Validated documentation.
The Elephant library has the ability to create a help context
for each page, also called a context
in Elephant nomenclature.
Help contexts are normal contexts that follow some rules. First, they have a single root, called help context root
, second, they pair the path of the context
that needs a help context
and third, they have content.
The help context root
is defined in /WEB-INF/elephant/conf/help-context.properties
file, using root=[help context path]
as an absolute path starting with / as the web root.
Suppose root=/docs/platform
in the configuration file.
Help context |
Exists? |
Has content? |
Web context |
Has help? |
/docs/platform/service/baas |
Yes |
Yes |
/service/baas |
Yes |
/docs/platform/service/support |
No |
No |
/service/support |
No |
/docs/platform/service |
Yes |
No |
/service |
No |
As seen before, in case the help context exists and has content, an will appear at bottom left of the screen. By clicking this icon the web visitor will get the help content as a modal popup.
When creating the root for help contexts, is a good idea to protect it for casual visitors. Since some contexts will have no content, has to avoid the help icon to appear, the help root is not visitor friendly. The usual restricting role should be sysinfo:list
, since points to web content administrators.
Elephant internationalization project aims to create an easy to maintain translation base.
i.text |
Results in text in the appropriate language. |
i['text'] |
Results in text in the appropriate language. |
i_.get('text') |
Results in text in the appropriate language. |
i_.get('text', count) |
Results in text in the appropriate language, using the plural and empty variations depending on count. |
i_.format('text', argument[, argument][, ...]) |
Formats text in the appropriate language, using arguments. |
i[k[key]] |
Results in the text associated to the given key, in the appropriate language. |
i_.byKey('key') |
Results in the text associated to the given key, in the appropriate language. |
Elephant i18n accepts adding variations to a single key. Those variations are singular and empty when the key contains a number formatting symbol like %d
and %f
, and their own variations.
They are applied when the i_.get('text', count)
is called, count
will replace the formatting symbol and a variation will be selected depending on count
value. For > 1 the basic key, for =1 the singular key and for =0 the empty key.
Handling gender with i18n tools has always been a hard topic and is a matter of which language you take as reference when writing keys. Let's suppose you are the developer, and you are using English as the main language (Elephant i18n default). Now, you write this in your application:
i_.get("%d selected", images.size())
Some languages apply gender to adjectives, which means that selected will be different depending on what is selected. For example, in Catalan images would be seleccionades and files seleccionats. Gender might be different in other languages, and the API makes no hard-coded assumptions.
Elephant i18n approach to solve this problem using key discriminators. Key discriminators generate a different key, but do not show when rendering the translation. A discriminator is a sequence of lowercase letters, up to three, prefixed with the exclamation character. For example !f
.
Elephant translations use English as the main key generator and Catalan as the gender reference. An example to solve the previous example would be:
i_.get("%d selected!f", images.size()) i_.get("%d selected!m", files.size())
In this example, English will show the same message (n selected) and will generate two different keys, allowing translators to apply gender to their translations. Elephant convention uses !f
for female and !m
for male.
Another approach would be using the discriminator to describe the noun, for example !img
for images and !fil
for files. This solution involves a more developed set of keys and arises the question about why not using the noun in the message (%d selected images).
Notice that the Translator API showing other language translations, tends to facilitate recognizing the pattern. Anyway, a full knowledge of how many languages and languages themselves, would be necessary to fully understand, and maybe solve, the problem. Discriminators are just a none hard-coded help. And there is always the try/error approach.
Elephant I18n recognizes translators as a specific actor. A translator can be assigned to a single language, to a partial set of languages, or to the whole site set.
Elephant I18n also provides an editable translation for the whole site set of languages, when adding entries.
The new API features a compatibility wrapper to allow a slower adoption. The compatibility wrapper does not solve all cases, particularly those scarcely in use.
The main difference between both APIs, compatibility and I18n, is the key treatment. I18n use keys only internally. In code you will only see readable text.
Old API |
Compatibility API |
Elephant I18n |
Covered by compatibility |
labels.key |
labels.key |
i.text |
|
labels['key'] |
labels['key'] |
i['text'] |
|
el_label.key |
el_label.key |
i.text |
|
el_label['key'] |
el_label['key'] |
i['text'] |
|
labelAPI.getStringPars(key, ...) |
i_.c.format(key, ...) |
i_.format(text, ...) |
Requires changing the call, but accepts using key. |
el_cons.currentLocale |
i_.used().language |
i_.used().language |
Requires changing the call. |
el_cons.usedLocale |
i_.used() |
i_.used() |
Requires changing the call. |
Even though this API aims to create a more readable code, still exists some hardcoded keys that need translation. Example of those are languages codes and Java enums. If everything were to be converted to natural language, the relation with codes will be broken. The ByKey extension allows to keep one to one relation between coded keys and natural language. Also, enforces Elephant I18N by creating the natural language related to the key used by this API.
Elephant Importer API provides a way of loading data into modules implementing ImporterProvider
.
Importers can add to the existing data or fully replace it. The importer front-end shows this option as Full import
.
By default, data sources are CSV files uploaded into a provider. The API deals with the usual CSV formats, including differences among operating systems.
Currently accepted data sources are:
Name |
Description |
File extension |
CSV |
Comma Separated Values |
cvs |
TDF |
Tab-Delimited Format |
tdf |
Sources must include a first row with headers. The importer will use those headers to map columns to actual fields.
Imports data into Alliance Contacts. The accepted fields are:
Field |
Description |
Required |
contactId |
Contact ID as in the internal member system. |
|
name |
Contact name. |
|
|
Contact email, used for notifications and authentication. |
|
pass |
Contact password bytes retrieved with UTF-8 encoding, digested using SHA3-256 and converted to an hexadecimal string. |
|
deactivated |
True if the contact is deactivated. Prevents this contact from authenticating and asking for participating in projects. Default is |
|
face |
URL to the contact profile image. |
|
company |
Contact's company name. |
|
position |
Contact's position in company. |
|
companyFace |
URL to the company logo image. |
Imports data into Alliance Projects. The accepted fields are:
Field |
Description |
Required |
projectId |
Project ID as in the internal member system. |
|
creation |
Project creation date using |
|
phaseIndex |
Phase index as in the alliance set of phases. |
|
projectCode |
Project code. |
|
name |
Project name. |
|
summary |
Project summary, usually a brief description of project's goal. |
|
categoryId |
Category ID as in the alliance collection of categories. |
|
source |
URL to the original project. |
Imports data into Alliance Participations. The accepted fields are:
Field |
Description |
Required |
projectId |
Project ID as in the internal member system. |
|
contactId |
Contact ID as in the internal member system. |
|
creation |
Project creation date using |
|
admin |
True if contact is this project administrator. |
|
beneficiary |
True if contact is beneficiary of this project. |
|
consortium |
True if contact is part of a consortium within this project. |
|
coordinator |
True if contact is coordinator of this project. |
|
driver |
True if contact is driver of this project. |
|
funding |
True if contact does funding on this project. |
|
offerer |
True if contact is offerer of this project. |
|
research |
True if contact is part of this project research. |
|
support |
True if contact is part of this project support |
|
company |
Contact's company name. This company may differ from current contact company and should be related to creation date. |
|
companyFace |
URL to the company logo image. |
Imports data into wide-application Tags API. The accepted fields are:
Field |
Description |
Required |
tag |
Tag name. |
|
entityId |
Project ID as in the internal member system. |
|
Elephant provides the Indicator API as a way to generate statistics from entities. The main goal of the API is to facilitate the generation among modules, on separated DBs.
Indicators are usually stored using a separated convenience API. Examples of using indicators are the Ranking and Matching APIs. Both take indicators values and store them where needed, independently of the source of the stored data.
Since indicators are stored using separated APIs, the indicator may vary in its composition. For example, the Ranking API relates to sets of single entities, while the Matching API does with two entities. Provided that storage depends on others and Indicator API needs read access, the API imposes some requirements.
Since indicators solely generate and provide data, seems that being able to read this data on a separate process is far off its possibilities.
The reading mechanism comes in help and is able to provide indicator values for statistic purposes. To achieve this goal, indicators find storage classes and provide an specific syntax for reading its values at single, multiple or formulated basis.
The form taken by readIndicator
parameter is:
JPAEntityClass:IndicatorClass:entityPath[:relatedPath]:indicator
JPAEntityClass |
These classes are usually named after their functionality. You can see an example in Ranking
, where the class |
IndicatorClass |
Class that owns the JPA Dao and has the ability to read values. |
entityPath |
Refers to the entity to be read. Notice that |
relatedPath |
Same as for entityPath but for the related entity. This field has meaning only when reading a matching indicator. |
indicator |
Refers to which indicator will be returned. For indicator the |
* |
Represents one or more characters. |
? |
Represents a single character. |
To understand how reading syntax helps locating values, this image shows the process of getting values.
Indicators are created from within modules and using JPA contexts. The results are stored at module convenience in order to be accessible for database queries. The Ranking API and the Matching API assist saving results in specialized tables. This would be the standard, and preferred, method.
Before diving into possible process optimizations, let's see some numbers.
A ranking set of indicators will create (indicators + final_ranking) * entities
tuples. For instance, if you have 500 entities and need 10 indicators to calculate the ranking value, this will create (10 + 1) * 500
, 5,500 tuples. Not so bad.
A matching set of indicators will create (indicators + final_matching) * entities * related_entities
tuples. Things have slightly changed since there is another factor: the related or entities to match with. The matched entities are usually contacts. Let's do the same example as above, saying that we have 1,000 contacts to match with. Applying the factor to the previous result give us the amount of 5,500,000 tuples. Quite impressive, isn't?
Spare zeros is a first approach to optimize the results. The API does not save zero or near to zero values. The impact of this optimization highly depends on the related selection of the second approach, but is at least significant for non relevant indicators.
Fine selection approach affects both entities and related entities. It's difficult to implement since implies some kind of guessing which pairs are prone to match. The impact of this optimization is high because supposedly eliminates zeros and, more important, reduces the number of database reads.
Bulk data might be the more effective approach. Makes an initial selection and does de insertions as a pre-process. When doing so, the indicator does not have to load entities separately, knows the result from the read data.
Formulas are mainly composed by variables, constants, operators and functions. See Variables for a full list of available ranking and matching variables.
Elephant Indicator API also adds some functions to facilitate the formula edition.
Since variables return absolute values, being or not related to a second entity, the result treatment gets complicated. To palliate this, the weighted functions provide a more easy input.
weighted(value, meaning, weight)
Returns a weighted value based on:
reverseWeighted(value, meaning, weight)
Returns a weighted complementary value based on the same parameters that weighted
.
You can also use math functions to create your own calculations. Math functions are prefixed with Math
, for example Math.floor(2.3)
will return the parameter floor.
Variables are used inside formulas to create the final ranking or matching. Descriptions refer to current entity as the entity that's being processed and to self as the related entity for matching, usually a contact, therefore creating the self point of view.
Variables are used in Formulas .
Variable | Descripció |
---|---|
attachments
BOTH_VARIABLE |
Ranking
Counts the number of attachments in current entity.
Counts the number of self uploaded attachments in current entity.
|
Variable | Descripció |
---|---|
following
BOTH_VARIABLE |
|
followed
BOTH_VARIABLE |
|
seen
BOTH_VARIABLE |
Counts the number of times has been seen.
Tells whether a user has seen current entity, 1=seen.
|
like
BOTH_VARIABLE |
|
apply
BOTH_VARIABLE |
|
Variable | Descripció |
---|---|
available
RANKING_VARIABLE |
|
profile
RANKING_VARIABLE |
|
distance
MATCHING_VARIABLE |
|
Variable | Descripció |
---|---|
participation
BOTH_VARIABLE |
Counts the number of participations in current entity.
Counts the number of self participations in current entity.
|
categoryParticipation
BOTH_VARIABLE |
Counts the number of participations in current category's entity.
Counts the number of self participations in current category's entity.
|
daysCreation
RANKING_VARIABLE |
Returns the days passed since current entity's creation.
|
daysActivity
RANKING_VARIABLE |
Returns the days passed since current entity's last activity.
|
words
RANKING_VARIABLE |
Counts the number of words used to describe current entity.
|
issues
BOTH_VARIABLE |
Counts the number of issues in current entity.
Counts the number of self participating issues in current entity.
|
issueActivity
BOTH_VARIABLE |
Counts the number of reported issue activity in current entity.
Counts the number of self reported issue activity in current entity.
|
issueResponsible
RANKING_VARIABLE |
|
issueReporter
RANKING_VARIABLE |
|
issueQA
RANKING_VARIABLE |
|
issueAssistant
RANKING_VARIABLE |
|
siblings
MATCHING_VARIABLE |
Counts the number of self siblings' participations in current entity.
|
siblingsCategory
MATCHING_VARIABLE |
Counts the number of self siblings' participations in current category's entity.
|
Variable | Descripció |
---|---|
topics
BOTH_VARIABLE |
Counts the number of topics in current entity.
Counts the number of self created topics in current entity.
|
posts
BOTH_VARIABLE |
Counts the number of posts in current entity.
Counts the number of self created posts in current entity.
|
Variable | Descripció |
---|---|
stars
BOTH_VARIABLE |
Averages the number of stars for current entity.
Averages the number of self given stars for current entity.
|
comments
BOTH_VARIABLE |
Counts the number of comments in current entity.
Counts the number of self comments in current entity.
|
Variable | Descripció |
---|---|
participation
MATCHING_VARIABLE |
Counts the number of self participations in current entity.
|
daysCreation
RANKING_VARIABLE |
Returns the days passed since current entity's creation.
|
daysStart
RANKING_VARIABLE |
|
daysEnd
RANKING_VARIABLE |
|
words
RANKING_VARIABLE |
Counts the number of words used to describe current entity.
|
Variable | Descripció |
---|---|
challenges
RANKING_VARIABLE |
Counts the number of challenges in current entity.
|
responses
RANKING_VARIABLE |
Counts the number of responses to challenges in current entity.
|
responsesLike
RANKING_VARIABLE |
|
daysCreation
RANKING_VARIABLE |
Returns the days passed since current entity's creation.
|
distance
MATCHING_VARIABLE |
|
Elephant renders macros each time a page is requested. Macros start with {
special characters and expand into text or HTML code. Macros can even include content from a file, HTML page or JSP page. In order to understand what macros are for see what current macros do:
Macros can be nested, but take in mind that macros are written inline, in order to allow content inclusions. Thus, only macros that resolve to a string could be nested. Ex.
To escape the :
character prepend a slash, like /:
.
The next generation of macros provide a great number of features, aiming to easy-of-use customization. The main goals are:
name=[values]
or [values]
.void
.Next generation macros are expressed as @{macro_name}
.
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
mode | Mode to use. | init |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
content-file | System file to show. |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
name | Attribute name. | ||
default | Default value. |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
context | Elephant context for links. | ||
stopper | Whether rendering should stop. |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
mode | Mode to use. | date, all, time | date |
format | Format used to show the value. | short, medium, long, full | short |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
url | Uniform Resource Locator. |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
tmpl-root | Templates root. | ||
template | Template used to show the items. | ||
value-map |
Values using the form variable=value separated by ;
|
props
.
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
tmpl-root | Templates root. | ||
template | Template used to show the items. | ||
repository-file | Name of the repository file. |
doc
.
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
tmpl-root | Templates root. | ||
template | Template used to show the items. | ||
repository-file | Name of the repository file. |
json
.
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
tmpl-root | Templates root. | ||
template | Template used to show the items. | ||
repository-file | Name of the repository file. |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
folder | Folder location. | ||
pattern | The pattern items must match. | ||
mode | Mode to use. | normal, sort, shuffle |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
url | Uniform Resource Locator. | ||
width | CSS style width. | ||
height | CSS style height. |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
resource-key | Key used to locate de resource. | ||
string-mode | Possible values are: 0 No transform, 1 Capitalized, 2 To upper case, 3 To lower case. | 0 |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
resource | |||
string-mode | Possible values are: 0 No transform, 1 Capitalized, 2 To upper case, 3 To lower case. | 0 |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
random-limit | Random values ceil. |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
level | Number of the item level. |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
mode | Mode to use. | name, id, email | name |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
role | Entity role part. | ||
attribute | Permission part. | ||
true-expression | When comparison is true. | ||
false-expression | When comparison is false. |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
cookie | Cookie name. | ||
value | Value to search for. | ||
true-expression | When comparison is true. | ||
false-expression | When comparison is false. |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
class-name | Java class name. | ||
true-expression | When comparison is true. | ||
false-expression | When comparison is false. |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
value | Value to search for. | ||
value | Value to search for. | ||
true-expression | When comparison is true. | ||
false-expression | When comparison is false. |
object
can also be an entityPath.
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
ref-object |
Attribute name holding the object or an entityPath .
|
||
attribute | Renders attribute's value as string. |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
attribute | Renders attribute's value as string. | ||
format | Format used to show the value. |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
entityPath | Path to a entity. | ||
fmt-name-desc | Format, as in String.format(), with entity name and description as parameters. |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
plugin | Plugin name. | ||
entityPath | Path to a entity. | ||
template | Template used to show the items. |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
name | Attribute name. | ||
value | Value to be set when defined. |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
storeClass | |||
indicatorClass | |||
entityPath | Path to a entity. | ||
indicator | Indicator name. | ||
relatedPath |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
identifier | |||
values |
The easiest way to read a file is store it in context's repository and access it with */file
. The *
will expand into rendering context repository. For example:
{
Reads doc.xml
in current repository and passes its data to [Template_root]/xml/docTemplate.html
to be formatted.
Properties are stored in props
list in the same order they are stored on disc. You can iterate props with #list
.
<#list props?keys as key> <#assign value=props[key]/> // do something with key and value ... < /#list>
XML documents are stored in doc
model. You can iterate the elements using dot syntax and iterate collections as you would usually do for any other data. The XML model is the FreeMarker NodeModel.
JSON files are stored in json
model. To access a root, use json.read("$.root")
. If the root is a list, use json.list("$.root")
. Once retrieved the root, you can iterate the elements using dot syntax and iterate collections as you would usually do for any other data. The JSON model is a subset of the JsonPath DocumentContext, optimized for templates usage.
books
exampleThe data:
{ "book": [ { "title": "...", "author": "...", "excerpt": "...", "availability": "...", "link": "...", "filelink": "...", "imagelink": "...", "pages": 0 }, { ... }, ... ] }
The template (Semantic-UI):
<div class="ui divided items"> <#list json.list("$.book") as book> <div class="item"> <a class="ui tiny image" href="${book.link}"> <img src="${book.imagelink}"/> </a> <div class="content"> <a class="header" href="${book.link}">${book.title}</a> <div class="meta"> ${book.author} </div> <div class="description"> ${book.excerpt} </div> <div class="extra"> ${book.availability} <#if book.filelink?has_content> <a target="_new" href="${book.filelink}">${book.pages}</a> < /#if> </div> </div> </div> < /#list> </div>
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
location | Navigator mode. |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
traversal | Navigator mode. | ||
show-title | When true, renders context name as well. | false |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
options | Navigator mode. | ||
decorators | When true, aditional DIVs are added at top and bottom. | ||
level | Number of the item level. | ||
preloaded | Number of preloaded children. | ||
show-current | When true, children passing preloaded value will show along with ancestors and siblings, as opposed to not showing any child with level over level + preloaded. | true |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
tabulator | Navigator mode. | ||
level | Number of the item level. |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
level | Tells until which level contexts are shown. | 1 |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
behavioural_keywords | Keywords controlling how information displays. | popup, external, hidden, verbose | |
navigational_keywords | Keywords to navigate Elephant contexts. | parent, locate, level, root, match | |
selection_keywords | Keywords actually returning contexts. | all, siblings, search, children, self, leaf, ancestors |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
behavioural_keywords | Keywords controlling how information displays. | popup, external, hidden, verbose | |
navigational_keywords | Keywords to navigate Elephant contexts. | parent, locate, level, root, match | |
selection_keywords | Keywords actually returning contexts. | all, siblings, search, children, self, leaf, ancestors |
behavioural keywords
areBehavioural keywords
stand for keywords controlling how information displays. The way behaviours will extend in future versions might be controlled in this section.
Behavioural keyword |
Description |
verbose |
Writes the whole path to context, starting from current context. |
popup |
Popup effect on resulting links is to open a popup instead of opening a new context. |
hidden |
Hidden contexts will show, even if protected. |
external |
Links will open on a new tab or window. |
navigational keywords
and selection keywords
mean
Navigational keywords
end up as a list, colon separated, of keywords pointing to existing contexts. As starting point, path_to_contexts
initializes to current context, that is, the web page where macro displays.
Here comes a brief description of what each keyword does and after some clear examples:
Navigation keywords move current selection from context to context.
Navigation keyword |
Description |
parent |
Moves to current selection's parent |
root |
Moves to root context |
level |
Moves to ancestor[level] |
locate |
Moves next token path, expands |
match |
Moves to matching context from current selection using regular expressions |
Selection keywords
actually return contexts, one or several. A zero results it's considered an error an macro will displays with m_error
class, which defaults to red color and a warning image. Otherwise, macro expands into m_list
class.
Render keyword |
Description |
self |
Returns current selection |
children |
Returns current selection's children |
all |
Returns all descendant contexts |
leaf |
Returns all descendant contexts having no children |
ancestors |
Returns current selection's ancestors |
siblings |
Returns current selection's siblings, including itself |
search |
Returns matching contexts from current selection |
Macro |
Description |
{ Navigational { Navigational |
|
{ [ Core, Navigational, Modules, Documentation, Macro summary ] |
|
Current list of modules exposing macros.
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
entityPath | Path to a entity. | ||
template | Template used to show the items. | editableTree | tree |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
entityPath | Path to a entity. | ||
template | Template used to show the items. | tree-ro |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
entityPath | Path to a entity. | ||
template | Template used to show the items. | tree-rot |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
template | Template used to show the items. | tree |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
template | Template used to show the items. | tree-ro |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
template | Template used to show the items. | tree-rot |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
type | Only items with type. | url |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
context | Elephant context for links. | ||
group-category | Category identifier of the groups. |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
count | Number of items to show. | 10 | |
syndicationId | Sindication code. See Social Groups in Contacts. | ||
summaryTemplate | Template used to show the items in summary mode. | summary | |
context | Elephant context for links. | ||
fullTemplate | Template used to show one items in full mode. | full |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
count | Number of items to show. | 10 | |
syndicationId | Sindication code. See Social Groups in Contacts. | ||
summaryTemplate | Template used to show the items in summary mode. | summary | |
context | Elephant context for links. | ||
fullTemplate | Template used to show one items in full mode. | full |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
count | Number of items to show. | 10 | |
groupings | Items groupings. | ||
summaryTemplate | Template used to show the items in summary mode. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
count | Number of items to show. | 10 | |
groupings | Items groupings. | ||
summaryTemplate | Template used to show the items in summary mode. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
syndicationId | Sindication code. See Social Groups in Contacts. |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
count | Number of items to show. | 10 | |
connector | Connector name. | ||
value | Value to search for. | ||
summaryTemplate | Template used to show the items in summary mode. | summary | |
context | Elephant context for links. | ||
fullTemplate | Template used to show one items in full mode. | full |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
count | Number of items to show. | 10 | |
connector | Connector name. | ||
value | Value to search for. | ||
summaryTemplate | Template used to show the items in summary mode. | summary | |
context | Elephant context for links. | ||
fullTemplate | Template used to show one items in full mode. | full |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
valid | |||
not-valid |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
entityPath | Path to a entity. | ||
id | Identifier. | Default |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
template | Template used to show the items. | check |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
mode | Mode to use. | all, closed, open | |
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
mode | Mode to use. | all, closed, open | |
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
mode | Mode to use. | all, closed, open | |
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
mode | Mode to use. | all, closed, open | |
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
mode | Mode to use. | all, closed, open | |
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
mode | Mode to use. | all, closed, open | |
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
context | Elephant context for links. | ||
count | Number of items to show. | 12 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
type | Only items with type. | all, typed, companies, professionals, centers, students, educators, singletons | all |
context | Elephant context for links. | ||
count | Number of items to show. | 12 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
type | Only items with type. | all, typed, companies, professionals, centers, students, educators, singletons | all |
context | Elephant context for links. | ||
count | Number of items to show. | 12 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
type | Only items with type. | all, typed, companies, professionals, centers, students, educators, singletons | all |
context | Elephant context for links. | ||
count | Number of items to show. | 12 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
type | Only items with type. | all, typed, companies, professionals, centers, students, educators, singletons | all |
context | Elephant context for links. | ||
count | Number of items to show. | 12 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
type | Only items with type. | all, typed, companies, professionals, centers, students, educators, singletons | all |
context | Elephant context for links. | ||
count | Number of items to show. | 12 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
type | Only items with type. | all, typed, companies, professionals, centers, students, educators, singletons | all |
context | Elephant context for links. | ||
count | Number of items to show. | 12 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
type | Only items with type. | all, typed, companies, professionals, centers, students, educators, singletons | all |
context | Elephant context for links. | ||
count | Number of items to show. | 12 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
type | Only items with type. | all, typed, companies, professionals, centers, students, educators, singletons | all |
syndicationId | Sindication code. See Social Groups in Contacts. | ||
context | Elephant context for links. | ||
count | Number of items to show. | 12 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
type | Only items with type. | all, typed, companies, professionals, centers, students, educators, singletons | all |
syndicationId | Sindication code. See Social Groups in Contacts. | ||
context | Elephant context for links. | ||
count | Number of items to show. | 12 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
type | Only items with type. | all, typed, companies, professionals, centers, students, educators, singletons | all |
syndicationId | Sindication code. See Social Groups in Contacts. | ||
context | Elephant context for links. | ||
count | Number of items to show. | 12 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
type | Only items with type. | all, typed, companies, professionals, centers, students, educators, singletons | all |
syndicationId | Sindication code. See Social Groups in Contacts. | ||
context | Elephant context for links. | ||
count | Number of items to show. | 12 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
type | Only items with type. | all, typed, companies, professionals, centers, students, educators, singletons | all |
syndicationId | Sindication code. See Social Groups in Contacts. | ||
context | Elephant context for links. | ||
count | Number of items to show. | 12 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
type | Only items with type. | all, typed, companies, professionals, centers, students, educators, singletons | all |
syndicationId | Sindication code. See Social Groups in Contacts. | ||
context | Elephant context for links. | ||
count | Number of items to show. | 12 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
type | Only items with type. | all, typed, companies, professionals, centers, students, educators, singletons | all |
syndicationId | Sindication code. See Social Groups in Contacts. | ||
context | Elephant context for links. | ||
count | Number of items to show. | 12 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
role | Entity role part. | SERVICE_SUPPLY, SERVICE_DEMAND | |
type | Only items with type. | ||
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
role | Entity role part. | SERVICE_SUPPLY, SERVICE_DEMAND | |
type | Only items with type. | ||
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
role | Entity role part. | SERVICE_SUPPLY, SERVICE_DEMAND | |
type | Only items with type. | ||
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
role | Entity role part. | SERVICE_SUPPLY, SERVICE_DEMAND | |
type | Only items with type. | ||
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
role | Entity role part. | SERVICE_SUPPLY, SERVICE_DEMAND | |
type | Only items with type. | ||
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
role | Entity role part. | SERVICE_SUPPLY, SERVICE_DEMAND | |
type | Only items with type. | ||
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
role | Entity role part. | SERVICE_SUPPLY, SERVICE_DEMAND | |
type | Only items with type. | ||
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
role | Entity role part. | SERVICE_SUPPLY, SERVICE_DEMAND | |
type | Only items with type. | ||
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
template | Template used to show the items. | signup |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
contactIds | |||
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
template | Template used to show the items. | profile |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
context | Elephant context for links. |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
status | Only items with status. | all, closed, onwork | |
context | Elephant context for links. | ||
categoryId | Category identifier. | 0 | |
dossierId | Dossier identifier. | 0 | |
count | Number of items to show. | 10 | |
template | Template used to show the items. | kbSummary, questions, motions, mySummary, proposals | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
status | Only items with status. | all, closed, onwork | |
context | Elephant context for links. | ||
categoryId | Category identifier. | 0 | |
dossierId | Dossier identifier. | 0 | |
count | Number of items to show. | 10 | |
template | Template used to show the items. | kbSummary, questions, motions, mySummary, proposals | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
status | Only items with status. | all, closed, onwork | |
context | Elephant context for links. | ||
categoryId | Category identifier. | 0 | |
dossierId | Dossier identifier. | 0 | |
count | Number of items to show. | 10 | |
template | Template used to show the items. | kbSummary, questions, motions, mySummary, proposals | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
status | Only items with status. | all, closed, onwork | |
context | Elephant context for links. | ||
categoryId | Category identifier. | 0 | |
dossierId | Dossier identifier. | 0 | |
count | Number of items to show. | 10 | |
template | Template used to show the items. | kbSummary, questions, motions, mySummary, proposals | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
status | Only items with status. | all, closed, onwork | |
context | Elephant context for links. | ||
categoryId | Category identifier. | 0 | |
dossierId | Dossier identifier. | 0 | |
count | Number of items to show. | 10 | |
template | Template used to show the items. | kbSummary, questions, motions, mySummary, proposals | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
status | Only items with status. | all, closed, onwork | |
context | Elephant context for links. | ||
categoryId | Category identifier. | 0 | |
dossierId | Dossier identifier. | 0 | |
count | Number of items to show. | 10 | |
template | Template used to show the items. | kbSummary, questions, motions, mySummary, proposals | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
status | Only items with status. | all, closed, frozen, not-frozen, onwork | |
context | Elephant context for links. | ||
categoryIds | Category identifiers. | ||
dossierId | Dossier identifier. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | projects, dossiers | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
status | Only items with status. | all, closed, frozen, not-frozen, onwork | |
context | Elephant context for links. | ||
categoryIds | Category identifiers. | ||
dossierId | Dossier identifier. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | projects, dossiers | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
status | Only items with status. | all, closed, frozen, not-frozen, onwork | |
context | Elephant context for links. | ||
categoryIds | Category identifiers. | ||
dossierId | Dossier identifier. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | projects, dossiers | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
status | Only items with status. | all, closed, frozen, not-frozen, onwork | |
context | Elephant context for links. | ||
categoryIds | Category identifiers. | ||
dossierId | Dossier identifier. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | projects, dossiers | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
status | Only items with status. | all, closed, frozen, not-frozen, onwork | |
context | Elephant context for links. | ||
categoryIds | Category identifiers. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | projects, dossiers | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
status | Only items with status. | all, closed, frozen, not-frozen, onwork | |
context | Elephant context for links. | ||
categoryIds | Category identifiers. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | projects, dossiers | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
status | Only items with status. | all, closed, frozen, not-frozen, onwork | |
context | Elephant context for links. | ||
categoryIds | Category identifiers. | ||
dossierId | Dossier identifier. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | projects, dossiers | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
status | Only items with status. | all, closed, frozen, not-frozen, onwork | |
context | Elephant context for links. | ||
categoryIds | Category identifiers. | ||
dossierId | Dossier identifier. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | projects, dossiers | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
context | Elephant context for links. | ||
phase | Only items in phase type. | ||
worths | Identifiers of the worths to show. | ||
categoryIds | Category identifiers. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | projects, dossiers | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
status | Only items with status. | all, closed, frozen, not-frozen, onwork | |
context | Elephant context for links. | ||
categoryIds | Category identifiers. | ||
template | Template used to show the items. | full |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
path |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
id | Identifier. | ||
template | Template used to show the items. | editDossier |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
redirect | Context where to redirect after the operation, usually saving. | ||
dossierId | Dossier identifier. | ||
template | Template used to show the items. | create |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
id | Identifier. | ||
redirect | Context where to redirect after the operation, usually saving. | ||
type | Only items with type. | TYPE_QUESTION | |
template | Template used to show the items. | editQuestion |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
id | Identifier. | ||
template | Template used to show the items. | addinfo | |
redirect | Context where to redirect after the operation, usually saving. |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
count | Number of items to show. | 10 | |
public | Show only public content. | true |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
count | Number of items to show. | 10 | |
public | Show only public content. | true |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
entityPath | Path to a entity. |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
context | Elephant context for links. | /user/contracts | |
count | Number of items to show. | 10 | |
intervention | Only contracts where current user has intervention. | true |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
context | Elephant context for links. | /user/contracts | |
count | Number of items to show. | 10 | |
intervention | Only contracts where current user has intervention. | true |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
context | Elephant context for links. | /user/contracts | |
count | Number of items to show. | 10 | |
intervention | Only contracts where current user has intervention. | true | |
type | Only items with type. | 0 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
context | Elephant context for links. | /user/contracts | |
count | Number of items to show. | 10 | |
intervention | Only contracts where current user has intervention. | true | |
type | Only items with type. | 0 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
summaryTemplate | Template used to show the items in summary mode. | summary | |
fullTemplate | Template used to show one items in full mode. | full |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
summaryTemplate | Template used to show the items in summary mode. | summary | |
fullTemplate | Template used to show one items in full mode. | full |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
summaryTemplate | Template used to show the items in summary mode. | summary | |
fullTemplate | Template used to show one items in full mode. | full |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
summaryTemplate | Template used to show the items in summary mode. | summary | |
fullTemplate | Template used to show one items in full mode. | full |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
context | Elephant context for links. | ||
ids | Identifiers. |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
context | Elephant context for links. | ||
ids | Identifiers. |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
format | Format used to show the value. | ||
ids | Identifiers. |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
shopping | Shopping mode. | ||
template | Template used to show the items. | cart |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
context | Elephant context for links. | ||
groupId | Group identifier. | 0 | |
categoryId | Category identifier. | 0 | |
count | Number of items to show. | 10 | |
template | Template used to show the items. | entryTitleImage, entry, eventTitle, eventTitleImage, grid, event, entryTitle | summary |
lang | Elephant language. |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
context | Elephant context for links. | ||
groupId | Group identifier. | 0 | |
categoryId | Category identifier. | 0 | |
count | Number of items to show. | 10 | |
template | Template used to show the items. | entryTitleImage, entry, eventTitle, eventTitleImage, grid, event, entryTitle | summary |
lang | Elephant language. |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
id | Identifier. | ||
template | Template used to show the items. | full |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
summaryTemplate | Template used to show the items in summary mode. | summary | |
fullTemplate | Template used to show one items in full mode. | full |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
summaryTemplate | Template used to show the items in summary mode. | summary | |
fullTemplate | Template used to show one items in full mode. | full |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
summaryTemplate | Template used to show the items in summary mode. | summary | |
fullTemplate | Template used to show one items in full mode. | full |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
summaryTemplate | Template used to show the items in summary mode. | summary | |
fullTemplate | Template used to show one items in full mode. | full |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
role | Entity role part. | SERVICE_SUPPLY, SERVICE_DEMAND | |
type | Only items with type. | ||
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
role | Entity role part. | SERVICE_SUPPLY, SERVICE_DEMAND | |
type | Only items with type. | ||
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
role | Entity role part. | SERVICE_SUPPLY, SERVICE_DEMAND | |
type | Only items with type. | ||
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
role | Entity role part. | SERVICE_SUPPLY, SERVICE_DEMAND | |
type | Only items with type. | ||
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
role | Entity role part. | SERVICE_SUPPLY, SERVICE_DEMAND | |
type | Only items with type. | ||
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
role | Entity role part. | SERVICE_SUPPLY, SERVICE_DEMAND | |
type | Only items with type. | ||
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
role | Entity role part. | SERVICE_SUPPLY, SERVICE_DEMAND | |
type | Only items with type. | ||
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
role | Entity role part. | SERVICE_SUPPLY, SERVICE_DEMAND | |
type | Only items with type. | ||
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | summary |
Documentation macros are internal specific macros used to document elephant macros themselves and other BrightSide related macros.
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
doc-properties | Properties file for documentation. | */documentation | |
tmpl-root | Templates root. | documentation | |
template | Template used to show the items. | providerMacros |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
doc-properties | Properties file for documentation. | */documentation | |
tmpl-root | Templates root. | documentation | |
template | Template used to show the items. | socialGroups |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
parser | Parser name. | all | |
headers | true | ||
doc-properties | Properties file for documentation. | */documentation | |
tmpl-root | Templates root. | documentation | |
template | Template used to show the items. | elephantMacros |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
tmpl-root | Templates root. | documentation | |
template | Template used to show the items. | providerEmojis |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
tmpl-root | Templates root. | documentation | |
template | Template used to show the items. | providerIcons |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
indicator | Indicator name. | all | |
headers | true | ||
doc-properties | Properties file for documentation. | */documentation | |
tmpl-root | Templates root. | documentation | |
template | Template used to show the items. | elephantIndicators |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
entityPath | Path to a entity. | ||
template | Template used to show the items. | editableTree | tree |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
entityPath | Path to a entity. | ||
template | Template used to show the items. | tree-ro |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
entityPath | Path to a entity. | ||
template | Template used to show the items. | tree-rot |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
template | Template used to show the items. | tree |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
template | Template used to show the items. | tree-ro |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
template | Template used to show the items. | tree-rot |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
type | Only items with type. | url |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
context | Elephant context for links. | ||
group-category | Category identifier of the groups. |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
count | Number of items to show. | 10 | |
syndicationId | Sindication code. See Social Groups in Contacts. | ||
summaryTemplate | Template used to show the items in summary mode. | summary | |
context | Elephant context for links. | ||
fullTemplate | Template used to show one items in full mode. | full |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
count | Number of items to show. | 10 | |
syndicationId | Sindication code. See Social Groups in Contacts. | ||
summaryTemplate | Template used to show the items in summary mode. | summary | |
context | Elephant context for links. | ||
fullTemplate | Template used to show one items in full mode. | full |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
count | Number of items to show. | 10 | |
groupings | Items groupings. | ||
summaryTemplate | Template used to show the items in summary mode. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
count | Number of items to show. | 10 | |
groupings | Items groupings. | ||
summaryTemplate | Template used to show the items in summary mode. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
syndicationId | Sindication code. See Social Groups in Contacts. |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
count | Number of items to show. | 10 | |
connector | Connector name. | ||
value | Value to search for. | ||
summaryTemplate | Template used to show the items in summary mode. | summary | |
context | Elephant context for links. | ||
fullTemplate | Template used to show one items in full mode. | full |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
count | Number of items to show. | 10 | |
connector | Connector name. | ||
value | Value to search for. | ||
summaryTemplate | Template used to show the items in summary mode. | summary | |
context | Elephant context for links. | ||
fullTemplate | Template used to show one items in full mode. | full |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
valid | |||
not-valid |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
entityPath | Path to a entity. | ||
id | Identifier. | Default |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
template | Template used to show the items. | check |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
mode | Mode to use. | all, closed, open | |
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
mode | Mode to use. | all, closed, open | |
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
mode | Mode to use. | all, closed, open | |
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
mode | Mode to use. | all, closed, open | |
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
mode | Mode to use. | all, closed, open | |
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
mode | Mode to use. | all, closed, open | |
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
context | Elephant context for links. | ||
count | Number of items to show. | 12 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
type | Only items with type. | all, typed, companies, professionals, centers, students, educators, singletons | all |
context | Elephant context for links. | ||
count | Number of items to show. | 12 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
type | Only items with type. | all, typed, companies, professionals, centers, students, educators, singletons | all |
context | Elephant context for links. | ||
count | Number of items to show. | 12 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
type | Only items with type. | all, typed, companies, professionals, centers, students, educators, singletons | all |
context | Elephant context for links. | ||
count | Number of items to show. | 12 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
type | Only items with type. | all, typed, companies, professionals, centers, students, educators, singletons | all |
context | Elephant context for links. | ||
count | Number of items to show. | 12 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
type | Only items with type. | all, typed, companies, professionals, centers, students, educators, singletons | all |
context | Elephant context for links. | ||
count | Number of items to show. | 12 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
type | Only items with type. | all, typed, companies, professionals, centers, students, educators, singletons | all |
context | Elephant context for links. | ||
count | Number of items to show. | 12 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
type | Only items with type. | all, typed, companies, professionals, centers, students, educators, singletons | all |
context | Elephant context for links. | ||
count | Number of items to show. | 12 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
type | Only items with type. | all, typed, companies, professionals, centers, students, educators, singletons | all |
syndicationId | Sindication code. See Social Groups in Contacts. | ||
context | Elephant context for links. | ||
count | Number of items to show. | 12 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
type | Only items with type. | all, typed, companies, professionals, centers, students, educators, singletons | all |
syndicationId | Sindication code. See Social Groups in Contacts. | ||
context | Elephant context for links. | ||
count | Number of items to show. | 12 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
type | Only items with type. | all, typed, companies, professionals, centers, students, educators, singletons | all |
syndicationId | Sindication code. See Social Groups in Contacts. | ||
context | Elephant context for links. | ||
count | Number of items to show. | 12 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
type | Only items with type. | all, typed, companies, professionals, centers, students, educators, singletons | all |
syndicationId | Sindication code. See Social Groups in Contacts. | ||
context | Elephant context for links. | ||
count | Number of items to show. | 12 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
type | Only items with type. | all, typed, companies, professionals, centers, students, educators, singletons | all |
syndicationId | Sindication code. See Social Groups in Contacts. | ||
context | Elephant context for links. | ||
count | Number of items to show. | 12 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
type | Only items with type. | all, typed, companies, professionals, centers, students, educators, singletons | all |
syndicationId | Sindication code. See Social Groups in Contacts. | ||
context | Elephant context for links. | ||
count | Number of items to show. | 12 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
type | Only items with type. | all, typed, companies, professionals, centers, students, educators, singletons | all |
syndicationId | Sindication code. See Social Groups in Contacts. | ||
context | Elephant context for links. | ||
count | Number of items to show. | 12 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
role | Entity role part. | SERVICE_SUPPLY, SERVICE_DEMAND | |
type | Only items with type. | ||
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
role | Entity role part. | SERVICE_SUPPLY, SERVICE_DEMAND | |
type | Only items with type. | ||
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
role | Entity role part. | SERVICE_SUPPLY, SERVICE_DEMAND | |
type | Only items with type. | ||
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
role | Entity role part. | SERVICE_SUPPLY, SERVICE_DEMAND | |
type | Only items with type. | ||
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
role | Entity role part. | SERVICE_SUPPLY, SERVICE_DEMAND | |
type | Only items with type. | ||
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
role | Entity role part. | SERVICE_SUPPLY, SERVICE_DEMAND | |
type | Only items with type. | ||
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
role | Entity role part. | SERVICE_SUPPLY, SERVICE_DEMAND | |
type | Only items with type. | ||
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
role | Entity role part. | SERVICE_SUPPLY, SERVICE_DEMAND | |
type | Only items with type. | ||
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
template | Template used to show the items. | signup |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
contactIds | |||
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
template | Template used to show the items. | profile |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
mode | Mode to use. | init |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
content-file | System file to show. |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
name | Attribute name. | ||
default | Default value. |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
context | Elephant context for links. | ||
stopper | Whether rendering should stop. |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
mode | Mode to use. | date, all, time | date |
format | Format used to show the value. | short, medium, long, full | short |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
url | Uniform Resource Locator. |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
tmpl-root | Templates root. | ||
template | Template used to show the items. | ||
value-map |
Values using the form variable=value separated by ;
|
props
.
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
tmpl-root | Templates root. | ||
template | Template used to show the items. | ||
repository-file | Name of the repository file. |
doc
.
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
tmpl-root | Templates root. | ||
template | Template used to show the items. | ||
repository-file | Name of the repository file. |
json
.
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
tmpl-root | Templates root. | ||
template | Template used to show the items. | ||
repository-file | Name of the repository file. |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
folder | Folder location. | ||
pattern | The pattern items must match. | ||
mode | Mode to use. | normal, sort, shuffle |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
url | Uniform Resource Locator. | ||
width | CSS style width. | ||
height | CSS style height. |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
resource-key | Key used to locate de resource. | ||
string-mode | Possible values are: 0 No transform, 1 Capitalized, 2 To upper case, 3 To lower case. | 0 |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
resource | |||
string-mode | Possible values are: 0 No transform, 1 Capitalized, 2 To upper case, 3 To lower case. | 0 |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
random-limit | Random values ceil. |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
level | Number of the item level. |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
mode | Mode to use. | name, id, email | name |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
role | Entity role part. | ||
attribute | Permission part. | ||
true-expression | When comparison is true. | ||
false-expression | When comparison is false. |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
cookie | Cookie name. | ||
value | Value to search for. | ||
true-expression | When comparison is true. | ||
false-expression | When comparison is false. |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
class-name | Java class name. | ||
true-expression | When comparison is true. | ||
false-expression | When comparison is false. |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
value | Value to search for. | ||
value | Value to search for. | ||
true-expression | When comparison is true. | ||
false-expression | When comparison is false. |
object
can also be an entityPath.
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
ref-object |
Attribute name holding the object or an entityPath .
|
||
attribute | Renders attribute's value as string. |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
attribute | Renders attribute's value as string. | ||
format | Format used to show the value. |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
entityPath | Path to a entity. | ||
fmt-name-desc | Format, as in String.format(), with entity name and description as parameters. |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
plugin | Plugin name. | ||
entityPath | Path to a entity. | ||
template | Template used to show the items. |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
name | Attribute name. | ||
value | Value to be set when defined. |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
storeClass | |||
indicatorClass | |||
entityPath | Path to a entity. | ||
indicator | Indicator name. | ||
relatedPath |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
identifier | |||
values |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
context | Elephant context for links. |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
doc-properties | Properties file for documentation. | */documentation | |
tmpl-root | Templates root. | documentation | |
template | Template used to show the items. | providerMacros |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
doc-properties | Properties file for documentation. | */documentation | |
tmpl-root | Templates root. | documentation | |
template | Template used to show the items. | socialGroups |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
parser | Parser name. | all | |
headers | true | ||
doc-properties | Properties file for documentation. | */documentation | |
tmpl-root | Templates root. | documentation | |
template | Template used to show the items. | elephantMacros |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
tmpl-root | Templates root. | documentation | |
template | Template used to show the items. | providerEmojis |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
tmpl-root | Templates root. | documentation | |
template | Template used to show the items. | providerIcons |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
indicator | Indicator name. | all | |
headers | true | ||
doc-properties | Properties file for documentation. | */documentation | |
tmpl-root | Templates root. | documentation | |
template | Template used to show the items. | elephantIndicators |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
status | Only items with status. | all, closed, onwork | |
context | Elephant context for links. | ||
categoryId | Category identifier. | 0 | |
dossierId | Dossier identifier. | 0 | |
count | Number of items to show. | 10 | |
template | Template used to show the items. | kbSummary, questions, motions, mySummary, proposals | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
status | Only items with status. | all, closed, onwork | |
context | Elephant context for links. | ||
categoryId | Category identifier. | 0 | |
dossierId | Dossier identifier. | 0 | |
count | Number of items to show. | 10 | |
template | Template used to show the items. | kbSummary, questions, motions, mySummary, proposals | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
status | Only items with status. | all, closed, onwork | |
context | Elephant context for links. | ||
categoryId | Category identifier. | 0 | |
dossierId | Dossier identifier. | 0 | |
count | Number of items to show. | 10 | |
template | Template used to show the items. | kbSummary, questions, motions, mySummary, proposals | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
status | Only items with status. | all, closed, onwork | |
context | Elephant context for links. | ||
categoryId | Category identifier. | 0 | |
dossierId | Dossier identifier. | 0 | |
count | Number of items to show. | 10 | |
template | Template used to show the items. | kbSummary, questions, motions, mySummary, proposals | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
status | Only items with status. | all, closed, onwork | |
context | Elephant context for links. | ||
categoryId | Category identifier. | 0 | |
dossierId | Dossier identifier. | 0 | |
count | Number of items to show. | 10 | |
template | Template used to show the items. | kbSummary, questions, motions, mySummary, proposals | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
status | Only items with status. | all, closed, onwork | |
context | Elephant context for links. | ||
categoryId | Category identifier. | 0 | |
dossierId | Dossier identifier. | 0 | |
count | Number of items to show. | 10 | |
template | Template used to show the items. | kbSummary, questions, motions, mySummary, proposals | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
status | Only items with status. | all, closed, frozen, not-frozen, onwork | |
context | Elephant context for links. | ||
categoryIds | Category identifiers. | ||
dossierId | Dossier identifier. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | projects, dossiers | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
status | Only items with status. | all, closed, frozen, not-frozen, onwork | |
context | Elephant context for links. | ||
categoryIds | Category identifiers. | ||
dossierId | Dossier identifier. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | projects, dossiers | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
status | Only items with status. | all, closed, frozen, not-frozen, onwork | |
context | Elephant context for links. | ||
categoryIds | Category identifiers. | ||
dossierId | Dossier identifier. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | projects, dossiers | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
status | Only items with status. | all, closed, frozen, not-frozen, onwork | |
context | Elephant context for links. | ||
categoryIds | Category identifiers. | ||
dossierId | Dossier identifier. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | projects, dossiers | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
status | Only items with status. | all, closed, frozen, not-frozen, onwork | |
context | Elephant context for links. | ||
categoryIds | Category identifiers. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | projects, dossiers | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
status | Only items with status. | all, closed, frozen, not-frozen, onwork | |
context | Elephant context for links. | ||
categoryIds | Category identifiers. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | projects, dossiers | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
status | Only items with status. | all, closed, frozen, not-frozen, onwork | |
context | Elephant context for links. | ||
categoryIds | Category identifiers. | ||
dossierId | Dossier identifier. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | projects, dossiers | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
status | Only items with status. | all, closed, frozen, not-frozen, onwork | |
context | Elephant context for links. | ||
categoryIds | Category identifiers. | ||
dossierId | Dossier identifier. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | projects, dossiers | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
context | Elephant context for links. | ||
phase | Only items in phase type. | ||
worths | Identifiers of the worths to show. | ||
categoryIds | Category identifiers. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | projects, dossiers | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
status | Only items with status. | all, closed, frozen, not-frozen, onwork | |
context | Elephant context for links. | ||
categoryIds | Category identifiers. | ||
template | Template used to show the items. | full |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
path |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
id | Identifier. | ||
template | Template used to show the items. | editDossier |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
redirect | Context where to redirect after the operation, usually saving. | ||
dossierId | Dossier identifier. | ||
template | Template used to show the items. | create |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
id | Identifier. | ||
redirect | Context where to redirect after the operation, usually saving. | ||
type | Only items with type. | TYPE_QUESTION | |
template | Template used to show the items. | editQuestion |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
id | Identifier. | ||
template | Template used to show the items. | addinfo | |
redirect | Context where to redirect after the operation, usually saving. |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
count | Number of items to show. | 10 | |
public | Show only public content. | true |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
count | Number of items to show. | 10 | |
public | Show only public content. | true |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
entityPath | Path to a entity. |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
context | Elephant context for links. | /user/contracts | |
count | Number of items to show. | 10 | |
intervention | Only contracts where current user has intervention. | true |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
context | Elephant context for links. | /user/contracts | |
count | Number of items to show. | 10 | |
intervention | Only contracts where current user has intervention. | true |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
context | Elephant context for links. | /user/contracts | |
count | Number of items to show. | 10 | |
intervention | Only contracts where current user has intervention. | true | |
type | Only items with type. | 0 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
context | Elephant context for links. | /user/contracts | |
count | Number of items to show. | 10 | |
intervention | Only contracts where current user has intervention. | true | |
type | Only items with type. | 0 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
summaryTemplate | Template used to show the items in summary mode. | summary | |
fullTemplate | Template used to show one items in full mode. | full |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
summaryTemplate | Template used to show the items in summary mode. | summary | |
fullTemplate | Template used to show one items in full mode. | full |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
summaryTemplate | Template used to show the items in summary mode. | summary | |
fullTemplate | Template used to show one items in full mode. | full |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
summaryTemplate | Template used to show the items in summary mode. | summary | |
fullTemplate | Template used to show one items in full mode. | full |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
context | Elephant context for links. | ||
ids | Identifiers. |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
context | Elephant context for links. | ||
ids | Identifiers. |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
format | Format used to show the value. | ||
ids | Identifiers. |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
shopping | Shopping mode. | ||
template | Template used to show the items. | cart |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
location | Navigator mode. |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
traversal | Navigator mode. | ||
show-title | When true, renders context name as well. | false |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
options | Navigator mode. | ||
decorators | When true, aditional DIVs are added at top and bottom. | ||
level | Number of the item level. | ||
preloaded | Number of preloaded children. | ||
show-current | When true, children passing preloaded value will show along with ancestors and siblings, as opposed to not showing any child with level over level + preloaded. | true |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
tabulator | Navigator mode. | ||
level | Number of the item level. |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
level | Tells until which level contexts are shown. | 1 |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
behavioural_keywords | Keywords controlling how information displays. | popup, external, hidden, verbose | |
navigational_keywords | Keywords to navigate Elephant contexts. | parent, locate, level, root, match | |
selection_keywords | Keywords actually returning contexts. | all, siblings, search, children, self, leaf, ancestors |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
behavioural_keywords | Keywords controlling how information displays. | popup, external, hidden, verbose | |
navigational_keywords | Keywords to navigate Elephant contexts. | parent, locate, level, root, match | |
selection_keywords | Keywords actually returning contexts. | all, siblings, search, children, self, leaf, ancestors |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
context | Elephant context for links. | ||
groupId | Group identifier. | 0 | |
categoryId | Category identifier. | 0 | |
count | Number of items to show. | 10 | |
template | Template used to show the items. | entryTitleImage, entry, eventTitle, eventTitleImage, grid, event, entryTitle | summary |
lang | Elephant language. |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
context | Elephant context for links. | ||
groupId | Group identifier. | 0 | |
categoryId | Category identifier. | 0 | |
count | Number of items to show. | 10 | |
template | Template used to show the items. | entryTitleImage, entry, eventTitle, eventTitleImage, grid, event, entryTitle | summary |
lang | Elephant language. |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
id | Identifier. | ||
template | Template used to show the items. | full |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
summaryTemplate | Template used to show the items in summary mode. | summary | |
fullTemplate | Template used to show one items in full mode. | full |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
summaryTemplate | Template used to show the items in summary mode. | summary | |
fullTemplate | Template used to show one items in full mode. | full |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
summaryTemplate | Template used to show the items in summary mode. | summary | |
fullTemplate | Template used to show one items in full mode. | full |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
summaryTemplate | Template used to show the items in summary mode. | summary | |
fullTemplate | Template used to show one items in full mode. | full |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
role | Entity role part. | SERVICE_SUPPLY, SERVICE_DEMAND | |
type | Only items with type. | ||
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
role | Entity role part. | SERVICE_SUPPLY, SERVICE_DEMAND | |
type | Only items with type. | ||
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
role | Entity role part. | SERVICE_SUPPLY, SERVICE_DEMAND | |
type | Only items with type. | ||
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
role | Entity role part. | SERVICE_SUPPLY, SERVICE_DEMAND | |
type | Only items with type. | ||
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
role | Entity role part. | SERVICE_SUPPLY, SERVICE_DEMAND | |
type | Only items with type. | ||
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
role | Entity role part. | SERVICE_SUPPLY, SERVICE_DEMAND | |
type | Only items with type. | ||
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
role | Entity role part. | SERVICE_SUPPLY, SERVICE_DEMAND | |
type | Only items with type. | ||
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
role | Entity role part. | SERVICE_SUPPLY, SERVICE_DEMAND | |
type | Only items with type. | ||
context | Elephant context for links. | ||
count | Number of items to show. | 10 | |
template | Template used to show the items. | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
mode | Mode to use. | all, current | all |
selection | true, false | true | |
template | Template used to show the items. | summary, vlist, hlist | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
mode | Mode to use. | all, current | all |
selection | true, false | true | |
template | Template used to show the items. | summary, vlist, hlist | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
mode | Mode to use. | all, current | all |
selection | true, false | true | |
template | Template used to show the items. | summary, vlist, hlist | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
template | Template used to show the items. | summary, vlist, hlist | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
template | Template used to show the items. | summary, vlist, hlist | summary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
template | Template used to show the items. | gsummary |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
template | Template used to show the items. | full |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
wtag | |||
template | Template used to show the items. | full |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
waction | |||
template | Template used to show the items. | gfull |
Atributs | Descripció | Opcions | Per defecte |
---|---|---|---|
template | Template used to show the items. | webLinks |
Email pools are called from modules to deliver email messages. The mail pool interface is named after the calling module and stored in a file following the same rule. Using de BS Dossiers module as example:
/WEB-INF/elephant/conf/elephant_dossier.xml
IMailMessagePool_Dossier
The xml element for MailMessagePool
s is a
Attribute |
Description |
mailhost |
The mail server domain. |
user |
User account. |
password |
User password, as is. See cryptpass for a more secured method to store passwords. |
cryptpass |
Password encrypted. Use Tools -> Password generator to generate the encrypted string. |
port |
Port to connect to. |
ssl |
Whether use SSL protocol on connect. Server defined. |
tls |
Whether to encrypt content on connect. Server defined. |
from |
Email FROM part. Can take two valid forms:
|
<impl interface="IMailMessagePool_Dossier" java-class="org.turro.mail.impl.MailMessagePool"> <attrib name="mailhost" value="smtp.gmail.com"/> <attrib name="user" value="user@gmail.com"/> <attrib name="cryptpass" value="xxxxxxx"/> <attrib name="port" value="465"/> <attrib name="ssl" value="true"/> <attrib name="tls" value="true"/> <attrib name="from" value="user@gmail.com|Site Comunications"/> </impl>
Elephant uses a mail queue system to allow modules to send notifications, status information and publications. Each user can configure whether to receive messages from specific categories and, when available, in which period.
Elephant mail API
The API treats the don't want to receive these emails as a especial period, in order to remind when a user explicitly set this option. Also, categories define which periods are allowed and the default period to use when not specified. The periods are:
DONT_SEND |
Do not send mails from this category. |
AS_GENERATED |
Send mails as they are generated by modules. |
DAILY, |
Send a resume for this category in the specified period, in a single email. |
The notifiers behavior may vary when the user hasn't specifically set a period option. User will be treated as a Participant (may want) or as an Observer (wants), depending on how module qualifies it. The following table shows how operates:
Subscription |
Not set |
Period set |
Don't send |
Wants |
Don't send |
Send |
Don't send |
May want |
Send |
Send |
Don't send |
Similar behavior applies to user's agreements. See Agreements .
To better understand the differences, lets take two examples: issue tracking and publications.
Issues depend on users participation, a role sharing type of share. We know a user may want to know when an issue changes state, if he participates in this issue. The default notifier action will be try to send the notification. If the user hasn't specifically set a period option, the default category option will be used.
Publications are sent to subscribers. The notifier will send the publication to those users whom specifically have set a period option.
The Elephant Mail Queue API requires a task to be created for each existent period. These tasks are configured by default. The idea behind is to permit platform administrators to change things like the hour in which daily summaries are sent, the day for monthly summaries, and so forth.
|
Expands to text-to-show linked to live-link with the user auto-authenticated. Valid for a period of seven days. |
|
Expands to live-link with the user auto-authenticated. Valid for a period of seven days. |
|
Expands to the user name. |
|
Expends to the user email. The one set as Email in contact connectors. |
|
Expands to the friendly user name (using complex name). |
|
Expands to the formal user name (using complex name). |
Images aren't included in emails. Instead, images are links to the site. This means that the email client is responsible of reading them in order to be shown. Some god practices when uploading images are:
a
to z
, A
to Z
, .
(point), -
(hyphen), _
(underline) and 0
to 9
. (Notice that ç
, Ç
, ñ
and Ñ
are not in these ranges)The recommendation for images with live links (auto-authenticated links) is:
System queue is used to send admin notifications to site administradors, password reminders to users and more of the kind. The system queue is private, users can't change sending period. The logic used when sending is the User may want approach, which means that users will receive notifications except when explicitly set to DONT_SEND
. Although administradors can set periods for this queue, it's not recommended. System notifications are better sent AS_GENERATED
.
Elephant allows sending direct emails through the Mail API. This method is used, for instance, when sending activity emails from BrightSide Dossiers module.
The Elephant Mail API defines a way for intercepting responses to direct emails. The method requires to declare a MailReader
. The usual form to declare a MailReader
is in the elephant_[module].xml
file.
Processed messages will be flagged as configured in MailReader
. The rest will be left as they were.
The xml element for MailReader
s is a
Attribute |
Description |
mailhost |
The mail server domain. |
type |
The server type. Usually imap, imaps, pop3 or pop3s. |
count |
Number of messages to retrieve. Defaults to 50. |
folder |
Folder to read from. Defaults to INBOX. |
user |
User account. |
password |
User password, as is. See cryptpass for a more secured method to store passwords. |
cryptpass |
Password encrypted. Use Tools -> Password generator to generate the encrypted string. |
port |
Port to connect to. |
ssl |
Whether use SSL protocol on connect. Server defined. |
tls |
Whether to encrypt content on connect. Server defined. |
flag |
Flag to set if the message is processed. Defaults to SEEN. |
<impl interface="IMailReader_Dossier" java-class="org.turro.mail.reader.MailReader"> <attrib name="mailhost" value="imap.gmail.com"/> <attrib name="type" value="imaps"/> <attrib name="count" value="10"/> <attrib name="user" value="user@gmail.com"/> <attrib name="cryptpass" value="xxxxxxx"/> <attrib name="port" value="993"/> <attrib name="ssl" value="true"/> <attrib name="tls" value="false"/> </impl>
<impl interface="IMailReader_Dossier" java-class="org.turro.mail.reader.MailReader"> <attrib name="mailhost" value="pop.gmail.com"/> <attrib name="type" value="pop3s"/> <attrib name="count" value="10"/> <attrib name="user" value="user@gmail.com"/> <attrib name="cryptpass" value="xxxxxxx"/> <attrib name="port" value="995"/> <attrib name="ssl" value="true"/> <attrib name="tls" value="false"/> </impl>
Elephant provides a generic API for generating matchings. Since matchings will be generated within different modules and using different Dao instances, the API provides a basic entity skeleton which is extended on the required JPA context.
Matching is closely related to Ranking . It might be regarded as a set of rankings for collections of entities. Usually, those collections are sets of contacts.
indicators
defined at entity level.Using different JPA context or Dao instances
with highly populated databases forces to have matching tables
in the same context where are supposed to be used. The fact that indicators are kept after calculate the final ranking value, adds, if not enough, more complexity.
Matching produces values for each basis entity n times the size of the related entity set.
Keeping indicators is not a random decision. Once calculated, they can be used for other purposes. For example, statistics, entity honoring symbols and so on.
In order to achieve the expected results with the minimum effort, the Matching API provides base classes and interfaces to concentrate module and entity specifics.
The Matching API has the starting point using Matchings.process()
static method. This is a bulk processing and starts deleting the matching table
. When executing for a single entity of a specific module, uses instead Matchings.processFor(entity)
.
The API takes, one by one, all the module specific indicators and generate their values against the whole set of related entities. After that, generates a final entry with the calculated entity matching
for each related entity. The formula is written as plain text and uses indicator's name as variables. Formulas are usually expressed as a sum of weighted indicators.
(indicator1 * weight) + (indicator2 * weight) + ...
Finally, the API has some convenience methods for adding join with the related entity and ordering statements to database queries.
Matching is a both sides value. Once stressed the relation between n-A and n-B, the results can be used to show the matching from a single A to n-B, same as from a single B to n-A.
Matching results can be used to sort entities for their matching value to a related entity. The Matching API provides non intrusive methods for JPA queries, allowing the natural entity sort order in case there is no related entity or matching generated.
The image shows the elements at play when the related entity is an authenticated user. MatchingEntity
represents the generated set of tuples containing the matching indicators
and the final formula value. The matching value is sorted in descendant order as to show higher values first. In case of no matching, the fallback goes to the ranking and, finally, to entity sort order.
Elephant Microservices is a ready-to-use component that allows machine to machine conversations among Elephant and non-Elephant implementations. The common used request language is JSON and results can be delivered in many formats.
Elephant Microservices can be built over a security system that will not accept requests from unknown sources. Two convenient classes are provided to ensure secured calls, SecuredClientService
and SecuredServerService
.
Elephant provides system wide components to allow common access to entities. One of the advantages of this system is the ability to publish the activity using Visual elements to control whether a user has permissions to see specific data.
Elephant takes the publishing concept as a web context using an iterator with conditions. Let's say we want to publish a specific branch of dossier's categories tree. And from this branch, only those with particular conditions. Now, taking context, entity's type and conditions, we have the information necessary to feed the Publishing API:
Field |
Description |
Context |
Web context path where the entities get published. |
Entity root |
The entity root as expressed in the Entities API. |
Constraints |
Array of conditions specific to the entity root. |
Method |
Description |
getConstraint() |
Returns constraint values. |
getContext() |
Returns web context for a given entity. |
Modern browsers allow users to get push notifications on a large variety of devices. Despite being controlled by browsers, push notifications do not require an open browser.
Having a single specification, push notifications behavior is expected to be similar among different browser brands.
Elephant provides a convenience method to enable and subscribe to push notifications. A single check button will perform both actions:
Elephant push notifications control
This check button has three possible status:
Status |
Description |
Transition |
Disabled |
Browser doesn't support push notifications or user has blocked them. |
To change push notifications status, see the following section. |
Unchecked |
No push notifications will be sent to this browser. |
The user can check the button and immediately will receive a request from the browser asking whether to allow or block push notifications. |
Checked |
This device will be getting push notifications. |
To disable push notifications, see the following section. |
In the navigation bar you will see one of these icons:
Firefox |
Chrome |
By clicking them, a dialog with site options will pop up. Notice that this options refer to the current site.
Firefox |
Chrome |
Elephant provides a generic API for generating rankings. Since rankings will be generated within different modules and using different Dao instances, the API provides a basic entity skeleton which is extended on the required JPA context.
indicators
defined at entity level.Using different JPA context or Dao instances
with highly populated databases forces to have ranking tables
in the same context where are supposed to be used. The fact that indicators are kept after calculate the final ranking value, adds, if not enough, more complexity.
Keeping indicators is not a random decision. Once calculated, they can be used for other purposes. For example, statistics, entity honoring symbols and so on.
In order to achieve the expected results with the minimum effort, the Ranking API provides base classes and interfaces to concentrate module and entity specifics.
The Ranking API has the starting point using Rankings.process()
static method. This is a bulk processing and starts deleting the ranking table
. When executing for a single entity of a specific module, uses instead Rankings.processFor(entity)
.
The API takes, one by one, all the module specific indicators and generate their values. After that, generates a final entry with the calculated entity ranking
. The formula is written as plain text and uses indicator's name as variables. Formulas are usually expressed as a sum of weighted indicators.
(indicator1 * weight) + (indicator2 * weight) + ...
Finally, the API has some convenience methods for adding join and ordering statements to database queries.
Dossier ranking takes information from different modules and uses the extended syntax for indicators. The image shows class inheritance and data providing. The final result is kept in dossier module's JPA.
Indicators self-provided or from external modules.
@ElephantIndicator public class DossierIndicator extends AbstractIndicator { public DossierIndicator() { root = "dossier"; indicators = Arrays.asList( "participation", "fullParticipation", "issues", "generic:stars", "generic:comments", "attach:attachments", "forum:topics"); } @Override protected Dao createDao() { return new DossierPU(); } ... }
Ranking results can be used to sort entities. The Ranking API provides non intrusive methods for JPA queries, allowing the natural entity sort order in case there is no ranking generated.
The image shows the elements at play. RankingEntity
represents the generated set of tuples containing the ranking indicators
and the final formula value. The ranking value is sorted in descendant order as to show higher values first.
Elephant Security System is used to isolate contents based on user granted permissions. The content is generated at server side based on this security system.
Elephant uses a symmetric cipher with a unique key pair, to produce the ciphertext to be stored.
Before stored, the application measures the password strength and shows the result as a percentage. The rules for measuring the strength are:
isInRole
methodElephant provides isInRole
convenience method to check user assigned points. The method takes as string parameter with a permission checking syntax.
The scripts also provide a facade map named rolemap. The checking syntax will be rolemap['root:permission']
.
See [ Social groups, Permissions, Scripting, Actors, Concept permissions, Superuser ]
Social groups propagate into static, application-wide permissions. Users syndicated to socials groups will also be granted with the related permissions.
Elephant comes with a ready-to-use set of social groups, associated to roles with fine-grained permissions. The following table is auto-generated with the current version. The identifier
is the internal form of the social group. Syndicate
shows nested social groups. Roles
are the set of permissions granted with the social group. Each role has a popup showing the fine-grained permissions, where no-popup would mean no-permissions. Tags
is no longer used, since contacts module already provides a tag-kind-of navigating among social groups.
Socials groups marked with are subject to inheritance. Inheritance ensures that staff from a company or center will inherit the social group and its permissions. Inheritance is dynamic and takes into account current companies or centers.
Grups socials | Identificador | Sindicar | Rols | Etiquetes |
---|---|---|---|---|
Auxiliar comptable | account_auxiliar | IssueParticipant, Acceptance, DossierParticipant, FinancialsAccountingAuxiliar | account_auxiliar | |
Auxiliar administració | admin_auxiliar | IssueParticipant, Acceptance, DossierParticipant, Contacts, FinancialsAdministrationAuxiliar | admin_auxiliar | |
Administració | administration | FileAttachSelf, Administration, Acceptance, MyDocuments, AttachDelete, AttachSelf, PublicationModerator, FileAttachDelete, Contacts, ConvocationAdmin, Dossier, Financials, DossierRegistry, Crm | administration | |
Alliance administration | alliance_admin | AllianceAdmin | alliance | |
Alliance member | alliance_member | AllianceMember | alliance | |
Administració d'adjunts | attach_admin | AttachAdmin, FileAttachAdmin | admin | |
Administració de BrightSide | brightside_admin | attach_admin, financials_admin, dossier_admin, contacts_admin | SchedulerAdmin, FinancialsAdmin, ContactAdmin, CrmAdmin, FileAttachAdmin, StudentAdmin, BrightSideAdmin, FinancialsModel, BusinessAdmin, DirectoryMember, DossierAdmin, ErpAdmin, PublicationAdmin, ConvocationAdmin, AttachAdmin, AcceptanceAdmin | brightside |
Clusters | cluster | IssueParticipant, FileAttachSelf, DossierParticipant, Cluster, AttachSelf | cluster | |
Entitat col·laboradora | collaborating_entity | IssueParticipant, FileAttachSelf, DossierParticipant, MarketplaceMember, ContactsViewer, AttachSelf, CollaboratingEntity | collaborating | |
Col·laboradors | collaborator | IssueParticipant, FileAttachSelf, Collaborator, AttachSelf | collaborator | |
Col·laboradors privilegiats | collaborator_privileged | collaborator | IssueParticipant, PrivilegedCollaborator, FileAttachSelf, AttachSelfValidate, DossierParticipant, Collaborator, Publication | privileged, collaborator |
Comercials | comercial | IssueParticipant, MyDocuments, DossierParticipant, Convocation, Publication, Comercial, CrmVendor | comercial | |
Assistents a direcció comercial | comercial_dir_assistant | IssueParticipant, MyDocuments, DossierParticipant, Contacts, ComercialDirAssistant, Publication, Crm | assistant | |
Direcció comercial | comercial_direction | IssueParticipant, MyDocuments, DossierParticipant, ComercialDirection, Contacts, Convocation, CrmAdmin, Publication | comercial, direction | |
Cap d'informàtica | computer_manager | Administration, MyDocuments, Contacts, PublicationAdmin, ErpAdmin, Attach, Dossier, Financials, CrmAdmin, AcceptanceAdmin, FileAttach, ComputerManager | computer | |
Consultors | consultant | Consultant | consultant | |
Administració de contactes | contacts_admin | ConvocationAdmin, ContactAdmin | admin | |
Administració de continguts | content_admin | BlogAdmin, PublicationAdmin, ContentManager | content | |
Consellers | counselor | IssueParticipant, FileAttachSelf, DossierParticipant, Collaborator, Counselor, Publication, AttachSelf | counselor | |
Clients | customer | IssueParticipant, FileAttachSelf, Customer, AttachSelf | customer | |
Clients privilegiats | customer_privileged | customer | IssueParticipant, FileAttachSelf, AttachSelfValidate, DossierParticipant, Customer, Publication, PrivilegedCustomer | privileged, customer |
Direcció | direction | FileAttachSelf, Erp, MyDocuments, Attach, AttachSelf, Direction, Contacts, Dossier, Financials, AcceptanceAdmin, FileAttach, Crm, Business | direction | |
Assistents a direcció | direction_assistant | FileAttachSelf, Acceptance, MyDocuments, Contacts, Attach, Dossier, Financials, DirectionAssistant, DossierRegistry, AttachSelf, FileAttach, Crm | assistant | |
Directori | directory | DirectoryMember | directory | |
Administració de dossiers | dossier_admin | DossierAdmin, ConvocationAdmin | admin | |
Personal | employee | IssueParticipant, Acceptance, MyDocuments, DossierParticipant, Employee, Contacts | employee | |
Auxiliars d'esdeveniments | event_assistant | ConvocationValidate, EventAssistant | event_assistant | |
Administració de financials | financials_admin | BusinessAdmin, ConvocationAdmin, FinancialsAdmin, FinancialsModel | admin | |
Empresa del grup | groupcompany | IssueParticipant, GroupCompany, FileAttachSelf, DossierParticipant, AttachSelf | groupcompany | |
Convidats | guest | Guest | guest | |
Hub | hub | Hub | hub | |
Suport hub | hub-support | HubSupport | hub-support | |
Inversors | investor | Investor | investor | |
Caps de personal | manager | employee | Acceptance, MyDocuments, Employee, Contacts, ErpAdmin, Dossier, Manager | manager, employee |
Marketing | marketing | ContactsMarketing | marketing | |
Marketplace | marketplace | MarketplaceMember | marketplace | |
Operaris | operator | employee | IssueParticipant, Operator, Acceptance, DossierParticipant, ErpOperator | employee, operator |
Socis | partner | IssueParticipant, FileAttachSelf, DossierParticipant, MarketplaceMember, ContactsViewer, AttachSelf, Partner | partner | |
Patrons | patron | IssueParticipant, FileAttachSelf, DossierParticipant, Collaborator, Publication, AttachSelf, Patron | patron | |
Suport a projectes | projectsupport | IssueParticipant, DossierParticipant | projectsupport | |
Proveïdors | provider | IssueParticipant, FileAttachSelf, AttachSelf, Provider | provider | |
Proveïdors privilegiats | provider_privileged | provider | IssueParticipant, FileAttachSelf, AttachSelfValidate, DossierParticipant, Publication, PrivilegedProvider, Provider | privileged, provider |
Investigadors | researcher | Researcher | reasearcher | |
Administrador d'estudiants | student_admin | StudentAdmin | admin | |
Comissió de talent | talent_committee | IssueParticipant, FileAttachSelf, DossierParticipant, MarketplaceMember, ContactsViewer, AttachSelf, TalentCommittee | talent | |
Socis tecnològics | techpartner | TechnologyPartner | techpartner | |
Testimonis | testimonial | Testimonial | testimonial | |
Administració de la web | web_admin | WebAdministrator | web |
Permissions' definition is explained in Social groups
. Simplifying, definition is set of permissions related to a root, for example dossier:list,new,edit,delete
, whereas checking a permission would take the form dossier:new
. In the definition we say the permissions related to dossier, when checking we ask whether it has one of those permissions.
Permissions can be ORed using |
, for example dossier:list|@customer:on
.
dossier
, contact
, document
are examples of those entities.@
, and followed with :on
.#
, and followed with :on
.@
, and followed with :is
.@actor:
, and followed with the actor name.Fuzzy roles are those discovered by the application and highly dependent on interactions. Represented as @fuzzy_role:is
.
Fuzzy role | Description |
---|---|
su | Super user |
admin | The user has admin capabilities |
natural | The user has a current relation with a company or center. |
worker | The user has a current relation with a company. |
professional | The user has a responsible relation with a company. |
student | The user has a non-responsible relation with a center. |
docent | The user has a docent relation with a center. |
responsible | The user has a responsible relation with a company or center. |
hhrr | The user is in Human Resources. |
companyhhrr | The user is in company's Human Resources department. |
centerhhrr | The user is in center's Human Resources department. |
translator | The user is a language translator. |
listed | The user is listed in the networking directory. |
networking | The user is in the networking. |
premium | The user is in the premium networking. |
singleton | The user is a freelancer or a non recognized company or center. |
user | Comodity role for autheticated users. |
outsider | The user comes from an Alliance member. Could only be true in Alliance servers. |
Elephant includes some commodity roles, not directly related to user's role:
Comodity role | Description |
---|---|
user:in | True for authenticated users. Equal to @user:is |
lang:_lang | True if lang equals to active language |
Check type | Syntax | Example |
---|---|---|
Permissions | entity-root:permission |
dossier:list |
Roles | #role:on |
#DossierParticipant:on |
Social groups | @socialGroupID:on |
@customer:on |
Fuzzy roles | @fuzzyrole:is |
@worker:is |
Actors | @actor:actor_name |
@actor:PartnerNetwork |
Suppose a sample user assigned to Privileged Customers social group. This social group grants the DossierParticipant role, which carries dossier=list,show
permissions. Therefore, dossier:show
will be granted.
This feature is in its early stages and provides a more flexible way to use the permissions starting with a @
. Adds the possibility of creating complex formulas, with preferences, negations and logical operators.
Operator | Description | Example |
---|---|---|
| |
As in simple syntax, indicates OR. | A or B = A | B |
& |
Indicates AND. | A and B = A & B |
( and ) |
Indicate preference. | (A and B) or C = (A & B) | C |
! |
Indicates a negation. | (A and not B) or C = (A & !B) | C |
Scripting is used by Actors , in Concept permissions and in Visual elements . The main goal is to provide an advanced way to check permissions, roles, social groups and entity related attributes.
Methods related to currently authenticated user. The scripting context initializes the variable user
.
Function |
Description |
user.isAdmin(), user.isWorker(), user.isStudent(), user.isHhrr(), user.isResponsible(), user.isInNetworking(), user.isInternal(), user.isCompany(), user.isCenter() |
True or false indicating user different statuses. |
user.getBusiness() |
User preferred business. Accepts the same functions as |
user.getProfileMap().isInRole(role) |
True or false if user conform the syntaxis specified in Security . |
user.isActor(actor) |
True or false if user is actor. |
user.isActor(entity, actor) |
True or false if user is actor for the given entity. |
Function |
Description |
pfunc.isUser() |
True or false if there is an authenticated user. |
pfunc.anyOfSyndications(user, csvSyndications) |
True or false if |
pfunc.anyOfGroupings(user, csvGroupings) |
True or false if |
Per module attributes address those features unique to the entities in this module. Per module attributes sum to the generic attributes.
Dossier context initializes the variables dpl
and issue
, dossier
or category
. Notice that when applying constraints that uniquely refer to a project, the dossier must be of type project.
Function |
Description |
dossier.isDirectOwner(user), category.isDirectOwner(user) |
True or false value indicating whether the user is directly assigned as owner. |
dpl.isParticipant(user), dpl.isShowAllAttachments(user), dpl.isShowParticipants(user), dpl.isShowAllIssues(user), |
True or false indicating the dossier/category participation attribute with the same name. |
dpl.isOwner(user), dpl.isSubject(user) |
True or false indicating the dossier/category participation attribute with the same name. |
dpl.isResporter(user), dpl.isResponsible(user), dpl.isQA(user), dpl.isAssistant(user) |
True or false indicating the issue participation attribute with the same name. |
Function |
Description |
dfunc.anyParticipation(Object user) |
True or false if the given user participates in any dossier or category. |
dfunc.anyOfCategories(dossier, csvCategories) |
True or false if |
dfunc.anyOfPhases(dossier, csvIndexes) |
True or false if |
dfunc.anyOfPhaseTypes(dossier, csvTypes) |
True or false if |
dfunc.anyOfRoles(dpl, user, csvRoles) |
True or false if |
dfunc.anyOfExtRoles(dpl, user, csvRoles) |
True or false if |
dfunc.anyOfDiscriminators(dpl, user, csvDiscriminators) |
True or false if |
dfunc.anyOfRoles(user, csvRoles) |
True or false if |
dfunc.anyOfExtRoles(user, csvRoles) |
True or false if |
It is possible to use scripting files with the directive file:file_name
. Scripting files are located in /WEB-INF/elephant/scripts
.
Scripts generate no logs with errors. Starting the script with debug:
indicates the Scripting API to write any error in the log file.
Actors API is a superset specification based in Security 's Scripting . The goal of this API is allowing the creation of easy-customizable application actors.
An actor is a given user complying with a group of constraints attached to the actor's name. An example would be:
PartnerNetwork=pfunc.anyOfSyndications(user, "partner,patron,contacts_admin")
The line configures the PartnerNetwork actor. In order to check if the visiting user is a PartnerNetwork, in Visuals we'll do:
user.isActor("PartnerNetwork")
Actors API is fully compliant with the collaboration modules. We can create specific actors for a large variety of entities. An example of an actor related to dossiers or categories:
ComissionMember=dpl.isParticipant(user)
Now we could check if the visitor is a ComissionMember with:
user.isActor(dossier, "ComissionMember")
The BaaS service provides a view where we can check users against all defined actors. It's also possible to perform the check using an entity.
Concept permissions is a convenience set of security settings, differentiated by their name (concept). Concept permissions factory should primarily be an Elephant Entity, by means of its method getConceptPermission(name)
. Using an Elephant Entity as a factory ensures the correct initialization of the Scripting
methods.
Field |
Description |
Required |
name |
Used as the concept related to this set of constraints. |
|
allow |
True when the concept is allowed. Defaults to false. Usually |
|
show |
True when the concept should be shown. Defaults to false. Usually |
|
showRole |
Extension to |
|
actionRole |
Extension to |
|
showScript |
Extension to |
|
actionScript |
Extension to |
|
showActor |
Extension to |
|
actionActor |
Extension to |
|
max |
Used to pass a numerical value to visual controls. |
|
order |
Useful when concepts should be shown in specific order. |
|
permissions |
A set of conceptual permissions with the same structure. Used as sub-concept permissions and scalable to any level. |
The concept of a Superuser adds extra security to management users. There are two kinds of superusers, the superusers themselves, and the CloudAdmin user, addressed to cloud administrators.
A Superuser, su from now on, has access to the whole configuration set, including special management of Social Groups for contacts. Important for a su to remember:
/log/failsu
, and an email will be sent to all su's.@su:is
is available for context roles and the whole security script system.The following table shows the elements restricted to su-only-eyes.
Element | Description |
---|---|
Assign admin Social Groups | Only su will be able to assign administration groups. Non-su admins will see the administration groups as disabled. |
Assign su to any contact | Only su will be able to assign new superusers. |
Microservices servers and members | Only visible for su. |
Reset site settings | Only visible for su. |
Reset schemes | Only visible for su. |
Configurator | Only visible for su. |
Server driven contexts | Only visible for su. |
Layout root | Only visible for su. |
Sendable has two main attributes, schedule
and sent
. schedule
is a date and time field, representing when the entity should be sent. sent
is set to TRUE when the entity has been sent. Sendable has also a list of SendableAssistant. The function of this list is the possibility to add recipients when sending.
Sendable was mainly added to schedule sending a Convocation. When programming a convocation, the assistant list is replaced by the convocation list of attendees.
Publications already have a sending method that suits perfectly for most cases. We should we use Sendable when we have a private category publication, with an always varying number of subscribers. We can keep the category with no subscribers and use Sendable assistants instead.
Category |
Sendable |
Mail subject is category related, since the message body can contain more than one publication. |
Mail subject is the publication title. |
Recipients are controlled by the category. |
Recipients are Sendable assistants, unique for this publication. |
The mail queue controls when publication are sent, taking into account user options when public. |
The mail is sent as state in |
Sendable control allows sending an email-test. It's not required to have any sendable attribute configured, nor attendees added. The Send test to... action asks first to which contacts you want to send the test, then uses the saved entity to generate the email.
Elephant is able to create a sitemap.xml
file. The file is compliant with Google webmaster tools.
The file is auto-generated when the BaaS administrator uses the option Tools -> Contexts
. The file location is /sitemap.xml
.
The sitemaps generator crawls Elephant contexts and adds those visible, that is, with no role restrictions. Also lists publications from BrightSide Publication module, and add those publications in visible groups and categories. It also adds publication images that follow the standard convention described here.
In order to generate the correct URL for specific BrightSide modules, is necessary to register a context as a web-context
for the specific entity.
Elephant reads web-contexts from entity-web-context.properties
file, located at WEB-INF/elephant/conf
. The format of this file is entity=path
. Examples:
publication=/publications dossier=/projects
When the BrightSide Publication plugin for sitemap, expands the entity URL, uses the path defined for publication entities.
Sitemaps highly depends on URL-as-parameter Elephant feature. Used mainly on BrightSide modules, the functionality is provided by the Elephant's core.
In order to work correctly, you need to provide information to the file entity-web-context.properties
, under /WEB-INF/elephant/conf
. Elephant uses this information to ensure which entity is at stake. In short, entities not defined in this file wont get an URL.
As for now, the URLs are generated once, and would never change. This is in itself an issue, since users wont be able changing wrong generated URLs. On the other hand, URLs encountering problems at generation time (violating the primary key, for instance) could be easily corrected.
URL-as-parameter uses the Elephant's context recede behavior. When extra path is provided, but there is no context supporting it, the context implementation moves up. Formerly, this step changed the servlet path as well. Now, simply uses this mechanism to pass the extra path to EntityWebUrls.exists()
.
Since entity-web-context.properties
is involved, checking the full path to ensure the result is quite easy.
Skills and Tags are both different APIs and have different behaviors. Although, both share the final goals: create a transversal categorization and group transversal types of entity, otherwise ignored.
The user skill types are Knowledge, Functional and Attitude. The company or center skill types are Sector and Specialty.
For entities, all the above skill types apply.
When attached to entities, skills may have different meanings. The table below shows how to interpret skills regarding the entity they were attached.
Entity owning the skill |
Interpretation |
Contact |
The contact owns the skill. |
Convocation |
The call should specify the reason: required for assistance or directed to those interested in. |
Other entities |
The entity requires the skill. |
Tags are simple, synthetic words defining the entity. By default, entities aim to create separated sets of tags. The point is to separate tags by concept (type of entity) and by use (internal or external). Tags are all the same type.
When the BS Contacts was born, it owned the Tags API. Tags are mostly assigned by Social Group syndication. The final use is to easily filter contacts by their social group. Since then, even after the API independence, contact attached tags are treated as for internal use.
Elephant creates Open Graph metas. By default, og:title
will be the context name. Different modules may override this behavior.
When dealing with images, Elephant will resolve og:image
using:
_social.(png|jpg)
..(png|jpg)
._def_social.(png|jpg)
.In order to be a valid image, must have at least 200 pixels width or height. Images with more than 600 pixels will be considered large.
Intention |
Image |
Default image for all contexts |
Add a |
Image for a context, including root |
Add a |
Image for a context, including root |
Add a |
This examples do not apply to BrightSide modules, since single entities may have different images.
BrightSide modules implement social conventions their own way. For instance, BrightSide Publications use a convention based on repository folders (see Publication Conventions). BrightSide Dossiers and BrightSide Financials use instead the _social suffix convention.
Elephant maintains an image cache for social images. If you need to reset this cache, edit and save any context.
Elephant Students seamlessly integrates with other Elephant and BrightSide modules. Its main purpose is to allow a Challenger
to post challenges related to BrightSide entities. The Student
will then be able to respond to those challenges, by itself or in a group.
In order to create the Students structure, some actors are essential.
The first step will be to create a University
and add one or more Dean
. Next, add some Career
along with their Tutor
.
The application will recognize a potential Student
because its Email
connector. When creating a University
we gave some domain terminations, ex. @university.edu. Whenever the user has an email ending with those termination, becomes marked as a potential Student
and it's proposed to choose which careers is pursuing.
Platform administrators can be challengers for any Elephant or BrightSide. Each module extends the capability to be a Challenger
based on how users participate.
BrightSide Dossier defines as a Challenger
users participating in a project
. Those users are presented with a Add challenge button within the project they participate on.
Role |
What can see |
Dean |
|
Tutor |
|
Challenger, patron and partner |
|
Student |
|
From within an entity, the Students module provides ways of interaction, depending the user's role.
A usual flow would be the student asking to participate in a project. As a result, the student will appear as a project participant and could be convocated when the project is used as convocation's entity (see Convocatòries ).
A challenger can add challenges despite there are or there are not, students participating. Students will see the challenges in their own challenges view. If there are students participating, the challenger will see their names and careers.
The challenger can edit the challenge by giving an unambiguous title, a rich-text description and attaching documents when required.
A student can add a response to a challenge once has read what the challenge is about.
The student can respond using a rich-text description, including images. Also can add other students to the response.
The final view for the challenger is a resume of all interactions and the implicated actors.
TinkerPop is an Apache project that provides the Gremlin Query Language, a beautiful piece of art. An easy way to have fun, while getting results from a graph
. TinkerGraph and Gremlin Console are also part of TinkerPop.
Elephant provides a GraphML from all entities, generated with TinkerGraph. This documentation will help you get started with the Gremlin Console, and will provide some examples to use in your own data.
entity.graphml
fileGo to your User area, click on Reports, and select Entities GraphML. This will generate an email, with the entity.graphml
file.
Gremlin Console is an amazing tool that will allow you to explore your Elephant Entities like you never before thought possible.
The easiest way to install the console is using a Docker container. But you may find a more suitable way in their web page.
Before running the console, you need to mount the folder where you will copy the GraphML file. In the example, the folder is located at
and we want it as /tinker
inside the console.
docker run -it --rm -v ~/Public/tinker:/tinker tinkerpop/gremlin-consoleThis will create the standard welcome into your Gremlin console.
Nov 06, 2024 2:16:21 PM java.util.prefs.FileSystemPreferences$1 run INFO: Created user preferences directory. \,,,/ (o o) -----oOOo-(3)-oOOo----- plugin activated: tinkerpop.server plugin activated: tinkerpop.utilities plugin activated: tinkerpop.tinkergraph gremlin>Now, create the graph, the traversal and load the file, in the example
entity.graphml
.
gremlin> graph = TinkerGraph.open() ==>tinkergraph[vertices:0 edges:0] gremlin> graph.io(graphml()).readGraph('/tinker/entity.graphml') gremlin> g = traversal().withEmbedded(graph) ==>graphtraversalsource[tinkergraph[vertices:486 edges:850], standard]
.groovy
file, and load it with the :load
command.
graph = TinkerGraph.open() graph.io(graphml()).readGraph('/tinker/entity.graphml') g = traversal().withEmbedded(graph)
gremlin> :load /tinker/entity.groovyNow you're ready to start running queries
Along with the data graph, you can also download the model graph, which is reverse engineered from your actual data.
The graph is independent of the graph model. Your data will be all included in the generated graph. The model is meant to be an extra help, to understand your data.
These are Fruchterman Reingold layouts from the Elephant generated Graph. We used Gephi to visualize the graph, and we will be using Gremlin Console to query the graph.
contact
's type
g.V().hasLabel('contact').values('type').dedup()
dossier
's phase
g.V().hasLabel('dossier').values('phase').dedup()
g.V().hasLabel('contact') .groupCount().by('type')
g.V().hasLabel('contact').has('type', 'CONTACT_COMPANY') .project('Name', 'Workers').by('name').by(in('works').count())
g.V().hasLabel('contact').has('type', 'CONTACT_COMPANY') .project('Name', 'Workers').by('name').by(in('works').count()) .dedup().fold().order(local).by(select('Workers'), desc)
g.V().hasLabel('contact').has('type', 'CONTACT_LEARNINGCENTER') .project('Name', 'Students').by('name').by(in('studies').count())
g.V().hasLabel('contact').has('type', 'CONTACT_LEARNINGCENTER') .project('Name', 'Docents').by('name').by(in('teaches').count())
g.V().hasLabel('contact').valueMap().select('name', 'type')
g.V().hasLabel('contact').outE().inV().path().by('name').by(label)
g.V().hasLabel('contact').has('name','Contact 1') .repeat(both('participates','works','organizes','invites').simplePath()) .until(and( hasLabel('contact').has('name','Contact 2'), loops().is(lte(10)) )) .limit(20) .path().by('name')
g.V().hasLabel('contact').has('name','Contact name')
.repeat(both('participates','works','organizes','invites','parent'))
.until(and(hasLabel('contact').has('type','CONTACT_USER'),not(cyclicPath())))
.limit(600)
.path().by('name')
g.V().hasLabel('contact').has('name','Contact name')
.repeat(both('participates','works','organizes','invites','parent'))
.until(and(hasLabel('contact').has('type','CONTACT_USER'),not(cyclicPath())))
.limit(600)
.tail(local)
.groupCount().by('name')
.order(local).by(values,desc)
g.V().hasLabel('dossier').group().by(values('name')) .by(inE('participates').count()).unfold()
g.V().hasLabel('dossier').group().by(values('phase')).by(count()).unfold()
g.V().hasLabel('dossier').group().by(outE('parent') .inV().values('name')).by(count()).unfold()
g.V().hasLabel('dossier').out('parent').path().by('name')
g.V().hasLabel('dossier').repeat(out('parent').simplePath())
.until(out('parent').count().is(0))
.path().by('name')
Gephi is an amazing visualization and exploration program for all kinds of graph and networks. It's also open-source and free. Gephi has multiple plugins, to help with graph data analysis and layouts.
You can use Gephi as a standalone application, or as a Gremlin Console plugin.
If you are using Docker, you will need to allow using the host network, where Gephi was installed.
sudo docker run -it --rm -v ~/Public/tinker:/tinker --network host tinkerpop/gremlin-console
:plugin use tinkerpop.gephi :remote connect tinkerpop.gephi
:> graph
Elephant includes an executor of Gremlin scripts. It's not intended to substitute the Gremlin Console, and does not use Groovy, but only the Gremlin language.
Elephant includes a set of dynamic macros, in order to render Gremlin results in a fancy manner.
Atributs | Descripció | Per defecte | Opcions |
---|---|---|---|
height | CSS style height. | ||
name | Attribute name. | ||
root |
Atributs | Descripció | Per defecte | Opcions |
---|---|---|---|
data | |||
height | CSS style height. | ||
order | asc, desc | ||
title | |||
type | Only items with type. | line, pie |
Atributs | Descripció | Per defecte | Opcions |
---|---|---|---|
name | Attribute name. | ||
root |
Atributs | Descripció | Per defecte | Opcions |
---|---|---|---|
name | Attribute name. | ||
root |
Atributs | Descripció | Per defecte | Opcions |
---|---|---|---|
class | Writes true or false expressions depending on whether class could be instantiated. | ||
name | Attribute name. | ||
root |
Atributs | Descripció | Per defecte | Opcions |
---|---|---|---|
name | Attribute name. | ||
root |
Atributs | Descripció | Per defecte | Opcions |
---|---|---|---|
concept | |||
limit | |||
root |
Atributs | Descripció | Per defecte | Opcions |
---|---|---|---|
value | Value to search for. |
Atributs | Descripció | Per defecte | Opcions |
---|---|---|---|
format | Format used to show the value. | percentage, difference | |
now | |||
period | month, year, lastYear, lastQuarter, lastSemester, lastMonth, semester, quarter | ||
then |
Atributs | Descripció | Per defecte | Opcions |
---|---|---|---|
order | asc, desc | ||
rows |
Atributs | Descripció | Per defecte | Opcions |
---|---|---|---|
entities | |||
limit | |||
matching | |||
ranking | |||
template | Template used to show the items. | ||
tmpl-root | Templates root. |
These are ElephantGraph, real-data, dynamic macros examples.
Phase | Projects |
---|---|
Resolution | 1 |
Incubator | 2 |
Idea | 9 |
Execution | 15 |
@w{cards(class=three)} @ {gview(entities="projects-random",ranking="project-alltime",matching="project-relations",tmpl-root="dossier",template="project-cards",limit=3)} @w{/cards} @w{grid(class=two column)} @w{column} @w{table(class=definition)} @w{theader(values="Phase|Projects")} @ {gtable(rows=projects-phase)} @w{/table} @w{/column} @w{column} @ {gchart(title="Projects phase",type=pie,data=projects-phase,height=300px)} @w{/column} @w{column} @ {gchart(title="Dossier status",type=pie,data=dossier-status,height=300px)} @w{/column} @w{column} @ {gchart(title="Issues priority",type=pie,data=issues-status,height=300px)} @w{/column} @w{/grid}
The Visual Elements API provides an affordable way to create views with user sensible data. Visual Elements relies on names given to those parts to be controlled.
The most common example arises when creating a template that needs to know who is viewing it, so can render more or less content. With Visual elements you will give a name to the sensible parts and create a configuration file. The API will do the rest.
Visual Elements is stored as a JSON file in /WEB-INF/elephant/conf
and can be edited using BaaS -> Tools -> Files -> Configuration -> JSON.
Every visual element will be checked against user his allowed social groups, grouping values, administration attributes. As a result, the API will tell if the user can have access to the element or is a simple visitor (an authenticated user with no specific permissions for the element).
The method allowed(user)
returns a sorted collection of allowed elements for user. Inside the template you will iterate the collection, check its name and insert the content. The sort order is also part of the API and is specified in the configuration file.
The image gives a very simplified example of iteration. Does not show how to implement the iteration within the template. Usually you will check the visual element name against the expected name for content. Example, if visual-element-name equals content-name then add the content.
Instead of iterating a collection, you can check directly against any given name. The method getElement(name, user)
returns, if allowed for user, the visual element with the given name.
As you probably already noticed, both cases include the possibility of sub elements. A sub element is a visual element that fully depends on its parent. The allows(name, user)
returns true when the element name can be shown to user.
To understand sub elements utility, think about form actions. The parent element is an HTML form and the buttons represent actions. Using the API, each button can be conditioned by the allows(action_name, user)
method.
Another example, imagine you have a determined list of users. Now, you're not sure whether show user's name and company, or only company's name. And you're quite sure this will be something that will vary among your customers. Using the API, you can relay on an easy to edit configuration file.
The whole Elephant system heavily uses entities. Entities are groups of related information and have a full Entities API to relay on. In order to use entities with the Visual Elements API, you need to implement the VisualEntityCheck interface. Consists in a single method check(property, value, entity, user)
and returns a boolean.
Visual elements attributes are ORed. The constraints will be interpreted as if condition A or condition B ... are fulfilled by the current user, the requesting element will be shown.
Generic attributes apply to any visual element node.
Attribute |
Description |
Required |
name |
The attribute name is used in templates to identify or locate the attribute. |
|
label |
Label points to a resource key. May be used as a caption for the attribute values. |
|
order |
Is a numerical that forces the sort order of elements returned in |
|
role |
Must conform the syntaxis specified in Security . |
|
eval |
Allows complex constraints using scripting. See Scripting . |
|
syndications |
ORed social group identifiers the user needs to be assigned to. See Social groups . |
|
groupings |
ORed contact groupings the user needs to be assigned to. |
|
businessSyndications |
ORed social group identifiers the company or center where the user belongs, needs to be assigned to. See Social groups . |
|
businessGroupings |
ORed contact groupings the company or center where the user belongs, needs to be assigned to. |
|
visitor |
The user is authenticated. |
|
admin, worker, student, hhrr |
True or false ORed constraints indicating that the user must be an administrator, a working person in a company, a student in a center or a responsible for human resources in a company or center. |
|
subElements |
Children elements of current visual element. Mainly used when a visual has subelements with constraints. |
|
Per module attributes address those features unique to the entities in this module. Per module attributes sum to the generic attributes.
Attribute |
Description |
Required |
phases |
Array of ORed phases, representing current project phase. |
|
roles |
Array of ORed participation roles: |
|
discriminators |
Array of ORed participation discriminators. |
|
directOwner |
True or false value indicating whether the user is directly assigned as owner. |
|
participates |
True or false value indicating whether the user is participating, despite the role or attribute assigned. |
|
branchAdmin, showAllAttachments, showParticipants, showAllIssues, |
True or false ORed constraints indicating the participation attribute with the same name. |
|
Elephant Web Actions is a specification used by several components to allow an easy way to execute actions based on URIs. The specification uses an action protocol to perform internal translations. Most of the actions could be executed using url:address
, the specification liberates the user to remember special addresses and adds some helping attributes, like captions and icons.
Protocol |
Exposed as |
Description |
NAVIGATE |
nav:value |
Navigates internally. The value is an internal URL. |
TAG |
tag:value |
Navigates internally. The value is a context WebTag. |
ACTION |
action:value |
Internal application action. Current action values are:
|
URL |
url:value |
Generic navigation. The value is an URL. |
|
mailto:value |
Mail to navigation URL. The value should be an email. |
TEL |
tel:value |
Phone call navigation URL. The value should be a phone number. |
WHATS |
whats:value |
Whatsapp send message URL. The value should be a phone number. |
TGRAM |
tgram:value |
Telegram send message URL. The value should be a user identifier. |
Elephant WebActions API is based on WebLinks and Icons classes. In combination, they make easy to create web actions based on protocols resulting in URLs.
WebLinks are created using the WebAction protocol, and they expose some useful methods when creating templates.
Method |
Description |
getType() |
Returns the WebAction type used to create the link. |
getCaption() |
Returns the link caption. |
getUrl() |
Returns the URL for this link. |
getIcon() |
Returns the icon value. |
getHelp() |
Returns an extended value for this link, to be used as help. Usually is the original URL, the phone number, the user identifier or other value depending on the protocol type. |
getIcons() |
Return the Icons class, explained below. |
isExternal() |
Returns true when the link moves to another site. |
isEmpty() |
Return true when the WebLink has no values. |
Icons is a utility class that helps adding icons to templates. Some methods can be concatenated, eliminating the necessity to make assignments.
Method |
Description |
Concatenated |
cssClass(value) |
Allows to add extra classes to the icon class. Mainly used for colors and size. |
|
cssStyle(value) |
Allows to add extra styles to the icon element. |
|
path(value) |
Adds a path for file based icons (ending with |
|
before(value) |
HTML based value that will be added before the icon if there is an icon value. |
|
after(value) |
HTML based value that will be added after the icon if there is an icon value. |
|
icon() |
Returns the HTML to create the icon, or an empty string if the is not an icon value. |
|
Wiki syntax is the default editing mode in Elephant modules. Abstracts from using HTML while helps creating rich content. Even those who master HTML will find it useful for several reasons:
Wiki | Result | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
---+Header 1 | Header 1 |
||||||||||||
---++Header 2 | Header 2 |
||||||||||||
---+++Header 3 | Header 3 |
||||||||||||
**bold** | bold | ||||||||||||
__italic__ | italic | ||||||||||||
==fixed== | fixed |
||||||||||||
* item 1 * item 1.1 * item 2 |
|
||||||||||||
1 item 1 1 item 1.1 1 item 2 |
|
||||||||||||
[img repository(/powered.jpg)] | ![]() |
||||||||||||
[[http://www.turro.org][turro.org]] | turro.org | ||||||||||||
[link(http://www.turro.org)] [img repository(/powered.png)] [/link] |
![]() |
||||||||||||
[block(center)] Some text that will be centered%BR%within the container. [/block] |
Some text that will be centered within the container. |
||||||||||||
||< Header 1 |< Header 2 |< Header 3 |-< Cell 1,1 |< Cell 2,1 |< Cell 3,1 |-< Cell 1,2 |< Cell 2,2 |< Cell 3,2 |-< Cell 1,3 |< Cell 2,3 |< Cell 3,3 -|| |
|
Creating a paragraph using Wiki is quite simple, just start typing. By default, wiki will put your text within
.
In order to add a new paragraph, live a blank line between text. This will tell the compiler to terminate the first
and create a new one. More than one blank line will be treated as one, creating only one paragraph.
If you don't live any space between paragraphs, a
will be used to divide the text, instead of
blocks.
Wiki |
HTML Result |
Lorem ipsum dolor sit... |
|
Lorem ipsum dolor sit... ...mollit anim id est laborum. |
|
Lorem ipsum dolor sit... ...mollit anim id est laborum. |
|
Headers are also easy. Three hyphens followed by the plus sign. One for each header number you want. Headers require to be at the beginning of the line.
Wiki |
Result |
HTML Result |
|
Header 1 |
|
|
Header 2 |
|
|
Header 3 |
|
You can enhance words by using different typefaces. Double asterisk for bold, double underline for oblique and double equal sign for fixed space. Typeface modifiers can appear wherever across the line, spanning among several words.
Wiki |
Result |
HTML Result |
|
bold |
|
|
italic |
|
|
|
|
Lists use *
or 1
depending on the list type, unordered or ordered. The syntax is simple, for unordered lists type an space, asterisk and space. Then the text. For indented lists, type an extra space before the asterisk. For ordered lists, substitute the asterisk for the number one.
Wiki |
Result |
|
|
|
|
Don't forget to use always the number 1
in ordered lists. Will always result in the correct number.
The HTML
is
in wiki syntax. Blocks are key elements when formatting.
Wiki |
Result |
|
Some text that will be centered |
|
Some text. |
Blocks do not directly accept characters, which has the effect of creating a paragraph surrounding the text inside. Also translates line feeds into
If you need a block that accepts characters use instead
.
Wiki |
Result |
|
Some text that will be centered within the container. |
|
Some text. |
Elephant syntaxparser includes a macro to easily include fontawesome icons.
Macro |
HTML |
Result |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Elephant syntaxparser includes a macro to easily include semantic-ui icons.
Macro |
HTML |
Result |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The image syntax is
. Size is optional and can be expressed in valid CSS units.
In some cases, when large images are used, you might prefer the thumb syntax.
. Elephant internally creates a thumb file a renders the image with a link to the original one. Thumbs are restricted to JPG images.
Wiki |
Result |
|
|
|
|
|
|
The number stands for thumb's maximum size.
|
Thumbs automatically create a fileName_thumb.ext
file from fileName.ext
file. When visitors click on the thumb image get a new window with the original image.
In order to create links with images see anchor.
In the examples above you might noticed the function
, this function returns to current repository location.
Wiki |
Result |
|
/docs/elephant/components/wiki_syntax/images/_internal/repository |
Wiki has several ways for constructing links. Mainly they all derivate from the initial form:
or
or
Wiki |
Result |
|
|
|
|
|
You can create links that point to external sources or will create new a tab on the browser and make it clear to the visitor with ext
or new
:
Wiki |
Result |
|
|
|
Modern responsive frameworks require class assignments to links. In that case, you can use links with markup. The URL reference must be the first markup parameter.
Wiki |
Result |
|
turro.org |
|
![]() |
|
turro.org |
The last example take advantage from Semantic-ui, used in this site.
A page topic is any place within your text that you want marked. Topic related elements are:
Wiki |
Result |
|
|
|
topic_name. Jumps to topic_name. |
|
my topic. Jumps to topic_name. |
|
Table syntax helps creating tables with rich content.
Wiki |
Result |
||< |
Starts a long table header. Left aligned. |
||> |
Starts a long table header. Right aligned. |
|-< |
Starts a long table row. Left aligned. |
|-> |
Starts a long table row. Right aligned. |
|< |
Starts a long table column. Left aligned. |
|> |
Starts a long table column. Right aligned. |
-|| |
Ends a long table |
In order to get those tags executed they need to be at line's start. To make text more readable let them take the whole line, giving as much spaces as needed. See an example:
creates:
Header 1 |
Header 2 |
Header 3 |
Cell 1,1 |
Cell 2,1 |
Cell 3,1 |
Cell 1,2 |
Cell 2,2 |
Cell 3,2 |
Cell 1,3 |
Cell 2,3 |
Cell 3,3 |
creates:
Name |
Description |
Value |
Elephant |
Portal framework running in any J2EE container. Features:
|
0 |
Maybe you wanted to show some part while hiding the rest. Tabs do that for you, just write:
This will show after loading the page. |
Using wiki it's posible writing in multiple columns. Each column would start using |
This text starts at the newly created column. You can start as many columns as you want. The same way, you can stop columns by introducing |
The span
element work much the way block
does. The main difference is that span
doesn't take the whole line, but can be related to a single among the paragraph.
Wiki |
Result |
This |
This words will be red over gray and bigger than the rest. |
The joker
can transform into any HTML tag. It takes the first parameter as the pretended element.
Wiki |
Result |
|
Some text that will be centered within the container. |
|
Some text. |
Suppose you want an image left aligned and located along text's flow. To achieve this using wiki syntax you create a float
. The syntax is:
[ float(left,center,right)] whatever content you want aligned[ /float]
This text shows how it flows along with a floating frame. This text shows how it flows along with a floating frame. This text shows how it flows along with a floating frame.
This text shows how it flows along with a floating frame. This text shows how it flows along with a floating frame. This text shows how it flows along with a floating frame. This text shows how it flows along with a floating frame. This text shows how it flows along with a floating frame. This text shows how it flows along with a floating frame. This text shows how it flows along with a floating frame.
A note is a margin annotation. Wiki syntaxis is:
[ note] Your text [/note]
Elephant allows emoticons in pages, articles and comments. In order to get the final emoticon image, emoticon symbols should have, at left, the beginning of a line or a space and, at right, the end of the line or a space.
Writing |
You get this Emoticon |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Elephant syntaxparser includes a macro to easily include fomantic-ui emojis.
Macro |
HTML |
Result |
|
|
|
|
|
|
|
|
|
Wiki allows to point links to locations within XMLPortal. This makes easy linking among portal contexts. Current location functions are:
|
This function returns full repository location plus file_location_within_repository. File's location must start with a slash. |
|
This function returns full application context plus location_within_portal. Location must start with a slash. Context deals with application's deployed context, thus, for web applications deployed at root context, result string will be empty, whereas for the rest will return to |
|
Current refers to the current portal context, thus linking to current function will end you up to the same context you already are. This function is intended to add parameters . |
In wiki, a header is a single line starting with
. The moment you press enter key and create a new line, you also stop the header. In order to split a header in multiple lines, use the
macro.
generates a new line, but continues the same line as for wiki processor.
[ block(center)]- --+++Centered header%BR%with multiple%BR%lines[ /block]
Lists are represented by one or more spaces followed by *
or 1
. As it happen with headers, list elements use a single line. You can split the line into multiple lines using the
macro.
* * *A list element* *% BR%With some description...* * *A second element* *% BR%With some more description attached...
By using macros, you can control elements visibility. We'll use two macros, {
and {
. The first one will check if current user id is blank, in which case no user is authenticated. The second macro will expand to none when user id is blank, and to blank otherwise.
[ block(display:{ @equals:{ @user:id}::none: })] Hello {@ user:name}![ /block]
The statement the equals macro aims to resolve is: if user id is blank, write none, otherwise write one space. Read more about the equals macro in anchor.
Most of wiki blocks, in the form of [element]
, accept passing CSS style attributes and element attributes. There are several differences, though. Styles are separated by comma instead of semicolon. They are introduced directly between parenthesis, not in a style attribute. Element attributes, for example class, are prefixed with &.
Let's see by example using the
element:
Wiki |
|
Result |
|
Wiki |
|
Result |
|
Wiki |
|
Result |
|
It is possible to write HTML directly. If you do so, the wiki processor will add unnecessary paragraphs and new lines. To avoid this behavior, stop wiki by writing
. You can start it whenever you want by writing
.
The recommended way to add the
and
directives, is using an empty line. Mainly when stopping the wiki processor.
To understand why an empty line, you need to know what happen behind scenes. The wiki processor maintains a stack with all the elements created. When stops, the processor ensures that all the elements still open are closed, in the correct order. If you stop the processor, for instance, inside a
, the processor will generate a
.
Writing colored Java code is very simple using $java
in an empty line. Following text will be considered Java code.
public void main(String[] args) { public final String hello = "Hello!"; public final int INITIAL_MODE = 23; // here will come your code }
$no_java
.Writing colored XML is very simple using $xml
in an empty line. Following text will be considered XML.
<task id="1"> <responsible id="19"/> <parent id="12"/> </task>
$no_xml
.class
attribute to wiki elementsWiki elements accept CSS style attributes directly within parenthesis. When adding (attribute:value)
wiki expands to style="attribute:value"
. Attributes starting with class
.
Wiki |
Expanded HTML |
Result |
|
|
class
and style
attributesIt is possible to use both, class
and style
attributes in wiki elements. Simply add style attributes separated by comas.
Wiki |
Expanded HTML |
Result |
|
|
Wiki |
Results in |
Description |
|
|
Accepting characters block. Will not create new lines or paragraphs. See Blocks . |
|
|
Non accepting characters block. Creates new lines and paragraphs when an empty line is given. See Blocks . |
|
|
Creates an in line element. See Spans . |
|
|
Creates an anchor. See Links . |
|
|
Creates an accepting characters element named as the first parameter. See Joker . |
joker
as a jokerThe joker
wiki element can emulate any HTML element. Let's see a joker as an HTML anchor.
Wiki |
Expanded HTML |
Result |
|
|
Docs |
html
or block
As you probably noticed, html
and block
wiki elements do much the same. They create an HTML div
with the difference of accepting or not characters. When accepting characters, the element does not create new lines or paragraphs.
When creating Semantic-UI grids, the grid
requires the use of html
. Columns may use html
or block
depending on their content. For example, if the column content is text, is preferable to use block
. If the content is mainly other elements, use html
instead.
The two blocks of construction would be:
For text columns
[ html(&class:ui two column grid)][ block(&class:column)] Some text.[ /block][ block(&class:column)] Some other text.[ /block][ /html]
For more element columns
[ html(&class:ui two column grid)][ html(&class:column)][ block(&class:ui segment)]Some segment.[ /block][ /html][ html(&class:column)][ block(&class:ui segment)]Some other segment.[ /block][ /html][ /html]
These templates use the wiki syntax to create Semantic-UI elements. By default, Elephant uses the template-semantic
root for web templates.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
[ html(&class:ui stackable middle aligned grid)][ html(&class:six wide column,padding-top:0px,margin:0px,line-height:0px)][ img repository( /abstractal1.jpg)][ /html][ html(&class:ten wide column)][ block(&class:ui basic center aligned text container segment,font-size:2.1em)]- --+This is an example of middle and center aligned text Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.[ /block][ /html][ /html]
|
This is an example of middle and center aligned textLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. |
[ column(width:35%)][ img repository(/abstractal1.jpg)][ column(width:65%,text-align:center,vertical-align:middle,font-size:2.1em)]- --+This is an example of middle and center aligned text Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.[ /column][ /no-format]
The data-id
is the YouTube video code. This code is visible in the URL as a parameter or part of the path, depending if is a share URL or you're watching in YouTube.
[ html(&class:ui embed normal,&data-source:youtube,&data-id:eCBUrsqVfgE)][ /html]
A new version of the wiki interpreter is coming. There are some major features that may change the way wiki is used, although the intention is to be backward compatible.
Check EWiki syntax for updates.
Error handling |
The interpreter will be able to inform about formatting errors and point them in the editor. |
The agnostic tag |
Tags can be created despite not being in the specification. This overpowers the old |
Mixed content |
The directives related to changing the interpreter mode are no longer required. HTML can be embedded within wiki causing no extra formatting, except for text containers. Java code and XML can be included as blocks or inline using enclosing |
Easy escaping characters |
Any character can be escaped using the back slash. |
Quoted or double-quoted tag parameters |
Complex strings can be quoted or double-quoted. No need to escape the double dot in URLs, simply quote it. |
Common non-style attributes |
The class attribute no longer needs to be prefixed with |
Tagged templates |
Tags with existing templates are rendered using the template. |
HTML beautified |
HTML output block indented. Missing tags corrected, even if not in the specification. |
Elephant Web Admin API is a new set of tools for creating pages and editing contents in a single place.
The main goal of the API is simplifying tasks and providing web pages with the same features other modules already have. For one, the EWiki.
Elephant Configuration Files contain information about what's internally happening when delivering content, reading databases or sending emails.
Configuration files are classified into different roots, and developed into specific branches, with meaningful names. This table explains the roots.
Root | Content |
---|---|
Configuration | Generic site configuration, search forms, DB connections, mail providers, OAuth providers, ... |
Support | Internal support data. |
Cascade Stylesheets | Overridable cascade stylesheets. |
Mail templates | Format templates for emails. |
Semantic templates | Semantic/Fomantic templates. |
Reports | Book-keeping reports. Requires Financials installed. |
Terms of Use | Terms of Use to be accepted, before a user can register. |
Welcome | Extra text added to the Welcome email. |
Wiki | Wiki templates and snippets. |
Files in this folder, can be .txt
, .html
and .wiki
. Each type will be interpreted as expected by the file's extension. The result will be a dialog with as many tabs as files encountered, being the name in the tab, the file's name.
Files in this folder, can be extra.txt
or extra.wiki
. Each type will be interpreted as expected by the file's extension. The result will be added to the welcome email.
The text file will integrate into the email with default size and font. The wiki file is expected to include wiki with email compatible syntax.
Elephant Configurator is a file based
configuration tool. The main intention is to encapsulate Elephant site properties. The tool uses a map of keys, values, contextual help and triggers. This is a list of keys, and their use within Elephant based modules, including the BrightSide libraries. This feature is only available to superuser
.
Key | Description | Default |
---|---|---|
Alliance.Client.Grants.ReadServers | Disables server-reading Project Grants when false |
true |
Appearance.Color.Primary | Primary color, should be set to stylesheet primary color, can be used in Wmacros with color, as primary |
|
Appearance.Color.Secondary | Secondary color, should be set to stylesheet secondary color, can be used in Wmacros with color, as secondary |
|
Appearance.Color.C1 | Free definition, can be used in Wmacros with color, as c1 |
|
Appearance.Color.C2 | Free definition, can be used in Wmacros with color, as c2 |
|
Appearance.Color.C3 | Free definition, can be used in Wmacros with color, as c3 |
|
Authentication.AllowCenters | Disables centers from authenticate when false |
false |
Authentication.AllowCompanies | Disables companies from authenticate when false |
false |
Authentication.AllowLiveLinks | Disables LiveLinks when false |
true |
Contact.Relation.Professional.Autovalidate | Professional relations will auto-validate when true |
false |
Contact.Relation.Student.Autovalidate | Student relations will auto-validate when true |
false |
Context.Mobile.Path | When defined, enables a different landing for mobile devices | |
Directory.Networking.Access.BasicRoles | Basic roles for accessing directories | @admin:is|@patron:on|@partner:on |
Directory.Networking.Access.PremiumRoles | Premium roles for accessing premium features | @admin:is|@patron:on|@partner:on |
Directory.Networking.Centers.ListedRoles | Center's roles in order to be listed | @center:is |
Directory.Networking.Companies.ListedRoles | Company's roles in order to be listed | @company:is |
Directory.Networking.Entities.ListedRoles | Company or Center roles in order to be listed | @company:is|@center:is |
Directory.Networking.ListedRoles | Contact's roles in order to be listed | @natural:is|@responsible:is |
Directory.Networking.Professionals.ListedRoles | Contact's roles in order to be listed | @worker:is|@responsible:is |
Dossier.View.DaysToBeNew | Maximum days passed since created or changed phase, to be considered new | 30 |
Profile.Documents.Maximum | Defines the maximum public documents per profile | 3 |
Profile.Suggest.Company | Suggests improving company or center description | false |
Profile.Suggest.Image | Suggests users to add the avatar to the profile | false |
Profile.Suggest.Professional.Documents | Suggests adding public documents to professional's profile | false |
Profile.Suggest.Relation | Strongly suggests users to add a relation | false |
Profile.Suggest.Skills | Suggests users to add skills | false |
Profile.Suggest.Student.Documents | Suggests adding public documents to student's profile | true |
Service.New.AllowRoles | Contact's roles to be able to publish | @partner:on |
Service.New.AllowSingle | Allows unrelated contacts to publish | false |
Service.Question.AllowRoles | Contact's roles to be able send questions | @partner:on|@patron:on |
Service.Recipients.Roles | Contact's roles that will receive notifications | @admin:is|@partner:on|@patron:on|@guest:on |
SignUp.Allow | Disables creating new accounts when false |
true |
SignUp.AllowRelations | Enables creating a relation for new accounts when true |
false |
SignUp.Default.SocialGroup | Sets de default social group for new accounts | guest |
SignUp.TellSomeone.Allow | Disables the 'Tell someone' feature when false |
true |
Site.Name | Sets de site name | |
Site.Domain | Forces the site to work with this domain. Important when using SSL. | |
Site.Description | Sets site description. | |
Site.Keywords | Sets site keywords. | |
Site.Fonts | Loads fonts from G-Fonts. | Lato |
Site.Icon | Icon absolute URL. | |
Site.Locales | Sets site locales, usually the same as in ROOT context. | |
Site.Files | Site internal files. | |
Site.Encoding | Site encoding. | ISO-8859-1 |
Site.TemplatesRoot | Templates root. | templates-semantic |
Site.UseSSL | Use SSL (requires certificate) | false |
Elephant Templates are fully responsive by default, using the CSS/JavaScript framework Fomantic-UI.
Since version 3, Elephant introduces two different types of responsiveness, browser-based as server-based.
Browser-based responsiveness is mainly provided by the standard templates + Fomantic-UI. The templates provide the necessary information to the browser, to adjust components for different screen sizes. The browser is then capable of restructure the content dinamically, without reloading the page.
To try the browser-based responsiveness, resize the browser window. You will see how components change, stacking columns, or changing the main menu type when the size resembles a cellphone device.
Server-based responsiveness is controlled by the server side. Allows to provide different content depending on user roles, dao-iterators or dynamic macros.
Server-based responsiveness ensures that site visitors only receive the content addressed to their role or current device. The main difference with browser-based responsiveness is that the browser only receives the appropiate source-content.
A server-driven context is an extension of the server-based responsiveness. Context server-driven property must be set by the Superuser.
Contexts with this property set to true
, can use conditionals inside the EWiki content. Examples would be:
@s{if mobile} ... /* this content will be sent only to mobile devices */ @s{/if}
@s{if rolemap['@partner:on']} ... /* this content will be sent only to partners */ @s{/if}
Elephant Security Locks were introduced in 2020, to mitigate malicious attempts to access the website. Currently, the API uses different layers to protect the resources, the Security Locks themselves, and the Take a Nap system.
The Security Locks, block IPs permanently for specific reasons. The system activate the Security Locks by default.
Further attempts without permission will block you permanently and the IP will be published into blacklists.
If you want to be removed from this blacklist, contact the web administrators.
Take a Nap is a more flexible system, with a bigger scope. Recognizes two status, at peace and not at peace. When not at peace, the system forces Elephant is taking a nap status. The status is not absolute, not wide range, and won't be detailed here for obvious reasons.
And you may wonder, why?
There are several reasons that trigger the nap state for you, but usually is because some malicious software is sending attacks to the website.
Do not worry, Elephant is up and running, while waiting for these attacks to stop.
Proporcionar feedback davant qualsevol problema que sorgeixi en l'ús de la plataforma ajuda a millorar-la, obtenint com a resultat una major satisfacció de tots els usuaris i més empenta alhora d'usar noves característiques.
Sent totes les novetats i millores gratuïtes, proporcionar feedback acaba tenint un efecte beneficiós a llarg termini.
L'aplicació obre un diàleg d'error quan es detecta una excepció en el sistema. Tota la informació s'envia per email al servei de suport de Turro.Org. El diàleg permet introduir informació relacionada amb que s'estava fent en aquell moment o qualsevol comentari que l'usuari vulgui compartir amb el desenvolupador.
La millor manera és enviar un email a suport@turro.org amb tota la informació i els comentaris necessaris.
També pot Registrar-se i, un cop validat, reportar una incidència a la seva pantalla d'usuari.
Etiquetes
Acceptacions
Adjunts
Activitat
Alta Contactes
Navegació Contactes
Tasques i Entitats programables
Creem una estructura transparent, on els participants entenen com contribuir, veuen les seves aportacions incloses en el patrimoni comú i gaudeixen d'un coneixement aplicable al mon real dels beneficiaris.
Donem al beneficiari els recursos patrimoni de la Fundació sense cap cost. Afegim més valor amb recursos externs, buscant integració, escalabilitat i estandardització. Creem un cercle de millora continua on la participació del beneficiari és clau.
Cerquem alternatives als recursos actuals, que puguin millorar el que ja hi ha i que siguin tendències globals. Per això afavorim la participació de contribuïdors en camps no coberts per la pròpia Fundació, per crear segons plans per cadascuna de les tecnologies usades.
Deixem clars quins són els objectius de la Fundació i quins són els límits. Afavorim l'aparició de valors afegits als recursos de la Fundació, no sent intrusius en la manera en que aquests recursos arriben al beneficiari.
Creiem en l'estalvi de recursos, en la sostenibilitat. La base d'adjunts, base documental del software de la Fundació, suporta l'ús compartit d'arxius. La documentació self-service del sistema de facturació, permet a socis, clients i proveïdors accedir als seus documents en línia.
Oferir a usuaris particulars i a tota mena d'entitats, ja siguin mercantils o sense ànim de lucre, activitats i recursos tecnològics que els ajudin a dur a terme la seva activitat.
Oferir formació a autònoms i PIMES per que compleixin les normes del sistema de qualitat i augmentin la seva competitivitat.
Oferir formació i recursos a autònoms i PIMES per crear Business Intelligence dins la seva estructura de dades.
Oferir gratuïtament el software patrimoni de la Fundació.
Els recursos oferits per la Fundació que comportin un cost de manteniment, s'oferiran carregant el cost administratiu.
Tot recurs que ofereixi la Fundació i que no sigui patrimoni propi, serà avaluat seguint aquests criteris:
Oferir una plataforma única, transparent i globalment accessible, on millorar, corregir i distribuir el software de la Fundació.
Una plataforma on també:
Per tots els que estiguin interessats en establir una relació amb la Fundació, abans haurien de saber:
Si tens un projecte relacionat amb noves tecnologies, sigui codi, documentació o servei pur i dur, pots donar serveis als beneficiaris de la Fundació, usant el nom de la mateixa. Per assolir aquest punt de relació, abans hauràs de:
Un cop la feina feta i tot aprovat, el teu servei serà part dels serveis oferits per la Fundació, sent les persones que designis, tu inclòs, els responsables de donar el servei.
Si ets distribuïdor pot interessar-te aquest l'enllaç Distribuïdors .
Es permet l'ús dels logos de la Fundació com a soci tecnològic a col·laboradors que segueixin els Valors de la Fundació i:
|
|
Son contribuïdors de la Fundació tots aquells desenvolupadors que hagin contribuït codi.
|
|
Es permet l'ús del logo de producte a aquelles persones que coneguin l'entorn de treball BrightSide amb prou profunditat com per a poder ensenyar a d'altres la millor manera de treure'n profit.
|
Els preus representen quotes mensuals i son purament orientatius. Es basen en costos actuals en hosting i còpies de seguretat. Cada distribuïdor hauria de carregar el seu valor afegit, tenint aquests preus com a orientació del cost de oferir el servei.
Nom |
Conté |
Preu recomenat |
BAAS |
|
75 € |
Nom |
Conté |
Preu recomenat |
BAAS |
|
200 € |
Noves instàncies |
|
40 € |
|
Ofereixes serveis als teus clients?Vols distribuir BrightSide amb la teva marca?BaaS és el nom del servei. Ets lliure d'utilitzar-lo amb la teva marca per donar el servei BrightSide en-línia. |
Cloud Hosting + JEE + BrightSide + Elephant Darreres actualitzacions |
Distribució a usuaris finals Formació i suport |
|
Ets professional de les TIC?Vols suport per les teves plataformes BrightSide?Turro.Org dona suport als distribuidors de BaaS. |
Repositori de treball Repositori central |
Implementació + Feedback Contribucions + Documentació |
|
Ets desenvolupador?Vols contribuir codi, crear nous mòduls?La Fundació TiC manté el codi i la documentació del projecte BrightSide. |
Les entitats BaaS, BrightSide distribuit com a marca blanca, viuen dins un ecosistema on les relacions son exclusivament de servei.
Una empresa que vulgui donar servei BaaS pot agafar directament de la Fundació TiC el que necessita pels seus clients. L'empresa es llavors un distribuïdor BaaS, poden donar servei a d'altres empreses que vulguin suport.
Si una empresa vol rebre support pel hosting BaaS, pot contractar el servei a distribuïdors de la plataforma.