package edu.asu.spring.quadriga.web.workspace; import java.util.Locale; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.MessageSource; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.servlet.mvc.support.RedirectAttributes; import edu.asu.spring.quadriga.domain.enums.ETextAccessibility; import edu.asu.spring.quadriga.domain.workspace.ITextFile; import edu.asu.spring.quadriga.exceptions.FileStorageException; import edu.asu.spring.quadriga.exceptions.QuadrigaStorageException; import edu.asu.spring.quadriga.service.textfile.ITextFileManager; @Controller public class UpdateTextAccessibilityController { @Autowired private ITextFileManager tfManager; @Autowired private MessageSource messageSource; @RequestMapping(value = "/auth/workbench/workspace/{workspaceId}/{textId}/{accessStatus}", method = RequestMethod.POST) public String updateTextFileAccessibility(Model model, @PathVariable("textId") String textId, @PathVariable("workspaceId") String workspaceId, @PathVariable("accessStatus") String accessibility, RedirectAttributes redirectAttributes, Locale locale) throws FileStorageException { ITextFile textFile = null; try { textFile = tfManager.getTextFile(textId); } catch (QuadrigaStorageException ex) { redirectAttributes.addFlashAttribute("show_error_alert", true); redirectAttributes.addFlashAttribute("error_alert_msg", messageSource.getMessage("workspace.text.retrieve.failure", new Object[] {}, locale)); } if (accessibility == null || accessibility.isEmpty()) { redirectAttributes.addFlashAttribute("show_error_alert", true); redirectAttributes.addFlashAttribute("error_alert_msg", messageSource.getMessage("workspace.text.accessibility.failure", new Object[] {}, locale)); return "redirect:/auth/workbench/workspace/" + workspaceId; } textFile.setAccessibility(ETextAccessibility.valueOf(accessibility.toUpperCase())); tfManager.storeTextFile(textFile); return "redirect:/auth/workbench/workspace/" + workspaceId; } }