MediaWiki: Common.js: Unterschied zwischen den Versionen

Aus Semantic CorA
Wechseln zu: Navigation, Suche
Zeile 54: Zeile 54:
 
//}
 
//}
  
if (wgNamespaceNumber != -1) importScript ('MediaWiki:Gadget-ImageAnnotator.js');
+
//if (wgNamespaceNumber != -1) importScript ('MediaWiki:Gadget-ImageAnnotator.js');
  
 
/** Table sorting fixes
 
/** Table sorting fixes

Version vom 31. Januar 2018, 09:47 Uhr

/* Das folgende JavaScript wird für alle Benutzer geladen. */
/* Any JavaScript here will be loaded for all users on every page load. */
// <source lang="javascript">
// This JavaScript will be loaded for all users on every page load.
// Except for additions at the end, imported from en.wikipedia.org and modified (parts removed).
// for authors see http://en.wikipedia.org/w/index.php?title=MediaWiki:Common.js&action=history

/* Scripts specific to Internet Explorer */
if (navigator.appName == "Microsoft Internet Explorer") {
    /** Internet Explorer bug fix **************************************************
     *  Description: Fixes IE horizontal scrollbar bug
     *  Maintainers: [[User:Tom-]]?
     */
    var oldWidth;
    var docEl = document.documentElement;

    function fixIEScroll() {
        if (!oldWidth || docEl.clientWidth > oldWidth)
            doFixIEScroll();
        else
            setTimeout(doFixIEScroll, 1);
        oldWidth = docEl.clientWidth;
    }
    
    function doFixIEScroll() {
      docEl.style.overflowX = (docEl.scrollWidth - docEl.clientWidth < 4) ? "hidden" : "";
    }
    
    document.attachEvent("onreadystatechange", fixIEScroll);
    document.attachEvent("onresize", fixIEScroll);
    
    // In print IE (7?) does not like line-height
    appendCSS( '@media print { sup, sub, p, .documentDescription { line-height: normal; }}');
    
    //Import scripts specific to Internet Explorer 6
    // THIS IS A PNG transparency FIX, here commented out:
    // if (navigator.appVersion.substr(22, 1) == "6") {
    //    importScript("MediaWiki:Common.js/IE60Fixes.js");
    // }
} // END "Microsoft Internet Explorer"

/**
 * ImageAnnotator
 * Globally enabled per
 * http://commons.wikimedia.org/?title=Commons:Village_pump&oldid=26818359#New_interface_feature
 * Maintainer: [[User:Lupo]]
 */
// Not on Special pages, and only if viewing the page
//if (wgNamespaceNumber != -1 && jQuery.inArray(mw.config.get('wgAction'), ['view', 'purge']) != -1 ) {
// if (typeof ImageAnnotator_disable == 'undefined' || !ImageAnnotator_disable) {
  // Don't even import it if it's disabled.
//  importScript('MediaWiki:Gadget-ImageAnnotator.js');
// }
//}

//if (wgNamespaceNumber != -1) importScript ('MediaWiki:Gadget-ImageAnnotator.js');

/** Table sorting fixes
  *  Description: Disables code in table sorting routine to set classes on even/odd rows
  */
ts_alternate_row_colors = false;


/**
 * sort event-tables according to column 3.
 */
function presort() {
	var table = document.getElementById("event-table");
	if (table != null && table != 'undefined') {  
	  var sortLink = table.rows[0].cells[2].lastChild;
          ts_resortTable(sortLink);
        }
}

/*
 * Description: Get resource string (text, image URLs) for a given language, based on a string-key
 *  If no resource is defined in a given language for a resource key, the resource for "en" will be returned, if this is missing as well an error message.
 * resourceKey: key for the resource (string)
 */
$j.resource = function (resourceKey) {
    var lang = wgContentLanguage.split("-")[0]; // language: "pt-BR", "de-formal", etc.
    return ($j.jI18n[lang] && $j.jI18n[lang][resourceKey] ?
            $j.jI18n[lang][resourceKey] :
            ($j.jI18n.en[resourceKey]) ? $j.jI18n.en[resourceKey] : "MISSING RESOURCE");
  };
 

/**
 * Semantic Forms quit formtable class on edit
 */
function initHideFirstTemplate(){
var jTrHiddenFormTexts = $j(
    // select only input type text from formtable
       ".lemmata-body"
    );
jTrHiddenFormTexts
    .parents('table:eq(0)')
    .css({'display': 'none'});
}

//moveable TOCs
//importScript('MediaWiki:MoveTOC.js');

// collapsible parts: div and tr → Template:Hidden
//   may be fused later with toggleCollapse
//   main difference: initCollapsebox() uses a switcher defined by the Wikitemplate
//   and is not using a javascript resource title
function initCollapsebox() {
  /* is nested in: div.collapsebox
                    └ div.switcher
                    └ div.collapsecontent */ 
  jQuery("div.collapsebox div.switcher").live('click',
    function() {
      jQuery(this).nextAll("div.collapsecontent:first").slideToggle(250);
      /* $(this).toggle() does not work in live as toggle is a bind() 
          therefore toggle must be bound to a different DOM element */
      jQuery(this).find(".show, .hide").toggle();
    });
  /* is in a table: tr.collapsebox
                      └ div.switcher
                    tr.collapsecontent */ 
  jQuery("tr.collapsebox div.switcher").live('click',
    function() {
      jQuery(this).closest("tr.collapsebox").nextAll("tr.collapsecontent:first").toggle();
      jQuery(this).find(".show, .hide").toggle();
    });
}// END initCollapsebox()

///////////////////////////////////
// confirm deletion using SMW forms
//   does not work in IE 6
//////////////////////////////////
function initConfirmDeleteSubform() {
  $j.extend(true, $j.jI18n, {
  en: { 
    message : "'Delete this sub form irreversibly?'"
    },
  de: {
    message : "'Dieses Teilformular unwiderruflich löschen?'"
    }
  });
  // default buttons: <input type="button" ... class="remove"/>
  $j("input.remove").attr("onClick", function() {// case sensitive not: onclick
    //typeof this.onclick → function
    var currentClickHandlerString = this.getAttributeNode('onclick').value;
    // add a confirm
    return "var removethis = confirm("+$j.resource('message')+");  if(removethis) {return " + currentClickHandlerString + "};";
  });
  /* added delete buttons by the SMW-form: <input type="button" />
    add onclick handling */
  $j("input.addAnother").click(function () {
    // just new generated div#div_gen_1
   $j("div")
     .filter(function() { return this.id.match(/div_gen_\d+/); })
     .find(":button")
     .attr("onClick",function() {// case sensitive not: onclick
      // add a confirm
       return "var removethis = confirm("+$j.resource('message')+");  if(removethis) {$j('#' + String($j(this).parent().attr('id'))).remove();} else {return false;};";
     });
  });
}// end initConfirmDeleteSubform()
 
/*
///////////////////////////////////
// indicate hidden inputs created
// from template:Hidden
//////////////////////////////////
structure of template:Hidden:
 
div.collapsebox
  ├ div.switcher (float)
  ├ div.collapsetitle
  └ div.collapsecontent
 
tr.collapsebox
  └ th/td
      ├ div.switcher (float)
      └ div.collapsetitle
tr.collapsecontent
*/
function initMarkHiddenInputs(){
  var jDivHiddenFormTexts = $j(
    // select only input type text + textarea with values
       "div.collapsecontent.indicateHiddenInputs * :text[value!=]" 
    +", div.collapsecontent.indicateHiddenInputs * textarea[value!=]"
    );
  var jTrHiddenFormTexts = $j(
    // select only input type text + textarea with values
       "tr.collapsecontent.indicateHiddenInputs *:not(.collapsecontent) :text[value!=]"
    +", tr.collapsecontent.indicateHiddenInputs *:not(.collapsecontent) textarea[value!=]"
    );
// <div>
  jDivHiddenFormTexts
    .parents(".collapsebox")
    .css({'border-left':'2px solid #ce5c00'});
  //indicate the fields itself
  jDivHiddenFormTexts
    .css({'background-color':'#fcdeb1'}); //pale orange
// <tr>
  //indicate the fields itself
  jTrHiddenFormTexts
    .css({'background-color':'#fcdeb1'}); //pale orange
  //indicate current level
  jTrHiddenFormTexts
    .closest(".collapsebox")
    .css({'border-left':'2px solid #ce5c00'}); 
  // to ?upermost level
  jTrHiddenFormTexts
    .parents(".collapsecontent")
    .prev(".collapsebox")
    .css({'border-left':'2px solid #ce5c00'}); 
}// END initMarkHiddenInputs()




//$(window).bind('load', function() 

$(window).load(function() {
// I changed rearranger image(by Adrian)

    jQuery('img.rearrangerImage').attr('src','http://smw-cora.org/upload/Rearranger.png');


// I changed dull-blue-circle.png (from blue to orange) (by Adrian)

    jQuery('img.timeline-copyright').attr('src','http://smw-cora.org/upload/Copyright-vertical.png');
    jQuery('div.timeline-band-layer-inner > div > img').attr('src','http://smw-cora.org/upload/Dull-blue-circle.png');

//I changed the slim bottom lines (in fact it is border color left) from blue to orange (by Adrian)
    jQuery('div.timeline-band-layer-inner > div').each(function(){
        if(jQuery(this).css('border-left-color') == 'rgb(88, 160, 220)') {
             jQuery(this).css('border-left-color','rgb(247,102,0)');
        }        
});
// I changed icon for resize image (by Adrian)   
//   jQuery('#buttondecreaseimagesize').attr('src','http://smw-cora.org/upload/Minus_size.png');
//   jQuery('#buttonincreaseimagesize').attr('src','http://smw-cora.org/upload/Plus_size.png');


// Eliminated <---Resize---> (by Adrian)

//    $("#SIAresizeDiv").contents().filter(function(){
//        return (this.nodeType == 3);
//    }).remove();
});

