Commandbar mit Historie und Syntax Highlighting im Lesemodus

Begonnen von FHEMAN, 12 März 2017, 23:41:44

Vorheriges Thema - Nächstes Thema

FHEMAN

Hi swsmily, anscheinend werden die DEFs unterschiedlich aufgebaut. Es sieht so aus, als ob Einzeiler im DEF anders gerendert werden. Ich habe das Script dahingehend angepasst, werde es aber später noch einmal überarbeiten, da mir der Fix nicht so ganz gefällt.
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB

JoWiemann

Zitat von: swsmily am 22 Mai 2023, 21:54:12EDIT: Gerade gemerkt, dass ich attr WEB JavaScripts input/jquery-input-history.js oder mit pgm2 vorher  nie drin hatte.

Dennoch wurde mir im Firefox immer die letzten Befehle angezeigt.

Hallo,

das was Du beschreibst ist die Kommando Historie, die jeder Browser mit sich bringt. Durch aktivieren der Fhem Kommando Historie wird die Browser Historie ersetzt und steht somit nicht mehr zur Verfügung. Es wird halt eine neue Historie aufgebaut, die auch etwas anders funktioniert. Vorteil ist, dass die Fhem Historie nicht in anderen Eingabefeldern des Browsers auftauchen kann.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

Invers

Zitat von: JoWiemann am 23 Mai 2023, 08:19:16
Zitat von: swsmily am 22 Mai 2023, 21:54:12EDIT: Gerade gemerkt, dass ich attr WEB JavaScripts input/jquery-input-history.js oder mit pgm2 vorher  nie drin hatte.

Dennoch wurde mir im Firefox immer die letzten Befehle angezeigt.

Hallo,

das was Du beschreibst ist die Kommando Historie, die jeder Browser mit sich bringt. Durch aktivieren der Fhem Kommando Historie wird die Browser Historie ersetzt und steht somit nicht mehr zur Verfügung. Es wird halt eine neue Historie aufgebaut, die auch etwas anders funktioniert. Vorteil ist, dass die Fhem Historie nicht in anderen Eingabefeldern des Browsers auftauchen kann.

Grüße Jörg
Ich denke, damit könnte gemeint sein, dass die Auswahlliste nicht mehr aufklappt. Meine History wurde nämlich nicht gelöscht. Gebe ich einen Buchstaben U ein, wird eine Liste mit allen Eingaben ausgeklappt, die mit U anfangen. Gebe ich danach ein P ein, werden alle mit UP angezeigt, also gefiltert. Das funktioniert mit der neuen Version mit Highlight nicht mehr. Die alte Version funktionierte bereits mit Edge nicht mehr, aber mit Firefox gehts noch. Kann man das bitte wieder aktivieren? Ich finde diese Funktionalität ganz toll.
Danke  im Voraus.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

FHEMAN

Es könnte gut sein, dass im FF das alte Script noch im Browsercache war.

@Invers: Du beschreibst meiner Meinung nach das Browser Standardverhalten. Denn eine Auswahlliste klappt bei der Commandbar History nicht auf. Hier geht es nur darum, mit den Pfeiltasten hoch/runter durch die letzten Befehle zu navigieren, ähnlich einer Linux Shell.
Vergleiche mal die Befehle mit denen im Löschdialog (Symbol rechts neben der Commandbar).
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB

JoWiemann

Zitat von: FHEMAN am 23 Mai 2023, 00:35:49Hi swsmily, anscheinend werden die DEFs unterschiedlich aufgebaut. Es sieht so aus, als ob Einzeiler im DEF anders gerendert werden. Ich habe das Script dahingehend angepasst, werde es aber später noch einmal überarbeiten, da mir der Fix nicht so ganz gefällt.

Hallo Ronny,

durch den Fix wird die Höhe auf 300px gesetzt. Der mögliche Parameter "height" funktioniert nicht, da er keine zugelassener Wert in setOption/getOption im CodeMirror ist, sondern gesondert behandelt wird.

Als ein erweiterter Vorschlag:
var userAttr = scriptAttribute("jquery-input-history.js");
for(var a in userAttr) {
if (a == "height") {
if(userAttr[a] == true)
userAttr[a] = "auto";
if(isNaN(userAttr[a])) {
$("head").append('<style type="text/css">.CodeMirror {height:auto;}');
        } else {
$("head").append('<style type="text/css">.CodeMirror {height:' + userAttr[a] + 'px;}');
}

} else {
pcm.setOption(a, userAttr[a]);
}
}

