MDL-87993 mod_forum: Fix invalid use of SRLogger

* The SRLogger module is meant for reactive instances. Let's use a
visually hidden toast instead.
This commit is contained in:
Jun Pataleta
2026-02-20 15:05:06 +08:00
parent 42439d5667
commit d22048cdd6
3 changed files with 6 additions and 6 deletions
+2 -2
View File
@@ -1,10 +1,10 @@
define("mod_forum/forum_overview_toggle",["exports","core/notification","core/str","core/local/reactive/srlogger","mod_forum/repository"],(function(_exports,_notification,_str,_srlogger,_repository){function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}
define("mod_forum/forum_overview_toggle",["exports","core/notification","core/str","core/toast","mod_forum/repository"],(function(_exports,_notification,_str,_toast,_repository){function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}
/**
* Handle forum subscription/tracking toggling.
*
* @module mod_forum/forum_overview_toggle
* @copyright 2025 Sara Arjona <sara@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/function registerEventListeners(toggleElement){toggleElement.addEventListener("change",(()=>{"forum-subscription-toggle"===toggleElement.dataset.type&&async function(toggleElement){const forumId=toggleElement.dataset.forumid,forumName=toggleElement.dataset.forumname,newState=toggleElement.dataset.targetstate;if(!forumId||!newState)return;try{const newTargetState=!!(await _repository.default.setForumSubscriptionState(forumId,newState)).userstate.subscribed;await updateSwitchState(toggleElement,newTargetState,newTargetState?"subscribe":"unsubscribe");const feedbackMessage=await(0,_str.getString)(newTargetState?"subscribedtoforum":"unsubscribedfromforum","mod_forum",forumName);(new _srlogger.default).add({feedbackMessage:feedbackMessage})}catch(error){_notification.default.exception(error)}}(toggleElement),"forum-track-toggle"===toggleElement.dataset.type&&async function(toggleElement){const forumId=toggleElement.dataset.forumid,forumName=toggleElement.dataset.forumname,newState=toggleElement.dataset.targetstate;if(!forumId||!newState)return;try{const newTargetState=!!(await _repository.default.setForumTrackingState(forumId,newState)).userstate.tracked;await updateSwitchState(toggleElement,newTargetState,newTargetState?"trackingon":"trackingoff");const feedbackMessage=await(0,_str.getString)(newTargetState?"trackedforforum":"untrackedforforum","mod_forum",forumName);(new _srlogger.default).add({feedbackMessage:feedbackMessage})}catch(error){_notification.default.exception(error)}}(toggleElement)}))}async function updateSwitchState(toggleElement,newTargetState,stringKey){toggleElement.dataset.targetstate=newTargetState?0:1;const string=await(0,_str.getString)(stringKey,"mod_forum");toggleElement.closest("td").querySelector('label[for="'.concat(toggleElement.id,'"] span')).textContent=string}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.init=void 0,_notification=_interopRequireDefault(_notification),_srlogger=_interopRequireDefault(_srlogger),_repository=_interopRequireDefault(_repository);_exports.init=toggleSelector=>{const toggleElement=document.querySelector(toggleSelector);toggleElement&&registerEventListeners(toggleElement)}}));
*/function registerEventListeners(toggleElement){toggleElement.addEventListener("change",(()=>{"forum-subscription-toggle"===toggleElement.dataset.type&&async function(toggleElement){const forumId=toggleElement.dataset.forumid,forumName=toggleElement.dataset.forumname,newState=toggleElement.dataset.targetstate;if(!forumId||!newState)return;try{const newTargetState=!!(await _repository.default.setForumSubscriptionState(forumId,newState)).userstate.subscribed;await updateSwitchState(toggleElement,newTargetState,newTargetState?"subscribe":"unsubscribe");const feedbackMessage=await(0,_str.getString)(newTargetState?"subscribedtoforum":"unsubscribedfromforum","mod_forum",forumName);(0,_toast.add)(feedbackMessage,{visuallyHidden:!0})}catch(error){_notification.default.exception(error)}}(toggleElement),"forum-track-toggle"===toggleElement.dataset.type&&async function(toggleElement){const forumId=toggleElement.dataset.forumid,forumName=toggleElement.dataset.forumname,newState=toggleElement.dataset.targetstate;if(!forumId||!newState)return;try{const newTargetState=!!(await _repository.default.setForumTrackingState(forumId,newState)).userstate.tracked;await updateSwitchState(toggleElement,newTargetState,newTargetState?"trackingon":"trackingoff");const feedbackMessage=await(0,_str.getString)(newTargetState?"trackedforforum":"untrackedforforum","mod_forum",forumName);(0,_toast.add)(feedbackMessage,{visuallyHidden:!0})}catch(error){_notification.default.exception(error)}}(toggleElement)}))}async function updateSwitchState(toggleElement,newTargetState,stringKey){toggleElement.dataset.targetstate=newTargetState?0:1;const string=await(0,_str.getString)(stringKey,"mod_forum");toggleElement.closest("td").querySelector('label[for="'.concat(toggleElement.id,'"] span')).textContent=string}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.init=void 0,_notification=_interopRequireDefault(_notification),_repository=_interopRequireDefault(_repository);_exports.init=toggleSelector=>{const toggleElement=document.querySelector(toggleSelector);toggleElement&&registerEventListeners(toggleElement)}}));
//# sourceMappingURL=forum_overview_toggle.min.js.map
File diff suppressed because one or more lines are too long
@@ -23,7 +23,7 @@
import Notification from 'core/notification';
import {getString} from 'core/str';
import SRLogger from 'core/local/reactive/srlogger';
import {add as addToast} from 'core/toast';
import Repository from 'mod_forum/repository';
/**
@@ -69,7 +69,7 @@ async function subscriptionToggleClickHandler(toggleElement) {
'mod_forum',
forumName,
);
new SRLogger().add({feedbackMessage});
addToast(feedbackMessage, {visuallyHidden: true});
} catch (error) {
Notification.exception(error);
}
@@ -103,7 +103,7 @@ async function trackToggleClickHanldler(toggleElement) {
'mod_forum',
forumName,
);
new SRLogger().add({feedbackMessage});
addToast(feedbackMessage, {visuallyHidden: true});
} catch (error) {
Notification.exception(error);
}