| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 | // use this to isolate the scope(function () {    if(!$axure.document.configuration.showConsole) { return; }    $(document).ready(function () {        $axure.player.createPluginHost({            id: 'debugHost',            context: 'inspect',            title: 'Console',            gid: 3        });        generateDebug();        $('#variablesClearLink').click(clearvars_click);        $('#traceClear').click(cleartrace_click);        $('#traceToggle').click(stoptrace_click);        $('#traceStart').click(starttrace_click);        $('#traceClear').hide();        $('#traceToggle').hide();        $('#closeConsole').click(close);        var currentStack= [];        var finishedStack = [];        $axure.messageCenter.addMessageListener(function (message, data) {            if(message == 'axCompositeEventMessage') {                for(var i = 0; i < data.length; i++) {                    processMessages(data[i].message, data[i].data);                }            } else processMessages(message, data);        });        var processMessages = function(message, data) {            if(message == 'globalVariableValues') {                $('#variablesDiv').empty();                for(var key in data) {                    var value = data[key] == '' ? '(blank)' : data[key];                    $('#variablesDiv').append('<div class="variableList"><div class="variableName">' + key + '</div><div class="variableValue">' + value + '</div></div>');                }            } else if(message == 'axEvent') {                var addToStack = "<div class='axEventBlock'>";                addToStack += "<div class='axEventContainer'>";                addToStack += "    <div class='axTime'>" + new Date().toLocaleTimeString() + "</div>";                addToStack += "    <div class='axEvent'>" + data.event.description + ": </div>";                addToStack += "    <div class='axLabel'>" + data.label + " (" + data.type + ")</div>";                addToStack += "</div>";                currentStack.push(addToStack);            } else if (message == 'axEventComplete') {                currentStack[currentStack.length - 1] += "</div>";                finishedStack.push(currentStack.pop());                if(currentStack.length == 0) {                    $('#traceEmptyState').hide();                    $('#traceClear').show();                    $('#traceToggle').show();                    for(var i = finishedStack.length - 1; i >= 0; i--) {                        if($('#traceDiv').children().length > 99) $('#traceDiv').children().last().remove();                        $('#traceDiv').prepend(finishedStack[i]);                    }                    finishedStack = [];                }            } else if (message == 'axCase') {                //var addToStack = "<div class='axCaseContainer' style='background-color: #" + data.color + "'>";                var addToStack = "<div class='axCaseContainer'>";                addToStack += "    <div class='axCaseItem'>" + data.item + "</div>";                if (data.description) { addToStack += "    <div class='axCaseDescription' title='" + data.description + "'>" + data.description + "</div>" };                addToStack += "</div>";                currentStack[currentStack.length - 1] += addToStack;            } else if (message == 'axAction') {                var addToStack = "<div class='axActionContainer'>";                addToStack += "    <div class='axActionItem'>" + data.name + "</div>";                //addToStack += "    <div class='axActionItem'>" + data.item + "</div>";                //if (data.description) { addToStack += "    <div class='axActionDescription' title='" + data.description + "'>" + data.description + "</div>" };                addToStack += "</div>";                currentStack[currentStack.length - 1] += addToStack;            } else if (message == 'axInfo') {                var addToStack = "<div class='axInfoContainer'>";                addToStack += "    <div class='axInfoItem'>" + data.item + "</div>";                if (data.description) { addToStack += "    <div class='axInfoDescription' title='" + data.longDescription + "'>" + data.description + "</div>" };                addToStack += "</div>";                currentStack[currentStack.length - 1] += addToStack;            }        }        // bind to the page load        $axure.page.bind('load.debug', function () {            var traceStr = $axure.player.getHashStringVar(TRACE_VAR_NAME);            if (traceStr.length > 0) $axure.messageCenter.setState("isTracing", true);            else $axure.messageCenter.setState("isTracing", false);            $axure.messageCenter.postMessage('getGlobalVariables', '');            return false;        });        function clearvars_click(event) {            $axure.messageCenter.postMessage('resetGlobalVariables', '');        }        function close() {            $axure.player.pluginClose("debugHost");        }        function cleartrace_click(event) {            $('#traceDiv').html('');        }        function starttrace_click(event) {            $axure.messageCenter.setState("isTracing", true);            //$('#traceDiv').html('');            $('#traceEmptyState').hide();            $('#traceClear').show();            $('#traceToggle').text('Stop Trace');            $('#traceToggle').off("click");            $('#traceToggle').click(stoptrace_click);            $('#traceToggle').show();            console.log("starting trace");            $axure.player.setVarInCurrentUrlHash(TRACE_VAR_NAME, 1);        }        function stoptrace_click(event) {            $axure.messageCenter.setState("isTracing", false);            $('#traceDiv').prepend('<div class="tracePausedNotification">Trace Paused<div>');            $('#traceToggle').text('Restart Trace');            $('#traceToggle').off("click");            $('#traceToggle').click(starttrace_click);            console.log("stopping trace");            $axure.player.deleteVarFromCurrentUrlHash(TRACE_VAR_NAME);        }    });    function generateDebug() {        var pageNotesUi = "<div id='debugHeader'>";        pageNotesUi += "<div id='debugToolbar'>";        pageNotesUi += "<div id='consoleTitle' class='pluginNameHeader'>Console</div>";        pageNotesUi += "</div>";        pageNotesUi += "</div>";        pageNotesUi += "<div id='variablesContainer' style='max-height:300px; overflow-y:auto'>";        pageNotesUi += "<div id='variablesTitle' class='sectionTitle'>Variables</div>";        pageNotesUi += "<a id='variablesClearLink' class='traceOption'>Reset Variables</a>";        pageNotesUi += "<div id='variablesDiv'></div></div>";        pageNotesUi += "<div id='traceContainer'>";        pageNotesUi += "<div id='traceHeader'>";        pageNotesUi += "<span class='sectionTitle'>Trace</span><a id='traceClear' class='traceOption'>Clear Trace</a><a id='traceToggle' class='traceOption'>Stop Trace</a>";        pageNotesUi += "</div>";        pageNotesUi += "</div>";        pageNotesUi += "<div id='debugScrollContainer'>";        pageNotesUi += "<div id='debugContainer'>";        pageNotesUi += "<div id='traceEmptyState'>";        pageNotesUi += "<div class='startInstructions'>Click the button below to start recording interactions as you click through the prototype.</div>";        pageNotesUi += "<div id='traceStart' class='startButton'>Start Trace</div>";        pageNotesUi += "</div>";        pageNotesUi += "<div id='traceDiv'></div></div>";        pageNotesUi += "</div></div>";        $('#debugHost').html(pageNotesUi);        $('#traceEmptyState').show();    }})();   
 |