پرش به محتوا

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

از ویکی داد
بدون خلاصۀ ویرایش
برچسب: برگردانده‌شده
بدون خلاصۀ ویرایش
برچسب: واگردانی دستی
خط ۱: خط ۱:
$( document ).on(
(function () {
    'click',
    '.wd-test-options li',
    function (event) {


        event.preventDefault();
    /* =========================================================
        event.stopPropagation();
      سیستم تست‌های تعاملی ویکی‌داد
      ========================================================= */


        var option = $( this );
    function initWikidadTests() {
        var test = option.closest( '.wd-test' );


         if ( !test.length ) {
         $('.wd-test').each(function () {
             return;
 
        }
             var test = $(this);


        if ( test.hasClass( 'wd-test-finished' ) ) {
            if (test.hasClass('wd-test-ready')) {
            return;
                return;
        }
            }


        /* =========================================
            test.addClass('wd-test-ready');
          فقط گزینه‌های همین تست
          ========================================= */


        var testOptions = test
            /*
            .children()
            * فقط گزینه‌های همین تست
             .find( '.wd-test-options' )
            */
            .first()
             test.find('.wd-test-options li').css({
            .children( 'li' );
                'display': 'block',
                'padding': '11px 14px',
                'margin': '7px 0',
                'border': '1px solid #dce5ea',
                'border-radius': '8px',
                'background': '#fff',
                'cursor': 'pointer',
                'transition': 'all .15s ease',
                'line-height': '1.9'
            });


        /* =========================================
            /*
          پاسخ انتخاب‌شده
            * فقط نتیجه همین تست مخفی شود
          ========================================= */
            */
            test.find('.wd-test-result').css({
                'display': 'none'
            });


        var selectedText = $.trim(
            test.find('.wd-test-answer').css({
            option.text()
                'display': 'none'
        );
            });


         var correctAnswer = $.trim(
         });
            test.attr( 'data-answer' ) || ''
        );


        /* =========================================
    }
          حذف انتخاب قبلی
          ========================================= */


        testOptions.removeClass(
            'wd-test-selected wd-test-correct wd-test-wrong'
        );


        option.addClass(
    /*
            'wd-test-selected'
    * آماده‌سازی تست‌ها
        );
    */
    $(document).ready(function () {
        initWikidadTests();
    });


        /* =========================================
          استخراج حرف گزینه
          ========================================= */


        var selectedLetter = selectedText.replace(
    /*
            /^[\s‏‌]*([الفبجد])[\s\)\.:\-ـ]*/i,
    * کلیک روی یک گزینه
            '$1'
    */
         );
    $(document).on(
        'click',
        '.wd-test-options li',
         function (event) {


        if ( selectedLetter === selectedText ) {
            event.preventDefault();
             selectedLetter =
 
                selectedText.charAt( 0 );
             var option = $(this);
        }


        var answerLetter = correctAnswer.replace(
             /*
             /^[\s‏‌]*([الفبجد])[\s\)\.:\-ـ]*/i,
            * فقط نزدیک‌ترین تست
             '$1'
            */
        );
             var test = option.closest('.wd-test');


        if ( answerLetter === correctAnswer ) {
            /*
            answerLetter =
            * اگر تست پیدا نشد، کاری نکن
                 correctAnswer.charAt( 0 );
            */
        }
            if (!test.length) {
                 return;
            }


        var isCorrect =
            /*
             $.trim( selectedLetter ) ===
            * اگر همین تست قبلاً پاسخ داده شده
             $.trim( answerLetter );
            */
             if (test.hasClass('wd-test-finished')) {
                return;
             }


        /* =========================================
          پیدا کردن نتیجه فقط در همین تست
          ========================================= */


        var result = test
            /*
            .children( 'div' )
            * متن گزینه انتخاب‌شده
             .has( '.wd-test-options' )
            */
            .first()
             var selectedText = $.trim(
             .children( '.wd-test-result' );
                option.text()
             );


        /*
        * اگر ساختار مرورگر متفاوت بود،
        * فقط اولین نتیجه مربوط به همین تست را بگیر.
        */
        if ( !result.length ) {


             result = test
             /*
                .children( 'div' )
            * پاسخ صحیح فقط از همین تست
                 .find( '> .wd-test-result' )
            */
                .first();
            var correctAnswer = $.trim(
                 test.attr('data-answer') || ''
            );


        }


        var resultMessage =
            /*
            result.children(
            * استخراج حرف گزینه انتخاب‌شده
                 '.wd-test-result-message'
            */
            var selectedMatch = selectedText.match(
                 /^[\s\u200c\u200f]*([الفبجد])[\s\)\.:\-ـ]*/
             );
             );


        var answer =
            var selectedLetter = selectedMatch
             result.children(
                ? selectedMatch[1]
                 '.wd-test-answer'
                : selectedText.charAt(0);
 
 
             /*
            * استخراج حرف پاسخ صحیح
            */
            var answerMatch = correctAnswer.match(
                 /^[\s\u200c\u200f]*([الفبجد])[\s\)\.:\-ـ]*/
             );
             );


        /* =========================================
            var answerLetter = answerMatch
          نمایش نتیجه
                ? answerMatch[1]
          ========================================= */
                : correctAnswer.charAt(0);
 
 
            selectedLetter = $.trim(selectedLetter);
            answerLetter = $.trim(answerLetter);
 
 
            /*
            * فقط گزینه‌های همین تست
            */
            var testOptions =
                test.find('.wd-test-options li');
 
 
            /*
            * پاک کردن وضعیت فقط در همین تست
            */
            testOptions.css({
                'background': '#fff',
                'border-color': '#dce5ea',
                'color': '',
                'font-weight': ''
            });
 
 
            /*
            * مشخص کردن گزینه انتخاب‌شده
            */
            option.css({
                'background': '#f3f7fa',
                'border-color': '#3978ad'
            });
 
 
            /*
            * بررسی پاسخ
            */
            var isCorrect =
                selectedLetter === answerLetter;
 
 
            /*
            * فقط نتیجه همین تست
            */
            var result =
                test.find('.wd-test-result');


        result.show();
            var resultMessage =
                test.find('.wd-test-result-message');


        if ( isCorrect ) {


             resultMessage
             /*
                .text(
            * نمایش نتیجه همین تست
                    '✓ پاسخ شما صحیح است.'
            */
                )
            result.css({
                 .css({
                'display': 'block',
                     color: '#168477'
                'visibility': 'visible',
                'opacity': '1'
            });
 
 
            /*
            * پاسخ صحیح
            */
            if (isCorrect) {
 
                 option.css({
                     'background': '#edf8f5',
                    'border-color': '#168477',
                    'color': '#11695f',
                    'font-weight': 'bold'
                 });
                 });


            option.addClass(
                resultMessage
                'wd-test-correct'
                    .text('✓ پاسخ شما صحیح است.')
            );
                    .css({
                        'display': 'block',
                        'visibility': 'visible',
                        'opacity': '1',
                        'color': '#168477',
                        'font-weight': 'bold'
                    });
 
            }
 


        } else {
            /*
            * پاسخ غلط
            */
            else {


            resultMessage
                 option.css({
                 .text(
                     'background': '#fff2f2',
                     '✕ پاسخ شما نادرست است.'
                    'border-color': '#b44a4a',
                )
                     'color': '#9b3838'
                .css({
                     color: '#b44a4a'
                 });
                 });


            option.addClass(
                resultMessage
                'wd-test-wrong'
                    .text('✕ پاسخ شما نادرست است.')
            );
                    .css({
                        'display': 'block',
                        'visibility': 'visible',
                        'opacity': '1',
                        'color': '#b44a4a',
                        'font-weight': 'bold'
                    });
 


            /* فقط گزینه‌های همین تست */
                /*
            testOptions.each(
                * پیدا کردن پاسخ صحیح
                function () {
                * فقط داخل همین تست
                */
                testOptions.each(function () {


                     var item = $( this );
                     var item = $(this);


                     var itemText =
                     var itemText =
                         $.trim(
                         $.trim(item.text());
                            item.text()
 
                    var itemMatch =
                        itemText.match(
                            /^[\s\u200c\u200f]*([الفبجد])[\s\)\.:\-ـ]*/
                         );
                         );


                     var itemLetter =
                     var itemLetter = itemMatch
                         itemText.replace(
                         ? itemMatch[1]
                            /^[\s‏‌]*([الفبجد])[\s\)\.:\-ـ]*/,
                         : itemText.charAt(0);
                            '$1'
 
                         );


                     if (
                     if (
                         itemLetter === itemText
                         $.trim(itemLetter) ===
                        answerLetter
                     ) {
                     ) {
                         itemLetter =
 
                             itemText.charAt( 0 );
                         item.css({
                            'background': '#edf8f5',
                            'border-color': '#168477',
                            'color': '#11695f',
                             'font-weight': 'bold'
                        });
 
                     }
                     }


                    if (
                });
                        $.trim(
 
                            itemLetter
            }
                        ) ===
 
                        $.trim(
                            answerLetter
                        )
                    ) {
                        item.addClass(
                            'wd-test-correct'
                        );
                    }


                 }
            /*
             );
            * پاسخ و تحلیل فقط همین تست
            */
            test.find('.wd-test-answer').css({
                'display': 'block',
                'visibility': 'visible',
                 'opacity': '1'
             });


        }


        /* =========================================
            /*
          نمایش پاسخ و تحلیل فقط همین تست
            * قفل کردن فقط همین تست
          ========================================= */
            */
            test.addClass('wd-test-finished');


         answer
         }
            .stop( true, true )
    );
            .slideDown( 220 );


        /* این تست تمام شده */
        test.addClass(
            'wd-test-finished'
        );


     }
     /* =========================================================
);
      مشاهده / بستن متن نسخه قانون
      ========================================================= */


    $(document).on(
        'click',
        '.wd-version-toggle',
        function () {


/* =========================================================
            var button = $(this);
  مشاهده / بستن متن نسخه قانون
  ========================================================= */


$( document ).on(
            var card = button.closest(
    'click',
                '.wd-version-history-card'
    '.wd-version-toggle',
            );
    function () {


        var button = $( this );
            var text = card.find(
                '.wd-version-text'
            );


        var card = button.closest(
            var icon = button.find(
            '.wd-version-history-card'
                '.wd-version-toggle-icon'
        );
            );


        var text = card.find(
            var label = button.find(
            '.wd-version-text'
                '.wd-version-toggle-label'
        );
            );


        var icon = button.find(
            '.wd-version-toggle-icon'
        );


        var label = button.find(
            if (text.is(':visible')) {
            '.wd-version-toggle-label'
        );


        if ( text.is( ':visible' ) ) {
                text.stop(true, true)
                    .slideUp(180);


            text
                 icon.text('+');
                 .stop( true, true )
                .slideUp( 180 );


            icon.text( '+' );
                label.text('مشاهده متن');


             label.text(
             } else {
                'مشاهده متن'
            );


        } else {
                text.stop(true, true)
                    .slideDown(220);


            text
                 icon.text('−');
                 .stop( true, true )
                .slideDown( 220 );


            icon.text( '−' );
                label.text('بستن متن');


             label.text(
             }
                'بستن متن'
            );


         }
         }
    );


    }
})();
);

