ملاحظة: بعد الحفظ، أنت قد تحتاج إلى إفراغ الكاش الخاص بمتصفحك لرؤية التغييرات.
- فايرفوكس / سافاري: أمسك Shift أثناء ضغط Reload، أو اضغط على إما Ctrl-F5 أو Ctrl-R (⌘-R على ماك)
- جوجل كروم: اضغط Ctrl-Shift-R (⌘-Shift-R على ماك)
- إنترنت إكسبلورر: أمسك Ctrl أثناء ضغط Refresh، أو اضغط Ctrl-F5
- أوبرا: اذهب إلى Menu → Settings (Opera → Preferences على ماك) ثم إلى Privacy & security → Clear browsing data → Cached images and files.
/* Warning! Global gadget file! */
( function() {
'use strict';
var cr = mw.CityRights = {
savedSettings: null, // Loaded on init
$dialog: null,
legitSources: [
'justice.gov.il'
],
language: 'ar',
languageSwitchFlag: false,
languageLinks: mw.config.get( 'wgLanguageLinks' ),
hasLanguageLink: function ( langCode ) {
return !!cr.languageLinks[langCode];
},
getLanguageLinkUrl: function ( langCode ) {
var link = cr.languageLinks[langCode];
if ( link ) {
return link.url;
}
return null;
},
hasTranslation: function ( langCode ) {
return cr.settings.languages.indexOf( langCode ) !== -1;
},
shouldTranslate: function( langCode ) {
return ( cr.hasLanguageLink( langCode ) && cr.hasTranslation( langCode ) );
},
perSourceSettings: {
'justice.gov.il': {
backTo: 'https://www.justice.gov.il/',
title: false,
languages: [ 'he', 'ar' ],
texts: {
he: {
okButton: 'אני מאשר/ת'
},
ar: {
okButton: 'انا اوافق'
}
}
}
},
cookieName: '_CityRightsNoShow',
msgPrefix: 'MediaWiki:CityRights-welcome-',
listNoShow: [],
param: 'utm_source',
source: '',
settings: {
backTo: false,
allowDoNotShowAgain: true,
languages: [ 'he' ]
},
texts: {
he: {
title: 'ברוכים הבאים לכל זכות!',
okButton: 'סגור',
closeButton: 'סגור',
doNotShowAgain: 'אל תציגו בעתיד',
backToOfficialSite: 'לא, תודה - קחו אותי לאתר הרשמי',
langSwitchButton: 'العربية'
},
ar: {
title: 'ברוכים הבאים לכל זכות!',
okButton: 'إغلاق',
closeButton: 'إغلاق',
doNotShowAgain: 'لا تعرضوا الاقتراح في المستقبل',
backToOfficialSite: 'لا، شكرا - اود الانتقال للموقع الرسمي',
langSwitchButton: 'עברית'
}
},
newDialog: function( text ) {
if ( cr.$dialog !== null ) {
cr.$dialog.modal( 'hide' );
cr.$dialog.remove();
cr.languageSwitchFlag = false;
}
cr.$dialog = cr.createDialogElement( text );
cr.$dialog.find( '.cityrights-welcome-language-switcher' ).on( 'click', '.btn', function () {
cr.switchLanguage( cr.language !== 'he' ? 'he' : 'ar' )
} );
cr.$dialog.on( 'hide.bs.modal', function () {
// This might be a language switch, not closing of the modal
if ( cr.languageSwitchFlag === true ) {
return;
}
if ( cr.settings.allowDoNotShowAgain === true ) {
var doNotShowAgain = cr.$dialog.find( '.dismiss-forever > input' ).prop( 'checked' );
if( doNotShowAgain ) {
cr.listNoShow.push(cr.source);
mw.cookie.set( cr.cookieName, JSON.stringify( cr.listNoShow ) );
}
}
if ( cr.language !== 'he' ) {
var link = cr.getLanguageLinkUrl( cr.language );
if ( link ) {
window.location.href = link;
}
}
});
cr.$dialog.on( 'shown.bs.modal', function () {
cr.$dialog.find( '.btn-default' ).focus();
});
cr.$dialog.modal();
},
/*
* options.backTo: a URL to send the user do if the dialog is declined. This turns into a yes/no confirmation
*/
createDialogElement: function ( content ) {
var texts = cr.texts[cr.language] ,
backButton = '';
if( cr.settings.backTo ) {
backButton = '<a class="backButton" href="' + cr.settings.backTo + '">' + texts.backToOfficialSite + '</a>';
}
var html = '<div class="modal modal-govt-welcome" data-backdrop="static" tabindex="-1" role="dialog">' +
'<div class="modal-dialog" role="document">' +
'<div class="modal-content">';
if( cr.settings.title ) {
html += '<div class="modal-header">' +
'<button type="button" class="close" data-dismiss="modal" aria-label="' + texts.closeButton + '"><span aria-hidden="true">×</span></button>' +
'<h4 class="modal-title text-center">' + texts.title + '</h4>' +
'</div>';
}
html += '<div class="modal-body">';
if ( cr.shouldTranslate( 'ar' ) ) {
html += '<div class="cityrights-welcome-language-switcher text-right"><div class="btn">' + texts.langSwitchButton + '</div></div>';
}
html += content + '</div>' +
'<div class="modal-footer">' +
'<button type="button" class="btn btn-default btn-lg" data-dismiss="modal">'+ texts.okButton + '</button>' +
'<div class="form-inline modal-footer-extra-controls">';
if( cr.settings.allowDoNotShowAgain === true ) {
html += '<label class="dismiss-forever checkbox">' +
'<input type="checkbox"> <span>' + texts.doNotShowAgain + '</span>' +
'</label>';
}
html += backButton +
'</div>' +
'</div>' +
'</div><!-- /.modal-content --></div><!-- /.modal-dialog --></div>';
return $(html);
},
init: function() {
var language;
// Some defensive programming - make sure the ResourceLoader modules are ready
mw.loader.using( ['mediawiki.util', 'mediawiki.cookie', 'mediawiki.api', 'mediawiki.storage' ], function () {
cr.savedSettings = mw.storage.getObject('CityRightsSettings') || {};
cr.source = mw.util.getParamValue(cr.param);
if (cr.source === null || cr.source === '') {
return;
}
cr.source = cr.source.replace(/ /g, "").toLowerCase();
if ($.inArray(cr.source, cr.legitSources) < 0) {
return;
}
cr.loadNoShowList();
if ( $.inArray( cr.source, cr.listNoShow ) > -1 ) {
return;
}
var sourceSettings = cr.perSourceSettings[cr.source];
if (typeof (sourceSettings) === 'object') {
$.extend(true, cr.settings, sourceSettings);
$.extend(true, cr.texts, sourceSettings.texts);
}
language = mw.util.getParamValue('language') || cr.savedSettings.language;
if (language !== cr.language && cr.shouldTranslate(language)) {
cr.setLanguage( language );
}
cr.getContent();
} );
},
loadNoShowList: function () {
var cookie = mw.cookie.get( cr.cookieName );
try {
cr.listNoShow = JSON.parse( cookie );
} catch ( e ) {}
cr.listNoShow = cr.listNoShow || []; // Handle NULL or error
},
getContent: function () {
var api, basePageName, pageLangSuffix, title, templateParams, wikitext;
api = new mw.Api();
basePageName = cr.msgPrefix + mw.util.rawurlencode(cr.source);
pageLangSuffix = ( cr.language === 'he' ) ? '' : ( '/' + cr.language );
title = basePageName + pageLangSuffix;
templateParams = cr.settings.name ? 'name=' + cr.settings.name : '';
templateParams = '|' + templateParams;
wikitext = '{{' + title + templateParams + '}}';
console.log( wikitext );
api.parse( wikitext, { disablelimitreport: true, uselang: 'he' } )
.done( function( result ) {
if ( result.pageid !== 0 ) {
cr.newDialog( result )
} else {
}
} )
.fail( function ( error ) {
mw.log( "Message failed to load through the API: ", error );
} );
},
saveSettings: function () {
mw.storage.setObject('CityRightsSettings', cr.savedSettings );
},
switchLanguage: function ( langCode ) {
if ( langCode !== 'he' && !cr.shouldTranslate( langCode ) ) {
return;
}
cr.languageSwitchFlag = true;
cr.setLanguage( langCode );
cr.getContent();
},
setLanguage: function ( langCode ) {
cr.language = langCode;
cr.savedSettings.language = langCode;
cr.saveSettings();
}
};
cr.init();
})();