All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.chandre.admintool.fileviewer.AdminToolFileviewerController Maven / Gradle / Ivy

There is a newer version: 1.1.7.3
Show newest version
package de.chandre.admintool.fileviewer;

import java.io.File;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;

import javax.servlet.http.HttpServletRequest;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;

import de.chandre.admintool.core.AdminTool;
import de.chandre.admintool.core.controller.AbstractAdminController;
import de.chandre.admintool.filebrowser.AdminToolFilebrowserLoader;
import de.chandre.admintool.filebrowser.GenericFilebrowserException;

/**
 * Fileviewer controller 
* requires admintool-core 1.0.1
* @author Andre * @since 1.0.1 */ @Controller @RequestMapping(AdminTool.ROOTCONTEXT + "/fileviewer") public class AdminToolFileviewerController extends AbstractAdminController { private static final Log LOGGER = LogFactory.getLog(AdminToolFileviewerController.class); @Autowired private AdminToolFileviewerService filebrowserService; @Autowired private AdminToolFileviewerConfig fileviewerConfig; @RequestMapping(value = {"/show",}, method={RequestMethod.GET, RequestMethod.POST}) public String loadFile(@RequestParam("file") String file, @RequestParam(name="encoding", required=false) String encoding, ModelMap model, HttpServletRequest request) throws GenericFilebrowserException, UnsupportedEncodingException { if(LOGGER.isTraceEnabled()) LOGGER.trace("serving file viewer page for file: " + file + ", encoding: " + encoding); String templatePath = addCommonContextVars(model, request, "filebrowser", AdminToolFilebrowserLoader.TARGET_FILEVIEWER); String decodedPath = URLDecoder.decode(file, "UTF-8"); File currentFile = new File(decodedPath); model.put("currentDir", currentFile.getParent()); filebrowserService.isFileAllowed(currentFile, false); model.put("currentFile", currentFile); model.put("selEncoding", StringUtils.isEmpty(encoding) ? fileviewerConfig.getDefaultEncoding() : encoding); return AdminTool.ROOTCONTEXT_NAME + AdminTool.SLASH + templatePath; } @RequestMapping(value = {"/update",}, method={RequestMethod.POST}) public String updateFile(@RequestParam("file") String file, @RequestParam(name="encoding", required=false) String encoding, @RequestParam("fileContent") String fileContent, ModelMap model, HttpServletRequest request) throws GenericFilebrowserException { if(LOGGER.isTraceEnabled()) LOGGER.trace("updating file: " + file + ", encoding: " + encoding); String templatePath = addCommonContextVars(model, request, "filebrowser", null); File currentFile = new File(file); model.put("currentDir", currentFile.getParent()); filebrowserService.writeStringToFile(currentFile, encoding, fileContent); return AdminTool.ROOTCONTEXT_NAME + AdminTool.SLASH + templatePath; } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy