use of org.jboss.hal.ballroom.form.Form in project console by hal.
the class EEView method update.
@SuppressWarnings("unchecked")
private void update(ModelNode eeData, String resourceType, String navigationId) {
if (eeData.hasDefined(resourceType)) {
List<NamedNode> models = asNamedNodes(eeData.get(resourceType).asPropertyList());
Form form = forms.get(resourceType);
form.clear();
Table<NamedNode> table = tables.get(resourceType);
table.update(models);
navigation.updateBadge(navigationId, models.size());
}
}
use of org.jboss.hal.ballroom.form.Form in project console by hal.
the class ModclusterView method init.
@PostConstruct
void init() {
// --------- load-provider=dynamic
Metadata dynamicMetadata = mbuiContext.metadataRegistry().lookup(LOAD_PROVIDER_DYNAMIC_TEMPLATE);
loadProviderDynamicForm = new ModelNodeForm.Builder<>("load-provider-dynamic-form", dynamicMetadata).singleton(() -> presenter.loadProviderDynamicOperation(), () -> presenter.addLoadProviderDynamic()).prepareRemove(form -> presenter.removeLoadProviderDynamic()).onSave((form, changedValues) -> {
String name = presenter.getProxyName();
AddressTemplate template = LOAD_PROVIDER_DYNAMIC_TEMPLATE.replaceWildcards(presenter.getProxyName());
saveForm(Names.LOAD_PROVIDER_DYNAMIC, name, template.resolve(mbuiContext.statementContext(), name), changedValues, dynamicMetadata);
}).prepareReset(form -> {
String name = presenter.getProxyName();
AddressTemplate template = LOAD_PROVIDER_DYNAMIC_TEMPLATE.replaceWildcards(presenter.getProxyName());
resetForm(Names.LOAD_PROVIDER_DYNAMIC, name, template.resolve(mbuiContext.statementContext(), name), form, dynamicMetadata);
}).build();
HTMLElement loadProviderDynamicElement = section().add(div().add(h(1).textContent(LOAD_PROVIDER_DYNAMIC)).add(p().textContent(dynamicMetadata.getDescription().getDescription())).element()).add(loadProviderDynamicForm).element();
navigation.insertPrimary("load-provider-dynamic-item", "custom-load-metrics-item", LOAD_PROVIDER_DYNAMIC, "fa fa-shield", loadProviderDynamicElement);
registerAttachable(loadProviderDynamicForm);
// --------- load-provider=simple
Metadata simpleMetadata = mbuiContext.metadataRegistry().lookup(LOAD_PROVIDER_SIMPLE_TEMPLATE);
loadProviderSimpleForm = new ModelNodeForm.Builder<>("load-provider-simple-form", simpleMetadata).singleton(() -> presenter.loadProviderSimpleOperation(), () -> presenter.addLoadProviderSimple()).prepareRemove(form -> presenter.removeLoadProviderSimple()).onSave((form, changedValues) -> {
String name = presenter.getProxyName();
AddressTemplate template = LOAD_PROVIDER_SIMPLE_TEMPLATE.replaceWildcards(presenter.getProxyName());
saveForm(LOAD_PROVIDER_SIMPLE, name, template.resolve(mbuiContext.statementContext(), name), changedValues, simpleMetadata);
}).prepareReset(form -> {
String name = presenter.getProxyName();
AddressTemplate template = LOAD_PROVIDER_SIMPLE_TEMPLATE.replaceWildcards(presenter.getProxyName());
resetForm(LOAD_PROVIDER_SIMPLE, name, template.resolve(mbuiContext.statementContext(), name), form, simpleMetadata);
}).build();
HTMLElement loadProviderSimpleElement = section().add(div().add(h(1).textContent(LOAD_PROVIDER_SIMPLE)).add(p().textContent(simpleMetadata.getDescription().getDescription())).element()).add(loadProviderSimpleForm).element();
navigation.insertPrimary("load-provider-simple-item", "load-provider-dynamic-item", LOAD_PROVIDER_SIMPLE, "fa fa-exchange", loadProviderSimpleElement);
registerAttachable(loadProviderSimpleForm);
}
use of org.jboss.hal.ballroom.form.Form in project console by hal.
the class HaPolicyView method createSimple.
private void createSimple(HaPolicy haPolicy) {
Metadata metadata = metadataRegistry.lookup(haPolicy.template);
Form<ModelNode> form = form(haPolicy);
HTMLElement element = section().css(clearfix).add(h(1).textContent(haPolicy.type)).add(a().css(clickable, pullRight).on(click, event -> presenter.resetHaPolicy()).textContent(resources.constants().remove())).add(p().textContent(metadata.getDescription().getDescription())).add(form).element();
policyForms.put(haPolicy, form);
policyElements.put(haPolicy, element);
}
use of org.jboss.hal.ballroom.form.Form in project console by hal.
the class CredentialReference method form.
/**
* Creates a form for the {@code credential-reference} complex attribute of a resource. The form is setup as a singleton
* form to add, save, reset and remove the complex attribute.
*
* @param baseId base ID used for the generated form and add resource dialog
* @param metadata the metadata of the resource which contains the {@code credential-reference} attribute
* @param crName the name of the credential-reference complex attribute
* @param alternativeName the name of the alternative attribute
* @param alternativeValue the value of the alternative attribute
* @param address the fully qualified address of the resource used for the CRUD actions
* @param callback the callback executed after the {@code credential-reference} attributes has been added, saved, reset or
* removed
*/
public Form<ModelNode> form(String baseId, Metadata metadata, String crName, String alternativeName, Supplier<String> alternativeValue, Supplier<ResourceAddress> address, Callback callback) {
String credentialReferenceName = crName == null ? CREDENTIAL_REFERENCE : crName;
Metadata crMetadata = metadata.forComplexAttribute(credentialReferenceName);
EmptyState.Builder emptyStateBuilder = new EmptyState.Builder(Ids.build(baseId, credentialReferenceName, Ids.FORM, Ids.EMPTY), resources.constants().noResource());
if (crMetadata.getSecurityContext().isWritable()) {
emptyStateBuilder.primaryAction(resources.constants().add(), () -> {
if (alternativeName != null && alternativeValue != null && !Strings.isNullOrEmpty(alternativeValue.get())) {
String alternativeLabel = new LabelBuilder().label(alternativeName);
DialogFactory.showConfirmation(resources.messages().addResourceTitle(Names.CREDENTIAL_REFERENCE), resources.messages().credentialReferenceAddConfirmation(alternativeLabel), () -> setTimeout(o -> addCredentialReference(baseId, crMetadata, credentialReferenceName, alternativeName, address, callback), SHORT_TIMEOUT));
} else {
addCredentialReference(baseId, crMetadata, credentialReferenceName, null, address, callback);
}
}, Constraint.executable(metadata.getTemplate(), ADD)).description(resources.messages().noResource());
} else {
emptyStateBuilder.description(resources.constants().restricted());
}
EmptyState noCredentialReference = emptyStateBuilder.build();
ModelNodeForm.Builder<ModelNode> formBuilder = new ModelNodeForm.Builder<>(Ids.build(baseId, credentialReferenceName, Ids.FORM), crMetadata).include(STORE, ALIAS, CLEAR_TEXT, TYPE).unsorted().singleton(() -> {
ResourceAddress fqAddress = address.get();
Operation operation = null;
if (fqAddress != null && crMetadata.getSecurityContext().isReadable()) {
operation = new Operation.Builder(address.get(), READ_ATTRIBUTE_OPERATION).param(NAME, credentialReferenceName).build();
}
return operation;
}, noCredentialReference).onSave(((f, changedValues) -> {
ResourceAddress fqa = address.get();
if (fqa != null) {
if (changedValues.isEmpty()) {
MessageEvent.fire(eventBus, Message.warning(resources.messages().noChanges()));
callback.execute();
} else {
ca.save(credentialReferenceName, Names.CREDENTIAL_REFERENCE, fqa, f.getModel(), callback);
}
} else {
MessageEvent.fire(eventBus, Message.error(resources.messages().credentialReferenceAddressError()));
}
}));
// some credential-reference attributes are nillable=false, so only nillable=true may be removed
if (crMetadata.getDescription().get(NILLABLE).asBoolean()) {
formBuilder.prepareRemove(f -> {
ResourceAddress fqAddress = address.get();
if (fqAddress != null) {
ca.remove(credentialReferenceName, Names.CREDENTIAL_REFERENCE, fqAddress, new Form.FinishRemove<ModelNode>(f) {
@Override
public void afterRemove(Form<ModelNode> form) {
callback.execute();
}
});
} else {
MessageEvent.fire(eventBus, Message.error(resources.messages().credentialReferenceAddressError()));
}
});
}
Form<ModelNode> form = formBuilder.build();
form.addFormValidation(new CrFormValidation(alternativeName, alternativeValue, resources));
form.addFormValidation(new CrFormValuesValidation(resources));
return form;
}
use of org.jboss.hal.ballroom.form.Form in project console by hal.
the class CredentialReference method addCredentialReference.
private void addCredentialReference(String baseId, Metadata crMetadata, String credentialReferenceName, String alternativeName, Supplier<ResourceAddress> address, Callback callback) {
ResourceAddress fqAddress = address.get();
if (fqAddress != null) {
String id = Ids.build(baseId, credentialReferenceName, Ids.ADD);
Form<ModelNode> form = new ModelNodeForm.Builder<>(id, crMetadata).addOnly().include(STORE, ALIAS, CLEAR_TEXT, TYPE).unsorted().build();
form.addFormValidation(new CrFormValuesValidation(resources));
new AddResourceDialog(resources.messages().addResourceTitle(Names.CREDENTIAL_REFERENCE), form, (name, model) -> {
if (alternativeName != null) {
Operation undefine = new Operation.Builder(fqAddress, UNDEFINE_ATTRIBUTE_OPERATION).param(NAME, alternativeName).build();
Operation write = new Operation.Builder(fqAddress, WRITE_ATTRIBUTE_OPERATION).param(NAME, credentialReferenceName).param(VALUE, model).build();
dispatcher.execute(new Composite(undefine, write), (CompositeResult result) -> {
MessageEvent.fire(eventBus, Message.success(resources.messages().addSingleResourceSuccess(Names.CREDENTIAL_REFERENCE)));
callback.execute();
});
} else {
ca.add(credentialReferenceName, Names.CREDENTIAL_REFERENCE, fqAddress, model, callback);
}
}).show();
} else {
MessageEvent.fire(eventBus, Message.error(resources.messages().credentialReferenceAddressError()));
}
}
Aggregations