Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hi everyone,
I've managed to create an extension in QlikSense, who consumes a REST web service.
In Desktop mode, I see the button and extension works fine but when i'm importing this extension on server I get the message "Error : the visualization fails to render ".
Script:
define(["jquery", "text!./com-qliktech-example.css","qlik"], function($, cssContent, qlik ) {
$("<style>").html(cssContent).appendTo("head");
function createBtn(cmd, text) {
return '<button class="lui-button" style="font-size:13px;" data-cmd="' + cmd + '">' + text + '</button>';
}
function consumeWS(link) {
$.ajax({
type: 'GET',
url: link,
dataType: "json",
//processData: false,
async: true,
success: function(resp) {
//alert("success: " + resp);
},
error: function (xhr, ajaxOptions, thrownError) {
//alert("error status: " + xhr.status);
//alert("error status text: " + xhr.statusText);
//alert("error response text: " + xhr.responseText);
},
})
return link;
}
return {
initialProperties : {
qBookmarkListDef : {
qType : "bookmark",
qData : {
title : "/title",
description : "/description"
}
},
qFieldListDef : {
}
},
definition : {
type : "items",
component : "accordion",
items : {
buttons : {
type : "items",
label : "Button Menu",
items : {
clearButton : {
ref : "buttons.clear",
label : "ClearAll",
type : "boolean",
defaultValue : true
}
}
},
field : {
type : "items",
label : "Field and field buttons",
items : {
showfield : {
ref : "field.show",
type : "boolean",
label : "Show",
defaultValue : false
},
ws : {
type: "string",
label: "Valoare WS",
ref : 'field.ws',
expression: "always",
defaultValue: ""
},
list : {
ref : "field.list",
component : "switch",
type : "boolean",
label : "Field",
defaultValue : true,
options : [{
value : true,
label : "List Fields"
}, {
value : false,
label : "Fixed field"
}],
show : function(data) {
return data.field && data.field.show;
}
},
fixed : {
ref : "field.fixed",
label : "Use field",
type : "string",
defaultValue : "",
show : function(data) {
return data.field && data.field.show && !data.field.list;
}
},
clearButton : {
ref : "field.clear",
label : "Clear",
type : "boolean",
defaultValue : false,
show : function(data) {
return data.field && data.field.show;
}
}
}
},
settings : {
uses : "settings"
}
}
},
support: {
snapshot: false,
export: true,
exportData: false
},
paint : function($element, layout) {
//create the app button group
var html = '', app = qlik.currApp(this);
html += '<div class="lui-buttongroup">';
if(layout.buttons.clear) {
html += createBtn("clearAll", "Salveaza Inregistrarile");
}
html += '</div><br/>';
if(layout.field && layout.field.show) {
html += '<div class="lui-buttongroup">';
//create the field btn group
if(layout.field.list && layout.qFieldList) {
html += '<select class="lui-select fields">';
layout.qFieldList.qItems.forEach( function( value) {
html += "<option value='" + value.qName + "'>" + value.qName + "</option>";
});
html += '</select>';
} else {
//display the fixed field
html += '<div class="qv-object-title">' + layout.field.fixed + '</div>';
}
if(layout.field.clear) {
html += createBtn("clear", "Clear");
}
html += '</div>';
}
$element.html(html);
$element.find('button').on('qv-activate', function() {
switch(this.dataset.cmd) {
case 'clearAll':
try {
consumeWS(layout.field.ws);
}
catch(err) {
//alert(err.message);
//alert(err.stack);
//alert(response);
}
break;
}
});
return qlik.Promise.resolve();
}
};
});
I'm stucked here, any advice is welcome.
Paul S.
The error i see in log : require.js:44 TypeError: Cannot read property 'resolve' of undefined.