Webui: Fehler in sophomorix Plugin

Hallo @Arnaud

ein weiterer Fehler in der Webui der Version lmn71:

Beim Klick auf Benutzerverwaltung - Lehrer, oder Benutzerverwaltung - Schüler kommt die Meldung rechts oben:

Ein unerwarteter Fehler ist aufgetreten\n
Bitte schauen Sie in die Browser Konsole

sophomorix-check liefert keine Fehler.

Wo kann ich nachsehen, warum die Meldung kommt?

Viele Grüße
Klaus

Ok, das Browser Log:

all.js:725 Unhandled exception occured
all.js:726 Consider sending this error to https://github.com/ajenti/ajenti/issues/new
(anonymous) @ all.js:726
processQueue @ all.vendor.js:16724
(anonymous) @ all.vendor.js:16732
$eval @ all.vendor.js:18014
$digest @ all.vendor.js:17828
$apply @ all.vendor.js:18122
done @ all.vendor.js:12102
completeRequest @ all.vendor.js:12311
requestLoaded @ all.vendor.js:12239
load (async)
(anonymous) @ all.vendor.js:12222
sendReq @ all.vendor.js:12047
serverRequest @ all.vendor.js:11842
processQueue @ all.vendor.js:16716
(anonymous) @ all.vendor.js:16732
$eval @ all.vendor.js:18014
$digest @ all.vendor.js:17828
$apply @ all.vendor.js:18122
(anonymous) @ all.vendor.js:13966
dispatch @ all.vendor.js:18
r.handle @ all.vendor.js:18
all.vendor.js:14219 TypeError: Cannot read properties of undefined (reading '1')
    at all.js:6000
    at processQueue (all.vendor.js:16716)
    at all.vendor.js:16732
    at Scope.$eval (all.vendor.js:18014)
    at Scope.$digest (all.vendor.js:17828)
    at Scope.$apply (all.vendor.js:18122)
    at done (all.vendor.js:12102)
    at completeRequest (all.vendor.js:12311)
    at XMLHttpRequest.requestLoaded (all.vendor.js:12239)
(anonymous) @ all.vendor.js:14219
(anonymous) @ all.js:727
processQueue @ all.vendor.js:16724
(anonymous) @ all.vendor.js:16732
$eval @ all.vendor.js:18014
$digest @ all.vendor.js:17828
$apply @ all.vendor.js:18122
done @ all.vendor.js:12102
completeRequest @ all.vendor.js:12311
requestLoaded @ all.vendor.js:12239
load (async)
(anonymous) @ all.vendor.js:12222
sendReq @ all.vendor.js:12047
serverRequest @ all.vendor.js:11842
processQueue @ all.vendor.js:16716
(anonymous) @ all.vendor.js:16732
$eval @ all.vendor.js:18014
$digest @ all.vendor.js:17828
$apply @ all.vendor.js:18122
(anonymous) @ all.vendor.js:13966
dispatch @ all.vendor.js:18
r.handle @ all.vendor.js:18

Hallo Klaus,

Hast du evtl etwas an die Custom Felder Konfiguration geändert ?
Wenn ja, wie sieht es aus ?

Gruß

Arnaud

Hallo Arnaud,

ich habe in den Custom Feldern nichts eingetragen.
Wenn ich mir die Anfrage beim Klick auf „Benutzerverwaltung - Lehrer“ in der Browser Konsole ansehe, dann sind z.B.:
https://10.0.0.1/api/lm/sophomorixUsers/teachers

sophomorixCustomMulti5	[]
sophomorixIntrinsicMulti4	[]
..
sophomorixCustom4	"null"
sophomorixCustom1	"null"

Vielleicht hilft das weiter?

Viele Grüße
Klaus

Hallo Klaus,

Eigentlich sieht es ok aus.

Im Browser Log, kannst du auf all.js klicken und hier kopieren, was ca bei der Zeile 6000 steht ? Mit mehr Kontext kann ich es vielleicht begrenzen.

Gruß

Arnaud

Hallo Arnaud,

die Zeile aus all.js habe ich unten mit 6000 markiert

  $http.get('/api/lm/read_custom_config').then(function(resp) {
      var idx, index, j, len1, ref1, results;
      $scope.customDisplay = resp.data.customDisplay.teachers;
      $scope.customTitle = [''];
      ref1 = [1, 2, 3];
      results = [];
      for (j = 0, len1 = ref1.length; j < len1; j++) {
        idx = ref1[j];
6000        if ($scope.customDisplay[idx] === void 0 || $scope.customDisplay[idx] === '') {
          results.push($scope.customTitle.push(''));
        } else if ($scope.customDisplay[idx] === 'proxyAddresses') {
          results.push($scope.customTitle.push(resp.data.proxyAddresses.teachers.title));
        } else {
          index = $scope.customDisplay[idx].slice(-1);
          if ($scope.isListAttr($scope.customDisplay[idx])) {
            results.push($scope.customTitle.push(resp.data.customMulti.teachers[index].title || ''));
          } else {
            results.push($scope.customTitle.push(resp.data.custom.teachers[index].title || ''));
          }
        }
      }
      return results;
    });

Viele Grüße
Klaus

Ok, perfekt, danke, jetzt weiß ich worum es geht, ich werde es analysieren.

Gruß

Arnaud

Ok, problem gefunden, ich werde es morgen lösen.

Gruß

Arnaud

Hallo Arnaud,

vielen Dank für Deine Arbeit!

Grüße
Klaus

Hallo Klaus,

Ich habe gestern eine Korrektur vorbereitet, bin aber damit nicht zufrieden.
In deinem Fall, wenn du in Schuleinstellungen gehst → Tab Benutzerdefinierte Felder, und dann ein mal Speichern + Neu starten, damit sollte das Problem behoben sein ( habe ich vergessen zu sagen ).

Gruß

Arnaud

Hallo Arnaud,

der Workaround funktioniert leider nicht, das hatte ich nach Deinem Hinweis auf die benutzerdefinierten Felder auch probiert.

Version: 1.0.163~7

Viele Grüße
Klaus

Hum, und das Einfügen von :

customDisplay:
  students:
    '1': ''
    '2': ''
    '3': ''
  teachers:
    '1': ''
    '2': ''
    '3': ''

in /etc/linuxmuster/webui/config.yml und service neu starten ?

Gruß

Arnaud

1 „Gefällt mir“

Hallo Arnaud,

ja, dann funktioniert es, der Fehler ist weg.
Die Werte waren vorher nicht drin und wurden auch nicht durch die „Speichern“ Aktion gesetzt.
Nachdem ich die Einträge manuell ergänzt hatte, bleiben diese auch nach einer „Speichern“ Aktion der benutzerdefinierten Felder erhalten.

Danke und viele Grüße
Klaus

Hallo,

Ich habe es mit einer temporären Lösung gefixt, bin aber damit nicht besonders zufrieden :

Ich muss es später neu schreiben, wenn ich angepassten Tools in Ajenti vorbereitet habe.

Gruß

Arnaud