fixed On Thu, Apr 26, 2012 at 14:29, [email protected] <[email protected]>wrote:
> Yes I agree, a longer description would be extremely helpful. > > I think after you have fixed that I will have to look at the > configuration value in our config table, that has to change to use the > "ical" attribute instead of "jname" too. > > Sebastian > > 2012/4/26 Maxim Solodovnik <[email protected]>: > > Hello Sebastian, > > > > jname was selected since our API (OmTimeZoneDaoImpl) can only get > timezone > > by ID or jname. > > Additionally while adding initial admin user we need to have jname > > (Usermanagement.addUser:1060 requires jName_timezone). > > > > In fact there are no duplicate output in admin: > > Etc/GMT+1 > > Etc/GMT+1 (North Africa) > > > > so user should enter "Etc/GMT+1" or "Etc/GMT+1 (North Africa)". > > > > I can change admin to expect timezone as iCal, but in such case we need > to > > agree what will be the form of user hint. > > > > I mean: > > I leave in Russia/Novosibirsk, I know my timezone is Novosibirsk (GMT+7). > > Currently I can see my timezone in the available timezone list > (Etc/GMT+7 ) > > but if available timezone list will be "Asia/Jakarta" it might confusing. > > > > I guess timezone hint should looks like follows > > > > Please enter > > "Asia/Jakarta" for Novosibirsk, Indochina Time, Thailand, > > Vietnam, Jakarta (Etc/GMT+7) > > "Australia/Queensland" for Russia (Zabaykalsky Krai), Papua New Guinea, > > Australia (Queensland) Etc/GMT+10 > > ........................................ > > > > what do you think? > > > > On Wed, Apr 25, 2012 at 19:13, [email protected] < > [email protected]> > > wrote: > >> > >> Hi Maxim, > >> > >> I don't think this will work. > >> I thought you would use the field "ical" for matching the given > >> timezone to the user input? > >> > >> I was not able to use the CLI installer to accept any of my input, > >> neither "Berlin", nor "Europe/Berlin". > >> What should be the input that I have to give > >> > >> Also as error / options you list then all available timezone name's as > >> options. There are two times the name GMT+1, so how should the user > >> understand what is the different between GMT+1 and GMT+1 ? > >> > >> > >> Sebastian > >> > >> > >> 2012/4/25 <[email protected]>: > >> > Author: solomax > >> > Date: Wed Apr 25 10:35:08 2012 > >> > New Revision: 1330188 > >> > > >> > URL: http://svn.apache.org/viewvc?rev=1330188&view=rev > >> > Log: > >> > OPENMEETINGS-111 tz issues was fixed; options to install OM from > backup > >> > provided is added. > >> > > >> > Modified: > >> > > >> > > > incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/installation/ImportInitvalues.java > >> > > >> > > incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/cli/Admin.java > >> > > >> > > > incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/servlet/outputhandler/Install.java > >> > > >> > > > incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/utils/ImportHelper.java > >> > > >> > Modified: > >> > > incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/installation/ImportInitvalues.java > >> > URL: > >> > > http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/installation/ImportInitvalues.java?rev=1330188&r1=1330187&r2=1330188&view=diff > >> > > >> > > ============================================================================== > >> > --- > >> > > incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/installation/ImportInitvalues.java > >> > (original) > >> > +++ > >> > > incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/installation/ImportInitvalues.java > >> > Wed Apr 25 10:35:08 2012 > >> > @@ -768,8 +768,7 @@ public class ImportInitvalues { > >> > List<OmTimeZone> omTimeZones = new > >> > LinkedList<OmTimeZone>(); > >> > > >> > SAXReader reader = new SAXReader(); > >> > - Document document = reader.read(filePath > >> > - + > ImportInitvalues.nameOfTimeZoneFile); > >> > + Document document = reader.read(new File(filePath, > >> > ImportInitvalues.nameOfTimeZoneFile)); > >> > > >> > Element root = document.getRootElement(); > >> > > >> > @@ -960,8 +959,7 @@ public class ImportInitvalues { > >> > } > >> > // > >> > > ------------------------------------------------------------------------------ > >> > > >> > - public void loadAll(String filePath, InstallationConfig cfg, > >> > String username, > >> > - String userpass, String useremail, String > >> > groupame, String timeZone) throws Exception { > >> > + public void loadSystem(String filePath, InstallationConfig > cfg) > >> > throws Exception { > >> > loadMainMenu(); > >> > loadErrorMappingsFromXML(filePath); > >> > loadInitLanguages(filePath); > >> > @@ -974,7 +972,12 @@ public class ImportInitvalues { > >> > loadPollTypes(); > >> > > >> > loadConfiguration(cfg); > >> > + } > >> > + > >> > + public void loadAll(String filePath, InstallationConfig cfg, > >> > String username, > >> > + String userpass, String useremail, String > >> > groupame, String timeZone) throws Exception { > >> > > >> > + loadSystem(filePath, cfg); > >> > loadInitUserAndOrganisation(username, > >> > userpass, useremail, groupame, > timeZone, > >> > cfg.defaultLangId); > >> > > >> > > >> > Modified: > >> > > incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/cli/Admin.java > >> > URL: > >> > > http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/cli/Admin.java?rev=1330188&r1=1330187&r2=1330188&view=diff > >> > > >> > > ============================================================================== > >> > --- > >> > > incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/cli/Admin.java > >> > (original) > >> > +++ > >> > > incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/cli/Admin.java > >> > Wed Apr 25 10:35:08 2012 > >> > @@ -9,6 +9,7 @@ import java.net.MalformedURLException; > >> > import java.net.URL; > >> > import java.util.Date; > >> > import java.util.Enumeration; > >> > +import java.util.Map; > >> > import java.util.Set; > >> > > >> > import javax.mail.internet.AddressException; > >> > @@ -27,15 +28,14 @@ import org.apache.commons.cli.Parser; > >> > import org.apache.commons.cli.PosixParser; > >> > import org.apache.openjpa.jdbc.meta.MappingTool; > >> > import org.openmeetings.app.OpenmeetingsVariables; > >> > -import org.openmeetings.app.data.basic.dao.OmTimeZoneDaoImpl; > >> > import org.openmeetings.app.data.file.FileUtils; > >> > import org.openmeetings.app.documents.InstallationDocumentHandler; > >> > import org.openmeetings.app.installation.ImportInitvalues; > >> > import org.openmeetings.app.installation.InstallationConfig; > >> > -import org.openmeetings.app.persistence.beans.basic.OmTimeZone; > >> > import org.openmeetings.app.remote.red5.ScopeApplicationAdapter; > >> > import org.openmeetings.servlet.outputhandler.BackupExport; > >> > import org.openmeetings.servlet.outputhandler.BackupImportController; > >> > +import org.openmeetings.utils.ImportHelper; > >> > import org.openmeetings.utils.OMContextListener; > >> > import org.openmeetings.utils.mail.MailUtil; > >> > import org.openmeetings.utils.math.CalendarPatterns; > >> > @@ -49,6 +49,8 @@ public class Admin { > >> > private boolean verbose = false; > >> > private InstallationConfig cfg = null; > >> > private Options opts = null; > >> > + private CommandLine cmdl = null; > >> > + File omHome = null; > >> > > >> > private Admin() { > >> > cfg = new InstallationConfig(); > >> > @@ -69,12 +71,12 @@ public class Admin { > >> > options.addOption(new OmOption(null, "v", "verbose", > >> > false, "verbose error messages")); > >> > //backup/restore > >> > options.addOption(new OmOption("b", null, > >> > "exclude-files", false, "should backup exclude files [default: > include]", > >> > true)); > >> > - options.addOption(new OmOption("b,r", "file", null, > >> > true, "file used for backup/restore", "b")); > >> > + options.addOption(new OmOption("b,r,i", "file", null, > >> > true, "file used for backup/restore/install", "b")); > >> > //install > >> > - options.addOption(new OmOption("i", "user", null, > true, > >> > "Login name of the default user, minimum " + > >> > InstallationConfig.USER_LOGIN_MINIMUM_LENGTH + " characters")); > >> > - options.addOption(new OmOption("i", "email", null, > true, > >> > "Email of the default user")); > >> > - options.addOption(new OmOption("i", "group", null, > true, > >> > "The name of the default user group")); > >> > - options.addOption(new OmOption("i", "tz", null, true, > >> > "Default server time zone, and time zone for the selected user [for > ex: > >> > 'GMT+10', '-2', 'Chicago']")); > >> > + options.addOption(new OmOption("i", "user", null, > true, > >> > "Login name of the default user, minimum " + > >> > InstallationConfig.USER_LOGIN_MINIMUM_LENGTH + " characters (mutually > >> > exclusive with 'file')")); > >> > + options.addOption(new OmOption("i", "email", null, > true, > >> > "Email of the default user (mutually exclusive with 'file')")); > >> > + options.addOption(new OmOption("i", "group", null, > true, > >> > "The name of the default user group (mutually exclusive with > 'file')")); > >> > + options.addOption(new OmOption("i", "tz", null, true, > >> > "Default server time zone, and time zone for the selected user > (mutually > >> > exclusive with 'file')")); > >> > options.addOption(new OmOption("i", null, "password", > >> > true, "Password of the default user, minimum " + > >> > InstallationConfig.USER_LOGIN_MINIMUM_LENGTH + " characters (will be > >> > prompted if not set)", true)); > >> > options.addOption(new OmOption("i", null, > >> > "system-email-address", true, "System e-mail address [default: " + > >> > cfg.mailReferer + "]", true)); > >> > options.addOption(new OmOption("i", null, > "smtp-server", > >> > true, "SMTP server for outgoing e-mails [default: " + cfg.smtpServer > + "]", > >> > true)); > >> > @@ -242,11 +244,10 @@ public class Admin { > >> > private void process(String[] args) { > >> > String ctxName = System.getProperty("context", > >> > "openmeetings"); > >> > File home = new File(System.getenv("RED5_HOME")); > >> > - File omHome = new File(new File(home, "webapps"), > >> > ctxName); > >> > + omHome = new File(new File(home, "webapps"), ctxName); > >> > File omUploadTemp = new File(omHome, > >> > OpenmeetingsVariables.UPLOAD_TEMP_DIR); > >> > > >> > Parser parser = new PosixParser(); > >> > - CommandLine cmdl = null; > >> > try { > >> > cmdl = parser.parse(opts, args); > >> > } catch (ParseException e) { > >> > @@ -271,9 +272,10 @@ public class Admin { > >> > switch(cmd) { > >> > case install: > >> > try { > >> > - String login = > >> > cmdl.getOptionValue("user"); > >> > - String email = > >> > cmdl.getOptionValue("email"); > >> > - String group = > >> > cmdl.getOptionValue("group"); > >> > + if (cmdl.hasOption("file") && > >> > (cmdl.hasOption("user") || cmdl.hasOption("email") || > >> > cmdl.hasOption("group"))) { > >> > + > >> > System.out.println("Please specify even 'file' option or 'admin > user'."); > >> > + System.exit(1); > >> > + } > >> > //TODO commented for now, since > >> > not in use boolean force = cmdl.hasOption("force"); > >> > if > >> > (cmdl.hasOption("skip-default-rooms")) { > >> > cfg.createDefaultRooms > = > >> > "0"; > >> > @@ -299,33 +301,7 @@ public class Admin { > >> > if > >> > (cmdl.hasOption("email-use-tls")) { > >> > cfg.mailUseTls = "1"; > >> > } > >> > - if (login == null || > >> > login.length() < InstallationConfig.USER_LOGIN_MINIMUM_LENGTH) { > >> > - > System.out.println("User > >> > login was not provided, or too short, should be at least " + > >> > InstallationConfig.USER_LOGIN_MINIMUM_LENGTH + " character long."); > >> > - System.exit(1); > >> > - } > >> > - > >> > - try { > >> > - if > >> > (!MailUtil.matches(email)) { > >> > - throw new > >> > AddressException("Invalid address"); > >> > - } > >> > - new > >> > InternetAddress(email, true); > >> > - } catch (AddressException ae) > { > >> > - > >> > System.out.println("Please provide non-empty valid email: '" + email > + "' is > >> > not valid."); > >> > - System.exit(1); > >> > - } > >> > - if (group == null || > >> > login.length() < 1) { > >> > - > System.out.println("User > >> > group was not provided, or too short, should be at least 1 character > >> > long."); > >> > - System.exit(1); > >> > - } > >> > - String pass = > >> > cmdl.getOptionValue("password"); > >> > - if (pass == null || > >> > pass.length() < InstallationConfig.USER_PASSWORD_MINIMUM_LENGTH) { > >> > - > System.out.print("Please > >> > enter password:"); > >> > - pass = new > >> > BufferedReader(new InputStreamReader(System.in)).readLine(); > >> > - if (pass == null || > >> > pass.length() < InstallationConfig.USER_PASSWORD_MINIMUM_LENGTH) { > >> > - > >> > System.out.println("Password was not provided, or too short, should > be at > >> > least " + InstallationConfig.USER_PASSWORD_MINIMUM_LENGTH + " > character > >> > long."); > >> > - > System.exit(1); > >> > - } > >> > - } > >> > + String langPath = new > >> > File(omHome, ImportInitvalues.languageFolderName).getAbsolutePath(); > //FIXME > >> > need to be moved to helper > >> > ConnectionProperties > >> > connectionProperties = new ConnectionProperties(); > >> > if (cmdl.hasOption("db-type") > || > >> > cmdl.hasOption("db-host") || cmdl.hasOption("db-port") || > >> > cmdl.hasOption("db-name") || cmdl.hasOption("db-user") || > >> > cmdl.hasOption("db-pass")) { > >> > String dbType = > >> > cmdl.getOptionValue("db-type", "derby"); > >> > @@ -342,30 +318,18 @@ public class Admin { > >> > , > >> > connectionProperties > >> > ); > >> > } > >> > - > >> > - if(cmdl.hasOption("drop")) { > >> > - String[] > mappingToolArgs > >> > = {"-sa", "drop", "-p", omHome.getPath() + > >> > "/WEB-INF/classes/META-INF/persistence.xml", > >> > - > >> > "-connectionDriverName", connectionProperties.getDriverName(), > >> > "-connectionURL", connectionProperties.getConnectionURL(), > >> > - > >> > "-connectionUserName", connectionProperties.getConnectionLogin(), > >> > "-connectionPassword", connectionProperties.getConnectionPass()}; > >> > - > >> > MappingTool.main(mappingToolArgs); > >> > - } > >> > - > >> > ClassPathXmlApplicationContext > >> > ctx = getApplicationContext(ctxName); > >> > - OmTimeZoneDaoImpl tzDao = > >> > ctx.getBean(OmTimeZoneDaoImpl.class); > >> > - String tz = null; > >> > - if (cmdl.hasOption("tz")) { > >> > - tz = > >> > cmdl.getOptionValue("tz"); > >> > - tz = > >> > tzDao.getOmTimeZone(tz) == null ? null : tz; > >> > - } > >> > - if (tz == null) { > >> > - > >> > System.out.println("Please enter timezone, Possible timezones are:"); > >> > - for (OmTimeZone omTz : > >> > tzDao.getOmTimeZones()) { > >> > - > >> > System.out.println(omTz.getJname()); > >> > - } > >> > - System.exit(1); > >> > - } > >> > ImportInitvalues importInit = > >> > ctx.getBean(ImportInitvalues.class); > >> > - importInit.loadAll(new > >> > File(omHome, ImportInitvalues.languageFolderName).getAbsolutePath(), > cfg, > >> > login, pass, email, group, tz); > >> > + if (cmdl.hasOption("file")) { > >> > + File backup = > >> > checkRestoreFile(file); > >> > + > >> > dropDB(connectionProperties); > >> > + > >> > importInit.loadSystem(langPath, cfg); > >> > + restoreOm(ctxName, > >> > backup); > >> > + } else { > >> > + AdminUserDetails > admin = > >> > checkAdminDetails(importInit, langPath); > >> > + > >> > dropDB(connectionProperties); > >> > + > >> > importInit.loadAll(langPath, cfg, admin.login, admin.pass, > admin.email, > >> > admin.group, admin.tz); > >> > + } > >> > > >> > File installerFile = new > File(new > >> > File(home, ScopeApplicationAdapter.configDirName), > >> > InstallationDocumentHandler.installFileName); > >> > > >> > > > InstallationDocumentHandler.getInstance().createDocument(installerFile.getAbsolutePath(), > >> > 1); > >> > @@ -392,19 +356,7 @@ public class Admin { > >> > } > >> > break; > >> > case restore: > >> > - try { > >> > - File backup = new File(file); > >> > - if (!cmdl.hasOption("file") || > >> > !backup.exists() || !backup.isFile()) { > >> > - > System.out.println("File > >> > should be specified, and point the existent zip file"); > >> > - usage(); > >> > - System.exit(1); > >> > - } > >> > - > >> > - BackupImportController > >> > importCtrl = > >> > getApplicationContext(ctxName).getBean(BackupImportController.class); > >> > - importCtrl.performImport(new > >> > FileInputStream(backup), omHome.getAbsolutePath()); > >> > - } catch (Exception e) { > >> > - handleError("Restore failed", > >> > e); > >> > - } > >> > + restoreOm(ctxName, > >> > checkRestoreFile(file)); > >> > break; > >> > case files: > >> > try { > >> > @@ -451,6 +403,95 @@ public class Admin { > >> > System.exit(0); > >> > } > >> > > >> > + private class AdminUserDetails { > >> > + String login = null; > >> > + String email = null; > >> > + String group = null; > >> > + String pass = null; > >> > + String tz = null; > >> > + } > >> > + > >> > + private AdminUserDetails checkAdminDetails(ImportInitvalues > >> > importInit, String langPath) throws Exception { > >> > + AdminUserDetails admin = new AdminUserDetails(); > >> > + admin.login = cmdl.getOptionValue("user"); > >> > + admin.email = cmdl.getOptionValue("email"); > >> > + admin.group = cmdl.getOptionValue("group"); > >> > + if (admin.login == null || admin.login.length() < > >> > InstallationConfig.USER_LOGIN_MINIMUM_LENGTH) { > >> > + System.out.println("User login was not > provided, > >> > or too short, should be at least " + > >> > InstallationConfig.USER_LOGIN_MINIMUM_LENGTH + " character long."); > >> > + System.exit(1); > >> > + } > >> > + > >> > + try { > >> > + if (!MailUtil.matches(admin.email)) { > >> > + throw new AddressException("Invalid > >> > address"); > >> > + } > >> > + new InternetAddress(admin.email, true); > >> > + } catch (AddressException ae) { > >> > + System.out.println("Please provide non-empty > >> > valid email: '" + admin.email + "' is not valid."); > >> > + System.exit(1); > >> > + } > >> > + if (admin.group == null || admin.group.length() < 1) { > >> > + System.out.println("User group was not > provided, > >> > or too short, should be at least 1 character long: " + admin.group); > >> > + System.exit(1); > >> > + } > >> > + admin.pass = cmdl.getOptionValue("password"); > >> > + if (checkPassword(admin.pass)) { > >> > + System.out.print("Please enter password:"); > >> > + admin.pass = new BufferedReader(new > >> > InputStreamReader(System.in)).readLine(); > >> > + if (checkPassword(admin.pass)) { > >> > + System.out.println("Password was not > >> > provided, or too short, should be at least " + > >> > InstallationConfig.USER_PASSWORD_MINIMUM_LENGTH + " character long."); > >> > + System.exit(1); > >> > + } > >> > + } > >> > + Map<String, String> tzMap = > >> > ImportHelper.getAllTimeZones(importInit.getTimeZones(langPath)); > >> > + admin.tz = null; > >> > + if (cmdl.hasOption("tz")) { > >> > + admin.tz = cmdl.getOptionValue("tz"); > >> > + admin.tz = tzMap.containsKey(admin.tz) ? > >> > admin.tz : null; > >> > + } > >> > + if (admin.tz == null) { > >> > + System.out.println("Please enter timezone, > >> > Possible timezones are:"); > >> > + for (String tzJname : tzMap.keySet()) { > >> > + System.out.println(tzJname); > >> > + } > >> > + System.exit(1); > >> > + } > >> > + return admin; > >> > + } > >> > + > >> > + private boolean checkPassword(String pass) { > >> > + return (pass == null || pass.length() < > >> > InstallationConfig.USER_PASSWORD_MINIMUM_LENGTH); > >> > + } > >> > + > >> > + private void dropDB(ConnectionProperties props) throws > Exception > >> > { > >> > + if(cmdl.hasOption("drop")) { > >> > + String[] mappingToolArgs = {"-sa", "drop", > "-p", > >> > omHome.getAbsolutePath() + > "/WEB-INF/classes/META-INF/persistence.xml", > >> > + "-connectionDriverName", > >> > props.getDriverName(), "-connectionURL", props.getConnectionURL(), > >> > + "-connectionUserName", > >> > props.getConnectionLogin(), "-connectionPassword", > >> > props.getConnectionPass()}; > >> > + MappingTool.main(mappingToolArgs); > >> > + } > >> > + } > >> > + > >> > + private File checkRestoreFile(String file) { > >> > + File backup = new File(file); > >> > + if (!cmdl.hasOption("file") || !backup.exists() || > >> > !backup.isFile()) { > >> > + System.out.println("File should be specified, > >> > and point the existent zip file"); > >> > + usage(); > >> > + System.exit(1); > >> > + } > >> > + > >> > + return backup; > >> > + } > >> > + > >> > + private void restoreOm(String ctxName, File backup) { > >> > + try { > >> > + BackupImportController importCtrl = > >> > getApplicationContext(ctxName).getBean(BackupImportController.class); > >> > + importCtrl.performImport(new > >> > FileInputStream(backup), omHome.getAbsolutePath()); > >> > + } catch (Exception e) { > >> > + handleError("Restore failed", e); > >> > + } > >> > + } > >> > + > >> > public static void main(String[] args) { > >> > new Admin().process(args); > >> > } > >> > > >> > Modified: > >> > > incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/servlet/outputhandler/Install.java > >> > URL: > >> > > http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/servlet/outputhandler/Install.java?rev=1330188&r1=1330187&r2=1330188&view=diff > >> > > >> > > ============================================================================== > >> > --- > >> > > incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/servlet/outputhandler/Install.java > >> > (original) > >> > +++ > >> > > incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/servlet/outputhandler/Install.java > >> > Wed Apr 25 10:35:08 2012 > >> > @@ -38,6 +38,7 @@ import org.openmeetings.app.installation > >> > import org.openmeetings.app.installation.InstallationConfig; > >> > import org.openmeetings.app.persistence.beans.basic.OmTimeZone; > >> > import org.openmeetings.app.remote.red5.ScopeApplicationAdapter; > >> > +import org.openmeetings.utils.ImportHelper; > >> > import org.red5.logging.Red5LoggerFactory; > >> > import org.slf4j.Logger; > >> > import org.springframework.context.ApplicationContext; > >> > @@ -117,22 +118,14 @@ public class Install extends VelocityVie > >> > allFonts.put("Verdana", "Verdana"); > >> > allFonts.put("Arial", "Arial"); > >> > > >> > - LinkedHashMap<String, String> allTimeZones = new > >> > LinkedHashMap<String, String>(); > >> > List<OmTimeZone> omTimeZoneList = getImportInitvalues() > >> > .getTimeZones(filePath); > >> > - log.debug("omTimeZoneList :: " + > omTimeZoneList.size()); > >> > - for (OmTimeZone omTimeZone : omTimeZoneList) { > >> > - String labelName = omTimeZone.getJname() + " > (" > >> > - + omTimeZone.getLabel() + ")"; > >> > - log.debug("labelName :: " + labelName); > >> > - allTimeZones.put(omTimeZone.getJname(), > >> > labelName); > >> > - } > >> > > >> > Template tpl = super.getTemplate("install_step1_" > >> > + lang + ".vm"); > >> > ctx.put("allLanguages", allLanguages); > >> > ctx.put("allFonts", allFonts); > >> > - ctx.put("allTimeZones", allTimeZones); > >> > + ctx.put("allTimeZones", > >> > ImportHelper.getAllTimeZones(omTimeZoneList)); > >> > StringWriter writer = new StringWriter(); > >> > tpl.merge(ctx, writer); > >> > > >> > > >> > Modified: > >> > > incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/utils/ImportHelper.java > >> > URL: > >> > > http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/utils/ImportHelper.java?rev=1330188&r1=1330187&r2=1330188&view=diff > >> > > >> > > ============================================================================== > >> > --- > >> > > incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/utils/ImportHelper.java > >> > (original) > >> > +++ > >> > > incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/utils/ImportHelper.java > >> > Wed Apr 25 10:35:08 2012 > >> > @@ -18,9 +18,13 @@ > >> > */ > >> > package org.openmeetings.utils; > >> > > >> > +import java.util.LinkedHashMap; > >> > +import java.util.List; > >> > +import java.util.Map; > >> > + > >> > import org.openmeetings.app.OpenmeetingsVariables; > >> > import org.openmeetings.app.data.basic.Configurationmanagement; > >> > -import org.openmeetings.app.persistence.beans.basic.Configuration; > >> > +import org.openmeetings.app.persistence.beans.basic.OmTimeZone; > >> > import org.red5.logging.Red5LoggerFactory; > >> > import org.slf4j.Logger; > >> > > >> > @@ -31,22 +35,27 @@ public class ImportHelper { > >> > > >> > public static final int getMaxUploadSize( > >> > Configurationmanagement cfgManagement) { > >> > - return getMaxUploadSize(cfgManagement, 3L); > >> > - } > >> > - > >> > - public static final int getMaxUploadSize( > >> > - Configurationmanagement cfgManagement, Long > >> > userLevel) { > >> > - Configuration cfg = > cfgManagement.getConfKey(userLevel, > >> > - "DEFAULT_MAX_UPLOAD_SIZE"); > >> > int result = DEFAULT_MAX_UPLOAD_SIZE; > >> > - if (cfg != null) { > >> > - String val = cfg.getConf_value(); > >> > - try { > >> > - result = (int) > >> > Math.min(Long.parseLong(val), Integer.MAX_VALUE); > >> > - } catch (Exception e) { > >> > - log.error("Invalid value saved for > >> > maxUploadSize: " + val, e); > >> > - } > >> > + String maxSize = > >> > cfgManagement.getConfValue("DEFAULT_MAX_UPLOAD_SIZE", String.class, > "" + > >> > result); > >> > + try { > >> > + result = (int) > Math.min(Long.parseLong(maxSize), > >> > Integer.MAX_VALUE); > >> > + } catch (Exception e) { > >> > + log.error("Invalid value saved for > >> > maxUploadSize: " + maxSize, e); > >> > + } > >> > + return result; > >> > + } > >> > + > >> > + public static Map<String, String> > >> > getAllTimeZones(List<OmTimeZone> tzList) { > >> > + Map<String, String> result = new LinkedHashMap<String, > >> > String>(); > >> > + > >> > + log.debug("omTimeZoneList :: " + tzList.size()); > >> > + for (OmTimeZone omTimeZone : tzList) { > >> > + String labelName = omTimeZone.getJname() + " > (" > >> > + + omTimeZone.getLabel() + ")"; > >> > + log.debug("labelName :: " + labelName); > >> > + result.put(omTimeZone.getJname(), labelName); > >> > } > >> > + > >> > return result; > >> > } > >> > } > >> > > >> > > >> > >> > >> > >> -- > >> Sebastian Wagner > >> https://twitter.com/#!/dead_lock > >> http://www.openmeetings.de > >> http://www.webbase-design.de > >> http://www.wagner-sebastian.com > >> [email protected] > > > > > > > > > > -- > > WBR > > Maxim aka solomax > > > > -- > Sebastian Wagner > https://twitter.com/#!/dead_lock > http://www.openmeetings.de > http://www.webbase-design.de > http://www.wagner-sebastian.com > [email protected] > -- WBR Maxim aka solomax
