MediaWiki:Skin/Feedbackknopf.js: Unterschied zwischen den Versionen

aus Kamelopedia, der wüsten Enzyklopädie
Zur Navigation springen Zur Suche springen
Zeile 11: Zeile 11:
  
 
jQuery("body").append("<div id='f_b_background' style='display: none; position:fixed; opacity: 0.5; -moz-opacity: 0.5; width: 100%; height: 100%; top: 0px; left 0px; background-color: black;'>&nbsp;</div>");
 
jQuery("body").append("<div id='f_b_background' style='display: none; position:fixed; opacity: 0.5; -moz-opacity: 0.5; width: 100%; height: 100%; top: 0px; left 0px; background-color: black;'>&nbsp;</div>");
jQuery("body").append("<div id='f_b' style='display: none; position:fixed; border: 1px black solid; background: white; left: 50%; top: 50%; width: 340px; height: 240px; padding: 30px; margin-left: -185px; margin-top: -135px;'><h5>Ultrakurzfeedback abgeben</h5><div style='font-size: 80%'>Füttere den Autor zurück: Text oder Bewertung oder beides.</div><form id='fb_form'><div id='fb_preview_frame' style='display:none;'><div id='fb_preview_area'></div><div style='font-size:80%;'>(In der Vorschau werden die Schlangenlinien noch nicht ersetzt, später auf der Seite schon.)<div></div><textarea style='height:100px;' /><br/><label for='fb_rating'>Kurzbewertung:</label><select name='fb_rating' id='fb_rating'><option value=''>ohne Kurzbewertung</option><option value='0'>0 Kamele (schlechteste)</option><option value='1'>1 Kamel</option><option value='2'>2 Kamele</option><option value='3'>3 Kamele</option><option value='4'>4 Kamele</option><option value='5'>5 Kamele (beste)</option></select><br/><input type='checkbox' id='fb_autosign' name='fb_autosign' checked='checked'><label for='fb_autosign'>automatisch unterschreiben</label><br/><input type='submit' value='Abschicken' /><input id='fb_preview' type='button' value='Vorschau'><input id='fb_reset' type='reset' value='abbrechen'></form></div>");
+
jQuery("body").append("<div id='f_b' style='display: none; position:fixed; border: 1px black solid; background: white; left: 50%; top: 50%; width: 340px; height: 240px; padding: 30px; margin-left: -185px; margin-top: -135px;'><h5>Ultrakurzfeedback abgeben</h5><div style='font-size: 80%'>Füttere den Autor zurück: Text oder Bewertung oder beides.</div><div id='fb_preview_frame' style='display:none;'><div id='fb_preview_area'></div><div style='font-size:80%;'>(In der Vorschau werden die Schlangenlinien noch nicht ersetzt, später auf der Seite schon.)</div></div><form id='fb_form'><textarea style='height:100px;' /><br/><label for='fb_rating'>Kurzbewertung:</label><select name='fb_rating' id='fb_rating'><option value=''>ohne Kurzbewertung</option><option value='0'>0 Kamele (schlechteste)</option><option value='1'>1 Kamel</option><option value='2'>2 Kamele</option><option value='3'>3 Kamele</option><option value='4'>4 Kamele</option><option value='5'>5 Kamele (beste)</option></select><br/><input type='checkbox' id='fb_autosign' name='fb_autosign' checked='checked'><label for='fb_autosign'>automatisch unterschreiben</label><br/><input type='submit' value='Abschicken' /><input id='fb_preview' type='button' value='Vorschau'><input id='fb_reset' type='reset' value='abbrechen'></form></div>");
  
 
jQuery("#fb_reset").click( function () {
 
jQuery("#fb_reset").click( function () {

Version vom 12. Oktober 2011, 10:33 Uhr

/* Ultrakurzfeedbackdings */

function fb_error_callback () {
        jQuery('#mw-js-message').html("Bei der Zurückfütterung ist ein Fehler aufgetreten!");
        jQuery('#mw-js-message').slideDown('fast'); 
}

addOnloadHook( function () {

jQuery("#p-views ul").append("<li id='ca-feedback'><span><a>F/b</a></span></li>");

jQuery("body").append("<div id='f_b_background' style='display: none; position:fixed; opacity: 0.5; -moz-opacity: 0.5; width: 100%; height: 100%; top: 0px; left 0px; background-color: black;'>&nbsp;</div>");
jQuery("body").append("<div id='f_b' style='display: none; position:fixed; border: 1px black solid; background: white; left: 50%; top: 50%; width: 340px; height: 240px; padding: 30px; margin-left: -185px; margin-top: -135px;'><h5>Ultrakurzfeedback abgeben</h5><div style='font-size: 80%'>Füttere den Autor zurück: Text oder Bewertung oder beides.</div><div id='fb_preview_frame' style='display:none;'><div id='fb_preview_area'></div><div style='font-size:80%;'>(In der Vorschau werden die Schlangenlinien noch nicht ersetzt, später auf der Seite schon.)</div></div><form id='fb_form'><textarea style='height:100px;' /><br/><label for='fb_rating'>Kurzbewertung:</label><select name='fb_rating' id='fb_rating'><option value=''>ohne Kurzbewertung</option><option value='0'>0 Kamele (schlechteste)</option><option value='1'>1 Kamel</option><option value='2'>2 Kamele</option><option value='3'>3 Kamele</option><option value='4'>4 Kamele</option><option value='5'>5 Kamele (beste)</option></select><br/><input type='checkbox' id='fb_autosign' name='fb_autosign' checked='checked'><label for='fb_autosign'>automatisch unterschreiben</label><br/><input type='submit' value='Abschicken' /><input id='fb_preview' type='button' value='Vorschau'><input id='fb_reset' type='reset' value='abbrechen'></form></div>");

jQuery("#fb_reset").click( function () {
  jQuery("#f_b_background, #f_b").hide();
});

jQuery("#fb_preview").click( function () {
  jQuery.ajax({
    url: "/api.php",
    type: "POST",
    data: {
        action: "parse",
        text: "\n{{Kurzfeedback|text="+jQuery("#fb_form textarea").val()+(jQuery("#fb_autosign")[0].checked ? " --~~"+"~~" : "")+"|r="+jQuery("#fb_form select").val()+"}}",
        format: "xml"
    },
    success: function (tr) {
       jQuery("#fb_preview_frame").show();
       jQuery("#fb_preview_area").html(jQuery(tr).find("text").text());
       jQuery("#f_b").css("height","300px");
       jQuery("#f_b").css("margin-top","-165px");
    }
  });
});

jQuery("#fb_form").submit( function () {
  if (jQuery("#fb_form textarea").val()+jQuery("#fb_form select").val() == "")
  {
      alert("Eins von beidem, Text oder Bewertung, solltest du schon mindestens ausfüllen!");
      return false;
  }

  window.fb_data = {
    url: "/api.php",
    data: {
            action: "edit",
            title: wgFormattedNamespaces[wgNamespaceNumber+1]+":"+wgTitle,
            summary: "Kurzfeedback",
            appendtext: "\n{{Kurzfeedback|text="+jQuery("#fb_form textarea").val()+(jQuery("#fb_autosign")[0].checked ? " --~~"+"~~" : "")+"|r="+jQuery("#fb_form select").val()+"}}"
        },
    success: function () {
        jQuery("#f_b_background, #f_b").hide();
        jQuery("#ca-feedback").addClass("done");
        jQuery('#mw-js-message').html("Die Zurückfütterung war erfolgreich!");
        jQuery('#mw-js-message').slideDown('fast'); 
    },
    error: fb_error_callback,
    type: 'POST'
  };
  jQuery.ajax({
    cache: false,
    url: "/api.php",
    data: {
      format: "xml",
      action: "query",
      prop: "info",
      intoken: "edit",
      titles: wgFormattedNamespaces[wgNamespaceNumber+1]+":"+wgTitle
    },
    type: 'GET',
    success: function(tr) {
      var token = jQuery(tr).find("api query pages page").attr('edittoken');
      fb_data.data.token = token;
      var section_data = jQuery.ajax({
          async: false,
          url: "/api.php",
          data: {
              action: "parse",
              prop: "sections",
              page: fb_data.data.title,
              format: "xml"
          },
          error: fb_error_callback
      }).responseXML;
      fb_data.data.section = jQuery(section_data).find('s[line="Kurzfeedback"]').index() + 1;
      if (fb_data.data.section == 0)
      {
          fb_data.data.section = "new";
          fb_data.data.text = fb_data.data.appendtext;
          delete fb_data.data.appendtext;
      }

      jQuery.ajax(fb_data);
    },
    error: fb_error_callback
  });
  return false;
}
);

jQuery("#ca-feedback").click(function () {
    jQuery("#f_b_background, #f_b").show();
    jQuery("#fb_form textarea").focus();
});

});