Jump to content

User:GhostInTheMachine/TalkHelper2.js

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by GhostInTheMachine (talk | contribs) at 19:59, 17 August 2020 (Technology works. Need to sort the menu and improve the presentation). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
mw.loader.load( '/w/index.php?title=User:BrandonXLF/FloatSide.css&action=raw&ctype=text/css', 'text/css' );

mw.loader.using(
  [ 'ext.gadget.CommentsInLocalTime',
    'jquery.makeCollapsible'
  ],
  TalkHelper2Init,
  function(){
    alert('Could not load dependencies');
  }
);

function TalkHelper2Init() {
  console.log('TalkHelper2 init');

  if (window.commentsInLocalTimeWasRun) {

    TalkHelper2Run();
    TalkHelper2CSS();

  } else {
    setTimeout(TalkHelper2Init, 10);
  }
}

function TalkHelper2Run() {
  console.log('TalkHelper2 run');

  //  Wikipedia

  $('#mw-panel').wrapInner('<div id="mw-panel-wp" class="navbox" style="text-align: left;"></div>');

  $subPanel = $('#mw-panel-wp');

  $subPanel.wrapInner('<div class="mw-collapsible-content"></div>');
  $subPanel.prepend('Wikipedia');
  $subPanel.makeCollapsible();
  $subPanel.addClass('navbox');

  //  Yesterday

  $('#mw-panel').append('<p><div id="mw-panel-Yesterday" class="navbox" style="text-align: left;"></div>');

  $subPanel = $('#mw-panel-Yesterday');

  $subPanel.wrapInner('<div class="mw-collapsible-content"></div>');
  $subPanel.prepend('Yesterday');
  $subPanel.makeCollapsible();

  TalkHelper2Find('Yesterday');

  //  Today

  $('#mw-panel').append('<p><div id="mw-panel-Today" class="navbox" style="text-align: left;"></div>');

  $subPanel = $('#mw-panel-Today');

  $subPanel.wrapInner('<div class="mw-collapsible-content"></div>');
  $subPanel.prepend('Today');
  $subPanel.makeCollapsible();

  TalkHelper2Find('Today');
}

function TalkHelper2CSS() {
  mw.util.addCSS(`

  .localcomments {
    border-bottom: solid 2px cornflowerblue;
  }

  .talkHelperToday {
    background-color: moccasin;
    border-color: #3366cc;
    border-style: solid;
    border-width: thin;
    padding: 5px;
  }

  .talkHelperYesterday {
    background-color: cornsilk;
    border-color: #3366cc;
    border-style: dashed;
    border-width: thin;
    padding: 5px;
  }

  .talkHelperMe {
    border-width: medium;
  }

  `);
}

function TalkHelper2Find(when) {
  var $subPanel = $('#mw-panel-' + when);
  var posts = 0;
  $.each(
    $(".localcomments:contains(', " + when + "')"),
    function(){
      posts++;
      var id = $(this).attr('timestamp');
      $(this).parent().addClass('talkHelper' + when).attr('id', id);
      var ts = $(this).text();
      ts = ts.split(',')[0];
      var ar = ts.split(' ');
      var am = ar[1];
      ts = ar[0];
      ar = ts.split(':');
      var hh = 1 * ar[0];
      if(am == 'pm') hh+=12;
      if(hh < 10) hh='0'+hh;
      $($subPanel).append('<li><a href="#' + id + '">' + hh + ':' + ar[1] + '</a></li>');
    }
  );

  if(posts) {
    mw.util.addPortletLink(
      'p-namespaces',
      '#',
      posts + ' ' + when.toLowerCase(),
      'ca-goto-' + when,
      'Go to first post for ' + when
    );

    $('#ca-goto-' + when).click( function(e){
      e.preventDefault();
      $('html, body').animate({scrollTop: $('.talkHelper' + when).first().offset().top - 20});
    });
  }

  return posts;
}