Commit 22ebfe90b5d1a52f55093f0c33a083041ca0f0e7

Authored by Georg Hopp
1 parent 7477bd75

Man kann jetzt eine Alternative aus der Liste aller Alternativen auswaehlen

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 +}
@@ -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