Package net.naijatek.myalumni.modules.admin.presentation.action

Source Code of net.naijatek.myalumni.modules.admin.presentation.action.MaintainSystemModuleAction

/*
* ====================================================================
* Copyright (C) 1997-2008 by Naijatek.com
*
* All copyright notices regarding MyAlumni MUST remain
* intact in the scripts and in the outputted HTML.
* The "powered by" text/logo with a link back to
* http://www.naijatek.com in
* the footer of the pages MUST remain visible when the pages
* are viewed on the internet or intranet.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
*
* Support can be obtained from support forums at:
* http://www.naijatek.com/myalumni/forum
*
* Correspondence and Marketing Questions can be sent to:
* info at naijatek com
*
* <p>Title: MyAlumni </p>
* <p>Description: This system helps keep alive the line of communications between alumni/alumnus</p>
* <p>Copyright: Copyright (c) 1997-2008</p>
* <p>Company: Naijatek Solutions (http://www.naijatek.com)</p>
* @author Folashade Adeyosoye (shardayyy@naijatek.com)
* @version 1.0
*/
package net.naijatek.myalumni.modules.admin.presentation.action;


import java.io.File;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import net.naijatek.myalumni.framework.exceptions.CreateException;
import net.naijatek.myalumni.framework.exceptions.DuplicateEmailException;
import net.naijatek.myalumni.framework.exceptions.DuplicateMemberException;
import net.naijatek.myalumni.framework.struts.MyAlumniBaseException;
import net.naijatek.myalumni.framework.struts.MyAlumniDispatchAction;
import net.naijatek.myalumni.modules.admin.presentation.form.ErrorLogForm;
import net.naijatek.myalumni.modules.admin.presentation.form.SystemConfigForm;
import net.naijatek.myalumni.modules.common.domain.ClassNewsVO;
import net.naijatek.myalumni.modules.common.domain.EmailExceptionVO;
import net.naijatek.myalumni.modules.common.domain.ErrorLogVO;
import net.naijatek.myalumni.modules.common.domain.MemberVO;
import net.naijatek.myalumni.modules.common.domain.MessengerVO;
import net.naijatek.myalumni.modules.common.domain.ReminisceVO;
import net.naijatek.myalumni.modules.common.domain.ScrollVO;
import net.naijatek.myalumni.modules.common.domain.SystemConfigVO;
import net.naijatek.myalumni.modules.common.domain.TwitterVO;
import net.naijatek.myalumni.modules.common.helper.BaseSystemHelper;
import net.naijatek.myalumni.modules.common.helper.DropDownCacheBuilder;
import net.naijatek.myalumni.modules.common.presentation.form.ClassNewsForm;
import net.naijatek.myalumni.modules.common.presentation.form.ReminisceForm;
import net.naijatek.myalumni.modules.common.presentation.form.ScrollForm;
import net.naijatek.myalumni.modules.common.presentation.form.SystemForm;
import net.naijatek.myalumni.modules.common.service.IClassNewsService;
import net.naijatek.myalumni.modules.common.service.IErrorLogService;
import net.naijatek.myalumni.modules.common.service.IMemberService;
import net.naijatek.myalumni.modules.common.service.IMessageFolderService;
import net.naijatek.myalumni.modules.common.service.IMessengerService;
import net.naijatek.myalumni.modules.common.service.IReminisceService;
import net.naijatek.myalumni.modules.common.service.ISystemConfigService;
import net.naijatek.myalumni.modules.common.service.ISystemTaskService;
import net.naijatek.myalumni.util.BaseConstants;
import net.naijatek.myalumni.util.FileHelper;
import net.naijatek.myalumni.util.SystemConfigConstants;
import net.naijatek.myalumni.util.encryption.base64.Base64Coder;
import net.naijatek.myalumni.util.mail.SendMailUtil;
import net.naijatek.myalumni.util.utilities.FileUtil;
import net.naijatek.myalumni.util.utilities.StringUtil;

import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;
import org.apache.struts.upload.FormFile;
import org.apache.struts.util.LabelValueBean;
import org.joda.time.DateTime;




public class MaintainSystemModuleAction extends MyAlumniDispatchAction {

  private Log logger = LogFactory.getLog(this.getClass());

  private IErrorLogService logService;
  private ISystemConfigService systemConfigService;
  private IClassNewsService classNewsService;
  private ISystemTaskService sysService;
  private IReminisceService reminisceService;
  private IMemberService memberService;
 
  private IMessengerService messengerService;
  private IMessageFolderService mfService;
 
 

  /**
   * Instantiates the service classes
   * @param configService
   */
  public MaintainSystemModuleAction(IErrorLogService logService,
      ISystemConfigService systemConfigService,
      IClassNewsService classNewsService,
      ISystemTaskService sysService,
      IReminisceService reminisceService,
      IMemberService memberService,
      IMessengerService messengerService,
      IMessageFolderService mfService) {
    super();
    this.logService = logService;
    this.systemConfigService = systemConfigService;
    this.classNewsService = classNewsService;
    this.sysService = sysService;
    this.reminisceService = reminisceService;
    this.memberService = memberService;
    this.messengerService = messengerService;
    this.mfService = mfService;
   
  }

  // ----------------------------------
  // ERROR LOG
  //----------------------------------- 
  public ActionForward listErrorLogs(ActionMapping mapping, ActionForm form,
      HttpServletRequest request, HttpServletResponse response)
      throws Exception {
    logger.debug("in listErrorLogs...");
    listErrorLogsHelper(request);
    return mapping.findForward(BaseConstants.FWD_SUCCESS);
  }

  public ActionForward viewErrorLog(ActionMapping mapping, ActionForm form,
      HttpServletRequest request, HttpServletResponse response)
      throws Exception {
    logger.debug("in viewErrorLog...");

    ErrorLogForm logForm = (ErrorLogForm) form;
    ErrorLogVO logVO = logService.getErrorLog(logForm.getErrorLogId());
    setRequestObject(request, BaseConstants.OBJECT_VO, logVO);
    return mapping.findForward(BaseConstants.FWD_SUCCESS);
  }

  public ActionForward purgeLogHistory(ActionMapping mapping,
      ActionForm form, HttpServletRequest request,
      HttpServletResponse response) throws Exception {
    logger.debug("in purgeLogHistory...");
    logService.deleteAllErrorLogs();
    listErrorLogsHelper(request);
    return mapping.findForward(BaseConstants.FWD_SUCCESS);
  }

  public ActionForward batchErrorLog(ActionMapping mapping,
      ActionForm form, HttpServletRequest request,
      HttpServletResponse response) throws Exception {
    logger.debug("in batchErrorLog...");
   
    listErrorLogsHelper(request);
    return mapping.findForward(BaseConstants.FWD_SUCCESS);
  }
 
 
  public ActionForward deleteErrorLog(ActionMapping mapping, ActionForm form,
      HttpServletRequest request, HttpServletResponse response)
      throws Exception {
    logger.debug("in deleteErrorLog...");
    ErrorLogForm logForm = (ErrorLogForm) form;
    logService.deleteErrorLog(logForm.getErrorLogId());
    listErrorLogsHelper(request);
    return mapping.findForward(BaseConstants.FWD_SUCCESS);
  }

  private void listErrorLogsHelper(HttpServletRequest request)
      throws Exception {
    logger.debug("in listErrorLogsHelper...");
    List logs = logService.getAllErrorLogs();
    setRequestObject(request, BaseConstants.LIST_OF_ERROR_LOGS, logs);
  }

 
  //**********************************************************************
  //******************  Org ABOUT US  ********************************
  //**********************************************************************  

