Skip to content
Snippets Groups Projects
Select Git revision
  • c2d6e2f89cf849f03052f92b8f9878c1fae1f472
  • master default protected
  • version2
  • update_bulma_fontawesome
  • privacy_notification
  • specify_target_asset_app
  • v2.2.24
  • v2.3.0
  • v2.2.23
  • v2.2.22
  • v2.2.21
  • v2.2.20
  • v2.2.19
  • v2.2.18
  • v2.2.17
  • v2.2.16
  • v2.2.15
  • v2.2.14
  • v2.2.13
  • v2.2.12
  • v2.2.11
  • v2.2.10
  • v2.2.9
  • v2.2.8
  • v2.2.7
  • v2.2.6
26 results

README.md

Blame
  • To learn more about this project, read the wiki.
    listselect.min.js.map 5.37 KiB
    {"version":3,"file":"listselect.min.js","sources":["../src/listselect.js"],"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 *\n * @package    theme_hsh_boost_campus\n * @copyright  2018 Tobias Baden, Hochschule Hannover\n * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n */\n\n\ndefine([\"jquery\"], function($) {\n    function changeActionString(current, wwwroot) {\n        let actionString = wwwroot;\n        if (current.val() !== 0) {\n            actionString += \"/course/view.php?id=\" + current.val();\n        } else {\n            actionString += \"/my\";\n        }\n        $(\"#hshcourseform\").attr(\"action\", actionString);\n    }\n\n    function setInactive(target) {\n        target.removeClass(\"active\");\n        target.removeClass(\"activeCourseSearch\");\n    }\n\n    function setActive(target) {\n        target.addClass(\"active\");\n        target.addClass(\"activeCourseSearch\");\n    }\n\n    function scrollIntoViewIfNeeded(element) {\n        var windowSize = window.innerHeight;\n        var elementPosition = element.getBoundingClientRect();\n        var elementBottom = elementPosition.bottom;\n        var elementTop = elementPosition.top;\n\n        if (elementBottom > windowSize) {\n            // Scroll an den unteren Rand des Bildes.\n            element.scrollIntoView({ block: \"end\", behavior: \"smooth\" });\n        }\n        if (elementTop < 0) {\n            // Scroll an den oberen Rand des Bildes.\n            element.scrollIntoView({ block: \"start\", behavior: \"smooth\" });\n        }\n    }\n\n    return {\n        init: function(wwwroot) {\n            $(\"input\").keydown(function(e) {\n                var listItems = $(\".hshcoursesearchlistitem\");\n                var selected = listItems.filter(\".activeCourseSearch\");\n                var current;\n                var key = e.keyCode;\n\n                if (key !== 40 && key !== 38 && key !== 13) {\n                    return;\n                }\n\n                setInactive(listItems);\n\n                if (key === 38) {\n                    // KEY UP!\n                    if (!selected.length || selected.is(\":first-child\")) {\n                        current = listItems.last();\n                    } else {\n                        current = selected.prev();\n                    }\n                    changeActionString(current, wwwroot);\n                } else if (key === 40) {\n                    // KEY DOWN!\n                    if (!selected.length || selected.is(\":last-child\")) {\n                        current = listItems.eq(0);\n                    } else {\n                        current = selected.next();\n                    }\n                    changeActionString(current, wwwroot);\n                } else if (key === 13) {\n                    // KEY ENTER!\n                    current = selected;\n                    if (isNaN(current.val())) {\n                        current = listItems.eq(0);\n                    }\n                    changeActionString(current, wwwroot);\n                }\n\n                setActive(current);\n                var scrollToElement = document.getElementsByClassName(\n                    \"activeCourseSearch\"\n                )[0];\n                scrollIntoViewIfNeeded(scrollToElement);\n            });\n        }\n    };\n});\n"],"names":["define","$","changeActionString","current","wwwroot","actionString","val","attr","init","keydown","e","listItems","selected","filter","key","keyCode","target","removeClass","length","is","last","prev","eq","next","isNaN","addClass","setActive","element","windowSize","elementPosition","elementBottom","elementTop","scrollToElement","document","getElementsByClassName","window","innerHeight","getBoundingClientRect","bottom","top","scrollIntoView","block","behavior"],"mappings":";;;;;;AAuBAA,wCAAO,CAAC,WAAW,SAASC,YACfC,mBAAmBC,QAASC,aAC7BC,aAAeD,QACG,IAAlBD,QAAQG,MACRD,cAAgB,uBAAyBF,QAAQG,MAEjDD,cAAgB,MAEpBJ,EAAE,kBAAkBM,KAAK,SAAUF,oBA6BhC,CACHG,KAAM,SAASJ,SACXH,EAAE,SAASQ,SAAQ,SAASC,OAGpBP,QAFAQ,UAAYV,EAAE,4BACdW,SAAWD,UAAUE,OAAO,uBAE5BC,IAAMJ,EAAEK,WAEA,KAARD,KAAsB,KAARA,KAAsB,KAARA,SAlCvBE,QAAAA,OAsCGL,WArCbM,YAAY,UACnBD,OAAOC,YAAY,sBAsCC,KAARH,IAOAZ,mBAJIC,SADCS,SAASM,QAAUN,SAASO,GAAG,gBACtBR,UAAUS,OAEVR,SAASS,OAEKjB,SACb,KAARU,IAOPZ,mBAJIC,SADCS,SAASM,QAAUN,SAASO,GAAG,eACtBR,UAAUW,GAAG,GAEbV,SAASW,OAEKnB,SACb,KAARU,MAEPX,QAAUS,SACNY,MAAMrB,QAAQG,SACdH,QAAUQ,UAAUW,GAAG,IAE3BpB,mBAAmBC,QAASC,mBAzDzBY,QACfA,OAAOS,SAAS,UAChBT,OAAOS,SAAS,sBA0DRC,CAAUvB,aAvDUwB,QACxBC,WACAC,gBACAC,cACAC,WAoDQC,gBAAkBC,SAASC,uBAC3B,sBACF,GA1DkBP,QA2DGK,gBA1D3BJ,WAAaO,OAAOC,YACpBP,gBAAkBF,QAAQU,wBAC1BP,cAAgBD,gBAAgBS,OAChCP,WAAaF,gBAAgBU,IAE7BT,cAAgBF,YAEhBD,QAAQa,eAAe,CAAEC,MAAO,MAAOC,SAAU,WAEjDX,WAAa,GAEbJ,QAAQa,eAAe,CAAEC,MAAO,QAASC,SAAU"}