Tibula Dom

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <title>[intranet]</title>
  <meta http-equiv="Pragma" content="no-cache" />
  <meta http-equiv="Expires" content="-1" />
  <meta http-equiv="Content-Type" content="text/html" charset="utf-8" />
  <meta name="Generator" content="tibula.net" />
  <meta name="Copyright" content="eja.it" />
  <meta name="Author" content="ubaldo porcheddu" />
  <meta name="Robots" content="noindex, nofollow" />
  <script type="text/javascript" src="http://www.tibula.net/extra/tibula.js"></script>
</head>

<body>
  <div id="ejaPage">
    <form name="ejaForm" action="/tibula.php?ejaLanguage=en" method="post">
      <div id="ejaMenu">
        <div id="ejaMenuPath">
          <a href="?ejaSession=&amp;ejaModuleId=1&amp;ejaModuleChange=352">Home</a>
        </div>

        <div id="ejaMenuLinks"></div>
      </div>

      <div id="ejaModule" class="ejaModuleEjaLogin">
        <fieldset class="ejaModuleText">
          <legend>username</legend><input type="text" name="ejaValues[username]" value="" />
        </fieldset>

        <fieldset class="ejaModulePassword">
          <legend>password</legend><input type="password" name="ejaValues[password]" value="" />
        </fieldset>
      </div>

      <div id="ejaInfo"></div>

      <div id="ejaCommands">
        <input id="ejaCommandLogin" type="submit" name="ejaAction[login]" value="login" />
      </div><input type="hidden" name="ejaModuleId" value="1" />
    </form>
  </div>
</body>
</html>
 

A tipycal page contains an ejaPage div main container with a <form> named "ejaForm".

Inside the "form" there will be 4 more divs: ejaMenu, ejaModule, ejaInfo and ejaCommands.

ejaMenu will contain 3 more divs:

ejaModule will be populated according to the action type:

Search and Edit will contain a fieldset (with a legend) for each input|select|textarea form. Each form input will be named as ejaValues[nameOfField] .

Search result list will contain a table (with id="ejaTableList") with a th row containing the name of the columns and any th row containing the value of each th field. The first column will be a select box to allow the selection of the full row values.

ejaInfo will contain any info, alert, debug provided by Tibula during it execution process.

ejaCommands will contain any available command as an input of type submit with the ejaAction[nameOfAction] syntax.

---
A standard Tibula xhtml 1.0 Transitional page is structured as follows:

<html>

 <head>

  <title>[nameOfTheModuleTranslated]</title>

  <script type="text/javascript"
src="http://media.tibula.net/tibula.js"></script>
 </head>

 <body>
  <div id="ejaPage">

   <form name="ejaForm" action="index.php?ejaLanguage=en" method="post">

   <div id="ejaMenu">
    <div id="ejaMenuPath">

     <a href="?ejaSession=xxxxxxxxxxx">one</a>
     <a href="?ejaSession=xxxxxxxxxxx">two</a>

     <a href="?ejaSession=xxxxxxxxxxx">three</a>

    <div>
    <div id="ejaMenuLinks"></div><!-- populated with <a href..> as
#ejaMenuPath, only available with .ejaActionSearch -->

    <div id="ejaModuleLinks"></div><!-- populated with <a href..> as
#ejaMenuPath, only available with .ejaActionEdit on special modules
-->

   </div>

   <div id="ejaModule" class="ejaModuleX01 ejaActionX02"></div><!-- X01
will be the internal tibula.ejaModules.name, X02 can be: Search, List
or Edit -->

   <div id="ejaInfo"></div><!-- can contain some alert or info text from
the framework -->

   <div id="ejaCommands">
    <input id="ejaCommandX03" type="submit" name="ejaAction[X04]"

value="X05" /><!-- X03 and X04 will be the internal
tibula.ejaCommands.name, X05 the same but translated -->

   </div>

  </div><!-- ejaPage close -->

 </body>

</html>

It is possible to retrieve only parts of the page adding the attribute
ejaXmlBlocks to the url with following constants:
menu, module, info, command
for instance http://demo.tibula.net/tibula.php?ejaXmlBlocks=module,command

would retrieve only the ejaModule and ejaCommands div.

.ejaActionSearch and .ejaActionEdit will populate #ejaModule as follows:

<div id="ejaModule" class="ejaModuleInternalName ejaActionSearch">
 <fieldset class="ejaModuleX07"><!-- X07 will be the internal
tibula.ejaFields.type -->

  <legend>nameOfTheFieldTranslated</legend><input type="text"

name="ejaValues[nameOfTheField]" value=""/><!-- one or more legends,
also nested and maybe with more than one :input tag -->
</div>


.ejaActionList will populate #ejaModule like this:

<table id="ejaTableList" border="1">

 <tr>
  <th class="mini"><input type="checkbox" name="ejaIdCheckAll" /></th>

  <th>one</th><th class="mini"><select
name="ejaSearchOrder[one]"><option></option><option
value="ASC">AZ</option><option value="DESC">ZA</option></select></th>

  <th>two</th><th class="mini"><select
name="ejaSearchOrder[two]"><option></option><option
value="ASC">AZ</option><option value="DESC">ZA</option></select></th>

 </tr>
 <tr>
  <td><input type="checkbox" name="ejaId[]" value="123" /></td>

  <td colspan="2">oneValue</td>
  <td colspan="2">twoValue</td>
 </tr>
 <tr><th colspan="5">1-15 / 259</th></tr>

</table>


#ejaCommands (tibula.ejaCommands.name) input ids can be:

#ejaCommandLogin
#ejaCommandLogout
#ejaCommandNew
#ejaCommandEdit
#ejaCommandPrevious
#ejaCommandNext
#ejaCommandSearch
#ejaCommandSave
#ejaCommandCopy
#ejaCommandList
#ejaCommandDelete
#ejaCommandHelp
#ejaCommandRun
#ejaCommandLink
#ejaCommandUnlink
#ejaCommandFileDownload
#ejaCommandFileUpload
#ejaCommandFileDelete
#ejaCommandFileMove
#ejaCommandFileNew
#ejaCommandCsvExport
#ejaCommandView
#ejaCommandXmlExport
#ejaCommandUpdate
#ejaCommandRunList
#ejaCommandRunSearch
#ejaCommandRunEdit
#ejaCommandFileZip
#ejaCommandFileUnzip
#ejaCommandOdfExport


#ejaModule fieldset (tibula.ejaFields.type) can have the following class:

.ejaModuleBoolean
.ejaModuleDate
.ejaModuleDateRange
.ejaModuleDatetime
.ejaModuleDatetimeRange
.ejaModuleDecimal
.ejaModuleFile
.ejaModuleHidden
.ejaModuleHtmlArea
.ejaModuleInteger
.ejaModuleIntegerRange
.ejaModuleLabel
.ejaModulePassword
.ejaModuleSelect
.ejaModuleSqlHidden
.ejaModuleSqlMatrix
.ejaModuleSqlTable
.ejaModuleSqlValue
.ejaModuleText
.ejaModuleTextArea
.ejaModuleTime
.ejaModuleTimeRange
.ejaModuleView