server/src/main/java/org/iri_research/renkan/controller/RenkanRootController.java
changeset 127 906fed13c1e1
parent 109 b6b20e8c4a1a
child 134 f9716d086744
equal deleted inserted replaced
126:4479369ff9f1 127:906fed13c1e1
     1 package org.iri_research.renkan.controller;
     1 package org.iri_research.renkan.controller;
     2 
     2 
     3 import java.util.Enumeration;
       
     4 import java.util.HashMap;
     3 import java.util.HashMap;
     5 import java.util.Map;
     4 import java.util.Map;
     6 
     5 
     7 import javax.servlet.http.HttpServletRequest;
     6 import javax.servlet.http.HttpServletRequest;
     8 
     7 
    37 	@Autowired
    36 	@Autowired
    38 	private ProjectsRepository projectsRepository;
    37 	private ProjectsRepository projectsRepository;
    39 	
    38 	
    40 	@Autowired
    39 	@Autowired
    41 	private SpacesRepository spacesRepository;
    40 	private SpacesRepository spacesRepository;
    42 	
       
    43 	private String buildBaseUrl(HttpServletRequest request) {
       
    44 		StringBuffer baseUrl = request.getRequestURL();
       
    45 		boolean firstParam = true;
       
    46 		Enumeration<?> namesEnum = request.getParameterNames();
       
    47 		while(namesEnum.hasMoreElements()) {
       
    48 			String paramName = 
       
    49 					(String)namesEnum.nextElement();
       
    50 			
       
    51 			if("p.page".equals(paramName)) {
       
    52 				continue;
       
    53 			}
       
    54 			for(String val:request.getParameterValues(paramName)) {
       
    55 				if(firstParam) {
       
    56 					baseUrl.append('?');
       
    57 					firstParam = false;		
       
    58 				}
       
    59 				else {
       
    60 					baseUrl.append('&');
       
    61 				}
       
    62 				baseUrl.append(paramName).append('=').append(val);
       
    63 			}			
       
    64 		}
       
    65 		return baseUrl.toString();
       
    66 	}
       
    67 		
    41 		
    68 	@RequestMapping(value="", method = RequestMethod.GET, produces={"text/html;charset=UTF-8"})
    42 	@RequestMapping(value="", method = RequestMethod.GET, produces={"text/html;charset=UTF-8"})
    69 	public String renkanIndex(Model model, @PageableDefaults(sort={"created"}, sortDir=Direction.DESC, pageNumber=0, value=Constants.PAGINATION_SIZE) Pageable p, HttpServletRequest request) {
    43 	public String renkanIndex(Model model, @PageableDefaults(sort={"created"}, sortDir=Direction.DESC, pageNumber=0, value=Constants.PAGINATION_SIZE) Pageable p, HttpServletRequest request) {
    70 
    44 
    71 		Page<Space> page = this.spacesRepository.findAll(p);
    45 		Page<Space> page = this.spacesRepository.findAll(p);
    72 				
    46 				
    73 		model.addAttribute("page", page);
    47 		model.addAttribute("page", page);
    74 		model.addAttribute("baseUrl", this.buildBaseUrl(request));
    48 		model.addAttribute("baseUrl", Utils.buildBaseUrl(request));
    75 		model.addAttribute("projectsCount", this.projectsRepository.getCountBySpace());
    49 		model.addAttribute("projectsCount", this.projectsRepository.getCountBySpace());
    76 		
    50 		
    77 		return "renkanIndex";
    51 		return "renkanIndex";
    78 	}
    52 	}
    79 
    53 
    97 		model.put("space", space);
    71 		model.put("space", space);
    98 		
    72 		
    99 		Page<Project> page = this.projectsRepository.findBySpaceId(spaceId, p);
    73 		Page<Project> page = this.projectsRepository.findBySpaceId(spaceId, p);
   100 		
    74 		
   101 		model.put("page", page);
    75 		model.put("page", page);
   102 		model.put("baseUrl", this.buildBaseUrl(request));
    76 		model.put("baseUrl", Utils.buildBaseUrl(request));
   103 		
    77 		
   104 		return new ModelAndView("projectIndex", model);
    78 		return new ModelAndView("projectIndex", model);
   105 	}
    79 	}
   106 	
    80 	
   107 		
    81