/** * myJerry | Evenstar * Copyright (C) 2010 myJerry Development Team * http://www.myjerry.org * * The file is licensed under the the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * * See the License for the specific language governing permissions and * limitations under the License. * */ package org.myjerry.evenstar.web.settings; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.myjerry.evenstar.constants.BlogPreferenceConstants; import org.myjerry.evenstar.constants.DateHeaderConstants; import org.myjerry.evenstar.service.BlogPreferenceService; import org.myjerry.util.ServerUtils; import org.myjerry.util.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.multiaction.MultiActionController; public class FormatSettingsController extends MultiActionController { @Autowired private BlogPreferenceService blogPreferenceService; public ModelAndView view(HttpServletRequest request, HttpServletResponse response) throws Exception { ModelAndView mav = new ModelAndView(); Long blogID = StringUtils.getLong(request.getParameter("blogID")); mav.addObject("blogID", blogID); String numPosts = this.blogPreferenceService.getPreference(blogID, BlogPreferenceConstants.showNumPosts); String dateHeaderFormat = this.blogPreferenceService.getPreference(blogID, BlogPreferenceConstants.postDateHeaderFormat); String postTimeStampFormat = this.blogPreferenceService.getPreference(blogID, BlogPreferenceConstants.postTimeStampFormat); String postTimeZoneFormat = this.blogPreferenceService.getPreference(blogID, BlogPreferenceConstants.postTimeZoneFormat); String convertLineBreaks = this.blogPreferenceService.getPreference(blogID, BlogPreferenceConstants.convertLineBreaks); String postTemplate = this.blogPreferenceService.getPreference(blogID, BlogPreferenceConstants.postTemplate); Map<String, String> dateHeaderFormats = new HashMap<String, String>(); List<String> dateFormats = DateHeaderConstants.dateFormats; Date newDate = ServerUtils.getServerDate(); SimpleDateFormat formatter = null; for(String format : dateFormats) { formatter = new SimpleDateFormat(format); String formattedDate = formatter.format(newDate); dateHeaderFormats.put(format, formattedDate); } mav.addObject("dateHeaderFormats", dateHeaderFormats); mav.addObject("numPosts", numPosts); mav.addObject("dateHeaderFormat", dateHeaderFormat); mav.addObject("postTimeStampFormat", postTimeStampFormat); mav.addObject("postTimeZoneFormat", postTimeZoneFormat); mav.addObject("convertLineBreaks", convertLineBreaks); mav.addObject("postTemplate", postTemplate); mav.setViewName(".admin.settings.format"); return mav; } public ModelAndView update(HttpServletRequest request, HttpServletResponse response) throws Exception { ModelAndView mav = new ModelAndView(); Long blogID = StringUtils.getLong(request.getParameter("blogID")); mav.addObject("blogID", blogID); String numPosts = request.getParameter("numPosts"); String dateHeaderFormat = request.getParameter("dateHeaderFormat"); String postTimeStampFormat = request.getParameter("postTimeStampFormat"); String postTimeZoneFormat = request.getParameter("postTimeZoneFormat"); String convertLineBreaks = request.getParameter("convertLineBreaks"); String postTemplate = request.getParameter("postTemplate"); this.blogPreferenceService.putPreference(blogID, BlogPreferenceConstants.showNumPosts, numPosts); this.blogPreferenceService.putPreference(blogID, BlogPreferenceConstants.postDateHeaderFormat, dateHeaderFormat); this.blogPreferenceService.putPreference(blogID, BlogPreferenceConstants.postTimeStampFormat, postTimeStampFormat); this.blogPreferenceService.putPreference(blogID, BlogPreferenceConstants.postTimeZoneFormat, postTimeZoneFormat); this.blogPreferenceService.putPreference(blogID, BlogPreferenceConstants.convertLineBreaks, convertLineBreaks); this.blogPreferenceService.putPreference(blogID, BlogPreferenceConstants.postTemplate, postTemplate); return view(request, response); } /** * @return the blogPreferenceService */ public BlogPreferenceService getBlogPreferenceService() { return blogPreferenceService; } /** * @param blogPreferenceService the blogPreferenceService to set */ public void setBlogPreferenceService(BlogPreferenceService blogPreferenceService) { this.blogPreferenceService = blogPreferenceService; } }