From: defacer Date: Fri, 21 May 2004 10:54:46 +0000 (+0000) Subject: Lots of usability improvements and some bugfixes: X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=34bf3ad4f37d953ad380717ad4319df1f4962dd5;p=moodle.git Lots of usability improvements and some bugfixes: Fixed wrong redirection after changing filters for all calendar screens Fixed course selection menu to work without javascript Moved course selection menu to the header, and added it to all screens All screens now conform to the selected course in the menu Small improvements in the way guests are handled --- diff --git a/calendar/lib.php b/calendar/lib.php index decd6a19a2..e7e61182dc 100644 --- a/calendar/lib.php +++ b/calendar/lib.php @@ -556,33 +556,29 @@ function calendar_filter_controls($type, $vars = NULL) { $groupevents = true; - if($vars === NULL) { - switch($type) { - case 'upcoming': - $getvars = ''; - break; - case 'prefs': - $getvars = '&from=prefs&pref='.$_GET['edit']; - break; - case 'event': - global $day, $mon, $yr; - $getvars = '&from=event&id='.$_GET['id']; - break; - case 'day': - global $day, $mon, $yr; - $getvars = '&from=day&cal_d='.$day.'&cal_m='.$mon.'&cal_y='.$yr; - break; - case 'course': - global $course; - $getvars = '&from=course&id='.$course->id; - if($course->groupmode == NOGROUPS && $course->groupmodeforce) { - $groupevents = false; - } - break; - } + switch($type) { + case 'upcoming': + $getvars = '&from=upcoming'; + break; + case 'prefs': + $getvars = '&from=prefs&pref='.$_GET['edit']; + break; + case 'event': + $getvars = '&from=event&id='.$_GET['id']; + break; + case 'day': + $getvars = '&from=day'; + break; + case 'course': + $getvars = '&from=course&id='.$_GET['id']; + if($course->groupmode == NOGROUPS && $course->groupmodeforce) { + $groupevents = false; + } + break; } - else { - $getvars = '&'.$vars; + + if(!empty($vars)) { + $getvars .= '&'.$vars; } $content = ''; diff --git a/calendar/set.php b/calendar/set.php index 842ce75852..959a89930b 100644 --- a/calendar/set.php +++ b/calendar/set.php @@ -38,72 +38,72 @@ // // ///////////////////////////////////////////////////////////////////////////// - require_once('../config.php'); - require_once('lib.php'); + require_once('../config.php'); + require_once('lib.php'); - require_login(); + require_login(); - require_variable($_GET['from']); - require_variable($_GET['var']); - optional_variable($_GET['value']); - optional_variable($_GET['id']); - optional_variable($_GET['cal_d']); - optional_variable($_GET['cal_m']); - optional_variable($_GET['cal_y']); + require_variable($_GET['from']); + require_variable($_GET['var']); + optional_variable($_GET['value']); + optional_variable($_GET['id']); + optional_variable($_GET['cal_d']); + optional_variable($_GET['cal_m']); + optional_variable($_GET['cal_y']); - switch($_GET['var']) { - case 'setcourse': - $id = intval($_GET['id']); - if($id == 0) { - $SESSION->cal_courses_shown = array(); - } - else if($id == 1) { - $SESSION->cal_courses_shown = calendar_get_default_courses(true); - } - else { - // We don't check for membership anymore: if(isstudent($id, $USER->id) || isteacher($id, $USER->id)) { - $SESSION->cal_courses_shown = $id; - } - break; - case 'showgroups': - $SESSION->cal_show_groups = !$SESSION->cal_show_groups; - break; - case 'showcourses': - $SESSION->cal_show_course = !$SESSION->cal_show_course; - break; - case 'showglobal': - $SESSION->cal_show_global = !$SESSION->cal_show_global; - break; - case 'showuser': - if($SESSION->cal_show_user) { - $SESSION->cal_show_user = false; - } - else { - $SESSION->cal_show_user = $USER->id; - } - break; - } + switch($_GET['var']) { + case 'setcourse': + $id = intval($_GET['id']); + if($id == 0) { + $SESSION->cal_courses_shown = array(); + } + else if($id == 1) { + $SESSION->cal_courses_shown = calendar_get_default_courses(true); + } + else { + // We don't check for membership anymore: if(isstudent($id, $USER->id) || isteacher($id, $USER->id)) { + $SESSION->cal_courses_shown = $id; + } + break; + case 'showgroups': + $SESSION->cal_show_groups = !$SESSION->cal_show_groups; + break; + case 'showcourses': + $SESSION->cal_show_course = !$SESSION->cal_show_course; + break; + case 'showglobal': + $SESSION->cal_show_global = !$SESSION->cal_show_global; + break; + case 'showuser': + if($SESSION->cal_show_user) { + $SESSION->cal_show_user = false; + } + else { + $SESSION->cal_show_user = $USER->id; + } + break; + } - switch($_GET['from']) { - case 'prefs': - redirect($CFG->wwwroot.'/calendar/preferences.php?edit='.$_GET['pref']); - break; - case 'month': - redirect($CFG->wwwroot.'/calendar/view.php?view=month&cal_d='.$_GET['cal_d'].'&cal_m='.$_GET['cal_m'].'&cal_y='.$_GET['cal_y']); - break; - case 'upcoming': - redirect($CFG->wwwroot.'/calendar/view.php?view=upcoming&cal_d='.$_GET['cal_d'].'&cal_m='.$_GET['cal_m'].'&cal_y='.$_GET['cal_y']); - break; - case 'event': - redirect($CFG->wwwroot.'/calendar/view.php?view=event&id='.$_GET['id']); - break; - case 'day': - redirect($CFG->wwwroot.'/calendar/view.php?view=day&cal_d='.$_GET['cal_d'].'&cal_m='.$_GET['cal_m'].'&cal_y='.$_GET['cal_y']); - break; - case 'course': - redirect($CFG->wwwroot.'/course/view.php?id='.intval($_GET['id'])); - break; - default: + switch($_GET['from']) { + case 'prefs': + redirect($CFG->wwwroot.'/calendar/preferences.php?edit='.$_GET['pref']); + break; + case 'month': + redirect($CFG->wwwroot.'/calendar/view.php?view=month&cal_d='.$_GET['cal_d'].'&cal_m='.$_GET['cal_m'].'&cal_y='.$_GET['cal_y']); + break; + case 'upcoming': + redirect($CFG->wwwroot.'/calendar/view.php?view=upcoming&cal_d='.$_GET['cal_d'].'&cal_m='.$_GET['cal_m'].'&cal_y='.$_GET['cal_y']); + break; + case 'event': + redirect($CFG->wwwroot.'/calendar/view.php?view=event&id='.$_GET['id']); + break; + case 'day': + redirect($CFG->wwwroot.'/calendar/view.php?view=day&cal_d='.$_GET['cal_d'].'&cal_m='.$_GET['cal_m'].'&cal_y='.$_GET['cal_y']); + break; + case 'course': + redirect($CFG->wwwroot.'/course/view.php?id='.intval($_GET['id'])); + break; + default: - } + } ?> diff --git a/calendar/view.php b/calendar/view.php index b2be822af1..dfa37d3f82 100644 --- a/calendar/view.php +++ b/calendar/view.php @@ -99,13 +99,7 @@ calendar_set_filters($courses, $groups, $users, $defaultcourses, $defaultcourses); } else { - if($_GET['view'] == 'upcoming') { - $defaultcourses = calendar_get_default_courses(); - calendar_set_filters($courses, $groups, $users, $defaultcourses, $defaultcourses, false); - } - else { - calendar_set_filters($courses, $groups, $users); - } + calendar_set_filters($courses, $groups, $users); } // Let's see if we are supposed to provide a referring course link @@ -165,7 +159,7 @@ print_side_block_start(get_string('monthlyview', 'calendar'), '', 'sideblockmain'); list($prevmon, $prevyr) = calendar_sub_month($mon, $yr); list($nextmon, $nextyr) = calendar_add_month($mon, $yr); - $getvars = 'from=month&cal_d='.$day.'&cal_m='.$mon.'&cal_y='.$yr; // For filtering + $getvars = 'cal_d='.$day.'&cal_m='.$mon.'&cal_y='.$yr; // For filtering echo calendar_filter_controls($_GET['view'], $getvars); echo '

'; echo calendar_top_controls('display', array('m' => $prevmon, 'y' => $prevyr)); @@ -207,6 +201,8 @@ function calendar_show_day($d, $m, $y, $courses, $groups, $users) { list($d, $m, $y) = array(intval($now['mday']), intval($now['mon']), intval($now['year'])); } + $getvars = 'from=day&cal_d='.$d.'&cal_m='.$m.'&cal_y='.$y; // For filtering + $starttime = make_timestamp($y, $m, $d); $endtime = $starttime + SECS_IN_DAY - 1; $whereclause = calendar_sql_where($starttime, $endtime, $users, $groups, $courses); @@ -220,10 +216,10 @@ function calendar_show_day($d, $m, $y, $courses, $groups, $users) { // New event button if(isguest()) { - $text = get_string('dayview', 'calendar'); + $text = get_string('dayview', 'calendar').': '.calendar_course_filter_selector($getvars); } else { - $text = '

'.get_string('dayview', 'calendar').'
'; + $text = '
'.get_string('dayview', 'calendar').': '.calendar_course_filter_selector($getvars).'
'; $text.= '
'; $text.= ''; $text.= ''; @@ -337,10 +333,10 @@ function calendar_show_month_detailed($m, $y, $courses, $groups, $users) { // New event button if(isguest()) { - $text = get_string('detailedmonthview', 'calendar'); + $text = get_string('detailedmonthview', 'calendar').': '.calendar_course_filter_selector($getvars); } else { - $text = '
'.get_string('detailedmonthview', 'calendar').'
'; + $text = '
'.get_string('detailedmonthview', 'calendar').': '.calendar_course_filter_selector($getvars).'
'; $text.= ''; $text.= ''; $text.= ''; @@ -351,33 +347,6 @@ function calendar_show_month_detailed($m, $y, $courses, $groups, $users) { print_side_block_start($text, '', 'mycalendar'); - if(isadmin($USER->id)) { - $coursesdata = get_courses('all', 'c.shortname'); - } - elseif(!isguest($USER->id)) { - $coursesdata = get_my_courses($USER->id, 'shortname'); - } - else { - $coursesdata = get_record('course', 'id', $SESSION->cal_course_referer); - } - $coursesdata = array_diff_assoc($coursesdata, array(1 => 1)); - - if(!isguest($USER->id)) { - echo '

'.get_string('eventsfromcourse', 'calendar').': '; - echo '

'; - } - echo calendar_top_controls('month', array('m' => $m, 'y' => $y)); // Start calendar display @@ -560,7 +529,7 @@ function calendar_show_upcoming_events($courses, $groups, $users, $futuredays, $ return; } - print_side_block_start(get_string('upcomingevents', 'calendar'), '', 'mycalendar'); + print_side_block_start(get_string('upcomingevents', 'calendar').': '.calendar_course_filter_selector('from=upcoming'), '', 'mycalendar'); for($i = 0; $i < $numevents; ++$i) { echo '

'; if(!empty($events[$i]->icon)) { @@ -571,7 +540,7 @@ function calendar_show_upcoming_events($courses, $groups, $users, $futuredays, $ } echo ''.$events[$i]->name.":\n"; echo ''.$events[$i]->time.''; - echo '
'.$events[$i]->description.'
'; + echo '

'.$events[$i]->description.'
'; if($i < $numevents - 1) { echo '
'; } @@ -670,4 +639,50 @@ function calendar_print_event_table($event, $starttime, $endtime, &$coursecache, echo "\n
\n"; } + +function calendar_course_filter_selector($getvars = '') { + global $USER, $SESSION; + + if(isadmin($USER->id)) { + $coursesdata = get_courses('all', 'c.shortname'); + } + elseif(!isguest($USER->id)) { + $coursesdata = get_my_courses($USER->id, 'shortname'); + } + else { + $coursesdata = get_record('course', 'id', $SESSION->cal_course_referer); + } + $coursesdata = array_diff_assoc($coursesdata, array(1 => 1)); + + $selector = ''; + + if(!isguest($USER->id)) { + $selector .= ''; + $selector .= ''; + if(!empty($getvars)) { + $getarray = explode('&', $getvars); + foreach($getarray as $getvar) { + $selector .= ''; + } + } + $selector .= ''; + $selector .= ''; + $selector .= ''; + $selector .= ''; + } + + return $selector; +} + ?>