AutorÃa | Ultima modificación | Ver Log |
{"version":3,"file":"groups.min.js","sources":["../src/groups.js"],"sourcesContent":["\ndefine(['jquery', 'core/str', 'core/modal_factory', 'core/modal_events',\n 'core/fragment', 'core/templates', 'core/ajax', 'core/notification'],\nfunction($, Str, Modal, ModalEvents, Fragment, Templates, AJAX, Notification) {\n\n return {\n init: function(contextID) {\n\n var groupModal = document.getElementsByClassName('group-widget-viewmembers');\n Array.from(groupModal).forEach(function(element) {\n element.addEventListener('click', function(e) {\n e.preventDefault();\n var target = e.target;\n var group = target.getAttribute('data-group');\n Modal.create({\n title: Str.get_string('groups', 'core')\n }).then(function(modal) {\n modal.show();\n var args = JSON.stringify({group: group});\n
var params = {widget: 'groups', method: 'viewmembers', args: args};\n Fragment.loadFragment('block_dash', 'loadwidget', contextID, params).then((html, js) => {\n modal.setBody(html);\n Templates.runTemplateJS(js);\n return html;\n }).catch(Notification.exception);\n modal.getRoot().on(ModalEvents.hidden, function() {\n modal.destroy();\n });\n return modal;\n }).catch(Notification.exception);\n });\n });\n\n var groupUsers = document.getElementsByClassName('add-group-users');\n Array.from(groupUsers).forEach(function(element) {\n element.addEventListener('click', function(e) {\n e.preventDefault();\n addGroupUsers(e);\n });\n });\n\n
/**\n * Modal create for add member to groups menu.\n * @param {Event} e\n */\n function addGroupUsers(e) {\n var target = e.target;\n var group = target.getAttribute('data-group');\n Modal.create({\n type: Modal.types.SAVE_CANCEL,\n title: Str.get_string('widget:groups:adduser', 'block_dash'),\n }).then(function(modal) {\n modal.setLarge(true);\n modal.show();\n\n var args = JSON.stringify({group: group});\n var params = {widget: 'groups', method: 'addmembers', args: args};\n Fragment.loadFragment('block_dash', 'loadwidget', contextID, params).then((html, js) => {\n modal.setBody(html);\n modal.getRoot().get(0).querySelectorAll('form').forEach(form => {\n groupAddEventListeners(form);\n
});\n\n Templates.runTemplateJS(js);\n return html;\n }).catch(Notification.exception);\n\n modal.getRoot().on(ModalEvents.hidden, function() {\n modal.destroy();\n });\n\n // Apply and save method.\n modal.getRoot().on(ModalEvents.save, (e) => {\n e.preventDefault();\n modal.getRoot().get(0).querySelectorAll('form').forEach(form => {\n form.querySelector('#id_submitbutton').click();\n });\n });\n return modal;\n }).catch(Notification.exception);\n }\n\n /**\n * Event listener for add memebers to groups form submit.\n * @param {Array} form\n */\n function groupAddEventListeners(form) {\n form.addEventListene
r('submit', function(e) {\n e.preventDefault();\n var formdata = new FormData(e.target);\n if (e.target.querySelector('[name=\"users[]\"]').value == '') {\n return false;\n }\n var formdatastr = new URLSearchParams(formdata).toString();\n var promises = AJAX.call([{\n methodname: 'block_dash_groups_add_members',\n args: {formdata: formdatastr}\n }]);\n\n promises[0].done((response) => {\n if (response == true) {\n window.location.reload();\n } else {\n // TODO: Error Notification.\n }\n });\n return true;\n });\n }\n\n // Leave group.\n var leaveGroupModal = document.getElementsByClassN
ame('group-widget-leavegroup');\n Array.from(leaveGroupModal).forEach(function(element) {\n element.addEventListener('click', function(e) {\n e.preventDefault();\n leaveGroup(e);\n });\n });\n\n /**\n * Event observer for leave group menu clicked to trigger the confirmation modal.\n * @param {event} e\n */\n function leaveGroup(e) {\n var target = e.target;\n var group = target.getAttribute('data-group');\n var groupname = target.getAttribute('data-groupname');\n\n Modal.create({\n type: Modal.types.SAVE_CANCEL,\n title: Str.get_string('groups', 'core'),\n }).then(function(modal) {\n Str.get_string('confirm', 'core').then((html) => {\n modal.setSaveButtonText(html);\n return html;\n
}).catch(Notification.exception);\n modal.show();\n\n Str.get_string('confirmleavegroup', 'block_dash', groupname).then((html) => {\n modal.setBody(html);\n return html;\n }).catch(Notification.exception);\n\n modal.getRoot().on(ModalEvents.save, (e) => {\n e.preventDefault();\n var promises = AJAX.call([{\n methodname: 'block_dash_groups_leave_group',\n args: {groupid: group}\n }]);\n\n promises[0].done((response) => {\n if (response == true) {\n window.location.reload();\n } else {\n // TODO: Error Notification.\n }\n });\n });\n\n
modal.getRoot().on(ModalEvents.hidden, function() {\n modal.destroy();\n });\n\n modal.getRoot().on(ModalEvents.destroyed, function() {\n modal.remove();\n modal.attachmentPoint.remove();\n });\n return modal;\n }).catch(Notification.exception);\n }\n\n // Create group.\n var createGroupModal = document.getElementsByClassName('create-group');\n Array.from(createGroupModal).forEach(function(element) {\n element.addEventListener('click', function(e) {\n e.preventDefault();\n createGroup();\n });\n });\n\n /**\n * Event listner for create group modal trigger.\n */\n function createGroup() {\n\n Modal.create({\n type: Modal.types.SAVE_CANCEL,\n
title: Str.get_string('groups', 'core'),\n }).then(function(modal) {\n modal.show();\n\n var args = \"\";\n var params = {widget: 'groups', method: 'creategroup', args: args};\n Fragment.loadFragment('block_dash', 'loadwidget', contextID, params).then((html, js) => {\n modal.setBody(html);\n Templates.runTemplateJS(js);\n modal.getRoot().get(0).querySelectorAll('form').forEach(form => {\n createGroupEvent(form);\n });\n return html;\n }).catch(Notification.exception);\n\n // Apply and save method.\n modal.getRoot().on(ModalEvents.save, (e) => {\n e.preventDefault();\n modal.getRoot().get(0).querySelectorAll('form').forEach(form => {\n form.q
uerySelector('#id_submitbutton').click();\n });\n });\n\n modal.getRoot().on(ModalEvents.hidden, function() {\n modal.destroy();\n });\n return modal;\n }).catch(Notification.exception);\n\n\n }\n /**\n * Event listner for create group forms in modal to init the group creation.\n * @param {Array} form\n */\n function createGroupEvent(form) {\n form.addEventListener('submit', function(e) {\n e.preventDefault();\n var formdata = new FormData(e.target);\n if (e.target.querySelector('[name=\"name\"]').value == \"\"\n || e.target.querySelector('[name=\"courseid\"]').value == '') {\n return false;\n }\n var formdatastr = new URLSearchParams(formdata).toString
();\n var promises = AJAX.call([{\n methodname: 'block_dash_groups_create_group',\n args: {formdata: formdatastr}\n }]);\n\n promises[0].done((response) => {\n return (response == true) ? window.location.reload() : '';\n });\n return true;\n });\n }\n }\n };\n});\n"],"names":["define","$","Str","Modal","ModalEvents","Fragment","Templates","AJAX","Notification","init","contextID","groupModal","document","getElementsByClassName","Array","from","forEach","element","addEventListener","e","preventDefault","group","target","getAttribute","create","title","get_string","then","modal","show","params","widget","method","args","JSON","stringify","loadFragment","html","js","setBody","runTemplateJS","catch","exception","getRoot","on","hidden","destroy","groupUsers","type","types","SAVE_CANCEL","setLarge","get","querySelector
All","form","formdata","FormData","querySelector","value","formdatastr","URLSearchParams","toString","call","methodname","done","response","window","location","reload","groupAddEventListeners","save","click","addGroupUsers","leaveGroupModal","groupname","setSaveButtonText","groupid","destroyed","remove","attachmentPoint","leaveGroup","createGroupModal","createGroupEvent"],"mappings":"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"}