<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ar">
	<id>https://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-scribe.js</id>
	<title>ميدياويكي:Gadget-scribe.js - تاريخ المراجعة</title>
	<link rel="self" type="application/atom+xml" href="https://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-scribe.js"/>
	<link rel="alternate" type="text/html" href="https://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-scribe.js&amp;action=history"/>
	<updated>2026-04-10T02:22:35Z</updated>
	<subtitle>تاريخ التعديل لهذه الصفحة في الويكي</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>https://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-scribe.js&amp;diff=8812&amp;oldid=prev</id>
		<title>Gerges: مراجعة واحدة</title>
		<link rel="alternate" type="text/html" href="https://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-scribe.js&amp;diff=8812&amp;oldid=prev"/>
		<updated>2021-03-19T01:11:43Z</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;(function () {&lt;br /&gt;
    /* Translate the following to your wiki language: */&lt;br /&gt;
    if (!mw.messages.exists('ve-scribe-dialog-title')) {&lt;br /&gt;
        mw.messages.set({&lt;br /&gt;
        	've-scribe-add-reference-label': 'أورد المرجع',&lt;br /&gt;
        	've-scribe-add-reference-again-label': 'أورده ثانية',&lt;br /&gt;
            've-scribe-dialog-title': 'جلب الفقرات',&lt;br /&gt;
            've-scribe-editing-ideas-txt': 'المراجع المجلوبة',&lt;br /&gt;
            've-scribe-launch-prompt-msg': 'جلب الفقرات',&lt;br /&gt;
            've-scribe-launch-scribe-accept': 'أجل',&lt;br /&gt;
            've-scribe-launch-scribe-deny': 'لا',&lt;br /&gt;
            've-scribe-new-section-txt': 'قسم جديد',&lt;br /&gt;
            've-scribe-server-error': 'انقطع الاتصال بالخادم',&lt;br /&gt;
            've-scribe-search-score-label': 'نسبة المطابقة',&lt;br /&gt;
            've-scribe-suggested-sestion-txt': 'الأقسام المجلوبة',&lt;br /&gt;
            've-scribe-wikipedia-label': 'ويكيبيديا',&lt;br /&gt;
            've-scribe-wikipedia-domain-label': 'نطاق ويكيبيديا'&lt;br /&gt;
            &lt;br /&gt;
        });&lt;br /&gt;
    }&lt;br /&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 from version 0.0.1 as of 2019-11-04 from [[:en:MediaWiki:Gadget-scribe.js]]&lt;br /&gt;
    * Using this script allows you to edit articles in underrepresented wikipedias, see [[User:Eugene233/scribe]]&lt;br /&gt;
    */&lt;br /&gt;
&lt;br /&gt;
    /* global mw, ve */&lt;br /&gt;
    var chosenReferences = [],&lt;br /&gt;
        scribe = {},&lt;br /&gt;
        sectionUrlTemplateData = [],&lt;br /&gt;
        selectedSection = '',&lt;br /&gt;
        slideIndex = 0;&lt;br /&gt;
&lt;br /&gt;
    function createElement(type, id, className, displayText) {&lt;br /&gt;
        var element;&lt;br /&gt;
        switch (type) {&lt;br /&gt;
            case 'p':&lt;br /&gt;
                element = $('&amp;lt;p&amp;gt;');&lt;br /&gt;
                element['0'].id = id;&lt;br /&gt;
                element.addClass(className);&lt;br /&gt;
                element.append(displayText);&lt;br /&gt;
                break;&lt;br /&gt;
            case 'div':&lt;br /&gt;
                element = $('&amp;lt;div&amp;gt;');&lt;br /&gt;
                element['0'].id = id;&lt;br /&gt;
                element.addClass(className);&lt;br /&gt;
                break;&lt;br /&gt;
            case 'span':&lt;br /&gt;
                element = $('&amp;lt;span&amp;gt;');&lt;br /&gt;
                element['0'].id = id;&lt;br /&gt;
                element.addClass(className);&lt;br /&gt;
                element.append(displayText);&lt;br /&gt;
                break;&lt;br /&gt;
            case 'a':&lt;br /&gt;
                element = $('&amp;lt;a&amp;gt;');&lt;br /&gt;
                element['0'].id = id;&lt;br /&gt;
                element.addClass(className);&lt;br /&gt;
                element.append(displayText);&lt;br /&gt;
                break;&lt;br /&gt;
            case 'ul':&lt;br /&gt;
                element = $('&amp;lt;ul&amp;gt;');&lt;br /&gt;
                element['0'].id = id;&lt;br /&gt;
                element.addClass(className);&lt;br /&gt;
                element.append(displayText);&lt;br /&gt;
                break;&lt;br /&gt;
            case 'li':&lt;br /&gt;
                element = $('&amp;lt;ul&amp;gt;');&lt;br /&gt;
                element['0'].id = id;&lt;br /&gt;
                element.addClass(className);&lt;br /&gt;
                element.append(displayText);&lt;br /&gt;
                break;&lt;br /&gt;
            default:&lt;br /&gt;
                break;&lt;br /&gt;
        }&lt;br /&gt;
        return element;&lt;br /&gt;
    }&lt;br /&gt;
    function addChild(parent, child) {&lt;br /&gt;
        parent.append(child);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * Insert arbitrary content on VE surface&lt;br /&gt;
     *&lt;br /&gt;
     * @param {Object} surfaceModel the surface model&lt;br /&gt;
     * @param {Object} data the data to be written on surface&lt;br /&gt;
     */&lt;br /&gt;
&lt;br /&gt;
    function insertContent(surfaceModel, data) {&lt;br /&gt;
        // Insert data and place cursor afterwards&lt;br /&gt;
        surfaceModel.getFragment().collapseToEnd().insertContent(data).collapseToEnd().select();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function buildEmptyParagraph() {&lt;br /&gt;
        return [{ type: 'paragraph' }, { type: '/paragraph' }]&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * Add write section to VE surface.&lt;br /&gt;
     */&lt;br /&gt;
&lt;br /&gt;
    function writeSectionToSurface(sectionTextData) {&lt;br /&gt;
        var surfaceModel = ve.init.target.getSurface().getModel(),&lt;br /&gt;
            ReferenceSectionData = [];&lt;br /&gt;
        ReferenceSectionData.push({ type: 'mwHeading', attributes: { level: 2 } });&lt;br /&gt;
        sectionTextData.forEach(function (character) {&lt;br /&gt;
            ReferenceSectionData.push(character);&lt;br /&gt;
        });&lt;br /&gt;
        ReferenceSectionData.push({ type: '/mwHeading' });&lt;br /&gt;
        insertContent(surfaceModel, ReferenceSectionData);&lt;br /&gt;
&lt;br /&gt;
        // add a new paragraph to create space&lt;br /&gt;
        insertContent(surfaceModel, buildEmptyParagraph());&lt;br /&gt;
        selectedSection = sectionTextData;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * Swaps slides based on user operation&lt;br /&gt;
     * @param {Number} index - the index to display&lt;br /&gt;
     * @param {Object} slides - the slides in the reference section&lt;br /&gt;
     */&lt;br /&gt;
&lt;br /&gt;
    function showSlide(slideIndex, slides) {&lt;br /&gt;
        for (var i = 0; i &amp;lt; slides.length; i++) {&lt;br /&gt;
            if (i === slideIndex) {&lt;br /&gt;
                slides[i].style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
                $('.ve-scribe-ref-box').addClass('activeref');&lt;br /&gt;
            } else {&lt;br /&gt;
                slides[i].style.display = &amp;quot;none&amp;quot;;&lt;br /&gt;
                $('.ve-scribe-ref-box').removeClass('activeref');&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        if (slides[slideIndex].classList.contains('used-ref')) {&lt;br /&gt;
            $('#ve-scribe-choose-ref')['0'].innerHTML = mw.msg('ve-scribe-add-reference-again-label')&lt;br /&gt;
        } else {&lt;br /&gt;
            $('#ve-scribe-choose-ref')['0'].innerHTML = mw.msg('ve-scribe-add-reference-label');&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * Add click event listener to the next button&lt;br /&gt;
     * @param {String} nextClass - class to add event listener.&lt;br /&gt;
     */&lt;br /&gt;
&lt;br /&gt;
    function activeOnClickEventForNext(nextClass, slides) {&lt;br /&gt;
        $(nextClass).on('click', function () {&lt;br /&gt;
            if (slideIndex === slides.length - 1) {&lt;br /&gt;
                slideIndex = -1;&lt;br /&gt;
            }&lt;br /&gt;
            slideIndex++;&lt;br /&gt;
            showSlide(slideIndex, slides);&lt;br /&gt;
        });&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * Add click event listener to the previous button&lt;br /&gt;
     * @param {String} prevClass - class to add event listener.&lt;br /&gt;
     */&lt;br /&gt;
&lt;br /&gt;
    function activeOnClickEventForPrev(prevClass, slides) {&lt;br /&gt;
        $(prevClass).on('click', function () {&lt;br /&gt;
            if (slideIndex - 1 &amp;lt; 0) {&lt;br /&gt;
                slideIndex = slides.length;&lt;br /&gt;
            }&lt;br /&gt;
            slideIndex--;&lt;br /&gt;
            showSlide(slideIndex, slides);&lt;br /&gt;
        });&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * Loads all references into the slider&lt;br /&gt;
     * @param {Object} slides - the slides to be added to ref section.&lt;br /&gt;
     */&lt;br /&gt;
&lt;br /&gt;
    function loadAllReferenceSlides(slides) {&lt;br /&gt;
        var i;&lt;br /&gt;
        for (i = 0; i &amp;lt; slides.length; i++) {&lt;br /&gt;
            slides[i].style.display = &amp;quot;none&amp;quot;;&lt;br /&gt;
            $('.ve-scribe-ref-box').removeClass('activeref');&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function createReferenceSlider(surface) {&lt;br /&gt;
        var slider = createElement('div', 've-scribe-slider', 'slideshow-container', ''),&lt;br /&gt;
            previousArrow = createElement('a', '', 'prev', '&amp;amp;#10094;'),&lt;br /&gt;
            nextArrow = createElement('a', '', 'next', '&amp;amp;#10095;');&lt;br /&gt;
&lt;br /&gt;
        addChild(slider['0'], previousArrow['0']);&lt;br /&gt;
        addChild(slider['0'], nextArrow['0']);&lt;br /&gt;
        surface.append(slider['0']);&lt;br /&gt;
        $('#editing-ideas-tip').hide();&lt;br /&gt;
        $('#ve-scribe-slider').hide();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * Insert reference to VE surface&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param {Object} surfaceModel the surface model&lt;br /&gt;
	 * @param {Object} data the data to be written&lt;br /&gt;
	 */&lt;br /&gt;
&lt;br /&gt;
    function insertReference(surfaceModel, data) {&lt;br /&gt;
        var origFragment = surfaceModel.getFragment();&lt;br /&gt;
        var referenceModel = new ve.dm.MWReferenceModel(surfaceModel.getDocument());&lt;br /&gt;
&lt;br /&gt;
        // Prepare and insert an empty reference&lt;br /&gt;
        referenceModel.insertInternalItem(surfaceModel);&lt;br /&gt;
        referenceModel.insertReferenceNode(origFragment.collapseToEnd());&lt;br /&gt;
&lt;br /&gt;
        // Find the contents of the reference inside the internal list&lt;br /&gt;
        var refContentsFragment = surfaceModel.getFragment(&lt;br /&gt;
            // Note: this assumes that the new reference contains an empty paragraph,&lt;br /&gt;
            // which should always be true&lt;br /&gt;
            new ve.dm.LinearSelection(referenceModel.findInternalItem(surfaceModel).getChildren()[0].getRange())&lt;br /&gt;
        );&lt;br /&gt;
&lt;br /&gt;
        // Insert new content&lt;br /&gt;
        refContentsFragment.insertContent(data);&lt;br /&gt;
&lt;br /&gt;
        // Place cursor after the inserted reference node&lt;br /&gt;
        origFragment.collapseToEnd().select();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * TODO: We have to use the URL to get the template data here like&lt;br /&gt;
     *       first, last publisher etc&lt;br /&gt;
     * @param {Object} sectionUrlTemplateData - the data from server of urls&lt;br /&gt;
     * @param {String} entryUrl - the particular chosen url&lt;br /&gt;
     * @return {Object} template - reference template for VE surface &lt;br /&gt;
     */&lt;br /&gt;
&lt;br /&gt;
    function builRefTemplate(SelectUrlData, selectUrl) {&lt;br /&gt;
        // Server object of the form [publication_date, publication_title,publisher_name, retrieved_date]&lt;br /&gt;
        var first = SelectUrlData[2] != 'undefined' ? SelectUrlData[2] : '',&lt;br /&gt;
            last = SelectUrlData[2] != 'undefined' ? SelectUrlData[2] : '',&lt;br /&gt;
            title = SelectUrlData[1] != 'undefined' ? SelectUrlData[1] : '',&lt;br /&gt;
            date = SelectUrlData[3] != 'undefined' ? SelectUrlData[3] : '',&lt;br /&gt;
            template = [&lt;br /&gt;
                {&lt;br /&gt;
                    type: 'mwTransclusionInline',&lt;br /&gt;
                    attributes: {&lt;br /&gt;
                        mw: {&lt;br /&gt;
                            parts: [&lt;br /&gt;
                                {&lt;br /&gt;
                                    template: {&lt;br /&gt;
                                        target: {&lt;br /&gt;
                                            href: './Template:Cite_web',&lt;br /&gt;
                                            wt: 'Cite web'&lt;br /&gt;
                                        },&lt;br /&gt;
                                        params: {&lt;br /&gt;
                                            first: { wt: first },&lt;br /&gt;
                                            last: { wt: last },&lt;br /&gt;
                                            title: { wt: title },&lt;br /&gt;
                                            date: { wt: date },&lt;br /&gt;
                                            url: { wt: selectUrl }&lt;br /&gt;
                                        }&lt;br /&gt;
                                    }&lt;br /&gt;
                                }&lt;br /&gt;
                            ]&lt;br /&gt;
                        }&lt;br /&gt;
                    }&lt;br /&gt;
                },&lt;br /&gt;
                { type: '/mwTransclusionInline' }&lt;br /&gt;
            ];&lt;br /&gt;
        return template;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * Sends post request to scribe server with stats data&lt;br /&gt;
	 **/&lt;br /&gt;
&lt;br /&gt;
    function sendStatsData(statsData) {&lt;br /&gt;
        $.post({&lt;br /&gt;
            url: 'https://tools.wmflabs.org/scribe/api/v1/stats',&lt;br /&gt;
            data: JSON.stringify(statsData),&lt;br /&gt;
            contentType: 'application/json'&lt;br /&gt;
        }).done(function (response) {&lt;br /&gt;
        }).fail(function (error) {&lt;br /&gt;
            console.log(&amp;quot;Error encountered: sendStatsData&amp;quot;, error)&lt;br /&gt;
        })&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function activateAddReferenceOnclickListerner(referenceAddButton, refDataNode, slides) {&lt;br /&gt;
        referenceAddButton.on('click', function () {&lt;br /&gt;
            var selectRefData = [], selectedUrl, statsData = {},&lt;br /&gt;
                surfaceModel = ve.init.target.getSurface().getModel();&lt;br /&gt;
&lt;br /&gt;
            $('.ve-scribe-reference-slider-slides')['0'].childNodes.forEach(function (node) {&lt;br /&gt;
                if (node.style.display === 'block') {&lt;br /&gt;
                    selectedUrl = node.firstChild.childNodes['2'].innerHTML&lt;br /&gt;
                    selectRefData = node.firstChild.childNodes['4'].innerHTML.split('_')&lt;br /&gt;
                }&lt;br /&gt;
            });&lt;br /&gt;
&lt;br /&gt;
            // we build template for select link to cite on VE Surface&lt;br /&gt;
            templateData = builRefTemplate(selectRefData, selectedUrl);&lt;br /&gt;
            insertReference(surfaceModel, templateData);&lt;br /&gt;
            slides = $('.ve-scribe-reference-slider-slides')['0'].childNodes;&lt;br /&gt;
            slides.forEach(function (slide) {&lt;br /&gt;
                if (slide.style.display === 'block') {&lt;br /&gt;
                    slide.className = slide.className + ' used-ref';&lt;br /&gt;
                    $('#ve-scribe-choose-ref')['0'].innerHTML = mw.msg('ve-scribe-add-reference-again-label');&lt;br /&gt;
                }&lt;br /&gt;
            });&lt;br /&gt;
&lt;br /&gt;
            // send stats (references_used and section under edit) to the server side&lt;br /&gt;
            statsData.article = mw.config.get('wgTitle');&lt;br /&gt;
            statsData.ref = selectedUrl;&lt;br /&gt;
            statsData.selectedSection = selectedSection.join(&amp;quot;&amp;quot;);&lt;br /&gt;
            sendStatsData(statsData)&lt;br /&gt;
        });&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function activateCloseSliderOnclickListener(cancelSlider) {&lt;br /&gt;
        cancelSlider.on('click', function () {&lt;br /&gt;
            $('#ve-scribe-slider').hide();&lt;br /&gt;
        });&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function buildSlideContent(sectionName) {&lt;br /&gt;
        // sectionName not used at the moment &lt;br /&gt;
        // sectionName = $('#editing-ideas-tip')['0'].childNodes['1'].id;&lt;br /&gt;
&lt;br /&gt;
        var slideContent = createElement('div', '', 've-scribe-reference-slider-slides', '', ''),&lt;br /&gt;
            cancelSlider = createElement('a', 've-scribe-cancel-ref-suggest', 'oo-ui-iconElement-icon oo-ui-icon-close', ''),&lt;br /&gt;
            addRefLinnk = createElement('a', 've-scribe-choose-ref', '', 'ADD');&lt;br /&gt;
&lt;br /&gt;
        // remove previous slider if there was&lt;br /&gt;
        if ($('#ve-scribe-slider')) {&lt;br /&gt;
            $('#ve-scribe-slider').remove();&lt;br /&gt;
            createReferenceSlider($('.ve-ce-documentNode')['0']);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        $.get('https://tools.wmflabs.org/scribe/api/v1/references?section=' +&lt;br /&gt;
            sectionName + '&amp;amp;article=' + mw.config.get('wgTitle'))&lt;br /&gt;
            .then(function (response) {&lt;br /&gt;
                var resource = response.resources,&lt;br /&gt;
                    article_name = response.article_name;&lt;br /&gt;
&lt;br /&gt;
                resource.forEach(function (item) {&lt;br /&gt;
                    // append the data to the slider display items&lt;br /&gt;
                    var sliderText = createElement('div', '', 've-scribe-slider-text', ''),&lt;br /&gt;
                        refBox = createElement('div', '', 've-scribe-ref-box', ''),&lt;br /&gt;
                        refTitle = createElement('span', '', 've-scribe-ref-title', item.publication_title),&lt;br /&gt;
                        refText = createElement('span', '', 've-scribe-ref-text', item.content),&lt;br /&gt;
                        refUrl = createElement('a', '', 've-scribe-ref-link', item.url),&lt;br /&gt;
                        refData = createElement('p', '', 've-scribe-ref-data', ''),&lt;br /&gt;
                        refDomainData = createElement('span', '', 've-scribe-ref-domain-data', '');&lt;br /&gt;
&lt;br /&gt;
                    addChild(slideContent['0'], sliderText['0']);&lt;br /&gt;
                    addChild(sliderText['0'], refBox['0']);&lt;br /&gt;
                    addChild(refBox['0'], refTitle['0']);&lt;br /&gt;
                    addChild(refBox['0'], refText['0']);&lt;br /&gt;
                    addChild(refBox['0'], refUrl['0']);&lt;br /&gt;
                    addChild(refBox['0'], refDomainData['0']);&lt;br /&gt;
                    addChild(refBox['0'], refData['0']);&lt;br /&gt;
&lt;br /&gt;
                    $('#ve-scribe-slider')['0'].append(slideContent['0']);&lt;br /&gt;
                    sliderText.hide();&lt;br /&gt;
&lt;br /&gt;
                    // fill the ref-data node with the data from server for reference &lt;br /&gt;
                    $.get('https://tools.wmflabs.org/scribe/api/v1/domain?link=' + item.url)&lt;br /&gt;
                        .done(&lt;br /&gt;
                            function (data) {&lt;br /&gt;
                                var wp = mw.msg('ve-scribe-wikipedia-label') + ': ' + data.wikipedia_score,&lt;br /&gt;
                                    wp_domain = mw.msg('ve-scribe-wikipedia-domain-label') + ': ' + data.wikipedia_score,&lt;br /&gt;
                                    black_list = mw.msg('ve-scribe-search-score-label') + ': ' + data.search_result_score;&lt;br /&gt;
&lt;br /&gt;
                                refDomainData['0'].innerText = wp + ' | ' + wp_domain + ' | ' + black_list;&lt;br /&gt;
                            });&lt;br /&gt;
&lt;br /&gt;
                    // get the domain information for the particular reference url&lt;br /&gt;
                    $.get('https://tools.wmflabs.org/scribe/api/v1/references/resources?url=' + item.url)&lt;br /&gt;
                        .done(&lt;br /&gt;
                            function (data) {&lt;br /&gt;
                                refData['0'].innerHTML =&lt;br /&gt;
                                    data.publication_date + '_' +&lt;br /&gt;
                                    data.publication_title + '_' +&lt;br /&gt;
                                    data.publisher_name + '_' +&lt;br /&gt;
                                    data.retrieved_date;&lt;br /&gt;
                            }&lt;br /&gt;
                        );&lt;br /&gt;
                    refData.hide();&lt;br /&gt;
                });&lt;br /&gt;
                addChild($('#ve-scribe-slider')['0'], addRefLinnk['0']);&lt;br /&gt;
                addChild($('#ve-scribe-slider')['0'], cancelSlider['0']);&lt;br /&gt;
&lt;br /&gt;
                var slides = $('#ve-scribe-slider')['0'].childNodes['2'].childNodes;&lt;br /&gt;
                loadAllReferenceSlides(slides);&lt;br /&gt;
&lt;br /&gt;
                // display the first reference data in the slides&lt;br /&gt;
                slides['0'].style.display = 'block';&lt;br /&gt;
&lt;br /&gt;
                //activate onClick listener for prev and net&lt;br /&gt;
                activeOnClickEventForNext('.next', slides);&lt;br /&gt;
                activeOnClickEventForPrev('.prev', slides);&lt;br /&gt;
                slideIndex = 0;&lt;br /&gt;
&lt;br /&gt;
                // activate ADD on click Listener&lt;br /&gt;
                activateAddReferenceOnclickListerner($('#ve-scribe-choose-ref'), slides);&lt;br /&gt;
                activateCloseSliderOnclickListener($('#ve-scribe-cancel-ref-suggest'));&lt;br /&gt;
            },&lt;br /&gt;
                // error routine&lt;br /&gt;
                function (error) {&lt;br /&gt;
                    // hide the slider since there is no ref data&lt;br /&gt;
                    $('#ve-scribe-slider').hide()&lt;br /&gt;
                    OO.ui.alert(mw.msg('ve-scribe-server-error')).done(function () {&lt;br /&gt;
                    });&lt;br /&gt;
                });&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function addEditTipOnclickListener(sectionIdeasTip, surface) {&lt;br /&gt;
        sectionIdeasTip.on('click', function () {&lt;br /&gt;
            //hide the new section tip tag&lt;br /&gt;
            $('#editing-ideas-tip').hide();&lt;br /&gt;
&lt;br /&gt;
            // populate the reference slider with data from server&lt;br /&gt;
            buildSlideContent($('#editing-ideas-tip')['0'])&lt;br /&gt;
            // $( '#ve-scribe-slider' )[ '0' ].prepend( buildSlideContent( sectionName )[ '0' ] );&lt;br /&gt;
            $('#ve-scribe-slider').show();&lt;br /&gt;
            $('#ve-scribe-show-header-icon').hide()&lt;br /&gt;
        });&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function ShowEditIdeaTip(surface) {&lt;br /&gt;
        var tipSpan = createElement('span', 'editing-ideas-tip', '', ''),&lt;br /&gt;
            tipIcon = createElement('span', '', '', ''),&lt;br /&gt;
            tipText = createElement('a', '', 've-scribe-sm-suggest-text', mw.msg('ve-scribe-editing-ideas-txt'));&lt;br /&gt;
        addChild(tipSpan['0'], tipIcon['0']);&lt;br /&gt;
        addChild(tipSpan['0'], tipText['0']);&lt;br /&gt;
        surface.append(tipSpan['0']);&lt;br /&gt;
&lt;br /&gt;
        addEditTipOnclickListener($('#editing-ideas-tip'), surface);&lt;br /&gt;
        $('#ve-scribe-new-section-tip').hide();&lt;br /&gt;
        createReferenceSlider(surface);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function addSectionItemOnclickListener(sectionContainer, surface) {&lt;br /&gt;
        var sectionContainerElements = sectionContainer['0'].childNodes;&lt;br /&gt;
        if (sectionContainerElements.length != 0) {&lt;br /&gt;
            sectionContainerElements.forEach(function (section) {&lt;br /&gt;
                var seectionId = section.firstChild.id;&lt;br /&gt;
                $('#' + seectionId).on('click', function () {&lt;br /&gt;
&lt;br /&gt;
                    // indicate that the section has been clicked -- change color&lt;br /&gt;
                    $('#' + seectionId).addClass('active-seection');&lt;br /&gt;
                    // we have to write the section title into the ve surface here&lt;br /&gt;
                    var sectionTextData = $('#' + seectionId)['0'].firstChild.data.split('');&lt;br /&gt;
                    writeSectionToSurface(sectionTextData);&lt;br /&gt;
&lt;br /&gt;
                    $('#editing-ideas-tip').show();&lt;br /&gt;
                    // hide reference panel&lt;br /&gt;
                    $('#ve-scribe-slider').hide();&lt;br /&gt;
                    $('#editing-ideas-tip')['0'].childNodes['1'].id = $('#' + seectionId)['0'].firstChild.data;&lt;br /&gt;
                });&lt;br /&gt;
            });&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function addShowScribeHeaderMenuOnclickListener(expandScribeHeaderMenu) {&lt;br /&gt;
        expandScribeHeaderMenu.on('click', function () {&lt;br /&gt;
            $('#ve-scribe-show-header-icon').hide()&lt;br /&gt;
            $('#ve-scribe-sm-header').slideDown();&lt;br /&gt;
        });&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function addHideScribeHeaderMenuOnclickListener(collapseScribeHeaderIcon, mobileHeader) {&lt;br /&gt;
        collapseScribeHeaderIcon.on('click', function () {&lt;br /&gt;
            $('#ve-scribe-sm-header').slideUp();&lt;br /&gt;
            $('#ve-scribe-show-header-icon').show()&lt;br /&gt;
        });&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function buildScribeHeader(mobileHeader, surface) {&lt;br /&gt;
        var header = createElement('div', 've-scribe-sm-header', 'header', ''),&lt;br /&gt;
            tagContainer = createElement('span', 've-scribe-sm-idea-label', '', ''),&lt;br /&gt;
            sectionHeaderIcon = createElement('span', 've-scribe-header-tip-icon', 'oo-ui-iconElement-icon oo-ui-icon-bell', ''),&lt;br /&gt;
            collapseScribeHeaderIcon = createElement('span', 've-scribe-hide-header-icon',&lt;br /&gt;
                'oo-ui-indicatorElement-indicator oo-ui-indicator-up', ''),&lt;br /&gt;
            expandScribeHeaderIcon = createElement('span', 've-scribe-show-header-icon',&lt;br /&gt;
                'oo-ui-indicatorElement-indicator oo-ui-indicator-down', '&amp;lt;p&amp;gt;Scribe&amp;lt;/p&amp;gt;'),&lt;br /&gt;
            sectionHeaderText = createElement('span', '', 've-scribe-sm-suggest-text',&lt;br /&gt;
                mw.msg('ve-scribe-suggested-sestion-txt')),&lt;br /&gt;
            sectionTagList = createElement('ul', 've-scribe-section-container', 'tags-container', '');&lt;br /&gt;
&lt;br /&gt;
        // Each section should appear as a tagListItem&lt;br /&gt;
        $.get('https://tools.wmflabs.org/scribe/api/v1/sections?article=' + mw.config.get('wgTitle'))&lt;br /&gt;
            .then(function (data) {&lt;br /&gt;
                var articleSections = data.parse.sections;&lt;br /&gt;
&lt;br /&gt;
                // hide loader: when data is fetched&lt;br /&gt;
                $('#scribe-pg-bar').hide()&lt;br /&gt;
&lt;br /&gt;
                articleSections.forEach(function (section) {&lt;br /&gt;
                    var sectionTagListItem = createElement('li',&lt;br /&gt;
                        '', 'tags',&lt;br /&gt;
                        '&amp;lt;a class=&amp;quot;tag&amp;quot; id=&amp;quot;section-' + section.number + '&amp;quot;&amp;gt;' +&lt;br /&gt;
                        section.line + '&amp;lt;/a&amp;gt;');&lt;br /&gt;
&lt;br /&gt;
                    // add the sections in to the container&lt;br /&gt;
                    addChild(sectionTagList['0'], sectionTagListItem['0']);&lt;br /&gt;
                });&lt;br /&gt;
&lt;br /&gt;
                // If the request does not complete we don't add anything to interface&lt;br /&gt;
                addChild(tagContainer['0'], sectionHeaderIcon['0']);&lt;br /&gt;
                addChild(tagContainer['0'], sectionHeaderText['0']);&lt;br /&gt;
                addChild(tagContainer['0'], collapseScribeHeaderIcon['0']);&lt;br /&gt;
                addChild(header['0'], tagContainer['0']);&lt;br /&gt;
                addChild(header['0'], sectionTagList['0']);&lt;br /&gt;
&lt;br /&gt;
                mobileHeader.append(expandScribeHeaderIcon['0']);&lt;br /&gt;
                mobileHeader.append(header['0']);&lt;br /&gt;
&lt;br /&gt;
                // set every section's onclick listener using the container&lt;br /&gt;
                addSectionItemOnclickListener(sectionTagList, surface);&lt;br /&gt;
                addHideScribeHeaderMenuOnclickListener(collapseScribeHeaderIcon, mobileHeader);&lt;br /&gt;
                addShowScribeHeaderMenuOnclickListener(expandScribeHeaderIcon, mobileHeader);&lt;br /&gt;
                expandScribeHeaderIcon.hide();&lt;br /&gt;
            },&lt;br /&gt;
&lt;br /&gt;
                // error routine&lt;br /&gt;
                // give feedback to user&lt;br /&gt;
                function (error) {&lt;br /&gt;
                    // hide the loader: Nothing happened&lt;br /&gt;
                    $('#scribe-pg-bar').hide()&lt;br /&gt;
                    // display error message to client&lt;br /&gt;
                    OO.ui.alert(mw.msg('ve-scribe-server-error')).done(function () {&lt;br /&gt;
                    });&lt;br /&gt;
                });&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function buildScribeLoader() {&lt;br /&gt;
        return new OO.ui.ProgressBarWidget({&lt;br /&gt;
            progress: false,&lt;br /&gt;
            id: 'scribe-pg-bar'&lt;br /&gt;
        })&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function addNewSectionTipOnclickListener(sectionIdeasTip, surface, mobileHeader) {&lt;br /&gt;
        sectionIdeasTip.on('click', function () {&lt;br /&gt;
            //hide the new section tip tag&lt;br /&gt;
            sectionIdeasTip.hide();&lt;br /&gt;
&lt;br /&gt;
            //display header with sections&lt;br /&gt;
            buildScribeHeader(mobileHeader, surface);&lt;br /&gt;
&lt;br /&gt;
            $('#scribe-pg-bar').show()&lt;br /&gt;
&lt;br /&gt;
            // display the edit tips tag&lt;br /&gt;
            ShowEditIdeaTip(surface);&lt;br /&gt;
&lt;br /&gt;
            //hide the edit tip tag&lt;br /&gt;
            $('#editing-ideas-tip').hide();&lt;br /&gt;
        });&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function showNewSectionTip(surface) {&lt;br /&gt;
        var tipSpan = createElement('span', 've-scribe-new-section-tip', 'editing-tip', ''),&lt;br /&gt;
            tipText = createElement('a', 'editing-idea-link', 've-scribe-sm-suggest-text',&lt;br /&gt;
                mw.msg('ve-scribe-new-section-txt'));&lt;br /&gt;
        addChild(tipSpan['0'], tipText['0']);&lt;br /&gt;
&lt;br /&gt;
        var scribeLoader = buildScribeLoader();&lt;br /&gt;
        surface.prepend(scribeLoader.$element)&lt;br /&gt;
&lt;br /&gt;
        surface['0'].append(tipSpan['0']);&lt;br /&gt;
        addNewSectionTipOnclickListener($('#ve-scribe-new-section-tip'), surface['0'], mobileHeader);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    mw.hook('ve.activationComplete').add(function () {&lt;br /&gt;
        // we check if article exists in scribe before we launch&lt;br /&gt;
        $.get('https://tools.wmflabs.org/scribe/api/v1/sections?article=' + mw.config.get('wgTitle')).done(&lt;br /&gt;
            function (data) {&lt;br /&gt;
                console.log('data', data)&lt;br /&gt;
                if (!data) {&lt;br /&gt;
                    console.log('Article data does not exist on scribe')&lt;br /&gt;
                } else {&lt;br /&gt;
                    OO.ui.confirm(mw.msg('ve-scribe-launch-prompt-msg'),&lt;br /&gt;
                        {&lt;br /&gt;
                            actions: [&lt;br /&gt;
                                {&lt;br /&gt;
                                    action: 'accept',&lt;br /&gt;
                                    label: mw.msg('ve-scribe-launch-scribe-accept'),&lt;br /&gt;
                                    flags: ['primary', 'progressive']&lt;br /&gt;
                                },&lt;br /&gt;
                                { action: 'reject', label: mw.msg('ve-scribe-launch-scribe-deny') }&lt;br /&gt;
                            ]&lt;br /&gt;
                        }&lt;br /&gt;
                    ).done(function (confirmed) {&lt;br /&gt;
                        if (confirmed) {&lt;br /&gt;
                            var surface = $('.ve-init-mw-desktopArticleTarget-originalContent');&lt;br /&gt;
                            mobileHeader = $('.oo-ui-toolbar-bar')['0'];&lt;br /&gt;
                            showNewSectionTip(surface, mobileHeader);&lt;br /&gt;
                            // hide the loader inititally&lt;br /&gt;
                            $('#scribe-pg-bar').hide()&lt;br /&gt;
                        }&lt;br /&gt;
                    });&lt;br /&gt;
                }&lt;br /&gt;
            });&lt;br /&gt;
    });&lt;br /&gt;
}());&lt;/div&gt;</summary>
		<author><name>Gerges</name></author>
	</entry>
</feed>