Adding skills ranking page + other bugfixes in the admin skill wheel see #1791

skala
Julio Montoya 13 years ago
parent 354d26e6e1
commit e9badfb14a
  1. 52
      main/inc/ajax/model.ajax.php
  2. 157
      main/inc/ajax/skill.ajax.php
  3. 20
      main/inc/lib/gradebook.lib.php
  4. 126
      main/inc/lib/skill.lib.php
  5. 103
      main/template/default/skill/profile.tpl
  6. 110
      main/template/default/skill/skill_wheel.tpl

@ -20,8 +20,9 @@ $sord = $_REQUEST['sord']; //asc or desc
if (!in_array($sord, array('asc','desc'))) {
$sord = 'desc';
}
if (!in_array($action, array('get_exercise_results', 'get_work_user_list', 'get_timelines'))) {
if (!in_array($action, array('get_exercise_results', 'get_work_user_list', 'get_timelines', 'get_user_skill_ranking'))) {
api_protect_admin_script(true);
}
@ -97,6 +98,10 @@ if (!$sidx) $sidx = 1;
//@todo rework this
switch ($action) {
case 'get_user_skill_ranking':
$skill = new Skill();
$count = $skill->get_user_list_skill_ranking_count();
break;
case 'get_work_user_list':
require_once api_get_path(SYS_CODE_PATH).'work/work.lib.php';
$work_id = $_REQUEST['work_id'];
@ -179,10 +184,32 @@ $is_allowedToEdit = api_is_allowed_to_edit(null,true) || api_is_allowed_to_edit(
//5. Querying the DB for the elements
$columns = array();
switch ($action) {
switch ($action) {
case 'get_user_skill_ranking':
$columns = array('photo', 'firstname', 'lastname', 'skills_acquired', 'currently_learning', 'rank');
$result = $skill->get_user_list_skill_ranking($start, $limit, $sidx, $sord, $where_condition);
$result = msort($result, 'skills_acquired', 'asc');
if (!empty($result)) {
$counter = 1;
foreach ($result as &$item) {
$user_info = api_get_user_info($item['user_id']);
$personal_course_list = UserManager::get_personal_session_course_list($item['user_id']);
$count_skill_by_course = array();
foreach ($personal_course_list as $course_item) {
$$count_skill_by_course[$course_item['code']]= $skill->get_count_skills_by_course($course_item['code']);
}
$item['photo'] = Display::img($user_info['avatar_small']);
$item['currently_learning'] = !empty($count_skill_by_course) ? array_sum($count_skill_by_course) : 0;
$item['rank'] = $counter;
$counter++;
}
}
break;
case 'get_work_user_list':
if (isset($_GET['type']) && $_GET['type'] == 'simple') {
$columns = array('type', 'firstname', 'lastname', 'username', 'title', 'qualification', 'sent_date', 'qualificator_id', 'actions');
$columns = array('type', 'firstname', 'lastname', 'username', 'title', 'qualification', 'sent_date', 'qualificator_id', 'actions');
} else {
$columns = array('type', 'firstname', 'lastname', 'username', 'title', 'sent_date', 'actions');
}
@ -351,13 +378,23 @@ switch ($action) {
}
//var_dump($result);
$allowed_actions = array('get_careers', 'get_promotions', 'get_usergroups', 'get_gradebooks',
'get_sessions', 'get_exercise_results', 'get_work_user_list', 'get_timelines', 'get_grade_models', 'get_event_email_template');
$allowed_actions = array('get_careers',
'get_promotions',
'get_usergroups',
'get_gradebooks',
'get_sessions',
'get_exercise_results',
'get_work_user_list',
'get_timelines',
'get_grade_models',
'get_event_email_template',
'get_user_skill_ranking');
//5. Creating an obj to return a json
if (in_array($action, $allowed_actions)) {
$response = new stdClass();
$response->page = $page;
$response->total = $total_pages;
$response->total = $total_pages;
$response->records = $count;
$i=0;
if (!empty($result)) {
@ -377,6 +414,7 @@ if (in_array($action, $allowed_actions)) {
$i++;
}
}
echo json_encode($response);
}
exit;
exit;

@ -23,6 +23,8 @@ switch ($action) {
$skill_id = $skill->add($_REQUEST);
}
echo $skill_id;
case 'delete_skill':
echo $skill->delete($_REQUEST['skill_id']);
break;
case 'find_skills':
$skills = $skill->find('all', array('where' => array('name LIKE %?% '=>$_REQUEST['tag'])));
@ -34,64 +36,7 @@ switch ($action) {
}
echo json_encode($return_skills);
break;
case 'profile_matches':
$skill_rel_user = new SkillRelUser();
$skills = $_REQUEST['skill_id'];
$total_skills_to_search = $skills;
$users = $skill_rel_user->get_user_by_skills($skills);
$user_list = array();
$count_skills = count($skills);
if (!empty($users)) {
foreach ($users as $user) {
$user_info = api_get_user_info($user['user_id']);
$user_list[$user['user_id']]['user'] = $user_info;
$my_user_skills = $skill_rel_user->get_user_skills($user['user_id']);
$user_skills = array();
$found_counts = 0 ;
foreach($my_user_skills as $my_skill) {
$found = false;
if (in_array($my_skill['skill_id'], $skills)) {
$found = true;
$found_counts++;
}
$user_skills[] = array('skill_id' => $my_skill['skill_id'], 'found' => $found);
$total_skills_to_search[$my_skill['skill_id']] = $my_skill['skill_id'];
}
$user_list[$user['user_id']]['skills'] = $user_skills;
$user_list[$user['user_id']]['total_found_skills'] = $found_counts;
}
$ordered_user_list = array();
foreach ($user_list as $user_id => $user_data) {
$ordered_user_list[$user_data['total_found_skills']][] = $user_data;
}
if (!empty($ordered_user_list)) {
asort($ordered_user_list);
}
}
Display::display_no_header();
Display::$global_template->assign('order_user_list', $ordered_user_list);
Display::$global_template->assign('total_search_skills', $count_skills);
$skill_list = array();
if (!empty($total_skills_to_search)) {
$total_skills_to_search = $skill->get_skills_info($total_skills_to_search);
foreach ($total_skills_to_search as $skill_info) {
$skill_list[$skill_info['id']] = $skill_info;
}
}
Display::$global_template->assign('skill_list', $skill_list);
echo Display::$global_template->fetch('default/skill/profile.tpl');
break;
case 'get_gradebooks':
$gradebooks = $gradebook_list = $gradebook->get_all();
@ -145,7 +90,7 @@ switch ($action) {
Display::$global_template->assign('profiles', $profiles);
echo Display::$global_template->fetch('default/skill/profile_item.tpl');
break;
break;
case 'get_skills':
$load_user_data = isset($_REQUEST['load_user_data']) ? $_REQUEST['load_user_data'] : null;
//$parent_id = intval($_REQUEST['parent_id']);
@ -157,7 +102,14 @@ switch ($action) {
$id = isset($_REQUEST['id']) ? $_REQUEST['id'] : null;
$skill_info = $skill->get_skill_info($id);
echo json_encode($skill_info);
break;
break;
case 'get_skills_tree_json':
$user_id = isset($_REQUEST['load_user']) && $_REQUEST['load_user'] == 1 ? api_get_user_id() : 0;
$skill_id = isset($_REQUEST['skill_id']) ? $_REQUEST['skill_id'] : 0;
$depth = isset($_REQUEST['main_depth']) ? $_REQUEST['main_depth'] : 2;
$all = $skill->get_skills_tree_json($user_id, $skill_id, false, $depth);
echo $all;
break;
case 'get_gradebook_info':
$id = isset($_REQUEST['id']) ? $_REQUEST['id'] : null;
$info = $gradebook->get($id);
@ -200,7 +152,83 @@ switch ($action) {
);
}
echo json_encode($return);
break;
break;
case 'profile_matches':
$skill_rel_user = new SkillRelUser();
$skills = $_REQUEST['skill_id'];
$total_skills_to_search = $skills;
$users = $skill_rel_user->get_user_by_skills($skills);
$user_list = array();
$count_skills = count($skills);
if (!empty($users)) {
foreach ($users as $user) {
$user_info = api_get_user_info($user['user_id']);
$user_list[$user['user_id']]['user'] = $user_info;
$my_user_skills = $skill_rel_user->get_user_skills($user['user_id']);
$user_skill_list = array();
foreach ($my_user_skills as $skill_item) {
$user_skill_list[] = $skill_item['skill_id'];
}
$user_skills = array();
$found_counts = 0;
foreach ($skills as $skill_id) {
$found = false;
if (in_array($skill_id, $user_skill_list)) {
$found = true;
$found_counts++;
$user_skills[$skill_id] = array('skill_id' => $skill_id, 'found' => $found);
}
}
foreach ($my_user_skills as $my_skill) {
if (!isset($user_skills[$my_skill['skill_id']])) {
$user_skills[$my_skill['skill_id']] = array('skill_id' => $my_skill['skill_id'], 'found' => false);
}
$total_skills_to_search[$my_skill['skill_id']] = $my_skill['skill_id'];
}
$user_list[$user['user_id']]['skills'] = $user_skills;
$user_list[$user['user_id']]['total_found_skills'] = $found_counts;
}
$ordered_user_list = array();
foreach ($user_list as $user_id => $user_data) {
$ordered_user_list[$user_data['total_found_skills']][] = $user_data;
}
if (!empty($ordered_user_list)) {
arsort($ordered_user_list);
}
}
Display::display_no_header();
Display::$global_template->assign('order_user_list', $ordered_user_list);
Display::$global_template->assign('total_search_skills', $count_skills);
$skill_list = array();
if (!empty($total_skills_to_search)) {
$total_skills_to_search = $skill->get_skills_info($total_skills_to_search);
foreach ($total_skills_to_search as $skill_info) {
$skill_list[$skill_info['id']] = $skill_info;
}
}
Display::$global_template->assign('skill_list', $skill_list);
echo Display::$global_template->fetch('default/skill/profile.tpl');
break;
case 'delete_gradebook_from_skill':
case 'remove_skill':
if (!empty($_REQUEST['skill_id']) && !empty($_REQUEST['gradebook_id'])) {
@ -235,13 +263,6 @@ switch ($action) {
echo 0;
}
break;
case 'get_skills_tree_json':
$user_id = isset($_REQUEST['load_user']) && $_REQUEST['load_user'] == 1 ? api_get_user_id() : 0;
$skill_id = isset($_REQUEST['skill_id']) ? $_REQUEST['skill_id'] : 0;
$depth = isset($_REQUEST['main_depth']) ? $_REQUEST['main_depth'] : 2;
$all = $skill->get_skills_tree_json($user_id, $skill_id, false, $depth);
echo $all;
break;
default:
echo '';
}

@ -10,7 +10,17 @@
*/
class Gradebook extends Model {
public $columns = array('id', 'name', 'description', 'course_code', 'parent_id', 'grade_model_id', 'session_id', 'weight', 'user_id');
public function __construct() {
$this->table = Database::get_main_table(TABLE_MAIN_GRADEBOOK_CATEGORY);
$this->table_skill = Database::get_main_table(TABLE_MAIN_SKILL);
$this->table_skill_rel_gradebook = Database::get_main_table(TABLE_MAIN_SKILL_REL_GRADEBOOK);
}
/**
* Returns true if the gradebook is active and visible in a course, false
* otherwise.
@ -39,14 +49,6 @@ class Gradebook extends Model {
return $item['visibility'] == '1';
}
var $columns = array('id', 'name', 'description', 'course_code', 'parent_id', 'grade_model_id', 'session_id', 'weight', 'user_id');
public function __construct() {
$this->table = Database::get_main_table(TABLE_MAIN_GRADEBOOK_CATEGORY);
$this->table_skill = Database::get_main_table(TABLE_MAIN_SKILL);
$this->table_skill_rel_gradebook = Database::get_main_table(TABLE_MAIN_SKILL_REL_GRADEBOOK);
}
public function get_all($options = array()) {
$gradebooks = parent::get_all($options);
foreach($gradebooks as &$gradebook) {
@ -159,4 +161,4 @@ class Gradebook extends Model {
// action links
echo Display::grid_html('gradebooks');
}
}
}

@ -278,6 +278,7 @@ class SkillRelUser extends Model {
class Skill extends Model {
var $columns = array('id', 'name','description', 'access_url_id', 'short_code');
var $required = array('name');
/** Array of colours by depth, for the coffee wheel. Each depth has 4 col */
var $colours = array(
0 => array('#f9f0ab', '#ecc099', '#e098b0', '#ebe378'),
@ -295,6 +296,7 @@ class Skill extends Model {
public function __construct() {
$this->table = Database::get_main_table(TABLE_MAIN_SKILL);
$this->table_user = Database::get_main_table(TABLE_MAIN_USER);
$this->table_skill_rel_gradebook = Database::get_main_table(TABLE_MAIN_SKILL_REL_GRADEBOOK);
$this->table_skill_rel_user = Database::get_main_table(TABLE_MAIN_SKILL_REL_USER);
$this->table_course = Database::get_main_table(TABLE_MAIN_COURSE);
@ -447,6 +449,11 @@ class Skill extends Model {
if (!isset($params['parent_id'])) {
$params['parent_id'] = 1;
}
if (!is_array($params['parent_id'])) {
$params['parent_id'] = array($params['parent_id']);
}
$skill_rel_skill = new SkillRelSkill();
$skill_rel_gradebook = new SkillRelGradebook();
@ -455,13 +462,19 @@ class Skill extends Model {
$skill_id = $this->save($params);
if ($skill_id) {
//Saving skill_rel_skill (parent_id, relation_type)
$attributes = array(
'skill_id' => $skill_id,
'parent_id' => $params['parent_id'],
'relation_type' => $params['relation_type'],
//'level' => $params['level'],
);
$skill_rel_skill->save($attributes);
foreach ($params['parent_id'] as $parent_id) {
$relation_exists = $skill_rel_skill->relation_exists($skill_id, $parent_id);
if (!$relation_exists) {
$attributes = array(
'skill_id' => $skill_id,
'parent_id' => $parent_id,
'relation_type' => $params['relation_type'],
//'level' => $params['level'],
);
$skill_rel_skill->save($attributes);
}
}
if (!empty($params['gradebook_id'])) {
foreach ($params['gradebook_id'] as $gradebook_id) {
@ -475,6 +488,23 @@ class Skill extends Model {
}
return null;
}
public function delete($skill_id) {
/*$params = array('skill_id' => $skill_id);
$skill_rel_skill = new SkillRelSkill();
$skills = $skill_rel_skill->get_all(array('where'=>array('skill_id = ?' =>$skill_id)));
$skill_rel_profile = new SkillRelProfile();
$skill_rel_gradebook = new SkillRelGradebook();
$skill_rel_user = new SkillRelUser();
$this->delete($skill_id);
$skill_rel_gradebook->delete($params);*/
}
public function edit($params) {
if (!isset($params['parent_id'])) {
@ -577,7 +607,7 @@ class Skill extends Model {
}
}
return $clean_skill;
}
}
public function get_skills_tree($user_id = null, $skill_id = null, $return_flat_array = false, $add_root = false) {
if (isset($user_id) && !empty($user_id)) {
@ -614,19 +644,25 @@ class Skill extends Model {
if (!empty($skills)) {
foreach ($skills as &$skill) {
if (!empty($skill_id)) {
if ($skill['id'] == $skill_id) {
$skill['parent_id'] = 'root';
}
} else {
if (empty($skill_id)) {
if ($skill['parent_id'] == 0) {
$skill['parent_id'] = 'root';
}
} else {
if ($skill['id'] == $skill_id) {
$skill['parent_id'] = 'root';
}
}
//In order to paint all members of a family with the same color
if ($skill['parent_id'] == 1) {
$family[$skill['id']] = $this->get_all_children($skill['id']);
if (empty($skill_id)) {
if ($skill['parent_id'] == 1) {
$family[$skill['id']] = $this->get_all_children($skill['id']);
}
} else {
if ($skill['parent_id'] == $skill_id) {
$family[$skill['id']] = $this->get_all_children($skill['id']);
}
}
// because except main keys (id, name, children) others keys are not saved while in the space tree
@ -663,13 +699,13 @@ class Skill extends Model {
$new_family_array[$main_family_id] = $family_id;
$family_id++;
}
if (empty($original_skill)) {
$refs['root']['children'][0] = $skills[1];
$skills[$skill_id]['data']['family_id'] = 1;
$refs['root']['children'][0]['children'][0] = $skills[$skill_id];
$flat_array[$skill_id] = $skills[$skill_id];
} else {
} else {
// Moving node to the children index of their parents
@ -749,4 +785,58 @@ class Skill extends Model {
}
return null;
}
function get_user_skill_ranking($user_id) {
$user_id = intval($user_id);
$sql = "SELECT count(skill_id) count FROM {$this->table} s INNER JOIN {$this->table_skill_rel_user} su ON (s.id = su.skill_id)
WHERE user_id = $user_id";
$result = Database::query($sql);
if (Database::num_rows($result)) {
$result = Database::fetch_row($result);
return $result[0];
}
return false;
}
function get_user_list_skill_ranking($start, $limit, $sidx, $sord, $where_condition) {
$start = intval($start);
$limit = intval($limit);
$sql = "SELECT u.user_id, firstname, lastname, count(username) skills_acquired
FROM {$this->table} s INNER JOIN {$this->table_skill_rel_user} su ON (s.id = su.skill_id)
INNER JOIN {$this->table_user} u ON u.user_id = su.user_id
WHERE 1=1 $where_condition
GROUP BY username
ORDER BY $sidx $sord
LIMIT $start , $limit ";
$result = Database::query($sql);
if (Database::num_rows($result)) {
return Database::store_result($result, 'ASSOC');
}
return array();
}
function get_user_list_skill_ranking_count() {
$sql = "SELECT count(skill_id) count FROM {$this->table} s INNER JOIN {$this->table_skill_rel_user} su ON (s.id = su.skill_id)";
$result = Database::query($sql);
if (Database::num_rows($result)) {
$result = Database::fetch_row($result);
return $result[0];
}
return 0;
}
function get_count_skills_by_course($course_code) {
$sql = "SELECT count(skill_id) as count FROM {$this->table_gradebook} g INNER JOIN {$this->table_skill_rel_gradebook} sg ON g.id = sg.gradebook_id
WHERE course_code = '$course_code'";
$result = Database::query($sql);
if (Database::num_rows($result)) {
$result = Database::fetch_row($result);
return $result[0];
}
return 0;
}
}

@ -1,104 +1,3 @@
<script>
$(document).ready( function() {
/*$("#skills").fcbkcomplete({
json_url: "{{url}}?a=find_skills",
cache: false,
filter_case: false,
filter_hide: true,
complete_text:"{{'StartToType'|get_lang}}",
firstselected: true,
//onremove: "testme",
onselect:"check_skills",
filter_selected: true,
newel: true
});*/
//Open dialog
/*$("#dialog-form").dialog({
autoOpen: false,
modal : true,
width : 550,
height : 350,
});
var name = $( "#name" ),
description = $( "#description" ),
allFields = $( [] ).add( name ).add( description ), tips = $(".validateTips");
$("#dialog-form").dialog({
buttons: {
"Add" : function() {
var bValid = true;
bValid = bValid && checkLength( name, "name", 1, 255 );
var params = $("#save_profile_form").serialize();
$.ajax({
url: '{{url}}?a=save_profile&'+params,
success:function(data) {
$("#dialog-form").dialog("close");
alert("{{"Saved"|get_lang}}");
}
});
},
},
close: function() {
$("#name").attr('value', '');
$("#description").attr('value', '');
}
});*/
$("#add_profile").click(function() {
$("#name").attr('value', '');
$("#description").attr('value', '');
$("#dialog-form").dialog("open");
});
});
function check_skills() {
//selecting only selected users
$("#skills option:selected").each(function() {
var skill_id = $(this).val();
if (skill_id != "" ) {
$.ajax({
url: "{{url}}?a=skill_exists",
data: "skill_id="+skill_id,
success: function(return_value) {
if (return_value == 0 ) {
alert("{{'SkillDoesNotExist'|get_lang}}");
//Deleting select option tag
$("#skills option[value="+skill_id+"]").remove();
//Deleting holder
$(".holder li").each(function () {
if ($(this).attr("rel") == skill_id) {
$(this).remove();
}
});
}
},
});
}
});
}
function checkLength( o, n, min, max ) {
if ( o.val().length > max || o.val().length < min ) {
o.addClass( "ui-state-error" );
updateTips( "Length of " + n + " must be between " +
min + " and " + max + "." );
return false;
} else {
return true;
}
}
</script>
{{ form }}
{% if search_skill_list is not null %}
<div class="skills-skills">
<h3>{{"Skills"|get_lang}}</h3>
@ -137,7 +36,7 @@ function checkLength( o, n, min, max ) {
{% if count == total_search_skills %}
{{ "CompleteMatch"|get_lang }}
{% else %}
{% if count == 1 %}
{% if (total_search_skills - count) == 1 %}
{{ "MissingOneStepToMatch"|get_lang }}</h2>
{% else %}
{{ "MissingXStepsToMatch"|get_lang | format(total_search_skills - count)}}

@ -78,7 +78,8 @@ function check_skills_sidebar() {
skill_info = get_skill_info(skill_id);
li = fill_skill_search_li(skill_id, skill_info.name);
$("#skill_holder").append(li);
}
}
}
},
});
@ -87,6 +88,7 @@ function check_skills_sidebar() {
}
function fill_skill_search_li(skill_id, skill_name, checked) {
checked_condition = '';
if (checked == 1) {
checked_condition = 'checked=checked';
@ -235,10 +237,17 @@ function submit_profile_search_form() {
function add_skill_in_profile_list(skill_id, skill_name) {
if ($('#profile_match_item_'+skill_id).length == 0 ) {
$('#profile_search').append('<li class="bit-box" id="profile_match_item_'+skill_id+'">'+skill_name+' <a rel="'+skill_id+'" class="closebutton" href="#"></a> </li>');
} else {
$('#profile_match_item_'+skill_id).remove();
}
//Hiding showing the save this search
if ($('#profile_search li').length == 0) {
$('#profile-options-container').hide();
} else {
$('#profile-options-container').show();
}
}
$(document).ready(function() {
@ -258,6 +267,17 @@ $(document).ready(function() {
load_nodes(skill_id, main_depth);
});
/* URL link when searching skills */
$("#skill_search").on("click", "a.load_root", function() {
skill_id = $(this).attr('rel');
skill_to_load_from_get = 0;
load_nodes(skill_id, main_depth);
});
/*$("#skill_search").on("click", "a#clear_selection", function() {
});*/
/* Profile matcher */
@ -289,7 +309,9 @@ $(document).ready(function() {
$.ajax({
url: '{{ url }}&a=get_skills_by_profile&profile_id='+profile_id,
success:function(json) {
skill_list = jQuery.parseJSON(json);
skill_list = jQuery.parseJSON(json);
$('#profile_search').empty();
$('#skill_holder').empty();
jQuery.each(skill_list, function(index, skill_id) {
skill_info = get_skill_info(skill_id);
@ -630,7 +652,7 @@ $(document).ready(function() {
//alert('Middle mouse button pressed');
break;
case 3:
open_popup(d);
open_popup(d.id);
//alert('Right mouse button pressed');
break;
default:
@ -682,7 +704,7 @@ $(document).ready(function() {
});
}
function open_popup(d) {
function open_popup(skill_id, parent_id) {
//Cleaning selected
$("#gradebook_id").find('option').remove();
$("#parent_id").find('option').remove();
@ -690,7 +712,15 @@ $(document).ready(function() {
$("#gradebook_holder").find('li').remove();
$("#skill_edit_holder").find('li').remove();
var skill = get_skill_info(d.id);
var skill = false;
if (skill_id) {
skill = get_skill_info(skill_id);
}
var parent = false;
if (parent_id) {
parent = get_skill_info(parent_id);
}
if (skill) {
var parent_info = get_skill_info(skill.extra.parent_id);
@ -717,19 +747,61 @@ $(document).ready(function() {
var params = $("#add_item").find(':input').serialize();
add_skill(params);
},
"{{ "Delete"|get_lang }}" : function() {
/*"{{ "Delete"|get_lang }}" : function() {
},*/
"{{ "CreateChildSkill"|get_lang }}" : function() {
open_popup(0, skill.id);
},
"{{ "AddSkillToProfileSearch"|get_lang }}" : function() {
add_skill_in_profile_list(skill.id, skill.name);
}
},
close: function() {
$("#name").attr('value', '');
$("#description").attr('value', '');
$("#name").attr('value','');
$("#description").attr('value', '');
//Redirect to the main root
load_nodes(0, main_depth);
}
});
$("#dialog-form").dialog("open");
}
}
if (parent) {
$("#id").attr('value','');
$("#name").attr('value', '');
$("#short_code").attr('value', '');
$("#description").attr('value', '');
//Filling parent_id
$("#parent_id").append('<option class="selected" value="'+parent.id+'" selected="selected" >');
$("#skill_edit_holder").append('<li class="bit-box">'+parent.name+'</li>');
//Filling the gradebook_id
jQuery.each(parent.gradebooks, function(index, data) {
$("#gradebook_id").append('<option class="selected" value="'+data.id+'" selected="selected" >');
$("#gradebook_holder").append('<li id="gradebook_item_'+data.id+'" class="bit-box">'+data.name+' <a rel="'+data.id+'" class="closebutton" href="#"></a> </li>');
});
$("#dialog-form").dialog({
buttons: {
"{{ "Save"|get_lang }}" : function() {
var params = $("#add_item").find(':input').serialize();
add_skill(params);
}
},
close: function() {
$("#name").attr('value', '');
$("#description").attr('value', '');
load_nodes(0, main_depth);
}
});
$("#dialog-form").dialog("open");
}
}
var colors1 = $.xcolor.analogous('#da0'); //8 colors
@ -947,9 +1019,11 @@ $(document).ready(function() {
<select id="skill_id" name="skill_id" />
</select>
<br /><br />
<div class="btn-group">
<a class="btn load_root" rel="1" href="#">{{ "Root"|get_lang }}</a>
<!-- <a id="clear_selection" class="btn">{{ "Clear"|get_lang }}</a> -->
</div>
<ul id="skill_holder" class="holder holder_simple">
<li><a class="load_wheel" rel="1" href="#">Root</a></li>
</ul>
</form>
@ -966,15 +1040,19 @@ $(document).ready(function() {
<input class="btn" type="submit" value="{{ "SearchProfileMatches"|get_lang }}">
</form>
<div id="profile-options-container" style="display:none">
{{ 'IsThisWhatYouWereLookingFor'|get_lang }}
<form id="save_profile_form_button" class="form-search">
<input class="btn" type="submit" value="{{ "SaveThisSearch"|get_lang }}">
</form>
{{ 'IsThisWhatYouWereLookingFor'|get_lang }}
<form id="save_profile_form_button" class="form-search">
<input class="btn" type="submit" value="{{ "SaveThisSearch"|get_lang }}">
</form>
</div>
<div id="saved_profiles">
</div>
<h3>{{ 'MySkills'|get_lang }}</h3>
<hr>

Loading…
Cancel
Save