|
|
Line 12: |
Line 12: |
| * dependency hasn't arrived yet it'll make sure those are loaded before this. | | * dependency hasn't arrived yet it'll make sure those are loaded before this. |
| */ | | */ |
| // see [[Wikinews:Commentary pages on news events]].
| |
| // ==========================================================================
| |
| // MediaWiki interface button for Comments page based on [[commons:mediawiki:extra-tabs.js]].
| |
| // Originally written by Dbenbenn, Avatar, Duesentrieb and Arnomane
| |
| // Modified by bawolff for wikinews. fixed by darklama
| |
| // re-written by bawolff in may 2010.
| |
| //
| |
| // If copying to another wiki, this also needs some css as well.
| |
|
| |
| // Run a background check of api.php to see if the particular page exists,
| |
| // so a non-existing comment page can be red, and an existing comment page
| |
| // will look like a normal tab.
| |
|
| |
| // This would be better if it could check multiple pages with one query.
| |
|
| |
| var checkCommentaryPageExist = function (pageName, id, query) {
| |
| pageName = mw.util.wikiUrlencode( pageName );
| |
| var success = function (x) {
| |
| if ( !x || !x.query || !x.query.pages ) {
| |
| mw.log( "Error getting redlinks for opinion tab" );
| |
| return;
| |
| }
| |
| if ( x.query.pages['-1'] ) {
| |
| // Means its missing.
| |
| var url = mw.config.get( 'wgScriptPath' ) +
| |
| '/index.php?action=edit&redlink=1&title=' + pageName + '&' + query;
| |
| $( '#' + id + ' a' ).attr( 'href', url )
| |
| $( '#' + id ).addClass( 'new' );
| |
| }
| |
| }
| |
| $.ajax(
| |
| mw.config.get( 'wgScriptPath' ) + '/api.php?action=query&format=json&titles=' + pageName,
| |
| ).then(success);
| |
|
| |
| }
| |
|
| |
| $( function () {
| |
| // Interface strings, if translating, change only these.
| |
| var OpinionTabName = 'Opinions';
| |
| var TalkTabName = 'Collaboration';
| |
| var ArticleTabName = 'Article';
| |
| var OpinionTabTooltip = 'Discuss your personal viewpoint on the topic at hand';
| |
| var OpinionNS = 102;
| |
| // Extra things to add to edit urls:
| |
| var OpinionParams = 'preload=Wikinews:Commentary_pages_on_news_events/body&editintro=Template:Editintro_comments&summary=create';
| |
| // [[Wikinews:Commentary pages on news events/body]] [[Template:Editintro comments]]
| |
| // End stuff to translate.
| |
| // -------------------
| |
|
| |
| var title = mw.config.get('wgTitle');
| |
| var skin = mw.config.get('skin');
| |
| if (title === 'Main Page') return;
| |
| var portlet = skin === 'vector' ? 'p-namespaces' : 'p-cactions';
| |
| switch(mw.config.get('wgNamespaceNumber')) {
| |
| case 1:
| |
| case 0:
| |
| var targetPage = mw.config.get( 'wgFormattedNamespaces' )[OpinionNS] + ':' + title;
| |
| var url = mw.util.getUrl( targetPage );
| |
|
| |
| var res = mw.util.addPortletLink(
| |
| 'p-namespaces',
| |
| url,
| |
| OpinionTabName,
| |
| 'ca-comments',
| |
| OpinionTabTooltip
| |
| );
| |
| if ( !res ) {
| |
| // No p-namespaces portal. Must be monobook then.
| |
| var res2 = mw.util.addPortletLink(
| |
| 'p-cactions',
| |
| url,
| |
| OpinionTabName,
| |
| 'ca-comments',
| |
| OpinionTabTooltip,
| |
| undefined, /* accesskey */
| |
| $('#ca-edit') /* nextnode */
| |
| );
| |
| if ( !res2 ) {
| |
| mw.log( "Error adding opinions tab" );
| |
| }
| |
| }
| |
| checkCommentaryPageExist(targetPage, 'ca-comments', OpinionParams);
| |
| break;
| |
| case 90: /* LQT thread */
| |
| var targetPage = mw.config.get( 'wgTitle' ).replace(/\/.*$/, '');
| |
| var talkTarget = mw.config.get( 'wgFormattedNamespaces' )[1] + ':' + targetPage;
| |
|
| |
| var before = document.getElementById('ca-nstab-thread');
| |
| var talk = mw.util.addPortletLink(
| |
| portlet,
| |
| mw.util.getUrl( talkTarget ),
| |
| TalkTabName,
| |
| "ca-main-talk", undefined, undefined, before
| |
| );
| |
| mw.util.addPortletLink(
| |
| portlet,
| |
| mw.util.getUrl( targetPage ),
| |
| ArticleTabName,
| |
| "ca-nstab-main",
| |
| undefined, undefined, talk
| |
| );
| |
|
| |
| checkCommentaryPageExist(targetPage, 'ca-nstab-main', '');
| |
| checkCommentaryPageExist(talkTarget, 'ca-main-talk', '');
| |
| break;
| |
| case OpinionNS:
| |
| var targetPage = mw.config.get( 'wgTitle' );
| |
| var talkTarget = mw.config.get( 'wgFormattedNamespaces' )[1] + ':' + targetPage;
| |
|
| |
| var before = document.getElementById('ca-nstab-' +
| |
| mw.config.get( 'wgFormattedNamespaces' )[OpinionNS].toLowerCase() );
| |
| var talk = mw.util.addPortletLink(
| |
| portlet,
| |
| mw.util.getUrl( talkTarget ),
| |
| TalkTabName,
| |
| "ca-main-talk", undefined, undefined, before
| |
| );
| |
| mw.util.addPortletLink(
| |
| portlet,
| |
| mw.util.getUrl( targetPage ),
| |
| ArticleTabName,
| |
| "ca-nstab-main",
| |
| undefined, undefined, talk
| |
| );
| |
|
| |
| checkCommentaryPageExist(targetPage, 'ca-nstab-main', '');
| |
| checkCommentaryPageExist(talkTarget, 'ca-main-talk', '');
| |
|
| |
| break;
| |
| /* do stuff */
| |
| }
| |
| });
| |
|
| |
|
| /* global mw, $ */ | | /* global mw, $ */ |