mirror of
https://github.com/moodle/moodle.git
synced 2025-04-20 07:56:06 +02:00
MDL-65033 mod_forum: Accessibility updates
This commit is contained in:
parent
13cd05ac14
commit
ac91531670
2
mod/forum/amd/build/favourite_toggle.min.js
vendored
2
mod/forum/amd/build/favourite_toggle.min.js
vendored
@ -1 +1 @@
|
||||
define(["jquery","core/templates","core/notification","mod_forum/repository","mod_forum/selectors"],function(a,b,c,d,e){var f=function(f){f.on("click",e.favourite.toggle,function(e){var f=a(this),g=f.data("forumid"),h=f.data("discussionid"),i=f.data("targetstate");d.setFavouriteDiscussionState(g,h,i).then(function(a){return b.render("mod_forum/discussion_favourite_toggle",a)}).then(function(a,c){return b.replaceNode(f,a,c)})["catch"](c.exception),e.preventDefault()})};return{init:function(a){f(a)}}});
|
||||
define(["jquery","core/templates","core/notification","mod_forum/repository","mod_forum/selectors","core/str"],function(a,b,c,d,e,f){var g=function(g){g.on("click",e.favourite.toggle,function(e){var g=a(this),h=g.data("forumid"),i=g.data("discussionid"),j=g.data("targetstate");d.setFavouriteDiscussionState(h,i,j).then(function(a){return b.render("mod_forum/discussion_favourite_toggle",a)}).then(function(a,c){return b.replaceNode(g,a,c)}).then(function(){return f.get_string("favouriteupdated","forum").done(function(a){return c.addNotification({message:a,type:"info"})})})["catch"](c.exception),e.preventDefault()})};return{init:function(a){g(a)}}});
|
2
mod/forum/amd/build/pin_toggle.min.js
vendored
2
mod/forum/amd/build/pin_toggle.min.js
vendored
@ -1 +1 @@
|
||||
define(["jquery","core/ajax","core/str","core/templates","core/notification","mod_forum/repository","mod_forum/selectors"],function(a,b,c,d,e,f,g){var h=function(b){b.on("click",g.pin.toggle,function(b){var c=a(this),g=c.data("forumid"),h=c.data("discussionid"),i=c.data("targetstate");f.setPinDiscussionState(g,h,i).then(function(a){return d.render("mod_forum/discussion_pin_toggle",a)}).then(function(a,b){return d.replaceNode(c,a,b)}).fail(e.exception),b.preventDefault()})};return{init:function(a){h(a)}}});
|
||||
define(["jquery","core/ajax","core/str","core/templates","core/notification","mod_forum/repository","mod_forum/selectors","core/str"],function(a,b,c,d,e,f,g,h){var i=function(b){b.on("click",g.pin.toggle,function(b){var c=a(this),g=c.data("forumid"),i=c.data("discussionid"),j=c.data("targetstate");f.setPinDiscussionState(g,i,j).then(function(a){return d.render("mod_forum/discussion_pin_toggle",a)}).then(function(a,b){return d.replaceNode(c,a,b)}).then(function(){return h.get_string("pinupdated","forum").done(function(a){return e.addNotification({message:a,type:"info"})})}).fail(e.exception),b.preventDefault()})};return{init:function(a){i(a)}}});
|
@ -28,12 +28,14 @@ define([
|
||||
'core/notification',
|
||||
'mod_forum/repository',
|
||||
'mod_forum/selectors',
|
||||
'core/str',
|
||||
], function(
|
||||
$,
|
||||
Templates,
|
||||
Notification,
|
||||
Repository,
|
||||
Selectors
|
||||
Selectors,
|
||||
String
|
||||
) {
|
||||
|
||||
/**
|
||||
@ -55,6 +57,15 @@ define([
|
||||
.then(function(html, js) {
|
||||
return Templates.replaceNode(toggleElement, html, js);
|
||||
})
|
||||
.then(function() {
|
||||
return String.get_string("favouriteupdated", "forum")
|
||||
.done(function(s) {
|
||||
return Notification.addNotification({
|
||||
message: s,
|
||||
type: "info"
|
||||
});
|
||||
});
|
||||
})
|
||||
.catch(Notification.exception);
|
||||
|
||||
e.preventDefault();
|
||||
|
@ -33,6 +33,7 @@ define([
|
||||
'core/notification',
|
||||
'mod_forum/repository',
|
||||
'mod_forum/selectors',
|
||||
'core/str',
|
||||
], function(
|
||||
$,
|
||||
Ajax,
|
||||
@ -40,7 +41,8 @@ define([
|
||||
Templates,
|
||||
Notification,
|
||||
Repository,
|
||||
Selectors
|
||||
Selectors,
|
||||
String
|
||||
) {
|
||||
|
||||
/**
|
||||
@ -61,6 +63,15 @@ define([
|
||||
.then(function(html, js) {
|
||||
return Templates.replaceNode(toggleElement, html, js);
|
||||
})
|
||||
.then(function() {
|
||||
return String.get_string("pinupdated", "forum")
|
||||
.done(function(s) {
|
||||
return Notification.addNotification({
|
||||
message: s,
|
||||
type: "info"
|
||||
});
|
||||
});
|
||||
})
|
||||
.fail(Notification.exception);
|
||||
|
||||
e.preventDefault();
|
||||
|
@ -125,7 +125,7 @@ class discussion_list extends db_table_vault {
|
||||
$tables .= ' JOIN {user} fa ON fa.id = ' . $alias . '.userid';
|
||||
$tables .= ' JOIN {user} la ON la.id = ' . $alias . '.usermodified';
|
||||
$tables .= ' JOIN ' . $posttable->get_from_sql() . ' ON fp.id = ' . $alias . '.firstpost';
|
||||
$tables .= $favsql ? $favsql : '';
|
||||
$tables .= isset($favsql) ? $favsql : '';
|
||||
|
||||
$selectsql = 'SELECT ' . $fields . ' FROM ' . $tables;
|
||||
$selectsql .= $wheresql ? ' WHERE ' . $wheresql : '';
|
||||
|
@ -75,13 +75,13 @@ $string['cannotmovenotvisible'] = 'Forum not visible';
|
||||
$string['cannotmovetonotexist'] = 'You can\'t move to that forum - it doesn\'t exist!';
|
||||
$string['cannotmovetonotfound'] = 'Target forum not found in this course.';
|
||||
$string['cannotmovetosingleforum'] = 'Cannot move discussion to a simple single discussion forum';
|
||||
$string['cannotpindiscussions'] = 'Sorry, you do not have the permission to pin discussions.';
|
||||
$string['cannotpindiscussions'] = 'Sorry, you do not have permission to pin discussions.';
|
||||
$string['cannotpurgecachedrss'] = 'Could not purge the cached RSS feeds for the source and/or destination forum(s) - check your file permissionsforums';
|
||||
$string['cannotremovesubscriber'] = 'Could not remove subscriber with id {$a} from this forum!';
|
||||
$string['cannotreply'] = 'You cannot reply to this post';
|
||||
$string['cannotsplit'] = 'Discussions from this forum cannot be split';
|
||||
$string['cannotsubscribe'] = 'Sorry, but you must be a group member to subscribe.';
|
||||
$string['cannotfavourite'] = 'Sorry, but you do not have the permission to favourite.';
|
||||
$string['cannotfavourite'] = 'Sorry, but you do not have the permission to star discussions.';
|
||||
$string['cannottrack'] = 'Could not stop tracking that forum';
|
||||
$string['cannotunsubscribe'] = 'Could not unsubscribe you from that forum';
|
||||
$string['cannotupdatepost'] = 'You can not update this post';
|
||||
@ -239,6 +239,7 @@ $string['exportdiscussion'] = 'Export whole discussion to portfolio';
|
||||
$string['exportattachmentname'] = 'Export attachment {$a} to portfolio';
|
||||
$string['firstpost'] = 'First post';
|
||||
$string['favourites'] = 'Starred';
|
||||
$string['favouriteupdated'] = 'Your star option has been updated.';
|
||||
$string['forcedreadtracking'] = 'Allow forced read tracking';
|
||||
$string['forcedreadtracking_desc'] = 'Allows forums to be set to forced read tracking. Will result in decreased performance for some users, particularly on courses with many forums and posts. When off, any forums previously set to Forced are treated as optional.';
|
||||
$string['forcesubscribed_help'] = 'This forum has been configured so that you cannot unsubscribe from discussions.';
|
||||
@ -440,6 +441,7 @@ $string['permanentlinktopost'] = 'Permanent link to this post';
|
||||
$string['permanentlinktoparentpost'] = 'Permanent link to the parent of this post';
|
||||
$string['postisprivatereply'] = 'This post was made privately and is not visible to all users.';
|
||||
$string['pindiscussion'] = 'Pin this discussion';
|
||||
$string['pinupdated'] = 'The pin option has been updated.';
|
||||
$string['posttomygroups'] = 'Post a copy to all groups';
|
||||
$string['posttomygroups_help'] = 'Posts a copy of this message to all groups you have access to. Participants in groups you do not have access to will not see this post';
|
||||
$string['prevdiscussiona'] = 'Previous discussion: {$a}';
|
||||
|
@ -34,11 +34,12 @@
|
||||
}}
|
||||
{{#capabilities.favourite}}
|
||||
<a
|
||||
class="p-t-0 btn btn-link"
|
||||
class="btn btn-link"
|
||||
data-type="favorite-toggle"
|
||||
data-action="toggle"
|
||||
data-discussionid="{{id}}"
|
||||
data-forumid="{{forumid}}"
|
||||
role="menuitem",
|
||||
tabindex="-1"
|
||||
{{#userstate.favourited}}
|
||||
data-targetstate="0"
|
||||
|
@ -40,6 +40,8 @@
|
||||
data-discussionid="{{id}}"
|
||||
data-forumid="{{forumid}}"
|
||||
href="{{urls.pin}}"
|
||||
tabindex="-1"
|
||||
role="menuitem"
|
||||
{{#pinned}}
|
||||
data-targetstate="0"
|
||||
title="{{#str}}unpindiscussion, mod_forum{{/str}}"
|
||||
|
@ -35,7 +35,7 @@
|
||||
{{#capabilities.subscribe}}
|
||||
<a
|
||||
href="{{{urls.subscribe}}}"
|
||||
class="p-3 btn btn-link"
|
||||
class="py-3 btn btn-link"
|
||||
data-type="subscription-toggle"
|
||||
data-action="toggle"
|
||||
data-discussionid="{{id}}"
|
||||
|
@ -25,11 +25,13 @@
|
||||
}
|
||||
}}
|
||||
<div class="ml-auto dropdown">
|
||||
<button class="m-t-0 p-t-0 btn btn-link btn-icon"
|
||||
<button class="{{^settings.excludetext}}dropdown-toggle{{/settings.excludetext}} m-t-0 p-t-0 btn btn-link btn-icon"
|
||||
type="button"
|
||||
role="button"
|
||||
data-toggle="dropdown"
|
||||
aria-haspopup="true"
|
||||
tabindex="0"
|
||||
aria-controls="forum-action-menu-{{id}}-menu"
|
||||
aria-expanded="false">
|
||||
{{#settings.togglemoreicon}}
|
||||
{{#pix}} i/moremenu, core{{/pix}}
|
||||
@ -42,7 +44,11 @@
|
||||
{{/settings.excludetext}}
|
||||
|
||||
</button>
|
||||
<div class="dropdown-menu dropdown-menu-right">
|
||||
<div class="dropdown-menu dropdown-menu-right"
|
||||
aria-labelledby="forum-action-menu-{{id}}-menu"
|
||||
data-rel="menu-content"
|
||||
role="menu"
|
||||
id="forum-action-menu-{{id}}-menu">
|
||||
<div class="dropdown-item">
|
||||
{{> mod_forum/discussion_favourite_toggle}}
|
||||
</div>
|
||||
|
@ -82,39 +82,39 @@ class mod_forum_vaults_discussion_list_testcase extends advanced_testcase {
|
||||
$course = $datagenerator->create_course();
|
||||
$forum = $datagenerator->create_module('forum', ['course' => $course->id]);
|
||||
|
||||
$this->assertEquals([], $vault->get_from_forum_id($forum->id, true, $user->id, null, 0, 0));
|
||||
$this->assertEquals([], $vault->get_from_forum_id($forum->id, true, $user->id, null, 0, 0, $user));
|
||||
|
||||
$now = time();
|
||||
[$discussion1, $post1] = $this->helper_post_to_forum($forum, $user, ['timestart' => $now - 10, 'timemodified' => 1]);
|
||||
[$discussion2, $post2] = $this->helper_post_to_forum($forum, $user, ['timestart' => $now - 9, 'timemodified' => 2]);
|
||||
[$hiddendiscussion, $post3] = $this->helper_post_to_forum($forum, $user, ['timestart' => $now + 10, 'timemodified' => 3]);
|
||||
|
||||
$summaries = array_values($vault->get_from_forum_id($forum->id, false, null, null, 0, 0));
|
||||
$summaries = array_values($vault->get_from_forum_id($forum->id, false, null, null, 0, 0, $user));
|
||||
$this->assertCount(2, $summaries);
|
||||
$this->assertEquals($discussion2->id, $summaries[0]->get_discussion()->get_id());
|
||||
$this->assertEquals($discussion1->id, $summaries[1]->get_discussion()->get_id());
|
||||
|
||||
$summaries = array_values($vault->get_from_forum_id($forum->id, true, null, null, 0, 0));
|
||||
$summaries = array_values($vault->get_from_forum_id($forum->id, true, null, null, 0, 0, $user));
|
||||
$this->assertCount(3, $summaries);
|
||||
$this->assertEquals($hiddendiscussion->id, $summaries[0]->get_discussion()->get_id());
|
||||
$this->assertEquals($discussion2->id, $summaries[1]->get_discussion()->get_id());
|
||||
$this->assertEquals($discussion1->id, $summaries[2]->get_discussion()->get_id());
|
||||
|
||||
$summaries = array_values($vault->get_from_forum_id($forum->id, false, $user->id, null, 0, 0));
|
||||
$summaries = array_values($vault->get_from_forum_id($forum->id, false, $user->id, null, 0, 0, $user));
|
||||
$this->assertCount(3, $summaries);
|
||||
$this->assertEquals($hiddendiscussion->id, $summaries[0]->get_discussion()->get_id());
|
||||
$this->assertEquals($discussion2->id, $summaries[1]->get_discussion()->get_id());
|
||||
$this->assertEquals($discussion1->id, $summaries[2]->get_discussion()->get_id());
|
||||
|
||||
$summaries = array_values($vault->get_from_forum_id($forum->id, true, null, null, 1, 0));
|
||||
$summaries = array_values($vault->get_from_forum_id($forum->id, true, null, null, 1, 0, $user));
|
||||
$this->assertCount(1, $summaries);
|
||||
$this->assertEquals($hiddendiscussion->id, $summaries[0]->get_discussion()->get_id());
|
||||
|
||||
$summaries = array_values($vault->get_from_forum_id($forum->id, true, null, null, 1, 1));
|
||||
$summaries = array_values($vault->get_from_forum_id($forum->id, true, null, null, 1, 1, $user));
|
||||
$this->assertCount(1, $summaries);
|
||||
$this->assertEquals($discussion2->id, $summaries[0]->get_discussion()->get_id());
|
||||
|
||||
$summaries = array_values($vault->get_from_forum_id($forum->id, true, null, null, 1, 2));
|
||||
$summaries = array_values($vault->get_from_forum_id($forum->id, true, null, null, 1, 2, $user));
|
||||
$this->assertCount(1, $summaries);
|
||||
$this->assertEquals($discussion1->id, $summaries[0]->get_discussion()->get_id());
|
||||
}
|
||||
@ -132,7 +132,7 @@ class mod_forum_vaults_discussion_list_testcase extends advanced_testcase {
|
||||
$course = $datagenerator->create_course();
|
||||
$forum = $datagenerator->create_module('forum', ['course' => $course->id]);
|
||||
|
||||
$this->assertEquals([], $vault->get_from_forum_id($forum->id, true, true, null, 0, 0));
|
||||
$this->assertEquals([], $vault->get_from_forum_id($forum->id, true, true, null, 0, 0, $user));
|
||||
|
||||
$now = time();
|
||||
[$discussion1, $post1] = $this->helper_post_to_forum($forum, $user, ['timestart' => $now - 10, 'timemodified' => 1]);
|
||||
@ -154,7 +154,7 @@ class mod_forum_vaults_discussion_list_testcase extends advanced_testcase {
|
||||
['timestart' => $now + 11, 'timemodified' => 6, 'groupid' => 3]
|
||||
);
|
||||
|
||||
$summaries = array_values($vault->get_from_forum_id_and_group_id($forum->id, [1, 2, 3], true, null, null, 0, 0));
|
||||
$summaries = array_values($vault->get_from_forum_id_and_group_id($forum->id, [1, 2, 3], true, null, null, 0, 0, $user));
|
||||
$this->assertCount(6, $summaries);
|
||||
$this->assertEquals($hiddengroupdiscussion->id, $summaries[0]->get_discussion()->get_id());
|
||||
$this->assertEquals($hiddendiscussion->id, $summaries[1]->get_discussion()->get_id());
|
||||
@ -163,7 +163,7 @@ class mod_forum_vaults_discussion_list_testcase extends advanced_testcase {
|
||||
$this->assertEquals($discussion2->id, $summaries[4]->get_discussion()->get_id());
|
||||
$this->assertEquals($discussion1->id, $summaries[5]->get_discussion()->get_id());
|
||||
|
||||
$summaries = array_values($vault->get_from_forum_id_and_group_id($forum->id, [1, 2, 3], false, $user->id, null, 0, 0));
|
||||
$summaries = array_values($vault->get_from_forum_id_and_group_id($forum->id, [1, 2, 3], false, $user->id, null, 0, 0, $user));
|
||||
$this->assertCount(6, $summaries);
|
||||
$this->assertEquals($hiddengroupdiscussion->id, $summaries[0]->get_discussion()->get_id());
|
||||
$this->assertEquals($hiddendiscussion->id, $summaries[1]->get_discussion()->get_id());
|
||||
@ -172,26 +172,26 @@ class mod_forum_vaults_discussion_list_testcase extends advanced_testcase {
|
||||
$this->assertEquals($discussion2->id, $summaries[4]->get_discussion()->get_id());
|
||||
$this->assertEquals($discussion1->id, $summaries[5]->get_discussion()->get_id());
|
||||
|
||||
$summaries = array_values($vault->get_from_forum_id_and_group_id($forum->id, [1, 2, 3], true, null, null, 1, 0));
|
||||
$summaries = array_values($vault->get_from_forum_id_and_group_id($forum->id, [1, 2, 3], true, null, null, 1, 0, $user));
|
||||
$this->assertCount(1, $summaries);
|
||||
$this->assertEquals($hiddengroupdiscussion->id, $summaries[0]->get_discussion()->get_id());
|
||||
|
||||
$summaries = array_values($vault->get_from_forum_id_and_group_id($forum->id, [1, 2, 3], true, null, null, 1, 1));
|
||||
$summaries = array_values($vault->get_from_forum_id_and_group_id($forum->id, [1, 2, 3], true, null, null, 1, 1, $user));
|
||||
$this->assertCount(1, $summaries);
|
||||
$this->assertEquals($hiddendiscussion->id, $summaries[0]->get_discussion()->get_id());
|
||||
|
||||
$summaries = array_values($vault->get_from_forum_id_and_group_id($forum->id, [1, 2, 3], true, null, null, 1, 2));
|
||||
$summaries = array_values($vault->get_from_forum_id_and_group_id($forum->id, [1, 2, 3], true, null, null, 1, 2, $user));
|
||||
$this->assertCount(1, $summaries);
|
||||
$this->assertEquals($groupdiscussion2->id, $summaries[0]->get_discussion()->get_id());
|
||||
|
||||
$summaries = array_values($vault->get_from_forum_id_and_group_id($forum->id, [1, 2, 3], false, null, null, 0, 0));
|
||||
$summaries = array_values($vault->get_from_forum_id_and_group_id($forum->id, [1, 2, 3], false, null, null, 0, 0, $user));
|
||||
$this->assertCount(4, $summaries);
|
||||
$this->assertEquals($groupdiscussion2->id, $summaries[0]->get_discussion()->get_id());
|
||||
$this->assertEquals($groupdiscussion1->id, $summaries[1]->get_discussion()->get_id());
|
||||
$this->assertEquals($discussion2->id, $summaries[2]->get_discussion()->get_id());
|
||||
$this->assertEquals($discussion1->id, $summaries[3]->get_discussion()->get_id());
|
||||
|
||||
$summaries = array_values($vault->get_from_forum_id_and_group_id($forum->id, [], true, null, null, 0, 0));
|
||||
$summaries = array_values($vault->get_from_forum_id_and_group_id($forum->id, [], true, null, null, 0, 0, $user));
|
||||
$this->assertCount(3, $summaries);
|
||||
$this->assertEquals($hiddendiscussion->id, $summaries[0]->get_discussion()->get_id());
|
||||
$this->assertEquals($discussion2->id, $summaries[1]->get_discussion()->get_id());
|
||||
@ -237,7 +237,7 @@ class mod_forum_vaults_discussion_list_testcase extends advanced_testcase {
|
||||
$course = $datagenerator->create_course();
|
||||
$forum = $datagenerator->create_module('forum', ['course' => $course->id]);
|
||||
|
||||
$this->assertEquals([], $vault->get_from_forum_id($forum->id, true, true, null, 0, 0));
|
||||
$this->assertEquals([], $vault->get_from_forum_id($forum->id, true, true, null, 0, 0, $user));
|
||||
|
||||
$now = time();
|
||||
[$discussion1, $post1] = $this->helper_post_to_forum($forum, $user, ['timestart' => $now - 10, 'timemodified' => 1]);
|
||||
|
Loading…
x
Reference in New Issue
Block a user