MDL-69336 lib: Reinstating tablelib column show/hide functionality

Also added behat testing for hide/show columns in participants table.
This commit is contained in:
Michael Hawkins
2020-08-04 15:20:29 +08:00
parent 95c4f624c8
commit 52925cb9df
2 changed files with 59 additions and 14 deletions
+10 -14
View File
@@ -1444,23 +1444,19 @@ class flexible_table {
}
}
// Now, update the column attributes for collapsed columns
foreach (array_keys($this->columns) as $column) {
if (!empty($this->prefs['collapse'][$column])) {
$this->column_style[$column]['width'] = '10px';
}
}
// Now, update the column attributes for collapsed columns
foreach (array_keys($this->columns) as $column) {
if (!empty($this->prefs['collapse'][$column])) {
$this->column_style[$column]['width'] = '10px';
}
}
$this->set_hide_show_preferences();
$this->set_sorting_preferences();
$this->set_initials_preferences();
// Now, reduce the width of collapsed columns and remove the width from columns that should be expanded.
foreach (array_keys($this->columns) as $column) {
if (!empty($this->prefs['collapse'][$column])) {
$this->column_style[$column]['width'] = '10px';
} else {
unset($this->column_style[$column]['width']);
}
}
if (empty($this->baseurl)) {
debugging('You should set baseurl when using flexible_table.');
global $PAGE;
@@ -0,0 +1,49 @@
@core @core_user
Feature: The visibility of table columns can be toggled
In order to customise my view of participants data
As a user
I need to be able to hide and show columns in the participants table
Background:
Given the following "courses" exist:
| fullname | shortname | category | groupmode |
| Course 1 | C1 | 0 | 1 |
And the following "users" exist:
| username | firstname | lastname | email |
| t1 | Agatha | T | agatha@example.com |
| s1 | Matilda | W | matilda@example.com |
| s2 | Mick | H | mick@example.com |
And the following "course enrolments" exist:
| user | course | role |
| t1 | C1 | editingteacher |
| s1 | C1 | student |
| s2 | C1 | student |
@javascript
Scenario: The visibility of columns can be individually toggled within the participants table
Given I log in as "t1"
And I am on "Course 1" course homepage
And I navigate to course participants
And I should see "Email address" in the "participants" "table"
And I should see "matilda@example.com" in the "participants" "table"
And I should see "Roles" in the "participants" "table"
And I should see "Student" in the "participants" "table"
When I follow "Hide Email address"
Then I should not see "Email address" in the "participants" "table"
And I should not see "matilda@example.com" in the "participants" "table"
And I should see "Roles" in the "participants" "table"
And I should see "Student" in the "participants" "table"
And I follow "Hide Roles"
And I should not see "Roles" in the "participants" "table"
And I should not see "Student" in the "participants" "table"
And I should not see "matilda@example.com" in the "participants" "table"
And I follow "Show Email address"
And I should see "Email address" in the "participants" "table"
And I should see "matilda@example.com" in the "participants" "table"
And I should not see "Roles" in the "participants" "table"
And I should not see "Student" in the "participants" "table"
And I follow "Show Roles"
And I should see "Roles" in the "participants" "table"
And I should see "Student" in the "participants" "table"
And I should see "Email address" in the "participants" "table"
And I should see "matilda@example.com" in the "participants" "table"