User:GhostInTheMachine/TalkHelper2.js: Difference between revisions
Appearance
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(' |
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 |
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); |
||
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){ |
|||
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'); |
|||
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');
}