From 55ec4ef3c8718f0d372c01e788de8195897cdeec Mon Sep 17 00:00:00 2001 From: Simon Pichugin Date: Dec 03 2018 16:49:35 +0000 Subject: Issue 50061 - Improve schema loading in UI Description: Get all the schema in one search, then the UI loads it once, and parse out attrs, oc's, and mr's. Add 'dsconf schema list' command for that. Reset x-origin field in 'clear_form()' funcitons. Set 'View' header for the view modal form. https://pagure.io/389-ds-base/issue/50061 Reviewed by: mreynolds (Thanks!) --- diff --git a/src/cockpit/389-console/src/schema.js b/src/cockpit/389-console/src/schema.js index af6a144..501a921 100644 --- a/src/cockpit/389-console/src/schema.js +++ b/src/cockpit/389-console/src/schema.js @@ -81,6 +81,7 @@ function clear_oc_form() { $("#schema-list").prop('selectedIndex',-1); $('#oc-required-list').find('option').remove(); $('#oc-allowed-list').find('option').remove(); + $("#oc-x-origin").val(""); $("#save-oc-button").attr('disabled', false); } @@ -102,33 +103,26 @@ function clear_attr_form() { $("#attr-eq-mr-select").prop('selectedIndex',0); $("#attr-order-mr-select").prop('selectedIndex',0); $("#attr-sub-mr-select").prop('selectedIndex',0); + $("#attr-x-origin").val(""); $("#save-attr-button").attr('disabled', false); } -function load_schema_objects_to_select(object, select_id) { - var cmd = [DSCONF, '-j', 'ldapi://%2fvar%2frun%2f' + server_id + '.socket', 'schema', object, 'list']; - log_cmd('load_schema_objects_to_select', 'Get schema', cmd); - cockpit.spawn(cmd, { superuser: true, "err": "message", "environ": [ENV]}).done(function(select_data) { - var obj = JSON.parse(select_data); - var data = []; - for (var i = 0; i < obj.items.length; i++) { - item = obj.items[i]; - if (item.name) { - data.push.apply(data, [item.name]); - } else { - data.push.apply(data, [item.oid]); - } +function load_schema_objects_to_select(object, select_id, schema_json_select) { + var data = []; + for (var i = 0; i < schema_json_select[object].items.length; i++) { + item = schema_json_select[object].items[i]; + if (item.name) { + data.push.apply(data, [item.name]); + } else { + data.push.apply(data, [item.oid]); } - // Update html select - $.each(data, function (i, item) { - $("#" + select_id).append($('