Your IP : 216.73.216.95


Current Path : /var/www/ljmtc/cbt/message/amd/build/
Upload File :
Current File : /var/www/ljmtc/cbt/message/amd/build/message_drawer_view_group_info.min.js.map

{"version":3,"sources":["../src/message_drawer_view_group_info.js"],"names":["define","$","Str","Templates","Repository","LazyLoadList","SELECTORS","CONTENT_CONTAINER","MEMBERS_LIST","TEMPLATES","CONTENT","getContentContainer","root","find","render","conversation","loggedInUserId","placeholderCount","totalMemberCount","placeholders","Array","apply","map","templateContext","name","subname","imageurl","imageUrl","loggedinuser","id","then","html","append","getLoadMembersCallback","limit","offset","userId","getConversationMembers","members","length","slice","setLoadedAll","filter","member","renderMembersCallback","contentContainer","contacts","show","namespace","header","body","footer","empty","listRoot","getRoot","description","get_string"],"mappings":"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","sourcesContent":["// This file is part of Moodle - http://moodle.org/\n//\n// Moodle is free software: you can redistribute it and/or modify\n// it under the terms of the GNU General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// Moodle is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n// GNU General Public License for more details.\n//\n// You should have received a copy of the GNU General Public License\n// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.\n\n/**\n * Controls the group info page of the message drawer.\n *\n * @module     core_message/message_drawer_view_group_info\n * @copyright  2018 Ryan Wyllie <ryan@moodle.com>\n * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n */\ndefine(\n[\n    'jquery',\n    'core/str',\n    'core/templates',\n    'core_message/message_repository',\n    'core_message/message_drawer_lazy_load_list',\n],\nfunction(\n    $,\n    Str,\n    Templates,\n    Repository,\n    LazyLoadList\n) {\n\n    var LOAD_MEMBERS_LIMIT = 50;\n\n    var SELECTORS = {\n        CONTENT_CONTAINER: '[data-region=\"group-info-content-container\"]',\n        MEMBERS_LIST: '[data-region=\"members-list\"]',\n    };\n\n    var TEMPLATES = {\n        CONTENT: 'core_message/message_drawer_view_group_info_body_content',\n        MEMBERS_LIST: 'core_message/message_drawer_view_group_info_participants_list'\n    };\n\n    /**\n     * Get the content container of the group info view container.\n     *\n     * @param {Object} root Contact container element.\n     * @return {Object} jQuery object\n     */\n    var getContentContainer = function(root) {\n        return root.find(SELECTORS.CONTENT_CONTAINER);\n    };\n\n    /**\n     * Render the group info page.\n     *\n     * @param {Object} root Container element.\n     * @param {Object} conversation The group conversation.\n     * @param {Number} loggedInUserId The logged in user's id.\n     * @return {Object} jQuery promise\n     */\n    var render = function(root, conversation, loggedInUserId) {\n        var placeholderCount = conversation.totalMemberCount > 50 ? 50 : conversation.totalMemberCount;\n        var placeholders = Array.apply(null, Array(placeholderCount)).map(function() {\n            return true;\n        });\n        var templateContext = {\n            name: conversation.name,\n            subname: conversation.subname,\n            imageurl: conversation.imageUrl,\n            placeholders: placeholders,\n            loggedinuser: {\n                id: loggedInUserId\n            }\n        };\n\n        return Templates.render(TEMPLATES.CONTENT, templateContext)\n            .then(function(html) {\n                getContentContainer(root).append(html);\n                return html;\n            });\n    };\n\n    /**\n     * Get the callback to load members of the conversation.\n     *\n     * @param {Object} conversation The conversation\n     * @param {Number} limit How many members to load\n     * @param {Number} offset How many memebers to skip\n     * @return {Function} the callback.\n     */\n    var getLoadMembersCallback = function(conversation, limit, offset) {\n        return function(root, userId) {\n            return Repository.getConversationMembers(conversation.id, userId, limit + 1, offset)\n                .then(function(members) {\n                    if (members.length > limit) {\n                        members = members.slice(0, -1);\n                    } else {\n                        LazyLoadList.setLoadedAll(root, true);\n                    }\n\n                    offset = offset + limit;\n\n                    // Filter out the logged in user so that they don't appear in the list.\n                    return members.filter(function(member) {\n                        return member.id != userId;\n                    });\n                });\n        };\n    };\n\n    /**\n     * Function to render the members in the list.\n     *\n     * @param {Object} contentContainer The list content container.\n     * @param {Array} members The list of members to render\n     * @return {Object} jQuery promise\n     */\n    var renderMembersCallback = function(contentContainer, members) {\n        return Templates.render(TEMPLATES.MEMBERS_LIST, {contacts: members})\n            .then(function(html) {\n                contentContainer.append(html);\n                return html;\n            });\n    };\n\n    /**\n     * Setup the contact page.\n     *\n     * @param {string} namespace The route namespace.\n     * @param {Object} header Contact header container element.\n     * @param {Object} body Contact body container element.\n     * @param {Object} footer Contact body container element.\n     * @param {Number} conversation The conversation\n     * @param {Number} loggedInUserId The logged in user id\n     * @return {Object} jQuery promise\n     */\n    var show = function(namespace, header, body, footer, conversation, loggedInUserId) {\n        var root = $(body);\n\n        getContentContainer(root).empty();\n        return render(root, conversation, loggedInUserId)\n            .then(function() {\n                var listRoot = LazyLoadList.getRoot(root);\n                LazyLoadList.show(\n                    listRoot,\n                    getLoadMembersCallback(conversation, LOAD_MEMBERS_LIMIT, 0),\n                    renderMembersCallback\n                );\n                return;\n            });\n    };\n\n    /**\n     * String describing this page used for aria-labels.\n     *\n     * @param {Object} root Contact container element.\n     * @param {Number} conversation The conversation\n     * @return {Object} jQuery promise\n     */\n    var description = function(root, conversation) {\n        return Str.get_string('messagedrawerviewgroupinfo', 'core_message', conversation.name);\n    };\n\n    return {\n        show: show,\n        description: description\n    };\n});\n"],"file":"message_drawer_view_group_info.min.js"}