<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ar">
	<id>http://www.copticpedia.org/index.php?action=history&amp;feed=atom&amp;title=%D9%85%D9%8A%D8%AF%D9%8A%D8%A7%D9%88%D9%8A%D9%83%D9%8A%3AGadget-geonotice-core.js</id>
	<title>ميدياويكي:Gadget-geonotice-core.js - تاريخ المراجعة</title>
	<link rel="self" type="application/atom+xml" href="http://www.copticpedia.org/index.php?action=history&amp;feed=atom&amp;title=%D9%85%D9%8A%D8%AF%D9%8A%D8%A7%D9%88%D9%8A%D9%83%D9%8A%3AGadget-geonotice-core.js"/>
	<link rel="alternate" type="text/html" href="http://www.copticpedia.org/index.php?title=%D9%85%D9%8A%D8%AF%D9%8A%D8%A7%D9%88%D9%8A%D9%83%D9%8A:Gadget-geonotice-core.js&amp;action=history"/>
	<updated>2026-06-25T19:10:51Z</updated>
	<subtitle>تاريخ التعديل لهذه الصفحة في الويكي</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>http://www.copticpedia.org/index.php?title=%D9%85%D9%8A%D8%AF%D9%8A%D8%A7%D9%88%D9%8A%D9%83%D9%8A:Gadget-geonotice-core.js&amp;diff=8772&amp;oldid=prev</id>
		<title>Gerges: مراجعة واحدة</title>
		<link rel="alternate" type="text/html" href="http://www.copticpedia.org/index.php?title=%D9%85%D9%8A%D8%AF%D9%8A%D8%A7%D9%88%D9%8A%D9%83%D9%8A:Gadget-geonotice-core.js&amp;diff=8772&amp;oldid=prev"/>
		<updated>2021-03-19T01:08:51Z</updated>

		<summary type="html">&lt;p&gt;مراجعة واحدة&lt;/p&gt;
