فهرست منبع

Adding borders black, red, blue to the window + some fixes

Julio Montoya 13 سال پیش
والد
کامیت
5d47ab8f8a
5فایلهای تغییر یافته به همراه87 افزوده شده و 33 حذف شده
  1. 58 29
      main/admin/skills.php
  2. 13 0
      main/css/base.css
  3. 5 1
      main/inc/ajax/skill.ajax.php
  4. 4 2
      main/inc/lib/skill.lib.php
  5. 7 1
      main/inc/lib/skill.visualizer.lib.php

+ 58 - 29
main/admin/skills.php

@@ -53,6 +53,12 @@ var center_x                = <?php echo $skill_visualizer->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('<div id="block_'+item.id+ '" class="open_block window " >'+item.name+'</div>');                
-                    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('<div id="block_'+item.id+ '" class="open_block window " >'+item.name+i+'</div>');                    
+                    $('body').append('<div id="block_'+item.id+ '" class="third_window open_block window " >'+item.name+i+'</div>');                    
                     
                     var es = prepare("block_" + item.id,  editEndpoint);
                     var e2 = prepare("block_" + my_id,  editEndpoint);

+ 13 - 0
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;
 }

+ 5 - 1
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;    

+ 4 - 2
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;
     }

+ 7 - 1
main/inc/lib/skill.visualizer.lib.php

@@ -31,7 +31,13 @@
     
     function prepare_skill_box($skill, $position, $class) {
         $block_id = $skill['id'];
-        $this->html .= '<div id="block_'.$block_id.'" class = "open_block window '.$class.'" style = "top:' . $position['y'] . 'px; left:' . $position['x'] . 'px;">';
+        
+        $extra_class = 'third_window';
+        if ($skill['parent_id'] == 0) {
+            $extra_class = 'second_window';
+        }
+        
+        $this->html .= '<div id="block_'.$block_id.'" class = " open_block window '.$extra_class.'  '.$class.'" style = "top:' . $position['y'] . 'px; left:' . $position['x'] . 'px;">';
         $gradebook_string = '';
         if (!empty($skill['gradebooks'])) {
             foreach($skill['gradebooks'] as $gradebook) {