Package org.apache.openmeetings.servlet.outputhandler

Source Code of org.apache.openmeetings.servlet.outputhandler.Install

/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements.  See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership.  The ASF licenses this file
* to you under 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.apache.openmeetings.servlet.outputhandler;

import java.io.File;
import java.io.StringWriter;
import java.util.LinkedHashMap;
import java.util.List;

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

import org.apache.openmeetings.OpenmeetingsVariables;
import org.apache.openmeetings.data.basic.dao.ConfigurationDao;
import org.apache.openmeetings.documents.InstallationDocumentHandler;
import org.apache.openmeetings.installation.ImportInitvalues;
import org.apache.openmeetings.installation.InstallationConfig;
import org.apache.openmeetings.persistence.beans.basic.OmTimeZone;
import org.apache.openmeetings.servlet.BaseVelocityViewServlet;
import org.apache.openmeetings.servlet.ServerNotInitializedException;
import org.apache.openmeetings.utils.ImportHelper;
import org.apache.openmeetings.utils.OmFileHelper;
import org.apache.velocity.Template;
import org.apache.velocity.context.Context;
import org.red5.logging.Red5LoggerFactory;
import org.slf4j.Logger;

public class Install extends BaseVelocityViewServlet {
 
  private static final long serialVersionUID = 3684381243236013771L;

  private static final Logger log = Red5LoggerFactory.getLogger(
      Install.class, OpenmeetingsVariables.webAppRootKey);

  private Template getStep2Template(HttpServletRequest httpServletRequest, Context ctx, String lang) throws Exception {
    String header = httpServletRequest.getHeader("Accept-Language");
    String[] headerList = header != null ? header.split(",") : new String[0];
    String headCode = headerList.length > 0 ? headerList[0] : "en";
   
    LinkedHashMap<Integer, LinkedHashMap<String, Object>> allLanguagesAll = getBean(ImportInitvalues.class)
        .getLanguageFiles();
    LinkedHashMap<Integer, String> allLanguages = new LinkedHashMap<Integer, String>();
    //first iteration for preferred language
    Integer prefKey = -1;
    String prefName = null;
    for (Integer key : allLanguagesAll.keySet()) {
      String langName = (String) allLanguagesAll.get(key).get("name");
      String langCode = (String) allLanguagesAll.get(key).get("code");
      if (langCode != null) {
        if (headCode.equals(langCode)) {
          prefKey = key;
          prefName = langName;
          break;
        } else if (headCode.startsWith(langCode)) {
          prefKey = key;
          prefName = langName;
        }
      }
    }
    allLanguages.put(prefKey, prefName);
    for (Integer key : allLanguagesAll.keySet()) {
      String langName = (String) allLanguagesAll.get(key).get("name");
      if (key != prefKey) {
        allLanguages.put(key, langName);
      }
    }

    LinkedHashMap<String, String> allFonts = new LinkedHashMap<String, String>();
    allFonts.put("TimesNewRoman", "TimesNewRoman");
    allFonts.put("Verdana", "Verdana");
    allFonts.put("Arial", "Arial");

    List<OmTimeZone> omTimeZoneList = getBean(ImportInitvalues.class)
        .getTimeZones();

    Template tpl = super.getTemplate("install_step1_"
        + lang + ".vm");
    ctx.put("allLanguages", allLanguages);
    ctx.put("allFonts", allFonts);
    ctx.put("allTimeZones", ImportHelper.getAllTimeZones(omTimeZoneList));
    StringWriter writer = new StringWriter();
    tpl.merge(ctx, writer);

    return tpl;
  }
 
