مدیاویکی:Common.js: تفاوت بین نسخه‌ها

از ولایت حضرت علی و حضرت زهرا
پرش به:ناوبری، جستجو
سطر ۱۳۵: سطر ۱۳۵:
 
$(function () {
 
$(function () {
  
     function setupFind($box) {
+
     $('.mw-find-box').each(function () {
 
 
        var $input = $box.find('.mw-find-input');
 
        var $prev = $box.find('.mw-find-prev');
 
        var $next = $box.find('.mw-find-next');
 
        var $count = $box.find('.mw-find-count');
 
  
         var matches = [];
+
         var $input = $(this).find('.mw-find-input');
        var index = -1;
 
  
 
         function clearHighlights() {
 
         function clearHighlights() {
             for (var i = 0; i < matches.length; i++) {
+
             $('#mw-content-text mark.mw-find-highlight').each(function () {
                 $(matches[i]).replaceWith(matches[i].textContent);
+
                 $(this).replaceWith($(this).text());
             }
+
             });
            matches = [];
 
            index = -1;
 
 
         }
 
         }
  
سطر ۱۵۶: سطر ۱۴۸:
 
             clearHighlights();
 
             clearHighlights();
  
             if (!term) {
+
             if (!term) return;
                $count.text('');
 
                return;
 
            }
 
  
 
             var $content = $('#mw-content-text');
 
             var $content = $('#mw-content-text');
سطر ۱۶۷: سطر ۱۵۶:
  
 
                 if (this.nodeType !== 3) return;
 
                 if (this.nodeType !== 3) return;
                 if (!regex.test(this.nodeValue)) return;
+
                 if (!this.nodeValue.match(regex)) return;
  
                 var html = this.nodeValue.replace(regex, function (match) {
+
                 var replaced = this.nodeValue.replace(regex, function (m) {
                     return '<mark class="mw-find-highlight">' + match + '</mark>';
+
                     return '<mark class="mw-find-highlight">' + m + '</mark>';
 
                 });
 
                 });
  
                 $(this).replaceWith(html);
+
                 $(this).replaceWith(replaced);
 
             });
 
             });
 
            matches = $content.find('.mw-find-highlight').toArray();
 
 
            if (matches.length === 0) {
 
                $count.text('یافت نشد');
 
                return;
 
            }
 
 
            index = 0;
 
            focusResult();
 
        }
 
 
        function focusResult() {
 
            $('.mw-find-highlight').removeClass('active');
 
 
            var el = matches[index];
 
            $(el).addClass('active')[0]
 
                .scrollIntoView({ behavior: "smooth", block: "center" });
 
 
            $count.text((index + 1) + ' از ' + matches.length);
 
 
         }
 
         }
 
        $next.on('click', function () {
 
            if (matches.length === 0) return;
 
            index = (index + 1) % matches.length;
 
            focusResult();
 
        });
 
 
        $prev.on('click', function () {
 
            if (matches.length === 0) return;
 
            index = (index - 1 + matches.length) % matches.length;
 
            focusResult();
 
        });
 
  
 
         $input.on('input', function () {
 
         $input.on('input', function () {
سطر ۲۱۳: سطر ۱۷۰:
 
         });
 
         });
  
    }
 
 
    $('.mw-find-box').each(function () {
 
        setupFind($(this));
 
 
     });
 
     });
  
 
});
 
});

نسخهٔ ‏۳ دسامبر ۲۰۲۵، ساعت ۱۱:۰۱

