Bernd Wurst commited on 2013-01-22 08:21:02
Zeige 2 geänderte Dateien mit 56 Einfügungen und 45 Löschungen.
| ... | ... |
@@ -83,6 +83,60 @@ function find_users_for_customer($id) |
| 83 | 83 |
|
| 84 | 84 |
|
| 85 | 85 |
|
| 86 |
+function build_results($term) {
|
|
| 87 |
+ global $ret; |
|
| 88 |
+ $ret = array(); |
|
| 89 |
+ |
|
| 90 |
+ $add = function($val, $id, $value) {
|
|
| 91 |
+ global $ret; |
|
| 92 |
+ if (isset($ret[$val]) && is_array($ret[$val])) {
|
|
| 93 |
+ array_push($ret[$val], array("id" => $id, "value" => $value));
|
|
| 94 |
+ } else {
|
|
| 95 |
+ $ret[$val] = array( array("id" => $id, "value" => $value) );
|
|
| 96 |
+ } |
|
| 97 |
+ }; |
|
| 98 |
+ |
|
| 99 |
+ |
|
| 100 |
+ $result = array_unique(find_customers($term)); |
|
| 101 |
+ sort($result); |
|
| 102 |
+ foreach ($result as $val) {
|
|
| 103 |
+ $c = new Customer((int) $val); |
|
| 104 |
+ if ($c->id == $term) {
|
|
| 105 |
+ $add(10, "c{$c->id}", "Kunde {$c->id}: {$c->fullname}");
|
|
| 106 |
+ } else {
|
|
| 107 |
+ $add(90, "c{$c->id}", "Kunde {$c->id}: {$c->fullname}");
|
|
| 108 |
+ } |
|
| 109 |
+ $users = find_users_for_customer($c->id); |
|
| 110 |
+ foreach ($users as $u) {
|
|
| 111 |
+ $realname = $c->fullname; |
|
| 112 |
+ if ($u['name']) {
|
|
| 113 |
+ $realname = $u['name']; |
|
| 114 |
+ } |
|
| 115 |
+ if ($u['uid'] == $term || $u['username'] == $term) {
|
|
| 116 |
+ $add(15, "u{$u['uid']}", "{$u['username']} (UID {$u['uid']}, {$realname})");
|
|
| 117 |
+ } elseif (strstr($u['username'], $term)) {
|
|
| 118 |
+ $add(20, "u{$u['uid']}", "{$u['username']} (UID {$u['uid']}, {$realname})");
|
|
| 119 |
+ } elseif (stristr($u['name'], $term)) {
|
|
| 120 |
+ $add(25, "u{$u['uid']}", "{$u['username']} (UID {$u['uid']}, {$realname})");
|
|
| 121 |
+ } else {
|
|
| 122 |
+ $add(85, "u{$u['uid']}", "{$u['username']} (UID {$u['uid']}, {$realname})");
|
|
| 123 |
+ } |
|
| 124 |
+ } |
|
| 125 |
+ } |
|
| 126 |
+ |
|
| 127 |
+ ksort($ret); |
|
| 86 | 128 |
|
| 129 |
+ $allentries = array(); |
|
| 130 |
+ foreach ($ret as $group) {
|
|
| 131 |
+ usort($group, function ($a, $b) {
|
|
| 132 |
+ return strnatcmp($a['value'], $b['value']); |
|
| 133 |
+ }); |
|
| 134 |
+ foreach ($group as $entry) {
|
|
| 135 |
+ $allentries[] = $entry; |
|
| 136 |
+ } |
|
| 137 |
+ } |
|
| 138 |
+ unset($ret); |
|
| 139 |
+ return $allentries; |
|
| 140 |
+} |
|
| 87 | 141 |
|
| 88 | 142 |
|
| ... | ... |
@@ -28,56 +28,13 @@ require_role(ROLE_SYSADMIN); |
| 28 | 28 |
$_SESSION['su_ajax_timestamp'] = time(); |
| 29 | 29 |
|
| 30 | 30 |
$term = $_GET['term']; |
| 31 |
-$ret = array(); |
|
| 32 |
- |
|
| 33 |
-function add($val, $id, $value) {
|
|
| 34 |
- global $ret; |
|
| 35 |
- if (isset($ret[$val]) && is_array($ret[$val])) {
|
|
| 36 |
- array_push($ret[$val], array("id" => $id, "value" => $value));
|
|
| 37 |
- } else {
|
|
| 38 |
- $ret[$val] = array( array("id" => $id, "value" => $value) );
|
|
| 39 |
- } |
|
| 40 |
-} |
|
| 41 |
- |
|
| 42 |
- |
|
| 43 |
-$result = array_unique(find_customers($term)); |
|
| 44 |
-sort($result); |
|
| 45 |
-foreach ($result as $val) {
|
|
| 46 |
- $c = new Customer((int) $val); |
|
| 47 |
- if ($c->id == $term) {
|
|
| 48 |
- add(10, "c{$c->id}", "Kunde {$c->id}: {$c->fullname}");
|
|
| 49 |
- } else {
|
|
| 50 |
- add(90, "c{$c->id}", "Kunde {$c->id}: {$c->fullname}");
|
|
| 51 |
- } |
|
| 52 |
- $users = find_users_for_customer($c->id); |
|
| 53 |
- foreach ($users as $u) {
|
|
| 54 |
- $realname = $c->fullname; |
|
| 55 |
- if ($u['name']) {
|
|
| 56 |
- $realname = $u['name']; |
|
| 57 |
- } |
|
| 58 |
- if ($u['uid'] == $term || $u['username'] == $term) {
|
|
| 59 |
- add(15, "u{$u['uid']}", "{$u['username']} (UID {$u['uid']}, {$realname})");
|
|
| 60 |
- } elseif (strstr($u['username'], $term)) {
|
|
| 61 |
- add(20, "u{$u['uid']}", "{$u['username']} (UID {$u['uid']}, {$realname})");
|
|
| 62 |
- } elseif (stristr($u['name'], $term)) {
|
|
| 63 |
- add(25, "u{$u['uid']}", "{$u['username']} (UID {$u['uid']}, {$realname})");
|
|
| 64 |
- } else {
|
|
| 65 |
- add(85, "u{$u['uid']}", "{$u['username']} (UID {$u['uid']}, {$realname})");
|
|
| 66 |
- } |
|
| 67 |
- } |
|
| 68 |
-} |
|
| 69 | 31 |
|
| 70 |
-ksort($ret); |
|
| 32 |
+$allentries = build_results($term); |
|
| 71 | 33 |
|
| 72 | 34 |
$lines = array(); |
| 73 |
-foreach ($ret as $group) {
|
|
| 74 |
- usort($group, function ($a, $b) {
|
|
| 75 |
- return strnatcmp($a['value'], $b['value']); |
|
| 76 |
- }); |
|
| 77 |
- foreach ($group as $entry) {
|
|
| 35 |
+foreach ($allentries as $entry) {
|
|
| 78 | 36 |
$lines[] = " { \"id\": \"".filter_input_general($entry['id'])."\", \"value\": \"".filter_input_general($entry['value'])."\" }";
|
| 79 | 37 |
} |
| 80 |
-} |
|
| 81 | 38 |
|
| 82 | 39 |
|
| 83 | 40 |
|
| 84 | 41 |