  public ActionForward prepareUpdateOrgAboutUs(ActionMapping mapping,
      ActionForm form, HttpServletRequest request,
      HttpServletResponse response) throws Exception {
    logger.debug("in prepareUpdateOrgAboutUs...");
    saveToken(request);
    SystemConfigForm orgInfoForm = (SystemConfigForm) form;
    SystemConfigVO orgInfoVO = systemConfigService.getOrgInfo();
    BeanUtils.copyProperties(orgInfoForm, orgInfoVO);
    return mapping.findForward(BaseConstants.FWD_SUCCESS);
  }

  public ActionForward updateOrgAboutUs(ActionMapping mapping, ActionForm form,
      HttpServletRequest request, HttpServletResponse response)
      throws Exception {
    logger.debug("in updateOrgAboutUs...");
    if (!isTokenValid(request)) {
      return mapping.findForward(BaseConstants.FWD_INVALID_TOKEN);
    }
    ActionMessages msgs = new ActionMessages();
    SystemConfigForm orgInfoForm = (SystemConfigForm) form;
    SystemConfigVO orgInfoVO = new SystemConfigVO();
    BeanUtils.copyProperties(orgInfoVO, orgInfoForm);

    orgInfoVO.setLastModifiedBy(getLastModifiedBy(request));

    systemConfigService.updateOrgAboutUs(orgInfoVO.getOrgAboutUs(), getLastModifiedBy(request));
    msgs.add(BaseConstants.INFO_KEY, new ActionMessage("message.record.updated"));
    saveMessages(request, msgs);
    resetToken(request)
    return mapping.findForward(BaseConstants.FWD_SUCCESS);
  }

 
 
  //**********************************************************************
  //******************  Org Intro  ********************************
  //**********************************************************************  

  public ActionForward prepareUpdateOrgIntro(ActionMapping mapping,
      ActionForm form, HttpServletRequest request,
      HttpServletResponse response) throws Exception {
    logger.debug("in prepareUpdateOrgIntro...");
    saveToken(request);
    SystemConfigForm orgInfoForm = (SystemConfigForm) form;
    SystemConfigVO orgInfoVO = systemConfigService.getOrgInfo();
    BeanUtils.copyProperties(orgInfoForm, orgInfoVO);
    return mapping.findForward(BaseConstants.FWD_SUCCESS);
  }

  public ActionForward updateOrgIntro(ActionMapping mapping, ActionForm form,
      HttpServletRequest request, HttpServletResponse response)
      throws Exception {
    logger.debug("in updateOrgIntro...");
    if (!isTokenValid(request)) {
      return mapping.findForward(BaseConstants.FWD_INVALID_TOKEN);
    }
    ActionMessages msgs = new ActionMessages();
    SystemConfigForm orgInfoForm = (SystemConfigForm) form;
    SystemConfigVO orgInfoVO = new SystemConfigVO();
    BeanUtils.copyProperties(orgInfoVO, orgInfoForm);

    orgInfoVO.setLastModifiedBy(getLastModifiedBy(request));

    systemConfigService.updateOrgIntro(orgInfoVO.getOrgIntro(), getLastModifiedBy(request));
    msgs.add(BaseConstants.INFO_KEY, new ActionMessage("message.record.updated"));
    saveMessages(request, msgs);
    resetToken(request)
    return mapping.findForward(BaseConstants.FWD_SUCCESS);
  }

 
 
 
  //**********************************************************************
  //******************  Org Info  ********************************
  //**********************************************************************  

  public ActionForward prepareUpdateOrgInfo(ActionMapping mapping,
      ActionForm form, HttpServletRequest request,
      HttpServletResponse response) throws Exception {
    logger.debug("in prepareUpdateOrgInfo...");
    saveToken(request);
    SystemConfigForm orgInfoForm = (SystemConfigForm) form;
    SystemConfigVO orgInfoVO = systemConfigService.getOrgInfo();
    BeanUtils.copyProperties(orgInfoForm, orgInfoVO);
    return mapping.findForward(BaseConstants.FWD_SUCCESS);
  }

  public ActionForward updateOrgInfo(ActionMapping mapping, ActionForm form,
      HttpServletRequest request, HttpServletResponse response)
      throws Exception {
    logger.debug("in updateOrgInfo...");
    if (!isTokenValid(request)) {
      return mapping.findForward(BaseConstants.FWD_INVALID_TOKEN);
    }
    ActionMessages msgs = new ActionMessages();
    SystemConfigForm orgInfoForm = (SystemConfigForm) form;
    SystemConfigVO orgInfoVO = new SystemConfigVO();
    BeanUtils.copyProperties(orgInfoVO, orgInfoForm);

    orgInfoVO.setLastModifiedBy(getLastModifiedBy(request));

    systemConfigService.updateOrgInfo(orgInfoVO);
    msgs.add(BaseConstants.INFO_KEY, new ActionMessage("message.record.updated"));
    saveMessages(request, msgs);
    resetToken(request);
    ServletContext sCtx = request.getSession().getServletContext();
      sCtx.setAttribute(BaseConstants.ORGANIZATION_NAME, orgInfoVO.getOrganizationName())
      sCtx.setAttribute(BaseConstants.ORGANIZATION_SHORT_NAME, orgInfoVO.getOrganizationShortName())
      sCtx.setAttribute(BaseConstants.ORG_EMAIL, orgInfoVO.getOrgEmail())
    return mapping.findForward(BaseConstants.FWD_SUCCESS);
  }

 
 
  //**********************************************************************
  //******************  RSS Feed  ********************************
  //**********************************************************************  

  public ActionForward prepareUpdateRssFeed(ActionMapping mapping,
      ActionForm form, HttpServletRequest request,
      HttpServletResponse response) throws Exception {
    logger.debug("in prepareUpdateRssFeed...");
    saveToken(request);
    SystemConfigForm rssForm = (SystemConfigForm) form;
    SystemConfigVO rssVO = systemConfigService.getRssFeedSource();
    BeanUtils.copyProperties(rssForm, rssVO);
    return mapping.findForward(BaseConstants.FWD_SUCCESS);
  }

  public ActionForward updateRssFeed(ActionMapping mapping, ActionForm form,
      HttpServletRequest request, HttpServletResponse response)
      throws Exception {
    logger.debug("in updateRssFeed...");
    if (!isTokenValid(request)) {
      return mapping.findForward(BaseConstants.FWD_INVALID_TOKEN);
    }
    ActionMessages msgs = new ActionMessages();
    SystemConfigForm rssForm = (SystemConfigForm) form;
    systemConfigService.updateRssFeedUrl(rssForm.getRssUrl(), rssForm.getRssHeader(), getLastModifiedBy(request));
    msgs.add(BaseConstants.INFO_KEY, new ActionMessage(
        "message.record.updated"));
    saveMessages(request, msgs);
    resetToken(request);
    return mapping.findForward(BaseConstants.FWD_SUCCESS);
  }

  //**********************************************************************
  //******************  SERVER URL  ********************************
  //**********************************************************************  

  public ActionForward prepareUpdateServerUrl(ActionMapping mapping,
      ActionForm form, HttpServletRequest request,
      HttpServletResponse response) throws Exception {
    logger.debug("in prepareUpdateServerUrl...");
    saveToken(request);
    SystemConfigForm rssForm = (SystemConfigForm) form;
    SystemConfigVO systemSetup = systemConfigService.getSystemConfig();
    BeanUtils.copyProperties(rssForm, systemSetup);
    return mapping.findForward(BaseConstants.FWD_SUCCESS);
  }