نسخهٔ ۱۴ سپتامبر ۲۰۲۶، ساعت ۱۳:۲۹

(function () {

    /* =========================================================
       سیستم تست‌های تعاملی ویکی‌داد
       ========================================================= */

    function initWikidadTests() {

        $('.wd-test').each(function () {

            var test = $(this);

            if (test.hasClass('wd-test-ready')) {
                return;
            }

            test.addClass('wd-test-ready');

            /*
             * فقط گزینه‌های همین تست
             */
            test.find('.wd-test-options li').css({
                'display': 'block',
                'padding': '11px 14px',
                'margin': '7px 0',
                'border': '1px solid #dce5ea',
                'border-radius': '8px',
                'background': '#fff',
                'cursor': 'pointer',
                'transition': 'all .15s ease',
                'line-height': '1.9'
            });

            /*
             * فقط نتیجه همین تست مخفی شود
             */
            test.find('.wd-test-result').css({
                'display': 'none'
            });

            test.find('.wd-test-answer').css({
                'display': 'none'
            });

        });

    }


    /*
     * آماده‌سازی تست‌ها
     */
    $(document).ready(function () {
        initWikidadTests();
    });


    /*
     * کلیک روی یک گزینه
     */
    $(document).on(
        'click',
        '.wd-test-options li',
        function (event) {

            event.preventDefault();

            var option = $(this);

            /*
             * فقط نزدیک‌ترین تست
             */
            var test = option.closest('.wd-test');

            /*
             * اگر تست پیدا نشد، کاری نکن
             */
            if (!test.length) {
                return;
            }

            /*
             * اگر همین تست قبلاً پاسخ داده شده
             */
            if (test.hasClass('wd-test-finished')) {
                return;
            }


            /*
             * متن گزینه انتخاب‌شده
             */
            var selectedText = $.trim(
                option.text()
            );


            /*
             * پاسخ صحیح فقط از همین تست
             */
            var correctAnswer = $.trim(
                test.attr('data-answer') || ''
            );


            /*
             * استخراج حرف گزینه انتخاب‌شده
             */
            var selectedMatch = selectedText.match(
                /^[\s\u200c\u200f]*([الفبجد])[\s\)\.:\-ـ]*/
            );

            var selectedLetter = selectedMatch
                ? selectedMatch[1]
                : selectedText.charAt(0);


            /*
             * استخراج حرف پاسخ صحیح
             */
            var answerMatch = correctAnswer.match(
                /^[\s\u200c\u200f]*([الفبجد])[\s\)\.:\-ـ]*/
            );

            var answerLetter = answerMatch
                ? answerMatch[1]
                : correctAnswer.charAt(0);


            selectedLetter = $.trim(selectedLetter);
            answerLetter = $.trim(answerLetter);


            /*
             * فقط گزینه‌های همین تست
             */
            var testOptions =
                test.find('.wd-test-options li');


            /*
             * پاک کردن وضعیت فقط در همین تست
             */
            testOptions.css({
                'background': '#fff',
                'border-color': '#dce5ea',
                'color': '',
                'font-weight': ''
            });


            /*
             * مشخص کردن گزینه انتخاب‌شده
             */
            option.css({
                'background': '#f3f7fa',
                'border-color': '#3978ad'
            });


            /*
             * بررسی پاسخ
             */
            var isCorrect =
                selectedLetter === answerLetter;


            /*
             * فقط نتیجه همین تست
             */
            var result =
                test.find('.wd-test-result');

            var resultMessage =
                test.find('.wd-test-result-message');


            /*
             * نمایش نتیجه همین تست
             */
            result.css({
                'display': 'block',
                'visibility': 'visible',
                'opacity': '1'
            });


            /*
             * پاسخ صحیح
             */
            if (isCorrect) {

                option.css({
                    'background': '#edf8f5',
                    'border-color': '#168477',
                    'color': '#11695f',
                    'font-weight': 'bold'
                });

                resultMessage
                    .text('✓ پاسخ شما صحیح است.')
                    .css({
                        'display': 'block',
                        'visibility': 'visible',
                        'opacity': '1',
                        'color': '#168477',
                        'font-weight': 'bold'
                    });

            }


            /*
             * پاسخ غلط
             */
            else {

                option.css({
                    'background': '#fff2f2',
                    'border-color': '#b44a4a',
                    'color': '#9b3838'
                });

                resultMessage
                    .text('✕ پاسخ شما نادرست است.')
                    .css({
                        'display': 'block',
                        'visibility': 'visible',
                        'opacity': '1',
                        'color': '#b44a4a',
                        'font-weight': 'bold'
                    });


                /*
                 * پیدا کردن پاسخ صحیح
                 * فقط داخل همین تست
                 */
                testOptions.each(function () {

                    var item = $(this);

                    var itemText =
                        $.trim(item.text());

                    var itemMatch =
                        itemText.match(
                            /^[\s\u200c\u200f]*([الفبجد])[\s\)\.:\-ـ]*/
                        );

                    var itemLetter = itemMatch
                        ? itemMatch[1]
                        : itemText.charAt(0);


                    if (
                        $.trim(itemLetter) ===
                        answerLetter
                    ) {

                        item.css({
                            'background': '#edf8f5',
                            'border-color': '#168477',
                            'color': '#11695f',
                            'font-weight': 'bold'
                        });

                    }

                });

            }


            /*
             * پاسخ و تحلیل فقط همین تست
             */
            test.find('.wd-test-answer').css({
                'display': 'block',
                'visibility': 'visible',
                'opacity': '1'
            });


            /*
             * قفل کردن فقط همین تست
             */
            test.addClass('wd-test-finished');

        }
    );


    /* =========================================================
       مشاهده / بستن متن نسخه قانون
       ========================================================= */

    $(document).on(
        'click',
        '.wd-version-toggle',
        function () {

            var button = $(this);

            var card = button.closest(
                '.wd-version-history-card'
            );

            var text = card.find(
                '.wd-version-text'
            );

            var icon = button.find(
                '.wd-version-toggle-icon'
            );

            var label = button.find(
                '.wd-version-toggle-label'
            );


            if (text.is(':visible')) {

                text.stop(true, true)
                    .slideUp(180);

                icon.text('+');

                label.text('مشاهده متن');

            } else {

                text.stop(true, true)
                    .slideDown(220);

                icon.text('−');

                label.text('بستن متن');

            }

        }
    );

})();