Wenn man jetzt "height":true als Parameter setzt, wird im DEF die Formatierung auf "auto" gesetzt, oder mit z.B. "height":100 auf 100px. Ohne Parameter oder mit false auf 300px.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

Invers

Wenn ich falsch liege, was ist dann das? Woher stammt das? Browsercache ist 100 Prozent ausgeschlossen, weil mein komplettes Windows und alle Programme neu installiert sind.
Meine Befehlshistorie ist einfach super. Hab ich schon seit vielen Jahren. Wenn das nicht von hier ist, kann vielleicht jemand bitte sagen, woher?
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

swsmily

Zitat von: FHEMAN am 23 Mai 2023, 10:30:29Es könnte gut sein, dass im FF das alte Script noch im Browsercache war.

@Invers: Du beschreibst meiner Meinung nach das Browser Standardverhalten. Denn eine Auswahlliste klappt bei der Commandbar History nicht auf. Hier geht es nur darum, mit den Pfeiltasten hoch/runter durch die letzten Befehle zu navigieren, ähnlich einer Linux Shell.
Vergleiche mal die Befehle mit denen im Löschdialog (Symbol rechts neben der Commandbar).

Gibts die Möglichkeit, dass das Syntaxhighlighting in Lesemodus eingebunden wird, aber ohne Commandbar History? Mir gefällt das Verhalten besser, wenn es das Auswahlmenü gibt, was vom Browser (Firefox) kommt. Ich verwende selten den gleichen Befehl mehrfach nacheinander. Allerdings ist es schon praktisch, wenn man nur "up" eingeben muss und es wird "update", "update check" und "uptime" vorgeschlagen.

FHEMAN

Zitat von: JoWiemann am 23 Mai 2023, 16:03:13Hallo Ronny,

durch den Fix wird die Höhe auf 300px gesetzt. Der mögliche Parameter "height" funktioniert nicht, da er keine zugelassener Wert in setOption/getOption im CodeMirror ist, sondern gesondert behandelt wird.
Hallo Jörg, ich habe Deine Lösung ohne große Änderungen eingebaut.

Zitat von: Invers am 23 Mai 2023, 17:51:08Wenn ich falsch liege, was ist dann das? Woher stammt das?
Aus meiner Sicht dürfte das der Browser Standard sein. Ich fand das Handling mit dem Auswahldialog immer unschön. Vielleicht hat es sich inzwischen verbessert, ich habe es nicht mehr aktiviert.

Ich habe nun einen Schalter eingebaut, mit dem Du das individuelle Input-History löschen kannst:

attr WEB jquery-input-historyParam {"enableInputHistory":false }

Aber eigentlich bin ich mir ob der Sinnhaftigkeit nicht so sicher.. ;)
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB

swsmily

Zitat von: FHEMAN am 23 Mai 2023, 20:24:52Ich habe nun einen Schalter eingebaut, mit dem Du das individuelle Input-History löschen kannst:

attr WEB jquery-input-historyParam {"enableInputHistory":false }


Gerade eingespielt und sieht sehr gut aus. Vielen vielen Dank!

swsmily

Mir ist noch eine Kleinigkeit gerade aufgefallen. Bei jedem Laden einer FHEM-Seite springt der Fokus direkt in das Eingabefeld.

Hat man nur mal paar Dinge durch geklickt (z.b über Probably associated with) und will im Firefox mit der Zurück-Taste (über Enter) wieder zurück blättern, geht das nicht, da der Fokus im Eingabefeld liegt.

Ist es möglich den Fokus raus zu nehmen?

FHEMAN

Zitat von: swsmily am 25 Mai 2023, 22:51:53Mir ist noch eine Kleinigkeit gerade aufgefallen. Bei jedem Laden einer FHEM-Seite springt der Fokus direkt in das Eingabefeld.

Das Verhalten ist so gewollt und vereinfacht aus meiner Sicht das Handling. Andernfalls bekommt gar kein Feld den Fokus.

Für die Browser-Zurück Funktion nutze ich Backspace bzw. das neuere Alt-Left. Nutze aber nur Chromium. Wobei FF hier sicherlich ähnlich arbeitet. 
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB

swsmily

Zitat von: FHEMAN am 26 Mai 2023, 12:19:47Das Verhalten ist so gewollt und vereinfacht aus meiner Sicht das Handling. Andernfalls bekommt gar kein Feld den Fokus.

