|
|
|
|
@ -21,11 +21,6 @@ body { |
|
|
|
|
|
|
|
|
|
//js settings |
|
|
|
|
var url = '{{url}}'; |
|
|
|
|
var skills = []; //current window divs |
|
|
|
|
var parents = []; //list of parents normally there should be only 2 |
|
|
|
|
var hidden_parent = ''; |
|
|
|
|
var duration_value = 500; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//Block settings see the SkillVisualizer Class |
|
|
|
|
var offset_x = {{skill_visualizer.offset_x}}; |
|
|
|
|
@ -35,9 +30,6 @@ var space_between_blocks_y = {{skill_visualizer.space_between_blocks_y}}; |
|
|
|
|
var center_x = {{skill_visualizer.center_x}}; |
|
|
|
|
var block_size = {{skill_visualizer.block_size}}; |
|
|
|
|
|
|
|
|
|
//Setting the parent by default |
|
|
|
|
var parents = ['block_1']; |
|
|
|
|
|
|
|
|
|
jsPlumb.bind("ready", function() { |
|
|
|
|
|
|
|
|
|
//Open dialog |
|
|
|
|
@ -48,66 +40,85 @@ jsPlumb.bind("ready", function() { |
|
|
|
|
height : 350, |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
//On box click -(we use live instead of bind because we're creating divs on the fly ) |
|
|
|
|
$(".open_block").live('click', function() { |
|
|
|
|
//Clicking in a box skill (we use live instead of bind because we're creating divs on the fly ) |
|
|
|
|
$(".open_block").live('click', function() { |
|
|
|
|
var id = $(this).attr('id'); |
|
|
|
|
|
|
|
|
|
console.log('click.open_block id: ' + id); |
|
|
|
|
console.log('parents: ' + parents); |
|
|
|
|
|
|
|
|
|
//if is root |
|
|
|
|
if (parents[0] == id) { |
|
|
|
|
parents = [id]; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (parents[1] != id) { |
|
|
|
|
if (parents[1] != id) { |
|
|
|
|
console.log('parents.length ' +parents.length); |
|
|
|
|
|
|
|
|
|
//If there are 2 parents in the skill_tree |
|
|
|
|
if (parents.length == 2 ) { |
|
|
|
|
hidden_parent = parents[0]; |
|
|
|
|
first_parent = parents[0]; |
|
|
|
|
$('#'+parents[1]).css('top', '0px'); |
|
|
|
|
//console.log('deleting: '+parents[0]); |
|
|
|
|
//removing father |
|
|
|
|
for (var i = 0; i < skills.length; i++) { |
|
|
|
|
|
|
|
|
|
if ( skills[i].element == parents[0] ) { |
|
|
|
|
//console.log('deleting :'+ skills[i].element + ' here '); |
|
|
|
|
jsPlumb.deleteEndpoint(skills[i].endp); |
|
|
|
|
$("#"+skills[i].element).remove(); |
|
|
|
|
//skills.splice(i,1) |
|
|
|
|
console.log("first_parent " + first_parent); |
|
|
|
|
|
|
|
|
|
for (var i = 0; i < skills.length; i++) { |
|
|
|
|
//console.log('looping '+skills[i].element + ' '); |
|
|
|
|
if (skills[i].element == parents[0] ) { |
|
|
|
|
console.log('deleting parent:'+ skills[i].element + ' here '); |
|
|
|
|
jsPlumb.deleteEndpoint(skills[i].element); |
|
|
|
|
jsPlumb.detachAllConnections(skills[i].element); |
|
|
|
|
jsPlumb.removeAllEndpoints(skills[i].element); |
|
|
|
|
$("#"+skills[i].element).remove(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
parents.splice(0,1); |
|
|
|
|
parents.push(id); |
|
|
|
|
console.log('parents after slice/push: ' + parents); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if ($(this).hasClass('first_window')) { |
|
|
|
|
//show the hidden_parent |
|
|
|
|
//if (hidden_parent != '') { |
|
|
|
|
parents = [hidden_parent, id]; |
|
|
|
|
// console.log(parents); |
|
|
|
|
open_parent(hidden_parent, id); |
|
|
|
|
if ($(this).hasClass('first_window')) { |
|
|
|
|
console.log('im in a first_window (root)'); |
|
|
|
|
$('#'+first_parent).css('top', '0px'); |
|
|
|
|
//show the first_parent |
|
|
|
|
//if (first_parent != '') { |
|
|
|
|
parents = [first_parent, id]; |
|
|
|
|
open_parent(first_parent, id); |
|
|
|
|
//} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (jQuery.inArray(id, parents) == -1) { |
|
|
|
|
parents.push(id); |
|
|
|
|
console.log('parents push: ' + parents); |
|
|
|
|
} |
|
|
|
|
open_block_student(id); |
|
|
|
|
open_block(id, 0, 0); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
//Setting class |
|
|
|
|
cleanclass($(this)); |
|
|
|
|
$(this).addClass('second_window'); |
|
|
|
|
cleanclass($(this)); |
|
|
|
|
$(this).addClass('second_window'); |
|
|
|
|
|
|
|
|
|
parent_div = $("#"+parents[0]); |
|
|
|
|
cleanclass(parent_div); |
|
|
|
|
parent_div.addClass('first_window'); |
|
|
|
|
parent_div.addClass('skill_root'); |
|
|
|
|
|
|
|
|
|
parent_div = $("#"+parents[1]); |
|
|
|
|
cleanclass(parent_div); |
|
|
|
|
parent_div.addClass('second_window'); |
|
|
|
|
|
|
|
|
|
console.log(parents); |
|
|
|
|
//console.log(parents); |
|
|
|
|
// console.log(skills); |
|
|
|
|
console.log('hidden_parent : ' + hidden_parent); |
|
|
|
|
console.log('first_parent : ' + first_parent); |
|
|
|
|
|
|
|
|
|
//redraw |
|
|
|
|
jsPlumb.repaintEverything(); |
|
|
|
|
jsPlumb.repaint(id); |
|
|
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$(".edit_block").live('click',function() { |
|
|
|
|
var my_id = $(this).attr('id'); |
|
|
|
|
my_id = my_id.split('_')[2]; |
|
|
|
|
|