|
@@ -203,12 +203,58 @@ class Dashboard {
|
|
|
this.renderPositions();
|
|
|
}
|
|
|
|
|
|
+ loadJs(files,iteration,callback){
|
|
|
+ var object = this;
|
|
|
+ var js = files[iteration];
|
|
|
+
|
|
|
+ if($('script[src="'+js+'"]').length!=0 || js==null) {
|
|
|
+ if(files.length > iteration) object.loadJs(files,iteration+1,callback);
|
|
|
+ if((files.length-1) == iteration) if(callback) callback();
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ //on supprime tout autre js ayant la même base mais des versions plus vielles
|
|
|
+ var baseJs = js.replace(/\?v=.*/gm,'');
|
|
|
+ $('script[src^="'+baseJs+'?"]').remove();
|
|
|
+
|
|
|
+ var jsFile = document.createElement('script');
|
|
|
+ jsFile.setAttribute("type","text/javascript");
|
|
|
+ document.getElementsByTagName("body")[0].appendChild(jsFile);
|
|
|
+ jsFile.onload = function() {
|
|
|
+ if(files.length > iteration) object.loadJs(files,iteration+1,callback);
|
|
|
+ if((files.length-1) == iteration) if(callback) callback();
|
|
|
+ };
|
|
|
+ jsFile.src = js;
|
|
|
+ }
|
|
|
+
|
|
|
//Ajout d'un widget en fonction de paramètre
|
|
|
- addWidget(widgetOptions){
|
|
|
+ addWidget(widgetOptions,callback){
|
|
|
var object = this;
|
|
|
//Ajout du widget au tableau de widgets interne
|
|
|
object.widgets[widgetOptions.id] = widgetOptions;
|
|
|
|
|
|
+ //Ajout de css tiers si définits
|
|
|
+ if(widgetOptions.cssUrl && widgetOptions.cssUrl.length>0){
|
|
|
+ for (var k in widgetOptions.cssUrl) {
|
|
|
+ var url = widgetOptions.cssUrl[k];
|
|
|
+ if($('link[href="'+url+'"]').length!=0) continue;
|
|
|
+ //on supprime tout autre css ayant la même base mais des versions plus vielles
|
|
|
+ var baseCss = url.replace(/\?v=.*/gm,'');
|
|
|
+ $('link[href^="'+baseCss+'"]').remove();
|
|
|
+ var cssFile = document.createElement('link');
|
|
|
+ cssFile.setAttribute("rel","stylesheet");
|
|
|
+ cssFile.setAttribute("type","text/css");
|
|
|
+ cssFile.setAttribute("href", url);
|
|
|
+ document.getElementsByTagName("body")[0].appendChild(cssFile);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //Ajout de js tiers si définits
|
|
|
+ if(widgetOptions.jsUrl && widgetOptions.jsUrl.length>0){
|
|
|
+ object.loadJs(widgetOptions.jsUrl,0,function(){
|
|
|
+ if(callback) callback(data);
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
//Render de la template pour les propriétés du widget courant
|
|
|
object.renderContent(widgetOptions.id);
|
|
|
|
|
@@ -292,7 +338,6 @@ class Dashboard {
|
|
|
renderContent(id) {
|
|
|
|
|
|
var widget = this.widgets[id];
|
|
|
- console.log(id,widget);
|
|
|
var widgetElement = widget.element!=null ? widget.element : $(Mustache.render(this.widgetTemplate, widget));
|
|
|
|
|
|
if(widget.label !== null) widgetElement.find('.widget-header-title').html(widget.label);
|