From 3cc034fce32851ddd820fc32abe764a879f5347a Mon Sep 17 00:00:00 2001 From: jmontoya Date: Thu, 23 Feb 2012 04:09:06 +0100 Subject: [PATCH] Adding the course/access per course timeline (not finished yet) --- main/auth/my_progress.php | 48 +++- main/css/base.css | 64 ++++++ main/css/biggerdot.png | Bin 0 -> 1016 bytes main/css/dot.gif | Bin 0 -> 1098 bytes .../lib/javascript/jquery.timelinr-0.9.5.js | 215 ++++++++++++++++++ main/mySpace/index.php | 4 +- 6 files changed, 328 insertions(+), 3 deletions(-) create mode 100644 main/css/biggerdot.png create mode 100644 main/css/dot.gif create mode 100644 main/inc/lib/javascript/jquery.timelinr-0.9.5.js diff --git a/main/auth/my_progress.php b/main/auth/my_progress.php index 13a716d8562..948bd5d3350 100644 --- a/main/auth/my_progress.php +++ b/main/auth/my_progress.php @@ -23,9 +23,14 @@ api_block_anonymous_users(); $htmlHeadXtra[] = api_get_jquery_ui_js(); +$htmlHeadXtra[] = api_get_js('jquery.timelinr-0.9.5.js'); + $htmlHeadXtra[] = ' '; -$content = Tracking::show_user_progress(api_get_user_id()); + + +require_once api_get_path(SYS_CODE_PATH).'mySpace/myspace.lib.php'; + + + +$user_id = api_get_user_id(); + +// Code to +$course_user_list = CourseManager::get_courses_list_by_user_id($user_id); +$dates = $issues = ''; +foreach($course_user_list as $course) { + $items = MySpace::get_connections_to_course($user_id, $course['code']); + foreach($items as $result) { + $login = $result['login']; + $course_info = api_get_course_info($course['code']); + $course_image = ''; + $dates .= '
  • '. api_get_utc_datetime($login).'
  • '; + $issues .= '
  • '.$course_image.'
    +
    Has ingresado al curso '.$course['code'].' el + '. api_convert_and_format_date($login, DATE_FORMAT_LONG).'
  • '; + } +} + +$content .= Tracking::show_user_progress(api_get_user_id()); if (!empty($content)) { $content .= '

    '; } +$content .= '

    '.get_lang('Timeline').'

    '; + +$content .= '
    +
      + '.$dates.' +
    +
      + '.$issues.' +
    + + +
    '; + $content .= Tracking::show_course_detail(api_get_user_id(), $_GET['course'], $_GET['session_id']); if (empty($content)) { $message = Display::return_message(get_lang('NoDataAvailable'), 'warning'); } - + + + $tpl = new Template($tool_name); //$tpl->assign('actions', $actions); diff --git a/main/css/base.css b/main/css/base.css index e4bd94b3e3d..40673ae56bd 100644 --- a/main/css/base.css +++ b/main/css/base.css @@ -3481,3 +3481,67 @@ a:active{ .lt-ie7 #chatmain { display:none; } + + + +#timeline { + + background: url("dot.gif") repeat-x scroll left 45px; + height: 350px; + margin: 0px auto; + overflow: hidden; + position: relative; + width: 600px; +} + +#dates { + + /* height: 60px; */ + overflow: hidden; + width: 800px; +} + + +#dates .selected { + font-size: 22px; + font-weight: bold; + font-color: #E06B04; +} + +#dates li { + background: url("biggerdot.png") no-repeat scroll center bottom transparent; + float: left; + font-size: 14px; + height: 50px; + list-style: none outside none; + text-align: center; + width: 130px; +} + +#issues { + height: 350px; + overflow: hidden; + width: 800px; +} + +#issues li { + float: left; + height: 350px; + list-style: none outside none; + width: 800px; +} + +#issues li h3 { + color: #FFCC00; + font-size: 48px; + margin: 0px; + text-shadow: 1px 1px 2px #000000; +} + +#issues li p { + font-size: 14px; + font-weight: normal; + line-height: 22px; + margin-right: 70px; + text-shadow: 1px 1px 2px #000000; +} \ No newline at end of file diff --git a/main/css/biggerdot.png b/main/css/biggerdot.png new file mode 100644 index 0000000000000000000000000000000000000000..66324b66b430b8f644c6c77db4a1e5345e060e4c GIT binary patch literal 1016 zcmaJ=%TE(Q9A2piLWqr;;3FoJCE;ZE)fe4#rLbG1ktJAaY@!KHcc*j%yR+;Lbm5}W zgAz{s4<0-bPKIbAn&82M2d|nK!T}R62G1OvEp72&-DGy=H~GHr_nh^a>DvQ+*ZLTS z87NF@MY{KftM?rJ?_GGeLAR?UUnaA-O6t%<%$SKQ2o!8MkBSJIt4p6ymSG~SRVtIR zJ|!F2=3t270^6l*hRKcwE;JSp0TncFISTvh?Jf%}Q(^BXbwPJkRI?`6JT$vDT{6}d zjEu>S-U8V`rUEu15Crz3oY*b9s)^Dh#5jk04b3Z zdiB&a#5RT`l6P?)(CNBp0C&ITs_WVZ=M%3 znM|l5Nim9u`Ku0rLCo=oS_&HS4bO6kg&hzo!U|p{3QHqBNx^p8vX0*@6D=4YK$jOe zAxx48MJZLq0p5ps~&;`dnJq)TUDH?VS@b{ zc7ZyZ1UfVt|kwaQs^OT$F$PGuqcBy9#dDaRtCp>I}M#{3)IhJ@wy(ZV}9801jm#4w- zVPpSlbnA*vPk3yPEj8MMj~qJf9v$n0ozFY;Nh}t$u~P80a{RbD9ErYSmIk8_x{m7L zd(Ym--0^1jIIg#cFVINM%8) zeo$(0erZv1Dp0vH$f^P>=c3falKi5O{QMkPC+XvUCm4#%^aPaEu0JuT@5Uqj4hlkjT}u)91Wb! zoGf5^UGkGlb5rw5V0u#!dYy3U1to>t0-((Enm@@7}(7{p#h5=g*!#dHm?%gZuaH-no72=8fyuu3ou(>Eea+=gyuved^?i(;JWy=vu(<;#{XS-fcBg8B32&Y3-H=8Wmn zrcRkWY2t+bzTTehuFj73w$_&BrpAW)y4srRs>+J;veJ^`qQZjwyxg4Ztjvt`wA7U3 zq{M{yxY(HJsK|)$u+Wg;puhlsKVKhjFHaA5H&+*DCr1Z+J6juTD@zM=GgA{|BVd-& z)78<|($r8_Q&mw`QdE$ala-N{l9Uh^6BQ8_5)|O)= 0) { + $(settings.issuesDiv).stop(); + $(settings.datesDiv+' li:first-child a').click(); + } else { + if (!$(settings.issuesDiv).is(':animated')) { + $(settings.issuesDiv).animate({'marginLeft':currentPositionIssues+widthIssue},{queue:false, duration:settings.issuesSpeed}); + $(settings.issuesDiv+' li').animate({'opacity':settings.issuesTransparency},{queue:false, duration:settings.issuesSpeed}); + $(settings.issuesDiv+' li.'+settings.issuesSelectedClass).removeClass(settings.issuesSelectedClass).prev().fadeTo(settings.issuesTransparencySpeed, 1).addClass(settings.issuesSelectedClass); + $(settings.datesDiv).animate({'marginLeft':currentIssueDate},{queue:false, duration:'settings.datesSpeed'}); + $(settings.datesDiv+' a.'+settings.datesSelectedClass).removeClass(settings.datesSelectedClass).parent().prev().children().addClass(settings.datesSelectedClass); + } + } + } else if(settings.orientation == 'vertical') { + var currentPositionIssues = parseInt($(settings.issuesDiv).css('marginTop').substring(0,$(settings.issuesDiv).css('marginTop').indexOf('px'))); + var currentIssueIndex = currentPositionIssues/heightIssue; + var currentPositionDates = parseInt($(settings.datesDiv).css('marginTop').substring(0,$(settings.datesDiv).css('marginTop').indexOf('px'))); + var currentIssueDate = currentPositionDates+heightDate; + if(currentPositionIssues >= 0) { + $(settings.issuesDiv).stop(); + $(settings.datesDiv+' li:first-child a').click(); + } else { + if (!$(settings.issuesDiv).is(':animated')) { + $(settings.issuesDiv).animate({'marginTop':currentPositionIssues+heightIssue},{queue:false, duration:settings.issuesSpeed}); + $(settings.issuesDiv+' li').animate({'opacity':settings.issuesTransparency},{queue:false, duration:settings.issuesSpeed}); + $(settings.issuesDiv+' li.'+settings.issuesSelectedClass).removeClass(settings.issuesSelectedClass).prev().fadeTo(settings.issuesTransparencySpeed, 1).addClass(settings.issuesSelectedClass); + $(settings.datesDiv).animate({'marginTop':currentIssueDate},{queue:false, duration:'settings.datesSpeed'},{queue:false, duration:settings.issuesSpeed}); + $(settings.datesDiv+' a.'+settings.datesSelectedClass).removeClass(settings.datesSelectedClass).parent().prev().children().addClass(settings.datesSelectedClass); + } + } + } + }); + + // keyboard navigation, added since 0.9.1 + if(settings.arrowKeys=='true') { + if(settings.orientation=='horizontal') { + $(document).keydown(function(event){ + if (event.keyCode == 39) { + $(settings.nextButton).click(); + } + if (event.keyCode == 37) { + $(settings.prevButton).click(); + } + }); + } else if(settings.orientation=='vertical') { + $(document).keydown(function(event){ + if (event.keyCode == 40) { + $(settings.nextButton).click(); + } + if (event.keyCode == 38) { + $(settings.prevButton).click(); + } + }); + } + } + + // default position startAt, added since 0.9.3 + $(settings.datesDiv+' li').eq(settings.startAt-1).find('a').trigger('click'); + + // autoPlay, added since 0.9.4 + if(settings.autoPlay == 'true') { + setInterval("autoPlay()", settings.autoPlayPause); + } + }); + +}; + +// autoPlay, added since 0.9.4 +function autoPlay(){ + var currentDate = $(settings.datesDiv).find('a.'+settings.datesSelectedClass); + if(settings.autoPlayDirection == 'forward') { + if(currentDate.parent().is('li:last-child')) { + $(settings.datesDiv+' li:first-child').find('a').trigger('click'); + } else { + currentDate.parent().next().find('a').trigger('click'); + } + } else if(settings.autoPlayDirection == 'backward') { + if(currentDate.parent().is('li:first-child')) { + $(settings.datesDiv+' li:last-child').find('a').trigger('click'); + } else { + currentDate.parent().prev().find('a').trigger('click'); + } + } +} \ No newline at end of file diff --git a/main/mySpace/index.php b/main/mySpace/index.php index 887daf3e12b..bb1b63d4bcc 100644 --- a/main/mySpace/index.php +++ b/main/mySpace/index.php @@ -730,4 +730,6 @@ function rsort_sessions($a, $b) { function get_number_of_courses() { global $courses; return count($courses); -} \ No newline at end of file +} + +