  /*
   * (non-Javadoc)
   *
   * @see
   * javax.servlet.http.HttpServlet#doPost(javax.servlet.http.HttpServletRequest
   * , javax.servlet.http.HttpServletResponse)
   */
  @Override
  public Template handleRequest(HttpServletRequest request,
      HttpServletResponse response, Context ctx) {

    try {
      ctx.put("APP_ROOT", OpenmeetingsVariables.webAppRootKey);
      ctx.put("APP_NAME", getBean(ConfigurationDao.class).getAppName());
      String command = request.getParameter("command");

      String lang = request.getParameter("lang");
      if (lang == null)
        lang = "EN";

      File installerFile = OmFileHelper.getInstallFile();

      if (command == null || !installerFile.exists()) {
        log.debug("command equals null");

        if (!installerFile.exists()) {
          File confDir = OmFileHelper.getConfDir();
          boolean b = confDir.canWrite();

          if (!b) {
            // File could not be created so throw an error
            ctx.put("error",
                "Could not Create File, Permission set? ");
            ctx.put("path", confDir.getCanonicalPath());
            return getVelocityView().getVelocityEngine()
                .getTemplate("install_error_" + lang + ".vm");
          } else {
            InstallationDocumentHandler.createDocument(0);
            // File has been created so follow first step of
            // Installation
            return getVelocityView().getVelocityEngine()
                .getTemplate("install_welcome_" + lang + ".vm");
          }

        } else {
          int i = InstallationDocumentHandler.getCurrentStepNumber();
          if (i == 0) {
            return getStep2Template(request, ctx, lang);
          } else {
            return getVelocityView().getVelocityEngine()
                .getTemplate("install_step2_" + lang + ".vm");
          }
        }

      } else if (command.equals("step1")) {

        int i = InstallationDocumentHandler.getCurrentStepNumber();
        if (i == 0) {
          return getStep2Template(request, ctx, lang);
        } else {
          ctx.put("error",
              "This Step of the installation has already been done. continue with step 2 <A HREF='?command=step2'>continue with step 2</A>");
          return getVelocityView().getVelocityEngine().getTemplate(
              "install_exception_" + lang + ".vm");
        }

      } else if (command.equals("step2")) {

        int i = InstallationDocumentHandler.getCurrentStepNumber();
        if (i == 0) {

          log.debug("do init installation");

          String username = request.getParameter("username");
          String userpass = request.getParameter("userpass");
          String useremail = request.getParameter("useremail");
          String orgname = request.getParameter("orgname");
          InstallationConfig cfg = new InstallationConfig();
          cfg.allowFrontendRegister = request.getParameter("configdefault");

          cfg.mailReferer = request.getParameter("configreferer");
          cfg.smtpServer = request.getParameter("configsmtp");
          cfg.smtpPort = request.getParameter("configsmtpport");
          cfg.mailAuthName = request.getParameter("configmailuser");
          cfg.mailAuthPass = request.getParameter("configmailpass");
          cfg.mailUseTls = request.getParameter("mailusetls");
          cfg.replyToOrganizer = request.getParameter("replyToOrganizer");

          cfg.defaultLangId = request.getParameter("configdefaultLang");
          cfg.swfZoom = request.getParameter("swftools_zoom");
          cfg.swfJpegQuality = request.getParameter("swftools_jpegquality");
          cfg.swfPath = request.getParameter("swftools_path");
          cfg.imageMagicPath = request.getParameter("imagemagick_path");
          cfg.sendEmailAtRegister = request.getParameter("sendEmailAtRegister");
          cfg.sendEmailWithVerficationCode = request.getParameter("sendEmailWithVerficationCode");
          cfg.createDefaultRooms = request.getParameter("createDefaultRooms");

          cfg.defaultExportFont = request.getParameter("default_export_font");

          cfg.cryptClassName = request.getParameter("crypt_ClassName");

          cfg.ffmpegPath = request.getParameter("ffmpeg_path");

          cfg.soxPath = request.getParameter("sox_path");

                    // red5sip integration config
                    cfg.red5SipEnable = request.getParameter("red5sip_enable");
                    cfg.red5SipRoomPrefix = request.getParameter("red5sip_room_prefix");
                    cfg.red5SipExtenContext = request.getParameter("red5sip_exten_context");

          String timeZone = request.getParameter("timeZone");
          cfg.ical_timeZone = timeZone;
         
          cfg.jodPath = request.getParameter("jod_path");

          log.debug("step 0+ start init with values. " + username
              + " ***** " + useremail + " " + orgname + " "
              + cfg);

          cfg.urlFeed = getServletContext().getInitParameter(
              "url_feed");
          cfg.urlFeed2 = getServletContext().getInitParameter(
              "url_feed2");
         
          getBean(ImportInitvalues.class).loadAll(cfg, username,
              userpass, useremail, orgname, timeZone, false);

          // update to next step
          log.debug("add level to install file");
          InstallationDocumentHandler.createDocument(1);

          // return
          // getVelocityEngine().getTemplate("install_complete_"+lang+".vm");
          return getVelocityView().getVelocityEngine().getTemplate(
              "install_step2_" + lang + ".vm");
        } else {
          ctx.put("error",
              "This Step of the installation has already been done. continue with step 2 <A HREF='?command=step2'>continue with step 2</A>");
          return getVelocityView().getVelocityEngine().getTemplate(
              "install_exception_" + lang + ".vm");
        }

      } else if (command.equals("step")) {

        int i = InstallationDocumentHandler.getCurrentStepNumber();
        if (i == 0) {

        }

      }
    } catch (ServerNotInitializedException err) {
      return getBooting();
    } catch (Exception err2) {
      log.error("Install: ", err2);
    }

    return null;
  }

}
TOP

Related Classes of org.apache.openmeetings.servlet.outputhandler.Install

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.