添加后台代理代码
This commit is contained in:
@@ -0,0 +1,176 @@
|
||||
// ******* Annotation MANAGER ******** //
|
||||
$axure.internal(function($ax) {
|
||||
var NOTE_SIZE = 10;
|
||||
|
||||
var _annotationManager = $ax.annotation = {};
|
||||
|
||||
var _updateLinkLocations = $ax.annotation.updateLinkLocations = function(textId) {
|
||||
var diagramObject = $ax.getObjectFromElementId(textId);
|
||||
var rotation = (diagramObject && diagramObject.style.rotation);
|
||||
var shapeId = $ax.style.GetShapeIdFromText(textId);
|
||||
|
||||
//we have to do this because webkit reports the post-transform position but when you set
|
||||
//positions it's pre-transform
|
||||
if(WEBKIT && rotation) {
|
||||
//we can dynamiclly rotate a widget now, show need to remember the transform rather than just remove it
|
||||
//here jquery.css will return 'none' if element is display none
|
||||
var oldShapeTransform = document.getElementById(shapeId).style['-webkit-transform'];
|
||||
var oldTextTransform = document.getElementById(textId).style['-webkit-transform'];
|
||||
$('#' + shapeId).css('-webkit-transform', 'scale(1)');
|
||||
$('#' + textId).css('-webkit-transform', 'scale(1)');
|
||||
}
|
||||
|
||||
$('#' + textId).find('span[id$="_ann"]').each(function(index, value) {
|
||||
var elementId = value.id.replace('_ann', '');
|
||||
|
||||
var annPos = $(value).position();
|
||||
var left = annPos.left - NOTE_SIZE;
|
||||
var top = annPos.top;
|
||||
|
||||
$('#' + elementId + 'Note').css('left', left).css('top', top);
|
||||
});
|
||||
|
||||
//undo the transform reset
|
||||
if(WEBKIT && rotation) {
|
||||
$('#' + shapeId).css('-webkit-transform', oldShapeTransform || '');
|
||||
$('#' + textId).css('-webkit-transform', oldTextTransform || '');
|
||||
}
|
||||
};
|
||||
|
||||
var dialogs = {};
|
||||
$ax.annotation.ToggleWorkflow = function(event, id, width, height) {
|
||||
|
||||
if(dialogs[id]) {
|
||||
var $dialog = dialogs[id];
|
||||
// reset the dialog
|
||||
dialogs[id] = undefined;
|
||||
if($dialog.dialog("isOpen")) {
|
||||
$dialog.dialog("close");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// we'll need to save the scroll position just for stupid IE which will skip otherwise
|
||||
var win = $(window);
|
||||
var scrollY = win.scrollTop();
|
||||
var scrollX = win.scrollLeft();
|
||||
|
||||
var bufferH = 10;
|
||||
var bufferV = 10;
|
||||
var blnLeft = false;
|
||||
var blnAbove = false;
|
||||
var sourceTop = event.pageY - scrollY;
|
||||
var sourceLeft = event.pageX - scrollX;
|
||||
|
||||
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;
|
||||
|
||||
$ax.globals.MaxZIndex = $ax.globals.MaxZIndex + 1;
|
||||
if(IE_10_AND_BELOW) height += 50;
|
||||
|
||||
var dObj = $ax.getObjectFromElementId(id);
|
||||
var ann = dObj.annotation;
|
||||
var $dialog = $('<div></div>')
|
||||
.appendTo('body')
|
||||
.html($ax.legacy.GetAnnotationHtml(ann))
|
||||
.dialog({
|
||||
title: dObj.label,
|
||||
width: width,
|
||||
height: height,
|
||||
minHeight: 150,
|
||||
zIndex: $ax.globals.MaxZIndex,
|
||||
position: [left, top],
|
||||
dialogClass: 'dialogFix',
|
||||
autoOpen: false
|
||||
});
|
||||
$dialog.parent().appendTo('#base');
|
||||
$dialog.dialog('open');
|
||||
dialogs[id] = $dialog;
|
||||
|
||||
// scroll ... just for IE
|
||||
window.scrollTo(scrollX, scrollY);
|
||||
};
|
||||
|
||||
$ax.annotation.InitializeAnnotations = function (query) {
|
||||
if(!$ax.document.configuration.showAnnotations) return;
|
||||
|
||||
query.each(function(dObj, elementId) {
|
||||
if(!dObj.annotation) return;
|
||||
|
||||
if(dObj.type == 'hyperlink') {
|
||||
var textId = $ax.style.GetTextIdFromLink(elementId);
|
||||
|
||||
var elementIdQuery = $('#' + elementId);
|
||||
elementIdQuery.after("<span id='" + elementId + "_ann'>​</span>");
|
||||
|
||||
if($ax.document.configuration.useLabels) {
|
||||
var label = $('#' + elementId).attr("data-label");
|
||||
if(!label || label == "") label = "?";
|
||||
$('#' + textId).append("<div id='" + elementId + "Note' class='annnotelabel' >" + label + "</div>");
|
||||
} else {
|
||||
$('#' + textId).append("<div id='" + elementId + "Note' class='annnoteimage' ></div>");
|
||||
}
|
||||
$('#' + elementId + 'Note').click(function(e) {
|
||||
$ax.annotation.ToggleWorkflow(e, elementId, 300, 200, false);
|
||||
return false;
|
||||
});
|
||||
|
||||
_updateLinkLocations(textId);
|
||||
} else {
|
||||
if($ax.document.configuration.useLabels) {
|
||||
var label = $('#' + elementId).attr("data-label");
|
||||
if(!label || label == "") label = "?";
|
||||
$('#' + elementId + "_ann").append("<div id='" + elementId + "Note' class='annnotelabel'>" + label + "</div>");
|
||||
} else {
|
||||
$('#' + elementId + "_ann").append("<div id='" + elementId + "Note' class='annnoteimage'></div>");
|
||||
}
|
||||
$('#' + elementId + 'Note').click(function(e) {
|
||||
$ax.annotation.ToggleWorkflow(e, elementId, 300, 200, false);
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
$('#' + elementId + 'Note.annnoteimage').append("<div class='annnoteline'></div><div class='annnoteline'></div><div class='annnoteline'></div>");
|
||||
});
|
||||
};
|
||||
|
||||
$ax.annotation.jQueryAnn = function(query) {
|
||||
var elementIds = [];
|
||||
query.each(function(diagramObject, elementId) {
|
||||
if(diagramObject.annotation) elementIds[elementIds.length] = elementId;
|
||||
});
|
||||
var elementIdSelectors = jQuery.map(elementIds, function(elementId) { return '#' + elementId + '_ann'; });
|
||||
var jQuerySelectorText = (elementIdSelectors.length > 0) ? elementIdSelectors.join(', ') : '';
|
||||
return $(jQuerySelectorText);
|
||||
};
|
||||
|
||||
$(window.document).ready(function() {
|
||||
$ax.annotation.InitializeAnnotations($ax(function(dObj) { return dObj.annotation; }));
|
||||
|
||||
$ax.messageCenter.addMessageListener(function(message, data) {
|
||||
//If the annotations are being hidden via the Sitemap toggle button, hide any open dialogs
|
||||
if(message == 'annotationToggle') {
|
||||
if(data == false) {
|
||||
for(var index in dialogs) {
|
||||
var $dialog = dialogs[index];
|
||||
if($dialog.dialog("isOpen")) {
|
||||
$dialog.dialog("close");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
Reference in New Issue
Block a user