Search in sources :

Example 16 with Field

use of org.broadleafcommerce.openadmin.web.form.entity.Field in project BroadleafCommerce by BroadleafCommerce.

the class AdminOfferControllerExtensionHandler method setAdditionalModelAttributes.

@Override
public ExtensionResultStatusType setAdditionalModelAttributes(Model model, String sectionKey) {
    if (AdminOfferController.SECTION_KEY.equals(sectionKey)) {
        EntityForm form = (EntityForm) model.asMap().get("entityForm");
        if (form != null) {
            // UX Meta-Data to display the Rule Builders on the Offer Screen
            FieldGroup ruleConfigGroup = form.findGroup(OfferAdminPresentation.GroupName.RuleConfiguration);
            if (ruleConfigGroup != null) {
                ruleConfigGroup.getGroupAttributes().put("additionalGroupClasses", "card");
            }
            // Qualifier and Target Item Builders
            Field qualField = form.findField("qualifyingItemCriteria");
            if (qualField != null) {
                qualField.setDisplayType(RuleBuilderDisplayType.NORMAL.name());
            }
            Field fgField = form.findField("offerMatchRules---FULFILLMENT_GROUP");
            if (fgField != null) {
                fgField.setDisplayType(RuleBuilderDisplayType.NORMAL.name());
            }
            Field tarField = form.findField("targetItemCriteria");
            if (tarField != null) {
                tarField.setDisplayType(RuleBuilderDisplayType.NORMAL.name());
            }
            // Activity Range Builder
            Field timeField = form.findField("offerMatchRules---TIME");
            if (timeField != null) {
                timeField.setDisplayType(RuleBuilderDisplayType.MODAL.name());
            }
            // Usage Builders
            Field custField = form.findField("offerMatchRules---CUSTOMER");
            if (custField != null) {
                custField.setDisplayType(RuleBuilderDisplayType.MODAL.name());
            }
            Field orderField = form.findField("offerMatchRules---ORDER");
            if (orderField != null) {
                orderField.setDisplayType(RuleBuilderDisplayType.MODAL.name());
            }
        }
    }
    return ExtensionResultStatusType.HANDLED_CONTINUE;
}
Also used : EntityForm(org.broadleafcommerce.openadmin.web.form.entity.EntityForm) Field(org.broadleafcommerce.openadmin.web.form.entity.Field) FieldGroup(org.broadleafcommerce.openadmin.web.form.entity.FieldGroup)

Example 17 with Field

use of org.broadleafcommerce.openadmin.web.form.entity.Field in project BroadleafCommerce by BroadleafCommerce.

the class FormBuilderServiceImpl method createHeaderField.

protected Field createHeaderField(Property p, BasicFieldMetadata fmd) {
    Field hf;
    if (fmd.getFieldType().equals(SupportedFieldType.EXPLICIT_ENUMERATION) || fmd.getFieldType().equals(SupportedFieldType.BROADLEAF_ENUMERATION) || fmd.getFieldType().equals(SupportedFieldType.DATA_DRIVEN_ENUMERATION) || fmd.getFieldType().equals(SupportedFieldType.EMPTY_ENUMERATION)) {
        hf = new ComboField();
        ((ComboField) hf).setOptions(fmd.getEnumerationValues());
    } else {
        hf = new Field();
    }
    hf.withName(p.getName()).withFriendlyName(StringUtils.isNotEmpty(fmd.getFriendlyName()) ? fmd.getFriendlyName() : p.getName()).withOrder(fmd.getGridOrder()).withColumnWidth(fmd.getColumnWidth()).withForeignKeyDisplayValueProperty(fmd.getForeignKeyDisplayValueProperty()).withForeignKeyClass(fmd.getForeignKeyClass()).withForeignKeySectionPath(getAdminSectionPath(fmd.getForeignKeyClass())).withOwningEntityClass(fmd.getOwningClass() != null ? fmd.getOwningClass() : fmd.getTargetClass()).withCanLinkToExternalEntity(fmd.getCanLinkToExternalEntity());
    String fieldType = fmd.getFieldType() == null ? null : fmd.getFieldType().toString();
    hf.setFieldType(fieldType);
    return hf;
}
Also used : CodeField(org.broadleafcommerce.openadmin.web.form.entity.CodeField) RuleBuilderField(org.broadleafcommerce.openadmin.web.form.component.RuleBuilderField) Field(org.broadleafcommerce.openadmin.web.form.entity.Field) ComboField(org.broadleafcommerce.openadmin.web.form.entity.ComboField) MediaField(org.broadleafcommerce.openadmin.web.form.component.MediaField) ComboField(org.broadleafcommerce.openadmin.web.form.entity.ComboField)

