Search in sources :

Example 6 with Form

use of com.manydesigns.elements.forms.Form in project Portofino by ManyDesigns.

the class MailSettingsAction method update.

@PUT
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public Form update(String jsonObject) {
    Form form = setupFormAndBean();
    FormUtil.readFromJson(form, new JSONObject(jsonObject));
    if (form.validate()) {
        logger.debug("Applying settings to model");
        try {
            MailSettings settings = new MailSettings();
            form.writeToObject(settings);
            configuration.getProperties().setProperty(MailProperties.MAIL_ENABLED, settings.mailEnabled);
            configuration.getProperties().setProperty(MailProperties.MAIL_KEEP_SENT, settings.keepSent);
            configuration.getProperties().setProperty(MailProperties.MAIL_QUEUE_LOCATION, settings.queueLocation);
            configuration.getProperties().setProperty(MailProperties.MAIL_SMTP_HOST, settings.smtpHost);
            configuration.getProperties().setProperty(MailProperties.MAIL_SMTP_PORT, settings.smtpPort);
            configuration.getProperties().setProperty(MailProperties.MAIL_SMTP_SSL_ENABLED, settings.smtpSSL);
            configuration.getProperties().setProperty(MailProperties.MAIL_SMTP_TLS_ENABLED, settings.smtpTLS);
            configuration.getProperties().setProperty(MailProperties.MAIL_SMTP_LOGIN, settings.smtpLogin);
            configuration.getProperties().setProperty(MailProperties.MAIL_SMTP_PASSWORD, settings.smtpPassword);
            configuration.save();
            return form;
        } catch (Exception e) {
            logger.error("Configuration not saved", e);
            throw new WebApplicationException("Configuration not saved", e);
        }
    } else {
        throw new WebApplicationException(Response.serverError().entity(form).build());
    }
}
Also used : JSONObject(org.json.JSONObject) Form(com.manydesigns.elements.forms.Form) MailSettings(com.manydesigns.portofino.upstairs.actions.mail.support.MailSettings)

Example 7 with Form

use of com.manydesigns.elements.forms.Form in project Portofino by ManyDesigns.

the class MailSettingsAction method setupFormAndBean.

protected Form setupFormAndBean() {
    Form form = new FormBuilder(MailSettings.class).build();
    MailSettings settings = new MailSettings();
    settings.mailEnabled = configuration.getProperties().getBoolean(MailProperties.MAIL_ENABLED, false);
    settings.keepSent = configuration.getProperties().getBoolean(MailProperties.MAIL_KEEP_SENT, false);
    settings.smtpHost = configuration.getProperties().getString(MailProperties.MAIL_SMTP_HOST);
    settings.smtpPort = configuration.getProperties().getInteger(MailProperties.MAIL_SMTP_PORT, null);
    settings.smtpSSL = configuration.getProperties().getBoolean(MailProperties.MAIL_SMTP_SSL_ENABLED, false);
    settings.smtpTLS = configuration.getProperties().getBoolean(MailProperties.MAIL_SMTP_TLS_ENABLED, false);
    settings.smtpLogin = configuration.getProperties().getString(MailProperties.MAIL_SMTP_LOGIN);
    settings.smtpPassword = configuration.getProperties().getString(MailProperties.MAIL_SMTP_PASSWORD);
    settings.queueLocation = configuration.getProperties().getProperty(MailProperties.MAIL_QUEUE_LOCATION) + "";
    form.readFromObject(settings);
    return form;
}
Also used : FormBuilder(com.manydesigns.elements.forms.FormBuilder) Form(com.manydesigns.elements.forms.Form) MailSettings(com.manydesigns.portofino.upstairs.actions.mail.support.MailSettings)

Example 8 with Form

use of com.manydesigns.elements.forms.Form in project Portofino by ManyDesigns.

the class SettingsAction method update.

