Skip to content
This repository has been archived by the owner on Mar 15, 2022. It is now read-only.

Commit

Permalink
Merge pull request #427 from claudio4j/HAL-1357_disable_buttons
Browse files Browse the repository at this point in the history
Fix form submission of ldap-realm related to "search-recursive" attribute and disable tablebuttons
  • Loading branch information
claudio4j committed May 23, 2017
2 parents 594928c + bae3623 commit e3ebd39
Show file tree
Hide file tree
Showing 9 changed files with 155 additions and 32 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,8 @@ public class AuthenticationContextMatchRulesEditor implements IsWidget {
private ModelNodeForm matchRulesForm;
private VerticalPanel popupLayout = new VerticalPanel();
private DefaultWindow matchRulesWindow;
private ToolButton addButton;
private ToolButton removeButton;

// button to hide the match-rules detail window
// the cancel button is not displayed
Expand Down Expand Up @@ -194,7 +196,8 @@ public ModelNode getValue(ModelNode node) {

private ToolStrip mainTableTools() {
ToolStrip tools = new ToolStrip();
ToolButton addButton = new ToolButton(Console.CONSTANTS.common_label_add(), event -> {

addButton = new ToolButton(Console.CONSTANTS.common_label_add(), event -> {

ModelNodeFormBuilder.FormAssets addFormAssets = new ModelNodeFormBuilder()
.setResourceDescription(resourceDescription)
Expand Down Expand Up @@ -259,7 +262,8 @@ public void onCancel() {
dialog.setGlassEnabled(true);
dialog.center();
});
ToolButton removeButton = new ToolButton(Console.CONSTANTS.common_label_delete(), event -> {

removeButton = new ToolButton(Console.CONSTANTS.common_label_delete(), event -> {
final ModelNode selection = selectionModel.getSelectedObject();
if (selection != null) {
Feedback.confirm("Match Rule", Console.MESSAGES.deleteConfirm("Match Rule " + selection.asString()),
Expand Down Expand Up @@ -294,6 +298,15 @@ private void showDetailModal(final ModelNode selection) {

public void update(Property prop) {
authContextName = prop.getName();

if (prop != null) {
addButton.setEnabled(true);
removeButton.setEnabled(true);
} else {
addButton.setEnabled(false);
removeButton.setEnabled(false);
}

if (prop.getValue().hasDefined(MATCH_RULES)) {
List<ModelNode> models = prop.getValue().get(MATCH_RULES).asList();
table.setRowCount(models.size(), true);
Expand All @@ -302,13 +315,15 @@ public void update(Property prop) {
dataList.clear();
dataList.addAll(models);
} else {
clearValues();
dataProvider.setList(new ArrayList<>());
}
selectionModel.clear();
}

public void clearValues() {
dataProvider.setList(new ArrayList<>());
addButton.setEnabled(false);
removeButton.setEnabled(false);
}

protected <T> FormItem<T> formItem(List<FormItem> formItems, String name) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,8 @@ public class IdentityAttributeMappingView implements IsWidget {
private SecurityContext securityContext;
private Dispatcher circuit;
private String ldapRealmName;
private ToolButton addButton;
private ToolButton removeButton;

IdentityAttributeMappingView(final Dispatcher circuit, ResourceDescription resourceDescription,
SecurityContext securityContext) {
Expand Down Expand Up @@ -136,7 +138,8 @@ public String getValue(ModelNode node) {

private ToolStrip mainTableTools() {
ToolStrip tools = new ToolStrip();
ToolButton addButton = new ToolButton(Console.CONSTANTS.common_label_add(), event -> {

addButton = new ToolButton(Console.CONSTANTS.common_label_add(), event -> {

ModelNodeFormBuilder.FormAssets addFormAssets = new ModelNodeFormBuilder()
.setResourceDescription(resourceDescription)
Expand All @@ -153,6 +156,13 @@ private ToolStrip mainTableTools() {
AddResourceDialog.Callback callback = new AddResourceDialog.Callback() {
@Override
public void onAdd(ModelNode payload) {
// search-recursive is a boolean and requires filter attribute
// even if the user doesn't set search-recursive, it is set in the payload as false
// and if the user doesn't set filter also, the server will throw an error not allowing
// to write search-recursive as it requires filter
if (payload.hasDefined("search-recursive") && !payload.get("search-recursive").asBoolean()) {
payload.remove("search-recursive");
}
circuit.dispatch(new AddListAttribute(ElytronStore.LDAP_REALM_ADDRESS,
"identity-mapping.attribute-mapping",
ldapRealmName,
Expand All @@ -172,7 +182,8 @@ public void onCancel() {
dialog.setGlassEnabled(true);
dialog.center();
});
ToolButton removeButton = new ToolButton(Console.CONSTANTS.common_label_delete(), event -> {

removeButton = new ToolButton(Console.CONSTANTS.common_label_delete(), event -> {
final ModelNode selection = selectionModel.getSelectedObject();
if (selection != null) {
Feedback.confirm("New Attribute Mapping", Console.MESSAGES.deleteConfirm("New Attribute Mapping"
Expand All @@ -190,19 +201,31 @@ public void onCancel() {
});
tools.addToolButtonRight(addButton);
tools.addToolButtonRight(removeButton);
addButton.setEnabled(false);
removeButton.setEnabled(false);
return tools;
}


public void update(Property ldapRealmProperty) {
ldapRealmName = ldapRealmProperty.getName();

if (ldapRealmProperty != null) {
addButton.setEnabled(true);
removeButton.setEnabled(true);
} else {
addButton.setEnabled(false);
removeButton.setEnabled(false);
}

if (ldapRealmProperty.getValue().get("identity-mapping").hasDefined("attribute-mapping")) {
List<ModelNode> models = ldapRealmProperty.getValue().get("identity-mapping").get("attribute-mapping")
.asList();
table.setRowCount(models.size(), true);
List<ModelNode> dataList = dataProvider.getList();
dataList.clear();
dataList.addAll(models);

} else {
dataProvider.setList(new ArrayList<>());
}
Expand All @@ -211,5 +234,7 @@ public void update(Property ldapRealmProperty) {

public void clearValues() {
dataProvider.setList(new ArrayList<>());
addButton.setEnabled(false);
removeButton.setEnabled(false);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,8 @@ public class JdbcRealmPrincipalsQueryView implements IsWidget {
private ResourceDescription resourceDescription;
private SecurityContext securityContext;
private String jdbcRealmName;
private ToolButton addButton;
private ToolButton removeButton;

JdbcRealmPrincipalsQueryView(final Dispatcher circuit, ResourceDescription resourceDescription,
SecurityContext securityContext) {
Expand Down Expand Up @@ -127,7 +129,8 @@ public String getValue(ModelNode node) {

private ToolStrip setupTableButtons() {
ToolStrip tools = new ToolStrip();
ToolButton addButton = new ToolButton(Console.CONSTANTS.common_label_add(), event -> {

addButton = new ToolButton(Console.CONSTANTS.common_label_add(), event -> {

ModelNodeFormBuilder.FormAssets addFormAssets = new ModelNodeFormBuilder()
.setResourceDescription(resourceDescription)
Expand Down Expand Up @@ -163,7 +166,8 @@ public void onCancel() {
dialog.setGlassEnabled(true);
dialog.center();
});
ToolButton removeButton = new ToolButton(Console.CONSTANTS.common_label_delete(), event -> {

removeButton = new ToolButton(Console.CONSTANTS.common_label_delete(), event -> {
final ModelNode selection = selectionModel.getSelectedObject();
if (selection != null) {
Feedback.confirm("Principal Query", Console.MESSAGES.deleteConfirm("Principal Query " + selection.get("sql").asString()),
Expand All @@ -186,6 +190,15 @@ public void onCancel() {

public void update(Property prop) {
jdbcRealmName = prop.getName();

if (prop != null) {
addButton.setEnabled(true);
removeButton.setEnabled(true);
} else {
addButton.setEnabled(false);
removeButton.setEnabled(false);
}

List<ModelNode> aliases = prop.getValue().get("principal-query").asList();
table.setRowCount(aliases.size(), true);
List<ModelNode> dataList = dataProvider.getList();
Expand All @@ -195,6 +208,8 @@ public void update(Property prop) {

public void clearValues() {
dataProvider.setList(new ArrayList<>());
addButton.setEnabled(false);
removeButton.setEnabled(false);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@
import org.jboss.as.console.mbui.widgets.ModelNodeFormBuilder;
import org.jboss.ballroom.client.rbac.SecurityContext;
import org.jboss.ballroom.client.widgets.forms.FormCallback;
import org.jboss.ballroom.client.widgets.forms.FormItem;
import org.jboss.ballroom.client.widgets.tables.DefaultCellTable;
import org.jboss.ballroom.client.widgets.tables.DefaultPager;
import org.jboss.ballroom.client.widgets.tools.ToolButton;
Expand Down Expand Up @@ -306,15 +305,4 @@ protected void update(final List<Property> models) {
SelectionChangeEvent.fire(selectionModel);
}

private <T> FormItem<T> findFormItem(List<FormItem> formItems, String name) {
FormItem selectedFormItem = null;
for (FormItem formItem : formItems) {
if (name.equals(formItem.getName())) {
selectedFormItem = formItem;
break;
}
}
return selectedFormItem;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,8 @@ public class NewIdentityAttributesView implements IsWidget {
private ResourceDescription resourceDescription;
private SecurityContext securityContext;
private String ldapRealmName;
private ToolButton addButton;
private ToolButton removeButton;

NewIdentityAttributesView(final Dispatcher circuit, ResourceDescription resourceDescription,
SecurityContext securityContext) {
Expand Down Expand Up @@ -138,7 +140,8 @@ public String getValue(ModelNode node) {

private ToolStrip mainTableTools() {
ToolStrip tools = new ToolStrip();
ToolButton addButton = new ToolButton(Console.CONSTANTS.common_label_add(), event -> {

addButton = new ToolButton(Console.CONSTANTS.common_label_add(), event -> {

ModelNodeFormBuilder.FormAssets addFormAssets = new ModelNodeFormBuilder()
.setResourceDescription(resourceDescription)
Expand Down Expand Up @@ -171,7 +174,8 @@ public void onCancel() {
dialog.setGlassEnabled(true);
dialog.center();
});
ToolButton removeButton = new ToolButton(Console.CONSTANTS.common_label_delete(), event -> {

removeButton = new ToolButton(Console.CONSTANTS.common_label_delete(), event -> {
final ModelNode selection = selectionModel.getSelectedObject();
if (selection != null) {
Feedback.confirm("New Identity Attribute", Console.MESSAGES.deleteConfirm("New Identity Attribute " + selection.asString()),
Expand All @@ -193,6 +197,15 @@ public void onCancel() {

public void update(Property ldapRealmProperty) {
ldapRealmName = ldapRealmProperty.getName();

if (ldapRealmProperty != null) {
addButton.setEnabled(true);
removeButton.setEnabled(true);
} else {
addButton.setEnabled(false);
removeButton.setEnabled(false);
}

if (ldapRealmProperty.getValue().get("identity-mapping").hasDefined("new-identity-attributes")) {
// wrap in a new list as later the list will change as a result of sort operation
List<ModelNode> models = new ArrayList<>(ldapRealmProperty.getValue().get("identity-mapping").get("new-identity-attributes").asList());
Expand All @@ -214,6 +227,8 @@ public void update(Property ldapRealmProperty) {

public void clearValues() {
dataProvider.setList(new ArrayList<>());
addButton.setEnabled(false);
removeButton.setEnabled(false);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,8 @@ public class ConfigurableHttpServerMechanismFactoryFilterEditor implements IsWid
private ResourceDescription resourceDescription;
private SecurityContext securityContext;
private String factoryName;
private ToolButton addButton;
private ToolButton removeButton;

ConfigurableHttpServerMechanismFactoryFilterEditor(final Dispatcher circuit, ResourceDescription resourceDescription,
SecurityContext securityContext) {
Expand Down Expand Up @@ -114,7 +116,8 @@ public String getValue(ModelNode property) {

// tools
ToolStrip tools = new ToolStrip();
ToolButton addButton = new ToolButton(Console.CONSTANTS.common_label_add(), event -> {

addButton = new ToolButton(Console.CONSTANTS.common_label_add(), event -> {

ModelNodeFormBuilder.FormAssets addFormAssets = new ModelNodeFormBuilder()
.setResourceDescription(resourceDescription)
Expand Down Expand Up @@ -147,7 +150,8 @@ public void onCancel() {
dialog.setGlassEnabled(true);
dialog.center();
});
ToolButton removeButton = new ToolButton(Console.CONSTANTS.common_label_delete(), event -> {

removeButton = new ToolButton(Console.CONSTANTS.common_label_delete(), event -> {
final ModelNode selection = selectionModel.getSelectedObject();
if (selection != null) {
Feedback.confirm("Filter", Console.MESSAGES.deleteConfirm("Filter " + selection.get("pattern-filter").asString()),
Expand All @@ -162,6 +166,10 @@ public void onCancel() {
});
}
});

addButton.setEnabled(false);
removeButton.setEnabled(false);

tools.addToolButtonRight(addButton);
tools.addToolButtonRight(removeButton);
panel.add(tools);
Expand All @@ -175,6 +183,15 @@ public void onCancel() {

public void update(Property prop) {
factoryName = prop.getName();

if (prop != null) {
addButton.setEnabled(true);
removeButton.setEnabled(true);
} else {
addButton.setEnabled(false);
removeButton.setEnabled(false);
}

if (prop.getValue().hasDefined("filters")) {
List<ModelNode> models = prop.getValue().get("filters").asList();
table.setRowCount(models.size(), true);
Expand All @@ -183,7 +200,7 @@ public void update(Property prop) {
dataList.clear(); // cannot call setList() as that breaks the sort handler
dataList.addAll(models);
} else {
clearValues();
dataProvider.setList(new ArrayList<>());
}

// Make sure the new values are properly sorted
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,8 @@ public class ConfigurableSaslServerFactoryFilterEditor implements IsWidget {
private ResourceDescription resourceDescription;
private SecurityContext securityContext;
private String factoryName;
private ToolButton addButton;
private ToolButton removeButton;

ConfigurableSaslServerFactoryFilterEditor(final Dispatcher circuit, ResourceDescription resourceDescription,
SecurityContext securityContext) {
Expand Down Expand Up @@ -118,7 +120,7 @@ public String getValue(ModelNode property) {

// tools
ToolStrip tools = new ToolStrip();
ToolButton addButton = new ToolButton(Console.CONSTANTS.common_label_add(), event -> {
addButton = new ToolButton(Console.CONSTANTS.common_label_add(), event -> {

ModelNodeFormBuilder.FormAssets addFormAssets = new ModelNodeFormBuilder()
.setResourceDescription(resourceDescription)
Expand Down Expand Up @@ -170,7 +172,7 @@ public void onCancel() {
dialog.setGlassEnabled(true);
dialog.center();
});
ToolButton removeButton = new ToolButton(Console.CONSTANTS.common_label_delete(), event -> {
removeButton = new ToolButton(Console.CONSTANTS.common_label_delete(), event -> {
final ModelNode selection = selectionModel.getSelectedObject();
if (selection != null) {
Feedback.confirm("Filter", Console.MESSAGES.deleteConfirm("filter "
Expand All @@ -186,6 +188,10 @@ public void onCancel() {
});
}
});

addButton.setEnabled(false);
removeButton.setEnabled(false);

tools.addToolButtonRight(addButton);
tools.addToolButtonRight(removeButton);
panel.add(tools);
Expand All @@ -210,6 +216,15 @@ private <T> FormItem<T> formItem(List<FormItem> formItems, String name) {

public void update(Property prop) {
factoryName = prop.getName();

if (prop != null) {
addButton.setEnabled(true);
removeButton.setEnabled(true);
} else {
addButton.setEnabled(false);
removeButton.setEnabled(false);
}

if (prop.getValue().hasDefined(FILTERS)) {
List<ModelNode> models = prop.getValue().get(FILTERS).asList();
table.setRowCount(models.size(), true);
Expand Down

0 comments on commit e3ebd39

Please sign in to comment.