Für die Browser-Zurück Funktion nutze ich Backspace bzw. das neuere Alt-Left. Nutze aber nur Chromium. Wobei FF hier sicherlich ähnlich arbeitet. 

Ja genau Backspace meinte ich. Das funktioniert bei mir damit nicht mehr. Alt-Left und Right kannte ich tatsächlich noch gar nicht, funkioniert im Firefox auch. Danke für den Hinweis.

Bisher war ich es gewohnt, dass erstmal gar kein Feld Focus hat und damit hat Backspace bewirkt, dass Firefox eine Seite zurück geht. Leertaste, dass es eine Seite nach unten scrollt.

Was jedoch nicht geht, dass mit Bild-runter-Taste durch die FHEM-Seite gescrollt wird, solange der Focus im Eingabefeld liegt.
Ich weiß nicht, ob es daran liegt, dass ich "jquery-input-historyParam {"enableInputHistory":false }" gesetzt habe. Jedoch wenn der Focus im Eingabefeld liegt, werden mir dann die letzten Einträge angezeigt und durchgescrollt statt die jeweilige FHEM-Seite.
Da ich viel mit Tastatur arbeite, statt mit Touchpad-Scolling oder Mausrad, ist das für mich schon eine Einschränkung.

Wäre es denn möglich, über einen weiteren Parameter den Focus an und auszuschalten, so dass jemand, der das praktisch findet es nutzen kann, andere aber es abschalten können. Also sowas jquery-input-historyParam {"enableFocus":false } ?

Falls sowas aber nicht möglich, oder zu umständlich ist (oder ich der einzige bin, der das gut finden würde), würde ich abwegen ob ich farbigen Code im Lesemodus haben möchte, oder mir die Navigation per Tastatur in FHEM wichtiger ist. Also nur wegen mir alleine bitte keine Umstände!



FHEMAN

Da das Input-History Script langsam ein Sammelsurium an kleinen Features bietet, macht es sicherlich Sinn, die einzelnen Sachen an-/abschaltbar zu machen. Der Grundstein dafür ist ja schon gelegt.

Diese neue Version würde ich dann aber wohl zum Anlass nehmen, ein paar grundlegende Änderungen am Code vorzunehmen. Die weiteren Sachen sind ja eher so nebenbei reingerutscht, wurden quasi drumherum gestrickt.

Ich arbeite gerade an einer Version, die mir à la Autocomplete alle passenden Fhem Devices im CMD vorschlägt. Aber richtig sinnvoll wäre es ja eigentlich, dies (auch) im Codemirror zu reaktivieren.
Außerdem STRG-S anstelle des modify-Button-Klicks.

@swsmiley: mit "enableInputHistory":false hast Du den Browser Standard wiederhergestellt. Durch den Fokus erfolgt beim Scrollen gleich das Vorschlagen der letzten Einträge. Somit macht die Kombination jquery-Input-Historie und Auto-Fokus schon Sinn. Ich werde hier aber wie gesagt noch einen Schalter einbauen, das ist kein Problem.
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB

cwagner

Hi, wirklich wichtige und wertvolle Idee - doch sollte man nicht in Start-Post vermerken, dass es nicht funktioniert mit dem Style f18?
Habe jetzt eine ganze Weile gebraucht, um zumindest zu diesem Punkt zu kommen: Mit FHEM-Standard funktionierte es bei mir wie beschrieben, sobald ich wieder auf f18 umstelle (was für mich den noch wertvolleren Vorteil der fixen Platzierung von Devices auf den Screens der einzelnen Räume hat, ist die Historie futsch.
Oder übersehe ich eine Möglichkeit die Vorteile beider Welten zu "verheiraten".

Christian
PI 2B+/3B+ Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB

FHEMAN

Hi Christian,

ich habe nutze seit jeher, also noch vor der Einführung des neuen f18 Styles, den alten default Style, den ich auf meine Bedürfnisse angepasst habe.
Testweise habe ich eben einmal auf den f18 Standard umgestellt (d.h. die WEB Attribute CssFiles geleert und StyleSheetPrefix auf f18 gesetzt) - mit dem Ergebnis, dass sowohl die CMD Features als auch die Codemirror Darstellung funktionieren. Natürlich nicht in dem mehrzeiligen CMD bei Klick auf +. Aber das meinst Du nicht, oder?
Also aktuell würde ich daher vermuten, es liegt doch an etwas anderem.
Kannst Du mal mit F12 die Entwicklertools starten und in der Konsole schauen, ob dort Fehler erscheinen? 
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB