Skip to content

Commit

Permalink
MDL-72355 calendar: Remove export link from the calendar footer
Browse files Browse the repository at this point in the history
Now that subscriptions and exports are accessed from the same page which
is linked as "Import / export calendars", there is no need to have a
separate "Export calendar" link.
  • Loading branch information
mickhawkins committed Sep 24, 2021
1 parent b1b8644 commit 9eed82a
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 39 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
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

0 comments on commit 9eed82a

Please sign in to comment.