Select Git revision
-
Julian Tolstich authoredJulian Tolstich authored
jmodule.js 6.94 KiB
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
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 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;
searchstring = searchstring.replace(/%/g, '');
searchstring = searchstring.trim();
if (searchstring.slice(0, 1) === '#') {
$(".idSarchingLabel").show();
idsearching = true;
searchstring = searchstring.slice(1);
} else {
$(".idSarchingLabel").hide();
idsearching = false;
}
if (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;
searchstring = searchstring.replace(/%/g, '');
searchstring = searchstring.trim();
if (searchstring.slice(0, 1) === '#') {
$(".idSarchingLabel").show();
idsearching = true;
searchstring = searchstring.slice(1);
} else {
$(".idSarchingLabel").hide();
idsearching = false;
}
if (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.
$('#' + parentId).children().remove();
}
}
});
$('#hshcourseform').on('submit', function (e) {
e.preventDefault;
reloadList = true;
idsearching = false;
orderbysemester = document.getElementById('orderbysemestercheckbox_id').checked;
searchstring = document.getElementById('hshcourselistsearch').value;
searchstring = searchstring.replace(/%/g, '');
searchstring = searchstring.trim();
if (searchstring.slice(0, 1) === '#') {
idsearching = true;
searchstring = searchstring.slice(1);
} else {
idsearching = false;
}
if (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.
}
});
},
}
});