| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474 | // use this to isolate the scope(function () {    // No notes shown specified by generation config    if (!$axure.document.configuration.showPageNotes && !$axure.document.configuration.showAnnotationsSidebar && !$axure.document.configuration.showAnnotations) { return; }    $(window.document).ready(function () {        // Load right panel for Page Notes        if ($axure.document.configuration.showPageNotes || $axure.document.configuration.showAnnotationsSidebar) {            $axure.player.createPluginHost({                id: 'pageNotesHost',                context: 'inspect',                title: 'Documentation',                gid: 2,            });        }        // Load footnotes on widgets        if ($axure.document.configuration.showAnnotations) {            $('#overflowMenuContainer').prepend('<div id="showNotesOption" class="showOption" style="order: 3"><div class="overflowOptionCheckbox"></div>Show Note Markers</div>');        }        createNotesOverlay();        generatePageNotes();        if ($axure.player.isMobileMode()) {            $('#showNotesOption').hide();        } else {            $('#showNotesOption').click(footnotes_click);            $('#showNotesOption').find('.overflowOptionCheckbox').addClass('selected');        }        function populateNotes(pageForNotes) {            var hasNotes = false;            if ($axure.document.configuration.showPageNotes) {                var pageNoteUi = '';                function populatePageNotes(pageOrMaster) {                    //populate the page notes                    var notes = pageOrMaster.notes;                    if (notes && !$.isEmptyObject(notes)) {                        pageNoteUi += "<div class='notesPageNameHeader'>" + pageOrMaster.pageName + "</div>";                        var showNames = $axure.document.configuration.showPageNoteNames;                        for(var noteName in notes) {                            pageNoteUi += "<div class='pageNoteContainer'>";                            if(showNames) {                                pageNoteUi += "<div class='pageNoteName'>" + noteName + "</div>";                            }                            pageNoteUi += "<div class='pageNote'>" + linkify(notes[noteName]) + "</div>";                            pageNoteUi += "</div>";                            //$('#pageNotesContent').append(pageNoteUi);                            hasNotes = true;                        }                    }                }                populatePageNotes(pageForNotes);                if (pageForNotes.masterNotes) {                    for (var i = 0; i < pageForNotes.masterNotes.length; i++) {                        populatePageNotes(pageForNotes.masterNotes[i]);                    }                }                if (pageNoteUi.length > 0) {                    pageNoteUi += "<div class='lineDivider'></div>";                    var pageNotesHeader = "<div id='pageNotesSectionHeader' class='notesSectionHeader pluginNameHeader'>Page Notes</div>";                    $('#pageNotesContent').append(pageNotesHeader + pageNoteUi);                }            }            if ($axure.document.configuration.showAnnotationsSidebar) {                var widgetNoteUi = '';                //var widgetNotes = pageForNotes.widgetNotes;                function populateWidgetNotes(widgetNotes){                    if (widgetNotes) {                        for (var i = 0; i < widgetNotes.length; i++) {                            var widgetNote = widgetNotes[i];                            widgetNoteUi += "<div class='widgetNoteContainer' data-id='" + widgetNote["ownerId"] + "'>";                            widgetNoteUi += "<div class='widgetNoteFootnote'>" + widgetNote["fn"] + "</div>";                            widgetNoteUi += "<div class='widgetNoteLabel'>" + widgetNote["label"] + "</div>";                            for (var widgetNoteName in widgetNote) {                                if (widgetNoteName != "label" && widgetNoteName != "fn" && widgetNoteName != "ownerId") {                                    widgetNoteUi += "<div class='pageNoteName'>" + widgetNoteName + "</div>";                                    widgetNoteUi += "<div class='pageNote'>" + linkify(widgetNote[widgetNoteName]) + "</div>";                                    //widgetNoteUi += "<div class='nondottedDivider'></div>";                                }                            }                            widgetNoteUi += "</div>";                            //widgetNoteUi += "<div class='nondottedDivider'></div>";                            //$('#pageNotesContent').append(widgetNoteUi);                            hasNotes = true;                        }                    }                }                populateWidgetNotes(pageForNotes.widgetNotes);                if (pageForNotes.masterNotes) {                    for (var i = 0; i < pageForNotes.masterNotes.length; i++) {                        populateWidgetNotes(pageForNotes.masterNotes[i].widgetNotes);                    }                }                if (widgetNoteUi.length > 0) {                    var widgetNotesHeader = "<div id='widgetNotesSectionHeader' class='notesSectionHeader pluginNameHeader'>Widget Notes</div>";                    $('#pageNotesContent').append(widgetNotesHeader + widgetNoteUi);                    //$('.widgetNoteContainer').children(':last-child').remove();                    //$('.widgetNoteFootnote').append("<div class='annnoteline'></div><div class='annnoteline'></div><div class='annnoteline'></div>");                    $('.widgetNoteContainer').click(function () {                        var wasSelected = $(this).hasClass('widgetNoteContainerSelected');                        $('.widgetNoteContainerSelected').removeClass('widgetNoteContainerSelected');                        if (!wasSelected) $(this).addClass('widgetNoteContainerSelected');                        var dimStr = $('.currentAdaptiveView').attr('data-dim');                        var h = dimStr ? dimStr.split('x')[1] : '0';                        var $leftPanel = $('.leftPanel:visible');                        var leftPanelOffset = (!$axure.player.isMobileMode() && $leftPanel.length > 0) ? $leftPanel.width() : 0;                        var $rightPanel = $('.rightPanel:visible');                        var rightPanelOffset = (!$axure.player.isMobileMode() && $rightPanel.length > 0) ? $rightPanel.width() : 0;                        var viewDimensions = {                            h: h != '0' ? h : '',                            scaleVal: $('.vpScaleOption').find('.selectedRadioButton').parent().attr('val'),                            height: $('.rightPanel').height(),                            panelWidthOffset: leftPanelOffset + rightPanelOffset                        };                        $axure.messageCenter.postMessage('toggleSelectWidgetNote', { id: this.getAttribute('data-id'), value: !wasSelected, view: viewDimensions});                    });                }                                //if (pageForNotes.masterNotes) {                //    for (var i = 0; i < pageForNotes.masterNotes.length; i++) {                //        var master = pageForNotes.masterNotes[i];                //        hasNotes = populateNotes(master) || hasNotes;                //    }                //}            }                        return hasNotes;        }        // bind to the page load        $axure.page.bind('load.page_notes', function () {            closeAllDialogs();            var hasNotes = false;            $('#pageNotesContent').html("");            hasNotes = populateNotes($axure.page);                        if(hasNotes) $('#pageNotesEmptyState').hide();            else $('#pageNotesEmptyState').show();            //If footnotes enabled for this prototype...            if ($axure.player.isMobileMode()) {                $axure.messageCenter.postMessage('annotationToggle', false);            } else if($axure.document.configuration.showAnnotations == true) {                //If the fn var is defined and set to 0, hide footnotes                //else if hide-footnotes button selected, hide them                var fnVal = $axure.player.getHashStringVar(FOOTNOTES_VAR_NAME);                if(fnVal.length > 0 && fnVal == 0) {                    $('#showNotesOption').find('.overflowOptionCheckbox').removeClass('selected');                    $axure.messageCenter.postMessage('annotationToggle', false);                } else if(!$('#showNotesOption').find('.overflowOptionCheckbox').hasClass('selected')) {                    //If the footnotes button isn't selected, hide them on this loaded page                    $axure.messageCenter.postMessage('annotationToggle', false);                }            }            // Get multiple click call if not removing beforehand            $('#notesOverlay').off('click');            $('#notesOverlay').on('click', '.closeNotesDialog', function () {                var ownerId = $(this).attr("data-ownerid");                _toggleAnnDialog(ownerId);            });                        $axure.player.updatePlugins();            return false;        });        $axure.messageCenter.addMessageListener(function (message, data) {            //var messageData = { id: elementId, x: event.pageX, y: event.pageY }            if (message == 'toggleAnnDialog') {                _toggleAnnDialog(data.id, data.x, data.y, data.page);            }        });    });    function linkify(text) {        var urlRegex = /(\b(((https?|ftp|file):\/\/)|(www\.))[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;        return text.replace(urlRegex, function (url, b, c) {            var url2 = (c == 'www.') ? 'http://' + url : url;            return '<a href="' + url2 + '" target="_blank" class="noteLink">' + url + '</a>';        });    }    function getWidgetNotesHtml(ownerId, page) {        var pageForNotes = page || $axure.page;        var widgetNoteUi = '';        widgetNoteUi += "<div data-ownerid='" + ownerId + "' class='closeNotesDialog'></div>";        widgetNoteUi += "<div class='notesDialogScroll'>";        function getNotesForPage(widgetNotes) {            for (var i = 0; i < widgetNotes.length; i++) {                var widgetNote = widgetNotes[i];                if (widgetNote["ownerId"] == ownerId) {                    widgetNoteUi += "<div class='widgetNoteContainer' data-id='" + widgetNote["ownerId"] + "'>";                    widgetNoteUi += "<div class='widgetNoteFootnote'>" + widgetNote["fn"] + "</div>";                    widgetNoteUi += "<div class='widgetNoteLabel'>" + widgetNote["label"] + "</div>";                    for (var widgetNoteName in widgetNote) {                        if (widgetNoteName != "label" && widgetNoteName != "fn" && widgetNoteName != "ownerId") {                            widgetNoteUi += "<div class='pageNoteName'>" + widgetNoteName + "</div>";                            widgetNoteUi += "<div class='pageNote'>" + linkify(widgetNote[widgetNoteName]) + "</div>";                        }                    }                    widgetNoteUi += "</div>";                }            }        }        getNotesForPage(pageForNotes.widgetNotes);        if (pageForNotes.masterNotes) {            for (var i = 0; i < pageForNotes.masterNotes.length; i++) {                getNotesForPage(pageForNotes.masterNotes[i].widgetNotes);            }        }        widgetNoteUi += "</div>";        widgetNoteUi += "<div class='resizeNotesDialog'></div>";        return widgetNoteUi;    }    var maxZIndex = 1;    var dialogs = {};    var _toggleAnnDialog = function (id, srcLeft, srcTop, page) {        if(dialogs[id]) {            var $dialog = dialogs[id];            // reset the dialog            dialogs[id] = undefined;            $dialog.find('.notesDialogScroll').getNiceScroll().remove();            $dialog.remove();            return;        }                var bufferH = 10;        var bufferV = 10;        var blnLeft = false;        var blnAbove = false;        var mfPos = $('#mainPanelContainer').position();        var viewablePanelLeftMargin = parseInt($('#mainPanelContainer').css('margin-left'));        var sourceTop = srcTop + mfPos.top;        var sourceLeft = srcLeft + viewablePanelLeftMargin;        var width = 300;        var height = 300;        if(sourceLeft > width + bufferH) {            blnLeft = true;        }        if(sourceTop > height + bufferV) {            blnAbove = true;        }        var top = 0;        var left = 0;        if(blnAbove) top = sourceTop - height - 20;        else top = sourceTop + 10;        if(blnLeft) left = sourceLeft - width - 4;        else left = sourceLeft - 6;        //need to set the zindex        maxZIndex = maxZIndex + 1;                var $dialog = $('<div class="notesDialog"></div>')            .appendTo('#notesOverlay')            .html(getWidgetNotesHtml(id, page));             $dialog.css({ 'left': left, 'top': top, 'z-index': maxZIndex });        $dialog.find('.notesDialogScroll').niceScroll({ cursorcolor: "#8c8c8c", cursorborder: "0px solid #fff" });        $dialog.find('.notesDialogScroll').on($axure.eventNames.mouseDownName, function(event) {            event.stopPropagation();        });                $dialog.find('.closeNotesDialog').on($axure.eventNames.mouseDownName, function (event) {            event.stopPropagation();        });        $dialog.on($axure.eventNames.mouseDownName, startDialogMove);        var startMouseX;        var startMouseY;        var startDialogX;        var startDialogY;        function startDialogMove() {            startMouseX = window.event.pageX;            startMouseY = window.event.pageY;            var position = $dialog.position();            startDialogX = position.left;            startDialogY = position.top;            $dialog.addClass('active');            $('<div class="splitterMask"></div>').insertAfter($('#notesOverlay'));            $(document).bind($axure.eventNames.mouseMoveName, doDialogMove).bind($axure.eventNames.mouseUpName, endDialogMove);            $dialog.find('.notesDialogScroll').getNiceScroll().hide();        }        function doDialogMove() {            var currentX = window.event.pageX;            var currentY = window.event.pageY;            $dialog.css({ 'left': startDialogX + currentX - startMouseX, 'top': startDialogY + currentY - startMouseY });        }        function endDialogMove() {            $('div.splitterMask').remove();            $dialog.removeClass('active');            $(document).unbind($axure.eventNames.mouseMoveName, doDialogMove).unbind($axure.eventNames.mouseUpName, endDialogMove);            $dialog.find('.notesDialogScroll').getNiceScroll().resize();            $dialog.find('.notesDialogScroll').getNiceScroll().show();        }        $dialog.find('.resizeNotesDialog').on($axure.eventNames.mouseDownName, startDialogResize);        var startDialogW;        var startDialogH;        function startDialogResize() {            event.stopPropagation();            startMouseX = window.event.pageX;            startMouseY = window.event.pageY;            startDialogW = Number($dialog.css('width').replace('px',''));            startDialogH = Number($dialog.css('height').replace('px', ''));            $dialog.addClass('active');            $('<div class="splitterMask"></div>').insertAfter($('#notesOverlay'));            $(document).bind($axure.eventNames.mouseMoveName, doDialogResize).bind($axure.eventNames.mouseUpName, endDialogResize);            $dialog.find('.notesDialogScroll').getNiceScroll().hide();        }        function doDialogResize() {            var currentX = window.event.pageX;            var currentY = window.event.pageY;            var newWidth = Math.max(200, startDialogW + currentX - startMouseX);            var newHeight = Math.max(200, startDialogH + currentY - startMouseY);            $dialog.css({ 'width': newWidth, 'height': newHeight });        }        function endDialogResize() {            $('div.splitterMask').remove();            $dialog.removeClass('active');            $(document).unbind($axure.eventNames.mouseMoveName, doDialogResize).unbind($axure.eventNames.mouseUpName, endDialogResize);            $dialog.find('.notesDialogScroll').getNiceScroll().resize();            $dialog.find('.notesDialogScroll').getNiceScroll().show();        }        dialogs[id] = $dialog;        // scroll ... just for IE        //window.scrollTo(scrollX, scrollY);    };        $(document).on('sidebarCollapse', function (event, data) {        clearSelection();    });    $(document).on('pluginShown', function (event, data) {        if(data != 2) {            clearSelection();        }    });    function clearSelection() {        var selectedNote = $('#pageNotesContainer').find('.widgetNoteContainerSelected');        if(selectedNote.length > 0) {            selectedNote.removeClass('widgetNoteContainerSelected');            //var dimStr = $('.currentAdaptiveView').attr('data-dim');            //var h = dimStr ? dimStr.split('x')[1] : '0';            //var $leftPanel = $('.leftPanel:visible');            //var leftPanelOffset = (!$axure.player.isMobileMode() && $leftPanel.length > 0) ? $leftPanel.width() : 0;            //var $rightPanel = $('.rightPanel:visible');            //var rightPanelOffset = (!$axure.player.isMobileMode() && $rightPanel.length > 0) ? $rightPanel.width() : 0;            //var viewDimensions = {            //    h: h != '0' ? h : '',            //    scaleVal: $('.vpScaleOption').find('.selectedRadioButton').parent().attr('val'),            //    scrollLeft: $('#clipFrameScroll').scrollLeft(),            //    scrollTop: $('#clipFrameScroll').scrollTop(),            //    height: $('.rightPanel').height(),            //    panelWidthOffset: leftPanelOffset + rightPanelOffset            //};            //$axure.messageCenter.postMessage('toggleSelectWidgetNote', { id: '', value: false, view: viewDimensions });            $axure.messageCenter.postMessage('toggleSelectWidgetNote', { id: '', value: false });            //$axure.messageCenter.postMessage('toggleSelectWidgetNote', '');        }    }    function closeAllDialogs() {        for (var id in dialogs) {            var $dialog = dialogs[id];            if ($dialog !== undefined) _toggleAnnDialog(id);        }    }    $axure.player.toggleFootnotes = function(val) {        var scaleCheckDiv = $('#showNotesOption').find('.overflowOptionCheckbox');        if (scaleCheckDiv.hasClass('selected')) {            if (!val) $('#showNotesOption').click();        } else {            if (val) $('#showNotesOption').click();        }    }    function footnotes_click(event) {        var scaleCheckDiv = $('#showNotesOption').find('.overflowOptionCheckbox');        if (scaleCheckDiv.hasClass('selected')) {            closeAllDialogs();            scaleCheckDiv.removeClass('selected');            $axure.messageCenter.postMessage('annotationToggle', false);            //Add 'fn' hash string var so that footnotes stay hidden across reloads            $axure.player.setVarInCurrentUrlHash(FOOTNOTES_VAR_NAME, 0);        } else {            scaleCheckDiv.addClass('selected');            $axure.messageCenter.postMessage('annotationToggle', true);            //Delete 'fn' hash string var if it exists since default is visible            $axure.player.deleteVarFromCurrentUrlHash(FOOTNOTES_VAR_NAME);        }    }    function createNotesOverlay() {        var $targetPanel = $('#clippingBounds');        if (!$('#notesOverlay').length) {            var notesOverlay = document.createElement('div');            notesOverlay.setAttribute('id', 'notesOverlay');            $targetPanel.prepend(notesOverlay);            $(notesOverlay).append(' ');        }    }    function generatePageNotes() {        var pageNotesUi = "<div id='pageNotesHeader'>";        pageNotesUi += "<div id='pageNotesToolbar' style='height: 12px;'>";        pageNotesUi += "</div>";        pageNotesUi += "</div>";        pageNotesUi += "<div id='pageNotesScrollContainer'>";        pageNotesUi += "<div id='pageNotesContainer'>";        pageNotesUi += "<div id='pageNotesEmptyState' class='emptyStateContainer'><div class='emptyStateTitle'>No notes for this page.</div><div class='emptyStateContent'>Notes added in Axure RP will appear here.</div><div class='dottedDivider'></div></div>";        pageNotesUi += "<span id='pageNotesContent'></span>";        pageNotesUi += "</div></div>";        $('#pageNotesHost').html(pageNotesUi);        if(!$axure.document.configuration.showAnnotations) {            $('#pageNotesHost .pageNameHeader').css('padding-right', '55px');        }    }})();   
 |