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>