  public ActionForward updateServerUrl(ActionMapping mapping,
      ActionForm form, HttpServletRequest request,
      HttpServletResponse response) throws Exception {
    logger.debug("in updateServerUrl...");
    if (!isTokenValid(request)) {
      return mapping.findForward(BaseConstants.FWD_INVALID_TOKEN);
    }
    ActionMessages msgs = new ActionMessages();
    SystemConfigForm rssForm = (SystemConfigForm) form;
   
    ServletContext sCtx = request.getSession().getServletContext();
    systemConfigService.updateServerUrl(rssForm.getServerUrl(), getLastModifiedBy(request));
    sCtx.setAttribute(BaseConstants.SERVER_URL, rssForm.getServerUrl());
    msgs.add(BaseConstants.INFO_KEY, new ActionMessage("message.record.updated"));
    saveMessages(request, msgs);
    resetToken(request);
    return mapping.findForward(BaseConstants.FWD_SUCCESS);
  }

 
  //**********************************************************************
  //******************  Twitter Credential  ********************************
  //**********************************************************************  

  public ActionForward prepareUpdateTwitterCred(ActionMapping mapping,
      ActionForm form, HttpServletRequest request,
      HttpServletResponse response) throws Exception {
    logger.debug("in prepareUpdateTwitterCred...");
    saveToken(request);
    SystemConfigForm configForm = (SystemConfigForm) form;
    SystemConfigVO systemSetup = systemConfigService.getSystemConfig();
    BeanUtils.copyProperties(configForm, systemSetup);
    return mapping.findForward(BaseConstants.FWD_SUCCESS);
  }

  public ActionForward updateTwitterCred(ActionMapping mapping,
      ActionForm form, HttpServletRequest request,
      HttpServletResponse response) throws Exception {
    logger.debug("in updateTwitterCred...");
    if (!isTokenValid(request)) {
      return mapping.findForward(BaseConstants.FWD_INVALID_TOKEN);
    }
    ActionMessages msgs = new ActionMessages();
    SystemConfigForm configForm = (SystemConfigForm) form;
   
    TwitterVO twitterVO = new TwitterVO();
    twitterVO.setTwitteruser(configForm.getTwitteruser());
    twitterVO.setTwitterpswd(Base64Coder.encodeString(configForm.getTwitterpswd()));
    twitterVO.setLastModifiedBy(getLastModifiedBy(request));
       
    systemConfigService.updateTwitterCredentials(twitterVO);
   
    msgs.add(BaseConstants.INFO_KEY, new ActionMessage("message.record.updated"));
    saveMessages(request, msgs);
    resetToken(request);
    return mapping.findForward(BaseConstants.FWD_SUCCESS);
  }
 
 
  //**********************************************************************
  //******************  ALBUM URL  ********************************
  //**********************************************************************  

  public ActionForward prepareUpdateAlbumUrl(ActionMapping mapping,
      ActionForm form, HttpServletRequest request,
      HttpServletResponse response) throws Exception {
    logger.debug("in prepareAlbumUrl...");
    saveToken(request);
    SystemConfigForm rssForm = (SystemConfigForm) form;
    SystemConfigVO systemSetup = systemConfigService.getSystemConfig();
    BeanUtils.copyProperties(rssForm, systemSetup);
    return mapping.findForward(BaseConstants.FWD_SUCCESS);
  }

  public ActionForward updateAlbumUrl(ActionMapping mapping,
      ActionForm form, HttpServletRequest request,
      HttpServletResponse response) throws Exception {
    logger.debug("in updateAlbumUrl...");
   
    ServletContext sCtx = request.getSession().getServletContext();
   
    if (!isTokenValid(request)) {
      return mapping.findForward(BaseConstants.FWD_INVALID_TOKEN);
    }
    ActionMessages msgs = new ActionMessages();
    SystemConfigForm rssForm = (SystemConfigForm) form;

    systemConfigService.updateAlbumUrl(rssForm.getAlbumUrl(), getLastModifiedBy(request));
    sCtx.setAttribute(BaseConstants.ALBUM_URL, rssForm.getAlbumUrl());
    msgs.add(BaseConstants.INFO_KEY, new ActionMessage("message.record.updated"));
    saveMessages(request, msgs);
    resetToken(request);
    return mapping.findForward(BaseConstants.FWD_SUCCESS);
  }
 
  //**********************************************************************
  //******************  FORUM URL  ********************************
  //**********************************************************************  

  public ActionForward prepareUpdateForumUrl(ActionMapping mapping,
      ActionForm form, HttpServletRequest request,
      HttpServletResponse response) throws Exception {
    logger.debug("in prepareUpdateForumUrl...");
    saveToken(request);
    SystemConfigForm rssForm = (SystemConfigForm) form;
    SystemConfigVO systemSetup = systemConfigService.getSystemConfig();
    BeanUtils.copyProperties(rssForm, systemSetup);
    return mapping.findForward(BaseConstants.FWD_SUCCESS);
  }

