Skip to content

Commit

Permalink
Merge branch 'MDL-32309-master' of git://github.com/FMCorz/moodle
Browse files Browse the repository at this point in the history
  • Loading branch information
danpoltawski committed Sep 18, 2012
2 parents 2f2c5a0 + ef21ad2 commit b454629
Show file tree
Hide file tree
Showing 5 changed files with 65 additions and 43 deletions.
87 changes: 49 additions & 38 deletions calendar/lib.php
Original file line number Diff line number Diff line change
Expand Up @@ -871,6 +871,49 @@ function calendar_top_controls($type, $data) {
return $content;
}

/**
* Formats a filter control element.
*
* @param moodle_url $url of the filter
* @param int $type constant defining the type filter
* @return string html content of the element
*/
function calendar_filter_controls_element(moodle_url $url, $type) {
global $OUTPUT;
switch ($type) {
case CALENDAR_EVENT_GLOBAL:
$typeforhumans = 'global';
$class = 'calendar_event_global';
break;
case CALENDAR_EVENT_COURSE:
$typeforhumans = 'course';
$class = 'calendar_event_course';
break;
case CALENDAR_EVENT_GROUP:
$typeforhumans = 'groups';
$class = 'calendar_event_group';
break;
case CALENDAR_EVENT_USER:
$typeforhumans = 'user';
$class = 'calendar_event_user';
break;
}
if (calendar_show_event_type($type)) {
$icon = $OUTPUT->pix_icon('t/hide', get_string('hide'));
$str = get_string('hide'.$typeforhumans.'events', 'calendar');
} else {
$icon = $OUTPUT->pix_icon('t/show', get_string('show'));
$str = get_string('show'.$typeforhumans.'events', 'calendar');
}
$content = html_writer::start_tag('li', array('class' => 'calendar_event'));
$content .= html_writer::start_tag('a', array('href' => $url));
$content .= html_writer::tag('span', $icon, array('class' => $class));
$content .= html_writer::tag('span', $str, array('class' => 'eventname'));
$content .= html_writer::end_tag('a');
$content .= html_writer::end_tag('li');
return $content;
}

