Commit dbf1ef2b authored by Glenn Walbran's avatar Glenn Walbran Committed by Robert Lyon
Browse files

Bug 1729079: Create a mechanism to build manual links

This commits adds a mechanism that will build links to the manual pages
such that:

- user's language is used if manual exists in that language, else en
- the manual for this mahara/series is used

The key -> manual page map will need to be populated and these links added to
pages.

Change-Id: Id7871395821dce660841341dda200f231e75de16
parent d374ec0b
......@@ -12,6 +12,7 @@
define('INTERNAL', 1);
define('ADMIN', 1);
define('MENUITEM', 'managegroups/groups');
define('SECTION_PAGE', 'manage');
require(dirname(dirname(dirname(__FILE__))) . '/init.php');
$group = get_record_select('group', 'id = ? AND deleted = 0', array(param_integer('id')));
......
......@@ -11,7 +11,8 @@
define('INTERNAL', 1);
define('INSTITUTIONALADMIN', 1);
define('MENUITEM', 'configusers');
define('MENUITEM', 'configusers/usersearch');
define('SECTION_PAGE', 'bulkedit');
require(dirname(dirname(dirname(__FILE__))) . '/init.php');
require_once(get_config('docroot') . 'lib/antispam.php');
......
......@@ -16,6 +16,7 @@ require(dirname(dirname(dirname(__FILE__))) . '/init.php');
define('TITLE', get_string('accountsettings', 'admin'));
define('SECTION_PLUGINTYPE', 'core');
define('SECTION_PLUGINNAME', 'admin');
define('SECTION_PAGE', 'edit');
require_once('activity.php');
require_once(get_config('docroot') . 'lib/antispam.php');
......
......@@ -14,7 +14,7 @@ require(dirname(dirname(dirname(__FILE__))) . '/init.php');
define('TITLE', get_string('Institutions', 'admin'));
define('SECTION_PLUGINTYPE', 'core');
define('SECTION_PLUGINNAME', 'admin');
define('SECTION_PAGE', 'institutions');
require_once('license.php');
define('MENUITEM', 'manageinstitutions/institutions');
......@@ -54,7 +54,7 @@ if (!$USER->get('admin')) {
}
if ($institution || $add) {
define('SECTION_PAGE', 'institutionedit');
$authinstances = auth_get_auth_instances_for_institution($institution);
if (false == $authinstances) {
$authinstances = array();
......@@ -655,6 +655,7 @@ if ($institution || $add) {
}
else {
// Get a list of institutions
define('SECTION_PAGE', 'institutions');
require_once(get_config('libroot') . 'institution.php');
if (!$USER->get('admin')) { // Filter the list for institutional admins
$filter = $USER->get('admininstitutions');
......
......@@ -55,6 +55,7 @@ else if ($groupid = param_alphanum('group', null)) {
}
else {
define('TITLE', get_string('newblog', 'artefact.blog') . ': ' . get_string('blogsettings','artefact.blog'));
PluginArtefactBlog::set_blog_nav();
}
$form = array(
......
......@@ -22,6 +22,7 @@ if (!PluginArtefactPlans::is_active()) {
$id = param_integer('id',0);
if ($id) {
define('SECTION_PAGE', 'newtask');
$plan = new ArtefactTypePlan($id);
if (!$USER->can_edit_artefact($plan)) {
throw new AccessDeniedException(get_string('accessdenied', 'error'));
......@@ -30,6 +31,7 @@ if ($id) {
$form = ArtefactTypeTask::get_form($id);
}
else {
define('SECTION_PAGE', 'newplan');
define('TITLE', get_string('newplan','artefact.plans'));
$form = ArtefactTypePlan::get_form();
}
......
......@@ -108,6 +108,7 @@ foreach ($CFG as $key => $option) {
require('dml.php');
require('web.php');
require('user.php');
require('manualhelp.php');
// Optional local/lib.php file
$locallib = get_config('docroot') . 'local/lib.php';
if (file_exists($locallib)) {
......
......@@ -726,6 +726,7 @@ $string['privacystatement'] = 'Privacy statement';
$string['about'] = 'About';
$string['contactus'] = 'Contact us';
$string['legal'] = 'Legal';
$string['externalmanual'] = 'External manual';
// my account
$string['account'] = 'Settings';
......
......@@ -5759,5 +5759,16 @@ function xmldb_core_upgrade($oldversion=0) {
execute_sql("UPDATE {block_instance} SET title = '' WHERE blocktype IN ('myviews', 'mygroups', 'myfriends', 'wall')");
}
if ($oldversion < 2018022300) {
log_debug('Add "manualhelp" as a default footer link');
$footerlinkstr = get_config('footerlinks');
$footerlinks = unserialize($footerlinkstr);
if (!in_array('manualhelp', $footerlinks)) {
$footerlinks[] = 'manualhelp';
}
$footerlinkstr = serialize($footerlinks);
set_config('footerlinks', $footerlinkstr);
}
return $status;
}
<?php
/**
*
* @package mahara
* @subpackage core
* @author Catalyst IT Ltd
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL version 3 or later
* @copyright For copyright information on Mahara, please see the README file distributed with this software.
* @copyright (C) portions from Moodle, (C) Martin Dougiamas http://dougiamas.com
*/
defined('INTERNAL') || die();
/**
* Create the help link to the manual
*
* @param array $keys The array of the keys to generate the link from
*
* @return string The HTML link
*/
function get_manual_help_link($keys) {
if (!is_array($keys)) {
$keys = (array)$keys;
}
$activeurls = get_config('footercustomlinks');
$activeurls = $activeurls ? unserialize($activeurls) : null;
if (isset($activeurls['manualhelp']) && !empty($activeurls['manualhelp'])) {
$prefix = $activeurls['manualhelp'];
}
else {
$prefix = _get_manual_link_prefix();
}
$manuallink = sprintf('<a rel="noopener" target="_blank" href="%s/%s/%s/%s">' . get_string('Help') . '</a>',
$prefix,
_get_manual_language(),
_get_mahara_version(),
_get_manual_help_link_suffix($keys)
);
return $manuallink;
}
/**
* For the given keys finds the most specific manual link.
*
* @return string
*/
function _get_manual_help_link_suffix($keys) {
for ($i = sizeof($keys); $i > 0; $i--) {
$link = _get_manual_link($i, $keys);
if ($link != NULL) {
return $link;
}
}
return "";
}
function _get_manual_link($length, $keys) {
global $manual_link_map;
$key = "";
for ($i = 0; $i < $length; $i++) {
if ($i > 0) {
$key .= "|";
}
$key .= $keys[$i];
}
if (isset($manual_link_map[$key])) {
return $manual_link_map[$key];
}
return "";
}
/**
* Get the best language for the manual.
*
* The best language would be the current users language if the manual exists in
* that language.
*
* The fallback in all other cases in en.
*
* @return string
*/
function _get_manual_language() {
$user_lang = current_language();
$manual_langs = array("de", "en", "fr", "nl");
foreach ($manual_langs as $lang) {
if (strpos($user_lang, $lang) === 0) {
return $lang;
}
}
return "en";
}
/**
* Get the current version of Mahara so we can point to the corresponding version of the manual.
* If current version is master/release candidate we use the most current stable version
*
* @return string
*/
function _get_mahara_version() {
$release = get_config("release");
$series = get_config("series");
if (preg_match('/dev$/', $release) || preg_match('/rc/', $release)) {
list($year, $month) = explode('.', $series);
if ($month == '04') {
$month = '10';
$year = (int)$year - 1;
}
else {
$month = '04';
}
$series = $year . '.' . $month;
}
return $series;
}
function _get_manual_link_prefix() {
return "http://manual.mahara.org";
}
$manual_link_map = array(
"" => "", // default - means go to manual homepage
"adminhome|home" => "administration/overview.html#admin-home",
"adminhome|registersite" => "administration/overview.html#register-your-mahara-site",
"configextensions|cleanurls" => "administration/extensions.html#clean-urls",
"configextensions|filters" => "administration/extensions.html#html-filters",
"configextensions|frameworks" => "administration/smartevidence.html#smartevidence-admin",
"configextensions|frameworks|frameworkmanager" => "administration/smartevidence.html#smartevidence-admin", // Need to point to new place once created
"configextensions|iframesites" => "administration/extensions.html#allowed-iframe-sources",
"configextensions|pluginadmin|plugins" => "administration/extensions.html",
"configextensions|pluginadmin|pluginconfig|artefact|comment" => "administration/extensions.html#artefact-type-comments",
"configextensions|pluginadmin|pluginconfig|artefact|file" => "administration/extensions.html#artefact-type-file",
"configextensions|pluginadmin|pluginconfig|artefact|internal" => "administration/extensions.html#artefact-type-profile",
"configextensions|pluginadmin|pluginconfig|auth|saml" => "administration/extensions.html#authentication-saml",
"configextensions|pluginadmin|pluginconfig|blocktype|file/folder" => "administration/extensions.html#blocktype-file-folder",
"configextensions|pluginadmin|pluginconfig|blocktype|file/gallery" => "administration/extensions.html#blocktype-file-gallery",
"configextensions|pluginadmin|pluginconfig|blocktype|file/internalmedia" => "administration/extensions.html#blocktype-file-internalmedia",
"configextensions|pluginadmin|pluginconfig|blocktype|file/text" => "administration/extensions.html#blocktype-text",
"configextensions|pluginadmin|pluginconfig|blocktype|file/wall" => "administration/extensions.html#blocktype-wall",
"configextensions|pluginadmin|pluginconfig|interaction|forum" => "administration/extensions.html#interaction-forum",
"configextensions|pluginadmin|pluginconfig|module|lti" => "administration/extensions.html#module-lti",
"configextensions|pluginadmin|pluginconfig|module|mobileapi" => "administration/extensions.html#module-mobile-api",
"configextensions|pluginadmin|pluginconfig|search|elasticsearch" => "administration/extensions.html#search-elasticsearch",
"configextensions|pluginadmin|pluginconfig|search|internal" => "administration/extensions.html#search-internal",
"configsite|blogs" => "administration/config_site.html#site-journals",
"configsite|cookieconsent" => "administration/config_site.html#cookie-consent",
"configsite|networking" => "administration/config_site.html#networking",
"configsite|share" => "administration/config_site.html#share",
"configsite|sitefiles" => "administration/config_site.html#files",
"configsite|sitefonts" => "administration/config_site.html#fonts",
"configsite|sitefonts|install" => "administration/config_site.html#install-a-local-font",
"configsite|sitefonts|installgwf" => "administration/config_site.html#install-google-font-s",
"configsite|sitelicenses" => "administration/config_site.html#licenses",
"configsite|sitemenu" => "administration/config_site.html#menus",
"configsite|siteoptions" => "administration/config_site.html",
"configsite|sitepages" => "administration/config_site.html#static-pages",
"configsite|siteskins" => "administration/config_site.html#site-skins",
"configsite|siteviews" => "administration/config_site.html#site-pages-and-collections",
"configusers|adduser" => "administration/users.html#add-user",
"configusers|adminusers" => "administration/users.html#site-administrators",
"configusers|exportqueue" => "administration/users.html#export-queue",
"configusers|staffusers" => "administration/users.html#site-staff",
"configusers|suspendedusers" => "administration/users.html#suspended-and-expired-users",
"configusers|uploadcsv" => "administration/users.html#add-and-update-users-by-csv",
"configusers|usersearch" => "administration/users.html#user-search",
"configusers|usersearch|bulkedit" => "administration/users.html#user-bulk-actions",
"configusers|usersearch|edit" => "administration/users.html#user-account-settings",
"content|blogs|index" => "content/journal.html#work-with-multiple-journals",
"content|blogs|new" => "content/journal.html#change-your-journal-settings",
"content|blogs|post" => "content/journal.html#add-a-journal-entry",
"content|blogs|settings" => "content/journal.html#change-your-journal-settings",
"content|blogs|view" => "content/journal.html",
"content|files|index" => "content/files.html",
"content|notes" => "content/notes.html",
"content|plans|index" => "content/plans.html",
"content|plans|newplan" => "content/plans.html#create-a-new-plan",
"content|plans|newtask" => "content/plans.html#add-tasks-to-a-plan",
"content|plans|plans" => "content/plans.html#view-all-tasks-of-a-plan",
"content|profile|index" => "content/profile.html",
"content|profileicons" => "content/profile_pictures.html",
"content|resume|index|index" => "content/resume.html#introduction",
"content|resume|index|employment" => "content/resume.html#education-and-employment",
"content|resume|index|achievements" => "content/resume.html#achievements",
"content|resume|index|goalsandskills" => "content/resume.html#goals-and-skills",
"content|resume|index|interests" => "content/resume.html#interests",
"content|resume|index|license" => "content/resume.html#license",
"forgotpass" => "intro/dashboard.html#login",
"groups|blocks|group" => "groups/inside_group.html#id3",
"groups|groups" => "groups/inside_group.html#set-up-a-new-forum",
"groups|groupsiown" => "groups/create_group.html",
"groups|find" => "groups/find_group.html",
"groups|findfriends" => "groups/find_friends.html#send-a-friend-request",
"groups|findfriends|find" => "groups/find_friends.html",
"groups|findfriends|removefriend" => "groups/my_friends.html#remove-a-friend",
"groups|forums|index" => "groups/inside_group.html#forums",
"groups|forums|view" => "groups/inside_group.html#add-a-forum-topic",
"groups|forums|edittopic" => "groups/inside_group.html#add-a-forum-topic",
"groups|forums|editpost" => "groups/inside_group.html#reply-to-a-topic-or-subsequent-post",
"groups|forums|topic" => "groups/inside_group.html#add-a-forum-topic",
"groups|info" => "groups/inside_group.html",
"groups|institutions" => "groups/institution_membership.html",
"groups|members" => "groups/inside_group.html#members",
"groups|myfriends" => "groups/my_friends.html",
"groups|mygroups" => "groups/my_groups.html",
"groups|topics" => "groups/topics.html",
"groups|views|groupviews" => "groups/inside_group.html#pages-and-collections",
"home" => "intro/dashboard.html#overview",
"inbox" => "account/notifications.html#send-a-message",
"inbox|inbox" => "account/notifications.html",
"inbox|outbox" => "account/notifications.html#sent",
"loggedouthome" => "intro/dashboard.html",
"managegroups|archives" => "administration/groups.html#archived-submissions",
"managegroups|categories" => "administration/groups.html#group-categories",
"managegroups|groups" => "administration/groups.html#administer-groups",
"managegroups|groups|manage" => "administration/groups.html#group-file-quota",
"managegroups|uploadcsv" => "administration/groups.html#add-and-update-groups-by-csv",
"managegroups|uploadmemberscsv" => "administration/groups.html#update-group-members-by-csv",
"manageinstitutions|adminnotifications" => "administration/institutions.html#admin-notifications",
"manageinstitutions|blogs" => "administration/institutions.html#institution-journals",
"manageinstitutions|institutions" => "administration/institutions.html#overview",
"manageinstitutions|institutions|institutionedit" => "administration/institutions.html#add-an-institution",
"manageinstitutions|institutionadmins" => "administration/institutions.html#institution-administrators",
"manageinstitutions|institutionfiles" => "administration/institutions.html#files",
"manageinstitutions|institutionstaff" => "administration/institutions.html#institution-staff",
"manageinstitutions|institutionusers" => "administration/institutions.html#members",
"manageinstitutions|institutionviews" => "administration/institutions.html#institution-pages-and-collections",
"manageinstitutions|pendingregistrations" => "administration/institutions.html#review-pending-registrations",
"manageinstitutions|progressbar" => "administration/institutions.html#profile-completion",
"manageinstitutions|share" => "administration/institutions.html#share-institution-pages-and-collections",
"manageinstitutions|sitepages|institutionstaticpages" => "administration/institutions.html#institution-static-pages",
"myportfolio|export" => "portfolio/export.html",
"myportfolio|import" => "portfolio/import.html",
"myportfolio|share|accessurl" => "portfolio/page_editor.html#edit-access",
"myportfolio|share|editaccess" => "portfolio/share.html#edit-access-for-users-with-an-account",
"myportfolio|share|share" => "portfolio/share.html",
"myportfolio|share|urls" => "portfolio/share.html#edit-access-for-users-without-an-account",
"myportfolio|sharedviews" => "portfolio/shared.html",
"myportfolio|myskins" => "portfolio/skins.html",
"myportfolio|skins" => "portfolio/skins.html",
"myportfolio|skins|design" => "portfolio/skins.html#create-a-skin",
"myportfolio|views" => "portfolio/pages.html#overview-page",
"myportfolio|views|add" => "portfolio/pages.html#add-a-page",
"myportfolio|views|blocks" => "portfolio/page_editor.html",
"register" => "administration/institutions.html#self-register-for-an-internal-account",
"reports" => "administration/reports.html",
"reports|content|content" => "administration/reports.html#content-report",
"reports|groups|groups" => "administration/reports.html#groups-report",
"reports|information|comparisons" => "administration/reports.html#institution-comparison-report",
"reports|information|information" => "administration/reports.html#overview-report",
"reports|information|logins" => "administration/reports.html#logins-report",
"reports|users|collaboration" => "administration/reports.html#new-in-mahara-17-10-collaboration-report",
"reports|users|masquerading" => "administration/reports.html#masquerading-sessions-report",
"reports|users|pageactivity" => "administration/reports.html#new-in-mahara-17-10-page-activity-report",
"reports|users|useractivity" => "administration/reports.html#new-in-mahara-17-10-user-activity-report",
"reports|users|userdetails" => "administration/reports.html#user-details-report",
"reports|users|users" => "administration/reports.html#people-overview-report",
"reports|users|accesslist" => "administration/reports.html#portfolio-access-report",
"settings|account|preferences" => "account/account_settings.html",
"settings|notifications" => "account/notification_settings.html",
"settings|webservice" => "account/apps.html",
"view" => "portfolio/pages.html#view-a-page",
"view|profile" => "portfolio/pages.html#profile-page",
"webservices|apps" => "administration/web_services.html#application-connections",
"webservices|config" => "administration/web_services.html#configuration",
"webservices|conections" => "administration/web_services.html#connection-manager",
"webservices|oauthconfig" => "administration/web_services.html#registration-of-external-apps",
"webservices|logs" => "administration/web_services.html#web-services-logs",
"webservices|testclient" => "administration/web_services.html#web-services-test-client",
);
......@@ -856,7 +856,7 @@ function core_install_firstcoredata_defaults() {
set_config('anonymouscomments', 1);
set_config('homepageinfo', 1);
set_config('showonlineuserssideblock', 1);
set_config('footerlinks', serialize(array('legal', 'about', 'contactus')));
set_config('footerlinks', serialize(array('legal', 'about', 'contactus', 'manualhelp')));
set_config('nousernames', 0);
set_config('onlineuserssideblockmaxusers', 10);
set_config('loggedinprofileviewaccess', 1);
......
......@@ -16,7 +16,7 @@ $config = new stdClass();
// See https://wiki.mahara.org/wiki/Developer_Area/Version_Numbering_Policy
// For upgrades on stable branches, increment the version by one. On master, use the date.
$config->version = 2018022200;
$config->version = 2018022300;
$config->series = '18.04';
$config->release = '18.04dev';
$config->minupgradefrom = 2015030409;
......
......@@ -3107,6 +3107,58 @@ function footer_menu($all=false) {
'title' => get_string('contactus'),
),
);
$helpkeys = null;
if (defined('MENUITEM')) {
$helpkey = ($USER->is_logged_in() ? '' : 'loggedout') . MENUITEM;
$helpkeys = explode('/', $helpkey);
}
if (defined('SECTION_PAGE')) {
$helpkeys[] = SECTION_PAGE;
}
if (defined('VIEW_TYPE')) {
$helpkeys[] = VIEW_TYPE;
}
// To handle the 'Report' pages where type/subtype are passed in as params
if (defined('MENUITEM') && MENUITEM == 'reports') {
if (param_exists('type')) {
$helpkeys[] = param_alpha('type');
}
if (param_exists('subtype')) {
$helpkeys[] = param_variable('subtype');
}
}
// To handle the configmanager page where plugintye/pluginname are
// passed in as params (not when defined as part of php file)
if (param_exists('plugintype')) {
$helpkeys[] = param_alpha('plugintype');
}
if (param_exists('pluginname')) {
$helpkeys[] = param_variable('pluginname');
}
// If we are in resume section
if (defined('RESUME_SUBPAGE')) {
$helpkeys[] = RESUME_SUBPAGE;
}
// If group is set
if (param_exists('group')) {
$helpkeys[] = 'group';
}
// If institution is set
if (param_exists('institution') || param_exists('i')) {
$helpkeys[] = 'institution';
}
// To handle when things have a 'new' state vs edit state
if (param_exists('id')) {
if (param_exists('new')) {
$helpkeys[] = 'new';
}
}
$menu['manualhelp'] = array('fullurl' => get_manual_help_link($helpkeys),
'title' => get_string('externalmanual'),
'url' => _get_manual_link_prefix(),
);
if ($all) {
return $menu;
}
......@@ -3126,6 +3178,7 @@ function footer_menu($all=false) {
}
}
}
return $menu;
}
......
......@@ -14,7 +14,7 @@ define('ADMIN', 1);
define('MENUITEM', 'configextensions/frameworks');
define('SECTION_PLUGINTYPE', 'module');
define('SECTION_PLUGINNAME', 'framework');
define('SECTION_PAGE', 'frameworks');
define('SECTION_PAGE', 'frameworkmanager');
require(dirname(dirname(dirname(__FILE__))) . '/init.php');
define('TITLE', get_string('Framework', 'module.framework'));
......
......@@ -161,12 +161,28 @@ class BehatGeneral extends BehatBase {
}
/**
* Switches to the main Moodle window. Useful when you finish interacting with popup windows.
* Switches to the newly opened tab/window. Useful when you do not know name of window/tab.
*
* @Given /^I switch to the new window$/
*/
public function switch_to_the_new_window() {
$windowNames = $this->getSession()->getWindowNames();
if (count($windowNames) > 1) {
$this->getSession()->switchToWindow(end($windowNames));
}
else {
throw new Exception('Only one tab/window available.');
}
}
/**
* Switches to the main window. Useful when you finish interacting with other windows/tabs.
*
* @Given /^I switch to the main window$/
*/
public function switch_to_the_main_window() {
$this->getSession()->switchToWindow();
$windowNames = $this->getSession()->getWindowNames();
$this->getSession()->switchToWindow($windowNames[0]);
}
/**
......
......@@ -2,6 +2,9 @@
background-color: rgba(255, 255, 255, 0.7);
.footer-nav {
font-size: $font-size-small;
.icon-stack {
font-size: 0.75em;
}
}
.footer-performance-info {
......
......@@ -38,7 +38,11 @@
<ul class="nav nav-pills footer-nav pull-left">
{foreach from=$FOOTERMENU item=item name=footermenu}
<li>
{if $item.fullurl}
{$item.fullurl|safe}
{else}
<a href="{$item.url}">{$item.title}</a>
{/if}
</li>
{/foreach}
</ul>
......
......@@ -11,6 +11,7 @@
define('INTERNAL', 1);
define('MENUITEM', 'groups/findfriends');
define('SECTION_PAGE', 'removefriend');
require(dirname(dirname(__FILE__)) . '/init.php');
$id = param_integer('id');
......
......@@ -15,6 +15,7 @@ define('PUBLIC', 1);
define('SECTION_PLUGINTYPE', 'artefact');
define('SECTION_PLUGINNAME', 'internal');
define('SECTION_PAGE', 'view');
define('VIEW_TYPE', 'profile');
require(dirname(dirname(__FILE__)).'/init.php');
require_once('group.php');
......
......@@ -10,14 +10,18 @@ Background:
| UserA | Kupuhipa1 | test01@example.com | Angela | User | mahara | internal | member |
# Skins need to be enabled
Given the following site settings are set:
And the following site settings are set:
| field | value |
| skins | 1 |
Given the following "pages" exist:
And the following "pages" exist:
| title | description| ownertype | ownername |
| Page 01 | UserA's page 01 | user | UserA |
And the following "groups" exist:
| name | owner | description | grouptype | open | invitefriends | editroles | submittableto | allowarchives | members | staff |
| GroupA | admin | GroupA owned by admin | standard | ON | ON | all | ON | ON | UserA | |
Scenario: Showing contextual help for pages under menu "Portfolio" (Bug 809297).
When I log in as "UserA" with password "Kupuhipa1"
# Test pages and collections help
......@@ -81,3 +85,31 @@ Scenario: Showing contextual help for pages under menu "Portfolio" (Bug 809297).
And I choose "Import" in "Portfolio" from main menu
And I click on "Help"
Then I should see "You can import your (or any valid Leap2a) portfolio from another Mahara site yourself."
Scenario: Showing correct external manual help file for mahara page
# Test by going to pages and collections help for user / institution / site / group
When I log in as "admin" with password "Kupuhipa1"
And I choose "Pages and collections" in "Portfolio" from main menu
And I follow "Help" in the ".footer-nav" "css_element"
And I switch to the new window
And I should see "5.1.1. Overview page"
And I switch to the main window
When I am on homepage
And I choose "Pages and collections" in "Institutions" from administration menu
And I follow "Help" in the ".footer-nav" "css_element"
And I switch to the new window
And I should see "10.6.11. Institution pages and collections"
And I switch to the main window
When I am on homepage
And I choose "Pages and collections" in "Configure site" from administration menu
And I follow "Help" in the ".footer-nav" "css_element"
And I switch to the new window
And I should see "10.3.6. Site pages and collections"
And I switch to the main window
When I am on homepage
And I follow "GroupA"
And I follow "Pages and collections (tab)"
And I follow "Help" in the ".footer-nav" "css_element"
And I switch to the new window