MediaWiki:Common.js: Difference between revisions

From Artifacts of Capitalism
No edit summary
No edit summary
Line 14: Line 14:
   $c.find('input[name="ns' + 3000 + '"]').closest('label, .mw-advancedSearch-ns_option').hide();
   $c.find('input[name="ns' + 3000 + '"]').closest('label, .mw-advancedSearch-ns_option').hide();
});
});
// Load Google CSE on the Advanced_search page and auto-run ?q=
// Load Google CSE only on Advanced_search page
(function () {
mw.loader.using('mediawiki.util').then(function () {
   var page = mw.config.get('wgPageName'); // spaces -> underscores
   var page = mw.config.get('wgPageName');
   if (
   if (page !== 'Artifacts_of_Capitalism:Advanced_search') return;
    page === 'Artifacts_of_Capitalism:Advanced_search' || // site name namespace alias
 
    page === 'Project:Advanced_search'                   // generic alias, just in case
  console.log('[CSE] Loading on:', page);
   ) {
 
    // If you want the query in the box to auto-run from ?q=...
   // Ensure CSE callback setup exists before script load
    window.__gcse = {
  window.__gcse = {
      searchCallbacks: {
    searchCallbacks: {
        ready: function () {
      ready: function () {
          try {
        try {
            var params = new URLSearchParams(location.search);
          var params = new URLSearchParams(window.location.search);
            var q = params.get('q');
          var q = params.get('q');
            if (!q) return;
          if (q) {
            // CSE reads initial query from URL hash; set it then it runs.
             var hash = 'gsc.tab=0&gsc.q=' + encodeURIComponent(q);
             var hash = 'gsc.tab=0&gsc.q=' + encodeURIComponent(q);
             if (!location.hash || !location.hash.includes('gsc.q=')) {
             if (!window.location.hash.includes('gsc.q=')) {
               location.hash = hash;
               window.location.hash = hash;
              console.log('[CSE] Applied query:', q);
             }
             }
           } catch (e) {}
           }
        } catch (err) {
          console.warn('[CSE] Query error:', err);
         }
         }
       }
       }
     };
     }
  };


    // Inject the Google CSE loader
  // Inject Google CSE script
    var s = document.createElement('script');
  var script = document.createElement('script');
    s.async = true;
  script.async = true;
    s.src = 'https://cse.google.com/cse.js?cx=b194aa5e4d64344ad';
  script.src = 'https://cse.google.com/cse.js?cx=b194aa5e4d64344ad';
     document.body.appendChild(s);
  script.onload = function () {
  }
     console.log('[CSE] Script loaded successfully');
})();
  };
  script.onerror = function () {
    console.error('[CSE] Failed to load cse.js');
  };
  document.body.appendChild(script);
});

Revision as of 17:18, 17 October 2025

// Ensure viewport meta exists (iOS layout fix)
(function () {
  if (!document.querySelector('meta[name="viewport"]')) {
    var m = document.createElement('meta');
    m.name = 'viewport';
    m.content = 'width=device-width, initial-scale=1, shrink-to-fit=no';
    document.head.appendChild(m);
  }
})();
mw.hook('wikipage.content').add(function ($c) {
  var groups = mw.config.get('wgUserGroups') || [];
  if (groups.indexOf('approver') !== -1) return; // approvers keep the checkbox
  // Hide the Draft namespace checkbox in the advanced search pane
  $c.find('input[name="ns' + 3000 + '"]').closest('label, .mw-advancedSearch-ns_option').hide();
});
// Load Google CSE only on Advanced_search page
mw.loader.using('mediawiki.util').then(function () {
  var page = mw.config.get('wgPageName');
  if (page !== 'Artifacts_of_Capitalism:Advanced_search') return;

  console.log('[CSE] Loading on:', page);

  // Ensure CSE callback setup exists before script load
  window.__gcse = {
    searchCallbacks: {
      ready: function () {
        try {
          var params = new URLSearchParams(window.location.search);
          var q = params.get('q');
          if (q) {
            var hash = 'gsc.tab=0&gsc.q=' + encodeURIComponent(q);
            if (!window.location.hash.includes('gsc.q=')) {
              window.location.hash = hash;
              console.log('[CSE] Applied query:', q);
            }
          }
        } catch (err) {
          console.warn('[CSE] Query error:', err);
        }
      }
    }
  };

  // Inject Google CSE script
  var script = document.createElement('script');
  script.async = true;
  script.src = 'https://cse.google.com/cse.js?cx=b194aa5e4d64344ad';
  script.onload = function () {
    console.log('[CSE] Script loaded successfully');
  };
  script.onerror = function () {
    console.error('[CSE] Failed to load cse.js');
  };
  document.body.appendChild(script);
});