Fehler bei editFileList

Begonnen von Prof. Dr. Peter Henning, 24 Februar 2019, 11:14:51

Vorheriges Thema - Nächstes Thema

Prof. Dr. Peter Henning

Wenn man im Attribut editFileList eine Zeile
Phonebook:"/opt/fhem":^phonebook.txt$
eingibt, und diese Datei auch existiert, wird sie beim Öffnen der Seite "Edit files" als editierbare Datei angezeigt. Allerdings führt der erzeugte Link auf eine Datei "/opt/fhem/FHEM/phonebook.txt" - die es natürlich nicht gibt. Beim Anklicken des Links gibt es also eine Fehlermeldung.

Gegenprobe: Wenn man stattdessen im Attribut editFileList eine Zeile
Phonebook:"/opt/fhem/FHEM":^phonebook.txt$
angibt, und diese Datei existiert, wird sie beim Öffnen der Seite "Edit files" als editierbare Datei angezeigt. Der Link ist ok, die Datei ist editierbar.

Schlussfolgerung: Beim Erzeugen der Links auf der Seite "Edit files" wird nicht ganz der korrekte Verzeichnisname verwendet.

LG

pah

rudolfkoenig

Eigentlich/Urspruenglich sollte "Edit Files" eine Moeglichkeit bieten, die .gplot Dateien zu editieren. Danach kamen weitere FHEM-Dateien dazu, aber beliebige Dateien zu editieren war explizit nicht gewollt, deswegen wird die Datei je nach Endung in hartkodierten Verzeichnissen abgespeichert. Wenn die Endung nicht bekannt ist, dann wird $attr{global}{modpath}."FHEM" genommen.

Irgendwannmal kam "editFileList" hinzu, weil man weniger anzeigen wollte, als die Voreinstellung.
Ich sehe noch nicht die Notwendigkeit, es "sauber" zu bauen, damit man beliebige Dateien editieren kann.


betateilchen

#2
Die von Peter beschriebene Aufgabe sollte sich doch durch die Verwendung der vor kurzem neu eingebauten Funktionalität "conf files in fhem editieren" lösen lassen.


  • lege die Datei (oder einen symbolischen Link) in das Verzeichnis $modpath/conf. Falls das Verzeichnis noch nicht existiert, lege es so an, dass der Benutzer fhem darin lesen und schreiben darf.
  • mache Deine Datei bekannt, die Du gerne editieren möchtest: $data{confFiles}{'phonebook.txt'} = '0';
  • solltest Du mit configDB arbeiten, importiere die Datei in die Datenbank

Schon sollte sie zum Ediitieren auftauchen. Schritt 2 kannst Du zum Beispiel in das _Initialize() von 99_myUtils.pm einbauen.



https://forum.fhem.de/index.php/topic,95375.msg893092.html#msg893092
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Prof. Dr. Peter Henning

ZitatIrgendwannmal kam "editFileList" hinzu, weil man weniger anzeigen wollte, als die Voreinstellung.
Ich sehe noch nicht die Notwendigkeit, es "sauber" zu bauen, damit man beliebige Dateien editieren kann.

Das hat auch keiner verlangt (obwohl es ganz nett wäre, wenn man das konfigurieren könnte).

Es ist aber eindeutig ein Fehler, wenn editFileList ein anderes Verzeichnis als Parameter akzeptiert und dann einen falschen Link generiert.

LG

pah

betateilchen

Zitat von: Prof. Dr. Peter Henning am 01 März 2019, 21:52:42
Es ist aber eindeutig ein Fehler, wenn editFileList ein anderes Verzeichnis als Parameter akzeptiert und dann einen falschen Link generiert.

Das kann man als Fehler betrachten, ich habe aber keine Stelle gefunden, an der die gewünschte Funktionalität als zugesicherte Eigenschaft beschrieben steht.

Vereinfacht gesagt, sind das zwei unterschiedliche Baustellen, die nichts voneinander wissen. Und dann kommt noch configDB dazu, wo man die Dateien ja ggf. auch finden, lesen und nach dem Bearbeiten wieder hinschreiben möchte :)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Prof. Dr. Peter Henning

Ein wichtiger Aspekt einer Benutzungsoberfläche ist ihre Konsistenz. In diesem Fall: WENN Parameter (eben eine Verzeichnisangabe) akzeptiert werden und so verarbeitet werden, dass das Ergebnis sinnvoll aussieht (eben ein Link angezeigt wird), DANN muss der Link auch funktionieren.

LG

pah