Skip to content

Commit

Permalink
Merge branch 'MDL-72355-master' of git://github.com/mickhawkins/moodle
Browse files Browse the repository at this point in the history
  • Loading branch information
abgreeve committed Oct 4, 2021
2 parents 1a9bee6 + b5a64bf commit 7a1b3e0
Show file tree
Hide file tree
Showing 7 changed files with 27 additions and 45 deletions.
1 change: 0 additions & 1 deletion blocks/calendar_month/block_calendar_month.php
Expand Up @@ -64,7 +64,6 @@ public function get_content() {
}

$options = [
'showexportlink' => false,
'showfullcalendarlink' => true
];
list($footerdata, $footertemplate) = calendar_get_footer_options($calendar, $options);
Expand Down
36 changes: 5 additions & 31 deletions calendar/classes/external/footer_options_exporter.php
Expand Up @@ -53,11 +53,6 @@ class footer_options_exporter extends exporter {
*/
protected $token;

/**
* @var bool $showexportlink Whether the export link should be displayed or not.
*/
protected $showexportlink;

/**
* @var bool $showfullcalendarlink Whether the full calendar link should be displayed or not.
*/
Expand All @@ -71,27 +66,15 @@ class footer_options_exporter extends exporter {
* @param string $token The user sha1 token.
* @param array $options Display options for the footer. If an option is not set, a default value will be provided.
* It consists of:
* - showexportlink - bool - Whether to show the export link or not. Defaults to true.
* - showfullcalendarlink - bool - Whether to show the full calendar link or not. Defaults to false.
*/
public function __construct(\calendar_information $calendar, $userid, $token, array $options = []) {
$this->calendar = $calendar;
$this->userid = $userid;
$this->token = $token;
$this->showexportlink = $options['showexportlink'] ?? true;
$this->showfullcalendarlink = $options['showfullcalendarlink'] ?? false;
}

/**
* Get the export calendar link.
*
* @return string The export calendar hyperlink.
*/
protected function get_export_calendar_link(): string {
$exportcalendarurl = new moodle_url('/calendar/export.php', $this->get_link_params());
return $exportcalendarurl->out(true);
}

/**
* Get manage subscription link.
*
Expand Down Expand Up @@ -140,20 +123,11 @@ protected function get_other_values(renderer_base $output) {
];
}

if (!empty($CFG->enablecalendarexport)) {
if ($this->showexportlink) {
$values->footerlinks[] = (object)[
'url' => $this->get_export_calendar_link(),
'linkname' => get_string('exportcalendar', 'calendar'),
];
}

if ($managesubscriptionlink = $this->get_manage_subscriptions_link()) {
$values->footerlinks[] = (object)[
'url' => $managesubscriptionlink,
'linkname' => get_string('managesubscriptions', 'calendar'),
];
}
if (!empty($CFG->enablecalendarexport) && $managesubscriptionlink = $this->get_manage_subscriptions_link()) {
$values->footerlinks[] = (object)[
'url' => $managesubscriptionlink,
'linkname' => get_string('managesubscriptions', 'calendar'),
];
}

return (array) $values;
Expand Down
1 change: 0 additions & 1 deletion calendar/lib.php
Expand Up @@ -3706,7 +3706,6 @@ function calendar_get_timestamp($d, $m, $y, $time = 0) {
* @param calendar_information $calendar The calendar information object.
* @param array $options Display options for the footer. If an option is not set, a default value will be provided.
* It consists of:
* - showexportlink - bool - Whether to show the export link or not. Defaults to true.
* - showfullcalendarlink - bool - Whether to show the full calendar link or not. Defaults to false.
*
* @return array The data for template and template name.
Expand Down
6 changes: 5 additions & 1 deletion calendar/renderer.php
Expand Up @@ -327,7 +327,11 @@ public function render_subscriptions_header(): string {
$exportcalendarbutton->class .= ' float-sm-right float-right';
$output = $this->output->heading(get_string('managesubscriptions', 'calendar'));
$output .= html_writer::start_div('header d-flex flex-wrap mt-5');
$output .= html_writer::tag('h3', get_string('yoursubscriptions', 'calendar'), ['class' => 'mr-auto']);
$headerattr = [
'class' => 'mr-auto',
'aria-describedby' => 'subscription_details_table',
];
$output .= html_writer::tag('h3', get_string('yoursubscriptions', 'calendar'), $headerattr);
$output .= $this->output->render($importcalendarbutton);
$output .= $this->output->render($exportcalendarbutton);
$output .= html_writer::end_div();
Expand Down
6 changes: 3 additions & 3 deletions calendar/tests/behat/calendar_import.feature
Expand Up @@ -18,7 +18,7 @@ Feature: Import and edit calendar events
Scenario: Import then edit a calendar event.
Given I log in as "teacher1"
And I view the calendar for "1" "2016"
And I click on "Manage subscriptions" "link"
And I click on "Import or export calendars" "link"
And I press "Import calendar"
And I set the following fields to these values:
| Calendar name | Test Import |
Expand All @@ -43,7 +43,7 @@ Feature: Import and edit calendar events
Then I should see "Event on 2-20-2017"
And I should see "Event on 2-25-2017"
And I should not see "Event on 2-15-2017"
And I click on "Manage subscriptions" "link"
And I click on "Import or export calendars" "link"
And I press "Remove"
And I view the calendar for "2" "2017"
And I should not see "Event on 2-25-2017"
Expand All @@ -52,7 +52,7 @@ Feature: Import and edit calendar events
Scenario: Import events using different event types.
Given I log in as "admin"
And I view the calendar for "1" "2016"
And I click on "Manage subscriptions" "link"
And I click on "Import or export calendars" "link"
And I press "Import calendar"
And I set the following fields to these values:
| Calendar name | Test Import |
Expand Down
18 changes: 12 additions & 6 deletions calendar/tests/behat/export.feature
Expand Up @@ -18,47 +18,53 @@ Feature: Export calendar events

Scenario: Viewing calendar export options
Given I follow "Full calendar"
When I click on "Export calendar" "link"
When I click on "Import or export calendars" "link"
And I click on "Export calendar" "button"
Then I should see "All events"
And I should see "Events related to courses"
And I should see "Events related to groups"
And I should see "My personal events"

Scenario: Generating calendar URL for all events
Given I follow "Full calendar"
And I click on "Export calendar" "link"
And I click on "Import or export calendars" "link"
And I click on "Export calendar" "button"
And I set the field "All events" to "1"
And I set the field "Recent and next 60 days" to "1"
When I click on "Get calendar URL" "button"
Then the "value" attribute of "Calendar URL" "field" should contain "&preset_what=all&"

Scenario: Generating calendar URL for course events
Given I follow "Full calendar"
And I click on "Export calendar" "link"
And I click on "Import or export calendars" "link"
And I click on "Export calendar" "button"
And I set the field "Events related to courses" to "1"
And I set the field "Recent and next 60 days" to "1"
When I click on "Get calendar URL" "button"
Then the "value" attribute of "Calendar URL" "field" should contain "&preset_what=courses&"

Scenario: Generating calendar URL for group events
Given I follow "Full calendar"
And I click on "Export calendar" "link"
And I click on "Import or export calendars" "link"
And I click on "Export calendar" "button"
And I set the field "Events related to groups" to "1"
And I set the field "Recent and next 60 days" to "1"
When I click on "Get calendar URL" "button"
Then the "value" attribute of "Calendar URL" "field" should contain "&preset_what=groups&"

Scenario: Generating calendar URL for category events
Given I follow "Full calendar"
And I click on "Export calendar" "link"
And I click on "Import or export calendars" "link"
And I click on "Export calendar" "button"
And I set the field "Events related to categories" to "1"
And I set the field "Recent and next 60 days" to "1"
When I click on "Get calendar URL" "button"
Then the "value" attribute of "Calendar URL" "field" should contain "&preset_what=categories&"

Scenario: Generating calendar URL for user events
Given I follow "Full calendar"
And I click on "Export calendar" "link"
And I click on "Import or export calendars" "link"
And I click on "Export calendar" "button"
And I set the field "My personal events" to "1"
And I set the field "Recent and next 60 days" to "1"
When I click on "Get calendar URL" "button"
Expand Down
4 changes: 2 additions & 2 deletions lang/en/calendar.php
Expand Up @@ -177,7 +177,7 @@
$string['invalideventtype'] = 'The event type you have selected is invalid.';
$string['iwanttoexport'] = 'Export';
$string['less'] = 'Less';
$string['managesubscriptions'] = 'Manage subscriptions';
$string['managesubscriptions'] = 'Import or export calendars';
$string['manyevents'] = '{$a} events';
$string['mon'] = 'Mon';
$string['monday'] = 'Monday';
Expand Down Expand Up @@ -279,7 +279,7 @@
$string['whendate'] = 'When: {$a}';
$string['yesterday'] = 'Yesterday';
$string['youcandeleteallrepeats'] = 'This event is part of a repeating event series. You can delete this event only, or all {$a} events in the series at once.';
$string['yoursubscriptions'] = 'Your subscriptions';
$string['yoursubscriptions'] = 'Imported calendars';

// Deprecated since Moodle 4.0.
$string['calendarurl'] = 'Calendar URL: {$a}';
Expand Down

0 comments on commit 7a1b3e0

Please sign in to comment.