Example 18 with Field

use of org.broadleafcommerce.openadmin.web.form.entity.Field in project BroadleafCommerce by BroadleafCommerce.

the class FormBuilderServiceImpl method findAssociatedField.

private Field findAssociatedField(EntityForm ef, Field f) {
    // Try on the parent object
    Field associatedField = ef.findField(f.getAssociatedFieldName());
    if (associatedField == null) {
        // Check the field's path
        String[] fieldPathParts = f.getName().split("\\.");
        String testPath = "";
        for (String path : fieldPathParts) {
            testPath += path + ".";
            associatedField = ef.findField(testPath + f.getAssociatedFieldName());
            if (associatedField != null) {
                break;
            }
        }
    }
    return associatedField;
}
Also used : CodeField(org.broadleafcommerce.openadmin.web.form.entity.CodeField) RuleBuilderField(org.broadleafcommerce.openadmin.web.form.component.RuleBuilderField) Field(org.broadleafcommerce.openadmin.web.form.entity.Field) ComboField(org.broadleafcommerce.openadmin.web.form.entity.ComboField) MediaField(org.broadleafcommerce.openadmin.web.form.component.MediaField)

Example 19 with Field

use of org.broadleafcommerce.openadmin.web.form.entity.Field in project BroadleafCommerce by BroadleafCommerce.

the class FormBuilderServiceImpl method buildAdornedListForm.

@Override
public EntityForm buildAdornedListForm(AdornedTargetCollectionMetadata adornedMd, AdornedTargetList adornedList, String parentId, boolean isViewCollectionItem, EntityForm ef, List<SectionCrumb> sectionCrumbs, boolean isAdd) throws ServiceException {
    ef.setEntityType(adornedList.getAdornedTargetEntityClassname());
    // Get the metadata for this adorned field
    PersistencePackageRequest request = PersistencePackageRequest.adorned().withCeilingEntityClassname(adornedMd.getCollectionCeilingEntity()).withAdornedList(adornedList).withSectionCrumbs(sectionCrumbs);
    request.setAddOperationInspect(isAdd);
    ClassMetadata collectionMetadata = adminEntityService.getClassMetadata(request).getDynamicResultSet().getClassMetaData();
    List<Property> entityFormProperties = new ArrayList<>();
    if (isViewCollectionItem) {
        Collections.addAll(entityFormProperties, collectionMetadata.getProperties());
    } else {
        // We want our entity form to only render the maintained adorned target fields
        for (String targetFieldName : adornedMd.getMaintainedAdornedTargetFields()) {
            Property p = collectionMetadata.getPMap().get(targetFieldName);
            if (p.getMetadata() instanceof BasicFieldMetadata && BooleanUtils.isNotTrue(p.getMetadata().getExcluded())) {
                ((BasicFieldMetadata) p.getMetadata()).setVisibility(VisibilityEnum.VISIBLE_ALL);
                entityFormProperties.add(p);
            }
        }
    }
    // Set the maintained fields on the form
    setEntityFormFields(collectionMetadata, ef, entityFormProperties);
    // Add these two additional hidden fields that are required for persistence
    Field f = new Field().withName(adornedList.getLinkedObjectPath() + "." + adornedList.getLinkedIdProperty()).withFieldType(SupportedFieldType.HIDDEN.toString()).withValue(parentId);
    ef.addHiddenField(collectionMetadata, f);
    f = new Field().withName(adornedList.getTargetObjectPath() + "." + adornedList.getTargetIdProperty()).withFieldType(SupportedFieldType.HIDDEN.toString()).withIdOverride("adornedTargetIdProperty");
    ef.addHiddenField(collectionMetadata, f);
    if (StringUtils.isNotBlank(adornedList.getSortField())) {
        f = new Field().withName(adornedList.getSortField()).withFieldType(SupportedFieldType.HIDDEN.toString());
        ef.addHiddenField(collectionMetadata, f);
    }
    ef.setParentId(parentId);
    extensionManager.getProxy().addAdditionalAdornedFormActions(ef);
    return ef;
}
Also used : ClassMetadata(org.broadleafcommerce.openadmin.dto.ClassMetadata) CodeField(org.broadleafcommerce.openadmin.web.form.entity.CodeField) RuleBuilderField(org.broadleafcommerce.openadmin.web.form.component.RuleBuilderField) Field(org.broadleafcommerce.openadmin.web.form.entity.Field) ComboField(org.broadleafcommerce.openadmin.web.form.entity.ComboField) MediaField(org.broadleafcommerce.openadmin.web.form.component.MediaField) BasicFieldMetadata(org.broadleafcommerce.openadmin.dto.BasicFieldMetadata) ArrayList(java.util.ArrayList) PersistencePackageRequest(org.broadleafcommerce.openadmin.server.domain.PersistencePackageRequest) Property(org.broadleafcommerce.openadmin.dto.Property)

