diff --git a/admin/tool/usertours/classes/local/forms/editstep.php b/admin/tool/usertours/classes/local/forms/editstep.php
index 48ec1f0c2e5..f3a002f2051 100644
--- a/admin/tool/usertours/classes/local/forms/editstep.php
+++ b/admin/tool/usertours/classes/local/forms/editstep.php
@@ -24,6 +24,9 @@
namespace tool_usertours\local\forms;
+use stdClass;
+use tool_usertours\step;
+
defined('MOODLE_INTERNAL') || die('Direct access to this script is forbidden.');
require_once($CFG->libdir . '/formslib.php');
@@ -40,6 +43,16 @@ class editstep extends \moodleform {
*/
protected $step;
+ /**
+ * @var int Display the step's content by using Moodle language string.
+ */
+ private const CONTENTTYPE_LANGSTRING = 0;
+
+ /**
+ * @var int Display the step's content by entering it manually.
+ */
+ private const CONTENTTYPE_MANUAL = 1;
+
/**
* Create the edit step form.
*
@@ -81,6 +94,20 @@ class editstep extends \moodleform {
$mform->setType('title', PARAM_TEXT);
$mform->addHelpButton('title', 'title', 'tool_usertours');
+ // Content type.
+ $typeoptions = [
+ static::CONTENTTYPE_LANGSTRING => get_string('content_type_langstring', 'tool_usertours'),
+ static::CONTENTTYPE_MANUAL => get_string('content_type_manual', 'tool_usertours')
+ ];
+ $mform->addElement('select', 'contenttype', get_string('content_type', 'tool_usertours'), $typeoptions);
+ $mform->addHelpButton('contenttype', 'content_type', 'tool_usertours');
+ $mform->setDefault('contenttype', static::CONTENTTYPE_MANUAL);
+
+ // Language identifier.
+ $mform->addElement('textarea', 'contentlangstring', get_string('moodle_language_identifider', 'tool_usertours'));
+ $mform->setType('contentlangstring', PARAM_TEXT);
+ $mform->hideIf('contentlangstring', 'contenttype', 'eq', static::CONTENTTYPE_MANUAL);
+
$editoroptions = [
'subdirs' => 1,
'maxbytes' => $CFG->maxbytes,
@@ -88,10 +115,11 @@ class editstep extends \moodleform {
'changeformat' => 1,
'trusttext' => true
];
- $mform->addElement('editor', 'content', get_string('content', 'tool_usertours'), null, $editoroptions);
- $mform->addRule('content', get_string('required'), 'required', null, 'client');
- $mform->setType('content', PARAM_RAW); // No XSS prevention here, users must be trusted.
- $mform->addHelpButton('content', 'content', 'tool_usertours');
+ $objs = $mform->createElement('editor', 'content', get_string('content', 'tool_usertours'), null, $editoroptions);
+ // TODO: MDL-68540 We need to add the editor to a group element because editor element will not work with hideIf.
+ $mform->addElement('group', 'contenthtmlgrp', get_string('content', 'tool_usertours'), [$objs], ' ', false);
+ $mform->addHelpButton('contenthtmlgrp', 'content', 'tool_usertours');
+ $mform->hideIf('contenthtmlgrp', 'contenttype', 'eq', static::CONTENTTYPE_LANGSTRING);
// Add the step configuration.
$mform->addElement('header', 'heading_options', get_string('options_heading', 'tool_usertours'));
@@ -106,4 +134,79 @@ class editstep extends \moodleform {
$this->add_action_buttons();
}
+
+ /**
+ * Validate the database on the submitted content type.
+ *
+ * @param array $data array of ("fieldname"=>value) of submitted data
+ * @param array $files array of uploaded files "element_name"=>tmp_file_path
+ * @return array of "element_name"=>"error_description" if there are errors,
+ * or an empty array if everything is OK (true allowed for backwards compatibility too).
+ */
+ public function validation($data, $files): array {
+ $errors = parent::validation($data, $files);
+
+ if ($data['contenttype'] == static::CONTENTTYPE_LANGSTRING) {
+ if (!isset($data['contentlangstring']) || trim($data['contentlangstring']) == '') {
+ $errors['contentlangstring'] = get_string('required');
+ } else {
+ $splitted = explode(',', trim($data['contentlangstring']), 2);
+ $langid = $splitted[0];
+ $langcomponent = $splitted[1];
+ if (!get_string_manager()->string_exists($langid, $langcomponent)) {
+ $errors['contentlangstring'] = get_string('invalid_lang_id', 'tool_usertours');
+ }
+ }
+ }
+
+ if ($data['contenttype'] == static::CONTENTTYPE_MANUAL) {
+ if (strip_tags($data['content']['text']) == '') {
+ $errors['content'] = get_string('required');
+ }
+ }
+
+ return $errors;
+ }
+
+ /**
+ * Load in existing data as form defaults. Usually new entry defaults are stored directly in
+ * form definition (new entry form); this function is used to load in data where values
+ * already exist and data is being edited (edit entry form).
+ *
+ * @param stdClass|array $data object or array of default values
+ */
+ public function set_data($data): void {
+ $data = (object) $data;
+ if (!isset($data->contenttype)) {
+ if (!empty($data->content['text']) && step::is_language_string_from_input($data->content['text'])) {
+ $data->contenttype = static::CONTENTTYPE_LANGSTRING;
+ $data->contentlangstring = $data->content['text'];
+
+ // Empty the editor content.
+ $data->content = ['text' => ''];
+ } else {
+ $data->contenttype = static::CONTENTTYPE_MANUAL;
+ }
+ }
+ parent::set_data($data);
+ }
+
+ /**
+ * Return submitted data if properly submitted or returns NULL if validation fails or
+ * if there is no submitted data.
+ *
+ * @return object|null submitted data; NULL if not valid or not submitted or cancelled
+ */
+ public function get_data(): ?object {
+ $data = parent::get_data();
+ if ($data) {
+ if ($data->contenttype == static::CONTENTTYPE_LANGSTRING) {
+ $data->content = [
+ 'text' => $data->contentlangstring,
+ 'format' => 1,
+ ];
+ }
+ }
+ return $data;
+ }
}
diff --git a/admin/tool/usertours/classes/step.php b/admin/tool/usertours/classes/step.php
index 754377b0027..0f7cf302c7a 100644
--- a/admin/tool/usertours/classes/step.php
+++ b/admin/tool/usertours/classes/step.php
@@ -89,6 +89,11 @@ class step {
*/
protected $dirty = false;
+ /**
+ * @var string Regex to check any matching lang string.
+ */
+ protected const LANG_STRING_REGEX = '|^([a-zA-Z][a-zA-Z0-9\.:/_-]*),([a-zA-Z][a-zA-Z0-9\.:/_-]*)$|';
+
/**
* Fetch the step instance.
*
@@ -712,7 +717,7 @@ class step {
public static function get_string_from_input($string) {
$string = trim($string);
- if (preg_match('|^([a-zA-Z][a-zA-Z0-9\.:/_-]*),([a-zA-Z][a-zA-Z0-9\.:/_-]*)$|', $string, $matches)) {
+ if (preg_match(static::LANG_STRING_REGEX, $string, $matches)) {
if ($matches[2] === 'moodle') {
$matches[2] = 'core';
}
@@ -724,4 +729,14 @@ class step {
return $string;
}
+
+ /**
+ * Check if the given string contains any matching langstring.
+ *
+ * @param string $string Tour step content
+ * @return bool
+ */
+ public static function is_language_string_from_input(string $string): bool {
+ return preg_match(static::LANG_STRING_REGEX, $string) == true;
+ }
}
diff --git a/admin/tool/usertours/lang/en/tool_usertours.php b/admin/tool/usertours/lang/en/tool_usertours.php
index ed48a8f159c..6960c704f88 100644
--- a/admin/tool/usertours/lang/en/tool_usertours.php
+++ b/admin/tool/usertours/lang/en/tool_usertours.php
@@ -39,9 +39,14 @@ $string['confirmtourremovalquestion'] = 'Are you sure that you wish to remove th
$string['confirmtourremovaltitle'] = 'Confirm tour removal';
$string['content'] = 'Content';
$string['content_heading'] = 'Content';
-$string['content_help'] = 'Content describing the step may be added as plain text, enclosed in multilang tags (for use with the multi-language content filter) if required.
+$string['content_help'] = 'Content describing the step may be added as plain text, enclosed in multilang tags (for use with the multi-language content filter) if required.';
+$string['content_type'] = 'Content type';
+$string['content_type_help'] = 'Content types are:
-Alternatively, a language string ID may be entered in the format identifier,component (with no brackets or space after the comma).';
+* Read from language pack - Language string ID may be entered in the format identifier,component (with no brackets or space after the comma).
+* Enter manually - Using an editor to input the content';
+$string['content_type_langstring'] = 'Read from language pack';
+$string['content_type_manual'] = 'Enter manually';
$string['cssselector'] = 'CSS selector';
$string['defaultvalue'] = 'Default ({$a})';
$string['delay'] = 'Delay before showing the step';
@@ -79,8 +84,10 @@ $string['filter_theme_help'] = 'Show the tour when the user is using one of the
$string['filter_role'] = 'Role';
$string['filter_role_help'] = 'A tour may be restricted to users with selected roles in the context where the tour is shown. For example, restricting a Dashboard tour to users with the role of student won\'t work if users have the role of student in a course (as is generally the case). A Dashboard tour can only be restricted to users with a system role.';
$string['importtour'] = 'Import tour';
+$string['invalid_lang_id'] = 'Invalid language identifier';
$string['left'] = 'Left';
$string['modifyshippedtourwarning'] = 'This is a user tour that has shipped with Moodle. Any modifications you make may be overridden during your next site upgrade.';
+$string['moodle_language_identifider'] = 'Moodle language identifier';
$string['movestepdown'] = 'Move step down';
$string['movestepup'] = 'Move step up';
$string['movetourdown'] = 'Move tour down';
diff --git a/admin/tool/usertours/tests/behat/create_tour.feature b/admin/tool/usertours/tests/behat/create_tour.feature
index b1e1b3edaac..9a96340e426 100644
--- a/admin/tool/usertours/tests/behat/create_tour.feature
+++ b/admin/tool/usertours/tests/behat/create_tour.feature
@@ -16,15 +16,15 @@ Feature: Add a new user tour
| Apply to URL match | /my/% |
| Tour is enabled | 1 |
And I add steps to the "First tour" tour:
- | targettype | Title | Content |
- | Display in middle of page | Welcome | Welcome to your personal learning space. We'd like to give you a quick tour to show you some of the areas you may find helpful |
+ | targettype | Title | id_content | Content type |
+ | Display in middle of page | Welcome | Welcome to your personal learning space. We'd like to give you a quick tour to show you some of the areas you may find helpful | Enter manually |
And I add steps to the "First tour" tour:
- | targettype | targetvalue_block | Title | Content |
- | Block | Timeline | Timeline | This is the Timeline. All of your upcoming activities can be found here |
- | Block | Calendar | Calendar | This is the Calendar. All of your assignments and due dates can be found here |
+ | targettype | targetvalue_block | Title | id_content | Content type |
+ | Block | Timeline | Timeline | This is the Timeline. All of your upcoming activities can be found here | Enter manually |
+ | Block | Calendar | Calendar | This is the Calendar. All of your assignments and due dates can be found here | Enter manually |
And I add steps to the "First tour" tour:
- | targettype | targetvalue_selector | Title | Content |
- | Selector | .usermenu | User menu | This is your personal user menu. You'll find your personal preferences and your user profile here. |
+ | targettype | targetvalue_selector | Title | id_content | Content type |
+ | Selector | .usermenu | User menu | This is your personal user menu. You'll find your personal preferences and your user profile here. | Enter manually |
When I am on homepage
Then I should see "Welcome to your personal learning space. We'd like to give you a quick tour to show you some of the areas you may find helpful"
And I click on "Next" "button" in the "[data-role='flexitour-step']" "css_element"
@@ -53,8 +53,8 @@ Feature: Add a new user tour
| Apply to URL match | /my/% |
| Tour is enabled | 0 |
And I add steps to the "First tour" tour:
- | targettype | Title | Content |
- | Display in middle of page | Welcome | Welcome to your personal learning space. We'd like to give you a quick tour to show you some of the areas you may find helpful |
+ | targettype | Title | id_content | Content type |
+ | Display in middle of page | Welcome | Welcome to your personal learning space. We'd like to give you a quick tour to show you some of the areas you may find helpful | Enter manually |
When I am on homepage
Then I should not see "Welcome to your personal learning space. We'd like to give you a quick tour to show you some of the areas you may find helpful"
@@ -70,8 +70,8 @@ Feature: Add a new user tour
| Apply to URL match | /my/% |
| Tour is enabled | 0 |
And I add steps to the "First tour" tour:
- | targettype | Title | Content |
- | Display in middle of page | Welcome | Welcome to your personal learning space. We'd like to give you a quick tour to show you some of the areas you may find helpful |
+ | targettype | Title | id_content | Content type |
+ | Display in middle of page | Welcome | Welcome to your personal learning space. We'd like to give you a quick tour to show you some of the areas you may find helpful | Enter manually |
And I open the User tour settings page
When I click on "Enable" "link" in the "My first tour" "table_row"
And I am on homepage
@@ -91,12 +91,12 @@ Feature: Add a new user tour
| Display step numbers | 1 |
| End tour button's label | Sample end label |
And I add steps to the "Steps tour" tour:
- | targettype | Title | Content |
- | Display in middle of page | Welcome | First step of the Tour |
+ | targettype | Title | id_content | Content type |
+ | Display in middle of page | Welcome | First step of the Tour | Enter manually |
And I add steps to the "Steps tour" tour:
- | targettype | targetvalue_block | Title | Content |
- | Block | Timeline | Timeline | Second step of the Tour |
- | Block | Calendar | Calendar | Third step of the Tour |
+ | targettype | targetvalue_block | Title | id_content | Content type |
+ | Block | Timeline | Timeline | Second step of the Tour | Enter manually |
+ | Block | Calendar | Calendar | Third step of the Tour | Enter manually |
When I am on homepage
Then I should see "First step of the Tour"
And I should see "Next (1/3)"
@@ -125,12 +125,12 @@ Feature: Add a new user tour
| Tour is enabled | 1 |
| Display step numbers | 0 |
And I add steps to the "Steps tour" tour:
- | targettype | Title | Content |
- | Display in middle of page | Welcome | First step of the Tour |
+ | targettype | Title | id_content | Content type |
+ | Display in middle of page | Welcome | First step of the Tour | Enter manually |
And I add steps to the "Steps tour" tour:
- | targettype | targetvalue_block | Title | Content |
- | Block | Timeline | Timeline | Second step of the Tour |
- | Block | Calendar | Calendar | Third step of the Tour |
+ | targettype | targetvalue_block | Title | id_content | Content type |
+ | Block | Timeline | Timeline | Second step of the Tour | Enter manually |
+ | Block | Calendar | Calendar | Third step of the Tour | Enter manually |
When I am on homepage
Then I should see "First step of the Tour"
And I should see "Next"
@@ -153,8 +153,8 @@ Feature: Add a new user tour
| Tour is enabled | 1 |
| Display step numbers | 1 |
And I add steps to the "Steps tour" tour:
- | targettype | Title | Content |
- | Display in middle of page | Welcome | This is a single step tour |
+ | targettype | Title | id_content | Content type |
+ | Display in middle of page | Welcome | This is a single step tour | Enter manually |
When I am on homepage
Then I should see "This is a single step tour"
And I should not see "Next (1/1)"
diff --git a/admin/tool/usertours/tests/behat/duplicate_tour.feature b/admin/tool/usertours/tests/behat/duplicate_tour.feature
index 8f80853afca..4b7e23eb3f4 100644
--- a/admin/tool/usertours/tests/behat/duplicate_tour.feature
+++ b/admin/tool/usertours/tests/behat/duplicate_tour.feature
@@ -15,8 +15,8 @@ Feature: Duplicate a user tour
| Apply to URL match | /my/% |
| Tour is enabled | 0 |
And I add steps to the "First tour" tour:
- | targettype | Title | Content |
- | Display in middle of page | Welcome | Welcome to your personal learning space. We'd like to give you a quick tour to show you some of the areas you may find helpful |
+ | targettype | Title | id_content | Content type |
+ | Display in middle of page | Welcome | Welcome to your personal learning space. We'd like to give you a quick tour to show you some of the areas you may find helpful | Enter manually |
And I open the User tour settings page
And I should see "1" occurrences of "First tour" in the "admintable" "table"
And I click on "Duplicate" "link" in the "My first tour" "table_row"
diff --git a/admin/tool/usertours/tests/behat/reset_tour.feature b/admin/tool/usertours/tests/behat/reset_tour.feature
index 4806746d49a..9d5612d54b2 100644
--- a/admin/tool/usertours/tests/behat/reset_tour.feature
+++ b/admin/tool/usertours/tests/behat/reset_tour.feature
@@ -13,8 +13,8 @@ Feature: Reset a tour
| Tour is enabled | 1 |
| Show with backdrop | 1 |
And I add steps to the "First tour" tour:
- | targettype | Title | Content |
- | Display in middle of page | Welcome | Welcome tour. |
+ | targettype | Title | id_content | Content type |
+ | Display in middle of page | Welcome | Welcome tour. | Enter manually |
@javascript
Scenario: Reset the tour with mobile view
diff --git a/admin/tool/usertours/tests/behat/tour_accessibility.feature b/admin/tool/usertours/tests/behat/tour_accessibility.feature
index dbb567d90b7..94c5fbc5b62 100644
--- a/admin/tool/usertours/tests/behat/tour_accessibility.feature
+++ b/admin/tool/usertours/tests/behat/tour_accessibility.feature
@@ -9,15 +9,15 @@ Feature: Apply accessibility to a tour
| Tour is enabled | 1 |
| Show with backdrop | 1 |
And I add steps to the "First tour" tour:
- | targettype | Title | Content |
- | Display in middle of page | Welcome | Welcome tour. |
+ | targettype | Title | id_content | Content type |
+ | Display in middle of page | Welcome | Welcome tour. | Enter manually |
And I add steps to the tour:
- | targettype | targetvalue_selector | Title | Content |
- | Selector | .usermenu | User menu | Next page |
- | Selector | .navbar-brand | Page 2 | Next page |
+ | targettype | targetvalue_selector | Title | id_content | Content type |
+ | Selector | .usermenu | User menu | Next page | Enter manually |
+ | Selector | .navbar-brand | Page 2 | Next page | Enter manually |
And I add steps to the tour:
- | targettype | Title | Content |
- | Display in middle of page | Page 3 | Final page. |
+ | targettype | Title | id_content | Content type |
+ | Display in middle of page | Page 3 | Final page. | Enter manually |
@javascript
Scenario: Check tabbing working correctly.
diff --git a/admin/tool/usertours/tests/behat/tour_content_type.feature b/admin/tool/usertours/tests/behat/tour_content_type.feature
new file mode 100644
index 00000000000..2e59815c179
--- /dev/null
+++ b/admin/tool/usertours/tests/behat/tour_content_type.feature
@@ -0,0 +1,62 @@
+@tool @tool_usertours
+Feature: Apply content type to a tour
+ In order to give more content to a tour
+ As an administrator
+ I need to change the content type of the user tour
+
+ Background:
+ Given I log in as "admin"
+ And I add a new user tour with:
+ | Name | First tour |
+ | Description | My first tour |
+ | Apply to URL match | /my/% |
+ | Tour is enabled | 1 |
+
+ @javascript
+ Scenario: User can choose the the content type of the tour step
+ Given I open the User tour settings page
+ And I click on "View" "link" in the "My first tour" "table_row"
+ When I click on "New step" "link"
+ Then "Content type" "select" should exist
+ And the "Content type" select box should contain "Read from language pack"
+ And the "Content type" select box should contain "Enter manually"
+ And I select "Read from language pack" from the "Content type" singleselect
+ And I should see " Moodle language identifier"
+ And "#fgroup_id_contenthtmlgrp" "css_element" should not be visible
+ And I select "Enter manually" from the "Content type" singleselect
+ And "#fgroup_id_contenthtmlgrp" "css_element" should be visible
+ And I should not see "Moodle language identifier"
+
+ @javascript
+ Scenario: Create a new step with Moodle Language content type
+ Given I open the User tour settings page
+ And I click on "View" "link" in the "My first tour" "table_row"
+ And I click on "New step" "link"
+ And I set the field "Title" to "tour_activityinfo_course_teacher_title,tool_usertours"
+ And I select "Read from language pack" from the "Content type" singleselect
+ And I set the field "Moodle language identifier" to "tour_activityinfo_course_teacher_content_abc,tool_usertours"
+ When I press "Save changes"
+ Then I should see "Invalid language identifier"
+ And I set the field "Moodle language identifier" to "tour_activityinfo_course_teacher_content,tool_usertours"
+ And I press "Save changes"
+ And I should see "New: Activity information"
+ And I should see "New course settings 'Show completion conditions' and 'Show activity dates' enable you to choose whether activity completion conditions (if set) and/or dates are displayed for students on the course page."
+ And I click on "Edit" "link" in the "New: Activity information" "table_row"
+ And the field "Title" matches value "tour_activityinfo_course_teacher_title,tool_usertours"
+ And the field "Moodle language identifier" matches value "tour_activityinfo_course_teacher_content,tool_usertours"
+
+ @javascript
+ Scenario: Create a new step with manual content type
+ Given I open the User tour settings page
+ And I click on "View" "link" in the "My first tour" "table_row"
+ And I click on "New step" "link"
+ And I set the field "Title" to "tour_activityinfo_course_teacher_title,tool_usertours"
+ And I select "Enter manually" from the "Content type" singleselect
+ And I set the field "id_content" to "Test content"
+ And I press "Save changes"
+ And I should see "New: Activity information"
+ And I should see "Test content"
+ And I click on "Edit" "link" in the "New: Activity information" "table_row"
+ And I should not see "Moodle language identifier"
+ And the field "Title" matches value "tour_activityinfo_course_teacher_title,tool_usertours"
+ And the field "id_content" matches value "Test content"
diff --git a/admin/tool/usertours/tests/behat/tour_filter.feature b/admin/tool/usertours/tests/behat/tour_filter.feature
index d7b1d3c74a4..6f75015287e 100644
--- a/admin/tool/usertours/tests/behat/tour_filter.feature
+++ b/admin/tool/usertours/tests/behat/tour_filter.feature
@@ -27,8 +27,8 @@ Feature: Apply tour filters to a tour
| Tour is enabled | 1 |
| Role | Student,Non-editing teacher |
And I add steps to the "First tour" tour:
- | targettype | Title | Content |
- | Display in middle of page | Welcome | Welcome to your course tour.|
+ | targettype | Title | id_content | Content type |
+ | Display in middle of page | Welcome | Welcome to your course tour. | Enter manually |
And I log out
And I log in as "editor1"
When I am on "Course 1" course homepage
@@ -68,8 +68,8 @@ Feature: Apply tour filters to a tour
| Tour is enabled | 1 |
| Category | MainCat |
And I add steps to the "First tour" tour:
- | targettype | Title | Content |
- | Display in middle of page | Welcome | Welcome to your course tour.|
+ | targettype | Title | id_content | Content type |
+ | Display in middle of page | Welcome | Welcome to your course tour. | Enter manually |
And I log out
And I log in as "student1"
When I am on "Course 1" course homepage
@@ -100,8 +100,8 @@ Feature: Apply tour filters to a tour
| Tour is enabled | 1 |
| Course format | Weekly format |
And I add steps to the "First tour" tour:
- | targettype | Title | Content |
- | Display in middle of page | Welcome | Welcome to your course tour.|
+ | targettype | Title | id_content | Content type |
+ | Display in middle of page | Welcome | Welcome to your course tour. | Enter manually |
And I log out
And I log in as "student1"
When I am on "Course 1" course homepage
@@ -132,8 +132,8 @@ Feature: Apply tour filters to a tour
| Tour is enabled | 1 |
| Courses | C1 |
And I add steps to the "First tour" tour:
- | targettype | Title | Content |
- | Display in middle of page | Welcome | Welcome to your course tour.|
+ | targettype | Title | id_content | Content type |
+ | Display in middle of page | Welcome | Welcome to your course tour. | Enter manually |
And I log out
And I log in as "student1"
When I am on "Course 1" course homepage
@@ -171,8 +171,8 @@ Feature: Apply tour filters to a tour
| Tour is enabled | 1 |
| CSS selector | .modtype_wiki |
And I add steps to the "Wiki tour" tour:
- | targettype | Title | Content |
- | Display in middle of page | Welcome | Welcome to the Wiki tour |
+ | targettype | Title | id_content | Content type |
+ | Display in middle of page | Welcome | Welcome to the Wiki tour | Enter manually |
And I add a new user tour with:
| Name | Forum tour |
| Description | A tour with both matches |
@@ -180,8 +180,8 @@ Feature: Apply tour filters to a tour
| Tour is enabled | 1 |
| CSS selector | .modtype_forum |
And I add steps to the "Forum tour" tour:
- | targettype | Title | Content |
- | Display in middle of page | Welcome | Welcome to the Forum tour |
+ | targettype | Title | id_content | Content type |
+ | Display in middle of page | Welcome | Welcome to the Forum tour | Enter manually |
And I am on "Course 1" course homepage
Then I should see "Welcome to the Wiki tour"
And I am on "Course 2" course homepage
@@ -200,8 +200,8 @@ Feature: Apply tour filters to a tour
| Tour is enabled | 1 |
| CSS selector | #page-my-index |
And I add steps to the "First tour" tour:
- | targettype | Title | Content |
- | Display in middle of page | Welcome | Welcome to the First tour |
+ | targettype | Title | id_content | Content type |
+ | Display in middle of page | Welcome | Welcome to the First tour | Enter manually |
And I add a new user tour with:
| Name | Second tour |
| Description | The second tour |
@@ -209,8 +209,8 @@ Feature: Apply tour filters to a tour
| Tour is enabled | 0 |
| CSS selector | #page-my-index |
And I add steps to the "Second tour" tour:
- | targettype | Title | Content |
- | Display in middle of page | Welcome | Welcome to the Second tour |
+ | targettype | Title | id_content | Content type |
+ | Display in middle of page | Welcome | Welcome to the Second tour | Enter manually |
And I add a new user tour with:
| Name | Third tour |
| Description | The third tour |
@@ -218,8 +218,8 @@ Feature: Apply tour filters to a tour
| Tour is enabled | 1 |
| CSS selector | #page-my-index |
And I add steps to the "Third tour" tour:
- | targettype | Title | Content |
- | Display in middle of page | Welcome | Welcome to the Third tour |
+ | targettype | Title | id_content | Content type |
+ | Display in middle of page | Welcome | Welcome to the Third tour | Enter manually |
And I am on homepage
Then I should see "Welcome to the First tour"
And I open the User tour settings page
diff --git a/admin/tool/usertours/tests/behat/tour_navigation.feature b/admin/tool/usertours/tests/behat/tour_navigation.feature
index 186840aa674..1c5fc898701 100644
--- a/admin/tool/usertours/tests/behat/tour_navigation.feature
+++ b/admin/tool/usertours/tests/behat/tour_navigation.feature
@@ -13,8 +13,8 @@ Feature: Steps can be navigated within a tour
| Apply to URL match | /my/% |
| Tour is enabled | 1 |
And I add steps to the "Calendar tour" tour:
- | targettype | Block | Title | Content |
- | Block | Calendar | Calendar events | This is the calendar block |
+ | targettype | Block | Title | id_content | Content type |
+ | Block | Calendar | Calendar events | This is the calendar block | Enter manually |
And I change window size to "large"
And I follow "Dashboard"
And I wait until the page is ready
@@ -32,8 +32,8 @@ Feature: Steps can be navigated within a tour
| Apply to URL match | /my/% |
| Tour is enabled | 1 |
And I add steps to the "Calendar tour" tour:
- | targettype | Block | Title | Content |
- | Block | Calendar | Calendar events | This is the calendar block |
+ | targettype | Block | Title | id_content | Content type |
+ | Block | Calendar | Calendar events | This is the calendar block | Enter manually |
And I change window size to "large"
And I follow "Dashboard"
And I wait until the page is ready
@@ -49,12 +49,12 @@ Feature: Steps can be navigated within a tour
| Apply to URL match | /my/% |
| Tour is enabled | 1 |
And I add steps to the "First tour" tour:
- | targettype | Title | Content |
- | Display in middle of page | Welcome | Welcome to your personal learning space. We'd like to give you a quick tour to show you some of the areas you may find helpful |
+ | targettype | Title | id_content | Content type |
+ | Display in middle of page | Welcome | Welcome to your personal learning space. We'd like to give you a quick tour to show you some of the areas you may find helpful | Enter manually |
And I add steps to the "First tour" tour:
- | targettype | targetvalue_block | Title | Content |
- | Block | Timeline | Timeline | This is the Timeline. All of your upcoming activities can be found here |
- | Block | Calendar | Calendar | This is the Calendar. All of your assignments and due dates can be found here |
+ | targettype | targetvalue_block | Title | id_content | Content type |
+ | Block | Timeline | Timeline | This is the Timeline. All of your upcoming activities can be found here | Enter manually |
+ | Block | Calendar | Calendar | This is the Calendar. All of your assignments and due dates can be found here | Enter manually |
When I am on homepage
Then I should see "Skip tour"
And I should see "Next (1/3)"
@@ -73,8 +73,8 @@ Feature: Steps can be navigated within a tour
| Tour is enabled | 1 |
| End tour button's label | CustomText |
And I add steps to the "Calendar tour" tour:
- | targettype | Block | Title | Content |
- | Block | Calendar | Calendar events | This is the calendar block |
+ | targettype | Block | Title | id_content | Content type |
+ | Block | Calendar | Calendar events | This is the calendar block | Enter manually |
And I change window size to "large"
And I follow "Dashboard"
And I wait until the page is ready
diff --git a/theme/boost/tests/behat/reset_tour.feature b/theme/boost/tests/behat/reset_tour.feature
index 4afa3746e56..4a1c0f2bc5c 100644
--- a/theme/boost/tests/behat/reset_tour.feature
+++ b/theme/boost/tests/behat/reset_tour.feature
@@ -13,8 +13,8 @@ Feature: Reset a tour for Boost
| Tour is enabled | 1 |
| Show with backdrop | 1 |
And I add steps to the "First tour" tour:
- | targettype | Title | Content |
- | Display in middle of page | Welcome | Welcome tour. |
+ | targettype | Title | id_content | Content type |
+ | Display in middle of page | Welcome | Welcome tour. | Enter manually |
@javascript
Scenario: Reset the tour with desktop view
diff --git a/theme/boost/tests/behat/tour_filter.feature b/theme/boost/tests/behat/tour_filter.feature
index c359bf5212f..ad87463ec2f 100644
--- a/theme/boost/tests/behat/tour_filter.feature
+++ b/theme/boost/tests/behat/tour_filter.feature
@@ -14,8 +14,8 @@ Feature: Apply tour filters to a tour for Classic
| Tour is enabled | 1 |
| Theme | Classic |
And I add steps to the "First tour" tour:
- | targettype | Title | Content |
- | Display in middle of page | Welcome | Welcome to your personal learning space. We'd like to give you a quick tour to show you some of the areas you may find helpful |
+ | targettype | Title | id_content | Content type |
+ | Display in middle of page | Welcome | Welcome to your personal learning space. We'd like to give you a quick tour to show you some of the areas you may find helpful | Enter manually |
When I am on homepage
Then I should not see "Welcome to your personal learning space. We'd like to give you a quick tour to show you some of the areas you may find helpful"
@@ -29,7 +29,7 @@ Feature: Apply tour filters to a tour for Classic
| Tour is enabled | 1 |
| Theme | Boost |
And I add steps to the "First tour" tour:
- | targettype | Title | Content |
- | Display in middle of page | Welcome | Welcome to your personal learning space. We'd like to give you a quick tour to show you some of the areas you may find helpful |
+ | targettype | Title | id_content | Content type |
+ | Display in middle of page | Welcome | Welcome to your personal learning space. We'd like to give you a quick tour to show you some of the areas you may find helpful | Enter manually |
When I am on homepage
Then I should see "Welcome to your personal learning space. We'd like to give you a quick tour to show you some of the areas you may find helpful"