Jump to content

User:GhostInTheMachine/TalkHelper2.js: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Technology works. Need to sort the menu and improve the presentation
display counts
 
(7 intermediate revisions by 2 users not shown)
Line 8: Line 8:
TalkHelper2Init,
TalkHelper2Init,
function(){
function(){
alert('Could not load dependencies');
alert('TalkHelper2 could not load dependencies');
}
}
);
);
Line 16: Line 16:


if (window.commentsInLocalTimeWasRun) {
if (window.commentsInLocalTimeWasRun) {
console.log('TalkHelper2 CILT loaded');

TalkHelper2CSS();
TalkHelper2Run();
TalkHelper2Run();
TalkHelper2CSS();

} else {
} else {
console.log('TalkHelper2 waiting');
setTimeout(TalkHelper2Init, 10);
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');
}
}


Line 89: Line 50:
.talkHelperMe {
.talkHelperMe {
border-width: medium;
border-width: medium;
}

.talkHelperRef {
font-size: small;
margin-left: 1em;
}
}


Line 94: Line 60:
}
}


function TalkHelper2Find(when) {
function TalkHelper2Run() {

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

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

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

TalkHelper2Build('Yesterday');
TalkHelper2Build('Today');
}

function TalkHelper2Build(when) {
var posts = [];

$.each(
$.each(
$(".localcomments:contains(', " + when + "')"),
$(".localcomments:contains(', " + when + "')"),
function(){
function(){

posts++;
var id = $(this).attr('timestamp');
var id = $(this).attr('timestamp');
$(this).parent().addClass('talkHelper' + when).attr('id', id);
$(this).parent().addClass('talkHelper' + when).attr('id', id);
var ts = $(this).text();
posts.push(1 * id);

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>');
}
}
);
);


console.log('TalkHelper2 ' + when + '=' + posts.length);
if(posts) {
if(posts.length < 1) {
mw.util.addPortletLink(
return;
'p-namespaces',
}
'#',

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


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

}
posts.sort();

$('#mw-panel').prepend('<div id="mw-panel-' + when + '" class="navbox" style="text-align: left;"></div><p></p>');
var $subPanel = $('#mw-panel-' + when);

posts.forEach(
function(id){
var ts = new Date(id);
$($subPanel).append(
'<div class="talkHelperRef">' +
'<a href="#' + id + '">' +
ts.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit', hour12: false }) +
'</a></div>'
);
}
);

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


$('.talkHelper' + when + ':contains(' + mw.config.get('wgUserName') + ')').addClass('talkHelperMe');
return posts;
}
}

Latest revision as of 15:57, 14 February 2024

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('TalkHelper2 could not load dependencies');
  }
);

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

  if (window.commentsInLocalTimeWasRun) {
    console.log('TalkHelper2 CILT loaded');
    TalkHelper2CSS();
    TalkHelper2Run();
  } else {
  	console.log('TalkHelper2 waiting');
    setTimeout(TalkHelper2Init, 10);
  }
}

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;
  }

  .talkHelperRef {
    font-size: small;
    margin-left: 1em;
  }

  `);
}

function TalkHelper2Run() {

  $('#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');

  TalkHelper2Build('Yesterday');
  TalkHelper2Build('Today');
}

function TalkHelper2Build(when) {
  var posts = [];

  $.each(
    $(".localcomments:contains(', " + when + "')"),
    function(){

      var id = $(this).attr('timestamp');
      $(this).parent().addClass('talkHelper' + when).attr('id', id);
      posts.push(1 * id);

    }
  );

  console.log('TalkHelper2 ' + when + '=' + posts.length);
  if(posts.length < 1) {
  	return;
  }

  mw.util.addPortletLink(
    'p-namespaces',
    '#',
    posts.length + ' ' + 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});
  });

  posts.sort();

  $('#mw-panel').prepend('<div id="mw-panel-' + when + '" class="navbox" style="text-align: left;"></div><p></p>');
  var $subPanel = $('#mw-panel-' + when);

  posts.forEach(
    function(id){
      var ts = new Date(id);
      $($subPanel).append(
        '<div class="talkHelperRef">' +
        '<a href="#' + id + '">' +
        ts.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit', hour12: false }) +
        '</a></div>'
      );
    }
  );

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

  $('.talkHelper' + when + ':contains(' + mw.config.get('wgUserName') + ')').addClass('talkHelperMe');
}