Select Git revision
      
  
              Tobias Baden authored 
 - Added AND to the search - Searching only fullname - Edited the help-desciption - Removed unused statements - Renamed some variables - Updated Version
  jmodule.js  6.36 KiB 
define(['jquery'], function ($) {
    function search(searchstring, reloadBool, displaymode, instanceid, sesskey, contextid, idSearching, orderbysemester, wwwroot) {
        if (reloadBool) {
            $("#hshcourseprogress").show();
            $.ajax({
                type: 'GET',
                url: wwwroot + '/blocks/hshcourselist/hshcourselist.php',
                data: 'course=' + searchstring + '&instanceid=' + instanceid
                    + '&sesskey=' + sesskey + '&contextid=' + contextid
                    + '&idSearching=' + idSearching + '&orderbysemester=' + orderbysemester,
                dataType: "json",
                success: function (response) {
                    var plainJSON = JSON.stringify(response);
                    var courses = JSON.parse(plainJSON);
                    var list = $("<ul class='list-group' id='hshcourselistul'></ul>");
                    if (courses.length > 0) {
                        $.each(courses, function (index, course) {
                            switch (displaymode) {
                                case '0':
                                    displaystr = course.shortname;
                                    break;
                                case '1':
                                    displaystr = course.fullname;
                                    break;
                                case '2':
                                    displaystr = course.shortname + ': ' + course.fullname;
                                    break;
                                default:
                                    displaystr = course.fullname;
                                    break;
                            }
                            $('<li class="list-group-item hshcoursesearchlistitem " value="' + course.id + '">'
                                + '<a href="' + wwwroot + '/course/view.php?id=' + course.id + '">' + displaystr + '</a> </li>')
                                .appendTo(list);
                        });
                    }
                    $("#hshcourselistul").replaceWith(list);
                    $("#hshcourseprogress").hide();
                },
                error: function (a) {
                    console.error("error " + JSON.stringify(a));
                }
            });
        } else {
        }
    }
    return {
        init: function (jsdataobject, wwwroot) {
            var jsdataobject = jsdataobject;
            var instanceid = jsdataobject.instanceid;
            var sesskey = jsdataobject.sesskey;
            var displaymode = jsdataobject.displaymode;
            var contextid = jsdataobject.contextid;
            var reloadList = false;
            var idSearching = false;
            var wildcardSearching = false;
            var searchstring;
            var orderbysemester = jsdataobject.orderbysemester;
            var displaystr;
            $("#hshcourseprogress").hide();
            $(".idSarchingLabel").hide();
            $('#orderbysemestercheckbox_id').on('change', function () {
                orderbysemester = document.getElementById('orderbysemestercheckbox_id').checked;
                reloadList = true;                searchstring = document.getElementById('hshcourselistsearch').value;
                if (searchstring.slice(0, 1) === '#') {
                    $(".idSarchingLabel").show();
                    idSearching = true;
                    searchstring = searchstring.slice(1);
                } else if (searchstring.slice(0, 1) === '%') {
                    wildcardSearching = true;
                } else {
                    $(".idSarchingLabel").hide();
                    idSearching = false;
                }
                if (wildcardSearching == true || idSearching == true || searchstring.length >= 3) {
                    search(searchstring, reloadList, displaymode, instanceid, sesskey, contextid, idSearching, orderbysemester, wwwroot);
                } else {
                    // Search start after 3 chars or searching by id
                }
            });
            $('#hshcourselistsearch').on('keyup', function (e) {
                var key = e.keyCode;
                orderbysemester = document.getElementById('orderbysemestercheckbox_id').checked;
                if (key !== 40 && key !== 38 && key !== 13) {
                    reloadList = true;
                    searchstring = document.getElementById('hshcourselistsearch').value;
                    if (searchstring.slice(0, 1) === '#') {
                        $(".idSarchingLabel").show();
                        idSearching = true;
                        searchstring = searchstring.slice(1);
                    } else if (searchstring.slice(0, 1) === '%') {
                        wildcardSearching = true;
                    } else {
                        $(".idSarchingLabel").hide();
                        idSearching = false;
                    }
                    if (wildcardSearching == true || idSearching == true || searchstring.length >= 3) {
                        search(searchstring, reloadList, displaymode, instanceid, sesskey, contextid, idSearching, orderbysemester, wwwroot);
                    } else {
                        // Search start after 3 chars or searching by id
                    }
                }
            });
            $('#hshcourseform').on('submit', function (e) {
                e.preventDefault;
                reloadList = true;
                idSearching = false;
                wildcardSearching = false;
                orderbysemester = document.getElementById('orderbysemestercheckbox_id').checked;
                searchstring = document.getElementById('hshcourselistsearch').value;
                if (searchstring.slice(0, 1) === '#') {
                    idSearching = true;
                    searchstring = searchstring.slice(1);
                } else if (searchstring.slice(0, 1) === '%') {
                    wildcardSearching = true;
                } else {
                    idSearching = false;
                }
                if (wildcardSearching == true || idSearching == true || searchstring.length >= 3) {
                    search(searchstring, reloadList, displaymode, instanceid, sesskey, contextid, idSearching, orderbysemester, wwwroot);
                } else {
                    // Search start after 3 chars or searching by id
                }
            });
        },
    }
});