Autor Thema: Antrag/Vorschlag für eine Filtermöglichkeit bei der Log Anzeige  (Gelesen 723 mal)

Offline eki

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1454
Ich habe bei mir mal probehalber ein "Filter" Feature für die Logfile Anzeige eingebaut (mit relativ überschaubaren Änderungen in 01_FHEMWEB.pm und fhemweb.json), und möchte das hier mal zur Diskussion stellen. Für mich ist das vor allem im FHEM Logfile eine Hilfe, weil ich da immer mal wieder nach bestimmten Dingen suche, oder manche Sachen ausblenden will, um mich auf das Wesentliche konzentrieren zu können (kann man natürlich auch mit Betriebssystem Funktionen machen, ist aber so komfortabler).

Die Änderungen in 01_FHEMWEB.pm:
Zeile 2218ff:
  FW_outputChunk($FW_chash, "<a name='top'></a>".
        "<div><label>Filter:</label><input id='flf_filter' type='search'><input id='flf_check' type='checkbox'></div><br>" . # Anchor point for filter features for FileLog
        "<a href='#end_of_file'>jump to the end</a><br><br><div id='flf_content'>", $d)
Zeile 2230ff:
  FW_outputChunk($FW_chash, "</div><br/><a name='end_of_file'></a>".
        "<a href='#top'>jump to the top</a><br/><br/>", $d)

Die Änderungen in fhemweb.js:
Zeile 341ff:
  FW_treeMenu();
  FW_filelogFilter(); // register filtering function for logfile display
Zeile 1043ff:
function
FW_filelogFilter()
{
  var setFilteredContent = function(elem) {
    var flfFilter = elem.find("input#flf_filter");
    var flfCheck = elem.find("input#flf_check");
    var flfActive = flfCheck.is(':checked'); // state of toggle button for switching filter on/off
    var flfRegExp = new RegExp("^.*^((?!" + flfFilter.val() + ").)*$.*$\n","mg"); // need to invert search to only keep lines matching input search string
    var flfFullText = elem.find("#flf_backup");
    if (flfFullText.length==0) { // save original content for further processing but hide
      flfFullText = elem.find("[id=flf_content]").clone(true);
      flfFullText.attr("id","flf_backup");
      flfCheck.after(flfFullText);
      flfFullText.hide();
    }
    var flfContent = elem.find("[id=flf_backup]"); // get original text as input for filtering
    if (flfActive) { // filter needs to be applied
      var flfFilteredContent = flfContent.text().replace(flfRegExp,'');
    } else {         // no filtering, keep original text
      var flfFilteredContent = flfContent.text();
    }
    elem.find("[id=flf_content]").text(flfFilteredContent); // exchange displayed text with filtered one
  };
  $(document).find('input#flf_filter').change(function(){ // callback for changes in filter string
   setFilteredContent($(this).parent().parent());
  });
  $(document).find('input#flf_check').change(function(){
   setFilteredContent($(this).parent().parent());         // callback for filter toggle button
  })
}
Gefällt mir Gefällt mir x 2 Liste anzeigen

Offline eki

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1454
Antw:Antrag/Vorschlag für eine Filtermöglichkeit bei der Log Anzeige
« Antwort #1 am: 24 Februar 2021, 07:35:28 »
... mal als "Ansporn" für Rudi ein Bild, wie das dann aussieht.
Gefällt mir Gefällt mir x 2 Liste anzeigen

Offline JoWiemann

  • Tester
  • Hero Member
  • ****
  • Beiträge: 3274
Antw:Antrag/Vorschlag für eine Filtermöglichkeit bei der Log Anzeige
« Antwort #2 am: 24 Februar 2021, 10:23:29 »
... mal als "Ansporn" für Rudi ein Bild, wie das dann aussieht.

Rudi liebt Patchfiles.
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

Offline eki

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1454
Antw:Antrag/Vorschlag für eine Filtermöglichkeit bei der Log Anzeige
« Antwort #3 am: 24 Februar 2021, 13:29:59 »
... na dann.
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline hmtec99

  • Full Member
  • ***
  • Beiträge: 169
Antw:Antrag/Vorschlag für eine Filtermöglichkeit bei der Log Anzeige
« Antwort #4 am: 27 Februar 2021, 14:01:36 »
Eki! Gedankenübertragung!

Vor 20 Minuten hätte ich mir genau das gewünscht!

Bitte umsetzen!  ;)

 

decade-submarginal