Contao-Camp 2024
Ergebnis 1 bis 14 von 14

Thema: Core-Datepicker: Usability

  1. #1
    Contao-Nutzer Avatar von DetlefT
    Registriert seit
    25.07.2014.
    Ort
    Bedburg
    Beiträge
    104

    Standard Core-Datepicker: Usability

    Hallo zusammen,

    da ich jetzt erstmalig eine Eventverwaltung in Contao einbaue, sind mir im BE bei der Eventeingabe die beiden Datepicker bei Start- und bei Enddatum aufgefallen. Diese stehen per default beide auf "heutiges Datum" - was ja durchaus Sinn macht. Wenn ich jetzt ein Startdatum z.B. 2 Monate in der Zukunft eingebe, bleibt der Enddatum-Datepicker beharrlich auf dem heutigen Datum stehen. Da das Enddatum ja ziemlich schlecht vor dem Startdatum liegen kann, würde es ja durchaus Sinn machen, den Enddatum-Datepicker auf das Startdatum nachzuführen. Kenne ich so von bisher allen besuchten Reisebuchungsportalen. Spart dem Anwender im Beispiel 2 Klicks, um sich auf den Startmonat vorzuarbeiten. Wenn der Event 12 Monate in der Zukunft liegt, kann das schon ganz in Klickarbeit ausarten.
    Am Input-Feld "Enddatum" würde ich nichts modifizieren wollen, da es bei eintägigen Terminen ja leer bleiben soll (obwohl man auch da beim Speichern des Events abfragen könnte, ob Start- gleich Enddatum ist und dann das Feld wieder löschen könnte).

    Hat das im Forum schon mal jemand nachgefragt/"bemängelt"? Gibt es gar Lösungen?

    Da ich im BE bisher keinerlei "eigene" Modifikationen gemacht habe und meine Skills in php eher bescheiden sind (oder braucht man dazu Ajax oder k.A.?), würde ich wahrscheinlich - wenn überhaupt - nur eine js-Lösung hingefrickelt kriegen.

    Danke schon mal für Euer Interesse.
    Viele Grüße, DetlefT

  2. #2
    Community-Moderator Avatar von stefan-at-work
    Registriert seit
    05.06.2009.
    Ort
    Bad Segeberg
    Beiträge
    1.780
    Partner-ID
    634

    Standard

    evt. via jquery_ui
    Dann hättest Du ein Dropdown und ersparst dem User ein paar Klicks

  3. #3
    AG Pressearbeit
    Community-Moderator
    Buchautor 'Contao für Webdesigner'
    Avatar von planepix
    Registriert seit
    05.06.2009.
    Ort
    Stuttgart
    Beiträge
    6.468
    Partner-ID
    107
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Und das gibt es für Contao (Frontend) hier:
    https://packagist.org/packages/hofff...-calendarfield
    Geändert von planepix (19.04.2017 um 07:57 Uhr) Grund: präzisiert -> Ausgabe Frontend
    ---------------------------------
    Beste Grüße planepix
    Contao für Webdesigner (Website), Twitter: @contaowebdesign
    weitzeldesign
    Contao-Sprechstunde
    Contao Schulungen: https://www.weitzeldesign.com/cms-co...chulungen.html
    Contao Jahrbuch: www.contao-jahrbuch.de
    Contao Agenturtag: www.contao-agenturtag.de
    Contao Stammtisch Stuttgart: www.contao-stammtisch-stuttgart.de
    Contao 4 Erfahrungen als Gitbook: https://app.gitbook.com/@planepix/s/...-mit-contao-4/
    Contao 4 & Manager Hosterhinweise: https://github.com/contao/contao-manager/wiki

    Schon wieder ein Update?
    Glücklich sind die, die den Wert erkennen – und wertschätzen.
    „Muss man machen wie beim Zahnarzt. Der bestraft einen auch mit hohen Rechnungen wenn man die Pflege vernachlässigt.”

  4. #4
    Contao-Nutzer Avatar von miniA4kuser
    Registriert seit
    14.11.2013.
    Beiträge
    130

    Standard

    Das liest sich eher so, als ob die Backend Datepicker für das Event gemeint sind. Hier könnte man ja bei dem Startdatum ein submitOnChange=true einbauen und bei dem Enddatum einen save_callback
    Tippfehler unterliegen nicht dem Copyright und können frei weitergegeben werden.

  5. #5
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Im BE läuft der MooTools Datepicker. https://github.com/arian/mootools-datepicker

    Bei Auswahl eines Datums (onSelect(date)) müssten beim anderen dazugehörigen Datepicker die Variablen minDate und maxDate neu gesetzt werden. Wäre also ein Feature-Request, welches mit JS umgesetzt werden sollte.
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  6. #6
    Alter Contao-Hase Avatar von kmielke
    Registriert seit
    21.06.2009.
    Beiträge
    1.173

    Standard

    Hi,

    ich habe für calendar_extended mal eine Anfrage erhalten, dass Thema mal zu beleuchten.

    Wie Andreas schon sagt, müsste es im Core geändert werden. Ich hatte überlegt, die Klasse DataContainer zu klonen, und die Funktion row() anzupassen.

    Für den Fall, dass die $objWidget->id = startDate ist...

    PHP-Code:
                onSelect: function(date) {
                  if ($(
    "ctrl_endDate").value === "") {
                    $(
    "ctrl_endDate").value = $("ctrl_startDate").value;
                  } else {
                    if ($(
    "ctrl_endDate").value < $("ctrl_startDate").value) {
                      $(
    "ctrl_endDate").value = $("ctrl_startDate").value;
                    }
                  }
                } 
    würde ich folgendes in das JS einfügen. Aber so richtig gefällt mir der Weg nicht, weshalb ich bisher nichts daran gemacht habe.

    Gruß Kester
    Gruß Kester

    Kein Support via PN ohne vorherige Absprache.

  7. #7
    Contao-Nutzer Avatar von DetlefT
    Registriert seit
    25.07.2014.
    Ort
    Bedburg
    Beiträge
    104

    Standard

    Hallo,

    inzwischen ist mir aufgefallen, dass ich da ja sehr selektiv gesehen habe. Datepicker gibt es ja noch an einigen anderen Stellen, an denen meine angedachte Usability-Verbesserung genau so sinnvoll wäre (der 2. Termin liegt immer gleich oder nach dem ersten), als da wäre:
    • Benutzergruppen aktivieren/deaktivieren
    • Mitgliedergruppen aktivieren/deaktivieren
    • Artikel anzeigen ab/bis
    • wahrscheinlich bei den Nachrichten

    und wahrscheinlich noch einiges mehr (das ich bisher aber noch nicht gebraucht habe).

    Zitat Zitat von Andreas
    Wäre also ein Feature-Request, welches mit JS umgesetzt werden sollte.
    Hört sich für mich nach der sinnvollsten Methode an. Ich meine mich zu erinnern, dass ich im Forum mal gelesen habe, dass man das auf englisch machen muss. Damit bin ich leider raus. Wer weiß, was Leo nach meinen merkwürdigen englischen Anforderungen Wildes programmieren würde ...
    Viele Grüße, DetlefT

  8. #8
    Contao-Nutzer Avatar von miniA4kuser
    Registriert seit
    14.11.2013.
    Beiträge
    130

    Standard

    Zitat Zitat von kmielke Beitrag anzeigen
    Wie Andreas schon sagt, müsste es im Core geändert werden. Ich hatte überlegt, die Klasse DataContainer zu klonen, und die Funktion row() anzupassen.
    Dabei aber auch die Standardfunktionalität beachten für den submitOnChange:
    PHP-Code:
    // Trigger the auto-submit function (see #8603)
    if ($arrData['eval']['submitOnChange'])
    {
        
    $strOnSelect ",\n        onSelect: function() { Backend.autoSubmit(\"" $this->strTable "\"); }";

    Tippfehler unterliegen nicht dem Copyright und können frei weitergegeben werden.

  9. #9
    Alter Contao-Hase Avatar von kmielke
    Registriert seit
    21.06.2009.
    Beiträge
    1.173

    Standard

    Zitat Zitat von miniA4kuser Beitrag anzeigen
    Dabei aber auch die Standardfunktionalität beachten für den submitOnChange:
    PHP-Code:
    // Trigger the auto-submit function (see #8603)
    if ($arrData['eval']['submitOnChange'])
    {
        
    $strOnSelect ",\n        onSelect: function() { Backend.autoSubmit(\"" $this->strTable "\"); }";

    Ja, danke... Ich sagte ja, dass es mir eigentlich nicht gut gefällt dieser Ansatz.
    Ich denk auch, dass der Weg mit dem Feature Request der richtige ist.
    Gruß Kester

    Kein Support via PN ohne vorherige Absprache.

  10. #10
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    @DetlevT: Wenn du dich nicht fit genug im Englischen fühlst, kannst du ein Ticket auch auf Deutsch anlegen.

    Weitere Ansätze:

    1. Es braucht eine Möglichkeit zwei Inputs miteinander zu "verschränken" . Z.B. mit Klassen "picker_42 picker_minDate", "picker_42 picker_maxDate".

    2. Der Picker müsste als Variable deklariert werden, um ihn dynamisch ansprechen zu können.

    Bisher
    PHP-Code:
    <script>
      
    window.addEvent("domready", function() {
        new 
    Picker.Date($("ctrl_' . $objWidget->id . '"), { 
    Neu
    PHP-Code:
    <script>
      
    window.addEvent("domready", function() {
        
    picker_ctrl_' . $objWidget->id . ' = new Picker.Date($("ctrl_' . $objWidget->id . '"), { 
    3. So könnte man das minDate mit onSelect neu setzen
    PHP-Code:
    <script>
      
    window.addEvent("domready", function() {
        
    picker_ctrl_' . $objWidget->id . ' = new Picker.Date($("ctrl_' . $objWidget->id . '"), {
          
    draggablefalse,
          
    toggle: $("toggle_' . $objWidget->id . '"),
          
    format"' . $format . '",
          
    positionOffset: {x:-211,y:-209}' . $time . ',
          
    pickerClass"datepicker_bootstrap",
          
    useFadeInOut: !Browser.ie' . $strOnSelect . ',
          
    startDay' . $GLOBALS['TL_LANG']['MSC']['weekOffset'] . ',
          
    titleFormat"' . $GLOBALS['TL_LANG']['MSC']['titleFormat'] . '",
          
    // Neu:
          
    onSelect: function(dateelement){
            
    console.log(date);
            
    console.log(element);
            
    picker_ctrl_endDate.setOptions({
              
    minDatedate
            
    });
          }
        });
      });
    </script>
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  11. #11
    Contao-Nutzer Avatar von miniA4kuser
    Registriert seit
    14.11.2013.
    Beiträge
    130

    Standard

    Wobei man auch bei JavaScript globale Variablen vermeiden sollte, um späteren Konflikten mit anderen Scripts vorzubeugen.

    Auch bei deinem Beispiel gibt es dann aber auch den Konflikt mit dem submitOnChange, welchen man ja im DCA definieren kann.
    Tippfehler unterliegen nicht dem Copyright und können frei weitergegeben werden.

  12. #12
    Contao-Fan Avatar von µaTh
    Registriert seit
    13.05.2010.
    Beiträge
    951

    Standard

    ich habe mir folgende Extension geschrieben:
    https://contao.org/de/erweiterungsli...000029.de.html

    klickst du in das Datumsfeld, dann öffnet sich sofort der Kalender. Mit ein paar Shortcuts kannst du das Datum eintragen.

    Besonders spannend ist die Shortcut-Funktion für das Enddatum-Feld (z.B.: Startdatum auf 1.1.2017 setzen, dann ins Enddatum-Feld gehen und "+1" eintragen. Herauskommt 2.1.2017). Weitere Shortcuts siehe Extensionbeschreibung.

    Über ein Feedback würde ich mich freuen.

  13. #13
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Dafür extra jQuery im BE laden zusätzlich zu MooTools? Du solltest das in MooTools programmieren. MooTools ist sehr einfach und die Doku ist übersichtlicher als die von jQuery.
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  14. #14
    Contao-Nutzer Avatar von miniA4kuser
    Registriert seit
    14.11.2013.
    Beiträge
    130

    Standard

    Eine MooTools Version fände ich auch harmonischer. Was die Doku angeht, naja ... das ist und bleibt halt Geschmackssache
    Tippfehler unterliegen nicht dem Copyright und können frei weitergegeben werden.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •