Package mops.presentation
Class DirectoryController
- java.lang.Object
-
- mops.presentation.DirectoryController
-
@Controller @RequestMapping("/material1/dir") public class DirectoryController extends java.lang.Object
Controller Class for all requests on 'material1/dir'.
-
-
Constructor Summary
Constructors Constructor Description DirectoryController(DirectoryService directoryService, FileService fileService, SecurityService securityService, PermissionService permissionService, DeleteService deleteService, SearchService searchService, ZipService zipService)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.String
createSubFolder(org.springframework.web.servlet.mvc.support.RedirectAttributes redirectAttributes, org.keycloak.adapters.springsecurity.token.KeycloakAuthenticationToken token, long parentDirId, java.lang.String folderName)
Creates a new sub folder.java.lang.String
deleteFolder(org.springframework.web.servlet.mvc.support.RedirectAttributes redirectAttributes, org.keycloak.adapters.springsecurity.token.KeycloakAuthenticationToken token, long dirId)
Deletes a folder.java.lang.String
editFolder(org.springframework.web.servlet.mvc.support.RedirectAttributes redirectAttributes, org.keycloak.adapters.springsecurity.token.KeycloakAuthenticationToken token, long dirId, EditDirectoryForm editForm)
Edit the folder.java.lang.String
renameFolder(org.springframework.web.servlet.mvc.support.RedirectAttributes redirectAttributes, org.keycloak.adapters.springsecurity.token.KeycloakAuthenticationToken token, long dirId, java.util.Optional<java.lang.Long> originDirId, java.lang.String newName)
Renames a directory.java.lang.String
searchFolder(org.springframework.web.servlet.mvc.support.RedirectAttributes redirectAttributes, org.keycloak.adapters.springsecurity.token.KeycloakAuthenticationToken token, org.springframework.ui.Model model, long dirId, FileQueryForm queryForm)
Searches a folder for files.java.lang.String
showFolderContent(org.springframework.web.servlet.mvc.support.RedirectAttributes redirectAttributes, org.keycloak.adapters.springsecurity.token.KeycloakAuthenticationToken token, org.springframework.ui.Model model, long dirId)
Shows the content of a folder (files and sub folders).java.lang.String
uploadFile(org.springframework.web.servlet.mvc.support.RedirectAttributes redirectAttributes, org.keycloak.adapters.springsecurity.token.KeycloakAuthenticationToken token, long dirId, org.springframework.web.multipart.MultipartFile multipartFile)
Uploads a file.org.springframework.http.ResponseEntity<byte[]>
zipDirectory(org.keycloak.adapters.springsecurity.token.KeycloakAuthenticationToken token, long dirId)
Download a directory as zip.
-
-
-
Constructor Detail
-
DirectoryController
public DirectoryController(DirectoryService directoryService, FileService fileService, SecurityService securityService, PermissionService permissionService, DeleteService deleteService, SearchService searchService, ZipService zipService)
-
-
Method Detail
-
showFolderContent
@GetMapping("/{dirId}") public java.lang.String showFolderContent(org.springframework.web.servlet.mvc.support.RedirectAttributes redirectAttributes, org.keycloak.adapters.springsecurity.token.KeycloakAuthenticationToken token, org.springframework.ui.Model model, @PathVariable("dirId") long dirId)
Shows the content of a folder (files and sub folders).- Parameters:
redirectAttributes
- redirect attributestoken
- keycloak auth tokenmodel
- spring view modeldirId
- id of the folder- Returns:
- route to folder
-
uploadFile
@PostMapping("/{dirId}/upload") public java.lang.String uploadFile(org.springframework.web.servlet.mvc.support.RedirectAttributes redirectAttributes, org.keycloak.adapters.springsecurity.token.KeycloakAuthenticationToken token, @PathVariable("dirId") long dirId, @RequestParam("file") org.springframework.web.multipart.MultipartFile multipartFile)
Uploads a file.- Parameters:
redirectAttributes
- redirect attributestoken
- keycloak auth tokendirId
- id of the directory where it will be uploadedmultipartFile
- file object- Returns:
- route after completion
-
zipDirectory
@GetMapping("/{dirId}/zip") public org.springframework.http.ResponseEntity<byte[]> zipDirectory(org.keycloak.adapters.springsecurity.token.KeycloakAuthenticationToken token, @PathVariable("dirId") long dirId)
Download a directory as zip.- Parameters:
token
- keycloak auth tokendirId
- id of the directory- Returns:
- a zip as byte array
-
createSubFolder
@PostMapping("/{parentDirId}/create") public java.lang.String createSubFolder(org.springframework.web.servlet.mvc.support.RedirectAttributes redirectAttributes, org.keycloak.adapters.springsecurity.token.KeycloakAuthenticationToken token, @PathVariable("parentDirId") long parentDirId, @RequestParam("folderName") java.lang.String folderName)
Creates a new sub folder.- Parameters:
redirectAttributes
- redirect attributestoken
- keycloak auth tokenparentDirId
- id of the parent folderfolderName
- name of the new sub folder- Returns:
- object of the folder
-
editFolder
@PostMapping("/{dirId}/edit") public java.lang.String editFolder(org.springframework.web.servlet.mvc.support.RedirectAttributes redirectAttributes, org.keycloak.adapters.springsecurity.token.KeycloakAuthenticationToken token, @PathVariable("dirId") long dirId, @ModelAttribute("editDirectoryForm") EditDirectoryForm editForm)
Edit the folder.- Parameters:
redirectAttributes
- redirect attributestoken
- keycloak auth tokendirId
- id of the current foldereditForm
- new directory properties from the template- Returns:
- object of the folder
-
deleteFolder
@PostMapping("/{dirId}/delete") public java.lang.String deleteFolder(org.springframework.web.servlet.mvc.support.RedirectAttributes redirectAttributes, org.keycloak.adapters.springsecurity.token.KeycloakAuthenticationToken token, @PathVariable("dirId") long dirId)
Deletes a folder.- Parameters:
redirectAttributes
- redirect attributestoken
- user credentialsdirId
- id of the folder to be deleted- Returns:
- the id of the parent folder
-
searchFolder
@PostMapping("/{dirId}/search") public java.lang.String searchFolder(org.springframework.web.servlet.mvc.support.RedirectAttributes redirectAttributes, org.keycloak.adapters.springsecurity.token.KeycloakAuthenticationToken token, org.springframework.ui.Model model, @PathVariable("dirId") long dirId, @ModelAttribute("fileQueryForm") FileQueryForm queryForm)
Searches a folder for files.- Parameters:
redirectAttributes
- redirect attributestoken
- user credentialsmodel
- spring view modeldirId
- id of the folder to be searchedqueryForm
- wrapper object of the query form parameter- Returns:
- route to files view
-
renameFolder
@PostMapping("/{dirId}/rename") public java.lang.String renameFolder(org.springframework.web.servlet.mvc.support.RedirectAttributes redirectAttributes, org.keycloak.adapters.springsecurity.token.KeycloakAuthenticationToken token, @PathVariable("dirId") long dirId, @RequestParam(value="originDirId",required=false) java.util.Optional<java.lang.Long> originDirId, @RequestParam("newName") java.lang.String newName)
Renames a directory.- Parameters:
redirectAttributes
- redirection attributestoken
- keyloak auth tokenoriginDirId
- the (optional) directory where this request came fromdirId
- the directory idnewName
- the new name- Returns:
- back to the overview
-
-