Skip to content

Commit

Permalink
MDL-48865 core_block: Show regions with only hidden blocks when editing
Browse files Browse the repository at this point in the history
Before this patch if all the blocks in a block region are set to hidden the region will be docked even when editing is enabled.
This meant that as a user I would need to add a new block to the page and move it to that region via the configuration
menu before I could manipulate the hidden blocks again.
  • Loading branch information
NeillM authored and John Okely committed Feb 3, 2015
1 parent a5b4cc9 commit f95b1e8
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 0 deletions.
49 changes: 49 additions & 0 deletions blocks/tests/behat/hidden_block_region.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
@core @core_block
Feature: Show hidden blocks in a docked block region when editing
In order to edit blocks in a hidden region
As a teacher
I need to be able to see the blocks when editing is on

Background:
Given the following "courses" exist:
| fullname | shortname | format |
| Course 1 | C1 | topics |
And the following "course enrolments" exist:
| user | course | role |
| admin | C1 | editingteacher |
And I log in as "admin"
And I follow "Course 1"
And I turn editing mode on
# Hide all the blocks in the non-default region
And I configure the "Search forums" block
And I set the following fields to these values:
| Visible | No |
And I click on "Save changes" "button"
And I configure the "Latest news" block
And I set the following fields to these values:
| Visible | No |
And I click on "Save changes" "button"
And I configure the "Upcoming events" block
And I set the following fields to these values:
| Visible | No |
And I click on "Save changes" "button"
And I configure the "Recent activity" block
And I set the following fields to these values:
| Visible | No |
When I click on "Save changes" "button"
# Editing is on so they should be visible
Then I should see "Search forums"
And I should see "Latest news"
And I should see "Upcoming events"
And I should see "Recent activity"
And I turn editing mode off
# Editing is off, so they should no longer be visible
And I should not see "Search forums"
And I should not see "Latest news"
And I should not see "Upcoming events"
And I should not see "Recent activity"

@javascript
Scenario: Check that a region with only hidden blocks is not docked in editing mode (javascript enabled)

Scenario: Check that a region with only hidden blocks is not docked in editing mode (javascript disabled)
5 changes: 5 additions & 0 deletions lib/blocklib.php
Original file line number Diff line number Diff line change
Expand Up @@ -486,6 +486,11 @@ public function region_completely_docked($region, $output) {
return false;
}

// Block regions should not be docked during editing when all the blocks are hidden.
if ($this->page->user_is_editing() && $this->page->user_can_edit_blocks()) {
return false;
}

$this->check_is_loaded();
$this->ensure_content_created($region, $output);
if (!$this->region_has_content($region, $output)) {
Expand Down

0 comments on commit f95b1e8

Please sign in to comment.