-function getRelativePath( action ) {
- path_elements = window.location.pathname.split('/');
- if( path_elements[1].length > 0 ) {
- return window.location.pathname.split('/')[1] + '/' + action;
- } else {
- return action;
- }
+function getTextPath() {
+ var currpath = window.location.pathname
+ if( currpath.lastIndexOf('/') == currpath.length - 1 ) {
+ currpath = currpath.slice( 0, currpath.length - 1)
+ };
+ var path_elements = currpath.split('/');
+ var textid = path_elements.pop();
+ var basepath = path_elements.join( '/' );
+ var path_parts = [ basepath, textid ];
+ return path_parts;
}
function svgLoaded() {
var svg_element_width = svg_vbwidth/svg_vbheight * parseInt(svg_element.attr('height'));
svg_element_width += scroll_padding;
svg_element.attr( 'width', svg_element_width );
- $('ellipse').attr( {stroke:'black', fill:'#fff'} );
+ $('ellipse').attr({
+ stroke: 'black',
+ fill: '#fff'
+ });
var svg_height = parseInt( $('#svgenlargement').height() );
scroll_enlargement_ratio = svg_height/svg_vbheight;
+ add_relations();
+}
+
+function add_relations() {
+ var pathparts = getTextPath();
+ $.getJSON( pathparts[0] + '/definitions', function(data) {
+ var rel_types = data.types.sort();
+ var pathparts = getTextPath();
+ $.getJSON( pathparts[0] + '/' + pathparts[1] + '/relationships',
+ function(data) {
+ $.each(data, function( index, rel_info ) {
+ var type_index = $.inArray(rel_info.type, rel_types);
+ if( type_index != -1 ) {
+ relation_manager.create( rel_info.source, rel_info.target, type_index );
+ }
+ })
+ });
+ });
}
function get_ellipse( node_id ) {
}
this.mousemove_listener = function(evt) {
- self.dx = (evt.clientX - self.x) / mousemove_enlargement_ratio;
- self.dy = (evt.clientY - self.y) / mousemove_enlargement_ratio;
+ // magnification on workspace lock temporarily disabled
+ // self.dx = (evt.clientX - self.x) / mousemove_enlargement_ratio;
+ // self.dy = (evt.clientY - self.y) / mousemove_enlargement_ratio;
+ self.dx = (evt.clientX - self.x) / scroll_enlargement_ratio;
+ self.dy = (evt.clientY - self.y) / scroll_enlargement_ratio;
self.move_elements();
}
//TODO: Protect from (color_)index out of bound..
var relation_color = self.relation_colors[ color_index ];
draw_relation( source_node_id, target_node_id, relation_color );
- get_node_obj( source_node_id ).update_elements();
- get_node_obj( target_node_id ).update_elements();
+ var source_node = get_node_obj( source_node_id );
+ var target_node = get_node_obj( target_node_id );
+ if( source_node != null ) { source_node.update_elements() };
+ if( target_node != null ) { target_node.update_elements() };
}
this.remove = function( source_node_id, target_id ) {
//TODO (When needed)
"Ok": function() {
$('#status').empty();
form_values = $('#collapse_node_form').serialize()
- ncpath = window.location.pathname + '/relationship';
+ pathparts = getTextPath();
+ ncpath = pathparts[0] + '/' + pathparts[1] + '/relationship';
var jqjson = $.post( ncpath, form_values, function(data) {
$.each( data, function(item, source_target) {
relation_manager.create( source_target[0], source_target[1], $('#rel_type').attr('selectedIndex') );
create: function(event, ui) {
$(this).data( 'relation_drawn', false );
//TODO? Err handling?
- var jqjson = $.getJSON( 'relationship_definition', function(data) {
+ var pathparts = getTextPath();
+ var jqjson = $.getJSON( pathparts[0] + '/definitions', function(data) {
var types = data.types.sort();
$.each( types, function(index, value) {
$('#rel_type').append( $('<option>').attr( "value", value ).text(value) );
ellipse.data( 'node_obj' ).set_draggable( false );
ellipse.data( 'node_obj', null );
})
- svg_enlargement.children[0].setAttribute( 'transform', $(this).data('transform_memo') );
- $('#enlargement').scrollLeft( $(this).data('scrollleft_memo') );
+ // magnification on workspace lock temporarily disabled
+ // svg_enlargement.children[0].setAttribute( 'transform', $(this).data('transform_memo') );
+ // $('#enlargement').scrollLeft( $(this).data('scrollleft_memo') );
$(this).data('locked', false);
$(this).css('background-position', '0px 0px');
} else {
}
ellipse.data( 'node_obj' ).greyout_edges();
})
- var graph_frag_height = y_max - y_min ;
- var svg_enlargement_vbheight = svg_enlargement.viewBox.baseVal.height;
- var svg_enlargement_vbwidth = svg_enlargement.viewBox.baseVal.width;
- var scale = svg_enlargement_vbheight / graph_frag_height;
- mousemove_enlargement_ratio = scroll_enlargement_ratio * scale;
- var scroll_padding = $('#enlargement_container').width();
- var scroll_scale = svg_enlargement_vbwidth / ( parseFloat( $('#svgenlargement svg').attr('width') ) - scroll_padding );
- var vbx_of_scroll = ( $('#enlargement').scrollLeft() ) * scroll_scale;
- var translate_x = vbx_of_scroll;
- var transform = svg_enlargement.children[0].getAttribute('transform');
- $(this).data('transform_memo', transform );
- $(this).data('scrollleft_memo', $('#enlargement').scrollLeft() );
+ // magnification on workspace lock temporarily disabled
+ // var graph_frag_height = y_max - y_min ;
+ // var svg_enlargement_vbheight = svg_enlargement.viewBox.baseVal.height;
+ // var svg_enlargement_vbwidth = svg_enlargement.viewBox.baseVal.width;
+ // var scale = svg_enlargement_vbheight / graph_frag_height;
+ // mousemove_enlargement_ratio = scroll_enlargement_ratio * scale;
+ // var scroll_padding = $('#enlargement_container').width();
+ // var scroll_scale = svg_enlargement_vbwidth / ( parseFloat( $('#svgenlargement svg').attr('width') ) - scroll_padding );
+ // var vbx_of_scroll = ( $('#enlargement').scrollLeft() ) * scroll_scale;
+ // var translate_x = vbx_of_scroll;
+ // var transform = svg_enlargement.children[0].getAttribute('transform');
+ // $(this).data('transform_memo', transform );
+ // $(this).data('scrollleft_memo', $('#enlargement').scrollLeft() );
$(this).data('locked', true );
- $('#enlargement').scrollLeft(0);
- transform = 'scale(' + scale + ') translate(' + (-1 * translate_x) + ',' + (-1 * y_min) + ')';
- svg_enlargement.children[0].setAttribute( 'transform', transform );
+ // $('#enlargement').scrollLeft(0);
+ // transform = 'scale(' + scale + ') translate(' + (-1 * translate_x) + ',' + (-1 * y_min) + ')';
+ // svg_enlargement.children[0].setAttribute( 'transform', transform );
}
});