نکته: پس از انتشار ممکن است برای دیدن تغییرات نیاز باشد که حافظهٔ نهانی مرورگر خود را پاک کنید.
- فایرفاکس / سافاری: کلید Shift را نگه دارید و روی دکمهٔ Reload کلیک کنید، یا کلیدهای Ctrl-F5 یا Ctrl-R را با هم فشار دهید (در رایانههای اپل مکینتاش کلیدهای ⌘-R)
- گوگل کروم: کلیدهای Ctrl+Shift+R را با هم فشار دهید (در رایانههای اپل مکینتاش کلیدهای ⌘-Shift-R)
- Edge: کلید Ctrl را نگهدارید و روی دکمهٔ Refresh کلیک کنید، یا کلیدهای Ctrl-F5 را با هم فشار دهید
/** * This gadget is a rewrite of the UserMessages gadget, which was influenced by * [[n:en:MediaWiki:Gadget-UserMessages.js]] and [[n:MediaWiki:Gadget-UserMessages.js]] * * Unlike the previous version, this uses jquery.ui dialogs and accept parameters for * the messages that are being posted on the user's talk page. * * The mw.util.addPortletLink() function is adopted from Twinkle. See * https://github.com/azatoth/twinkle for copyright information. */ ( function ( window, document, $, undefined ) { // Wrapper for anonymous function var UserMessages = {}; window.UserMessages = UserMessages; // global acecss UserMessages.addNewSection = function( summary, content ) { api = new mw.Api(); api.get( { action : 'query', titles : mw.config.get( 'wgPageName' ), prop : 'revisions', rvprop : 'content' } ).done( function( data ) { pages = data.query.pages; page_id = Object.keys(pages)[0]; if( page_id == -1 ) { wikitext = content; } else { wikitext = pages[page_id].revisions[0]["*"] + '\n\n' + content; } api.post( { action : 'edit', title : mw.config.get( 'wgPageName' ), summary : summary, text : wikitext, token : mw.user.tokens.get('csrfToken') } ).done ( function( data ) { mw.log( "Saved successfully" ); location.reload(); } ).fail( function( code, result ) { if ( code === "http" ) { mw.log( "HTTP error: " + result.textStatus ); } else if ( code === "ok-but-empty" ) { mw.log( "Got an empty response from the server" ); } else { mw.log( "API error: " + code ); } } ); } ); } UserMessages.dialog = null; UserMessages.addTemplate = function( template, param ) { summary = 'افزودن الگوی «' + template + '» به بحث کاربر' content = '{{subst:' + template + param + '}}\n~~' + '~~'; UserMessages.addNewSection( summary, content ); return true; } UserMessages.prepareTemplate = function( template, param_array ){ param_str = ''; if( param_array ) { UserMessages.dialog = new Morebits.simpleWindow( 600, 400 ); UserMessages.dialog.setTitle( 'افزودن الگوی {{' + template + '}} با پارامتر' ); var form = new Morebits.quickForm( function(){ param_str = ''; for( i=0; i < param_array.length; i++ ) { p = param_array[i]; param_str += '|' + p.param + '='; param_str += $(UserMessages.dialog.content).find('[name=' + p.param + ']').val(); } UserMessages.addTemplate( template, param_str ); }); form.append({ type: 'div', name: 'what-to-do', label: 'مقدار پارامترهای زیر را وارد کنید.', }); for( i=0; i < param_array.length; i++ ) { p = param_array[i]; form.append({ type: 'input', name: p.param, label: p.label + ': ' }); } form.append({ type: 'div', name: 'preview-what-to-do', label: 'اگر میخواهید پیشنمایشی از نتیجه را ببینید روی دکمهٔ پیشنمایش کلیک کنید:', }); form.append({ type: 'button', name: 'preview-btn', label: 'پیشنمایش', event: function(){ param_str = ''; for( i=0; i < param_array.length; i++ ) { p = param_array[i]; param_str += '|' + p.param + '='; param_str += $(UserMessages.dialog.content).find('[name=' + p.param + ']').val(); } api = new mw.Api(); api.get({ action: 'parse', text: '{{subst:' + template + param_str + '}}', pst: true }).done(function( data ){ $('[name=preview-warn]').html(data.parse.text['*']); }); } }); form.append({ type: 'div', name: 'preview-warn', label: '' }); form.append( { type:'submit' } ); var result = form.render(); UserMessages.dialog.setContent( result ); UserMessages.dialog.display(); return false; } } UserMessages.messages = [ [{ tpl : 'دعوت دانشجویان برنامه آموزشی', params : [{param : 1, label : 'پیام تکمیلی'}], label : 'دعوت کاربر', id : 'p-warn-invite', }, { tpl : 'آغازیدن مقاله آموزشی', params : [{param : 1, label : 'پیام تکمیلی'}], label : 'درخواست آغازیدن مقاله', id : 'p-warn-start-article', }, { tpl : 'ویرایش دانشجویی', params : [{param : 1, label : 'پیام تکمیلی'}], label : 'مقاله: ویرایش دانشجویی', id : 'p-warn-student', }, { tpl : 'حداقلهای مقاله', params : false, label : 'مقاله: حداقلها', id : 'p-warn-minimum-req', }] ]; if( mw.config.get( 'wgUserGroups' ).indexOf( 'sysop' ) > -1) { UserMessages.messages.push([]); } UserMessages.addPortletLink = function( tpl, params, text, id, tooltip ) { var link = mw.util.addPortletLink( 'p-warn' , "#", text, id, tooltip ); $( link ).click( function( ev ) { ev.preventDefault(); UserMessages.addTemplate(tpl, ''); }); if( params ) { $( link ).find( 'a' ).append( '<a href="#" id="' + id + '-parametric" class="p-warn-param"><small>+ پارامتر</small></a>' ); $( link ).find( '.p-warn-param' ).click( function( evt ) { evt.stopPropagation(); evt.preventDefault(); UserMessages.prepareTemplate(tpl, params); return false; }); } }; UserMessages.load = function () { if( mw.config.get('wgNamespaceNumber') != 3) return false; $('#p-views').after('<div id="p-warn" class="vectorMenu"><h3><span><a href="#"></a>برنامه</span></h3><div class="menu"><ul></ul></div></div>'); for( g=0; g < UserMessages.messages.length; g++ ) { for( i=0; i < UserMessages.messages[g].length; i++ ) { m = UserMessages.messages[g][i]; UserMessages.addPortletLink( m.tpl, m.params, m.label, m.id, 'افزودن {{' + m.tpl + '}} با امضای شما' ); } if( g != UserMessages.messages.length - 1 ) { $('#p-warn .menu ul').append('<li class="sep"><hr /></li>'); } } }; $(UserMessages.load); } ( window, document, jQuery )); // End wrapper for anonymous function