Ciao a tutti.
sto attualmente sviluppando un software Adobe, denominato cq5, una sorta di CMS avanzato del quale sto implementando nuove funzionalità.
Mi trovo però, ahimè, davanti ad uno scoglio..
Vi spiego: ho la mia bella pagina di report, che è un riassunto di tutti i componenti utilizzati nel sito gestito dall'utente X.
In questa pagina voglio creare un download del report, e fin qui tutto ok.
il fatto è che il salvataggio crea un file "nome random".part !!
rinominandolo in .cvs comunque funziona perfettamente, e fa quello che deve. però vorrei evitare di doverlo rinominare a mano
Come mai? Vi linko lo scriprtino JS utilizzato per fare ciò

codice:
<body>
<script src=”/libs/cq/ui/resources/cq-ui.js” type=”text/javascript”></script>
<h2><%= actualTitle %><a href=”javascript:exportCSV()”>Export</a></h2>
<%
if (description != null) {
%>

<%= description %></p><%
}
%>

il tutto è dentro una jsp.
Grazie dell'eventuale aiuto!! :ciauz: 

<cq:include path=”report” resourceType=”<%= actualResourceType %>”/>

<script>
function convertJSON2CSV(objArray,rep)
{
var array = typeof objArray != ‘object’ ? JSON.parse(objArray) : objArray;
var str = ”;
for (var i = 0; i < array.length; i++) {
var line = ”;
for (var index in array[i]) {
if(line != ”){
line += ‘,’
}
if(typeof array[i][index] != ‘object’ ){
line += checkApplyClientFilter(array[i][index],index);
}else{
line += array[i][index].display;
}

}
str += line + ‘\r\n’;
}
return str;
}

function checkApplyClientFilter(val,index){
var retStr = val ;
if(clientFilterList[index]){
retStr = clientFilterList[index](val);
}
return retStr;
}

function findClientFilter(rep){
for (var i = 0; i < rep.columns.length; i++) {
if(rep.columns[i].definitions.data && rep.columns[i].definitions.data.clientFilter){
clientFilterList[rep.columns[i].dataId] = rep.columns[i].definitions.data.clientFilter;
}
}
}

function downloadcsv(str){
if (navigator.appName != ‘Microsoft Internet Explorer’)
{
window.open(‘data:text/csv;charset=utf-8,’ + escape(str));
}
else
{
var popup = window.open(”,’csv’,”);
popup.document.body.innerHTML = ‘<pre>’ + str + ‘</pre>’;
}
}

clientFilterList = [];

function exportCSV(){
var rep = CQ.reports.Report.theInstance;
var repurl= rep.reportPath + “.” + rep.reportSelector + CQ.HTTP.EXTENSION_JSON;
CQ.HTTP.get(repurl, function(options, success, response) {
if (success) {
var repData = CQ.Util.formatData(CQ.Ext.util.JSON.decode(response.responseText));
var csv = “result,”+ repData.results  + ‘\r\n’;
findClientFilter(rep);
csv = csv + convertJSON2CSV(JSON.parse(CQ.Ext.util.JSON.encode(repData.hits)),rep);
downloadcsv(csv);
}
}, this);
}
</script>
<div id=”CQ”>
<div id=”reportView”>
</div>
</div>
</body>