1jQuery (function() { 2 jQuery("input.xtern_info_but").click(function() { 3 jQuery("div#xtern_info" ).toggle(); 4 var current_val = jQuery("input.xtern_info_but").attr('value'); 5 if(current_val == LANG.plugins.xtern.info_show) { 6 jQuery("input.xtern_info_but").attr('value',LANG.plugins.xtern.info_close); 7 } 8 else { 9 jQuery("input.xtern_info_but").attr('value',LANG.plugins.xtern.info_show); 10 } 11 }); 12 13 var in_admin = 0; 14 if(window.location.search.match(/do=admin/)) { 15 in_admin =1; 16 } 17 18 var selector = "#dokuwiki__content a"; //default 19 if(JSINFO && JSINFO['xtern_selector']) { 20 selector = JSINFO['xtern_selector'] ; 21 } 22 23 jQuery(selector).each (function( index ) { 24 if(in_admin) return; 25 if(JSINFO && JSINFO['xtern_disable']) return; 26 if(JSINFO && JSINFO['xtern_skip']) return; 27 var _class = jQuery(this).attr('class'); 28 if(typeof _class == 'undefined') return; 29 if(!_class.match(/extern/)) return; 30 var lnk = jQuery( this ); 31 var prev = jQuery( this ).prev(); 32 var _url = jQuery( this ).attr('href'); 33 _url = encodeURI(_url); 34 35 var request = jQuery.ajax({ 36 url: _url, 37 url: DOKU_BASE + 'lib/exe/ajax.php', 38 data: { 39 call: 'extern_url', 40 url: _url 41 }, 42 dataType: "html" 43 }); 44 45 jQuery.when(request).done(function( data ,status) { 46 if(data =="200" || data == '301' || data == '302') { 47 lnk.removeClass(_class).addClass( "xtern_xtrn" ); 48 } 49 else if( (data.match(/^4\d\d/))) { 50 var title; 51 switch (data) { 52 case "400": 53 title = '400: Bad Request'; 54 break; 55 case "401": 56 title = '401: Unauthorized'; 57 break; 58 case "402": 59 title = '402: Payment Required'; 60 break; 61 case "403": 62 title = '403: Forbidden'; 63 break; 64 case "404": 65 title = '404: Not Found'; 66 break; 67 case "405": 68 title = '405: Method Not Allowed'; 69 break; 70 case "406": 71 title = '406: Not Acceptable'; 72 break; 73 case "407": 74 title = '407: Proxy Authentication Required (RFC 7235)'; 75 break; 76 case "408": 77 title = '408: Request Timeout'; 78 break; 79 case "495": 80 title = '495: SSL Certificate Error'; 81 break; 82 default: 83 title=LANG.plugins.xtern.restricted; 84 break; 85 } 86 lnk.attr('title', title); 87 lnk.removeClass(_class).addClass( "xtern_noaccess" ); 88 } 89 else { 90 if(data == "NOCURL") return; 91 lnk.removeClass(_class).addClass( "xtern_broken" ); 92 } 93 }); 94 }); 95 });