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.
94 lines
3.3 KiB
94 lines
3.3 KiB
// ******* 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);
|
|
};
|
|
|
|
});
|