@Override public void execute(AjaxRequestTarget target, IModel<SInstance> model) { SInstance baseInstance = model.getObject(); SDocument doc = baseInstance.getDocument(); Collection<ValidationError> errors = baseInstance.getNestedValidationErrors(); if ((errors != null) && !errors.isEmpty()) { String alertLevel = errors.stream() .map(ValidationError::getErrorLevel).max(Comparator.naturalOrder()) .map(it -> it.le(ValidationErrorLevel.WARNING) ? "alert-warning" : "alert-danger") .orElse(null); final StringBuilder sb = new StringBuilder("<div><ul class='list-unstyled alert ").append(alertLevel).append("'>"); for (ValidationError error : errors) { Optional<SInstance> inst = doc.findInstanceById(error.getInstanceId()); inst.ifPresent(sInstance -> sb.append("<li>") .append(SFormUtil.generateUserFriendlyPath(sInstance, baseInstance)) .append(": ") .append(error.getMessage()) .append("</li>")); } sb.append("</ul></div>"); target.appendJavaScript(";bootbox.alert('" + JavaScriptUtils.javaScriptEscape(sb.toString()) + "');"); target.appendJavaScript(Scripts.multipleModalBackDrop()); } }
@Override public void execute(AjaxRequestTarget target, IModel<SInstance> model) { SInstance baseInstance = model.getObject(); SDocument doc = baseInstance.getDocument(); Collection<IValidationError> errors = baseInstance.getNestedValidationErrors(); if ((errors != null) && !errors.isEmpty()) { String alertLevel = errors.stream() .map(IValidationError::getErrorLevel) .collect(Collectors.maxBy(Comparator.naturalOrder())) .map(it -> it.le(ValidationErrorLevel.WARNING) ? "alert-warning" : "alert-danger") .orElse(null); final StringBuilder sb = new StringBuilder("<div><ul class='list-unstyled alert " + alertLevel + "'>"); for (IValidationError error : errors) { Optional<SInstance> inst = doc.findInstanceById(error.getInstanceId()); if (inst.isPresent()) { sb.append("<li>") .append(SFormUtil.generateUserFriendlyPath(inst.get(), baseInstance)) .append(": ") .append(error.getMessage()) .append("</li>"); } } sb.append("</ul></div>"); target.appendJavaScript(";bootbox.alert('" + JavaScriptUtils.javaScriptEscape(sb.toString()) + "');"); target.appendJavaScript(Scripts.multipleModalBackDrop()); } }
private BSActionPanel.ActionConfig<SInstance> buildShowErrorsActionConfig(IModel<? extends SInstance> model) { return new BSActionPanel.ActionConfig<SInstance>() .iconeModel(IReadOnlyModel.of(() -> DefaultIcons.EXCLAMATION_TRIANGLE)) .styleClasses(Model.of("red")) .titleFunction(rowModel -> IMappingModel.of(rowModel).map(it -> (it.getNestedValidationErrors().size() + " erro(s) encontrado(s)")).getObject()) .visibleFor(rowModel -> !rowModel.getObject().getNestedValidationErrors().isEmpty()) .style($m.ofValue(MapperCommons.BUTTON_STYLE)); }
private BSActionPanel.ActionConfig<SInstance> buildShowErrorsActionConfig(IModel<? extends SInstance> model) { IMappingModel.of(model).map(it -> it.getNestedValidationErrors().size()).getObject(); return new BSActionPanel.ActionConfig<SInstance>() .iconeModel(IReadOnlyModel.of(() -> Icone.EXCLAMATION_TRIANGLE)) .styleClasses(Model.of("red")) .titleFunction(rowModel -> IMappingModel.of(rowModel).map(it -> (it.getNestedValidationErrors().size() + " erro(s) encontrado(s)")).getObject()) .style($m.ofValue(MapperCommons.BUTTON_STYLE)); }