mirror of
https://github.com/moodle/moodle.git
synced 2025-08-05 00:46:50 +02:00
MDL-73188 usertours: Make language string ID work again
- New dropdown was created, user can choose to enter the content manually or using Moodle Language string - New text field was created to allow user to input the Lang string format - New validation was created to validate the language identifier - New Behat tests were created to validate the new feature
This commit is contained in:
parent
a01f1fa71c
commit
2137ce6539
12 changed files with 263 additions and 76 deletions
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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';
|
||||
|
|
|
@ -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)"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
62
admin/tool/usertours/tests/behat/tour_content_type.feature
Normal file
62
admin/tool/usertours/tests/behat/tour_content_type.feature
Normal file
|
@ -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 "<b>Test content</b>"
|
||||
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 "<b>Test content</b>"
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue