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.