mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-12 20:43:25 +00:00
69 lines
1.4 KiB
JavaScript
69 lines
1.4 KiB
JavaScript
;var p4 = p4 || {};
|
|
|
|
;(function(p4, $){
|
|
|
|
var templates = [];
|
|
|
|
var waitStack = [];
|
|
|
|
var LoadAndRender = function(TemplateName, datas, callback) {
|
|
|
|
|
|
if(waitStack[TemplateName] instanceof Array)
|
|
{
|
|
waitStack[TemplateName].push({ datas : datas, callback : callback });
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
waitStack[TemplateName] = [];
|
|
}
|
|
|
|
$.ajax({
|
|
type: "GET",
|
|
url: "/prod/MustacheLoader/",
|
|
dataType: 'html',
|
|
data: {
|
|
template: TemplateName
|
|
},
|
|
success: function(data){
|
|
templates[TemplateName] = data;
|
|
|
|
MustacheRender(TemplateName, datas, callback);
|
|
|
|
for(s in waitStack[TemplateName])
|
|
{
|
|
MustacheRender(TemplateName, waitStack[TemplateName][s].datas, waitStack[TemplateName][s].callback);
|
|
}
|
|
|
|
waitStack[TemplateName] = null;
|
|
|
|
return;
|
|
}
|
|
});
|
|
}
|
|
|
|
var MustacheRender = function(TemplateName, datas, callback) {
|
|
if(templates[TemplateName])
|
|
{
|
|
var rendered = Mustache.render(templates[TemplateName], datas);
|
|
|
|
if(typeof callback === 'function')
|
|
return callback(rendered);
|
|
else
|
|
return rendered;
|
|
}
|
|
else
|
|
return LoadAndRender(TemplateName, datas, callback);
|
|
};
|
|
|
|
var ClearCache = function() {
|
|
templates = new Array();
|
|
};
|
|
|
|
p4.Mustache = {
|
|
Render : MustacheRender,
|
|
ClearCache : ClearCache
|
|
};
|
|
|
|
}(p4, jQuery)); |