Und noch ein Fehler im Javascript beim Aufruf von edit_timer.ecpp:
Deshalb beim Testen immer den Javascipt-Debugger im Inspektor des Browsers mitlaufen lassen… ![]()
Und noch ein Fehler im Javascript beim Aufruf von edit_timer.ecpp:
Deshalb beim Testen immer den Javascipt-Debugger im Inspektor des Browsers mitlaufen lassen… ![]()
Im git ist ein Update:
Der Javascript-Fehler tritt damit nicht mehr auf. ![]()
![]()
Hier nun der Patch, der bei den Bestätigungsdialogen für das Verschieben von Aufzeichnungen statt eines leeren Strings den Verweis auf den Stammordner einfügt:
… auf Basis des Commits 03ac1617:
Damit:
Hier noch ein Patch, der die Auswahl und Erstellung neuer Ordner an allen vier Stellen (beim Bearbeiten von Timern, Suchtimern und Aufzeichnungen sowie beim Verschieben-Button) vereinheitlicht:
Der Patch lässt sich zwar auch nach Patch 35 applizieren:
[BASH 2027] patch -p1 -i 0035\ Unified\ folder\ specification.patch
patching file live/css/styles.css
patching file pages/edit_recording.ecpp
patching file pages/edit_searchtimer.ecpp
patching file pages/edit_timer.ecpp
patching file pages/recordings.ecpp
patching file po/de_DE.po
Hunk #1 succeeded at 255 (offset 11 lines).
… ich habe aber der Bequemlichkeit halber auch das Ergebnis dieser Operation als Patch beigefügt:
Der Patch – hier illustriert am Beispiel der Bearbeitung einer Aufzeichnung – ergänzt für die Ordnerauswahl einen Tooltip, der darauf hinweist, dass ein leeres Verzeichnis dem Stammordner entspricht:
Beim Anlegen eines neuen Ordners:
… enthält der Tooltip diesen Hinweis ebenfalls:
Die bislang unschöne und verwirrende Festlegung des Zielordners bei Suchtimern:
… ist damit endlich auch passé: ![]()
Dann brauchen wir auch keine Übersetzung. Wenn Du prüfen willst, ob das Programm einen internen Fehler hat:
Der Code:
ist korrekt. Wenn es die Aufnahme nicht gibt, dann ist
und wir verlassen das Programm schon eine Zeile drüber.
prüft also, ob VDR bei einem validen Recording nullptr als Namen zurück gibt. Kommt vermutlich nicht vor. Falls doch: Aus Sicht von VDR ist ein nullptr == "". Dann ist de Name also ein Leerstring.
Anmerkung: Wenn Du einen Fehler im Code korrigieren willst, bitte einen separaten Patch. Dann kann ich prüfen, ob das ein Fehler ist, und den Patch dann einbauen (oder auch nicht ...)
Im git ist ein Update:
SHofmann , einige der neuen Texte habe ich nicht übernommen. Ich habe sie nicht verstanden
, ich fand die alten Texte verständlicher.
einige der neuen Texte habe ich nicht übernommen. Ich habe sie nicht verstanden
, ich fand die alten Texte verständlicher.
Du beziehst dich vermutlich auf diesen Tooltip:

