Changeset 31684 for other-projects/meddle
- Timestamp:
- 2017-05-17T10:22:58+12:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
other-projects/meddle/trunk/meddle-fixup.js
r31682 r31684 1 // MEDDLE version 0.9 1 /** 2 * MEDDLE version 0.9 3 * Copyright (C) 2017 New Zealand Digital Library, http://www.nzdl.org 4 * 5 * This program is free software: you can redistribute it and/or modify 6 * it under the terms of the GNU General Public License as published by 7 * the Free Software Foundation, either version 3 of the License, or 8 * (at your option) any later version. 9 * 10 * This program is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU General Public License for more details. 14 * 15 * You should have received a copy of the GNU General Public License 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. 17 */ 18 19 function trim(str) 20 { 21 return str.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); 22 } 2 23 3 24 … … 6 27 // https://en.wikipedia.org/wiki/Typographic_ligature#Ligatures_in_Unicode_.28Latin_alphabets.29 7 28 8 function trim(str)9 {10 return str.replace(/^\s\s*/, '').replace(/\s\s*$/, '');11 }12 29 13 30 var ligature_map = { … … 122 139 } 123 140 124 //console.log("*** ligature_str = " + ligature_str);125 126 141 var detected_ligatures = ligature_re.test(query_box_val); 127 142 var do_replacement = $('#meddle-lig').is(":checked"); … … 167 182 console.log( "amcm-dl-fixup fixupEncodeInput(form) called" ); 168 183 169 //if (ligature_re === null) {170 // var ligature_str = Object.keys(ligature_map).join("|");171 // ligature_re = new RegExp(ligature_str);172 //}173 174 //console.log("*** ligature_str = " + ligature_str);175 176 184 var query_box_val = form.elements['query'].value; 177 185 query_box_val = opt_ligature_replacement(query_box_val); 178 186 179 /* 180 var detected_ligatures = ligature_re.test(query_box_val); 181 if (detected_ligatures) { 182 //var do_replacement = confirm("Detected ligatures in query. Replace with individual characters?"); 183 var do_replacement = $('#meddle-lig').is(":checked"); 184 185 if (do_replacement) { 186 var query_chars = query_box_val.split(""); 187 var query_chars_fixed = []; 187 188 query_box_val = opt_accent_fold(query_box_val); 189 190 // e.g., content.ftsec:(+capisco) 191 192 var query_box_val = query_box_val.replace(/^\s+/,""); 193 var query_box_words = query_box_val.split(/\s+/); 194 195 var query_box_val_plus = ""; 196 var query_box_val_double = ""; 197 198 for (var i=0; i<query_box_words.length; i++) { 199 if (i>0) { 200 query_box_val_plus += " "; 201 } 202 query_box_val_plus += "+" + query_box_words[i]; 203 204 if (i>0) { 205 query_box_val_double += " " + query_box_words[i-1]+query_box_words[i]; 206 } 207 } 208 209 210 form.elements['query'].value = "content.ftsec:(" + query_box_val_plus + query_box_val_double + ")"; 211 212 213 return encodeInput(form); 214 } 215 216 function fixupSubmitIt() { 217 var search_where = $("#fld0 option:selected").text(); 218 var x = 0; 219 var search_select = $("#fld"+x+" option:selected"); 220 var search_where = search_select.text(); 221 222 while (search_where) { 223 if (search_where == "Any field") { 188 224 189 for (var i=0; i<query_chars.length; i++) { 190 var c = query_chars[i]; 191 if (ligature_map[c]) { 192 c = ligature_map[c]; 193 } 194 query_chars_fixed.push(c); 195 } 196 query_box_val = query_chars_fixed.join(""); 197 } 198 } 199 */ 225 $("#fld"+x).val('content.ftsec:'); 226 } 227 x = x + 1; 228 search_select = $("#fld"+x+" option:selected"); 229 search_where = search_select.text(); 230 } 231 buildQuery(); 232 233 return submitIt(); 234 } 235 236 function meddleInfoBox() { 237 238 // Icon image 239 // By VistaICO.com (VistaICO Toolbar Icons) [CC BY 3.0 ] 240 241 242 var dlcontextoptions = '<input id="meddle-lig" name="meddle-lig" type="checkbox"><label for="meddle-lig" style="display: inline"> Ligature expansion</label> <input id="meddle-acc" name="meddle-acc" type="checkbox"><label for="meddle-acc" style="display: inline"> Accent folding</label>'; 243 244 245 //console.log("*** location = " + window.location.pathname); 246 var detected_dl = ""; 247 248 var domain_match = window.location.pathname.match(/nph-proxy-meddle.cgi\/.*?https?\/(.*)$/); 249 250 if (domain_match.length>1) { 251 var real_domain = domain_match[1]; 252 253 if (real_domain.match(/^dl\.acm\.org\//)) { 254 detected_dl = "ACM DL (Meddled with to provide: full-text quicksearch, word-wrap protection)"; 255 } 256 else if (real_domain.match(/^scholar\.google\.[a-z]+/)) { 257 detected_dl = "Google Scholar"; 258 } 259 else if (real_domain.match(/^www.springer\.com/)) { 260 detected_dl = "Springer"; 261 } 262 else if (real_domain.match(/^ieeexplore\.ieee\.org\//)) { 263 detected_dl = "IEEE Xplore"; 264 } 265 } 266 267 if (detected_dl !== "") { 268 $('#dlcontext').html("<i>Detected:" + detected_dl + "</i>"); 269 } 270 271 $('#dlcontextoptions').html('<font size="-1">'+dlcontextoptions+'</font>'); 272 273 return detected_dl; 274 } 275 276 277 function acmdlFixupInit() { 278 279 console.log("amc-dl-fixup initiated"); 280 281 var query_form = document.getElementsByName("qiksearch")[0]; 282 if (query_form) { 283 query_form.setAttribute("onsubmit", "fixupEncodeInput(this) ; _proxy_jslib_flush_write_buffers();"); 284 } 285 286 var adv_query_form = document.getElementById("theform"); 287 if (adv_query_form) { 288 // javascript:submitIt(); 289 // javascript:; _proxy_jslib_proxify_html(submitIt())[0] 290 291 adv_query_form.setAttribute("action","javascript:fixupSubmitIt();"); 292 } 293 294 var query_box = document.getElementsByName("query")[0]; 295 if (query_box) { 296 var query_box_val = query_box.getAttribute("value"); 297 query_box.setAttribute("value", query_box_val.replace(/content\.ftsec:\(\+(.*)\)/g,"$1")); 298 } 299 300 console.log("acm-dl-fixup DOM tweaks done"); 301 } 302 303 304 function fixupGScholarSubmit(evt) { 305 console.log( "gscholar-dl-fixup fixupGScholarSubmit(form) called" ); 306 307 var event = evt || window.event; 308 form = event.target.id; 309 310 event.preventDefault(); // to stop the form from submitting 311 312 var query_box = document.getElementById("gs_hp_tsi"); 313 var query_box_val = query_box.value; 314 315 query_box_val = opt_ligature_replacement(query_box_val); 316 317 query_box_val = opt_accent_fold(query_box_val); 318 319 query_box.value = query_box_val; 320 321 _proxy_jslib_flush_write_buffers(); 322 323 var query_form = document.getElementsByName("f")[0]; 324 query_form.submit(); 325 } 326 327 function gscholarFixupInit() { 328 329 console.log("gscholar-fixup initiated"); 330 331 var query_form = document.getElementsByName("f")[0]; 332 if (query_form) { 333 334 query_form.onsubmit = fixupGScholarSubmit; 335 336 } 337 } 338 339 340 function fixupXploreSubmit(evt) { 341 console.log( "xplore-dl-fixup fixupXploreSubmit(evt) called" ); 342 343 var event = evt || window.event; 344 event.preventDefault(); // to stop the form from submitting 345 346 var query_box = document.getElementById("input-basic"); 347 var query_box_val = query_box.value; 348 349 query_box_val = opt_ligature_replacement(query_box_val); 200 350 201 351 /* … … 208 358 query_box_val = opt_accent_fold(query_box_val); 209 359 210 // e.g., content.ftsec:(+capisco)211 212 var query_box_val = query_box_val.replace(/^\s+/,"");213 var query_box_words = query_box_val.split(/\s+/);214 215 var query_box_val_plus = "";216 var query_box_val_double = "";217 218 for (var i=0; i<query_box_words.length; i++) {219 if (i>0) {220 query_box_val_plus += " ";221 }222 query_box_val_plus += "+" + query_box_words[i];223 224 if (i>0) {225 query_box_val_double += " " + query_box_words[i-1]+query_box_words[i];226 }227 }228 229 230 form.elements['query'].value = "content.ftsec:(" + query_box_val_plus + query_box_val_double + ")";231 232 233 return encodeInput(form);234 }235 236 function fixupSubmitIt() {237 var search_where = $("#fld0 option:selected").text();238 //console.log("**** search_where = " + search_where);239 var x = 0;240 var search_select = $("#fld"+x+" option:selected");241 var search_where = search_select.text();242 243 while (search_where) {244 if (search_where == "Any field") {245 //var sel_val = document.getElementById("fld" + x).selectedIndex].value;246 247 //var thisField = document.getElementById("fld" + x).options[document.getElementById("fld" + x).selectedIndex].value;248 249 $("#fld"+x).val('content.ftsec:');250 //$("#fld0 option[value='content.ftsec:']").prop('selected', true);251 //alert("changed menu");252 }253 x = x + 1;254 search_select = $("#fld"+x+" option:selected");255 search_where = search_select.text();256 //console.log("*** search select = " + search_select.text());257 //alert("ddd");258 }259 buildQuery();260 261 return submitIt();262 }263 264 function meddleInfoBox() {265 266 //$('#_proxy_css_top_insertion').append('<form name="MeddleForm" style="padding-bottom: 20px;"><center><table cellpadding="5" border="1"><tbody><tr><td align="center"><img src="http://bedrock.resnet.cms.waikato.ac.nz/meddle/meddle-icon-large.png" width="64" height="64" /></td><td><b><font size="+1"><a href="https://bedrock.resnet.cms.waikato.ac.nz/meddle/">MEDDLE Proxy: ModifiED Digital Library Proxy</a></font></b><br /><div id="dlcontext"></div><div id="dlcontextoptions"</div></td></tr></tbody></table></center></form>');267 268 // Icon image269 // By VistaICO.com (VistaICO Toolbar Icons) [CC BY 3.0 ]270 271 272 var dlcontextoptions = '<input id="meddle-lig" name="meddle-lig" type="checkbox"><label for="meddle-lig" style="display: inline"> Ligature expansion</label> <input id="meddle-acc" name="meddle-acc" type="checkbox"><label for="meddle-acc" style="display: inline"> Accent folding</label>';273 274 275 //console.log("*** location = " + window.location.pathname);276 var detected_dl = "";277 278 var domain_match = window.location.pathname.match(/nph-proxy-meddle.cgi\/.*?https?\/(.*)$/);279 280 if (domain_match.length>1) {281 var real_domain = domain_match[1];282 //console.log("*** real domain = " + real_domain);283 284 if (real_domain.match(/^dl\.acm\.org\//)) {285 detected_dl = "ACM DL (Meddled with to provide: full-text quicksearch, word-wrap protection)";286 //dlcontextoptions += " Also ";287 }288 else if (real_domain.match(/^scholar\.google\.[a-z]+/)) {289 detected_dl = "Google Scholar";290 }291 else if (real_domain.match(/^www.springer\.com/)) {292 detected_dl = "Springer";293 }294 else if (real_domain.match(/^ieeexplore\.ieee\.org\//)) {295 detected_dl = "IEEE Xplore";296 }297 }298 299 if (detected_dl !== "") {300 $('#dlcontext').html("<i>Detected:" + detected_dl + "</i>");301 }302 303 $('#dlcontextoptions').html('<font size="-1">'+dlcontextoptions+'</font>');304 305 return detected_dl;306 }307 308 309 function acmdlFixupInit() {310 311 console.log("amc-dl-fixup initiated");312 313 var query_form = document.getElementsByName("qiksearch")[0];314 if (query_form) {315 query_form.setAttribute("onsubmit", "fixupEncodeInput(this) ; _proxy_jslib_flush_write_buffers();");316 }317 318 /*319 //var query_box = document.getElementsByName("query")[0];320 //var query_box_val = query_box.getAttribute("value");321 //query_box.setAttribute("value", "Foo");322 */323 var adv_query_form = document.getElementById("theform");324 if (adv_query_form) {325 // javascript:submitIt();326 // javascript:; _proxy_jslib_proxify_html(submitIt())[0]327 328 adv_query_form.setAttribute("action","javascript:fixupSubmitIt();");329 }330 331 var query_box = document.getElementsByName("query")[0];332 if (query_box) {333 var query_box_val = query_box.getAttribute("value");334 query_box.setAttribute("value", query_box_val.replace(/content\.ftsec:\(\+(.*)\)/g,"$1"));335 }336 337 console.log("acm-dl-fixup DOM tweaks done");338 }339 340 341 function fixupGScholarSubmit(evt) {342 console.log( "gscholar-dl-fixup fixupGScholarSubmit(form) called" );343 344 var event = evt || window.event;345 form = event.target.id;346 347 event.preventDefault(); // to stop the form from submitting348 349 /*350 if (ligature_re === null) {351 var ligature_str = Object.keys(ligature_map).join("|");352 ligature_re = new RegExp(ligature_str);353 }354 */355 356 //console.log("*** ligature_str = " + ligature_str);357 358 //var query_box_val = form.elements['q'].value;359 var query_box = document.getElementById("gs_hp_tsi");360 var query_box_val = query_box.value;361 362 query_box_val = opt_ligature_replacement(query_box_val);363 /*364 var detected_ligatures = ligature_re.test(query_box_val);365 if (detected_ligatures) {366 //var do_replacement = confirm("Detected ligatures in query. Replace with individual characters?");367 var do_replacement = $('#meddle-lig').is(":checked");368 369 if (do_replacement) {370 var query_chars = query_box_val.split("");371 var query_chars_fixed = [];372 373 for (var i=0; i<query_chars.length; i++) {374 var c = query_chars[i];375 if (ligature_map[c]) {376 c = ligature_map[c];377 }378 query_chars_fixed.push(c);379 }380 query_box_val = query_chars_fixed.join("");381 }382 }383 */384 385 /*386 var do_accent_replacement = $('#meddle-acc').is(":checked");387 if (do_accent_replacement) {388 query_box_val = accent_fold(query_box_val);389 }390 */391 392 query_box_val = opt_accent_fold(query_box_val);393 394 //form.elements['q'].value = query_box_val;395 query_box.value = query_box_val;396 397 _proxy_jslib_flush_write_buffers();398 399 var query_form = document.getElementsByName("f")[0];400 query_form.submit();401 //form.submit();402 }403 404 function gscholarFixupInit() {405 406 console.log("gscholar-fixup initiated");407 408 var query_form = document.getElementsByName("f")[0];409 if (query_form) {410 //query_form.setAttribute("onsubmit", "fixupGScholarSubmit(this) ; _proxy_jslib_flush_write_buffers();");411 //query_form.setAttribute("onsubmit", fixupGScholarSubmit);412 //query_form.setAttribute("onsubmit", 'function(evt) { fixupGoogleSubmit(evt,this) }');413 414 query_form.onsubmit = fixupGScholarSubmit;415 /*416 function(evt) {417 var event = evt || window.event;418 fixupGScholarSubmit(event,event.target.id);419 420 //console.log(event.target.id); // myform421 422 }423 */424 425 }426 }427 428 429 function fixupXploreSubmit(evt) {430 console.log( "xplore-dl-fixup fixupXploreSubmit(evt) called" );431 432 var event = evt || window.event;433 event.preventDefault(); // to stop the form from submitting434 435 var query_box = document.getElementById("input-basic");436 var query_box_val = query_box.value;437 438 query_box_val = opt_ligature_replacement(query_box_val);439 440 /*441 var do_accent_replacement = $('#meddle-acc').is(":checked");442 if (do_accent_replacement) {443 query_box_val = accent_fold(query_box_val);444 }445 */446 447 query_box_val = opt_accent_fold(query_box_val);448 449 360 query_box.value = query_box_val; 450 361 … … 484 395 485 396 query_box_val = opt_accent_fold(query_box_val); 486 //alert("*** q = " + query_box_val);487 397 488 398 query_box.value = query_box_val; … … 491 401 492 402 _proxy_jslib_flush_write_buffers(); // is this needed? 493 //query_form.submit();494 403 document.createElement('form').submit.call(query_form); 495 496 //var $query_form = $("#global-search");497 //$query_form.submit();498 404 499 405 }
Note:
See TracChangeset
for help on using the changeset viewer.