Changeset 6208
- Timestamp:
- Apr 12, 2021, 4:08:17 PM (2 years ago)
- Location:
- extensions/net.sf.basedb.reggie/trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
extensions/net.sf.basedb.reggie/trunk/resources/batch/import-external-specimen.js
r6206 r6208 75 75 html += '<td>'+(Strings.encodeTags(item.itemType) || '-')+'</td>'; 76 76 html += '<td class="dottedleft">'+(Strings.encodeTags(item.name) || '-')+'</td>'; 77 html += '<td class="dottedleft">'+(jsonFile ? Strings.encodeTags(jsonFile.name) : '-')+'</td>'; 77 html += '<td class="dottedleft">'; 78 if (jsonFile) 79 { 80 html += Strings.encodeTags(jsonFile.name); 81 html += '<span class="link download-file" data-file-no="'+itemNo+'" title="Download and view this file"><img src="../images/download.png"></span>'; 82 } 83 html += '</td>'; 78 84 html += '<td class="fastq">'; 79 85 if (jsonFile && jsonFile.fastq) … … 131 137 Doc.element('itemTable').innerHTML = html; 132 138 139 var downloadable = document.getElementsByClassName('download-file'); 140 for (var fileNo = 0; fileNo < downloadable.length; fileNo++) 141 { 142 Events.addEventHandler(downloadable[fileNo], 'click', specimen.downloadJsonFile); 143 } 144 145 133 146 Doc.show('step-1'); 134 147 Doc.show('gonext'); 148 } 149 150 specimen.downloadJsonFile = function(event) 151 { 152 var itemNo = Data.get(event.currentTarget, 'file-no'); 153 var file = importItems[itemNo].jsonFile; 154 155 var url = '../FutureSpecimen.servlet?ID='+App.getSessionId(); 156 url += '&cmd=DownloadJsonFile'; 157 url += '&file='+encodeURIComponent(file.name); 158 159 Dialogs.openPopup(url, file.name, 800, 800); 135 160 } 136 161 -
extensions/net.sf.basedb.reggie/trunk/src/net/sf/basedb/reggie/servlet/FutureSpecimenServlet.java
r6201 r6208 25 25 import net.sf.basedb.opengrid.RemoteSession; 26 26 import net.sf.basedb.opengrid.config.ConnectionInfo; 27 import net.sf.basedb.opengrid.filetransfer.ServletResponseDownloadTarget; 27 28 import net.sf.basedb.opengrid.service.OpenGridService; 28 29 import net.sf.basedb.reggie.JsonUtil; … … 110 111 json.put("importItems", jsonImportItems); 111 112 } 113 else if ("DownloadJsonFile".equals(cmd)) 114 { 115 json = null; // No regular JSON output 116 dc = sc.newDbControl(); 117 118 FileServer server = Fileserver.IMPORT_ARCHIVE.load(dc); 119 FileServer fs = Fileserver.IMPORT_ARCHIVE.load(dc); 120 String rootPath = ScriptUtil.checkValidPath(fs.getRootPath(), true, false); 121 String file = ScriptUtil.checkValidFilename(req.getParameter("file")); 122 123 RemoteSession session = null; 124 try 125 { 126 RemoteHost host = new RemoteHost(new ConnectionInfo(fs)); 127 session = host.connect(5); 128 129 //resp.setHeader("Content-Disposition", "attachment; filename=" + fileName); 130 resp.setContentType("application/json"); 131 132 session.downloadFile(rootPath+"/"+file, new ServletResponseDownloadTarget(resp, file)); 133 } 134 finally 135 { 136 OpenGrid.close(session); 137 } 138 139 140 } 112 141 } 113 142 catch (Throwable t) 114 143 { 115 144 t.printStackTrace(); 116 json.clear(); 117 json.put("status", "error"); 118 json.put("message", t.getMessage()); 119 json.put("stacktrace", ThrowableUtil.stackTraceToString(t)); 145 if (json != null) 146 { 147 json.clear(); 148 json.put("status", "error"); 149 json.put("message", t.getMessage()); 150 json.put("stacktrace", ThrowableUtil.stackTraceToString(t)); 151 } 152 else 153 { 154 resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, t.getMessage()); 155 } 120 156 } 121 157 finally 122 158 { 123 159 if (dc != null) dc.close(); 124 json.writeJSONString(resp.getWriter());160 if (json != null) json.writeJSONString(resp.getWriter()); 125 161 } 126 162
Note: See TracChangeset
for help on using the changeset viewer.