addOnloadHook(presort);
jQuery(document).ready(function() {
  var $j = jQuery.noConflict;
  // try to add the toolbar on uploading
  var aa= jQuery('<a/>')
    .attr("href", "http://smw-cora.org/index.php/Main_Page").attr("id","poweredbyCora");
  jQuery("#footer-poweredbyico").append(aa);
  var img = jQuery('<img />').attr({ 'id': 'poc', 'src': 'http://smw-cora.org/upload/SC_Credit.png', 'alt':'Powered by CorA Project' }).appendTo(jQuery('#poweredbyCora'));


/*jQuery('.smwtimeline').find('img').each(function () {
  var curSrc = jQuery(this).attr('src');
  var class = jQuery(this).attr('class');
  alert("yes");
  if ( class === '' ) {
      jQuery(this).attr('src', 'http://smw-cora.org/upload/dull-blue-circle.png');
  }
  if ( class === 'timeline-copyright' ) {
      jQuery(this).attr('src', 'http://example.com/brown.gif');
  }
});

jQuery('.smwtimeline').on('DOMNodeInserted ', 'img', function(){
    alert("insert");
    jQuery(this).html('<b>yaay!</b>');
});*/

//Adrian - BEGIN - setting min-height of div.content - for push down #footer

      jQuery('#content').css('min-height', Math.max(jQuery('#content').height(), jQuery('#mw-panel').height()));

//Adrian - END - setting height of div.content


// edit tools update
// upload new icons for tools
if(wgAction == "edit"){
   jQuery('#mw-editbutton-bold').attr('src','http://smw-cora.org/upload/Button_bold.png');
   jQuery('#mw-editbutton-italic').attr('src','http://smw-cora.org/upload/Button_italic.png');
   jQuery('#mw-editbutton-link').attr('src','http://smw-cora.org/upload/Button_link.png');
   jQuery('#mw-editbutton-extlink').attr('src','http://smw-cora.org/upload/Button_extlink.png');
   jQuery('#mw-editbutton-headline').attr('src','http://smw-cora.org/upload/Button_headline.png');
   jQuery('#mw-editbutton-image').attr('src','http://smw-cora.org/upload/Button_image.png');
   jQuery('#mw-editbutton-media').attr('src','http://smw-cora.org/upload/Button_media.png');
   jQuery('#mw-editbutton-nowiki').attr('src','http://smw-cora.org/upload/Button_nowiki.png');
   jQuery('#mw-editbutton-signature').attr('src','http://smw-cora.org/upload/Button_sig.png');
   jQuery('#mw-editbutton-hr').attr('src','http://smw-cora.org/upload/Button_hr.png');
   
}
  if(wgPageName == "Special:Upload" && wgUserName){
   $j("textarea#wpUploadDescription").before('<div id="toolbar"></div>');
  }
//  initmovingTOC(); // TOC CSS position fixed or static → MediaWiki:Gadget-moveTOC.js
  initCollapsebox();//collapsable parts
  // page specific
  if(wgAction == "formedit" || wgPageName == "Special:FormEdit"){
    initConfirmDeleteSubform();
    initMarkHiddenInputs();
    initHideFirstTemplate();
  }
  if(wgCanonicalSpecialPageName === "Browse"){
   // alert("browse");
 
       jQuery(".smwb-propvalue td").each(function(){
             var data = [];
             var kids = jQuery(this).children(".smwb-value");
             if(kids.length>1){
               for(var i=0; i<kids.length; i++){
                       data.push(kids[i].outerHTML);
                  }
              // alert('xx '+data);
               var stories = jQuery('.story-body');
               kids.detach();
               jQuery(this).empty();
               var x=data.join("<br/>");
               jQuery(x).appendTo(this);
             }
        });
   }
 /* if(wgPageName == "Special:OfflineImportLexicon"){
    importScript('MediaWiki:OIL_Constants.js');
    importScript('MediaWiki:jquery.ezpz_tooltip.min.js');
    importScript('MediaWiki:OfflineImportLexicon.js');
    importScript('MediaWiki:OfflineImportLexiconSecond.js');
  }*/
  if (wgNamespaceNumber != -1 && jQuery.inArray(mw.config.get('wgAction'), ['view']) != -1 ){
  //  importScript('MediaWiki:AQE-Constants.js');
  //  importScript('MediaWiki:Jquery.tools.min.js');
  //  importScript('MediaWiki:AnalysisQueryEditor.js');
  //  importScript('MediaWiki:AnalysisQueryEditorSecond.js');
  }
});

//importScript('MediaWiki:Multilingual description.js');

// </source>