/* Any JavaScript here will be loaded for all users on every page load. */
$(function () {
	var targets = $('[rel~=tooltip]'),
		target = false,
		tooltip = false,
		title = false;

	targets.bind('mouseenter', function () {
		target = $(this);
		tip = target.attr('title');
		tooltip = $('<div id="tooltip"></div>');

		if (!tip || tip == '')
			return false;

		target.removeAttr('title');
		tooltip.css('opacity', 0)
			.html(tip)
			.appendTo('body');

		var init_tooltip = function () {
			if ($(window).width() < tooltip.outerWidth() * 1.5)
				tooltip.css('max-width', $(window).width() / 2);
			else
				tooltip.css('max-width', 340);

			var pos_left = target.offset().left + (target.outerWidth() / 2) - (tooltip.outerWidth() / 2),
				pos_top = target.offset().top - tooltip.outerHeight() - 20;

			if (pos_left < 0) {
				pos_left = target.offset().left + target.outerWidth() / 2 - 20;
				tooltip.addClass('left');
			}
			else
				tooltip.removeClass('left');

			if (pos_left + tooltip.outerWidth() > $(window).width()) {
				pos_left = target.offset().left - tooltip.outerWidth() + target.outerWidth() / 2 + 20;
				tooltip.addClass('right');
			}
			else
				tooltip.removeClass('right');

			if (pos_top < 0) {
				var pos_top = target.offset().top + target.outerHeight();
				tooltip.addClass('top');
			}
			else
				tooltip.removeClass('top');

			tooltip.css({ left: pos_left, top: pos_top })
				.animate({ top: '+=10', opacity: 1 }, 50);
		};

		init_tooltip();
		$(window).resize(init_tooltip);

		var remove_tooltip = function () {
			tooltip.animate({ top: '-=10', opacity: 0 }, 50, function () {
				$(this).remove();
			});

			target.attr('title', tip);
		};

		target.bind('mouseleave', remove_tooltip);
		tooltip.bind('click', remove_tooltip);
	});
});

$('.col-lg-9').removeClass('col')
$('.col-lg-3').removeClass('col')

function showSujects(subjectClass, title) {
	// Get all the elements with the class "subjects"
	var subjects = $(subjectClass);

	// Create an empty list to hold the IDs of the selected elements
	var selectedTitles = [];
	var selectedIds = [];
	var types = [];

	// Loop through each element with the class "subjects"
	subjects.each(function () {
		// Get the ID of the current element
		var currentTitle = $(this).attr('data-headline');
		var currentId = $(this).attr('id');

		// Add the ID to the list of selected IDs
		selectedTitles.push(currentTitle);
		selectedIds.push(currentId);
		types.push($(this).hasClass('minutes'))
	});
	if (selectedTitles.length === 0) {
		return
	}
	//    console.log('selecting subjects')
	// Loop through the selected IDs and create a new div for each one
	var headlines = [];
	for (var i = 0; i < selectedTitles.length; i++) {
		var tocWrapper = '';
		var id = parseInt(selectedIds[i]);
		console.log(id);
		if (types[i])
			tocWrapper = $("<div class='tocMinuts'></div>");
		else
			tocWrapper = $("<li></li>");
		var newDiv = $("<a class='subjectToc' href='#" + selectedIds[i] + "'></a>");
		newDiv.text(selectedTitles[i]);
		tocWrapper.append(newDiv);
		headlines.push(tocWrapper);
	}

	// Wrap all the new divs in a specific div with the ID "new-div-container"
	var headLineContainer = $("<div></div>");
	headLineContainer.addClass("infobox mw-collapsible");
	headLineContainer.css("width", "22em");

	var ToggleSpan = $("<span >" + title + "</span>")
	var headLineWrapper = $("<ol></ol>");
	headLineWrapper.addClass("headWrapperSubjects");
	headLineWrapper.addClass("mw-collapsible-content");
	headLineWrapper.append(headlines);

	headLineContainer.append(ToggleSpan);
	headLineContainer.append(headLineWrapper);

	// Add the new div container after the table with the ID "my-table"
	$(".infobox.vcard").after(headLineContainer);
}

showSujects('.subjects, .minutes', 'موضوعات');


$(function () {

    $('.mw-find-box').each(function () {

        var $input = $(this).find('.mw-find-input');

        function clearHighlights() {
            $('#mw-content-text mark.mw-find-highlight').each(function () {
                $(this).replaceWith($(this).text());
            });
        }

        function doSearch(term) {
            clearHighlights();

            if (!term) return;

            var $content = $('#mw-content-text');
            var regex = new RegExp(term, 'gi');

            $content.find('*').contents().each(function () {

                if (this.nodeType !== 3) return;
                if (!this.nodeValue.match(regex)) return;

                var replaced = this.nodeValue.replace(regex, function (m) {
                    return '<mark class="mw-find-highlight">' + m + '</mark>';
                });

                $(this).replaceWith(replaced);
            });
        }

        $input.on('input', function () {
            doSearch(this.value);
        });

    });

});
حاج حسین خوش لهجه نابغه ولایت؛ حاج حسین خوش لهجه