59 lines
1.7 KiB
JavaScript
59 lines
1.7 KiB
JavaScript
|
//------------------------------------------------------------------------------
|
||
|
// Template-Manager
|
||
|
// - Laden und Bereitstellen von Template-Quellen
|
||
|
//------------------------------------------------------------------------------
|
||
|
// depends-on:
|
||
|
// jquery
|
||
|
// te
|
||
|
//------------------------------------------------------------------------------
|
||
|
|
||
|
'use strict'
|
||
|
|
||
|
class TemplateManager_cl {
|
||
|
constructor () {
|
||
|
this.templates_o = {};
|
||
|
this.compiled_o = {};
|
||
|
this.teCompiler_o = new TemplateCompiler_cl();
|
||
|
// Templates als Ressource anfordern und speichern
|
||
|
var path_s = "/templates/";
|
||
|
$.ajax({
|
||
|
dataType: "json",
|
||
|
url: path_s,
|
||
|
type: 'GET',
|
||
|
context: this
|
||
|
})
|
||
|
.done(function (data_opl) {
|
||
|
this.templates_o = data_opl['templates'];
|
||
|
})
|
||
|
.fail(function(jqXHR_opl, textStatus_spl) {
|
||
|
alert( "[tm] Fehler bei Anforderung: " + textStatus_spl );
|
||
|
});
|
||
|
}
|
||
|
get_px (name_spl) {
|
||
|
if (name_spl in this.templates_o) {
|
||
|
return this.templates_o[name_spl];
|
||
|
} else {
|
||
|
return null;
|
||
|
}
|
||
|
}
|
||
|
execute_px (name_spl, data_opl) {
|
||
|
var compiled_o = null;
|
||
|
if (name_spl in this.compiled_o) {
|
||
|
compiled_o = this.compiled_o[name_spl];
|
||
|
} else {
|
||
|
// Übersetzen und ausführen
|
||
|
if (name_spl in this.templates_o) {
|
||
|
this.teCompiler_o.reset_px();
|
||
|
compiled_o = this.teCompiler_o.compile_px(this.templates_o[name_spl]);
|
||
|
this.compiled_o[name_spl] = compiled_o;
|
||
|
}
|
||
|
}
|
||
|
if (compiled_o != null) {
|
||
|
return compiled_o(data_opl);
|
||
|
} else {
|
||
|
return null;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// EOF
|