Package de.sosd.mediaserver.controller.ui

Source Code of de.sosd.mediaserver.controller.ui.ManagerController

package de.sosd.mediaserver.controller.ui;

import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.view.RedirectView;

import de.sosd.mediaserver.bean.ui.FrontendFolderBean;
import de.sosd.mediaserver.bean.ui.FrontendSettingsBean;
import de.sosd.mediaserver.service.MediaserverConfiguration;
import de.sosd.mediaserver.service.ui.ManagerService;

/**
* Handles requests for the application home page.
*/
@Controller
@RequestMapping("/manager/*")
public class ManagerController {
 
  private static final Logger logger = LoggerFactory.getLogger(ManagerController.class);
 
 
  @Autowired
  private ManagerService backend;
 
  @Autowired
  private MediaserverConfiguration cfg;
 
  /**
   * Simply selects the home view to render by returning its name.
   */
  @RequestMapping(value = "", method = RequestMethod.GET)
  public RedirectView home() {
    logger.debug("home");
    return new RedirectView("/manager/show", true);
  }
 
  /**
   * Simply selects the home view to render by returning its name.
   */
  @RequestMapping(value = "show", method = RequestMethod.GET)
  public ModelAndView show(HttpServletRequest request) {
    logger.debug("manager");
    boolean resolved = false;
    try {
      InetAddress[] allByName = InetAddress.getAllByName(request.getServerName());
     
      for (InetAddress ia : allByName) {
        if (! ia.isLoopbackAddress()) {
          cfg.updateWebappConfiguration(request.getScheme(), ia.getHostName(), request.getServerPort(), request.getContextPath());
          resolved = true;
          break;
        }
      }
     
    } catch (UnknownHostException e) {
    }
    if (! resolved) {
      cfg.updateWebappConfiguration(request.getScheme(), request.getServerName(), request.getServerPort(), request.getContextPath());
    }
    return buildManagerModelAndView();
  }
 
  private ModelAndView buildManagerModelAndView() {
    final ModelAndView modelAndView = new ModelAndView("manager");
   
    final FrontendSettingsBean settings = this.backend.loadSettings();
    final List<FrontendFolderBean> folders = this.backend.loadScanFolders();
    modelAndView.addObject("server", settings);
    modelAndView.addObject("folderList", folders);
    return modelAndView;
  }
 
  @RequestMapping(value = "settings/update", method = RequestMethod.POST)
  public RedirectView updateServerSettings(
      @RequestParam("name") final String name,
      @RequestParam("mencoder") final String mencoder,
      @RequestParam("mplayer") final String mplayer,
      @RequestParam("networkInterface") final String networkInterface,
      @RequestParam("previews") final String previews
  ) {

   
    logger.debug("updateServerSettings");
   
    this.backend.updateServerSettings(name,networkInterface, previews, mplayer, mencoder);
   
    return new RedirectView("/manager/show", true);
  }
 
  @RequestMapping(value = "scanfolder/remove")
  public RedirectView removeScanfolder(@RequestParam("folder") final String folderId) {
    logger.debug("removeScanfolder");   
    this.backend.removeFolderById(folderId);
   
    return new RedirectView("/manager/show", true);
  }
 
  @RequestMapping(value = "scanfolder/add")
  public RedirectView addScanfolder(@RequestParam("folder") final String folderPath) {
    logger.debug("addScanfolder");
   
    this.backend.addScanFolder(folderPath);

    return new RedirectView("/manager/show", true);
 

  @RequestMapping(value = "scanfolder/update")
  public RedirectView updateScanfolder(@RequestParam("folder") final String folderId, @RequestParam("scan_interval") final String scanInterval) {
    logger.debug("updateScanfolder");
   
    try {
     
      if ((scanInterval != null) && (scanInterval.length() > 0)) {
        final int parseInt = Integer.parseInt(scanInterval);
       
        if ((parseInt > 0) && (parseInt < (60 * 24 * 7 * 365))) {
          this.backend.updateScanInterval(folderId, parseInt);
        }
      }
     
    } catch (final NumberFormatException nfe) {
      // TODO say that something went wrong
    }
   
 

    return new RedirectView("/manager/show", true);
  }   
}
TOP

Related Classes of de.sosd.mediaserver.controller.ui.ManagerController

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.