/**
* Get the controls filter for calendar.
*
Expand All @@ -883,60 +926,28 @@ function calendar_filter_controls(moodle_url $returnurl) {
global $CFG, $USER, $OUTPUT;

$groupevents = true;

$id = optional_param( 'id',0,PARAM_INT );

$seturl = new moodle_url('/calendar/set.php', array('return' => base64_encode($returnurl->out(false)), 'sesskey'=>sesskey()));

$content = '<table>';
$content .= '<tr>';
$content = html_writer::start_tag('ul');

$seturl->param('var', 'showglobal');
if (calendar_show_event_type(CALENDAR_EVENT_GLOBAL)) {
$content .= '<td class="eventskey calendar_event_global" style="width: 11px;"><img src="'.$OUTPUT->pix_url('t/hide') . '" class="iconsmall" alt="'.get_string('hide').'" title="'.get_string('tt_hideglobal', 'calendar').'" style="cursor:pointer" onclick="location.href='."'".$seturl."'".'" /></td>';
$content .= '<td><a href="'.$seturl.'" title="'.get_string('tt_hideglobal', 'calendar').'">'.get_string('global', 'calendar').'</a></td>'."\n";
} else {
$content .= '<td style="width: 11px;"><img src="'.$OUTPUT->pix_url('t/show') . '" class="iconsmall" alt="'.get_string('show').'" title="'.get_string('tt_showglobal', 'calendar').'" style="cursor:pointer" onclick="location.href='."'".$seturl."'".'" /></td>';
$content .= '<td><a href="'.$seturl.'" title="'.get_string('tt_showglobal', 'calendar').'">'.get_string('global', 'calendar').'</a></td>'."\n";
}
$content .= calendar_filter_controls_element($seturl, CALENDAR_EVENT_GLOBAL);

$seturl->param('var', 'showcourses');
if (calendar_show_event_type(CALENDAR_EVENT_COURSE)) {
$content .= '<td class="eventskey calendar_event_course" style="width: 11px;"><img src="'.$OUTPUT->pix_url('t/hide') . '" class="iconsmall" alt="'.get_string('hide').'" title="'.get_string('tt_hidecourse', 'calendar').'" style="cursor:pointer" onclick="location.href='."'".$seturl."'".'" /></td>';
$content .= '<td><a href="'.$seturl.'" title="'.get_string('tt_hidecourse', 'calendar').'">'.get_string('course', 'calendar').'</a></td>'."\n";
} else {
$content .= '<td style="width: 11px;"><img src="'.$OUTPUT->pix_url('t/show') . '" class="iconsmall" alt="'.get_string('hide').'" title="'.get_string('tt_showcourse', 'calendar').'" style="cursor:pointer" onclick="location.href='."'".$seturl."'".'" /></td>';
$content .= '<td><a href="'.$seturl.'" title="'.get_string('tt_showcourse', 'calendar').'">'.get_string('course', 'calendar').'</a></td>'."\n";
}
$content .= calendar_filter_controls_element($seturl, CALENDAR_EVENT_COURSE);

if (isloggedin() && !isguestuser()) {
$content .= "</tr>\n<tr>";

if ($groupevents) {
// This course MIGHT have group events defined, so show the filter
$seturl->param('var', 'showgroups');
if (calendar_show_event_type(CALENDAR_EVENT_GROUP)) {
$content .= '<td class="eventskey calendar_event_group" style="width: 11px;"><img src="'.$OUTPUT->pix_url('t/hide') . '" class="iconsmall" alt="'.get_string('hide').'" title="'.get_string('tt_hidegroups', 'calendar').'" style="cursor:pointer" onclick="location.href='."'".$seturl."'".'" /></td>';
$content .= '<td><a href="'.$seturl.'" title="'.get_string('tt_hidegroups', 'calendar').'">'.get_string('group', 'calendar').'</a></td>'."\n";
} else {
$content .= '<td style="width: 11px;"><img src="'.$OUTPUT->pix_url('t/show') . '" class="iconsmall" alt="'.get_string('show').'" title="'.get_string('tt_showgroups', 'calendar').'" style="cursor:pointer" onclick="location.href='."'".$seturl."'".'" /></td>';
$content .= '<td><a href="'.$seturl.'" title="'.get_string('tt_showgroups', 'calendar').'">'.get_string('group', 'calendar').'</a></td>'."\n";
}
$content .= calendar_filter_controls_element($seturl, CALENDAR_EVENT_GROUP);
} else {
// This course CANNOT have group events, so lose the filter
$content .= '<td style="width: 11px;"></td><td>&nbsp;</td>'."\n";
}

$seturl->param('var', 'showuser');
if (calendar_show_event_type(CALENDAR_EVENT_USER)) {
$content .= '<td class="eventskey calendar_event_user" style="width: 11px;"><img src="'.$OUTPUT->pix_url('t/hide') . '" class="iconsmall" alt="'.get_string('hide').'" title="'.get_string('tt_hideuser', 'calendar').'" style="cursor:pointer" onclick="location.href='."'".$seturl."'".'" /></td>';
$content .= '<td><a href="'.$seturl.'" title="'.get_string('tt_hideuser', 'calendar').'">'.get_string('user', 'calendar').'</a></td>'."\n";
} else {
$content .= '<td style="width: 11px;"><img src="'.$OUTPUT->pix_url('t/show') . '" class="iconsmall" alt="'.get_string('show').'" title="'.get_string('tt_showuser', 'calendar').'" style="cursor:pointer" onclick="location.href='."'".$seturl."'".'" /></td>';
$content .= '<td><a href="'.$seturl.'" title="'.get_string('tt_showuser', 'calendar').'">'.get_string('user', 'calendar').'</a></td>'."\n";
}
$content .= calendar_filter_controls_element($seturl, CALENDAR_EVENT_USER);
}
$content .= "</tr>\n</table>\n";
$content .= html_writer::end_tag('ul');

return $content;
}
Expand Down
6 changes: 4 additions & 2 deletions calendar/renderer.php
Original file line number Diff line number Diff line change
Expand Up @@ -559,8 +559,6 @@ public function show_month_detailed(calendar_information $calendar, moodle_url $
$table->data[] = $row;
$output .= html_writer::table($table);

// OK, now for the filtering display
$output .= $this->filter_selection_table($calendar);
return $output;
}

Expand All @@ -569,9 +567,13 @@ public function show_month_detailed(calendar_information $calendar, moodle_url $
*
* @param calendar_information $calendar
* @return string
* @deprecated since Moodle 2.4 MDL-32309
* @see calendar_filter_controls()
*/
protected function filter_selection_table(calendar_information $calendar, moodle_url $returnurl = null) {
global $SESSION;
debugging('Method core_calendar_renderer::filter_selection_table() is deprecated, please use '.
'calendar_filter_controls() instead', DEBUG_DEVELOPER);

if ($returnurl === null) {
$returnurl = $this->page->url;
Expand Down
8 changes: 8 additions & 0 deletions lang/en/calendar.php
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,10 @@
$string['groupevent'] = 'Group event';
$string['groupevents'] = 'Group events';
$string['hidden'] = 'hidden';
$string['hidecourseevents'] = 'Hide course events';
$string['hideglobalevents'] = 'Hide global events';
$string['hidegroupsevents'] = 'Hide group events';
$string['hideuserevents'] = 'Hide user events';
$string['ical'] = 'iCal';
$string['invalidtimedurationminutes'] = 'The duration in minutes you have entered is invalid. Please enter the duration in minutes greater than 0 or select no duration.';
$string['invalidtimedurationuntil'] = 'The date and time you selected for duration until is before the start time of the event. Please correct this before proceeding.';
Expand Down Expand Up @@ -122,6 +126,10 @@
$string['repeatweeksr'] = 'events';
$string['sat'] = 'Sat';
$string['saturday'] = 'Saturday';
$string['showcourseevents'] = 'Show course events';
$string['showglobalevents'] = 'Show global events';
$string['showgroupsevents'] = 'Show group events';
$string['showuserevents'] = 'Show user events';
$string['shown'] = 'shown';
$string['spanningevents'] = 'Events underway';
$string['sun'] = 'Sun';
Expand Down
5 changes: 4 additions & 1 deletion theme/base/style/calendar.css
Original file line number Diff line number Diff line change
Expand Up @@ -44,5 +44,8 @@
.block .calendar-controls .previous {text-align: left;display: block;float: left;width: 12%;}
.block .calendar-controls .current {float:left;text-align: center;display: block;width:76%;}
.block .calendar-controls .next {text-align: right;display: block;float: left;width: 12%;}
.block .filters table {border-collapse:separate;border-spacing: 2px;padding: 2px;width: 100%;}
.block .calendar_filters ul {list-style: none; margin: 0;}
.block .calendar_filters li { margin-bottom: .2em;}
.block .calendar_filters li span img { padding: 0 .2em;}
.block .calendar_filters .eventname { padding-left: .2em;}
.block .content h3.eventskey {margin-top:0.5em;margin-bottom:0;margin-left:0.5em;}
2 changes: 0 additions & 2 deletions theme/standard/style/calendar.css
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,6 @@

.block .minicalendar {font-size:0.85em;border:1px solid #DDDDDD;margin: 10px 0;border-collapse:separate;border-spacing:1px;}
.block .minicalendar .duration {border-width:1px 0;}
.block .calendar_filters.filters {background-color: #EEEEEE;}
.block .calendar_filters.filters table {width:100%;}

.calendar_event_global {border-color: #D6F8CD; background-color:#D6F8CD;}
.calendar_event_course {border-color: #FFD3BD; background-color:#FFD3BD;}
Expand Down

0 comments on commit b454629

Please sign in to comment.