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>