Просмотр исходного кода

Arreglado subir ficheros, drag de ficheros, supervisión y botón si/no

Mario Martínez Hernández 4 месяцев назад
Родитель
Сommit
d64c1f4b86

+ 3 - 2
src/main/java/es/uv/saic/feign/ProceduresClient.java

@@ -1,5 +1,6 @@
 package es.uv.saic.feign;
 
+import java.io.File;
 import java.io.IOException;
 import java.math.BigInteger;
 import java.sql.Timestamp;
@@ -34,10 +35,10 @@ public interface ProceduresClient {
     @PostMapping("/procedure/files/{id}")
 	@ResponseBody 
 	public HashMap<String, Object> updateInstanciaTascaEvidencia(@PathVariable BigInteger id, @RequestParam Map<String,String> params, 
-        @RequestParam(required = true) List<MultipartFile> evidencias, @RequestParam String usuari) throws IllegalStateException, IOException;
+        @RequestBody(required = true) List<File> evidencias, @RequestParam String usuari) throws IllegalStateException, IOException;
     
     @PostMapping("/procedure/{id}")
-	public HashMap<String, Object> updateInstanciaTasca(@PathVariable BigInteger id, @RequestParam Map<String,String> params, 
+	public HashMap<String, Object> updateInstanciaTasca(@PathVariable BigInteger id, @RequestBody Map<String,String> params,
         @RequestParam(required = false) List<MultipartFile> evidencias, @RequestParam String usuari) throws IllegalStateException, IOException, InterruptedException;
 
     @PostMapping("/procedure/save/{id}")

+ 14 - 3
src/main/java/es/uv/saic/web/ProceduresController.java

@@ -1,9 +1,11 @@
 package es.uv.saic.web;
 
+import java.io.File;
 import java.io.IOException;
 import java.math.BigInteger;
 import java.sql.Timestamp;
 import java.time.Year;
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -132,8 +134,18 @@ public class ProceduresController {
 	public String updateInstanciaTascaEvidencia(Model model, Authentication auth, HttpSession session, @PathVariable BigInteger id, @RequestParam Map<String,String> params, 
 		@RequestParam(required = true) List<MultipartFile> evidencias) throws IllegalStateException, IOException {
 			
+		List<File> files;
+		
+		// Convert MultipartFiles (evidencias) to Files before sending to the ProceduresClient
+		files = new ArrayList<>();
+		for (MultipartFile multipartFile : evidencias) {
+			File convFile = new File(filePath + multipartFile.getOriginalFilename());
+			multipartFile.transferTo(convFile);
+			files.add(convFile);
+		}
+
 		HashMap<String, Object> response =
-                pc.updateInstanciaTascaEvidencia(id, params, evidencias, ((Usuari) auth.getPrincipal()).getUsuari());
+                pc.updateInstanciaTascaEvidencia(id, params, files, ((Usuari) auth.getPrincipal()).getUsuari());
         
 		if (response != null && response.get("ammount") != null) {
 			model.addAllAttributes(response);
@@ -157,7 +169,6 @@ public class ProceduresController {
 	@PostMapping("/procedure/{id}")
 	public String updateInstanciaTasca(Model model, Authentication auth, HttpSession session, @PathVariable BigInteger id, @RequestParam Map<String,String> params, 
 			@RequestParam(required = false) List<MultipartFile> evidencias) throws IllegalStateException, IOException, InterruptedException {
-		
 		HashMap<String, Object> response =
                 pc.updateInstanciaTasca(id, params, evidencias, ((Usuari) auth.getPrincipal()).getUsuari());
         
@@ -196,7 +207,7 @@ public class ProceduresController {
 			model.addAttribute("location", "procedures");
 		}
 		
-		return model.getAttribute("date").toString() == null ? "No se pudo obtener la fecha" : model.getAttribute("date").toString();
+		return response.get("date") == null ? "No se pudo obtener la fecha" : response.get("date").toString();
 	}
 
 	/*

+ 5 - 0
src/main/java/es/uv/saic/web/SupervisionController.java

@@ -78,6 +78,9 @@ public class SupervisionController {
         	return "401";
 		}
 
+		model.addAllAttributes(response);
+		session.setAttribute("searchParams", response.get("searchParams"));
+
 		return "supervisionProcedures";
 	}
 	
@@ -99,6 +102,8 @@ public class SupervisionController {
         	return "401";
 		}
 
+		model.addAllAttributes(response);
+
 		return "supervisionProcedures";
 	}
 }

+ 2 - 2
src/main/resources/templates/procedure.html

@@ -764,8 +764,8 @@
 		$("#filepicker"+taskId).fileinput({
 			uploadUrl: "/procedure/files/"+procId,
 			uploadExtraData: {taskid:taskId},
-		    uploadAsync: false,
-		    showUpload: false,
+		    uploadAsync: true,
+		    showUpload: true,
 		    required: true,
 		    browseOnZoneClick: true,
 		    language: locale,