Zum Hauptinhalt springen

Beispiel Helper

otris-Helper​

Durch das Verwenden der otris-Lib, ist es möglich die otris-Handlebar-Helpers zu verwenden, z. B. {{parseJSON jsonField}} oder {{autoText "userFullname"}} .

Portalskript​

context.enableModules();
const { TemplateCompiler } = require("ou.sp.TemplateCompiler");

const compiler = new TemplateCompiler("<h1>Hello {{autoText 'userFullname'}}</h1>");
context.returnValue = compile.compile();

Ausgabe​

<h1>Hello One Unity, Admin</h1>

Eigene Helper​

Optionale otrValueBox​

In diesem Beispiel wird die otrValueBox erweitert. Die otrValueBox wird angezeigt, auch wenn value leer ist. Somit ist nur das Label zu sehen. Durch diese Anpassung wird das ganze Element ausgeblendet, wenn value leer ist. Zusätzlich ist es möglich eine CSS Klasse, sowie eine zweite Zeile zu hinterlegen.

Template​

D:\EASY\Workflow-ext\reports\ou\cust\test.hbs

{{>optionalValueBox label=label.invoiceNumber value=invoiceNumber cssClass='text-center' }}

Portalskript​

context.enableModules();
const { TemplateCompiler } = require("ou.sp.TemplateCompiler");

const compiler = new TemplateCompiler("D:\\EASY\\Workflow-ext\\reports\\ou\\cust\\test.hbs");

compiler.handlebarCompiler.registerPartial('optionalValueBox', '\
{{#if value}}\
<div class="{{cssClass}}">\
{{#if label}}<label>{{label}}</label>{{/if}}\
<div class="otrValue">{{value}}\
{{#if subline}}<br>{{subline}}{{/if}}\
</div>\
</div>\
{{/if}}');

context.returnValue = compile.compile();

Ausgabe​

<div class="text-center">
<label>Rechnungsnummer</label>
<div class="otrValue">
12345
</div>
</div>

Zeilennummer bei #each​

Mit diesem Helper ist es möglich, die Zeilennummer auszugeben.

Template​

D:\EASY\Workflow-ext\reports\ou\cust\test.hbs

<ul>
{{#each items as |item|}}
<li>Zeile {{rowLine @index}}: {{item.id}}</li>
{{/each}}
</ul>

Portalskript​

context.enableModules();
const { TemplateCompiler } = require("ou.sp.TemplateCompiler");

const compiler = TemplateCompiler.fromFilePath(
"D:\\EASY\\Workflow-ext\\reports\\ou\\cust\\test.hbs", {
items: [{
id: "3001"
},
{
id: "3002"
},
{
id: "3003"
},
]
}
);

compiler.handlebarCompiler.registerHelper("rowLine", (value, options) => parseInt(value) + 1);
context.returnValue = compiler.compile();

Ausgabe​

<ul>
<li>Zeile 1: 3001</li>
<li>Zeile 2: 3002</li>
<li>Zeile 3: 3003</li>
</ul>