Skip to content

Commit cef1d55

Browse files
authored
Merge pull request #174 from ltb-project/169-error-warning-dn_list-editor
Manage error and warning messages in dn_list editor
2 parents 347b843 + 27ce73d commit cef1d55

File tree

3 files changed

+32
-14
lines changed

3 files changed

+32
-14
lines changed

htdocs/api/search_dn.php

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,16 @@
2020

2121
if ($nb_entries) {
2222
foreach($entries as $entry) {
23-
$data[] = array( "dn" => $entry["dn"], "display" => $entry["cn"][0]);
23+
$data["entries"][] = array( "dn" => $entry["dn"], "display" => $entry["cn"][0]);
2424
}
2525
}
26+
27+
if ($result) {
28+
$data["error"] = $messages[$result];
29+
}
30+
31+
if ($size_limit_reached) {
32+
$data["warning"] = $messages["sizelimit"];
33+
}
2634
}
2735
?>

htdocs/js/update.js

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,32 +2,42 @@ $(document).ready(function(){
22
let timer;
33

44
$(".dn_link_container input[type=text]").on("keyup", function (event) {
5-
// Remove value if field is emptied
6-
if ($(this).val().length == 0) {
5+
// Remove value if field is emptied or less than minimal characters
6+
if ($(this).val().length <= 2) {
77
$(this).siblings('input[type=hidden]').val('') ;
8+
$(this).siblings('div.dn_link_suggestions').empty();
89
}
910
// Minimal search characters
1011
if ($(this).val().length > 2) {
1112
if (timer) {
1213
clearTimeout(timer);
13-
// clear any existing list
1414
$(this).siblings('div.dn_link_suggestions').empty();
1515
}
1616

1717
timer = setTimeout(() => {
1818
$.post("index.php", { 'apiendpoint': 'search_dn', 'search': $(this).val() }, (data) => {
1919
// clear existing list
2020
$(this).siblings('div.dn_link_suggestions').empty();
21-
// add entries to list
22-
data.forEach( (entry) => {
23-
const $elem = $(`<button type="button" class="list-group-item list-group-item-action">${entry.display}</button>`);
24-
$elem.on('click', () => {
25-
$(this).val(entry.display);
26-
$(this).siblings('input[type=hidden]').val(entry.dn);
27-
$(this).siblings('div.dn_link_suggestions').empty();
28-
})
21+
if (data.entries) {
22+
// add entries to list
23+
data.entries.forEach( (entry) => {
24+
const $elem = $(`<button type="button" class="list-group-item list-group-item-action">${entry.display}</button>`);
25+
$elem.on('click', () => {
26+
$(this).val(entry.display);
27+
$(this).siblings('input[type=hidden]').val(entry.dn);
28+
$(this).siblings('div.dn_link_suggestions').empty();
29+
})
30+
$(this).siblings('div.dn_link_suggestions').append($elem);
31+
});
32+
if (data.warning) {
33+
const $elem = $(`<span class="list-group-item list-group-item-warning">${data.warning}</span>`);
34+
$(this).siblings('div.dn_link_suggestions').append($elem);
35+
}
36+
}
37+
if (data.error) {
38+
const $elem = $(`<span class="list-group-item list-group-item-danger">${data.error}</span>`);
2939
$(this).siblings('div.dn_link_suggestions').append($elem);
30-
});
40+
}
3141
}, 'json');
3242
}, 500);
3343
}

templates/value_editor.tpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
<div class="dn_link_container">
2828
<input type="text" class="form-control" value="{get_attribute dn="{$value}" attribute="cn" ldap_url="{$ldap_params.ldap_url}" ldap_starttls="{$ldap_params.ldap_starttls}" ldap_binddn="{$ldap_params.ldap_binddn}" ldap_bindpw="{$ldap_params.ldap_bindpw}" ldap_filter="{$ldap_params.ldap_user_filter}" ldap_network_timeout="{$ldap_params.ldap_network_timeout}"}" data-role="display"/>
2929
<input type="hidden" name="{$item}{$itemindex}" value="{$value}" data-role="value" />
30-
<div class="z-3 list-group dn_link_suggestions"></div>
30+
<div class="z-3 position-absolute list-group dn_link_suggestions"></div>
3131
</div>
3232
{else}
3333
<input type="text" name={$item} class="form-control" value="{$value}" data-role="value" />

0 commit comments

Comments
 (0)