function getTextPath() {
var currpath = window.location.pathname
+ // Get rid of trailing slash
if( currpath.lastIndexOf('/') == currpath.length - 1 ) {
currpath = currpath.slice( 0, currpath.length - 1)
};
+ // Get rid of query parameters
+ if( currpath.lastIndexOf('?') != -1 ) {
+ currpath = currpath.slice( 0, currpath.lastIndexOf('?') );
+ };
var path_elements = currpath.split('/');
var textid = path_elements.pop();
var basepath = path_elements.join( '/' );
}
function svgEnlargementLoaded() {
+ //Give some visual evidence that we are working
+ $('#loading_overlay').show();
+ lo_height = $("#enlargement_container").outerHeight();
+ lo_width = $("#enlargement_container").outerWidth();
+ $("#loading_overlay").height( lo_height );
+ $("#loading_overlay").width( lo_width );
+ $("#loading_overlay").offset( $("#enlargement_container").offset() );
+ $("#loading_message").offset(
+ { 'top': lo_height / 2 - $("#loading_message").height() / 2,
+ 'left': lo_width / 2 - $("#loading_message").width() / 2 });
//Set viewbox widht and height to widht and height of $('#svgenlargement svg').
//This is essential to make sure zooming and panning works properly.
$('#svgenlargement ellipse').attr( {stroke:'green', fill:'#b3f36d'} );
var transform = 'rotate(0) scale(' + scale + ') translate(4 ' + translate + ')';
svg_g.setAttribute('transform', transform);
//used to calculate min and max zoom level:
- start_element_height = $("#svgenlargement .node title:contains('#START#')").siblings('ellipse')[0].getBBox().height;
- add_relations();
+ start_element_height = $("#svgenlargement .node title:contains('START#')").siblings('ellipse')[0].getBBox().height;
+ add_relations( function() { $('#loading_overlay').hide(); });
}
-function add_relations() {
+function add_relations( callback_fn ) {
var basepath = getRelativePath();
var textrelpath = getRelationshipURL();
$.getJSON( basepath + '/definitions', function(data) {
function(data) {
$.each(data, function( index, rel_info ) {
var type_index = $.inArray(rel_info.type, rel_types);
- if( type_index != -1 ) {
+ var source_found = get_ellipse( rel_info.source );
+ var target_found = get_ellipse( rel_info.target );
+ if( type_index != -1 && source_found.size() && target_found.size() ) {
var relation = relation_manager.create( rel_info.source, rel_info.target, type_index );
relation.data( 'type', rel_info.type );
relation.data( 'scope', rel_info.scope );
+ relation.data( 'note', rel_info.note );
var node_obj = get_node_obj(rel_info.source);
node_obj.set_draggable( false );
node_obj.ellipse.data( 'node_obj', null );
node_obj.set_draggable( false );
node_obj.ellipse.data( 'node_obj', null );
}
- })
+ });
+ callback_fn.call();
});
});
}
}
}
this.showinfo = function(relation) {
- $('#delete-form-text').html( 'type: ' + relation.data( 'type' ) + '<br/>scope: ' + relation.data( 'scope' ) );
+ var htmlstr = 'type: ' + relation.data( 'type' ) + '<br/>scope: ' + relation.data( 'scope' );
+ if( relation.data( 'note' ) ) {
+ htmlstr = htmlstr + '<br/>note: ' + relation.data( 'note' );
+ }
+ $('#delete-form-text').html( htmlstr );
var points = relation.children('path').attr('d').slice(1).replace('C',' ').split(' ');
var xs = parseFloat( points[0].split(',')[0] );
var xe = parseFloat( points[1].split(',')[0] );
var relation = relation_manager.create( source_target[0], source_target[1], $('#rel_type').attr('selectedIndex') );
relation.data( 'type', $('#rel_type :selected').text() );
relation.data( 'scope', $('#scope :selected').text() );
+ relation.data( 'note', $('#note').val() );
relation_manager.toggle_active( relation.children('title').text() );
});
$( "#dialog-form" ).dialog( "close" );
$(".ui-widget-overlay").css("background", "none");
$("#dialog_overlay").show();
$("#dialog_overlay").height( $("#enlargement_container").height() );
- $("#dialog_overlay").width( $("#enlargement_container").width() );
+ $("#dialog_overlay").width( $("#enlargement_container").innerWidth() );
$("#dialog_overlay").offset( $("#enlargement_container").offset() );
},
close: function() {
$( "#delete-form" ).dialog({
autoOpen: false,
- height: 120,
+ height: 135,
width: 160,
modal: false,
buttons: {
}
});
+ $('.helptag').popupWindow({
+ height:500,
+ width:800,
+ top:50,
+ left:50,
+ scrollbars:1
+ });
+
+
function toggle_relation_active( node_id ) {
$('#svgenlargement .relation').find( "title:contains('" + node_id + "')" ).each( function(index) {
matchid = new RegExp( "^" + node_id );