&lt;p&gt;&lt;b&gt;صفحة جديدة&lt;/b&gt;&lt;/p&gt;&lt;div&gt;/*  _____________________________________________________________________________&lt;br /&gt;
 * |                                                                             |&lt;br /&gt;
 * |                    === WARNING: GLOBAL GADGET FILE ===                      |&lt;br /&gt;
 * |                  Changes to this page affect many users.                    |&lt;br /&gt;
 * | Please discuss changes on the talk page or on [[WT:Gadget]] before editing. |&lt;br /&gt;
 * |_____________________________________________________________________________|&lt;br /&gt;
 *&lt;br /&gt;
 * Imported as of 8 august 2014 from [[testwiki:MediaWiki:Gadget-geonotice-core.js]]&lt;br /&gt;
 * Shows notices to registered users based on their location&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
/* global jQuery, mediaWiki, Geo */&lt;br /&gt;
&lt;br /&gt;
( function ( mw, $ ) {&lt;br /&gt;
'use strict';&lt;br /&gt;
&lt;br /&gt;
mw.messages.set( {&lt;br /&gt;
	'gn-hideButton': 'إخفاء'&lt;br /&gt;
} );&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Namespace for all Geonotice methods and properties.&lt;br /&gt;
 * @class&lt;br /&gt;
 * @singleton&lt;br /&gt;
 */&lt;br /&gt;
var gn = {};&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * @param {string} str Wiki-text of the link&lt;br /&gt;
 * @param {string} page The title of the target page of the link&lt;br /&gt;
 * @param {string} text The text to be used for the link&lt;br /&gt;
 */&lt;br /&gt;
/* jshint unused: true */&lt;br /&gt;
&lt;br /&gt;
gn.geoWikiLinker = function (str, page, text) {&lt;br /&gt;
	text = text || page;&lt;br /&gt;
	return mw.html.element(&lt;br /&gt;
		'a', {&lt;br /&gt;
			href: mw.util.getUrl( page ),&lt;br /&gt;
			title: page&lt;br /&gt;
		}, text&lt;br /&gt;
	);&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Handle click events.&lt;br /&gt;
 *&lt;br /&gt;
 * @param {jQuery.Event} e Click event&lt;br /&gt;
 */&lt;br /&gt;
gn.hideGeonotice = function (e) {&lt;br /&gt;
	e.preventDefault();&lt;br /&gt;
&lt;br /&gt;
	var parentId = $(e.target).closest('li').attr('id');&lt;br /&gt;
	var date = new Date();&lt;br /&gt;
&lt;br /&gt;
	date.setTime(date.getTime()+8640000000);&lt;br /&gt;
&lt;br /&gt;
	var expireDate = date.toGMTString();&lt;br /&gt;
&lt;br /&gt;
	document.cookie = 'hide' + parentId + '=1; expires=' + expireDate + ';path=/';&lt;br /&gt;
	&lt;br /&gt;
	$( '#' + parentId ).hide();&lt;br /&gt;
	$( '#geonotice-hr' ).hide();&lt;br /&gt;
&lt;br /&gt;
	return false;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Boolean indicating whether this will be the first notice added to the page&lt;br /&gt;
 */&lt;br /&gt;
gn.firstnotice = true;&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Regular expression used to detect links in wiki-text&lt;br /&gt;
 */&lt;br /&gt;
gn.regexForInternalLinks = /\[\[([^{|}\[\]\n]+)(?:\|(.*?))?\]\]/g;&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Add a notice on top of the watchlist&lt;br /&gt;
 *&lt;br /&gt;
 * @param {Object} notice Object representing a notice&lt;br /&gt;
 */&lt;br /&gt;
gn.displayGeonotice = function (notice) {&lt;br /&gt;
	var geonoticeText = notice.text.replace( gn.regexForInternalLinks, gn.geoWikiLinker );&lt;br /&gt;
&lt;br /&gt;
	if (gn.firstnotice) {&lt;br /&gt;
		gn.firstnotice = false;&lt;br /&gt;
		&lt;br /&gt;
		$('#watchlist-message').prepend(&lt;br /&gt;
			$( '&amp;lt;hr&amp;gt;' ).attr({ 'id' : 'geonotice-hr' })&lt;br /&gt;
		);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	$('#watchlist-message').prepend(&lt;br /&gt;
		$('&amp;lt;li&amp;gt;')&lt;br /&gt;
			.attr({&lt;br /&gt;
				'class' : 'geonotice plainlinks',&lt;br /&gt;
				'id' : 'geonotice' + notice.id&lt;br /&gt;
			})&lt;br /&gt;
			.append(&lt;br /&gt;
				$( '&amp;lt;span&amp;gt;' )&lt;br /&gt;
					.html( geonoticeText ),&lt;br /&gt;
				$( '&amp;lt;small&amp;gt;' )&lt;br /&gt;
					.append(&lt;br /&gt;
						$('&amp;lt;a&amp;gt;')&lt;br /&gt;
							.text( mw.msg( 'gn-hideButton' ) )&lt;br /&gt;
							.click( gn.hideGeonotice )&lt;br /&gt;
							.attr( { 'href' : '#' } )&lt;br /&gt;
					)&lt;br /&gt;
			)&lt;br /&gt;
	).show();&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Determine which notices are still valid and are targeted to the location of the current user&lt;br /&gt;
 */&lt;br /&gt;
gn.runGeonotice = function () {&lt;br /&gt;
	var now = new Date(),&lt;br /&gt;
		id, notice, minlat, maxlat, minlon, maxlon,&lt;br /&gt;
		startNotice, endNotice;&lt;br /&gt;
&lt;br /&gt;
	for (id in gn.notices) {&lt;br /&gt;
		if (!document.cookie.match('hidegeonotice'+id+'=1')) {&lt;br /&gt;
&lt;br /&gt;
			notice = gn.notices[id];&lt;br /&gt;
			notice.id = id;&lt;br /&gt;
&lt;br /&gt;
			if (!notice || !notice.begin || !notice.end) {&lt;br /&gt;
				continue;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			startNotice = Date.parse(notice.begin);&lt;br /&gt;
			endNotice = Date.parse(notice.end);&lt;br /&gt;
&lt;br /&gt;
			if ( now.getTime() &amp;gt; startNotice &amp;amp;&amp;amp;&lt;br /&gt;
				now.getTime() &amp;lt; endNotice ) {&lt;br /&gt;
				if (notice.country &amp;amp;&amp;amp; Geo.country === notice.country) {&lt;br /&gt;
					gn.displayGeonotice(notice);&lt;br /&gt;
				} else {&lt;br /&gt;
					if (notice.corners) {&lt;br /&gt;
						minlat = Math.min(notice.corners[0][0], notice.corners[1][0]);&lt;br /&gt;
						maxlat = Math.max(notice.corners[0][0], notice.corners[1][0]);&lt;br /&gt;
						minlon = Math.min(notice.corners[0][1], notice.corners[1][1]);&lt;br /&gt;
						maxlon = Math.max(notice.corners[0][1], notice.corners[1][1]);&lt;br /&gt;
&lt;br /&gt;
						// Geo coordinates can be empty string if unknown. parseFloat makes&lt;br /&gt;
						// these NaN, so that you do not get to see a notice in that case.&lt;br /&gt;
						if ( minlat &amp;lt; parseFloat( Geo.lat ) &amp;amp;&amp;amp; parseFloat( Geo.lat ) &amp;lt; maxlat &amp;amp;&amp;amp;&lt;br /&gt;
							minlon &amp;lt; parseFloat( Geo.lon ) &amp;amp;&amp;amp; parseFloat( Geo.lon ) &amp;lt; maxlon&lt;br /&gt;
						) {&lt;br /&gt;
							gn.displayGeonotice(notice);&lt;br /&gt;
						}&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
// Attach to window&lt;br /&gt;
window.GeoNotice = $.extend( gn, window.GeoNotice );&lt;br /&gt;
&lt;br /&gt;
if ( window.Geo !== undefined ) {&lt;br /&gt;
	$( gn.runGeonotice );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
}( mediaWiki, jQuery ) );&lt;/div&gt;</summary>
		<author><name>Gerges</name></author>
	</entry>
</feed>