You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
// 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(); }
})();
|