@PUT
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public Form update(String jsonObject) {
    Form form = setupFormAndBean();
    FormUtil.readFromJson(form, new JSONObject(jsonObject));
    if (form.validate()) {
        logger.debug("Applying settings to model");
        try {
            Settings settings = new Settings();
            form.writeToObject(settings);
            ResourceAction action = (ResourceAction) getRoot();
            String[] loginPath = settings.loginPath.split("/");
            for (String loginPathSegment : loginPath) {
                Object subResource = action.getSubResource(loginPathSegment);
                if (!(subResource instanceof ResourceAction)) {
                    throw new WebApplicationException("Invalid login path");
                }
                action = (ResourceAction) subResource;
            }
            configuration.getProperties().setProperty(PortofinoProperties.APP_NAME, settings.appName);
            configuration.getProperties().setProperty(PortofinoProperties.APP_VERSION, settings.appVersion);
            configuration.getProperties().setProperty(PortofinoProperties.LOGIN_PATH, settings.loginPath);
            if (!settings.preloadGroovyPages || configuration.getProperties().getProperty(PortofinoProperties.PRELOAD_ACTIONS) != null) {
                configuration.getProperties().setProperty(PortofinoProperties.PRELOAD_ACTIONS, settings.preloadGroovyPages);
            }
            if (!settings.preloadGroovyClasses || configuration.getProperties().getProperty(PortofinoProperties.PRELOAD_CLASSES) != null) {
                configuration.getProperties().setProperty(PortofinoProperties.PRELOAD_CLASSES, settings.preloadGroovyClasses);
            }
            configuration.save();
            return form;
        } catch (Exception e) {
            logger.error("Configuration not saved", e);
            throw new WebApplicationException("Configuration not saved", e);
        }
    } else {
        throw new WebApplicationException(Response.serverError().entity(form).build());
    }
}
Also used : JSONObject(org.json.JSONObject) Form(com.manydesigns.elements.forms.Form) JSONObject(org.json.JSONObject) Settings(com.manydesigns.portofino.upstairs.Settings) AbstractResourceAction(com.manydesigns.portofino.resourceactions.AbstractResourceAction) ResourceAction(com.manydesigns.portofino.resourceactions.ResourceAction)

Example 9 with Form

use of com.manydesigns.elements.forms.Form in project Portofino by ManyDesigns.

the class SettingsAction method setupFormAndBean.

protected Form setupFormAndBean() {
    Settings settings = new Settings();
    settings.appName = configuration.getProperties().getString(PortofinoProperties.APP_NAME);
    settings.appVersion = configuration.getProperties().getString(PortofinoProperties.APP_VERSION);
    settings.loginPath = configuration.getProperties().getString(PortofinoProperties.LOGIN_PATH);
    settings.preloadGroovyPages = configuration.getProperties().getBoolean(PortofinoProperties.PRELOAD_ACTIONS, false);
    settings.preloadGroovyClasses = configuration.getProperties().getBoolean(PortofinoProperties.PRELOAD_CLASSES, false);
    Form form = new FormBuilder(Settings.class).build();
    form.readFromObject(settings);
    return form;
}
Also used : FormBuilder(com.manydesigns.elements.forms.FormBuilder) Form(com.manydesigns.elements.forms.Form) Settings(com.manydesigns.portofino.upstairs.Settings)

Aggregations

Form (com.manydesigns.elements.forms.Form)9 FormBuilder (com.manydesigns.elements.forms.FormBuilder)6 Settings (com.manydesigns.portofino.upstairs.Settings)2 ConnectionProviderDetail (com.manydesigns.portofino.upstairs.actions.database.connections.support.ConnectionProviderDetail)2 MailSettings (com.manydesigns.portofino.upstairs.actions.mail.support.MailSettings)2 BigInteger (java.math.BigInteger)2 JSONObject (org.json.JSONObject)2 MapKeyValueAccessor (com.manydesigns.elements.MapKeyValueAccessor)1 DateField (com.manydesigns.elements.fields.DateField)1 Field (com.manydesigns.elements.fields.Field)1 MutableHttpServletRequest (com.manydesigns.elements.servlet.MutableHttpServletRequest)1 QueueException (com.manydesigns.mail.queue.QueueException)1 Annotation (com.manydesigns.portofino.model.Annotation)1 Property (com.manydesigns.portofino.model.Property)1 AbstractResourceAction (com.manydesigns.portofino.resourceactions.AbstractResourceAction)1 ResourceAction (com.manydesigns.portofino.resourceactions.ResourceAction)1 IOException (java.io.IOException)1 BigDecimal (java.math.BigDecimal)1 SimpleDateFormat (java.text.SimpleDateFormat)1 LocalDate (java.time.LocalDate)1