Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WebUI: Übergeordnete Filter sollten bestehen bleiben #243

Closed
mifricke opened this issue Jan 18, 2018 · 12 comments
Closed

WebUI: Übergeordnete Filter sollten bestehen bleiben #243

mifricke opened this issue Jan 18, 2018 · 12 comments
Labels
💡 enhancement-ideas New feature or change request 🏷️ WebUI This refs the WebUI component 🔅 low priority This issue/ticket has low priority (not urgent)

Comments

@mifricke
Copy link

Wenn ich in der WebUI einen Filter gesetzt habe und dann ein Objekt öffne um es zu konfigurieren oder zu Ändern, ist der Filter beim Verlassen dieser Ansicht wieder raus. Mich nervt das extrem, vor allem wenn man eine vernünftige Namensgebung hat. Wenn ich meine Alarm Programme ändern will, möchte ich nur einmal den Filter "Alarm" setzen und dann in einem Rutsch mehrere Objekte ändern können.

Dies betrifft vor allem "Einstellungen -> Systemvariablen" sowie "Programme und Zentralverknüpfungen".

@jens-maus jens-maus changed the title WebUI Filter sollten bestehen bleiben WebUI: Übergeordnete Filter sollten bestehen bleiben Jan 18, 2018
@jens-maus jens-maus added 💡 enhancement-ideas New feature or change request 🔅 low priority This issue/ticket has low priority (not urgent) 🏷️ WebUI This refs the WebUI component labels Jan 18, 2018
@HMside
Copy link
Contributor

HMside commented Mar 1, 2018

Innerhalb eines Programms sollten wir zudem versuchen eine Clone Funktion einzufügen, so das eine bereits vorhandene Aktivitätszeile einfach dupliziert werden kann.

@psi-4ward
Copy link
Contributor

Dieser Punkt nervt mich auch sehr. Ich nutze mittlerweile die Browser Funktion "auf Seite suchen" damit ich meine Geräte in der Liste finde.

Ich würde den aktuellen Filter in der SessionStorage speichern: Nach dem der Browser geschlossen wird ist der Filter wieder weg. In einem neuen Tab/Fenster wird der Filter NICHT übernommen.

Gerne würde ich hier etwas beisteuern aber weiß aktuell nicht ganz wie. Für den Build von RaspberryMatic werden für die Änderungen patch-Files eingespielt wenn ich das richtig sehe?
Die Filter-Persistence könnte man sehr wahrscheinlich auch komplett über Javascript lösen.
Soll ich hierfür eine Funktion erstellen?

@psi-4ward
Copy link
Contributor

@jens-maus wärest du hier an nem Patch interessiert?

@oradke
Copy link

oradke commented Dec 11, 2018 via email

@jens-maus
Copy link
Owner

@psi-4ward Ich wäre sogar sehr an einem solchen Patch interessiert! Allerdings müsste dieser sich wirklich sehr gut in die bestehende WebUI integrieren damit dieser Patch auch potentiell von eQ3 irgendwann übernommen werden kann.

@Bastian007
Copy link

Auch von meiner Seite ist dies das meist gewünschte fehlende Feature:
Permanenter Filter, der erst durch "Filter zurücksetzen" wieder augehoben wird.

@psi-4ward
Copy link
Contributor

Leider hab ich aktuell extrem viel um die Ohren aber es steht nach wie vor auf der TODO.

@jens-maus
Copy link
Owner

@psi-4ward Wenn du hier zumindest einen Prototypen entwickelst wo das exemplarisch für einen Filter umgesetzt ist kann ich das gerne dann selbstständig für den Rest pbernehmen bzw einarbeiten.

@psi-4ward
Copy link
Contributor

psi-4ward commented Apr 12, 2019

Hi,
also die Filter sind leider doch überall etwas anders umgesetzt.
Hier mal ne Version für Einstellungen > Geräte

--- webui.js-org        2019-04-12 10:58:24.210193488 +0200
+++ webui.js    2019-04-12 10:58:24.006858225 +0200
@@ -6816,10 +6816,10 @@
   
   
   var m_name     = name;
-  var m_value    = "";
   var m_callback = callback;
   
   var m_id     = name.replace(/\,/g, "_");
+  var m_value    = localStorage.getItem(m_id) || "";
   var m_textId = m_id + "Text";
     
   var isSet = function()
@@ -6890,6 +6890,7 @@
   {
     if ($(m_textId)) { m_value = $(m_textId).value;}
     if ($(m_id))     { $(m_id).hide(); }
+    localStorage.setItem(m_id, m_value);
     if (m_callback)  { m_callback(); }
   };

@@ -6930,7 +6931,6 @@
   /*# Initialisierung #*/
   /*###################*/

-  this.reset();

 };
@@ -6954,7 +6954,22 @@
     this.callback = callback;
     this.id       = name.replace(/\./g, "_");
     this.formId   = this.id + "Form";
-    this.reset();
+
+    var filterValues = localStorage.getItem(this.id);
+    if(filterValues) {
+      try {
+        filterValues = JSON.parse(filterValues);
+        var values = $(this.formId).values;
+        for (var i = 0, len = values.length; i < len; i++) {
+          if(filterValues.indexOf(values[i].value) !== -1) {
+            values[i].checked = true;
+          }
+        }
+        this.set();
+      } catch(e) {}
+    }
+
+   // this.reset();
   },

   /**
@@ -7065,12 +7080,17 @@
     if ($(this.formId))
     {
       var values = $(this.formId).values;
+
+      var filterValues = [];

       for (var i = 0, len = values.length; i < len; i++)
       {
         this.select(values[i].value, values[i].checked);
+        if(values[i].checked) filterValues.push(values[i].value);
       }

+      // JSON.stringify encodes twice???
+      localStorage.setItem(this.id, JSON.parse(JSON.stringify(filterValues)));
       if ($(this.id))    { $(this.id).hide(); }
       if (this.callback) { this.callback(); }
     }

@psi-4ward
Copy link
Contributor

Zudem sollten wir erkenntlich machen, ob ein Filter gesetzt ist:

.Filter_Active .FilterCaption {
  color: red;
}

@jens-maus
Copy link
Owner

@psi-4ward Das hört sich doch nach einem guten Plan an. Dann bereite doch mal einen entsprechenden PullRequest vor sodass das dann leichter zu integrieren/testen ist.

@jens-maus jens-maus added this to the 3.45.7.20190504 milestone Apr 26, 2019
@jens-maus
Copy link
Owner

Dieses Issue wurde nun dankenswerterweise von @psi-4ward bearbeitet und wird in der nächsten kommenden Version in einem ersten Ansatz umgesetzt sein. Danke dafür an @psi-4ward für die Umsetzung!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
💡 enhancement-ideas New feature or change request 🏷️ WebUI This refs the WebUI component 🔅 low priority This issue/ticket has low priority (not urgent)
Projects
Development

No branches or pull requests

6 participants