/** * Create and add a {@link SelectOptionsPageItem} to the page. * * @param servicesCtx * the services context to get the translation service * @param pageDefinition * the page definition on which to add the field * @param labelCode * the message code for the label (will be translated) * @param fieldName * the name of the field * @param options * the list of options * @return the created field on which you can set the value if needed */ public static SelectOptionsPageItem createSelectOptionsField(CommonServicesContext servicesCtx, PageDefinition pageDefinition, String labelCode, String fieldName, Enum<?>... options) { SelectOptionsPageItem pageItem = new SelectOptionsPageItem().setLabel(servicesCtx.getTranslationService().translate(labelCode)); pageItem.setFieldName(fieldName); pageItem.setOptions(Arrays.asList(options).stream().map(it -> it.name()).collect(Collectors.toList())); pageDefinition.addPageItem(pageItem); return pageItem; }
static protected void validate(CommonServicesContext services, DnsEntry dnsEntry) { if (!Strings.isNullOrEmpty(dnsEntry.getName())) { if (typesWithDomain.contains(dnsEntry.getType()) && !DomainValidator.getInstance().isValid(dnsEntry.getName())) { throw new IllegalUpdateException(services.getTranslationService().translate("error.notADomainName")); } if (strictTypesWithDomain.contains(dnsEntry.getType()) && !startWithLetterValidationRegex.matcher(dnsEntry.getName()).matches()) { throw new IllegalUpdateException(services.getTranslationService().translate("error.notStartingWithLetter")); } if (dnsEntry.getType() == DnsEntryType.A && !validIp(dnsEntry.getDetails())) { throw new IllegalUpdateException(services.getTranslationService().translate("error.notAnIp")); } if (dnsEntry.getName().contains(" ")) { throw new IllegalUpdateException(services.getTranslationService().translate("error.notADomainName")); } } }
static protected void validate(CommonServicesContext services, DnsEntry dnsEntry) { if (!Strings.isNullOrEmpty(dnsEntry.getName())) { if (typesWithDomain.contains(dnsEntry.getType()) && !DomainValidator.getInstance().isValid(dnsEntry.getName())) { throw new IllegalUpdateException(services.getTranslationService().translate("error.notADomainName")); } if (strictTypesWithDomain.contains(dnsEntry.getType()) && !startWithLetterValidationRegex.matcher(dnsEntry.getName()).matches()) { throw new IllegalUpdateException(services.getTranslationService().translate("error.notStartingWithLetter")); } if (dnsEntry.getType() == DnsEntryType.A && !validIp(dnsEntry.getDetails())) { throw new IllegalUpdateException(services.getTranslationService().translate("error.notAnIp")); } if (dnsEntry.getName().contains(" ")) { throw new IllegalUpdateException(services.getTranslationService().translate("error.notADomainName")); } } }
@Override public PageDefinition providePageDefinition(CommonServicesContext servicesCtx, Machine resource) { TranslationService translationService = servicesCtx.getTranslationService(); PageDefinition pageDefinition = new PageDefinition(translationService.translate("MachineEditor.title")); if (resource == null) { CommonPageItem.createInputTextField(servicesCtx, pageDefinition, "MachineEditor.name", Machine.PROPERTY_NAME); CommonPageItem.createInputTextField(servicesCtx, pageDefinition, "MachineEditor.publicIp", Machine.PROPERTY_PUBLIC_IP); } else { pageDefinition.addPageItem(new LabelPageItem().setText(translationService.translate("MachineEditor.nameArg", resource.getName()))); pageDefinition.addPageItem(new LabelPageItem().setText(translationService.translate("MachineEditor.publicIpArg", resource.getPublicIp()))); } return pageDefinition; }
@Override public PageDefinition providePageDefinition(CommonServicesContext servicesCtx, Machine resource) { TranslationService translationService = servicesCtx.getTranslationService(); PageDefinition pageDefinition = new PageDefinition(translationService.translate("MachineEditor.title")); if (resource == null) { CommonPageItem.createInputTextField(servicesCtx, pageDefinition, "MachineEditor.name", Machine.PROPERTY_NAME); CommonPageItem.createInputTextField(servicesCtx, pageDefinition, "MachineEditor.publicIp", Machine.PROPERTY_PUBLIC_IP); } else { pageDefinition.addPageItem(new LabelPageItem().setText(translationService.translate("MachineEditor.nameArg", resource.getName()))); pageDefinition.addPageItem(new LabelPageItem().setText(translationService.translate("MachineEditor.publicIpArg", resource.getPublicIp()))); } return pageDefinition; }
@Override public PageDefinition providePageDefinition(CommonServicesContext servicesCtx, WebsiteCertificate resource) { TranslationService translationService = servicesCtx.getTranslationService(); PageDefinition pageDefinition = new PageDefinition(translationService.translate("SelfSignedWebsiteCertificateEditor.title")); InputTextFieldPageItem domainPageItem = CommonPageItem.createInputTextField(servicesCtx, pageDefinition, "SelfSignedWebsiteCertificateEditor.domain", FIELD_NAME_DOMAIN); if (resource != null) { pageDefinition.addPageItem(new LabelPageItem().setText( // translationService.translate("SelfSignedWebsiteCertificateEditor.thumbprint", resource.getThumbprint()) // )); pageDefinition.addPageItem(new LabelPageItem().setText( // translationService.translate("SelfSignedWebsiteCertificateEditor.start", DateTools.formatFull(resource.getStart())) // )); pageDefinition.addPageItem(new LabelPageItem().setText( // translationService.translate("SelfSignedWebsiteCertificateEditor.end", DateTools.formatFull(resource.getEnd())) // )); Optional<String> domain = resource.getDomainNames().stream().findFirst(); domainPageItem.setFieldValue(domain.isPresent() ? domain.get() : null); } return pageDefinition; }
public PageDefinition getPageDefinition() { PageDefinition pageDefinition = new PageDefinition(servicesCtx.getTranslationService().translate(prefix + ".title")); fieldConfigs.forEach(fieldConfig -> { AbstractFieldPageItem pageItem = fieldConfig.getGenAndAddPageItem().apply(pageDefinition); fieldConfig.getAugmentPageItem().accept(pageItem); if (beanWrapper != null) { try { Object propertyValue = beanWrapper.getPropertyValue(fieldConfig.getPropertyName()); if (propertyValue != null) { fieldConfig.getPopulatePageItem().accept(new PopulatePageItemCtx(pageItem, editedResource, propertyValue)); } } catch (InvalidPropertyException e) { fieldConfig.getPopulatePageItem().accept(new PopulatePageItemCtx(pageItem, editedResource, null)); } } }); return pageDefinition; }
@Override public PageDefinition providePageDefinition(CommonServicesContext servicesCtx, WebsiteCertificate resource) { TranslationService translationService = servicesCtx.getTranslationService(); PageDefinition pageDefinition = new PageDefinition(translationService.translate("SelfSignedWebsiteCertificateEditor.title")); InputTextFieldPageItem domainPageItem = CommonPageItem.createInputTextField(servicesCtx, pageDefinition, "SelfSignedWebsiteCertificateEditor.domain", FIELD_NAME_DOMAIN); if (resource != null) { pageDefinition.addPageItem(new LabelPageItem().setText( // translationService.translate("SelfSignedWebsiteCertificateEditor.thumbprint", resource.getThumbprint()) // )); pageDefinition.addPageItem(new LabelPageItem().setText( // translationService.translate("SelfSignedWebsiteCertificateEditor.start", DateTools.formatFull(resource.getStart())) // )); pageDefinition.addPageItem(new LabelPageItem().setText( // translationService.translate("SelfSignedWebsiteCertificateEditor.end", DateTools.formatFull(resource.getEnd())) // )); Optional<String> domain = resource.getDomainNames().stream().findFirst(); domainPageItem.setFieldValue(domain.isPresent() ? domain.get() : null); } return pageDefinition; }
@Override public PageDefinition providePageDefinition(CommonServicesContext servicesCtx, WebsiteCertificate editedResource) { TranslationService translationService = servicesCtx.getTranslationService(); PageDefinition pageDefinition = new PageDefinition(translationService.translate("LetsEncryptWebsiteCertificateEditor.title")); pageDefinition.addPageItem(new LabelPageItem().setText( // translationService.translate("LetsEncryptWebsiteCertificateEditor.information") // )); InputTextFieldPageItem domainPageItem = CommonPageItem.createInputTextField(servicesCtx, pageDefinition, "LetsEncryptWebsiteCertificateEditor.domain", FIELD_NAME_DOMAIN); if (editedResource != null) { pageDefinition.addPageItem(new LabelPageItem().setText( // translationService.translate("LetsEncryptWebsiteCertificateEditor.thumbprint", editedResource.getThumbprint()) // )); pageDefinition.addPageItem(new LabelPageItem().setText( // translationService.translate("LetsEncryptWebsiteCertificateEditor.start", DateTools.formatFull(editedResource.getStart())) // )); pageDefinition.addPageItem(new LabelPageItem().setText( // translationService.translate("LetsEncryptWebsiteCertificateEditor.end", DateTools.formatFull(editedResource.getEnd())) // )); Optional<String> domain = editedResource.getDomainNames().stream().findFirst(); domainPageItem.setFieldValue(domain.isPresent() ? domain.get() : null); } return pageDefinition; }
@Override public PageDefinition providePageDefinition(CommonServicesContext servicesCtx, SystemUnixUser resource) { TranslationService translationService = servicesCtx.getTranslationService(); PageDefinition pageDefinition = new PageDefinition(translationService.translate("SystemUnixUserEditor.title")); InputTextFieldPageItem idPageItem = CommonPageItem.createInputTextField(servicesCtx, pageDefinition, "SystemUnixUserEditor.id", UnixUser.PROPERTY_ID); InputTextFieldPageItem namePageItem = CommonPageItem.createInputTextField(servicesCtx, pageDefinition, "SystemUnixUserEditor.name", UnixUser.PROPERTY_NAME); if (resource != null) { idPageItem.setFieldValue(String.valueOf(resource.getId())); namePageItem.setFieldValue(resource.getName()); } return pageDefinition; }
@Override public PageDefinition providePageDefinition(CommonServicesContext servicesCtx, SystemUnixUser resource) { TranslationService translationService = servicesCtx.getTranslationService(); PageDefinition pageDefinition = new PageDefinition(translationService.translate("SystemUnixUserEditor.title")); InputTextFieldPageItem idPageItem = CommonPageItem.createInputTextField(servicesCtx, pageDefinition, "SystemUnixUserEditor.id", UnixUser.PROPERTY_ID); InputTextFieldPageItem namePageItem = CommonPageItem.createInputTextField(servicesCtx, pageDefinition, "SystemUnixUserEditor.name", UnixUser.PROPERTY_NAME); if (resource != null) { idPageItem.setFieldValue(String.valueOf(resource.getId())); namePageItem.setFieldValue(resource.getName()); } return pageDefinition; }
/** * Create and add an {@link InputTextFieldPageItem} to the page. * * @param servicesCtx * the services context to get the translation service * @param pageDefinition * the page definition on which to add the field * @param labelCode * the message code for the label (will be translated) * @param fieldName * the name of the field * @return the created field on which you can set the value if needed */ public static InputTextFieldPageItem createInputTextField(CommonServicesContext servicesCtx, PageDefinition pageDefinition, String labelCode, String fieldName) { InputTextFieldPageItem pageItem = new InputTextFieldPageItem().setLabel(servicesCtx.getTranslationService().translate(labelCode)); pageItem.setFieldName(fieldName); pageDefinition.addPageItem(pageItem); return pageItem; }
/** * Create and add an {@link MultilineInputTextFieldPageItem} to the page. * * @param servicesCtx * the services context to get the translation service * @param pageDefinition * the page definition on which to add the field * @param labelCode * the message code for the label (will be translated) * @param fieldName * the name of the field * @return the created field on which you can set the value if needed */ public static MultilineInputTextFieldPageItem createMultilineInputTextField(CommonServicesContext servicesCtx, PageDefinition pageDefinition, String labelCode, String fieldName) { MultilineInputTextFieldPageItem pageItem = new MultilineInputTextFieldPageItem().setLabel(servicesCtx.getTranslationService().translate(labelCode)); pageItem.setFieldName(fieldName); pageDefinition.addPageItem(pageItem); return pageItem; }
/** * Create and add a {@link ListInputTextFieldPageItem} to the page. * * @param servicesCtx * the services context to get the translation service * @param pageDefinition * the page definition on which to add the field * @param labelCode * the message code for the label (will be translated) * @param fieldName * the name of the field * @return the created field on which you can set the value if needed */ public static ListInputTextFieldPageItem createListInputTextFieldPageItem(CommonServicesContext servicesCtx, PageDefinition pageDefinition, String labelCode, String fieldName) { ListInputTextFieldPageItem pageItem = new ListInputTextFieldPageItem().setLabel(servicesCtx.getTranslationService().translate(labelCode)); pageItem.setFieldName(fieldName); pageDefinition.addPageItem(pageItem); return pageItem; }
/** * Create and add a {@link SelectOptionsPageItem} to the page. * * @param servicesCtx * the services context to get the translation service * @param pageDefinition * the page definition on which to add the field * @param labelCode * the message code for the label (will be translated) * @param fieldName * the name of the field * @param options * the list of options * @return the created field on which you can set the value if needed */ public static SelectOptionsPageItem createSelectOptionsField(CommonServicesContext servicesCtx, PageDefinition pageDefinition, String labelCode, String fieldName, List<String> options) { SelectOptionsPageItem pageItem = new SelectOptionsPageItem().setLabel(servicesCtx.getTranslationService().translate(labelCode)); pageItem.setFieldName(fieldName); pageItem.setOptions(options); pageDefinition.addPageItem(pageItem); return pageItem; }
@Override public PageDefinition providePageDefinition(CommonServicesContext servicesCtx, EmailAccount resource) { TranslationService translationService = servicesCtx.getTranslationService(); PageDefinition pageDefinition = new PageDefinition(translationService.translate("EmailAccountEditor.title")); InputTextFieldPageItem accountNamePageItem = CommonPageItem.createInputTextField(servicesCtx, pageDefinition, "EmailAccountEditor.accountName", EmailAccount.PROPERTY_ACCOUNT_NAME); CommonPageItem.createInputTextField(servicesCtx, pageDefinition, "EmailAccountEditor.password", FIELD_PASSWORD).setPassword(true); CommonPageItem.createInputTextField(servicesCtx, pageDefinition, "EmailAccountEditor.passwordConf", FIELD_PASSWORD_CONF).setPassword(true); CommonResourceLink.addResourcesPageItem(servicesCtx, pageDefinition, resource, LinkTypeConstants.INSTALLED_ON, EmailDomain.class, "EmailAccountEditor.domain", FIELD_DOMAIN); if (resource != null) { accountNamePageItem.setFieldValue(resource.getAccountName()); } return pageDefinition; }
@Override public PageDefinition providePageDefinition(CommonServicesContext servicesCtx, DnsEntry resource) { TranslationService translationService = servicesCtx.getTranslationService(); PageDefinition pageDefinition = new PageDefinition(translationService.translate("ManualDnsEntryEditor.title")); InputTextFieldPageItem namePageItem = CommonPageItem.createInputTextField(servicesCtx, pageDefinition, "ManualDnsEntryEditor.name", DnsEntry.PROPERTY_NAME); SelectOptionsPageItem typePageItem = CommonPageItem.createSelectOptionsField(servicesCtx, pageDefinition, "ManualDnsEntryEditor.type", DnsEntry.PROPERTY_TYPE, DnsEntryType.values()); InputTextFieldPageItem detailsPageItem = CommonPageItem.createInputTextField(servicesCtx, pageDefinition, "ManualDnsEntryEditor.details", DnsEntry.PROPERTY_DETAILS); if (resource != null) { namePageItem.setFieldValue(resource.getName()); typePageItem.setFieldValue(resource.getType().name()); detailsPageItem.setFieldValue(resource.getDetails()); } return pageDefinition; }
@Override public PageDefinition providePageDefinition(CommonServicesContext servicesCtx, DnsEntry resource) { TranslationService translationService = servicesCtx.getTranslationService(); PageDefinition pageDefinition = new PageDefinition(translationService.translate("ManualDnsEntryEditor.title")); InputTextFieldPageItem namePageItem = CommonPageItem.createInputTextField(servicesCtx, pageDefinition, "ManualDnsEntryEditor.name", DnsEntry.PROPERTY_NAME); SelectOptionsPageItem typePageItem = CommonPageItem.createSelectOptionsField(servicesCtx, pageDefinition, "ManualDnsEntryEditor.type", DnsEntry.PROPERTY_TYPE, DnsEntryType.values()); InputTextFieldPageItem detailsPageItem = CommonPageItem.createInputTextField(servicesCtx, pageDefinition, "ManualDnsEntryEditor.details", DnsEntry.PROPERTY_DETAILS); if (resource != null) { namePageItem.setFieldValue(resource.getName()); typePageItem.setFieldValue(resource.getType().name()); detailsPageItem.setFieldValue(resource.getDetails()); } return pageDefinition; }
@Override public PageDefinition providePageDefinition(CommonServicesContext servicesCtx, AttachableService editedResource) { TranslationService translationService = servicesCtx.getTranslationService(); PageDefinition pageDefinition = new PageDefinition(translationService.translate("AttachableServiceEditor.title")); InputTextFieldPageItem nameField = CommonPageItem.createInputTextField(servicesCtx, pageDefinition, "AttachableServiceEditor.name", AttachableService.PROPERTY_NAME); InputTextFieldPageItem commandField = CommonPageItem.createInputTextField(servicesCtx, pageDefinition, "AttachableServiceEditor.command", AttachableService.PROPERTY_COMMAND); InputTextFieldPageItem workingDirectoryField = CommonPageItem.createInputTextField(servicesCtx, pageDefinition, "AttachableServiceEditor.workingDirectory", AttachableService.PROPERTY_WORKING_DIRECTORY); CommonResourceLink.addResourcePageItem(servicesCtx, pageDefinition, editedResource, LinkTypeConstants.RUN_AS, UnixUser.class, "AttachableServiceEditor.unixUser", "unixUser"); if (editedResource != null) { nameField.setFieldValue(editedResource.getName()); commandField.setFieldValue(editedResource.getCommand()); workingDirectoryField.setFieldValue(editedResource.getWorkingDirectory()); } return pageDefinition; }
@Override public PageDefinition providePageDefinition(CommonServicesContext servicesCtx, Bind9Server editedResource) { TranslationService translationService = servicesCtx.getTranslationService(); PageDefinition pageDefinition = new PageDefinition(translationService.translate("Bind9ServerEditor.title")); InputTextFieldPageItem nameField = CommonPageItem.createInputTextField(servicesCtx, pageDefinition, "Bind9ServerEditor.name", Bind9Server.PROPERTY_NAME); InputTextFieldPageItem portField = CommonPageItem.createInputTextField(servicesCtx, pageDefinition, "Bind9ServerEditor.port", Bind9Server.PROPERTY_PORT); portField.setFieldValue("53"); InputTextFieldPageItem adminEmailField = CommonPageItem.createInputTextField(servicesCtx, pageDefinition, "Bind9ServerEditor.adminEmail", Bind9Server.PROPERTY_ADMIN_EMAIL); ListInputTextFieldPageItem nsDomainNamesField = CommonPageItem.createListInputTextFieldPageItem(servicesCtx, pageDefinition, "Bind9ServerEditor.nsDomainNames", Bind9Server.PROPERTY_NS_DOMAIN_NAMES); CommonResourceLink.addResourcePageItem(servicesCtx, pageDefinition, editedResource, LinkTypeConstants.RUN_AS, UnixUser.class, "Bind9ServerEditor.unixUser", "unixUser"); CommonResourceLink.addResourcesPageItem(servicesCtx, pageDefinition, editedResource, LinkTypeConstants.INSTALLED_ON, Machine.class, "Bind9ServerEditor.machines", "machines"); if (editedResource != null) { nameField.setFieldValue(editedResource.getName()); adminEmailField.setFieldValue(editedResource.getAdminEmail()); portField.setFieldValue(String.valueOf(editedResource.getPort())); nsDomainNamesField.setFieldValues(CommonFieldHelper.fromSetToList(editedResource.getNsDomainNames())); } return pageDefinition; }