From 5d47ab8f8ac6d54a5e557a41e1654ae5bcc43de1 Mon Sep 17 00:00:00 2001 From: Julio Montoya Date: Fri, 4 Nov 2011 18:23:45 +0100 Subject: [PATCH] Adding borders black, red, blue to the window + some fixes --- main/admin/skills.php | 87 ++++++++++++++++++--------- main/css/base.css | 13 ++++ main/inc/ajax/skill.ajax.php | 6 +- main/inc/lib/skill.lib.php | 6 +- main/inc/lib/skill.visualizer.lib.php | 8 ++- 5 files changed, 87 insertions(+), 33 deletions(-) diff --git a/main/admin/skills.php b/main/admin/skills.php index cfe56cc4f4..d07f6c1df8 100644 --- a/main/admin/skills.php +++ b/main/admin/skills.php @@ -53,6 +53,12 @@ var center_x = center_x; ?>; var parents = ['block_1']; +function cleanclass(obj) { + obj.removeClass('first_window'); + obj.removeClass('second_window'); + obj.removeClass('third_window'); +} + jsPlumb.bind("ready", function() { $("#dialog-form").dialog({ @@ -86,18 +92,17 @@ jsPlumb.bind("ready", function() { $(".open_block").live('click', function() { var id = $(this).attr('id'); - //console.log(skills); - //console.log('parents : '+parents[1] + ' id: '+id); + + //if is root if (parents[0] == id) { parents = [id]; - } - + } if (parents[1] != id) { //means that we have 2 parents - + if (parents.length == 2 ) { hidden_parent = parents[0]; //console.log('deleting: '+parents[0]); @@ -110,27 +115,40 @@ jsPlumb.bind("ready", function() { $("#"+skills[i].element).remove(); //skills.splice(i,1) } - } - + } parents.splice(0,1); - parents.push(id); - console.log('addded : ' + id); - } - - if (parents.length == 1 && hidden_parent != ''){ - //show the hidden_parent + parents.push(id); + } - parents = [hidden_parent, id]; - // console.log(parents); - open_parent(hidden_parent, id); - hidden_parent = ''; - } + 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 (jQuery.inArray(id, parents) == -1) { parents.push(id); } open_block(id); } + + //Setting class + cleanclass($(this)); + $(this).addClass('second_window'); + + + parent_div = $("#"+parents[0]); + cleanclass(parent_div); + parent_div.addClass('first_window'); + + parent_div = $("#"+parents[1]); + cleanclass(parent_div); + parent_div.addClass('second_window'); + + console.log(parents); // console.log(skills); console.log('hidden_parent : ' + hidden_parent); @@ -139,7 +157,7 @@ jsPlumb.bind("ready", function() { function open_parent(parent_id, id) { var numeric_parent_id = parent_id.split('_')[1]; var numeric_id = id.split('_')[1]; - load_parent(numeric_parent_id, numeric_id); + load_parent(numeric_parent_id, numeric_id); } //open block function @@ -173,34 +191,45 @@ jsPlumb.bind("ready", function() { //Modifying root block position pos_parent = $('#'+parents[0]).position(); - jsPlumb.animate(parents[0], {left: center_x, top:offset_y}, { duration:1000 }); - + jsPlumb.animate(parents[0], {left: center_x, top:offset_y}, { duration:1000 }); top_value = parents.length * space_between_blocks_y; load_children(numeric_id, top_value); } function load_parent(parent_id, id) { - var ix= 0; - $.getJSON(url+'&a=load_direct_parents&id='+id, {}, - function(json) { + var ix= 0; + + $.ajax({ + url: url+'&a=load_direct_parents&id='+id, + async: false, + success: function(json) { + console.log(json); + var json = jQuery.parseJSON(json); + $.each(json,function(i,item) { left_value = center_x + space_between_blocks_x * ix; top_value = offset_y; $('body').append('
'+item.name+'
'); - var es = prepare("block_" + item.id, editEndpoint); + var es = prepare("block_" + item.id, editEndpoint); var es2 = prepare("block_" + id, editEndpoint); jsPlumb.connect({source: es, target:es2 }); - jsPlumb.animate("block_" + item.id, {left: left_value, top : top_value}, { duration:1000 }); + jsPlumb.animate("block_" + item.id, {left: left_value, top : top_value}, { duration:1000 }); + if (item.parent_id) { - hidden_parent = "block_" + item.parent_id; + console.log('setting hidden_parent '+item.parent_id); + hidden_parent = "block_" + item.parent_id; + } else { + console.log('setting NO--- hidden_parent '); } ix++; }); + } - ); + }); + } function load_children(my_id, top_value) { @@ -211,7 +240,7 @@ jsPlumb.bind("ready", function() { $.each(json,function(i,item) { left_value = offset_x+space_between_blocks_x * ix; //top_value = 300; - $('body').append('
'+item.name+i+'
'); + $('body').append('
'+item.name+i+'
'); var es = prepare("block_" + item.id, editEndpoint); var e2 = prepare("block_" + my_id, editEndpoint); diff --git a/main/css/base.css b/main/css/base.css index 9eed12fd31..1f32bd685a 100644 --- a/main/css/base.css +++ b/main/css/base.css @@ -3911,6 +3911,19 @@ form div.error input, form div.error textarea { background-color: #73982C; } + +.first_window { + border: 1px solid red; +} + +.second_window { + border: 1px solid black; +} + +.third_window { + border: 1px solid blue; +} + ._jsPlumb_endpoint { z-index: 50; } diff --git a/main/inc/ajax/skill.ajax.php b/main/inc/ajax/skill.ajax.php index f7a374d7a1..c840b8e8d7 100644 --- a/main/inc/ajax/skill.ajax.php +++ b/main/inc/ajax/skill.ajax.php @@ -66,9 +66,13 @@ switch ($action) { case 'load_direct_parents': $id = isset($_REQUEST['id']) ? $_REQUEST['id'] : null; $skills = $skill->get_direct_parents($id); + $return = array(); foreach($skills as $skill) { - $return [$skill['data']['id']] = array('name' => $skill['data']['name'], 'id'=>$skill['data']['id']); + $return [$skill['data']['id']] = array( + 'parent_id' => $skill['data']['parent_id'], + 'name' => $skill['data']['name'], + 'id' => $skill['data']['id']); } echo json_encode($return); break; diff --git a/main/inc/lib/skill.lib.php b/main/inc/lib/skill.lib.php index e490484135..9a98bf021f 100644 --- a/main/inc/lib/skill.lib.php +++ b/main/inc/lib/skill.lib.php @@ -28,7 +28,7 @@ class SkillRelSkill extends Model { */ public function get_skill_info($id) { if (empty($id)) { return array(); } - $result = Database::select('*',$this->table, array('where'=>array('skill_id = ?'=>intval($id)))); + $result = Database::select('*',$this->table, array('where'=>array('skill_id = ?'=>intval($id))), 'first'); return $result; } @@ -201,7 +201,9 @@ class Skill extends Model { $skill_rel_skill = new SkillRelSkill(); $skills = $skill_rel_skill->get_direct_parents($skill_id, true); foreach($skills as &$skill) { - $skill['data'] = self::get($skill['skill_id']); + $skill['data'] = self::get($skill['skill_id']); + $skill_info2 = $skill_rel_skill->get_skill_info($skill['skill_id']); + $skill['data']['parent_id'] = $skill_info2['parent_id']; } return $skills; } diff --git a/main/inc/lib/skill.visualizer.lib.php b/main/inc/lib/skill.visualizer.lib.php index 06179f0f3a..cd33835b15 100644 --- a/main/inc/lib/skill.visualizer.lib.php +++ b/main/inc/lib/skill.visualizer.lib.php @@ -31,7 +31,13 @@ function prepare_skill_box($skill, $position, $class) { $block_id = $skill['id']; - $this->html .= '
'; + + $extra_class = 'third_window'; + if ($skill['parent_id'] == 0) { + $extra_class = 'second_window'; + } + + $this->html .= '
'; $gradebook_string = ''; if (!empty($skill['gradebooks'])) { foreach($skill['gradebooks'] as $gradebook) {