Commit 22ebfe90b5d1a52f55093f0c33a083041ca0f0e7
1 parent
7477bd75
Man kann jetzt eine Alternative aus der Liste aller Alternativen auswaehlen
Showing
5 changed files
with
170 additions
and
21 deletions
| 1 | /* ======================================================================= | 1 | /* ======================================================================= |
| 2 | * Styles for components | 2 | * Styles for components |
| 3 | * ======================================================================= */ | 3 | * ======================================================================= */ |
| 4 | -.bgc-bg1 { background-color: #888888 } | 4 | +.bgc-bg1 { background-color: #888888 } |
| 5 | /* ======================================================================= */ | 5 | /* ======================================================================= */ |
| 6 | 6 | ||
| 7 | /* ======================================================================= | 7 | /* ======================================================================= |
| 8 | * Styles for logical groups. A group is defined by a bounding box "grp*" | 8 | * Styles for logical groups. A group is defined by a bounding box "grp*" |
| 9 | * containing one or more header lines "head*" and content-boxes "box*" | 9 | * containing one or more header lines "head*" and content-boxes "box*" |
| 10 | * ======================================================================= */ | 10 | * ======================================================================= */ |
| 11 | -.bgc-grp1 { background-color: #aaaaaa } | ||
| 12 | -.bgc-box1 { background-color: #ffb400 } | ||
| 13 | -.bgc-grp-head1 { background-color: #e5a200 } | ||
| 14 | -.bgc-box-head1 { background-color: #ffc434 } | 11 | +.bgc-grp1 { background-color: #aaaaaa } |
| 12 | +.bgc-box1 { background-color: #ffb400 } | ||
| 13 | +.bgc-grp-head1 { background-color: #e5a200 } | ||
| 14 | +.bgc-box-head1 { background-color: #ffc434 } | ||
| 15 | /* ======================================================================= */ | 15 | /* ======================================================================= */ |
| 16 | 16 | ||
| 17 | /* ======================================================================= | 17 | /* ======================================================================= |
| 18 | * Styles for tooltips | 18 | * Styles for tooltips |
| 19 | * ======================================================================= */ | 19 | * ======================================================================= */ |
| 20 | -.bgc-tt1 { background-color: #eeeeee } | 20 | +.bgc-tt1 { background-color: #eeeeee } |
| 21 | +.bgc-tt1-selItem { background-color: #ffc434 } | ||
| 21 | /* ======================================================================= */ | 22 | /* ======================================================================= */ |
| @@ -46,6 +46,37 @@ function c_personSearch1 (fname, sname, fnameAlt, snameAlt, names, person) | @@ -46,6 +46,37 @@ function c_personSearch1 (fname, sname, fnameAlt, snameAlt, names, person) | ||
| 46 | this.sNameBest = new Array (-1, -1, null); | 46 | this.sNameBest = new Array (-1, -1, null); |
| 47 | this.fNameBest = new Array (-1, -1, null); | 47 | this.fNameBest = new Array (-1, -1, null); |
| 48 | 48 | ||
| 49 | + this.snameIdx = -1; | ||
| 50 | + this.fnameIdx = -1; | ||
| 51 | + this.snameMaxIdx = -1; | ||
| 52 | + this.fnameMaxIdx = -1; | ||
| 53 | + this.snameDists = new Array (); | ||
| 54 | + this.fnameDists = new Array (); | ||
| 55 | + | ||
| 56 | + this.incSnameIdx = function () | ||
| 57 | + { | ||
| 58 | + if (this.snameIdx < this.snameMaxIdx-1) | ||
| 59 | + this.snameIdx ++; | ||
| 60 | + } | ||
| 61 | + | ||
| 62 | + this.incFnameIdx = function () | ||
| 63 | + { | ||
| 64 | + if (this.fnameIdx < this.fnameMaxIdx-1) | ||
| 65 | + this.fnameIdx ++; | ||
| 66 | + } | ||
| 67 | + | ||
| 68 | + this.decSnameIdx = function () | ||
| 69 | + { | ||
| 70 | + if (this.snameIdx >= 0) | ||
| 71 | + this.snameIdx --; | ||
| 72 | + } | ||
| 73 | + | ||
| 74 | + this.decFnameIdx = function () | ||
| 75 | + { | ||
| 76 | + if (this.fnameIdx >= 0) | ||
| 77 | + this.fnameIdx --; | ||
| 78 | + } | ||
| 79 | + | ||
| 49 | this.show = function (id) | 80 | this.show = function (id) |
| 50 | { | 81 | { |
| 51 | var node = document.getElementById (id); | 82 | var node = document.getElementById (id); |
| @@ -56,9 +87,42 @@ function c_personSearch1 (fname, sname, fnameAlt, snameAlt, names, person) | @@ -56,9 +87,42 @@ function c_personSearch1 (fname, sname, fnameAlt, snameAlt, names, person) | ||
| 56 | 87 | ||
| 57 | this.hide = function (id) | 88 | this.hide = function (id) |
| 58 | { | 89 | { |
| 59 | - var node = document.getElementById (id); | 90 | + var node = document.getElementById (id); |
| 91 | + var inField = | ||
| 92 | + node.parentNode.parentNode.getElementsByTagName ('input')[0]; | ||
| 93 | + var idx = -1; | ||
| 94 | + var dists = new Array (); | ||
| 95 | + | ||
| 60 | node.parentNode.style.visibility = 'hidden'; | 96 | node.parentNode.style.visibility = 'hidden'; |
| 61 | 97 | ||
| 98 | + switch (inField.getAttribute ('id')) | ||
| 99 | + { | ||
| 100 | + case 'personSearch1_fname': | ||
| 101 | + idx = this.fnameIdx; | ||
| 102 | + if (idx != -1) | ||
| 103 | + { | ||
| 104 | + dists = this.fnameDists[idx].split ('::'); | ||
| 105 | + this.fNameBest = new Array (0, 0, dists[2]); | ||
| 106 | + inField.value = dists[2]; | ||
| 107 | + } | ||
| 108 | + break; | ||
| 109 | + case 'personSearch1_sname': | ||
| 110 | + idx = this.snameIdx; | ||
| 111 | + if (idx != -1) | ||
| 112 | + { | ||
| 113 | + dists = this.snameDists[idx].split ('::'); | ||
| 114 | + this.sNameBest = new Array (0, 0, dists[2]); | ||
| 115 | + inField.value = dists[2]; | ||
| 116 | + } | ||
| 117 | + } | ||
| 118 | + | ||
| 119 | + if (this.person != null) | ||
| 120 | + if (this.fNameBest[1] == 0) | ||
| 121 | + this.person.update ( | ||
| 122 | + this.persons[this.sNameBest[2]][this.fNameBest[2]]); | ||
| 123 | + else | ||
| 124 | + this.person.empty (); | ||
| 125 | + | ||
| 62 | return false; | 126 | return false; |
| 63 | } | 127 | } |
| 64 | 128 | ||
| @@ -73,7 +137,7 @@ function c_personSearch1 (fname, sname, fnameAlt, snameAlt, names, person) | @@ -73,7 +137,7 @@ function c_personSearch1 (fname, sname, fnameAlt, snameAlt, names, person) | ||
| 73 | return this.hide (altId); | 137 | return this.hide (altId); |
| 74 | } | 138 | } |
| 75 | 139 | ||
| 76 | - this.genAlternativesList = function (bestFit, dists) | 140 | + this.genAlternativesList = function (bestFit, dists, idx) |
| 77 | { | 141 | { |
| 78 | if (dists.length > 0) | 142 | if (dists.length > 0) |
| 79 | // there are caculated distances for surnames | 143 | // there are caculated distances for surnames |
| @@ -93,12 +157,16 @@ function c_personSearch1 (fname, sname, fnameAlt, snameAlt, names, person) | @@ -93,12 +157,16 @@ function c_personSearch1 (fname, sname, fnameAlt, snameAlt, names, person) | ||
| 93 | 157 | ||
| 94 | // create list entries | 158 | // create list entries |
| 95 | newLi = document.createElement ('li'); | 159 | newLi = document.createElement ('li'); |
| 160 | + | ||
| 161 | + if (i == idx) | ||
| 162 | + newLi.className = 'bgc-tt1-selItem'; | ||
| 163 | + | ||
| 96 | liTxt = document.createTextNode (sMatch[2]); | 164 | liTxt = document.createTextNode (sMatch[2]); |
| 97 | newLi.appendChild (liTxt); | 165 | newLi.appendChild (liTxt); |
| 98 | bestFit.appendChild (newLi); | 166 | bestFit.appendChild (newLi); |
| 99 | i=i+1; | 167 | i=i+1; |
| 100 | 168 | ||
| 101 | - if (i >= bestMatch[1]) | 169 | + if (i >= bestMatch[1] && sMatch[1] > bestMatch[1]) |
| 102 | // dont show more than best match distance matches. | 170 | // dont show more than best match distance matches. |
| 103 | break; | 171 | break; |
| 104 | } | 172 | } |
| @@ -115,23 +183,33 @@ function c_personSearch1 (fname, sname, fnameAlt, snameAlt, names, person) | @@ -115,23 +183,33 @@ function c_personSearch1 (fname, sname, fnameAlt, snameAlt, names, person) | ||
| 115 | return bestMatch; | 183 | return bestMatch; |
| 116 | } | 184 | } |
| 117 | 185 | ||
| 118 | - this.altSurnames = function () | 186 | + this.altSurnames = function (_event) |
| 119 | { | 187 | { |
| 120 | var surname = document.getElementById (this.surname); | 188 | var surname = document.getElementById (this.surname); |
| 121 | var sNameAlt = document.getElementById (this.sNameAlt); | 189 | var sNameAlt = document.getElementById (this.sNameAlt); |
| 122 | - var dists = fittingStrings (surname.value, this.surnames, false); | ||
| 123 | 190 | ||
| 124 | - this.sNameBest = this.genAlternativesList (sNameAlt, dists); | 191 | + this.snameDists = fittingStrings (surname.value, this.surnames, false); |
| 192 | + if (this.snameDists.length > 0) | ||
| 193 | + this.snameMaxIdx = this.snameDists[0].split ('::')[1]; | ||
| 194 | + else | ||
| 195 | + this.snameMaxIdx = -1; | ||
| 196 | + | ||
| 197 | + this.sNameBest = | ||
| 198 | + this.genAlternativesList (sNameAlt, this.snameDists, this.snameIdx); | ||
| 125 | this.updField (surname, this.sNameBest, this.sNameAlt) | 199 | this.updField (surname, this.sNameBest, this.sNameAlt) |
| 126 | 200 | ||
| 127 | if (this.sNameBest[1] == 0) | 201 | if (this.sNameBest[1] == 0) |
| 128 | { | 202 | { |
| 129 | var firstname = document.getElementById (this.firstname); | 203 | var firstname = document.getElementById (this.firstname); |
| 130 | - var dists = fittingStrings ( | 204 | + this.fnameDists = fittingStrings ( |
| 131 | firstname.value, this.firstnames[this.sNameBest[2]], false); | 205 | firstname.value, this.firstnames[this.sNameBest[2]], false); |
| 206 | + if (this.fnameDists.length > 0) | ||
| 207 | + this.fnameMaxIdx = this.fnameDists[0].split ('::')[1]; | ||
| 208 | + else | ||
| 209 | + this.fnameMaxIdx = -1; | ||
| 132 | 210 | ||
| 133 | - if (dists.length > 0) | ||
| 134 | - this.fNameBest = dists[0].split ('::'); | 211 | + if (this.fnameDists.length > 0) |
| 212 | + this.fNameBest = this.fnameDists[0].split ('::'); | ||
| 135 | 213 | ||
| 136 | if (this.person != null) | 214 | if (this.person != null) |
| 137 | if (this.fNameBest[1] == 0) | 215 | if (this.fNameBest[1] == 0) |
| @@ -150,7 +228,7 @@ function c_personSearch1 (fname, sname, fnameAlt, snameAlt, names, person) | @@ -150,7 +228,7 @@ function c_personSearch1 (fname, sname, fnameAlt, snameAlt, names, person) | ||
| 150 | return false; | 228 | return false; |
| 151 | } | 229 | } |
| 152 | 230 | ||
| 153 | - this.altFirstnames = function (person) | 231 | + this.altFirstnames = function () |
| 154 | { | 232 | { |
| 155 | var firstname = document.getElementById (this.firstname); | 233 | var firstname = document.getElementById (this.firstname); |
| 156 | var fNameAlt = document.getElementById (this.fNameAlt); | 234 | var fNameAlt = document.getElementById (this.fNameAlt); |
| @@ -158,13 +236,18 @@ function c_personSearch1 (fname, sname, fnameAlt, snameAlt, names, person) | @@ -158,13 +236,18 @@ function c_personSearch1 (fname, sname, fnameAlt, snameAlt, names, person) | ||
| 158 | if (this.sNameBest[1] == 0) | 236 | if (this.sNameBest[1] == 0) |
| 159 | { | 237 | { |
| 160 | var surname = document.getElementById (this.surname); | 238 | var surname = document.getElementById (this.surname); |
| 161 | - var dists = fittingStrings ( | 239 | + this.fnameDists = fittingStrings ( |
| 162 | firstname.value, this.firstnames[this.sNameBest[2]], false); | 240 | firstname.value, this.firstnames[this.sNameBest[2]], false); |
| 241 | + if (this.fnameDists.length > 0) | ||
| 242 | + this.fnameMaxIdx = this.fnameDists[0].split ('::')[1]; | ||
| 243 | + else | ||
| 244 | + this.fnameMaxIdx = -1; | ||
| 163 | } | 245 | } |
| 164 | else | 246 | else |
| 165 | - dists = new Array (); | 247 | + this.fnameDists = new Array (); |
| 166 | 248 | ||
| 167 | - this.fNameBest = this.genAlternativesList (fNameAlt, dists); | 249 | + this.fNameBest = |
| 250 | + this.genAlternativesList (fNameAlt, this.fnameDists, this.fnameIdx); | ||
| 168 | this.updField (firstname, this.fNameBest, this.fNameAlt) | 251 | this.updField (firstname, this.fNameBest, this.fNameAlt) |
| 169 | 252 | ||
| 170 | if (this.person != null) | 253 | if (this.person != null) |
| @@ -177,3 +260,59 @@ function c_personSearch1 (fname, sname, fnameAlt, snameAlt, names, person) | @@ -177,3 +260,59 @@ function c_personSearch1 (fname, sname, fnameAlt, snameAlt, names, person) | ||
| 177 | return false; | 260 | return false; |
| 178 | } | 261 | } |
| 179 | } | 262 | } |
| 263 | + | ||
| 264 | +function personSearch1AltFirstnameHandler (_event) | ||
| 265 | +{ | ||
| 266 | + if (_event == undefined) | ||
| 267 | + _event = window.event; | ||
| 268 | + | ||
| 269 | + if (_event.which) | ||
| 270 | + var keycode = _event.which; | ||
| 271 | + else if (_event.keyCode) | ||
| 272 | + var keycode = _event.keyCode; | ||
| 273 | + | ||
| 274 | + var dists = pSearch1.fnameDists; | ||
| 275 | + | ||
| 276 | + // pSearch1 wird im php personSearch1.js angelegt. | ||
| 277 | + switch (keycode) | ||
| 278 | + { | ||
| 279 | + case 38: | ||
| 280 | + pSearch1.decFnameIdx (); | ||
| 281 | + break; | ||
| 282 | + case 40: | ||
| 283 | + pSearch1.incFnameIdx (); | ||
| 284 | + break; | ||
| 285 | + default: | ||
| 286 | + pSearch1.fnameIdx = -1; | ||
| 287 | + } | ||
| 288 | + | ||
| 289 | + pSearch1.altFirstnames (); | ||
| 290 | +} | ||
| 291 | + | ||
| 292 | +function personSearch1AltSurnameHandler (_event) | ||
| 293 | +{ | ||
| 294 | + if (_event == undefined) | ||
| 295 | + _event = window.event; | ||
| 296 | + | ||
| 297 | + if (_event.which) | ||
| 298 | + var keycode = _event.which; | ||
| 299 | + else if (_event.keyCode) | ||
| 300 | + var keycode = _event.keyCode; | ||
| 301 | + | ||
| 302 | + var dists = pSearch1.snameDists; | ||
| 303 | + | ||
| 304 | + // pSearch1 wird im php personSearch1.js angelegt. | ||
| 305 | + switch (keycode) | ||
| 306 | + { | ||
| 307 | + case 38: | ||
| 308 | + pSearch1.decSnameIdx (); | ||
| 309 | + break; | ||
| 310 | + case 40: | ||
| 311 | + pSearch1.incSnameIdx (); | ||
| 312 | + break; | ||
| 313 | + default: | ||
| 314 | + pSearch1.snameIdx = -1; | ||
| 315 | + } | ||
| 316 | + | ||
| 317 | + pSearch1.altSurnames (); | ||
| 318 | +} |
No preview for this file type
| @@ -49,12 +49,12 @@ msgstr "Perönliche Daten" | @@ -49,12 +49,12 @@ msgstr "Perönliche Daten" | ||
| 49 | #: templates/personAdmin/personInUp.tpl.php:81 | 49 | #: templates/personAdmin/personInUp.tpl.php:81 |
| 50 | #: templates/personAdmin/personSearch1.tpl.php:56 | 50 | #: templates/personAdmin/personSearch1.tpl.php:56 |
| 51 | msgid "firstname" | 51 | msgid "firstname" |
| 52 | -msgstr "Nachname" | 52 | +msgstr "Vorname" |
| 53 | 53 | ||
| 54 | #: templates/personAdmin/personInUp.tpl.php:87 | 54 | #: templates/personAdmin/personInUp.tpl.php:87 |
| 55 | #: templates/personAdmin/personSearch1.tpl.php:45 | 55 | #: templates/personAdmin/personSearch1.tpl.php:45 |
| 56 | msgid "surname" | 56 | msgid "surname" |
| 57 | -msgstr "Vorname" | 57 | +msgstr "Nachname" |
| 58 | 58 | ||
| 59 | #: templates/personAdmin/personInUp.tpl.php:93 | 59 | #: templates/personAdmin/personInUp.tpl.php:93 |
| 60 | msgid "company" | 60 | msgid "company" |
| @@ -63,3 +63,12 @@ | @@ -63,3 +63,12 @@ | ||
| 63 | </form> | 63 | </form> |
| 64 | </div> | 64 | </div> |
| 65 | </div> | 65 | </div> |
| 66 | + | ||
| 67 | +<script language="javascript"> | ||
| 68 | +//<![CDATA[ | ||
| 69 | + document.getElementById ('personSearch1_sname').onkeyup = | ||
| 70 | + personSearch1AltSurnameHandler; | ||
| 71 | + document.getElementById ('personSearch1_fname').onkeyup = | ||
| 72 | + personSearch1AltFirstnameHandler; | ||
| 73 | +//]]> | ||
| 74 | +</script> |
Please
register
or
login
to post a comment