Newer
Older
function search(searchstring, reloadBool, displaymode, instanceid, sesskey, contextid, idSearching, orderbysemester, wwwroot) {
var splittedSearchstring = searchstring.split(/[ ,]+/);
var courseInList = ["-1"];
var list = $("<ul class='list-group' id='hshcourselistul'></ul>");;
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
splittedSearchstring.forEach(function (searchquery) {
$.ajax({
type: 'GET',
url: wwwroot + '/blocks/hshcourselist/hshcourselist.php',
data: 'course=' + searchquery + '&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);
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;
}
if (!courseInList.includes(course.id)) {
courseInList.push(course.id);
$('<li class="list-group-item hshcoursesearchlistitem " value="' + course.id + '">'
+ '<a href="' + wwwroot + '/course/view.php?id=' + course.id + '">' + displaystr + '</a> </li>')
.appendTo(list);
} else {
// Kurs schon in der Liste
}
});
},
error: function (o) {
console.error("error - courselist");
if (list !== undefined) {
$("#hshcourselistul").replaceWith(list);
$("#hshcourseprogress").hide();
} else {
}
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 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;
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;
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
}