浏览代码

Adding new session screen see BT#1630 no sorting funcionality yet ...

Julio Montoya 14 年之前
父节点
当前提交
32d673acfd
共有 3 个文件被更改,包括 358 次插入67 次删除
  1. 209 49
      main/inc/ajax/course_home.ajax.php
  2. 14 0
      main/inc/lib/text.lib.php
  3. 135 18
      main/session/index.php

+ 209 - 49
main/inc/ajax/course_home.ajax.php

@@ -8,21 +8,21 @@ $action = $_GET['a'];
 switch ($action) {
 	case 'set_visibility':
 		require_once '../global.inc.php';
-		if(api_is_allowed_to_edit(null,true)) {
-				$tool_table = Database::get_course_table(TABLE_TOOL_LIST);
-				$tool_id = Security::remove_XSS($_GET["id"]);
-				$tool_info = api_get_tool_information($tool_id);
-				$tool_visibility   = $tool_info['visibility'];
-				$tool_image        = $tool_info['image'];
-				$new_image         = str_replace('.gif','_na.gif',$tool_image);
-				$requested_image   = ($tool_visibility == 0 ) ? $tool_image : $new_image;
-				$requested_clase   = ($tool_visibility == 0 ) ? 'visible' : 'invisible';
-				$requested_message = ($tool_visibility == 0 ) ? 'is_active' : 'is_inactive';
-			    $requested_view    = ($tool_visibility == 0 ) ? 'visible.gif' : 'invisible.gif';
-			    $requested_visible = ($tool_visibility == 0 ) ? 1 : 0;
+		if (api_is_allowed_to_edit(null,true)) {
+			$tool_table = Database::get_course_table(TABLE_TOOL_LIST);
+			$tool_id = Security::remove_XSS($_GET["id"]);
+			$tool_info = api_get_tool_information($tool_id);
+			$tool_visibility   = $tool_info['visibility'];
+			$tool_image        = $tool_info['image'];
+			$new_image         = str_replace('.gif','_na.gif',$tool_image);
+			$requested_image   = ($tool_visibility == 0 ) ? $tool_image : $new_image;
+			$requested_clase   = ($tool_visibility == 0 ) ? 'visible' : 'invisible';
+			$requested_message = ($tool_visibility == 0 ) ? 'is_active' : 'is_inactive';
+		    $requested_view    = ($tool_visibility == 0 ) ? 'visible.gif' : 'invisible.gif';
+		    $requested_visible = ($tool_visibility == 0 ) ? 1 : 0;
 
-		    	$requested_view    = ($tool_visibility == 0 ) ? 'visible.gif' : 'invisible.gif';
-		    	$requested_visible = ($tool_visibility == 0 ) ? 1 : 0;
+	    	$requested_view    = ($tool_visibility == 0 ) ? 'visible.gif' : 'invisible.gif';
+	    	$requested_visible = ($tool_visibility == 0 ) ? 1 : 0;
 			//HIDE AND REACTIVATE TOOL
 			if ($_GET["id"]==strval(intval($_GET["id"]))) {
 
@@ -44,41 +44,15 @@ switch ($action) {
 
 				$sql="UPDATE $tool_table SET visibility=$requested_visible WHERE id='".intval($_GET['id'])."'";
 				Database::query($sql);
-			}
-				/*
-				-----------------------------------------------------------
-					HIDE
-				-----------------------------------------------------------
-				*/
-		/*		if(isset($_GET['visibility']) && $_GET['visibility']==0) // visibility 1 -> 0
-				{
-					if ($_GET["id"]==strval(intval($_GET["id"]))) {
-						$sql="UPDATE $tool_table SET visibility=0 WHERE id='".intval($_GET["id"])."'";
-						Database::query($sql);
-					}
-				}
-
-			  /*
-				-----------------------------------------------------------
-					REACTIVATE
-				-----------------------------------------------------------
-				*/
-		/*		elseif(isset($_GET['visibility'])&& $_GET['visibility']==1) // visibility 0,2 -> 1
-				{
-					if ($_GET["id"]==strval(intval($_GET["id"]))) {
-						Database::query("UPDATE $tool_table SET visibility=1 WHERE id='".intval($_GET["id"])."'");
-					}
-				}
-
-		*/
-				$response_data = array(
-					'image'   => $requested_image,
-					'tclass'  => $requested_clase,
-					'message' => $requested_message,
-		      		'view'    => $requested_view
-				);
-				print(json_encode($response_data));
-			}
+			}	
+			$response_data = array(
+				'image'   => $requested_image,
+				'tclass'  => $requested_clase,
+				'message' => $requested_message,
+	      		'view'    => $requested_view
+			);
+			print(json_encode($response_data));
+    }
 	break;
 	
 	case 'show_course_information' :
@@ -99,6 +73,192 @@ switch ($action) {
 		// Function that displays the details of the course description in html.
 		echo  CourseManager::get_details_course_description_html($descriptions, api_get_system_encoding(), false);
 	break;
+    case 'session_courses_lp_default':        
+        
+        require_once '../global.inc.php';
+        
+        $libpath = api_get_path(LIBRARY_PATH);
+        require_once $libpath.'course.lib.php';
+        //require_once $libpath.'usermanager.lib.php';
+        require_once $libpath.'sessionmanager.lib.php';        
+        require_once api_get_path(SYS_CODE_PATH).'newscorm/learnpathList.class.php';
+        
+        
+        $page  = $_REQUEST['page'];     //page
+        $limit = $_REQUEST['rows'];     // quantity of rows
+        $sidx  = $_REQUEST['sidx'];    //index to filter    
+        $sord  = $_REQUEST['sord'];    //asc or desc        
+        $session_id  = $_REQUEST['session_id'];
+                
+        if(!$sidx) $sidx =1;
+        
+        $start = $limit*$page - $limit; 
+        
+        $course_list    = SessionManager::get_course_list_by_session_id($session_id);
+                        
+        $count = 0;
+        
+        foreach ($course_list as $item) {    
+            $list               = new LearnpathList(api_get_user_id(),$item['code']);
+            $flat_list          = $list->get_flat_list();    
+            $lps[$item['code']] = $flat_list;
+            
+            foreach($flat_list as $lp_id => $lp_item) {                                                    
+                $temp[$count]['id']= $lp_id;
+                $temp[$count]['cell']=array($lp_item['publicated_on'], $item['code'], $lp_item['lp_name']);
+                $count++;     
+            }              
+        } 
+        
+        $i =0;
+        foreach($temp as $key=>$row) {   
+            $row = $row['cell'];            
+            if ($key >= $start  && $key < ($start + $limit)) {                 
+                $responce->rows[$i]['id']= $key;
+                $responce->rows[$i]['cell']=array($row[0], $row[1], $row[2]);
+                $i++;                
+            }
+        }
+        
+        if($count > 0 && $limit > 0) { 
+            $total_pages = ceil($count/$limit); 
+        } else { 
+            $total_pages = 0; 
+        }         
+        $responce->total    = $total_pages;         
+        if ($page > $total_pages) { 
+            $responce->page= $total_pages;
+        } else {
+            $responce->page     = $page;	
+        }        
+        $responce->records = $count;    
+        echo json_encode($responce);        
+        break;
+        
+        case 'session_courses_lp_by_week':
+        
+            require_once '../global.inc.php';
+        
+            $libpath = api_get_path(LIBRARY_PATH);
+            require_once $libpath.'course.lib.php';
+            //require_once $libpath.'usermanager.lib.php';
+            require_once $libpath.'sessionmanager.lib.php';        
+            require_once api_get_path(SYS_CODE_PATH).'newscorm/learnpathList.class.php';
+            
+            
+            $page  = $_REQUEST['page'];     //page
+            $limit = $_REQUEST['rows'];     // quantity of rows
+            $sidx  = $_REQUEST['sidx'];    //index to filter    
+            $sord  = $_REQUEST['sord'];    //asc or desc        
+            $session_id  = $_REQUEST['session_id'];
+                    
+            if(!$sidx) $sidx =1;
+            
+            $start = $limit*$page - $limit; 
+            
+            $course_list    = SessionManager::get_course_list_by_session_id($session_id);
+                            
+            $count = 0;
+            
+            foreach ($course_list as $item) {    
+                $list               = new LearnpathList(api_get_user_id(),$item['code']);
+                $flat_list          = $list->get_flat_list();    
+                $lps[$item['code']] = $flat_list;
+                
+                foreach($flat_list as $lp_id => $lp_item) {                                                    
+                    $temp[$count]['id']= $lp_id;
+                    $temp[$count]['cell']=array(get_week_from_day($lp_item['publicated_on']), $lp_item['publicated_on'], $item['code'], $lp_item['lp_name']);
+                    $count++;     
+                }              
+            } 
+            
+            $i =0;
+            foreach($temp as $key=>$row) {   
+                $row = $row['cell'];            
+                if ($key >= $start  && $key < ($start + $limit)) {                 
+                    $responce->rows[$i]['id']= $key;
+                    $responce->rows[$i]['cell']=array($row[0], $row[1], $row[2],$row[3]);
+                    $i++;                
+                }
+            }
+            
+            if($count > 0 && $limit > 0) { 
+                $total_pages = ceil($count/$limit); 
+            } else { 
+                $total_pages = 0; 
+            }         
+            $responce->total    = $total_pages;         
+            if ($page > $total_pages) { 
+                $responce->page= $total_pages;
+            } else {
+                $responce->page     = $page;    
+            }        
+            $responce->records = $count;    
+            echo json_encode($responce); 
+            break;
+        
+          case 'session_courses_lp_by_course':
+        
+            require_once '../global.inc.php';
+        
+            $libpath = api_get_path(LIBRARY_PATH);
+            require_once $libpath.'course.lib.php';
+            //require_once $libpath.'usermanager.lib.php';
+            require_once $libpath.'sessionmanager.lib.php';        
+            require_once api_get_path(SYS_CODE_PATH).'newscorm/learnpathList.class.php';
+            
+            
+            $page  = $_REQUEST['page'];     //page
+            $limit = $_REQUEST['rows'];     // quantity of rows
+            $sidx  = $_REQUEST['sidx'];    //index to filter    
+            $sord  = $_REQUEST['sord'];    //asc or desc        
+            $session_id  = $_REQUEST['session_id'];
+                    
+            if(!$sidx) $sidx =1;
+            
+            $start = $limit*$page - $limit; 
+            
+            $course_list    = SessionManager::get_course_list_by_session_id($session_id);
+                            
+            $count = 0;
+            
+            foreach ($course_list as $item) {    
+                $list               = new LearnpathList(api_get_user_id(),$item['code']);
+                $flat_list          = $list->get_flat_list();    
+                $lps[$item['code']] = $flat_list;
+                
+                foreach($flat_list as $lp_id => $lp_item) {                                                    
+                    $temp[$count]['id']= $lp_id;
+                    $temp[$count]['cell']=array($lp_item['publicated_on'], $item['code'], $lp_item['lp_name']);
+                    $count++;     
+                }              
+            } 
+            
+            $i =0;
+            foreach($temp as $key=>$row) {   
+                $row = $row['cell'];            
+                if ($key >= $start  && $key < ($start + $limit)) {                 
+                    $responce->rows[$i]['id']= $key;
+                    $responce->rows[$i]['cell']=array($row[0], $row[1], $row[2],$row[3]);
+                    $i++;                
+                }
+            }
+            
+            if($count > 0 && $limit > 0) { 
+                $total_pages = ceil($count/$limit); 
+            } else { 
+                $total_pages = 0; 
+            }         
+            $responce->total    = $total_pages;         
+            if ($page > $total_pages) { 
+                $responce->page= $total_pages;
+            } else {
+                $responce->page     = $page;    
+            }        
+            $responce->records = $count; 
+            
+            echo json_encode($responce); 
+            break;
 	default:
 		echo '';
 }

+ 14 - 0
main/inc/lib/text.lib.php

@@ -576,6 +576,20 @@ function get_last_week() {
     return $arrdays;
 }
 
+/**
+ * Gets the week from a day
+ * @param   string  date in UTC (2010-01-01 12:12:12)
+ * @return  int     int with the week number of the year
+ */
+function get_week_from_day($date) {
+    if (!empty($date)) {
+	   $time = api_strtotime($date,'UTC');
+       return date('W', $date);
+    } else {
+    	return date('W');
+    }
+}
+
 
 /**
  * Deprecated functions

+ 135 - 18
main/session/index.php

@@ -7,58 +7,175 @@ require_once $libpath.'course.lib.php';
 //require_once $libpath.'usermanager.lib.php';
 require_once $libpath.'sessionmanager.lib.php';
 require_once $libpath.'formvalidator/FormValidator.class.php';
-
+require_once $libpath.'text.lib.php';
+require_once api_get_path(SYS_CODE_PATH).'newscorm/learnpathList.class.php';
 
 api_block_anonymous_users(); // Only users who are logged in can proceed.
 
 
 $this_section = SECTION_COURSES;
 
-
 $htmlHeadXtra[] = '<link rel="stylesheet" href="'.api_get_path(WEB_LIBRARY_PATH).'javascript/jquery-ui/cupertino/jquery-ui-1.8.7.custom.css" type="text/css">';
 $htmlHeadXtra[] = '<script src="'.api_get_path(WEB_LIBRARY_PATH).'javascript/jquery-1.4.4.min.js" type="text/javascript" language="javascript"></script>'; //jQuery
-$htmlHeadXtra[] = '<script src="'.api_get_path(WEB_LIBRARY_PATH).'javascript/jquery-ui/cupertino/jquery-ui-1.8.7.custom.min.js" type="text/javascript" language="javascript"></script>'; //jQuery
-   
+$htmlHeadXtra[] = '<script src="'.api_get_path(WEB_LIBRARY_PATH).'javascript/jquery-ui/cupertino/jquery-ui-1.8.7.custom.min.js" type="text/javascript" language="javascript"></script>';
+
+$htmlHeadXtra[] = '<link rel="stylesheet" href="'.api_get_path(WEB_LIBRARY_PATH).'javascript/jqgrid/css/ui.jqgrid.css" type="text/css">';
+
+$htmlHeadXtra[] = '<script src="'.api_get_path(WEB_LIBRARY_PATH).'javascript/jqgrid/js/i18n/grid.locale-en.js" type="text/javascript" language="javascript"></script>'; 
+$htmlHeadXtra[] = '<script src="'.api_get_path(WEB_LIBRARY_PATH).'javascript/jqgrid/js/jquery.jqGrid.min.js" type="text/javascript" language="javascript"></script>';
+
+    
 Display :: display_header($nameTools);
 
 
 
-$session_id     = intval($_GET['id_session']);
+$session_id     = intval($_GET['session_id']);
 $session_info   = SessionManager::fetch($session_id);
+$session_list   = SessionManager::get_sessions_by_coach(api_get_user_id());
 $course_list    = SessionManager::get_course_list_by_session_id($session_id);
 $course_select = array();
 
-echo Display::tag('h1', $session_info['name']);
-
+$session_select = array();
+foreach ($session_list as $item) {
+    $session_select[$item['id']] =  $item['name'];
+}
+/*
 foreach ($course_list as $course_item) {
 	$course_select[$course_item['id']] =  $course_item['title'];
+}*/
+// Session list form
+$form = new FormValidator('exercise_admin', 'get', api_get_self().'?session_id='.$session_id);
+$form->addElement('select', 'session_id', get_lang('SessionList'), $session_select, 'onchange="javascript:change_session()"');
+$defaults['session_id'] = $session_id;
+$form->setDefaults($defaults);
+$form->display();
+
+echo Display::tag('h1', $session_info['name']);
+
+
+//Listing LPs from all courses
+$lps = array();
+
+foreach ($course_list as $item) {    
+    $list       = new LearnpathList(api_get_user_id(),$item['code']);
+    $flat_list  = $list->get_flat_list();        
+    $lps[$item['code']] = $flat_list;
+    foreach ($flat_list as $item) {        
+        //var_dump(get_week_from_day($item['publicated_on']));	
+    }
+    
 }
 
-$form = new FormValidator('exercise_admin', 'post', api_get_self());
-$form->addElement('select', 'course_id', get_lang('CourseList'),$course_select,'onchange="javascript:feedbackselection()"');
-$form->display();
+
+
 
 
 
 if ($form->validate()) {
     
 }
+
 ?>
 <br />
 <script>
-    $(function() {
-        $( "#tabs" ).tabs();
-        $( "#sub_tab" ).tabs();
+    function change_session() {
+            document.exercise_admin.submit();
+    }
+        
+    
+$(function() {
+    $( "#tabs" ).tabs();
+    $( "#sub_tab" ).tabs();
+        
+      
+    $("#list_default").jqGrid({
+        url:'<?php echo api_get_path(WEB_AJAX_PATH).'course_home.ajax.php?a=session_courses_lp_default&session_id='.$session_id; ?>',
+        datatype: 'json',    
+        colNames:['Date','Course', 'LP'],
+        colModel :[       
+          {name:'date',     index:'date',   width:120, align:'right'},
+          {name:'course',   index:'course', width:150},  
+          {name:'lp',       index:'lp',     width:250} 
+        ],
+        pager: '#pager1',
+        rowNum:100,
+        /* rowList:[10,20,30], */   
+        sortname: 'date',
+        sortorder: 'desc',
+        viewrecords: true    
     });
-</script>
+      
+    
+    $("#list_course").jqGrid({
+        url:'<?php echo api_get_path(WEB_AJAX_PATH).'course_home.ajax.php?a=session_courses_lp_by_course&session_id='.$session_id; ?>',
+        datatype: 'json',    
+        colNames:['Date','Course', 'LP'],
+        colModel :[             
+          {name:'date',     index:'date',   width:120},
+          {name:'course',   index:'course', width:150},  
+          {name:'lp',       index:'lp',     width:250} 
+        ],
+        pager: '#pager2',
+        rowNum:100,
+        /* rowList:[10,20,30], */  
+        sortname: 'date',
+        sortorder: 'desc',
+        viewrecords: true,
+        grouping:true, 
+        groupingView : { 
+            groupField : ['course'],
+            groupColumnShow : [false],
+            groupText : ['<b>Course {0} - {1} Item(s)</b>']
+        } 
+    });  
+  
+  
+  
+    $("#list_week").jqGrid({
+        url:'<?php echo api_get_path(WEB_AJAX_PATH).'course_home.ajax.php?a=session_courses_lp_by_week&session_id='.$session_id; ?>',
+        datatype: 'json',    
+        colNames:['Week','Date','Course', 'LP'],
+        colModel :[
+          {name:'week',     index:'week',   width:120, align:'right'},       
+          {name:'date',     index:'date',   width:120, align:'right'},
+          {name:'course',   index:'course', width:150},  
+          {name:'lp',       index:'lp',     width:250} 
+        ],
+        pager: '#pager3',
+        rowNum:100,
+        /* rowList:[10,20,30], */   
+        sortname: 'date',
+        sortorder: 'desc',
+        viewrecords: true,
+        grouping:true, 
+        groupingView : { 
+            groupField : ['week'],
+            groupColumnShow : [false],
+            groupText : ['<b>Week {0} - {1} Item(s)</b>']
+        } 
+    });  
+  
+});
 
 
+
+</script>
+
 <?php 
+$lp_table1 = Display::tag('table','',array('id'=>'list_default'));
+$lp_table1 .= Display::tag('div','',array('id'=>'pager1'));  
+
+$lp_table2 = Display::tag('table','',array('id'=>'list_week'));
+$lp_table2 .= Display::tag('div','',array('id'=>'pager2'));
 
-$headers = array(get_lang('MyCourses'), get_lang('MyQCM'), get_lang('MyResults'));
-$sub_header = array(get_lang('AllCourses'), get_lang('PerWeek'), get_lang('ParMatiere'));
-$tabs =  Display::tabs($sub_header, array('aaaa','bbb','ccc'),'sub_tab');
+$lp_table3 = Display::tag('table','',array('id'=>'list_course'));
+$lp_table3 .= Display::tag('div','',array('id'=>'pager3'));
+
+
+$headers = array(get_lang('LearningPaths'), get_lang('MyQCM'), get_lang('MyResults'));
+$sub_header = array(get_lang('AllLearningPaths'), get_lang('PerWeek'), get_lang('ByCourse'));
+$tabs =  Display::tabs($sub_header, array($lp_table1,$lp_table2, $lp_table3),'sub_tab');
 echo Display::tabs($headers, array($tabs,'bbb','ccc'));
-exit;
+
 // Footer
 Display :: display_footer();