mw.loader.using(
[ 'ext.gadget.CommentsInLocalTime', 'jquery.makeCollapsible' ],
TalkHelper3Init,
function(){
alert('TalkHelper3 could not load dependencies');
}
);
function TalkHelper3Init() {
console.log('TalkHelper3 init');
if (window.commentsInLocalTimeWasRun) {
console.log('TalkHelper3 CILT loaded');
TalkHelper3CSS();
TalkHelper3Run();
} else {
console.log('TalkHelper3 waiting');
setTimeout(TalkHelper3Init, 10);
}
}
function TalkHelper3CSS() {
mw.util.addCSS(`
.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 TalkHelper3Run() {
$('#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');
TalkHelper3Build('Yesterday');
TalkHelper3Build('Today');
}
function TalkHelper3Build(when) {
var posts = [];
var seqno = 0;
// console.log('starting TalkHelper3Build');
$.each(
$(".localcomments:contains(', " + when + "')"),
function(){
var ts = $(this).attr("title");
ts = ts.substr(0, 5);
var dd = $(this).parent().parent();
seqno++;
var id = when + seqno;
$(dd).addClass('talkHelper' + when).attr("id", id);
// console.log('ts=', ts, " id=", id);
posts.push(ts + '|' + id);
}
);
console.log('TalkHelper3 ' + 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(x){
var ts = x.substr(0,5);
var id = x.substr(6);
$($subPanel).append(
'<div class="talkHelperRef">' +
'<a href="#' + id + '">' +
ts +
'</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');
}