This is an automated email from the git hooks/post-receive script.
mreynolds pushed a commit to branch 389-ds-base-1.4.0 in repository 389-ds-base.
The following commit(s) were added to refs/heads/389-ds-base-1.4.0 by this push: new f3c18b1 Issue 50534 - backport UI schema editing fix f3c18b1 is described below
commit f3c18b15665fa4298eabdc57c6426fa9e713127a Author: Mark Reynolds mreynolds@redhat.com AuthorDate: Wed Aug 7 11:28:18 2019 -0400
Issue 50534 - backport UI schema editing fix
Description: Editing custom schema was some issues where values would get incorrectly overwritten.
relates: https://pagure.io/389-ds-base/issue/50534
Reviewed by: spichugi(Thanks!) --- src/cockpit/389-console/src/schema.html | 5 --- src/cockpit/389-console/src/schema.js | 58 +++++++++++++++++++-------------- src/lib389/lib389/schema.py | 12 +++++++ 3 files changed, 45 insertions(+), 30 deletions(-)
diff --git a/src/cockpit/389-console/src/schema.html b/src/cockpit/389-console/src/schema.html index b677d5b..449f3a2 100644 --- a/src/cockpit/389-console/src/schema.html +++ b/src/cockpit/389-console/src/schema.html @@ -144,11 +144,6 @@ </div> </div> </div> - <div> - <label for="attr-x-origin" class="ds-config-label-lrg" - title="The attribute X-ORIGIN (keep 'user defined' if it's a non-standard attribute)"><b - >Attribute X-ORIGIN</b></label><input class="ds-input" type="text" id="attr-x-origin" size="40"/> - </div> </div> <div id="save-attr-spinner" class="ds-center" hidden> <p></p> diff --git a/src/cockpit/389-console/src/schema.js b/src/cockpit/389-console/src/schema.js index 501a921..c2073fc 100644 --- a/src/cockpit/389-console/src/schema.js +++ b/src/cockpit/389-console/src/schema.js @@ -51,17 +51,20 @@ function is_x_origin_user_defined(x_origin) { $.fn.dataTable.ext.search.push( function(settings, searchData, index, rowData, counter) { var x_origin; - if ( $("#attr-user-defined").is(":checked") ) { - x_origin = rowData[10]; - if (!is_x_origin_user_defined(x_origin)) { - return false; - } - } - if ( $("#oc-user-defined").is(":checked") ) { - x_origin = rowData[6]; - if (!is_x_origin_user_defined(x_origin)) { - return false; - } + if ( settings.sTableId == "attr-table" ) { + if ( $("#attr-user-defined").is(":checked") ) { + x_origin = rowData[10]; + if (!is_x_origin_user_defined(x_origin)) { + return false; + } + } + } else { + if ( $("#oc-user-defined").is(":checked") ) { + x_origin = rowData[6]; + if (!is_x_origin_user_defined(x_origin)) { + return false; + } + } } return true; } @@ -423,22 +426,28 @@ $(document).ready( function() { } var cmd = [DSCONF, server_inst, 'schema', 'objectclasses', action, oc_name]; // Process and validate parameters - cmd.push.apply(cmd, ["--oid", oc_oid]); - cmd.push.apply(cmd, ["--sup", oc_parent]); - cmd.push.apply(cmd, ["--kind", oc_kind]); - cmd.push.apply(cmd, ["--desc", oc_desc]); - cmd.push.apply(cmd, ["--x-origin", oc_x_origin]); - cmd.push.apply(cmd, ["--must"]); + if (oc_oid != "") { + cmd.push.apply(cmd, ["--oid", oc_oid]); + } + if (oc_parent != "") { + cmd.push.apply(cmd, ["--sup", oc_parent]); + } + if (oc_kind != "") { + cmd.push.apply(cmd, ["--kind", oc_kind]); + } + if (oc_desc != "") { + cmd.push.apply(cmd, ["--desc", oc_desc]); + } + if (oc_x_origin != "") { + cmd.push.apply(cmd, ["--x-origin="" + oc_x_origin + """]); + } if (oc_required_list.length !== 0) { + cmd.push.apply(cmd, ["--must"]); cmd.push.apply(cmd, oc_required_list); - } else { - cmd.push.apply(cmd, [""]); } - cmd.push.apply(cmd, ["--may"]); if (oc_allowed_list.length !== 0) { + cmd.push.apply(cmd, ["--may"]); cmd.push.apply(cmd, oc_allowed_list); - } else { - cmd.push.apply(cmd, [""]); }
$("#save-oc-spinner").show(); @@ -557,7 +566,7 @@ $(document).ready( function() { var attr_syntax_text = $("#attr-syntax :selected").text(); var attr_usage = $('#attr-usage').val(); var attr_desc = $('#attr-desc').val(); - var attr_x_origin= $('#attr-x-origin').val(); + var attr_x_origin= "user defined"; var attr_parent = $('#attr-parent').val(); var attr_aliases = $('#attr-alias').val().split(" "); var eq_mr= $('#attr-eq-mr-select').val(); @@ -680,7 +689,7 @@ $(document).ready( function() { }). fail(function(data) { $("#save-attr-spinner").hide(); - popup_err("Error", "Failed to save the attribute\n" + data.message); + popup_err("Error", "Failed to save the attribute: " + data.message); $("#add-edit-attr-form").modal('toggle'); }); }); @@ -718,7 +727,6 @@ $(document).ready( function() { $("#attr-usage")[0].value = edit_attr_usage; $("#attr-parent")[0].value = edit_attr_parent; $("#attr-desc").val(edit_attr_desc); - $("#attr-x-origin").val(edit_attr_x_origin); if (edit_attr_aliases) { $("#attr-alias").val(edit_attr_aliases.join(" ")); } diff --git a/src/lib389/lib389/schema.py b/src/lib389/lib389/schema.py index 2499c15..60d444c 100755 --- a/src/lib389/lib389/schema.py +++ b/src/lib389/lib389/schema.py @@ -228,6 +228,18 @@ class Schema(DSLdapObject): if value is not None: value = self._validate_ldap_schema_value(value) setattr(schema_object, oc_param.lower(), value) + else: + if getattr(schema_object, oc_param, False): + # Need to set the correct "type" for the empty value + if oc_param in ['may', 'must', 'x-origin', 'sup']: + # Expects tuple + setattr(schema_object, oc_param, ()) + elif oc_param in ['desc', 'oid']: + # Expects None + setattr(schema_object, oc_param, None) + elif oc_param in ['obsolete', 'kind']: + # Expects numberic + setattr(schema_object, oc_param, 0)
schema_object_str = str(schema_object) if schema_object_str == schema_object_str_old:
389-commits@lists.fedoraproject.org