MDL-68442 user: Add notifications on unenrol/update
authorAndrew Nicols <andrew@nicols.co.uk>
Sun, 19 Apr 2020 04:21:48 +0000 (12:21 +0800)
committerAndrew Nicols <andrew@nicols.co.uk>
Tue, 28 Apr 2020 02:21:45 +0000 (10:21 +0800)
lang/en/enrol.php
user/amd/build/status_field.min.js
user/amd/build/status_field.min.js.map
user/amd/src/status_field.js

index 9e70441..6fcb077 100644 (file)
@@ -64,6 +64,7 @@ $string['enrolmentnewuser'] = '{$a->user} has enrolled in course "{$a->course}"'
 $string['enrolmentmethod'] = 'Enrolment method';
 $string['enrolments'] = 'Enrolments';
 $string['enrolmentoptions'] = 'Enrolment options';
+$string['enrolmentupdatedforuser'] = 'The enrolment for user "{$a->fullname}" has been updated';
 $string['enrolnotpermitted'] = 'You do not have permission or are not allowed to enrol someone in this course';
 $string['enrolperiod'] = 'Enrolment duration';
 $string['enrolusage'] = 'Instances / enrolments';
@@ -136,6 +137,7 @@ $string['totalunenrolledusers'] = '{$a} unenrolled users';
 $string['totalotherusers'] = '{$a} other users';
 $string['unassignnotpermitted'] = 'You do not have permission to unassign roles in this course';
 $string['unenrol'] = 'Unenrol';
+$string['unenrolleduser'] = 'The user "{$a->fullname}" was unenrolled from the course';
 $string['unenrolconfirm'] = 'Do you really want to unenrol "{$a->user}" (previously enrolled via "{$a->enrolinstancename}") from "{$a->course}"?';
 $string['unenrolme'] = 'Unenrol me from {$a}';
 $string['unenrolnotpermitted'] = 'You do not have permission or can not unenrol this user from this course.';
index fe46b00..255f72e 100644 (file)
Binary files a/user/amd/build/status_field.min.js and b/user/amd/build/status_field.min.js differ
index 4a1d964..7a660a9 100644 (file)
Binary files a/user/amd/build/status_field.min.js.map and b/user/amd/build/status_field.min.js.map differ
index b282cc9..1563120 100644 (file)
@@ -30,6 +30,7 @@ import ModalEvents from 'core/modal_events';
 import ModalFactory from 'core/modal_factory';
 import Notification from 'core/notification';
 import Templates from 'core/templates';
+import {add as notifyUser} from 'core/toast';
 
 const Selectors = {
     editEnrolment: '[data-action="editenrolment"]',
@@ -123,7 +124,7 @@ const showEditDialogue = (link, getBody) => {
             e.preventDefault();
 
             // Submit form data.
-            submitEditFormAjax(link, getBody, modal, userEnrolmentId);
+            submitEditFormAjax(link, getBody, modal, userEnrolmentId, container.dataset);
         });
 
         // Handle hidden event.
@@ -161,9 +162,11 @@ const showUnenrolConfirmation = link => {
             // Submit data.
             submitUnenrolFormAjax(
                 link,
-                modal, {
+                modal,
+                {
                     ueid: userEnrolmentId,
-                }
+                },
+                container.dataset
             );
         });
 
@@ -259,8 +262,9 @@ const showStatusDetails = link => {
  * @param {Function} getBody
  * @param {Object} modal
  * @param {Number} userEnrolmentId
+ * @param {Object} userData
  */
-const submitEditFormAjax = (clickedLink, getBody, modal, userEnrolmentId) => {
+const submitEditFormAjax = (clickedLink, getBody, modal, userEnrolmentId, userData) => {
     const form = modal.getRoot().find('form');
 
     Repository.submitUserEnrolmentForm(form.serialize())
@@ -273,9 +277,17 @@ const submitEditFormAjax = (clickedLink, getBody, modal, userEnrolmentId) => {
         modal.hide();
         modal.destroy();
 
+        return data;
+    })
+    .then(() => {
         DynamicTable.refreshTableContent(getDynamicTableFromLink(clickedLink));
 
-        return data;
+        return Str.get_string('enrolmentupdatedforuser', 'core_enrol', userData);
+    })
+    .then(notificationString => {
+        notifyUser(notificationString);
+
+        return;
     })
     .catch(() => {
         modal.setBody(getBody(userEnrolmentId, JSON.stringify(form.serialize())));
@@ -290,8 +302,9 @@ const submitEditFormAjax = (clickedLink, getBody, modal, userEnrolmentId) => {
  * @param {HTMLElement} clickedLink
  * @param {Object} modal
  * @param {Object} args
+ * @param {Object} userData
  */
-const submitUnenrolFormAjax = (clickedLink, modal, args) => {
+const submitUnenrolFormAjax = (clickedLink, modal, args, userData) => {
     Repository.unenrolUser(args.ueid)
     .then(data => {
         if (!data.result) {
@@ -305,9 +318,17 @@ const submitUnenrolFormAjax = (clickedLink, modal, args) => {
         modal.hide();
         modal.destroy();
 
+        return data;
+    })
+    .then(() => {
         DynamicTable.refreshTableContent(getDynamicTableFromLink(clickedLink));
 
-        return data;
+        return Str.get_string('unenrolleduser', 'core_enrol', userData);
+    })
+    .then(notificationString => {
+        notifyUser(notificationString);
+
+        return;
     })
     .catch(Notification.exception);
 };