use of org.jboss.hal.ballroom.dialog.Dialog in project console by hal.
the class JobColumn method startJob.
private void startJob(JobNode job) {
int xmlNames = job.get(JOB_XML_NAMES).asList().size();
Metadata metadata = metadataRegistry.lookup(BATCH_DEPLOYMENT_TEMPLATE);
Metadata operationMetadata = metadata.forOperation(START_JOB);
if (xmlNames > 1) {
operationMetadata.getDescription().get(ATTRIBUTES).get(JOB_XML_NAME).get(ALLOWED).set(job.get(JOB_XML_NAMES));
} else {
operationMetadata.getDescription().get(ATTRIBUTES).get(JOB_XML_NAME).get(ACCESS_TYPE).set(READ_ONLY);
}
Form<ModelNode> form = new ModelNodeForm.Builder<>(Ids.build(Ids.JOB, START_JOB), operationMetadata).addOnly().unsorted().include(JOB_XML_NAME, PROPERTIES).build();
Dialog dialog = new Dialog.Builder(resources.constants().startJob()).add(form.element()).closeIcon(true).closeOnEsc(true).primary(resources.constants().start(), () -> {
if (form.save()) {
Operation operation = new Operation.Builder(job.getAddress().getParent(), START_JOB).payload(form.getModel()).build();
dispatcher.execute(operation, result -> {
String xmlName = form.getModel().get(JOB_XML_NAME).asString();
long executionId = result.asLong();
MessageEvent.fire(eventBus, Message.success(resources.messages().startJobSuccess(xmlName, executionId)));
refresh(RESTORE_SELECTION);
});
return true;
}
return false;
}).cancel().build();
dialog.registerAttachable(form);
dialog.show();
form.edit(new ModelNode());
if (xmlNames == 1) {
String xmlName = job.get(JOB_XML_NAMES).asList().get(0).asString();
form.getFormItem(JOB_XML_NAME).setValue(xmlName);
}
}
use of org.jboss.hal.ballroom.dialog.Dialog in project console by hal.
the class RealmsPresenter method addIdentity.
void addIdentity(AddressTemplate template, Metadata metadata, String name) {
Metadata opMetadata = metadata.forOperation(ADD_IDENTITY);
SafeHtml identityAttributeHelp = resources.messages().identityAttributeHelp();
IdentityAttributeItem identityAttribute = new IdentityAttributeItem(Ids.asId(IDENTITY_ATTRIBUTE_MAPPING), IDENTITY_ATTRIBUTE_MAPPING);
Form<ModelNode> form = new ModelNodeForm.Builder<>(Ids.build(template.lastName(), ADD_IDENTITY), opMetadata).unboundFormItem(identityAttribute, 1, identityAttributeHelp).build();
form.attach();
AddResourceDialog dialog = new AddResourceDialog(resources.constants().addIdentity(), form, (name1, model) -> {
LabelBuilder labelBuilder = new LabelBuilder();
String resourceName = labelBuilder.label(template.lastName()) + SPACE + name;
String identity = model.get(IDENTITY).asString();
ResourceAddress address = template.resolve(statementContext, name);
List<Task<FlowContext>> tasks = new ArrayList<>();
Task<FlowContext> addTask = flowContext -> {
Operation addOp = new Operation.Builder(address, ADD_IDENTITY).param(IDENTITY, identity).build();
return dispatcher.execute(addOp).doOnError(ex -> MessageEvent.fire(getEventBus(), Message.error(resources.messages().addError(resources.constants().identity(), identity, resourceName, ex.getMessage())))).toCompletable();
};
tasks.add(addTask);
if (identityAttribute.getValue() != null) {
identityAttribute.getValue().forEach((key, values) -> {
Task<FlowContext> addAttribute = flowContext -> {
ModelNode modelValues = new ModelNode();
values.forEach(modelValues::add);
Operation addIdentAttributeOp = new Operation.Builder(address, ADD_IDENTITY_ATTRIBUTE).param(IDENTITY, identity).param(NAME, key).param(VALUE, modelValues).build();
return dispatcher.execute(addIdentAttributeOp).doOnError(ex -> MessageEvent.fire(getEventBus(), Message.error(resources.messages().addError(resources.constants().identity(), identity, resourceName, ex.getMessage())))).toCompletable();
};
tasks.add(addAttribute);
});
}
series(new FlowContext(progress.get()), tasks).subscribe(new SuccessfulOutcome<FlowContext>(getEventBus(), resources) {
@Override
public void onSuccess(FlowContext flowContext) {
MessageEvent.fire(getEventBus(), Message.success(resources.messages().addSuccess(resources.constants().identity(), identity, resourceName)));
}
@Override
public void onError(FlowContext context, Throwable throwable) {
MessageEvent.fire(getEventBus(), Message.error(resources.messages().addError(resources.constants().identity(), identity, resourceName, throwable.getMessage())));
}
});
});
dialog.show();
}
use of org.jboss.hal.ballroom.dialog.Dialog in project console by hal.
the class RestResourcePreview method specifyParameters.
private void specifyParameters(String serverUrl, String link, List<String> params) {
ModelNodeForm.Builder<ModelNode> builder = new ModelNodeForm.Builder<>(Ids.REST_RESOURCE_PATH_PARAM_FORM, Metadata.empty()).addOnly().onSave((form, changedValues) -> {
String withValues = link;
for (String param : params) {
String value = form.<String>getFormItem(param).getValue();
withValues = withValues.replace("{" + param + "}", value);
}
window.open(serverUrl + withValues, serverId());
});
int i = 0;
for (String param : params) {
FormItem<String> formItem = new TextBoxItem(param, param);
formItem.setRequired(true);
builder.unboundFormItem(formItem, i);
i++;
}
Form<ModelNode> form = builder.build();
Dialog dialog = new Dialog.Builder(resources.constants().specifyParameters()).add(p().innerHtml(resources.messages().specifyParameters(link)).element()).add(form.element()).primary(resources.constants().ok(), form::save).cancel().closeOnEsc(true).closeIcon(true).build();
dialog.registerAttachable(form);
dialog.show();
form.edit(new ModelNode());
}
use of org.jboss.hal.ballroom.dialog.Dialog in project console by hal.
the class ConfigurationChangesPresenter method launchAdd.
void launchAdd() {
AddressTemplate template;
if (environment.isStandalone()) {
template = HOST_CONFIGURATION_CHANGES_TEMPLATE;
} else {
if (hostOnly) {
template = HOST_CONFIGURATION_CHANGES_TEMPLATE;
} else {
template = PROFILE_CONFIGURATION_CHANGES_TEMPLATE.replaceWildcards(profile);
}
}
metadataProcessor.lookup(template, progress.get(), new SuccessfulMetadataCallback(getEventBus(), resources) {
@Override
public void onMetadata(Metadata metadata) {
String id = Ids.build(Ids.CONFIGURATION_CHANGES, Ids.ADD);
Form<ModelNode> form = new OperationFormBuilder<>(id, metadata, ADD).build();
ModelNode changeModel = new ModelNode();
Dialog dialog = new Dialog.Builder(resources.constants().configurationChanges()).add(form.element()).primary(resources.constants().yes(), () -> {
boolean valid = form.save();
// if the form contains validation error, don't close the dialog
if (valid) {
crud.addSingleton(Names.CONFIGURATION_CHANGES, template, form.getModel(), address -> reload());
}
return valid;
}).secondary(resources.constants().cancel(), () -> true).closeIcon(true).closeOnEsc(true).build();
dialog.registerAttachable(form);
dialog.show();
form.edit(changeModel);
}
});
}
use of org.jboss.hal.ballroom.dialog.Dialog in project console by hal.
the class ServerPresenter method disableSsl.
void disableSsl(String httpsListener) {
AddressTemplate httpsTemplate = SERVER_TEMPLATE.append(HTTPS_LISTENER + EQ_WILDCARD);
Metadata metadata = metadataRegistry.lookup(httpsTemplate);
SafeHtml description = resources.messages().disableSSLUndertowQuestion(httpsListener);
String label = new LabelBuilder().label(SECURITY_REALM);
TextBoxItem securityRealmItem = new TextBoxItem(SECURITY_REALM, label);
securityRealmItem.setRequired(true);
SafeHtml securityRealmDescription = SafeHtmlUtils.fromTrustedString(metadata.getDescription().get(ATTRIBUTES).get(SECURITY_REALM).get(DESCRIPTION).asString());
Form<ModelNode> form = new ModelNodeForm.Builder<>(Ids.build(SECURITY_REALM, Ids.FORM), Metadata.empty()).unboundFormItem(securityRealmItem, 0, securityRealmDescription).build();
HTMLElement content = div().add(p().innerHtml(description)).add(form.element()).element();
Dialog dialog = new Dialog.Builder(resources.constants().disableSSL()).size(Dialog.Size.MEDIUM).primary(resources.constants().yes(), () -> {
boolean valid = form.save();
// if the form contains validation error, don't close the dialog
if (valid) {
ResourceAddress httpsAddress = httpsTemplate.resolve(statementContext, serverName, httpsListener);
Operation undefineSslCtx = new Operation.Builder(httpsAddress, UNDEFINE_ATTRIBUTE_OPERATION).param(NAME, SSL_CONTEXT).build();
Operation writeSecurityRealm = new Operation.Builder(httpsAddress, WRITE_ATTRIBUTE_OPERATION).param(NAME, SECURITY_REALM).param(VALUE, securityRealmItem.getValue()).build();
Composite composite = new Composite();
composite.add(undefineSslCtx);
composite.add(writeSecurityRealm);
dispatcher.execute(composite, (CompositeResult result) -> {
MessageEvent.fire(getEventBus(), Message.success(resources.messages().disableSSLUndertowSuccess(httpsListener)));
reload();
}, (operation, failure) -> {
MessageEvent.fire(getEventBus(), Message.error(resources.messages().disableSSLUndertowError(httpsListener, failure)));
}, (operation, exception) -> {
SafeHtml message = resources.messages().disableSSLUndertowError(httpsListener, exception.getMessage());
MessageEvent.fire(getEventBus(), Message.error(message));
});
}
return valid;
}).secondary(resources.constants().no(), () -> true).closeIcon(true).closeOnEsc(true).add(content).build();
dialog.registerAttachable(form);
dialog.show();
ModelNode model = new ModelNode().setEmptyObject();
form.edit(model);
}
Aggregations