Changeset 31612 for other-projects

Show
Ignore:
Timestamp:
20.04.2017 17:53:51 (2 years ago)
Author:
davidb
Message:

Icon, accent folder added

Location:
other-projects/meddle/trunk
Files:
1 added
3 modified

Legend:

Unmodified
Added
Removed
  • other-projects/meddle/trunk/INSTALL.sh

    r31610 r31612  
    2727/bin/cp index.* "$MEDDLE_WEBDIR/." 
    2828/bin/cp meddle-fixup.js "$MEDDLE_WEBDIR/." 
     29/bin/cp meddle-icon-*.png "$MEDDLE_WEBDIR/." 
    2930 
    3031echo "Installing/Updating $MEDDLE_CGIDIR" 
  • other-projects/meddle/trunk/meddle-fixup.js

    r31607 r31612  
    11// https://en.wikipedia.org/wiki/List_of_precomposed_Latin_characters_in_Unicode 
    22// https://en.wikipedia.org/wiki/Typographic_ligature#Ligatures_in_Unicode_.28Latin_alphabets.29 
     3 
     4function trim(str) 
     5{ 
     6    return str.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); 
     7} 
    38 
    49var ligature_map = { 
     
    4348var ligature_re = null; 
    4449 
     50var accented = { 
     51    'a': '[Aa\xaa\xc0-\xc5\xe0-\xe5\u0100-\u0105\u01cd\u01ce\u0200-\u0203\u0226\u0227\u1d2c\u1d43\u1e00\u1e01\u1e9a\u1ea0-\u1ea3\u2090\u2100\u2101\u213b\u249c\u24b6\u24d0\u3371-\u3374\u3380-\u3384\u3388\u3389\u33a9-\u33af\u33c2\u33ca\u33df\u33ff\uff21\uff41]', 
     52    'b': '[Bb\u1d2e\u1d47\u1e02-\u1e07\u212c\u249d\u24b7\u24d1\u3374\u3385-\u3387\u33c3\u33c8\u33d4\u33dd\uff22\uff42]', 
     53    'c': '[Cc\xc7\xe7\u0106-\u010d\u1d9c\u2100\u2102\u2103\u2105\u2106\u212d\u216d\u217d\u249e\u24b8\u24d2\u3376\u3388\u3389\u339d\u33a0\u33a4\u33c4-\u33c7\uff23\uff43]', 
     54    'd': '[Dd\u010e\u010f\u01c4-\u01c6\u01f1-\u01f3\u1d30\u1d48\u1e0a-\u1e13\u2145\u2146\u216e\u217e\u249f\u24b9\u24d3\u32cf\u3372\u3377-\u3379\u3397\u33ad-\u33af\u33c5\u33c8\uff24\uff44]', 
     55    'e': '[Ee\xc8-\xcb\xe8-\xeb\u0112-\u011b\u0204-\u0207\u0228\u0229\u1d31\u1d49\u1e18-\u1e1b\u1eb8-\u1ebd\u2091\u2121\u212f\u2130\u2147\u24a0\u24ba\u24d4\u3250\u32cd\u32ce\uff25\uff45]', 
     56    'f': '[Ff\u1da0\u1e1e\u1e1f\u2109\u2131\u213b\u24a1\u24bb\u24d5\u338a-\u338c\u3399\ufb00-\ufb04\uff26\uff46]', 
     57    'g': '[Gg\u011c-\u0123\u01e6\u01e7\u01f4\u01f5\u1d33\u1d4d\u1e20\u1e21\u210a\u24a2\u24bc\u24d6\u32cc\u32cd\u3387\u338d-\u338f\u3393\u33ac\u33c6\u33c9\u33d2\u33ff\uff27\uff47]', 
     58    'h': '[Hh\u0124\u0125\u021e\u021f\u02b0\u1d34\u1e22-\u1e2b\u1e96\u210b-\u210e\u24a3\u24bd\u24d7\u32cc\u3371\u3390-\u3394\u33ca\u33cb\u33d7\uff28\uff48]', 
     59    'i': '[Ii\xcc-\xcf\xec-\xef\u0128-\u0130\u0132\u0133\u01cf\u01d0\u0208-\u020b\u1d35\u1d62\u1e2c\u1e2d\u1ec8-\u1ecb\u2071\u2110\u2111\u2139\u2148\u2160-\u2163\u2165-\u2168\u216a\u216b\u2170-\u2173\u2175-\u2178\u217a\u217b\u24a4\u24be\u24d8\u337a\u33cc\u33d5\ufb01\ufb03\uff29\uff49]', 
     60    'j': '[Jj\u0132-\u0135\u01c7-\u01cc\u01f0\u02b2\u1d36\u2149\u24a5\u24bf\u24d9\u2c7c\uff2a\uff4a]', 
     61    'k': '[Kk\u0136\u0137\u01e8\u01e9\u1d37\u1d4f\u1e30-\u1e35\u212a\u24a6\u24c0\u24da\u3384\u3385\u3389\u338f\u3391\u3398\u339e\u33a2\u33a6\u33aa\u33b8\u33be\u33c0\u33c6\u33cd-\u33cf\uff2b\uff4b]', 
     62    'l': '[Ll\u0139-\u0140\u01c7-\u01c9\u02e1\u1d38\u1e36\u1e37\u1e3a-\u1e3d\u2112\u2113\u2121\u216c\u217c\u24a7\u24c1\u24db\u32cf\u3388\u3389\u33d0-\u33d3\u33d5\u33d6\u33ff\ufb02\ufb04\uff2c\uff4c]', 
     63    'm': '[Mm\u1d39\u1d50\u1e3e-\u1e43\u2120\u2122\u2133\u216f\u217f\u24a8\u24c2\u24dc\u3377-\u3379\u3383\u3386\u338e\u3392\u3396\u3399-\u33a8\u33ab\u33b3\u33b7\u33b9\u33bd\u33bf\u33c1\u33c2\u33ce\u33d0\u33d4-\u33d6\u33d8\u33d9\u33de\u33df\uff2d\uff4d]', 
     64    'n': '[Nn\xd1\xf1\u0143-\u0149\u01ca-\u01cc\u01f8\u01f9\u1d3a\u1e44-\u1e4b\u207f\u2115\u2116\u24a9\u24c3\u24dd\u3381\u338b\u339a\u33b1\u33b5\u33bb\u33cc\u33d1\uff2e\uff4e]', 
     65    'o': '[Oo\xba\xd2-\xd6\xf2-\xf6\u014c-\u0151\u01a0\u01a1\u01d1\u01d2\u01ea\u01eb\u020c-\u020f\u022e\u022f\u1d3c\u1d52\u1ecc-\u1ecf\u2092\u2105\u2116\u2134\u24aa\u24c4\u24de\u3375\u33c7\u33d2\u33d6\uff2f\uff4f]', 
     66    'p': '[Pp\u1d3e\u1d56\u1e54-\u1e57\u2119\u24ab\u24c5\u24df\u3250\u3371\u3376\u3380\u338a\u33a9-\u33ac\u33b0\u33b4\u33ba\u33cb\u33d7-\u33da\uff30\uff50]', 
     67    'q': '[Qq\u211a\u24ac\u24c6\u24e0\u33c3\uff31\uff51]', 
     68    'r': '[Rr\u0154-\u0159\u0210-\u0213\u02b3\u1d3f\u1d63\u1e58-\u1e5b\u1e5e\u1e5f\u20a8\u211b-\u211d\u24ad\u24c7\u24e1\u32cd\u3374\u33ad-\u33af\u33da\u33db\uff32\uff52]', 
     69    's': '[Ss\u015a-\u0161\u017f\u0218\u0219\u02e2\u1e60-\u1e63\u20a8\u2101\u2120\u24ae\u24c8\u24e2\u33a7\u33a8\u33ae-\u33b3\u33db\u33dc\ufb06\uff33\uff53]', 
     70    't': '[Tt\u0162-\u0165\u021a\u021b\u1d40\u1d57\u1e6a-\u1e71\u1e97\u2121\u2122\u24af\u24c9\u24e3\u3250\u32cf\u3394\u33cf\ufb05\ufb06\uff34\uff54]', 
     71    'u': '[Uu\xd9-\xdc\xf9-\xfc\u0168-\u0173\u01af\u01b0\u01d3\u01d4\u0214-\u0217\u1d41\u1d58\u1d64\u1e72-\u1e77\u1ee4-\u1ee7\u2106\u24b0\u24ca\u24e4\u3373\u337a\uff35\uff55]', 
     72    'v': '[Vv\u1d5b\u1d65\u1e7c-\u1e7f\u2163-\u2167\u2173-\u2177\u24b1\u24cb\u24e5\u2c7d\u32ce\u3375\u33b4-\u33b9\u33dc\u33de\uff36\uff56]', 
     73    'w': '[Ww\u0174\u0175\u02b7\u1d42\u1e80-\u1e89\u1e98\u24b2\u24cc\u24e6\u33ba-\u33bf\u33dd\uff37\uff57]', 
     74    'x': '[Xx\u02e3\u1e8a-\u1e8d\u2093\u213b\u2168-\u216b\u2178-\u217b\u24b3\u24cd\u24e7\u33d3\uff38\uff58]', 
     75    'y': '[Yy\xdd\xfd\xff\u0176-\u0178\u0232\u0233\u02b8\u1e8e\u1e8f\u1e99\u1ef2-\u1ef9\u24b4\u24ce\u24e8\u33c9\uff39\uff59]', 
     76    'z': '[Zz\u0179-\u017e\u01f1-\u01f3\u1dbb\u1e90-\u1e95\u2124\u2128\u24b5\u24cf\u24e9\u3390-\u3394\uff3a\uff5a]' 
     77}; 
     78 
     79function accent_fold(search_string)  
     80{ 
     81    // tidy up any pre- or post- whitespace 
     82    search_string = trim(search_string); 
     83 
     84    // protect any string literals that are special RE characters 
     85    search_string = search_string.replace(/([|\(\)\[\{\}.+*?^$\\])/g,"\\$1"); 
     86 
     87    // replace characters by their compositors 
     88    var accent_replacer = function(chr) { 
     89    if (chr.charCodeAt(0)>128) { 
     90            for (var base_c in accented) { 
     91            var letter_re = new RegExp(accented[base_c],'gi'); 
     92            if (letter_re.test(chr)) { 
     93                // Got accented char 
     94                // => downgrade to base character 
     95                chr = base_c; 
     96            } 
     97            // otherwise, leave it alone 
     98                } 
     99        } 
     100    return chr; 
     101    } 
     102 
     103    search_string = search_string.replace(/\S/g,accent_replacer); 
     104    search_string = search_string.replace(/\\([|\(\)\[\{\}.+*?^$\\])/g,"$1"); 
     105 
     106    search_string = search_string.replace(/\s+/g," "); 
     107 
     108    return search_string; 
     109} 
     110 
     111 
     112 
    45113function fixupEncodeInput(form) { 
    46114    console.log( "amcm-dl-fixup fixupEncodeInput(form) called" ); 
     
    57125    var detected_ligatures = ligature_re.test(query_box_val); 
    58126    if (detected_ligatures) { 
    59       var do_replacement = confirm("Detected ligatures in query. Replace with individual characters?"); 
    60       if (do_replacement) { 
    61          var query_chars = query_box_val.split(""); 
    62          var query_chars_fixed = []; 
    63  
    64          for (var i=0; i<query_chars.length; i++) { 
    65             var c = query_chars[i]; 
    66             if (ligature_map[c]) { 
    67         c = ligature_map[c]; 
     127    //var do_replacement = confirm("Detected ligatures in query. Replace with individual characters?"); 
     128    var do_replacement = $('#meddle-lig').is(":checked"); 
     129 
     130    if (do_replacement) { 
     131            var query_chars = query_box_val.split(""); 
     132            var query_chars_fixed = []; 
     133         
     134            for (var i=0; i<query_chars.length; i++) { 
     135        var c = query_chars[i]; 
     136        if (ligature_map[c]) { 
     137            c = ligature_map[c]; 
     138        } 
     139        query_chars_fixed.push(c); 
    68140            } 
    69             query_chars_fixed.push(c); 
    70          } 
    71          query_box_val = query_chars_fixed.join(""); 
    72       } 
     141            query_box_val = query_chars_fixed.join(""); 
     142    } 
     143    } 
     144 
     145    var do_accent_replacement = $('#meddle-acc').is(":checked"); 
     146    if (do_accent_replacement) { 
     147    query_box_val = accent_fold(query_box_val); 
    73148    } 
    74149 
     
    100175function fixupSubmitIt() { 
    101176    var search_where = $("#fld0 option:selected").text(); 
    102     console.log("**** search_where = " + search_where); 
     177    //console.log("**** search_where = " + search_where); 
    103178    var x = 0; 
    104179    var search_select = $("#fld"+x+" option:selected"); 
     
    126201} 
    127202 
     203function meddleInfoBox() { 
     204 
     205    $('#_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">MEDDLE Proxy: ModifiED Digital Library Proxy</font></b><br /><div id="dlcontext"></div><div id="dlcontextoptions"</div></td></tr></tbody></table></center></form>'); 
     206 
     207    // Icon image 
     208    // By VistaICO.com (VistaICO Toolbar Icons) [CC BY 3.0 ] 
     209 
     210    // if (window.location.matches(/^h 
     211 
     212    var dlcontextoptions = '<input id="meddle-lig" name="meddle-lig" type="checkbox"><label for="meddle-lig" style="display: inline">&nbsp;Ligature&nbsp;expansion</label>&nbsp;&nbsp;<input id="meddle-acc" name="meddle-acc" type="checkbox"><label for="meddle-acc" style="display: inline">&nbsp;Accent&nbsp;folding</label>'; 
     213 
     214 
     215   //console.log("*** location = " + window.location.pathname); 
     216    var detected_dl = ""; 
     217 
     218    var domain_match = window.location.pathname.match(/nph-proxy-meddle.cgi\/.*?https?\/(.*)$/); 
     219 
     220    if (domain_match.length>1) { 
     221    var real_domain = domain_match[1]; 
     222    //console.log("*** real domain = " + real_domain); 
     223 
     224    if (real_domain.match(/^dl\.acm\.org\//)) { 
     225        detected_dl = "ACM DL (Meddled with to provide: full-text quicksearch, word-wrap protection)"; 
     226        //dlcontextoptions += "&nbsp;&nbsp;Also "; 
     227    } 
     228    else if (real_domain.match(/^scholar\.google\.[a-z]+/)) { 
     229        detected_dl = "Google Scholar"; 
     230    } 
     231    else if (real_domain.match(/^ieeexplore\.ieee\.org\//)) { 
     232        detected_dl = "IEEE Xplore"; 
     233    } 
     234    } 
     235 
     236    if (detected_dl !== "") { 
     237    $('#dlcontext').html("<i>Detected:" + detected_dl + "</i>"); 
     238    } 
     239 
     240    $('#dlcontextoptions').html('<font size="-1">'+dlcontextoptions+'</font>'); 
     241 
     242} 
     243 
     244 
     245 
    128246//var acmdl_fixup_div = document.getElementById("acmdl-fixup"); 
    129247 
     
    134252 
    135253    console.log("amc-dl-fixup initiated"); 
     254 
     255    meddleInfoBox(); 
    136256 
    137257    var query_form = document.getElementsByName("qiksearch")[0]; 
  • other-projects/meddle/trunk/nph-proxy-meddle.cgi

    r31609 r31612  
    10801080#### !!!! ACMDL-MOD 
    10811081#$INSERT_HTML= "<h1>This is an inserted header</h1><hr>" ; 
    1082  
    1083  
    1084 #$INSERT_HTML  = "<script  src=\"https://code.jquery.com/jquery-2.2.4.min.js\"></script>"; 
    10851082$INSERT_HTML  = "<script  src=\"https://bedrock.resnet.cms.waikato.ac.nz/cgi-bin/meddle/nph-proxy-meddle.cgi/en/20/https/code.jquery.com/jquery-2.2.4.min.js\"></script>"; 
    10861083