FHEM Forum

FHEM => Codeschnipsel => Thema gestartet von: Volker am 31 Dezember 2012, 17:38:33

Titel: Delete Icon um definierte Objekte zu löschen
Beitrag von: Volker am 31 Dezember 2012, 17:38:33
Für schreibfaule, so wie ich ...

mit dem folgenden Codeschnipsel, in 01_fhemweb, kann man neben seinen definierte Objekten ein Icon anzeigen, welches mit anklicken dann das definierte Objekt löscht.
Es muss allerdings ein save gemacht werden damit es dauerhaft ist.

########################
# Show the overview of devices in one room
# room can be a room, all or Unsorted
sub
FW_showRoom()
...
...
...
#      FW_pO "</td>";
 $icon = FW_makeImage('del') . "&nbsp;";
 FW_pO "<td><a href='/fhem?cmd=delete%20$devName'><div class='Del'>$icon</div></a></td>";
    }
    FW_pO "</table>";
    FW_pO "</td></tr>";
  }
  FW_pO "</table><br>";

  # Now the weblinks


Der Code erwartet das die Datei del.png im Verzeichnis /www/images/default oder dem Unterverzeichnis des Styles vorhanden ist.

Das Ergebnis könnte dann z.B. so aussehen.


(siehe Anhang / see attachement)


MfG

Volker[/font]
Titel: Aw: Delete Icon um definierte Objekte zu löschen
Beitrag von: punker am 01 Januar 2013, 13:39:28
Hallo Volker,

hab soeben deine Ergänzung zum 01_fhemweb ausprobiert.
Leider kommt folgende Fehlermeldung im log und das WebIF startet nicht mehr!

Illegal declaration of subroutine main::FW_showRoom at /usr/share/fhem/FHEM/01_FHEMWEB.pm line 1216, <$fh> line 20.

Vielleicht findest ja den Fehler.
Titel: Aw: Delete Icon um definierte Objekte zu löschen
Beitrag von: Volker am 01 Januar 2013, 16:39:06
Kannst du mir die modifizierte 01_Fhemweb schicken?
Titel: Aw: Delete Icon um definierte Objekte zu löschen
Beitrag von: punker am 01 Januar 2013, 17:14:07
Habs wieder rückgängig gemacht!
Wahrscheinlich wars ein Fehler von mir, dachte ich kann das 1:1 so einfügen!
Geht aber so nicht?
Titel: Aw: Delete Icon um definierte Objekte zu löschen
Beitrag von: Volker am 01 Januar 2013, 17:33:08
Sollte aber so gehen, ich habe auch nur die Zeilen reingeschrieben. Hast du alle Zeilen mit Semikolon beendet?

MfG

Volker
Titel: Aw: Delete Icon um definierte Objekte zu löschen
Beitrag von: punker am 01 Januar 2013, 19:19:46
habs von hier kopiert und eingefügt.
Ist egal an welcher Stelle?
Titel: Aw: Delete Icon um definierte Objekte zu löschen
Beitrag von: Volker am 02 Januar 2013, 19:31:02
Hallo Dieter,
du must es schon an genau die angegebene Stelle kopieren. Deshalb habe ich ein paar Zeilen mehr angegeben .
Die genaue Zeile kann ich dir nicht sagen da ich noch andere Stellen angepasst habe.
Titel: Aw: Delete Icon um definierte Objekte zu löschen
Beitrag von: punker am 03 Januar 2013, 13:14:01
Hi Volker,

habs jetzt geschafft den Code an der richtigen Stelle einzufügen!
Jetzt bräuchte ich nur noch das richtige Icon!
Das was du oben als Del_But.png verlikt hast ist leider der Bildschirmausschnitt von weiter oben!
Titel: Aw: Delete Icon um definierte Objekte zu löschen
Beitrag von: Volker am 03 Januar 2013, 20:17:15
Hallo Dieter,

das sollte auch so sein mit dem Link.

Aber ich hänge dir gerne das Icon an.
Titel: Aw: Delete Icon um definierte Objekte zu löschen
Beitrag von: punker am 04 Januar 2013, 09:24:10
Vielen Dank noch mal, auch für das Icon!
Titel: Aw: Delete Icon um definierte Objekte zu löschen
Beitrag von: ChrisW am 14 Januar 2013, 22:12:06
Cool hoffe das wird mal fest eingebaut ;)
Titel: Aw: Delete Icon um definierte Objekte zu löschen
Beitrag von: Volker am 02 Februar 2013, 13:43:00
Hier mal einige Verbesserungen.


        } elsif($type eq "FileLog") {
 $icon = FW_makeImage('del') . "&nbsp;";
 FW_pO "<td><a href='/fhem?cmd=delete%20$devName'><div class='Del'>$icon</div></a></td>";
          $row = FW_dumpFileLog($d, 1, $row);

        }
      }
#      FW_pO "</td>";
if ($type ne "FileLog") {
$icon = FW_makeImage('del') . "&nbsp;";
FW_pO "<td><a href='/fhem?cmd=delete%20$devName'><div class='Del'>$icon</div></a></td>";
}
    }
    FW_pO "</table>";
    FW_pO "</td></tr>";
  }
  FW_pO "</table><br>";

  # Now the weblinks
***** Funktion für Logzeilen auch ändern
sub
FW_dumpFileLog($$$)
{
  my ($d, $oneRow,$row) = @_;

  foreach my $f (FW_fileList($defs{$d}{logfile})) {
    my $nr;

    if($oneRow) {
      pF "<tr class=\"%s\">", ($row&1)?"odd":"even";
      pF "<td><div class=\"dname\">$f</div></td>";
    }
    foreach my $ln (split(",", AttrVal($d, "logtype", "text"))) {
      my ($lt, $name) = split(":", $ln);
      $name = $lt if(!$name);
      if(!$oneRow) {
        pF "<tr class=\"%s\">", ($row&1)?"odd":"even";
        pF "<td><div class=\"dname\">%s</div></td>", ($nr ? "" : $f);
      }
      FW_pH "cmd=logwrapper $d $lt $f",
              "<div class=\"dval\">$name</div>", 1, "dval";
pF "<td><div class=\"dname\"></div></td>", ($nr ? "" : $f);
      if(!$oneRow) {
        FW_pO "</tr>";
        $row++;
      }
      $nr++;
    }
    if($oneRow) {
      FW_pO "</tr>";
      $row++;
    }
  }
  return $row;
}

*************************


Zum ausrichten der Buttons am rechten Rand des table folgende Zeile in eurer *.CSS Datei einfügen

/*Delete Button*/
.Del  img {float: right;}