Your IP : 192.168.165.1


Current Path : C:/Users/Mahmood/Desktop/moodle/lib/amd/build/
Upload File :
Current File : C:/Users/Mahmood/Desktop/moodle/lib/amd/build/network.min.js.map

{"version":3,"sources":["../src/network.js"],"names":["define","$","Ajax","Config","Notification","Str","started","warningDisplayed","keepAliveFrequency","requestTimeout","keepAliveMessage","sessionTimeout","checkFrequency","Math","min","sessiontimeout","timeoutSessionExpired","touchSession","get_strings","key","component","then","strings","alert","fail","exception","call","methodname","args","setTimeout","checkSession","userid","timeremaining","confirm","start","init","keepalive","freq","timeout","message"],"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 * Poll the server to keep the session alive.\n *\n * @module     core/network\n * @package    core\n * @copyright  2019 Damyon Wiese\n * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n */\ndefine(['jquery', 'core/ajax', 'core/config', 'core/notification', 'core/str'],\n        function($, Ajax, Config, Notification, Str) {\n\n    var started = false;\n    var warningDisplayed = false;\n    var keepAliveFrequency = 0;\n    var requestTimeout = 0;\n    var keepAliveMessage = false;\n    var sessionTimeout = false;\n    // 1/10 of session timeout, max of 10 minutes.\n    var checkFrequency = Math.min((Config.sessiontimeout / 10), 600) * 1000;\n    // 1/5 of sessiontimeout.\n    var warningLimit = checkFrequency * 2;\n\n    /**\n     * The session time has expired - we can't extend it now.\n     */\n    var timeoutSessionExpired = function() {\n        sessionTimeout = true;\n    };\n\n    /**\n     * Ping the server to keep the session alive.\n     *\n     * @return {Promise}\n     */\n    var touchSession = function() {\n        var request = {\n            methodname: 'core_session_touch',\n            args: { }\n        };\n\n        if (sessionTimeout) {\n            // We timed out before we extended the session.\n            return Str.get_strings([\n                {key: 'sessionexpired', component: 'error'},\n                {key: 'sessionerroruser', component: 'error'}\n            ]).then(function(strings) {\n                Notification.alert(\n                    strings[0], // Title.\n                    strings[1] // Message.\n                );\n                return true;\n            }).fail(Notification.exception);\n        } else {\n            return Ajax.call([request], true, true, false, requestTimeout)[0].then(function() {\n                if (keepAliveFrequency > 0) {\n                    setTimeout(touchSession, keepAliveFrequency);\n                }\n                return true;\n            }).fail(function() {\n                Notification.alert('', keepAliveMessage);\n            });\n        }\n    };\n\n    /**\n     * Ask the server how much time is remaining in this session and\n     * show confirm/cancel notifications if the session is about to run out.\n     *\n     * @return {Promise}\n     */\n    var checkSession = function() {\n        var request = {\n            methodname: 'core_session_time_remaining',\n            args: { }\n        };\n\n        sessionTimeout = false;\n        return Ajax.call([request], true, true, true)[0].then(function(args) {\n            if (args.userid <= 0) {\n                return false;\n            }\n            if (args.timeremaining < 0) {\n                Str.get_strings([\n                    {key: 'sessionexpired', component: 'error'},\n                    {key: 'sessionerroruser', component: 'error'}\n                ]).then(function(strings) {\n                    Notification.alert(\n                        strings[0], // Title.\n                        strings[1] // Message.\n                    );\n                    return true;\n                }).fail(Notification.exception);\n\n            } else if (args.timeremaining * 1000 < warningLimit && !warningDisplayed) {\n                // If we don't extend the session before the timeout - warn.\n                setTimeout(timeoutSessionExpired, args.timeremaining * 1000);\n                warningDisplayed = true;\n                Str.get_strings([\n                    {key: 'norecentactivity', component: 'moodle'},\n                    {key: 'sessiontimeoutsoon', component: 'moodle'},\n                    {key: 'extendsession', component: 'moodle'},\n                    {key: 'cancel', component: 'moodle'}\n                ]).then(function(strings) {\n                    Notification.confirm(\n                        strings[0], // Title.\n                        strings[1], // Message.\n                        strings[2], // Extend session.\n                        strings[3], // Cancel.\n                        function() {\n                            touchSession();\n                            warningDisplayed = false;\n                            // First wait is half the session timeout.\n                            setTimeout(checkSession, checkFrequency * 5);\n                            return true;\n                        },\n                        function() {\n                            warningDisplayed = false;\n                            setTimeout(checkSession, checkFrequency);\n                        }\n                    );\n                    return true;\n                }).fail(Notification.exception);\n            } else {\n                setTimeout(checkSession, checkFrequency);\n            }\n            return true;\n        });\n        // We do not catch the fails from the above ajax call because they will fail when\n        // we are not logged in - we don't need to take any action then.\n    };\n\n    /**\n     * Start calling a function to check if the session is still alive.\n     */\n    var start = function() {\n        if (keepAliveFrequency > 0) {\n            setTimeout(touchSession, keepAliveFrequency);\n        } else {\n            // First wait is half the session timeout.\n            setTimeout(checkSession, checkFrequency * 5);\n        }\n    };\n\n    /**\n     * Don't allow more than one of these polling loops in a single page.\n     */\n    var init = function() {\n        // We only allow one concurrent instance of this checker.\n        if (started) {\n            return;\n        }\n        started = true;\n\n        start();\n    };\n\n    /**\n     * Start polling with more specific values for the frequency, timeout and message.\n     *\n     * @param {number} freq How ofter to poll the server.\n     * @param {number} timeout The time to wait for each request to the server.\n     * @param {string} message The message to display if the session is going to time out.\n     */\n    var keepalive = function(freq, timeout, message) {\n        // We only allow one concurrent instance of this checker.\n        if (started) {\n            return;\n        }\n        started = true;\n\n        keepAliveFrequency = freq * 1000;\n        keepAliveMessage = message;\n        requestTimeout = timeout * 1000;\n        start();\n    };\n\n    return {\n        keepalive: keepalive,\n        init: init\n    };\n});\n"],"file":"network.min.js"}