package org.fenixedu.bennu.portal.domain;
import java.util.Collections;
import java.util.List;
import java.util.Locale;
import org.fenixedu.bennu.core.bootstrap.AdminUserBootstrapper;
import org.fenixedu.bennu.core.bootstrap.BootstrapError;
import org.fenixedu.bennu.core.bootstrap.annotations.Bootstrap;
import org.fenixedu.bennu.core.bootstrap.annotations.Bootstrapper;
import org.fenixedu.bennu.core.bootstrap.annotations.Field;
import org.fenixedu.bennu.core.bootstrap.annotations.Section;
import org.fenixedu.bennu.core.util.CoreConfiguration;
import org.fenixedu.bennu.portal.domain.PortalBootstrapper.PortalSection;
import org.fenixedu.bennu.portal.model.ApplicationRegistry;
import org.fenixedu.commons.i18n.LocalizedString;
@Bootstrapper(bundle = "resources.BennuPortalResources", name = "bootstrapper.name", sections = PortalSection.class,
after = AdminUserBootstrapper.class)
public class PortalBootstrapper {
@Bootstrap
public static List<BootstrapError> bootstrapPortal(PortalSection portalSection) {
PortalConfiguration portalConfiguration = PortalConfiguration.getInstance();
new MenuContainer(portalConfiguration.getMenu(), ApplicationRegistry.getAppByKey("bennu-admin"));
portalConfiguration.setApplicationCopyright(makeLocalized(portalSection.getOrganizationName()));
portalConfiguration.setApplicationTitle(makeLocalized(portalSection.getApplicationTitle()));
portalConfiguration.setApplicationSubTitle(makeLocalized(portalSection.getApplicationTitle()));
portalConfiguration.setDocumentationBaseUrl(portalSection.getDocumentationUrl());
return Collections.emptyList();
}
private static LocalizedString makeLocalized(String value) {
LocalizedString.Builder builder = new LocalizedString.Builder();
for (Locale locale : CoreConfiguration.supportedLocales()) {
builder.with(locale, value);
}
return builder.build();
}
@Section(name = "bootstrapper.portalSection.name", description = "bootstrapper.portalSection.description",
bundle = "resources.BennuPortalResources")
public static interface PortalSection {
@Field(name = "bootstrapper.portalSection.installationName", defaultValue = "FenixEdu Demo App", order = 4)
public String getApplicationTitle();
@Field(name = "bootstrapper.portalSection.organizationName", defaultValue = "FenixEdu", order = 3)
public String getOrganizationName();
@Field(name = "bootstrapper.portalSection.documentationUrl", defaultValue = "https://fenixedu.org/dev", order = 5)
public String getDocumentationUrl();
}
}