// ******* Recording MANAGER ******** // $axure.internal(function($ax) { var _recording = $ax.recording = {}; $ax.recording.recordEvent = function(element, eventInfo, axEventObject, timeStamp) { var elementHtml = $jobj(element); var className = elementHtml.attr('class'); var inputValue; if(className === 'ax_checkbox') { inputValue = elementHtml.find('#' + element + '_input')[0].checked; eventInfo.inputType = className; eventInfo.inputValue = inputValue; } if(className === 'ax_text_field') { inputValue = elementHtml.find('#' + element + '_input').val(); eventInfo.inputType = className; eventInfo.inputValue = inputValue; } var scriptId = $ax.repeater.getScriptIdFromElementId(element); var diagramObjectPath = $ax.getPathFromScriptId(scriptId); var form = { recordingId: $ax.recording.recordingId, elementID: element, eventType: axEventObject.description, 'eventInfo': eventInfo, // eventObject: axEventObject, 'timeStamp': timeStamp, 'path': diagramObjectPath // , // 'trigger': function() { // $ax.event.handleEvent(element, eventInfo, axEventObject); // return false; // } }; $ax.messageCenter.postMessage('logEvent', form); }; $ax.recording.maybeRecordEvent = function(element, eventInfo, axEventObject, timeStamp) { }; $ax.recording.recordingId = ""; $ax.recording.recordingName = ""; $ax.messageCenter.addMessageListener(function(message, data) { if(message === 'startRecording') { $ax.recording.maybeRecordEvent = $ax.recording.recordEvent; $ax.recording.recordingId = data.recordingId; $ax.recording.recordingName = data.recordingName; } else if(message === 'stopRecording') { $ax.recording.maybeRecordEvent = function(element, eventInfo, axEventObject, timeStamp) { }; } else if(message === 'playEvent') { var eventType = makeFirstLetterLower(data.eventType); var inputElement; var dObj = data.element === '' ? $ax.pageData.page : $ax.getObjectFromElementId(data.element); if(!data.axEventObject) { data.axEventObject = dObj && dObj.interactionMap && dObj.interactionMap[eventType]; } data.eventInfo.thiswidget = $ax.getWidgetInfo(data.element); data.eventInfo.item = $ax.getItemInfo(data.element); if(data.eventInfo.inputType && data.eventInfo.inputType === 'ax_checkbox') { inputElement = $jobj(data.element + '_input'); inputElement[0].checked = data.eventInfo.inputValue; } if(data.eventInfo.inputType && data.eventInfo.inputType === 'ax_text_field') { inputElement = $jobj(data.element + '_input'); inputElement.val(data.eventInfo.inputValue); } $ax.event.handleEvent(data.element, data.eventInfo, data.axEventObject, false, true); } }); var makeFirstLetterLower = function(eventName) { return eventName.substr(0, 1).toLowerCase() + eventName.substr(1); }; });