use of org.jboss.hal.ballroom.dialog.Dialog in project console by hal.
the class ContentColumn method replace.
private void replace(Content content) {
UploadElement uploadElement = new UploadElement(resources.messages().noContent());
Dialog dialog = new Dialog.Builder(resources.constants().replaceContent()).add(uploadElement.element()).cancel().primary(resources.constants().replace(), () -> {
boolean valid = uploadElement.validate();
if (valid) {
ReplaceDeploymentPanel replaceDeploymentPanel = new ReplaceDeploymentPanel();
replaceDeploymentPanel.on();
series(new FlowContext(progress.get()), new CheckDeployment(dispatcher, content.getName()), // To replace an existing content, the original name and runtime-name must be preserved.
new UploadOrReplace(environment, dispatcher, content.getName(), content.getRuntimeName(), uploadElement.getFiles().item(0), false)).subscribe(new Outcome<FlowContext>() {
@Override
public void onError(FlowContext context, Throwable error) {
replaceDeploymentPanel.off();
MessageEvent.fire(eventBus, Message.error(resources.messages().contentReplaceError(content.getName()), error.getMessage()));
}
@Override
public void onSuccess(FlowContext context) {
refresh(Ids.content(content.getName()));
replaceDeploymentPanel.off();
MessageEvent.fire(eventBus, Message.success(resources.messages().contentReplaceSuccess(content.getName())));
}
});
}
return valid;
}).build();
dialog.show();
}
use of org.jboss.hal.ballroom.dialog.Dialog in project console by hal.
the class BrowseContentElement method uploadContent.
private void uploadContent() {
LabelBuilder labelBuilder = new LabelBuilder();
TextBoxItem targetPathItem = new TextBoxItem(TARGET_PATH);
targetPathItem.setRequired(true);
FileItem fileItem = new FileItem(FILE, labelBuilder.label(FILE));
fileItem.addValueChangeHandler(event -> targetPathItem.setValue(appendFilename(targetPathItem.getValue(), event.getValue().name)));
TextBoxItem urlItem = new TextBoxItem(URL, labelBuilder.label(URL));
urlItem.addValueChangeHandler(event -> targetPathItem.setValue(appendFilename(targetPathItem.getValue(), filename(event.getValue()))));
Form<ModelNode> form = new ModelNodeForm.Builder<>(Ids.CONTENT_NEW, Metadata.empty()).unboundFormItem(fileItem).unboundFormItem(urlItem).unboundFormItem(targetPathItem).addOnly().build();
form.addFormValidation(f -> {
if (fileItem.isEmpty() && urlItem.isEmpty()) {
return ValidationResult.invalid(resources.messages().uploadContentInvalid());
}
return ValidationResult.OK;
});
form.setSaveCallback((f, model) -> {
String path = targetPathItem.getValue();
ResourceAddress address = new ResourceAddress().add(DEPLOYMENT, content.getName());
ModelNode contentNode = new ModelNode();
if (fileItem.isEmpty()) {
contentNode.get(URL).set(urlItem.getValue());
} else {
contentNode.get(INPUT_STREAM_INDEX).set(0);
}
contentNode.get(TARGET_PATH).set(path);
Operation operation = new Operation.Builder(address, ADD_CONTENT).param(CONTENT, new ModelNode().add(contentNode)).build();
Single<ModelNode> single = fileItem.isEmpty() ? dispatcher.execute(operation) : dispatcher.upload(fileItem.getValue(), operation);
single.toCompletable().andThen(browseContent()).andThen(awaitTreeReady()).subscribe(() -> {
MessageEvent.fire(eventBus, Message.success(resources.messages().newContentSuccess(content.getName(), path)));
tree.selectNode(NODE_ID.apply(path));
});
});
Dialog dialog = new Dialog.Builder(resources.constants().uploadContent()).add(p().innerHtml(resources.messages().uploadContentDescription()).element()).add(form.element()).primary(resources.constants().upload(), form::save).size(Dialog.Size.MEDIUM).cancel().build();
dialog.registerAttachable(form);
targetPathItem.setValue(selectedPath());
dialog.show();
form.edit(new ModelNode());
}
use of org.jboss.hal.ballroom.dialog.Dialog in project console by hal.
the class ConfigurationChangesPresenter method showInDialog.
void showInDialog(String textContent) {
HTMLPreElement elem = pre().css(formControlStatic, wrap).element();
elem.textContent = textContent;
HTMLElement content = div().add(elem).style("overflow: scroll").element();
int maxheight = applicationHeight() - 6 * MARGIN_BIG;
content.style.maxHeight = CSSProperties.MaxHeightUnionType.of(px(maxheight));
Dialog dialog = new Dialog.Builder(resources.constants().configurationChanges()).primary(resources.constants().close(), () -> true).closeOnEsc(true).closeIcon(true).size(LARGE).add(content).build();
dialog.show();
}
use of org.jboss.hal.ballroom.dialog.Dialog in project console by hal.
the class RealmsPresenter method editIdentity.
void editIdentity(Metadata metadata, String resource, String title, Consumer<ModelNode> callback) {
AddressTemplate template = metadata.getTemplate();
Metadata opMetadata = metadata.forOperation(READ_IDENTITY);
Form<ModelNode> form = new ModelNodeForm.Builder<>(Ids.build(template.lastName(), READ_IDENTITY), opMetadata).build();
form.attach();
Dialog dialog = new Dialog.Builder(title).add(form.element()).primary(resources.constants().search(), form::save).size(Dialog.Size.MEDIUM).cancel().build();
dialog.registerAttachable(form);
form.setSaveCallback((form1, changedValues) -> {
ResourceAddress address = template.resolve(statementContext, resource);
String identity = form.getModel().get(IDENTITY).asString();
Operation operation = new Operation.Builder(address, READ_IDENTITY).param(IDENTITY, identity).build();
LabelBuilder labelBuilder = new LabelBuilder();
String resourceName = labelBuilder.label(template.lastName()) + SPACE + resource;
dispatcher.execute(operation, callback::accept, (operation1, failure) -> MessageEvent.fire(getEventBus(), Message.error(resources.messages().readIdentityError(identity, resourceName, failure))), (operation1, exception) -> MessageEvent.fire(getEventBus(), Message.error(resources.messages().readIdentityError(identity, resourceName, exception.getMessage()))));
});
form.edit(new ModelNode());
dialog.show();
}
use of org.jboss.hal.ballroom.dialog.Dialog in project console by hal.
the class SSLPresenter method createAccount.
// ----------------- certificate authority account
void createAccount(String name) {
Metadata metadata = metadataRegistry.lookup(CERTIFICATE_AUTHORITY_ACCOUNT_TEMPLATE).forOperation(CREATE_ACCOUNT);
String id = Ids.build(CERTIFICATE_AUTHORITY_ACCOUNT, FORM);
String title = new LabelBuilder().label(CERTIFICATE_AUTHORITY_ACCOUNT);
Form<ModelNode> form = new ModelNodeForm.Builder<>(id, metadata).build();
form.setSaveCallback((form1, changedValues) -> {
ResourceAddress address = CERTIFICATE_AUTHORITY_ACCOUNT_TEMPLATE.resolve(statementContext, name);
Operation operation = new Operation.Builder(address, CREATE_ACCOUNT).payload(form.getModel()).build();
dispatcher.execute(operation, result -> MessageEvent.fire(getEventBus(), Message.success(resources.messages().createAccountSuccess(name))), (operation1, failure) -> MessageEvent.fire(getEventBus(), Message.error(resources.messages().createAccountError(name, failure))), (operation1, exception) -> MessageEvent.fire(getEventBus(), Message.error(resources.messages().createAccountError(name, exception.getMessage()))));
});
Dialog dialog = new Dialog.Builder(title).add(p().textContent(resources.messages().createAccountQuestion(name)).element()).add(form.element()).primary(resources.constants().create(), form::save).size(Dialog.Size.MEDIUM).closeOnEsc(true).cancel().build();
dialog.registerAttachable(form);
dialog.show();
form.edit(new ModelNode());
}
Aggregations