MediaWiki:Common.js: Difference between revisions

Jump to navigation Jump to search
no edit summary
No edit summary
Tag: Manual revert
No edit summary
 
(10 intermediate revisions by the same user not shown)
Line 1,360: Line 1,360:
         }
         }


         swBuildIframeAndPrint(combinedHtml, borderPref);
         swBuildIframeAndPrint(
            combinedHtml,
            borderPref,
            null,
            "filtered.softwear.directory"
        );
         })
         })
         .catch(function () {
         .catch(function () {
Line 1,380: Line 1,385:


   /* core: build iframe and print */
   /* core: build iframe and print */
   function swBuildIframeAndPrint(printHtml, borderPref, $btn) {
   function swBuildIframeAndPrint(printHtml, borderPref, $btn, filenameOverride) {
     // iframe
     // iframe
     var iframe = document.createElement("iframe");
     var iframe = document.createElement("iframe");
Line 1,642: Line 1,647:
       .then(function () {
       .then(function () {
         // filename via document.title
         // filename via document.title
        var desiredTitle;
        if (filenameOverride) {
        desiredTitle = filenameOverride;
        } else {
         var entryNum = "";
         var entryNum = "";
         var numEl = doc.querySelector(".article-entry-number");
         var numEl = doc.querySelector(".article-entry-number");
         if (numEl) {
         if (numEl) {
          var m = (numEl.textContent || "").match(/\d+/);
            var m = (numEl.textContent || "").match(/\d+/);
          entryNum = m ? m[0] : "";
            entryNum = m ? m[0] : "";
         }
         }
         var desiredTitle =
         desiredTitle =
          (entryNum ? entryNum + "." : "") + "softwear.directory";
            (entryNum ? entryNum + "." : "") + "softwear.directory";
        }
 
         var oldIframeTitle = doc.title;
         var oldIframeTitle = doc.title;
         var oldParentTitle = document.title;
         var oldParentTitle = document.title;
Line 1,872: Line 1,884:
     function (e) {
     function (e) {
         e.preventDefault();
         e.preventDefault();
        console.log("PRINT BUTTON CLICKED"); // 👈 add this


         var $btn = jQuery(this);
         var $btn = jQuery(this);
         var borderPref = $btn.hasClass("print-selection-no-border")
         var borderPref = $btn.hasClass("print-selection-no-border")
         ? "without"
         ? "without"
         : "with";
         : "with";


         // 👇 UI feedback
         // disable all related buttons
        jQuery(".print-selection-border, .print-selection-no-border, .print-selection-toggle")
        .prop("disabled", true)
        .css("opacity", "0.5");
 
        // change ONLY clicked button text (native feeling)
         var originalText = $btn.text();
         var originalText = $btn.text();
         $btn.text("[PREPARING]");
         $btn.text("working…");
        $btn.prop("disabled", true);


         hidePrintSelectionOptions();
         swHandleBatchPrint(borderPref);


         // 👇 allow UI to update before heavy print logic
         // optional reset (if user comes back)
         setTimeout(function () {
         setTimeout(function () {
        swHandleBatchPrint(borderPref);
        // optional reset (in case user comes back)
         $btn.text(originalText);
         $btn.text(originalText);
         $btn.prop("disabled", false);
         jQuery(".print-selection-border, .print-selection-no-border, .print-selection-toggle")
         }, 50);
            .prop("disabled", false)
            .css("opacity", "");
         }, 2000);
     }
     }
   );
   );

Navigation menu