Example 20 with Field

use of org.broadleafcommerce.openadmin.web.form.entity.Field in project BroadleafCommerce by BroadleafCommerce.

the class FormBuilderServiceImpl method constructSelectizeOptionMap.

@Override
public Map<String, Object> constructSelectizeOptionMap(DynamicResultSet drs, ClassMetadata cmd) {
    Map<String, Object> result = new HashMap<>();
    List<Map<String, String>> options = new ArrayList<>();
    List<Field> headerFields = new ArrayList<>();
    for (Property p : cmd.getProperties()) {
        if (p.getMetadata() instanceof BasicFieldMetadata) {
            BasicFieldMetadata md = (BasicFieldMetadata) p.getMetadata();
            if (md.isProminent() != null && md.isProminent() && !ArrayUtils.contains(getGridHiddenVisibilities(), md.getVisibility())) {
                Field hf = createHeaderField(p, md);
                headerFields.add(hf);
            }
        }
    }
    for (Entity e : drs.getRecords()) {
        Map<String, String> selectizeOption = new HashMap<>();
        for (Field headerField : headerFields) {
            Property p = e.findProperty(headerField.getName());
            if (p != null) {
                selectizeOption.put("name", p.getValue());
                break;
            }
        }
        if (e.findProperty("id") != null) {
            selectizeOption.put("id", e.findProperty("id").getValue());
        }
        if (e.findProperty(ALTERNATE_ID_PROPERTY) != null) {
            selectizeOption.put("alternateId", e.findProperty(ALTERNATE_ID_PROPERTY).getValue());
        }
        options.add(selectizeOption);
    }
    result.put("options", options);
    return result;
}
Also used : AdminMainEntity(org.broadleafcommerce.common.admin.domain.AdminMainEntity) Entity(org.broadleafcommerce.openadmin.dto.Entity) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) CodeField(org.broadleafcommerce.openadmin.web.form.entity.CodeField) RuleBuilderField(org.broadleafcommerce.openadmin.web.form.component.RuleBuilderField) Field(org.broadleafcommerce.openadmin.web.form.entity.Field) ComboField(org.broadleafcommerce.openadmin.web.form.entity.ComboField) MediaField(org.broadleafcommerce.openadmin.web.form.component.MediaField) BasicFieldMetadata(org.broadleafcommerce.openadmin.dto.BasicFieldMetadata) JSONObject(org.codehaus.jettison.json.JSONObject) Map(java.util.Map) HashMap(java.util.HashMap) Property(org.broadleafcommerce.openadmin.dto.Property)

Aggregations

Field (org.broadleafcommerce.openadmin.web.form.entity.Field)36 Property (org.broadleafcommerce.openadmin.dto.Property)15 ComboField (org.broadleafcommerce.openadmin.web.form.entity.ComboField)15 MediaField (org.broadleafcommerce.openadmin.web.form.component.MediaField)14 RuleBuilderField (org.broadleafcommerce.openadmin.web.form.component.RuleBuilderField)14 CodeField (org.broadleafcommerce.openadmin.web.form.entity.CodeField)13 ArrayList (java.util.ArrayList)10 EntityForm (org.broadleafcommerce.openadmin.web.form.entity.EntityForm)10 PersistencePackageRequest (org.broadleafcommerce.openadmin.server.domain.PersistencePackageRequest)9 BasicFieldMetadata (org.broadleafcommerce.openadmin.dto.BasicFieldMetadata)8 Entity (org.broadleafcommerce.openadmin.dto.Entity)8 ClassMetadata (org.broadleafcommerce.openadmin.dto.ClassMetadata)7 ListGrid (org.broadleafcommerce.openadmin.web.form.component.ListGrid)6 RequestMapping (org.springframework.web.bind.annotation.RequestMapping)6 HashMap (java.util.HashMap)5 SectionCrumb (org.broadleafcommerce.openadmin.dto.SectionCrumb)5 Map (java.util.Map)4 AdminMainEntity (org.broadleafcommerce.common.admin.domain.AdminMainEntity)4 Translation (org.broadleafcommerce.common.i18n.domain.Translation)4 DataWrapper (org.broadleafcommerce.openadmin.web.rulebuilder.dto.DataWrapper)4