diff --git a/application/models/education/Lehrveranstaltung_model.php b/application/models/education/Lehrveranstaltung_model.php
index 5819af0e5..0390613f7 100644
--- a/application/models/education/Lehrveranstaltung_model.php
+++ b/application/models/education/Lehrveranstaltung_model.php
@@ -319,15 +319,16 @@ class Lehrveranstaltung_model extends DB_Model
*/
public function loadTemplates($filter)
{
+ $filter = strtolower($filter);
$qry = "SELECT
- tbl_lehrveranstaltung.lehrveranstaltung_id as id, CONCAT(tbl_lehrveranstaltung.bezeichnung, ' [', tbl_lehrveranstaltung.kurzbz, ']') as label
+ tbl_lehrveranstaltung.lehrveranstaltung_id, tbl_lehrveranstaltung.bezeichnung, tbl_lehrveranstaltung.kurzbz
FROM
lehre.tbl_lehrveranstaltung
WHERE
tbl_lehrveranstaltung.lehrtyp_kurzbz = 'tpl' AND (
CAST(tbl_lehrveranstaltung.lehrveranstaltung_id AS TEXT) LIKE '%".$this->db_escape($filter)."%' OR
- tbl_lehrveranstaltung.bezeichnung LIKE '%".$this->db_escape($filter). "%' OR
- tbl_lehrveranstaltung.kurzbz LIKE '%".$this->db_escape($filter). "%'
+ LOWER(tbl_lehrveranstaltung.bezeichnung) LIKE '%".$this->db_escape($filter). "%' OR
+ LOWER(tbl_lehrveranstaltung.kurzbz) LIKE '%".$this->db_escape($filter). "%'
)
";
return $this->execQuery($qry);
diff --git a/include/lehrveranstaltung.class.php b/include/lehrveranstaltung.class.php
index c9b83ae7b..342e08487 100644
--- a/include/lehrveranstaltung.class.php
+++ b/include/lehrveranstaltung.class.php
@@ -2716,15 +2716,16 @@ class lehrveranstaltung extends basis_db
*/
public function loadTemplates($filter)
{
+ $filter = strtolower($filter);
$qry = "SELECT
- tbl_lehrveranstaltung.lehrveranstaltung_id as id, CONCAT(tbl_lehrveranstaltung.bezeichnung, ' [', tbl_lehrveranstaltung.kurzbz, ']') as label
+ tbl_lehrveranstaltung.lehrveranstaltung_id, tbl_lehrveranstaltung.bezeichnung, tbl_lehrveranstaltung.kurzbz
FROM
lehre.tbl_lehrveranstaltung
WHERE
tbl_lehrveranstaltung.lehrtyp_kurzbz = 'tpl' AND (
CAST(tbl_lehrveranstaltung.lehrveranstaltung_id AS TEXT) LIKE '%".$this->db_escape($filter)."%' OR
- tbl_lehrveranstaltung.bezeichnung LIKE '%".$this->db_escape($filter). "%' OR
- tbl_lehrveranstaltung.kurzbz LIKE '%".$this->db_escape($filter). "%'
+ LOWER(tbl_lehrveranstaltung.bezeichnung) LIKE '%".$this->db_escape($filter). "%' OR
+ LOWER(tbl_lehrveranstaltung.kurzbz) LIKE '%".$this->db_escape($filter). "%'
)
";
$lehrveranstaltungen = [];
diff --git a/vilesci/lehre/lehrveranstaltung_details.php b/vilesci/lehre/lehrveranstaltung_details.php
index b45ae20da..2b3b6a04c 100644
--- a/vilesci/lehre/lehrveranstaltung_details.php
+++ b/vilesci/lehre/lehrveranstaltung_details.php
@@ -438,12 +438,11 @@
lehrauftrag?'checked':'').'> |
- |
- |
- |
- |
Template |
- |
+ |
+ |
+ |
+ |
|
@@ -676,101 +675,82 @@
$(this).ColorPickerSetColor(this.value);
});
- $('input[name="lehrveranstaltung_template_id"]').each(function() {
- var input = $(this),
- selItem = null,
- lastContent = [],
- dname = "";
- function searchIdInLastContent(value) {
- for (var i=0; i').attr({
- type: "text",
- value: dname
- }).blur(function(e) {
- var self = $(this),
- val = self.val();
- if (!val) {
- dname = "";
- input.val("");
- return;
- }
- if (val == dname) return;
- searchIdInLastContent(val);
- $.ajax({
- dataType: "json",
- url: "../../soap/fhcomplete.php",
- data: {
- typ: "json",
- class: "lehrveranstaltung",
- method: "loadTemplateByName",
- parameter_0: val
- }
- }).then(data => {
- if (!self.is(':focus') && val === self.val()) {
- if (data.return && data.return.label && data.return.id) {
- dname = data.return.label;
- input.val(data.return.id);
- }
- self.val(dname);
- }
- });
-
- }).blur().insertAfter(input.attr('type', 'hidden')).autocomplete({
- source: function(request, response) {
- $.ajax({
- dataType: "json",
- url: "../../soap/fhcomplete.php",
- data: {
- typ: "json",
- class: "lehrveranstaltung",
- method: "loadTemplates",
- parameter_0: request.term
- }
- }).then(data => {
- response(data.return);
- });
- },
- response: function(e, ui) {
- lastContent = ui.content;
- },
- select: function(e, ui) {
- lastContent = [ui.item];
- },
- close: function(e, ui) {
- searchIdInLastContent($(this).val());
- }
- });
- }
- if (input.val()) {
+ $('input[name="lehrveranstaltung_template_id"]').autocomplete({
+ minLength: 2,
+ source: function(request, response) {
$.ajax({
dataType: "json",
url: "../../soap/fhcomplete.php",
data: {
typ: "json",
class: "lehrveranstaltung",
- method: "load",
- parameter_0: input.val()
+ method: "loadTemplates",
+ parameter_0: request.term
}
}).then(data => {
- if (data.error == "false") {
- var tpl = data.result[0];
- dname = tpl.bezeichnung + " [" + tpl.kurzbz + "]";
- initAutocomplete();
+ for (var k in data.return) {
+ data.return[k].value = data.return[k].lehrveranstaltung_id;
+ data.return[k].name = data.return[k].bezeichnung + " [" + data.return[k].kurzbz + "]";
+ data.return[k].label = data.return[k].name + " (" + data.return[k].lehrveranstaltung_id + ")";
+ }
+ response(data.return);
+ });
+ },
+ close: function(e, ui) {
+ $(this).trigger('check.ac-template');
+ },
+ focus: function(e, ui) {
+ $(this).removeClass('input_ok input_error').val(ui.item.value).parent().parent().find('.text-template_name').text(ui.item.name);
+ return false;
+ },
+ select: function(e, ui) {
+ $(this).addClass('input_ok').val(ui.item.value).parent().parent().find('.text-template_name').text(ui.item.name);
+ return false;
+ }
+ }).focus(function(e) {
+ $(this).removeClass('input_ok input_error');
+ }).blur(function(e) {
+ $(this).trigger('check.ac-template');
+ }).on('check.ac-template', function(e) {
+ var self = $(this),
+ val = self.val();
+ if (!val) {
+ self.removeClass('input_ok input_error').parent().parent().find('.text-template_name').text('');
+ } else {
+ $.ajax({
+ dataType: "json",
+ url: "../../soap/fhcomplete.php",
+ data: {
+ typ: "json",
+ class: "lehrveranstaltung",
+ method: "loadTemplates",
+ parameter_0: val
+ },
+ success: function(data) {
+ if (self.val() == val) {
+ var label = '',
+ state = '',
+ item = null;
+
+ for (var k in data.return) {
+ if (data.return[k].lehrveranstaltung_id == val) {
+ item = data.return[k];
+ break;
+ }
+ }
+
+ if (item) {
+ state = 'input_ok';
+ label = item.bezeichnung + " [" + item.kurzbz + "]";
+ } else if (val) {
+ state = 'input_error';
+ }
+ self.removeClass('input_ok input_error').addClass(state).parent().parent().find('.text-template_name').text(label);
+ }
}
});
- } else {
- initAutocomplete();
}
- });
+ }).trigger('check.ac-template');
$('select[name="lehrtyp_kurzbz"]').change(function(e) {
if ($(this).val() == 'tpl') {