****I want to download selected files from incident instead of all could you please help with the script***

G Phani Krishna
Kilo Contributor

****I want to download selected files from incident instead of all could you please help with the script***

1 ACCEPTED SOLUTION

Hi Krishna,

So here is the updated UI page code which shows checkbox besides every file; you need to click the checkbox for which file to be downloaded

then click on the download attachments and it will download

UI Page Code:

<?xml version="1.0" encoding="utf-8" ?>
<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">
	<style>
		
		table {
		font-family: arial, sans-serif;
		border-collapse: collapse;
		}

		td, th {
		border: 1px solid #dddddd;
		text-align: left;
		padding: 8px;
		}

		tr:nth-child(even) {
		background-color: #dddddd;
		}
	</style>

	<g:evaluate jelly="true" object="true" var="jvar_jsonObj">
		var recordSysId = RP.getWindowProperties().get('sysparm_sysID');
		var arr = [];
		var gr = new GlideRecord('sys_attachment');
		gr.addQuery('table_sys_id', recordSysId);
		gr.query();
		while(gr.next()){
		var jsonObj = {};
		jsonObj.name = gr.getValue('file_name');
		jsonObj.path = '/sys_attachment.do?sys_id=' + gr.getValue('sys_id');
		arr.push(jsonObj);
		}
		arr;
	</g:evaluate>	

	<j:choose>
		<j:when test="${arr.length > 0}">
			<table cellspacing="0" cellpadding="0" width="100%">
				<th>File Name</th>
				<th>Download Yes/No</th>
				<j:forEach items="${jvar_jsonObj}" var="jvar_json">                             
					<tr><td>${jvar_json.name}</td><td><input class="checkbox" type="checkbox" name="type" id="${jvar_json.path}"></input></td></tr>
<!-- 					<a href="${jvar_json.path}">Click here to download this file</a> -->
				</j:forEach> 
			</table>
			<button type="submit" value="download_attachments" onclick="downloadFiles()">Download Specific Attachments</button>
		</j:when>
			<j:otherwise>
			<p>No attachments to display</p>
			</j:otherwise>
	</j:choose>
</j:jelly>

Client Script Code:

function downloadFiles(){

	var selected = [];
	$j("input:checkbox[name=type]:checked").each(function() { 
                selected.push($j(this).attr('id')); 
            }); 
	for(var i=0;i<selected.length;i++){
		
		var url = selected[i];
		window.open(url);
		
	}
}

Mark ✅ Correct if this solves your issue and also mark 👍 Helpful if you find my response worthy based on the impact.
Thanks
Ankur

View solution in original post

62 REPLIES 62

Hi Krishna,

So you selected 2 and it is downloading 1?

what browser you are using?

I tested in firefox and chrome and it is working fine

in chrome-  it auto downloads the 2 files

in firefox - it asks whether to download or save

Can you share the screenshot of how it is downloading?

Regards

Ankur

Please find below attachment.I was trying two download two files but only one file downloaded.

find_real_file.pngfind_real_file.png

Hi Krishna,

which browser you are using?

save the first and check whether 2nd comes or not

one more thing you can do is; update client script as below

window.open(url,'_blank');

Regards

Ankur

NO luck only one file is downloading and i modified client script as well as sugested and it's not working

Hi Krishna,

in which browser you are testing?

Is this a personal instance?

can you share your script here?

Is it downloading only 1 file even if multiple are selected?

can you check how many values are coming in array?

it should show 2 if you selected 2;

function downloadFiles(){

	var selected = [];
	$j("input:checkbox[name=type]:checked").each(function() { 
                selected.push($j(this).attr('id')); 
            }); 

alert(selected);

	for(var i=0;i<selected.length;i++){
		
		var url = selected[i];
		window.open(url);
		
	}
}

Regards

Ankur