… bzw. sein Pendant beim Anlegen eines neuen Ordners, richtig?
Bei Eingabefeldern in Dialogen gilt überwiegend, dass ein leeres Feld ohne Funktion bzw. die entsprechende Information undefiniert ist. Löscht man etwa den Untertitel einer Aufzeichnung, ist klar, was passiert.
Bei diesem Feld gilt das aber nicht. Denn wenn das Feld leer bleibt, bezeichnet es immer den Stammordner, also das Video-Verzeichnis des VDR. Wenn man also eine Aufzeichnung in einem Unterordner öffnet und den Plus-Button betätigt, erhält man beispielsweise:
Hat man hier den Ordnernamen geändert und möchte die Aufzeichnung dann noch nicht verschieben, neigt man intuitiv dazu, den Ordnernamen einfach zu löschen – kein Inhalt, keine Funktion. Doch damit liegt man hier falsch! Denn anders als intuitiv erwartet, verbleibt die Aufzeichnung nicht im bisherigen Ordner "Serien", sondern wird stattdessen in den Stammordner verschoben.
Und weil ich als nicht ganz unerfahrener Benutzer selbst schon darauf hereingefallen bin, hielt ich es für sinnvoll, an der einen Stelle einen Tooltip zu ergänzen bzw. an der anderen Stelle den Tooltip entsprechend zu erweitern. Soweit zur Begründung dieser Modifikation.
Mit der Formulierung war ich allerdings auch nicht wirklich glücklich. Aber vielleicht finden wir ja eine bessere Formulierung. Wie wäre es denn hiermit:
msgid "Leave empty for the root folder or select one of the subfolders"
msgstr "Leer lassen für den Stammordner oder einen Unterordner auswählen"
msgid "Leave empty for the root folder or enter subfolders separated with a tilde '~'; folder names must not start with a tilde, dot, or whitespace"
msgstr "Leer lassen für den Stammordner oder mit Tilde (\"~\") getrennte Unterordner eingeben; Ordnernamen dürfen nicht mit Tilde, Punkt oder Leerzeichen beginnen"
Dass es "Neuer Ordner" schon gibt, hatte ich wohl übersehen…
Und wenn man einfach den Stammordner als Pfad VOR das Textfeld schreibt; vielleicht mit abschließendem Backslash?
Dann müsste auch klar sein, dass der immer vorne dran steht, auch wenn das Feld leer ist/wird.
Der Pfadtrenner ist im VDR die Tilde. Trotzdem finde ich, dass das komisch aussehen würde. ![]()
Auch optisch wirkt das nicht gut, weil die Fluchtlinien verloren gehen.
Oder dachtest du eher an folgendes:
Das wäre aber dann abweichend von den Eingabefeldern im VDR selbst, also auch wieder nicht so richtig prickelnd…
Ok, sieht seltsam aus mit der Tilde.
Und wenn man statt ~ den absoluen Pfad "ausschreiben" würde, also zB "/vdr/recordings/" oder zumindest "../recordings/".
Es müsste jedenfalls für den Benutzer klar erkennbar sein, dass er eigentlich gerade einen Unterordner angibt.
Ich habe mal mit VDR selbst getestet: Wenn ich da eine Aufzeichnung ins Wurzelverzeichnis verschieben will, dann muss ich "" (also einfach nichts) als Zielverzeichnis angeben.
Finde ich gut, sollte in live analog sein.
Wenn wir einen Tooltip für die drop-down Eingabe brauchen, wie wäre es mit:
Oder kürzer, weil "Select destination folder" eh klar ist:
Das wäre aus meiner Sicht völlig ausreichend. Viel wichtiger wäre mir aber der Tooltip fürs Eingabefeld neuer Ordner. Wenn mein Tooltip aus deiner Sicht passt, dann wäre das hier der aktualisierte Patch:
Leave empty for the root folder or enter subfolders separated with a tilde '~'; folder names must not start with a tilde, dot, or whitespace
gefällt mir nicht. Ist zu lang für einen englischen Satz. Wenn der Anwender in den 'root folder' verschieben will, braucht er das eh nicht. 'root folder ist ja schon der Default beim 'select' Eingabefeld.
Wie wäre es mit:
Separate folders with a tilde '~'; folder names must not start with a tilde, dot, or whitespace; leave empty for the root folder
Wobei 'root folder' missverständlich ist. 'root folder' ist ja / .Und hier ist das Verzeichnis gemeint, das VDR mit --video=dir übergeben wurde. Wir könnten "VDR's root video folder" schreiben, um klar zu machen, dass es nicht / ist. Oder auch "VDR's video folder"
In "man vdr" wird das Verzeichnis "video directory" genannt. Von daher könnte man theoretisch "leave empty for the video directory" schreiben. Würde ich aber nicht machen, das versteht niemand
.
Wir könnten also:
Separate folders with a tilde '~'; folder names must not start with a tilde, dot, or whitespace; leave empty for VDR's root video folder
Oder besser:
Separate folders with a tilde '~'; folder names must not start with a tilde, dot, or whitespace; folders are relative to VDR's video folder; leave empty for VDR's video folder itself
Oder noch besser
:
Enter path by separating folders with a tilde '~'; folder names must not start with a tilde, dot, or whitespace; path is relative to VDR's video folder; leave empty for VDR's video folder itself
schreiben.
P.S..: Änderung an 4 Stellen
. Könnte man da nicht in pageelems ein
bauen, das dann an allen 4 Stellen gerufen wird?
Kurz ist dieser Text :
Enter path by separating folders with a tilde '~'; folder names must not start with a tilde, dot, or whitespace; path is relative to VDR's video folder; leave empty for VDR's video folder itself
… auch nicht gerade, denn er ist länger als mein Ausgangstext. Den Teil:
… halte ich für überflüssig, denn sonst müssten wir das schon bei der Auswahlbox darlegen. Insofern wäre:
Separate folders with a tilde '~'; folder names must not start with a tilde, dot, or whitespace; leave empty for VDR's root video folder
… meine Präferenz, wenn du schon nicht meinen Vorschlag nehmen willst, der die wichtige Information am Satzanfang präsentiert. Das mit den 14 Wörtern für englische Satzlängen wird ein zudem wenig überbewertet. Übrigens haben wir exakt so viele Wörterwir bis zum Strichpunkt, der ja gemeinhin ein "untergeordnetes" Satzende kennzeichnet… ![]()
P.S..: Änderung an 4 Stellen
. Könnte man da nicht in pageelems ein
Das Ganze hängt bezüglich Styles, Scripts und der Auswertung nach dem Senden immer auch von der Einbettung in der jeweiligen Seite ab. Insofern wäre es nach meinem Empfinden wohl eher grenzwertig, wenn wir das herauslösen und nach pageelemen.ecpp verlagern würden. ![]()
Quotehalte ich für überflüssig, denn sonst müssten wir das schon bei der Auswahlbox darlegen.
Valider Punkt. Damit wäre der Text für die Auswahlbox:
Select path; folders are separated with a tilde '~'; path is relative to VDR's video folder; leave empty for VDR's video folder itself
Finde ich am eindeutigsten und verständlichsten.
Was man unter "root folder" oder "VDR's root video folder" versteht ist halt interpretierbar.
Wir könnten auch das Label für dieses Feld ändern zu:
QuoteDestination path
Und als Tooltip schreiben:
Folders are separated with a tilde '~'; path is relative to VDR's video folder; leave empty for VDR's video folder itself
Oder von mir aus auch
Wir könnten auch das Label für dieses Feld ändern zu:
QuoteDestination path
Das wäre dann aber anders als im VDR-OSD. Wenn wir möglichst nah am VDR bleiben wollen, würde ich es neutral bei "Ordner" belassen. Wer dort damit zurecht kommt, kommt auch in Live damit zurecht. Das gilt meines Erachtens auch für die Tooltips, die wir in diesem Sinne nicht mit zu vielen Details überladen sollten. ![]()
Auch würde "Destination path" (oder "Destination folder", was ich mir schon einmal überlegt hatte) nicht in allen Kontexten semantisch passen: beim Verschieben-Button wäre es tatsächlich der Zielordner, beim Bearbeiten einer Aufzeichnung aber der zunächst aktuelle und erst bei Änderung ein Zielordner.
Aus dem gleichen Grund sollte man sich überlegen, ob wir uns mit der Einführung des Terminus' "path" wirklich einen Gefallen tun. Auch sind vier Sätze in einem Tooltip nach meinem Gefühl etwas zu viel des Guten… ![]()
Aufgrund dieser Erwägungen würde ich es insofern nach wie vor lieber eher bei etwa Folgendem belassen:
Folders are relative to VDR's video folder and separated with a tilde '~'; leave empty for VDR's video folder itself
Und weil wir vor dem Klicken von "Neuer Ordner" ja schon ein paar Informationen gegeben haben, könnte beim Eingabefeld vielleicht Folgendes ausreichend sein:
Ja, wir sollten bei bekannten Wörtern bleiben. "root video folder" oder "root folder" ist doch eher was für Tekkies, und nicht allgemein bekannt.
So etwas wie "Serien~Doctor Who (2005)" ist halt kein Ordner. Ich würde das "path" oder "address" nennen, analog zu Microsoft: Der Windows Rechner (Datei-Explorer) spricht manchmal von "Adresse" und manchmal von "Pfad", wenn etwas wie z.B. "C:\home\marku" generalisiert bezeichnet werden soll. -> Auch für Microsoft ist es schwer, durchgehend einheitliche Bezeichnungen zu finden.
Damit folgender Vorschlag:
Text für die Auswahlbox:
Text für die Eingabebox:
Enter path relative to VDR's video folder; leave empty for VDR's video folder itself; separate folders with a tilde '~'; folder names must not start with a tilde, dot, or whitespace
Wir können hier anstelle von "path" auch "address" schreiben. Unter der Annahme, dass der Anwender den Tooltip zur Auswahlbox bereits gelesen hat bevor er zur Eingabebox wechselt, können wir natürlich ten Tooltip für die Eingabebox auch verkürzen, z.B.
Leave empty for VDR's video folder itself; separate folders with a tilde '~'; folder names must not start with a tilde, dot, or whitespace
oder
Separate folders with a tilde '~'; folder names must not start with a tilde, dot, or whitespace
oder auch
Beim Refaktorisieren der Ordnerauswahl habe ich folgenden Fehler in der HTML-Generierung entdeckt:
diff --git a/pages/edit_timer.ecpp b/pages/edit_timer.ecpp
index d1079805..7e4d7171 100644
--- a/pages/edit_timer.ecpp
+++ b/pages/edit_timer.ecpp
@@ -348,11 +348,11 @@ TimerConflictNotifier timerNotifier;
<td class="label leftcol"><div class="withmargin"><$ trVDR("Active") $>:</div></td>
<td class="rightcol"><div class="options">
<div class="dotted">
- <input id="active_1" name="active" value="1" <{ reply.out() << ( active ? "checked=\"checked\"" : "" ); }> type="radio"></input>
+ <input id="active_1" name="active" value="1" <{ reply.out() << ( active ? "checked=\"checked\"" : "" ); }> type="radio">>
<label for="active_1"><$ trVDR("yes") $></label>
</div>
<div class="dotted">
- <input id="active_0" name="active" value="0" <{ reply.out() << ( !active ? "checked=\"checked\"" : "" ); }> type="radio"></input>
+ <input id="active_0" name="active" value="0" <{ reply.out() << ( !active ? "checked=\"checked\"" : "" ); }> type="radio">>
<label for="active_0"><$ trVDR("no") $></label>
</div>
</div></td>
@@ -466,21 +466,21 @@ TimerConflictNotifier timerNotifier;
<td class="label leftcol"><div class="withmargin"><$ tr("Monitoring") $>:</div></td>
<td class="rightcol"><div class="options">
<div class="dotted">
- <input id="monitoring_none" name="monitoring" value="none" <? monitoring=="none" ? "checked=\"checked\"" ?> type="radio"></input>
+ <input id="monitoring_none" name="monitoring" value="none" <? monitoring=="none" ? "checked=\"checked\"" ?> type="radio">>
<label for="monitoring_none"><$ tr("none") $></label>
</div>
<div class="dotted">
- <input id="monitoring_vps" name="monitoring" value="vps" <? monitoring=="vps" ? "checked=\"checked\"" ?> type="radio"></input>
+ <input id="monitoring_vps" name="monitoring" value="vps" <? monitoring=="vps" ? "checked=\"checked\"" ?> type="radio">>
<label for="monitoring_vps"><$ trVDR("VPS") $></label>
</div>
% if ( (!others_monitor && event_monitoring_id != 0 && LiveFeatures<features::epgsearch>().Recent()) || monitoring=="event_id" || monitoring=="event_time") {
<# why are these options not included all the time? #>
<div id="monitoring_option_id" class="dotted" style="display: none">
- <input id="monitoring_event_id" name="monitoring" value="event_id" <? monitoring=="event_id" ? "checked=\"checked\"" ?> type="radio"></input>
+ <input id="monitoring_event_id" name="monitoring" value="event_id" <? monitoring=="event_id" ? "checked=\"checked\"" ?> type="radio">>
<label for="monitoring_event_id"><$ tr("event ID") $></label>
</div>
<div id="monitoring_option_time" class="dotted" style="display: none">
- <input id="monitoring_event_time" name="monitoring" value="event_time" <? monitoring=="event_time" ? "checked=\"checked\"" ?> type="radio"></input>
+ <input id="monitoring_event_time" name="monitoring" value="event_time" <? monitoring=="event_time" ? "checked=\"checked\"" ?> type="radio">>
<label for="monitoring_event_time"><$ tr("event time") $></label>
</div>
% }
Display More
Ein input-Element hat keinen schließenden Tag. Und weil du für so etwas ja immer einen eigenen Patch willst: et voilà. ![]()
Don’t have an account yet? Register yourself now and be a part of our community!