MediaWiki:Common.js: Difference between revisions

No edit summary
No edit summary
Line 113: Line 113:
   if (mw.config.get('wgPageName') !== 'Main_Page') return;
   if (mw.config.get('wgPageName') !== 'Main_Page') return;


  // Create top bar
   var groups = mw.config.get('wgUserGroups') || [];
   var bar = document.createElement('div');
   var isAdmin = groups.indexOf('sysop') !== -1;
   bar.id = 'grantha-topbar';
 
  if (!isAdmin) return;


   bar.innerHTML = `
   var container = document.querySelector('.vector-header-end');
    <div class="gt-left">
  if (!container) return;
      <img src="/favicon.ico" class="gt-icon">
 
      <span class="gt-title">Grantha</span>
  var btn = document.createElement('button');
    </div>
  btn.className = 'grantha-new-btn';
    <div class="gt-right" id="gt-right"></div>
  btn.innerText = '+ New';
   `;
 
  btn.onclick = openCreateDialog;
 
   container.prepend(btn);


  document.body.appendChild(bar);
});
function openCreateDialog() {


  // Admin check
   var overlay = document.createElement('div');
   var groups = mw.config.get('wgUserGroups') || [];
   overlay.className = 'grantha-modal';
   var isAdmin = groups.indexOf('sysop') !== -1;


   if (isAdmin) {
   overlay.innerHTML = `
     var btn = document.createElement('button');
     <div class="grantha-modal-box">
    btn.innerText = '+ New Document';
      <div class="gm-title">Create New Document</div>
    btn.className = 'gt-btn';
      <input type="text" id="gm-input" placeholder="Enter page name"/>
      <div class="gm-actions">
        <button id="gm-cancel">Cancel</button>
        <button id="gm-create">Create</button>
      </div>
    </div>
  `;


    btn.onclick = function () {
  document.body.appendChild(overlay);
      var name = prompt('Enter new page name:');
      if (!name) return;


      // Normalize title
  document.getElementById('gm-cancel').onclick = function () {
      name = name.trim().replace(/\s+/g, '_');
    overlay.remove();
  };


      var url = mw.util.getUrl(name, { action: 'edit' });
  document.getElementById('gm-create').onclick = function () {
      window.location.href = url;
    var name = document.getElementById('gm-input').value.trim();
     };
     if (!name) return;


     document.getElementById('gt-right').appendChild(btn);
     name = name.replace(/\s+/g, '_');
  }


});
    window.location.href = mw.util.getUrl(name, { action: 'edit' });
  };
}