  public ActionForward updateForumUrl(ActionMapping mapping,
      ActionForm form, HttpServletRequest request,
      HttpServletResponse response) throws Exception {
    logger.debug("in updateForumUrl...");
   
    ServletContext sCtx = request.getSession().getServletContext();
   
    if (!isTokenValid(request)) {
      return mapping.findForward(BaseConstants.FWD_INVALID_TOKEN);
    }
    ActionMessages msgs = new ActionMessages();
    SystemConfigForm rssForm = (SystemConfigForm) form;

    systemConfigService.updateForumUrl(rssForm.getForumUrl(), getLastModifiedBy(request));
    sCtx.setAttribute(BaseConstants.FORUM_URL, rssForm.getForumUrl());
    msgs.add(BaseConstants.INFO_KEY, new ActionMessage("message.record.updated"));
    saveMessages(request, msgs);
    resetToken(request);
    return mapping.findForward(BaseConstants.FWD_SUCCESS);
 
 
  //**********************************************************************
  //******************  DORMITORY  ********************************
  //**********************************************************************  

  public ActionForward prepareUpdateDormitory(ActionMapping mapping,
      ActionForm form, HttpServletRequest request,
      HttpServletResponse response) throws Exception {
   
    logger.debug("in prepareUpdateDormitory...");
    saveToken(request);
    SystemConfigForm sysForm = (SystemConfigForm) form;
    String hasDormitory = systemConfigService.getDormitory();
    sysForm.setHasDormitory(hasDormitory);
    return mapping.findForward(BaseConstants.FWD_SUCCESS);
  }

  public ActionForward updateDormitory(ActionMapping mapping,
      ActionForm form, HttpServletRequest request,
      HttpServletResponse response) throws Exception {
    logger.debug("in updateDormitory...");
   
    if (!isTokenValid(request)) {
      return mapping.findForward(BaseConstants.FWD_INVALID_TOKEN);
    }
   
    ActionMessages msgs = new ActionMessages();
    SystemConfigForm sysForm = (SystemConfigForm) form;
    SystemConfigVO sysVO = new SystemConfigVO();
    BeanUtils.copyProperties(sysVO, sysForm);

    systemConfigService.updateDormitory(sysVO);
    if (sysVO.getHasDormitory() != null){
      setServletContextObject(request, BaseConstants.HAS_DORMITORY, sysVO.getHasDormitory());
    }
    msgs.add(BaseConstants.INFO_KEY, new ActionMessage("message.record.updated"));
    saveMessages(request, msgs);
    resetToken(request);
       DropDownCacheBuilder ddb = new DropDownCacheBuilder();
       List<LabelValueBean> adminSearchCategory = ddb.buildSearchOptions(sysVO.getHasDormitory(), true);
       List<LabelValueBean> searchCategory = ddb.buildSearchOptions(sysVO.getHasDormitory(), false);
      
       setServletContextObject(request, BaseConstants.LIST_OF_ADMIN_SEARCH_OPTIONS, adminSearchCategory);
       setServletContextObject(request, BaseConstants.LIST_OF_MEMBER_SEARCH_OPTIONS,searchCategory);
    return mapping.findForward(BaseConstants.FWD_SUCCESS);
  }

 
  //**********************************************************************
  //******************  BIRTHDAY NOTIFICATION  ********************************
  //**********************************************************************  

  public ActionForward prepareUpdateBirthdayNotification(ActionMapping mapping,
      ActionForm form, HttpServletRequest request,
      HttpServletResponse response) throws Exception {
   
    logger.debug("in prepareUpdateBirthdayNotification...");
    saveToken(request);
    SystemConfigForm sysForm = (SystemConfigForm) form;
    String birthdayNotification = systemConfigService.getBirthdayNotification();
    sysForm.setBirthdayNotification(birthdayNotification);
    return mapping.findForward(BaseConstants.FWD_SUCCESS);
  }

  public ActionForward updateBirthdayNotification(ActionMapping mapping,
      ActionForm form, HttpServletRequest request,
      HttpServletResponse response) throws Exception {
    logger.debug("in updateBirthdayNotification...");
   
    if (!isTokenValid(request)) {
      return mapping.findForward(BaseConstants.FWD_INVALID_TOKEN);
    }
   
    ActionMessages msgs = new ActionMessages();
    SystemConfigForm sysForm = (SystemConfigForm) form;
    SystemConfigVO systemConfigVO = new SystemConfigVO();
    BeanUtils.copyProperties(systemConfigVO, sysForm);

    systemConfigService.updateBirthdayNotification(systemConfigVO);
    msgs.add(BaseConstants.INFO_KEY, new ActionMessage("message.record.updated"));
    saveMessages(request, msgs);
    resetToken(request);
    return mapping.findForward(BaseConstants.FWD_SUCCESS);
  }


  //**********************************************************************
  //******************  Session Timeout  ********************************
  //**********************************************************************  
  public ActionForward prepareUpdateSessionTimeOut(ActionMapping mapping,
      ActionForm form, HttpServletRequest request,
      HttpServletResponse response) throws Exception {
    logger.debug("in prepareUpdateSessionTimeOut...");
    saveToken(request);
    SystemConfigForm systemForm = (SystemConfigForm) form;
    int timeout = systemConfigService.getSessionTimeOut();
    systemForm.setSessionTimeout(String.valueOf(timeout));
    return mapping.findForward(BaseConstants.FWD_SUCCESS);
  }

  public ActionForward updateSessionTimeOut(ActionMapping mapping,
      ActionForm form, HttpServletRequest request,
      HttpServletResponse response) throws Exception {
    logger.debug("in updateSessionTimeOut...");
    if (!isTokenValid(request)) {
      return mapping.findForward(BaseConstants.FWD_INVALID_TOKEN);
    }
    ActionMessages msgs = new ActionMessages();
    SystemConfigForm systemForm = (SystemConfigForm) form;

    systemConfigService.updateSessionTimeOut(systemForm.getSessionTimeout(), getLastModifiedBy(request));
    msgs.add(BaseConstants.INFO_KEY, new ActionMessage("message.record.updated"));
    saveMessages(request, msgs);
    resetToken(request);
    return mapping.findForward(BaseConstants.FWD_SUCCESS);
  }

  //**********************************************************************
  //******************  VALIDATE SYSTEM CONFIGURATION ********************
  //**********************************************************************  
 
  /**
   *
   * @param mapping
   * @param form
   * @param request
   * @param response
   * @return
   * @throws Exception
   */
  public ActionForward prepareValidateSystemConfig(ActionMapping mapping,
      ActionForm form, HttpServletRequest request,
      HttpServletResponse response) throws Exception {

        logger.debug("in prepareValidateSystemConfig...")
        saveToken(request);
   
    return mapping.findForward(BaseConstants.FWD_SUCCESS);
  }

 
     public ActionForward validateSystemConfig(ActionMapping mapping,
      ActionForm form, HttpServletRequest request,
      HttpServletResponse response) throws Exception {

          logger.debug("in validateSystemConfig...");
          if ( !isTokenValid(request) ) {
              return mapping.findForward(BaseConstants.FWD_INVALID_TOKEN);
         
         
          if (!adminSecurityCheck(request)) {
            return mapping.findForward(BaseConstants.FWD_ADMIN_LOGIN);
          }
         
          ActionMessages errors = new ActionMessages();
          errors = new BaseSystemHelper().validateSystemConfig();
      if (errors.isEmpty()){
         errors.add(BaseConstants.INFO_KEY, new ActionMessage("core.errorcode.00999"));
      }         
      saveMessages(request, errors);
     


      return mapping.findForward(BaseConstants.FWD_SUCCESS);
  }        
 
 
  //**********************************************************************
  //******************  DATABASE BACK UP  ********************************
  //**********************************************************************  
 
  /**
   *
   * @param mapping
   * @param form
   * @param request
   * @param response
   * @return
   * @throws Exception
   */
  public ActionForward listDatabaseBackup(ActionMapping mapping,
      ActionForm form, HttpServletRequest request,
      HttpServletResponse response) throws Exception {

    if (!adminSecurityCheck(request)) {
      return mapping.findForward(BaseConstants.FWD_ADMIN_LOGIN);
    }

    ActionMessages errors = new ActionMessages();
   
    File backupDir = new File(getSysProp().getValue("BACKUP.FILEPATH"));
   
    if (!backupDir.exists() || !backupDir.isDirectory()){
            errors.add(BaseConstants.ERROR_KEY, new ActionMessage("core.errorcode.00705"));
            saveErrors(request, errors);
            return mapping.getInputForward();
    }
   
    listDatabaseBackupHelper(request);
    return mapping.findForward(BaseConstants.FWD_SUCCESS);
  }

  /**
   *
   * @param mapping
   * @param form
   * @param request
   * @param response
   * @return
   * @throws Exception
   */
  public ActionForward databaseBackup(ActionMapping mapping, ActionForm form,
      HttpServletRequest request, HttpServletResponse response)
      throws Exception {
   
    if (!adminSecurityCheck(request)) {
      return mapping.findForward(BaseConstants.FWD_ADMIN_LOGIN);
    }
    ActionMessages msgs = new ActionMessages();
    DateTime dtime = new DateTime(new Date());
    String dateStr = dtime.getMonthOfYear() + "_" + dtime.getDayOfMonth() + "_" + dtime.getYear() + "_" + dtime.getHourOfDay() + "_" + dtime.getMinuteOfHour() + "_" + dtime.getSecondOfMinute();
   
    try{
      sysService.systemDatabaseBackup(getSysProp().getValue("BACKUP.FILEPATH") + dateStr + ".sql");
    }
        catch(MyAlumniBaseException ex){
          msgs.add(BaseConstants.ERROR_KEY, new ActionMessage(ex.getMessage()));
            saveMessages(request, msgs);
            return mapping.getInputForward();
        }   
       
        msgs.add(BaseConstants.INFO_KEY, new ActionMessage("message.backupsuccessful", dateStr + ".sql"));
        saveMessages(request, msgs);

        listDatabaseBackupHelper(request);
    return mapping.findForward(BaseConstants.FWD_SUCCESS);
  }
 
  /**
   *
   * @param mapping
   * @param form
   * @param request
   * @param response
   * @return
   * @throws Exception
   */
  public ActionForward deleteDatabaseBackup(ActionMapping mapping,
      ActionForm form, HttpServletRequest request,
      HttpServletResponse response) throws Exception {

    if (!adminSecurityCheck(request)) {
      return mapping.findForward(BaseConstants.FWD_ADMIN_LOGIN);
    }
    ActionMessages msgs = new ActionMessages();
    SystemForm sysForm = (SystemForm)form;
    String file = getSysProp().getValue("BACKUP.FILEPATH") + sysForm.getLogFileName();
    File sqlFile = new File(file);
   
    if (sqlFile.exists() && sqlFile.isFile()){
        sqlFile.delete();
        msgs.add(BaseConstants.INFO_KEY, new ActionMessage("message.successfullydeleted", sysForm.getLogFileName()));
        saveMessages(request, msgs);
    }
    else{
      msgs.add(BaseConstants.INFO_KEY, new ActionMessage("message.unabletodelete", file));
      saveMessages(request, msgs);
    }

    listDatabaseBackupHelper(request);
    return mapping.findForward(BaseConstants.FWD_SUCCESS);
  }
 
 
  /**
   *
   * @param mapping
   * @param form
   * @param request
   * @param response
   * @return
   * @throws Exception
   */
  public ActionForward viewDatabaseBackup(ActionMapping mapping,
      ActionForm form, HttpServletRequest request,
      HttpServletResponse response) throws Exception {

    if (!adminSecurityCheck(request)) {
      return mapping.findForward(BaseConstants.FWD_ADMIN_LOGIN);
    }
   
    SystemForm sysForm = (SystemForm)form;
   
    if (sysForm.getLogType() == null || sysForm.getLogType().length() == 0) {
      sysForm.setLogType("ALL");
    }

    File file = new File(getSysProp().getValue("BACKUP.FILEPATH") + sysForm.getLogFileName());
    sysForm.setLineCount("5000") ;
    String[] contentLog = FileUtil.getLastLines(file, Integer.parseInt(sysForm.getLineCount()), sysForm.getLogType());
   
//    List<String> al = new ArrayList<String>(contentLog.length);
//    for (int j=0;j<contentLog.length;j++) {
//        al.add(contentLog[j]);
//    }
//   
    setSessionObject(request, BaseConstants.LOG_CONTENT, contentLog);
    return mapping.findForward(BaseConstants.FWD_SUCCESS);
  }
 

  /**
   *
   * @param request
   * @throws Exception
   */
  private void listDatabaseBackupHelper(HttpServletRequest request) throws Exception {
        File backupDir = new File(getSysProp().getValue("BACKUP.FILEPATH"));
        List<FileHelper> backups = new ArrayList<FileHelper>();
    backups = FileUtil.getDirFileNameLength(backupDir, ".sql");
    setRequestObject(request, "sqlBackups", backups);
  }
 

 
  //**********************************************************************
  //******************  EMAIL EXCEPTIONS  ********************************
  //**********************************************************************  
  public ActionForward maintainEmail(ActionMapping mapping, ActionForm form,
      HttpServletRequest request, HttpServletResponse response)
      throws Exception {

    if (!adminSecurityCheck(request)) {
      return mapping.findForward(BaseConstants.FWD_ADMIN_LOGIN);
    }

    String task = request.getParameter("task");
    String id = request.getParameter("id");
    EmailExceptionVO email = new EmailExceptionVO();
    email.setEmail_Id(id);

    if (task.equals("list")) {
      List list = sysService.getAllEmailExceptions();
      setSessionObject(request, "emailList", list);
    } else if (task.equals("delete")) {
      sysService.deleteLogEmailException(email);
      setSessionObject(request, "emailList", sysService
          .getAllEmailExceptions());
    } else if (task.equals("resend")) {
      email = sysService.getEmailException(id);

      //         SendMailUtil.resendEmail(email);
      setSessionObject(request, "emailList", sysService
          .getAllEmailExceptions());

    }

    return mapping.findForward(BaseConstants.FWD_SUCCESS);
  }

 
  //**********************************************************************
  //******************  VIEW LOG 4 J SYSTEM LOG  ********************************
  //********************************************************************** 
 
  public ActionForward listSystemLogs(ActionMapping mapping,
      ActionForm form, HttpServletRequest request,
      HttpServletResponse response) throws Exception {

    if (!adminSecurityCheck(request)) {
      return mapping.findForward(BaseConstants.FWD_ADMIN_LOGIN);
    }

    ActionMessages errors = new ActionMessages();
   
    File systemLogDir = new File(getSysProp().getValue("LOGFILE.FILEPATH"));
   
    if (!systemLogDir.exists() || !systemLogDir.isDirectory()){
            errors.add(BaseConstants.ERROR_KEY, new ActionMessage("core.errorcode.00710"));
            saveErrors(request, errors);
            return mapping.getInputForward();
    }
   
    listSystemLogHelper(request);
    return mapping.findForward(BaseConstants.FWD_SUCCESS);
  }

 
  public ActionForward deleteSystemLog(ActionMapping mapping,
      ActionForm form, HttpServletRequest request,
      HttpServletResponse response) throws Exception {

    if (!adminSecurityCheck(request)) {
      return mapping.findForward(BaseConstants.FWD_ADMIN_LOGIN);
    }
    ActionMessages msgs = new ActionMessages();
    SystemForm sysForm = (SystemForm)form;
    String file = getSysProp().getValue("LOGFILE.FILEPATH") + sysForm.getLogFileName();
    File logFile = new File(file);
   
    if (logFile.exists() && logFile.isFile()){
        logFile.delete();
        msgs.add(BaseConstants.INFO_KEY, new ActionMessage("message.successfullydeleted", sysForm.getLogFileName()));
        saveMessages(request, msgs);
    }
    else{
      msgs.add(BaseConstants.INFO_KEY, new ActionMessage("message.unabletodelete", file));
      saveMessages(request, msgs);
    }

    listSystemLogHelper(request);
    return mapping.findForward(BaseConstants.FWD_SUCCESS);
  }
 

  public ActionForward viewSystemLogs(ActionMapping mapping,
      ActionForm form, HttpServletRequest request,
      HttpServletResponse response) throws Exception {

    if (!adminSecurityCheck(request)) {
      return mapping.findForward(BaseConstants.FWD_ADMIN_LOGIN);
    }
   
    SystemForm sysForm = (SystemForm)form;
    int lineCount = 0;
    try {
      lineCount = Integer.parseInt(sysForm.getLineCount()); // 25, 50 100 200 400 800)
    } catch (Exception e) {
      if (lineCount == 0) {
        lineCount = 50;
      }
    }

    if (lineCount > 5000) {
      lineCount = 5000;
    }
   
    if (sysForm.getLogType() == null || sysForm.getLogType().length() == 0) {
      sysForm.setLogType("ALL");
    }

    File logFile = new File(getSysProp().getValue("LOGFILE.FILEPATH") + sysForm.getLogFileName());
    sysForm.setLineCount(String.valueOf(lineCount)) ;
    String[] contentLog = FileUtil.getLastLines(logFile, lineCount, sysForm.getLogType());
   
    String humanSize = FileUtil.getHumanSize(logFile.length());
    sysForm.setLogFileSize(String.valueOf(logFile.length()));
    sysForm.setLogFileHumanSize(humanSize);
   
    setSessionObject(request, BaseConstants.LOG_CONTENT, contentLog);
    return mapping.findForward(BaseConstants.FWD_SUCCESS);
  }
 
 
/*  public ActionForward viewLog2(ActionMapping mapping, ActionForm form,
      HttpServletRequest request, HttpServletResponse response)
      throws Exception {

    String logfileName = "";
    String defaultFileName = "myalumni.log";

    if (!adminSecurityCheck(request)) {
      return mapping.findForward(BaseConstants.FWD_ADMIN_LOGIN);
    }

    SystemForm sysForm = (SystemForm)form;
   
    ActionMessages errors = new ActionMessages();
    SystemProp sysprop = SystemProp.getInstance();
    File logPath = new File(sysprop.getValue("LOGFILE.FILEPATH"));
   
    if (!logPath.exists() || !logPath.isDirectory()){
            errors.add(BaseConstants.ERROR_KEY, new ActionMessage("core.errorcode.00706"));
            saveErrors(request, errors);
            return mapping.getInputForward();
    }
   
    loadLogFiles(request, logPath);

    String logType = sysForm.getLogType();
   
    if (logType == null || logType.length() == 0) {
      logType = "ALL";
    }

    logfileName = sysForm.getLogFileName();
    File logFile = null;
    if (logfileName == null || logfileName.length() == 0) {
      logfileName = defaultFileName;
     
      logFile = new File(logPath + File.separator + logfileName);
      String humanSize = FileUtil.getHumanSize(logFile.length());
      sysForm.setLogFileName(defaultFileName);
      sysForm.setLogFileSize(String.valueOf(logFile.length()));
      sysForm.setLogFileHumanSize(humanSize);
    }
    else{
      logFile = new File(logPath + File.separator + logfileName);
      String humanSize = FileUtil.getHumanSize(logFile.length());
      sysForm.setLogFileName(defaultFileName);
      sysForm.setLogFileSize(String.valueOf(logFile.length()));
      sysForm.setLogFileHumanSize(humanSize);
    }

   

    if (logFile.exists() || logFile.length() == 0) { //?
      if (!logFile.canRead()) {
        errors.add(BaseConstants.WARN_KEY, new ActionMessage("error.filenoread", logfileName));
        saveMessages(request, errors);
        return mapping.getInputForward();
      }
      int lineCount = 0;
      try {
        lineCount = Integer.parseInt(sysForm.getLineCount()); // 25, 50 100 200 400 800)
      } catch (Exception e) {
        if (lineCount == 0) {
          lineCount = 50;
        }
      }

      if (lineCount > 5000) {
        lineCount = 5000;
      }
      String[] contentLog = FileUtil.getLastLines(logFile, lineCount, sysForm.getLogType());
      setSessionObject(request, BaseConstants.LOG_CONTENT, contentLog);
    } else {
      errors.add(BaseConstants.WARN_KEY, new ActionMessage("error.filenoexist", logfileName));
      saveMessages(request, errors);
      return mapping.getInputForward();
    }

    return mapping.findForward(BaseConstants.FWD_SUCCESS);
  }*/

 
  /**
   *
   * @param request
   * @throws Exception
   */
  private void listSystemLogHelper(HttpServletRequest request) throws Exception {
        File logDir = new File(getSysProp().getValue("LOGFILE.FILEPATH"));
        List<FileHelper> logs = new ArrayList<FileHelper>();
        logs = FileUtil.getDirFileNameLength(logDir, ".log");
    setRequestObject(request, "systemLogs", logs);
  }
 
  //--------------------------------------------------------------------------
  //--
  //--                   P R I V A T E   M E T H O D S
  //--
  //--------------------------------------------------------------------------
/*
  private void loadLogFiles(final HttpServletRequest request, File logPath) {
 
    List<LabelValueBean> logList = new ArrayList<LabelValueBean>();
    if (logPath.exists()) {
      String[] logFiles = logPath.list();
      for (String element : logFiles) {
        if (element.startsWith("myalumni.log.") || element.endsWith(".log")) {
          logList.add(new LabelValueBean(element, element));
        }
      }
    }
    setSessionObject(request, "logList", logList);
  }*/
 
  //**********************************************************************
  //******************  MAINTAIN SCROLL  ********************************
  //**********************************************************************  
 
    public ActionForward maintainScroll(ActionMapping mapping, ActionForm form, HttpServletRequest request,
        HttpServletResponse response) throws Exception {

        ServletContext sCtx = request.getSession().getServletContext();
        

    List<ScrollVO> allScrolls = new ArrayList<ScrollVO>();

    // check to see if the user logged on is a member
    if (!adminSecurityCheck(request)) {
      return mapping.findForward(BaseConstants.FWD_ADMIN_LOGIN);
    }

    ScrollForm scrollForm = (ScrollForm) form;


    if (scrollForm.getType().equalsIgnoreCase("list")) {
      allScrolls = systemConfigService.getAllScrolls();
      setSessionObject(request, BaseConstants.LIST_OF_SCROLLS, allScrolls);
    }
    else if (scrollForm.getType().equalsIgnoreCase("update")) {
      systemConfigService.updateScroll(scrollForm.getScrollId(), getLastModifiedBy(request));
      sCtx.setAttribute(BaseConstants.SCROLL_VO, systemConfigService.getLatestScroll());
    }
    else if (scrollForm.getType().equalsIgnoreCase("new")) {
      ScrollVO scrollVO = new ScrollVO();
      BeanUtils.copyProperties(scrollVO, scrollForm);
      scrollVO.setLastModifiedBy(getLastModifiedBy(request));
      scrollVO.setScrollId(null);
      systemConfigService.addScroll(scrollVO);       
      sCtx.setAttribute(BaseConstants.SCROLL_VO, scrollVO);
      allScrolls = systemConfigService.getAllScrolls();
      setSessionObject(request, BaseConstants.LIST_OF_SCROLLS, allScrolls);

    }
    return mapping.findForward(BaseConstants.FWD_SUCCESS);
  }
  
  //**********************************************************************
  //******************  CLASS NEWS       ********************************
  //**********************************************************************     
    public ActionForward prepareAddClassNews(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
        logger.debug("in prepareAddClassNews...")
        saveToken(request);
        return mapping.findForward(BaseConstants.FWD_SUCCESS);
    }
   
   
    public ActionForward listClassNews(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
        logger.debug("in listClassNews...");      
        getClassNewsHelper(request);
        return mapping.findForward(BaseConstants.FWD_SUCCESS);
    }   

    public ActionForward viewClassNews(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
        logger.debug("in viewClassNews...");      
        ClassNewsForm classNewsForm = (ClassNewsForm) form;
        ClassNewsVO classNewsVO = new ClassNewsVO();
        classNewsVO = classNewsService.findById(classNewsForm.getClassNewsId());
        BeanUtils.copyProperties(classNewsForm, classNewsVO );
        return mapping.findForward(BaseConstants.FWD_SUCCESS);
    }   
    public ActionForward updateClassNews(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
        logger.debug("in updateClassNews...");
        if ( !isTokenValid(request) ) {
            return mapping.findForward(BaseConstants.FWD_INVALID_TOKEN);
        }         
        ClassNewsForm classNewsForm = (ClassNewsForm) form;
        ClassNewsVO classNewsVO = new ClassNewsVO();
        BeanUtils.copyProperties(classNewsVO, classNewsForm);
        classNewsVO.setLastModifiedBy(getLastModifiedBy(request));
        classNewsService.merge(classNewsVO);
        getClassNewsHelper(request);
        resetToken(request);
        return mapping.findForward(BaseConstants.FWD_SUCCESS);
    }


    public ActionForward addClassNews(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
        logger.debug("in addClassNews...");
        if ( !isTokenValid(request) ) {
            return mapping.findForward(BaseConstants.FWD_INVALID_TOKEN);
        }         
    if (!adminSecurityCheck(request)) {
      return mapping.findForward(BaseConstants.FWD_ADMIN_LOGIN);
    }       
        ClassNewsForm classNewsForm = (ClassNewsForm) form;
        ClassNewsVO classNewsVO = new ClassNewsVO();
        BeanUtils.copyProperties(classNewsVO, classNewsForm);
        classNewsVO.setLastModifiedBy(getLastModifiedBy(request));
        classNewsVO.setAuthorId(getCurrentUserId(request));
        classNewsService.save(classNewsVO);
        getClassNewsHelper(request);
        resetToken(request);
        return mapping.findForward(BaseConstants.FWD_SUCCESS);
    }
   
   
    public ActionForward prepareUpdateClassNews(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
        logger.debug("in prepareUpdateClassNews...");   
        saveToken(request);
        ClassNewsForm classNewsForm = (ClassNewsForm) form;
        ClassNewsVO classNewsVO = classNewsService.findById(classNewsForm.getClassNewsId());
        BeanUtils.copyProperties(classNewsForm, classNewsVO);
        getClassNewsHelper(request);
        return mapping.findForward(BaseConstants.FWD_SUCCESS);
    }
   


    public ActionForward deleteClassNews(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
        logger.debug("in deleteClassNews...")
    if (!adminSecurityCheck(request)) {
      return mapping.findForward(BaseConstants.FWD_ADMIN_LOGIN);
    }       
        ClassNewsForm classNewsForm = (ClassNewsForm) form;
        classNewsService.softDelete(classNewsForm.getClassNewsId(), getLastModifiedBy(request));
        getClassNewsHelper(request);
        return mapping.findForward(BaseConstants.FWD_SUCCESS);
    }

    private void getClassNewsHelper(HttpServletRequest request){
        List<ClassNewsVO> tasks =  classNewsService.findAll();
        setRequestObject(request, BaseConstants.LIST_OF_CLASSNEWS, tasks);       
    }
   
  //**********************************************************************
  //******************  REMINISCE       ********************************
  //**********************************************************************     
    public ActionForward prepareAddReminisce(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
        logger.debug("in prepareAddReminisce...")
        saveToken(request);
        return mapping.findForward(BaseConstants.FWD_SUCCESS);
    }
   
   
    public ActionForward listReminisce(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
        logger.debug("in listReminisce...");      
        getReminisceHelper(request);
        return mapping.findForward(BaseConstants.FWD_SUCCESS);
    }   

    public ActionForward viewReminisce(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
        logger.debug("in viewReminisce...");      
        ReminisceForm classNewsForm = (ReminisceForm) form;
        ReminisceVO classNewsVO = new ReminisceVO();
        classNewsVO = reminisceService.findById(classNewsForm.getReminisceId());
        BeanUtils.copyProperties(classNewsForm, classNewsVO );
        return mapping.findForward(BaseConstants.FWD_SUCCESS);
    }   
    public ActionForward updateReminisce(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
        logger.debug("in updateReminisce...");
        if ( !isTokenValid(request) ) {
            return mapping.findForward(BaseConstants.FWD_INVALID_TOKEN);
        }         
       
        ReminisceForm classNewsForm = (ReminisceForm) form;
        ReminisceVO classNewsVO = new ReminisceVO();
        BeanUtils.copyProperties(classNewsVO, classNewsForm);
        classNewsVO.setLastModifiedBy(getLastModifiedBy(request));
        reminisceService.merge(classNewsVO);
        getReminisceHelper(request);
        resetToken(request);
        return mapping.findForward(BaseConstants.FWD_SUCCESS);
    }


    public ActionForward addReminisce(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
        logger.debug("in addReminisce...");
        if ( !isTokenValid(request) ) {
            return mapping.findForward(BaseConstants.FWD_INVALID_TOKEN);
        }         
    if (!adminSecurityCheck(request)) {
      return mapping.findForward(BaseConstants.FWD_ADMIN_LOGIN);
    }       
        ReminisceForm classNewsForm = (ReminisceForm) form;
        ReminisceVO classNewsVO = new ReminisceVO();
        BeanUtils.copyProperties(classNewsVO, classNewsForm);
        classNewsVO.setLastModifiedBy(getLastModifiedBy(request));
        classNewsVO.setAuthorId(getCurrentUserId(request));
        reminisceService.save(classNewsVO);
        getReminisceHelper(request);
        resetToken(request);
        return mapping.findForward(BaseConstants.FWD_SUCCESS);
    }
   
   
    public ActionForward prepareUpdateReminisce(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
        logger.debug("in prepareUpdateReminisce...");   
        saveToken(request);
        ReminisceForm classNewsForm = (ReminisceForm) form;
        ReminisceVO classNewsVO = reminisceService.findById(classNewsForm.getReminisceId());
        BeanUtils.copyProperties(classNewsForm, classNewsVO);
        getReminisceHelper(request);
        return mapping.findForward(BaseConstants.FWD_SUCCESS);
    }
   


    public ActionForward deleteReminisce(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
        logger.debug("in deleteReminisce...");       
    if (!adminSecurityCheck(request)) {
      return mapping.findForward(BaseConstants.FWD_ADMIN_LOGIN);
    }       
        ReminisceForm classNewsForm = (ReminisceForm) form;
        reminisceService.softDelete(classNewsForm.getReminisceId(), getLastModifiedBy(request));
        getReminisceHelper(request);
        return mapping.findForward(BaseConstants.FWD_SUCCESS);
    }

    private void getReminisceHelper(HttpServletRequest request){
        List<ReminisceVO> tasks =  reminisceService.findAll();
        setRequestObject(request, BaseConstants.LIST_OF_REMINISCE, tasks);       
    }
   
   
  public ActionForward setupIntialization(ActionMapping mapping, ActionForm form,
      HttpServletRequest request, HttpServletResponse response)
      throws Exception {
    logger.debug("in setupIntialization...");
   
    //if (!isTokenValid(request)) {
    //  return mapping.findForward(BaseConstants.FWD_INVALID_TOKEN);
    //}
    ServletContext sCtx = request.getSession().getServletContext();
    ActionMessages msgs = new ActionMessages();
    SystemConfigForm systemConfigForm = (SystemConfigForm) form;
    SystemConfigVO systemConfigVO = new SystemConfigVO();
    BeanUtils.copyProperties(systemConfigVO, systemConfigForm);
   
    try{
      DateTime dt = new DateTime();
      int year = dt.getYear();
     
      // Admin
      //INSERT INTO MYALUMNI_MEMBERS_TBL (USER_NAME,MEMBER_ID,MEMBER_STATUS,MEMBER_PASSWORD,EMAIL,FIRST_IP_ADDRESS,LAST_IP_ADDRESS,
      //CREATION_DATE,LAST_LOGON_DATE,TITLE,NICK_NAME,FIRST_NAME,LAST_NAME,GENDER,FIRST_EMAIL,COUNTRY,YEAR_IN,YEAR_OUT,IS_ADMIN,HIDE_EMAIL,HIDE_ADDRESS,HIDE_PHONE,HIDE_IM,PROMPT_CHANGE,LASTMODIFICATION,LASTMODIFIED_BY,LASTMODIFIED_DATE ) VALUES ('sysadmin', '999999999999999999999999999999','A','X03MO1qnZdYdgyfeuILPmQ==','myalumni@naijatek.com','127.0.0.1','127.0.0.1',CURRENT_TIMESTAMP,CURRENT_TIMESTAMP,'1000000004999','NickName','FirstName','LastName','U','myalumni@naijatek.com','1000000003999','2007','2007','Y','Y','Y','Y','Y','Y','A','SYSTEM',CURRENT_TIMESTAMP);
     
      MemberVO memberVO = new MemberVO();   
      memberVO.setMemberUserName(systemConfigVO.getMemberUserName());
      memberVO.setLastName(systemConfigVO.getMemberLastName());
      memberVO.setFirstName(systemConfigVO.getMemberFirstName());
      memberVO.setEmail(systemConfigVO.getMemberEmail());
          memberVO.setMemberPassword(systemConfigVO.getMemberPassword());
       
          memberVO.setNickName("");
          memberVO.setGender(BaseConstants.GENDER_UNKNOWN);
          memberVO.setCountryId("1000000003999");
          memberVO.setTitleId("1000000004999");
          memberVO.setCareerId("1000000001999");
          memberVO.setDormitoryId("1000000005999");
         
          memberVO.setYearIn(year);
          memberVO.setYearOut(year);
          memberVO.setLastModifiedBy("system");
         
          // create admin
          memberService.createAdminMember(memberVO, request);
         
          final String memberId = memberVO.getMemberId();
          String[] s = new String[0];
          memberVO.setLstSelectedIMs(s);
         
          // Messengers
          List<MessengerVO> messengers = new ArrayList<MessengerVO>();
          MessengerVO mesgerVO = null;
          for(String str : memberVO.getLstSelectedIMs()){
            mesgerVO = new MessengerVO();
            mesgerVO.setLastModifiedBy(memberVO.getMemberUserName());
            mesgerVO.setMemberId(memberId);
            mesgerVO.setLookupCodeId(str);
            messengers.add(mesgerVO);
          }
          messengerService.saveAll(messengers, memberId);
         
          // Message Folders
          mfService.createMemberMessageFolders(memberId, SystemConfigConstants.MESSAGE_FOLDERS, memberVO.getMemberUserName());       
         
          StringBuffer message = new StringBuffer();
          message.append("Thank you " + StringUtil.capitalize(memberVO.getFirstName()) + " " + StringUtil.capitalize(memberVO.getLastName())  + " for setting up MyAlumni and Welcome to " + systemConfigVO.getOrganizationName()  + "'s owns space in cyberspace.");
         
          setSessionObject(request, BaseConstants.MESSAGE,  message.toString());

          // send email to registrant
          try {
            SendMailUtil.sendWelcomeNotice(memberVO.getEmail(), memberVO.getMemberUserName(),systemConfigVO);
          }
          catch (Exception ex) {
            logger.error(ex.getMessage());
            msgs.add(BaseConstants.FATAL_KEY, new ActionMessage("error.mailserver"));
            saveMessages(request, msgs);   
          }         

     
      // Scroll
      ScrollVO scrollVO = new ScrollVO();     
      scrollVO.setLastModifiedBy("system");
      scrollVO.setScrollId(null);
      scrollVO.setPriority(BaseConstants.BOOLEAN_YES);
      scrollVO.setScrollText("Welcome to " + systemConfigVO.getOrganizationName());   
      systemConfigService.addScroll(scrollVO);       
      sCtx.setAttribute(BaseConstants.SCROLL_VO, scrollVO);   
     
 
      systemConfigService.setupIntialization(systemConfigVO);
   
        sCtx.setAttribute(BaseConstants.ORGANIZATION_NAME, systemConfigVO.getOrganizationName())
        sCtx.setAttribute(BaseConstants.ORGANIZATION_SHORT_NAME, systemConfigVO.getOrganizationShortName())
        sCtx.setAttribute(BaseConstants.ORG_EMAIL, systemConfigVO.getOrgEmail());
      sCtx.setAttribute(BaseConstants.ALBUM_URL, systemConfigVO.getAlbumUrl());
      sCtx.setAttribute(BaseConstants.FORUM_URL, systemConfigVO.getForumUrl());
      sCtx.setAttribute(BaseConstants.SERVER_URL, systemConfigVO.getServerUrl());
      sCtx.setAttribute(BaseConstants.FIRST_STARTUP, BaseConstants.BOOLEAN_NO);
   
    }
    catch (DuplicateMemberException e) {
      msgs.add(BaseConstants.WARN_KEY, new ActionMessage("error.duplicate.member"));
        saveMessages(request, msgs);
        logger.info("DUPLICATE USER NAME - " + e.getMessage());
        return mapping.getInputForward();
      }
      catch (DuplicateEmailException e) {
          msgs.add(BaseConstants.WARN_KEY, new ActionMessage("error.duplicate.email"));
          saveMessages(request, msgs);
          logger.info("DUPLICATE EMAIL - " + e.getMessage());
          return mapping.getInputForward();
        }   
      catch (CreateException e) {
        msgs.add(BaseConstants.WARN_KEY, new ActionMessage("errors.technical.difficulty"));
        saveMessages(request, msgs);
        logger.fatal("SYSTEM ERROR - " + e.getMessage());
        return mapping.getInputForward();
      }
      catch(Exception ex){
        msgs.add(BaseConstants.FATAL_KEY, new ActionMessage("errors.technical.difficulty"));
           saveMessages(request, msgs);
           logger.fatal("SYSTEM ERROR - " + ex.getMessage());
           return mapping.getInputForward();
      }       
    return mapping.findForward(BaseConstants.FWD_SUCCESS);
  }   
 
  //**********************************************************************
  //******************  LOGO       ********************************
  //**********************************************************************  
 
  public ActionForward prepareUploadLogo(ActionMapping mapping, ActionForm form,
      HttpServletRequest request, HttpServletResponse response)
      throws Exception {
    logger.debug("in prepareUploadLogo...");
    //ActionMessages msgs = new ActionMessages();
    SystemConfigForm systemConfigForm = (SystemConfigForm) form;
    SystemConfigVO systemConfigVO = new SystemConfigVO();
    systemConfigVO = systemConfigService.getSystemConfig();
    BeanUtils.copyProperties(systemConfigForm, systemConfigVO);   
   
    return mapping.findForward(BaseConstants.FWD_SUCCESS);
  }   
 
 
  public ActionForward uploadLogo(ActionMapping mapping, ActionForm form,
      HttpServletRequest request, HttpServletResponse response)
      throws Exception {
    logger.debug("in uploadLogo...");

    if (!adminSecurityCheck(request)) {
      return mapping.findForward(BaseConstants.FWD_ADMIN_LOGIN);
    }   
    SystemConfigForm systemConfigForm = (SystemConfigForm) form;
    String fileAllowedTypes = SystemConfigConstants.CONTENT_TYPE;
    int maxFileSize = SystemConfigConstants.LOGO_MAX_SIZE;   
    ActionMessages msgs = new ActionMessages();
    FormFile formFile = systemConfigForm.getLogoUpload();
    int height = SystemConfigConstants.LOGO_HEIGHT;
    int width = SystemConfigConstants.LOGO_WIDTH;
    msgs = validateUploadFile(request, formFile, fileAllowedTypes, maxFileSize, true, height, false, width);
   
    if (msgs.isEmpty()){
      // upload the file and update database
      try{
        String logoDir = getSysProp().getValue("LOGO.FILEPATH");     
        uploadFromLocalDrive(formFile, formFile.getFileName() ,logoDir);
      }
      catch(Exception e){
        msgs.add(BaseConstants.WARN_KEY, new ActionMessage("error.cantupload"));
      }
     
      SystemConfigVO systemConfigVO = systemConfigService.getSystemConfig();
      systemConfigVO.setLogoFileName(formFile.getFileName());
      systemConfigService.uploadLogo(systemConfigVO);   
      ServletContext sCtx = request.getSession().getServletContext();
      sCtx.setAttribute(BaseConstants.LOGO_NAME, systemConfigVO.getLogoFileName());
    }
   
    saveMessages(request, msgs);
    return mapping.findForward(BaseConstants.FWD_SUCCESS);
  }     
 
  public ActionForward removeLogo(ActionMapping mapping, ActionForm form,
      HttpServletRequest request, HttpServletResponse response)
      throws Exception {
    logger.debug("in removeLogo...");
    if (!adminSecurityCheck(request)) {
      return mapping.findForward(BaseConstants.FWD_ADMIN_LOGIN);
    }
   
   
    //ActionMessages msgs = new ActionMessages();
    String logoFileName = new String();
    SystemConfigVO systemConfigVO = new SystemConfigVO();
    systemConfigVO = systemConfigService.getSystemConfig();
    logoFileName = systemConfigVO.getLogoFileName();
    systemConfigVO.setLogoFileName(null);
    systemConfigService.uploadLogo(systemConfigVO);
   
    //delete actual logo from file system
    String logoDir = getSysProp().getValue("LOGO.FILEPATH");
    File f = new File(logoDir + logoFileName);
    if (!f.isDirectory() && f.exists())
      f.delete();
   
    ServletContext sCtx = request.getSession().getServletContext();
    sCtx.setAttribute(BaseConstants.LOGO_NAME, null);   
    return mapping.findForward(BaseConstants.FWD_SUCCESS);
  }   
   
}
TOP

Related Classes of net.naijatek.myalumni.modules.admin.presentation.action.MaintainSystemModuleAction

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.