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

Includes: Adds public styles to admin enque again #1647

Conversation

datengraben
Copy link
Contributor

@datengraben datengraben commented Oct 14, 2024

Fixes #1646

@datengraben datengraben added bug Something isn't working frontend labels Oct 14, 2024
@datengraben datengraben linked an issue Oct 14, 2024 that may be closed by this pull request
@hansmorb hansmorb added this to the 2.10 milestone Oct 14, 2024
Copy link

codecov bot commented Oct 14, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 50.23%. Comparing base (1322269) to head (2a24b1e).
Report is 4 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff            @@
##             master    #1647   +/-   ##
=========================================
  Coverage     50.23%   50.23%           
  Complexity     2722     2722           
=========================================
  Files            99       99           
  Lines         10868    10868           
=========================================
  Hits           5460     5460           
  Misses         5408     5408           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@datengraben
Copy link
Contributor Author

@hansmorb Diese Zeile im SCSS führt dazu das die Links im Datepicker grün sind.

.ui-corner-all {
color: var(--commonsbooking-color-accept);
}

Bildschirmfoto_2024-10-14_11-30-22

Die Änderung von dir dafür ist schon älter und ich vermute mal das du das grün gestyled hast, da der Datepicker damals noch außerhalb des Admin-Backend genutzt wurde? Weil im Wordpress Admin-Backend sind alle Links blau.

@hansmorb Ists ok wenn ich das aus dem scss entferne? Ich glaube das wir den Datepicker sonst nirgendwo im Frontend benutzen, wo die --commonsbooking-color-accept genutzt wird.

@datengraben datengraben changed the title Includes: Fixes #1646 by adding public styles to admin enque Includes: Adds public styles to admin enque again Oct 14, 2024
@datengraben
Copy link
Contributor Author

@hansmorb was sagst du zur Änderung, ich bin mir unsicher ob alle in commonsbooking_public aufgerufene wp_enque_script usw. auch im Backend genutzt werden. Alternativ könnte man also die fehlenden jquery enques auch kopieren. Für weniger unnötig geladene Assets.

@hansmorb
Copy link
Contributor

Ich muss mich das nachher noch mal genauer ansehen, aber eigentlich ist die admin.css für das Admin-Backend gedacht und die public.css für das public facing frontend.

@datengraben
Copy link
Contributor Author

Ich muss mich das nachher noch mal genauer ansehen, aber eigentlich ist die admin.css für das Admin-Backend gedacht und die public.css für das public facing frontend.

Ja, dann wäre es sicher besser die fehlenden JQUery Enque-Styles zu kopieren.
Ich vermute das diese Lösung es aber final nicht klären wird, denn leider sind die CSS-Regeln für #ui-datepicker-div aktuell nur über das Einbinden der kompletten public.css zu erreichen. Die Regeln werden über das Gruntfile nur in die public.css-Datei gebaut.

@hansmorb Diese Zeile im SCSS führt dazu das die Links im Datepicker grün sind.

Hier siehst du auch noch die Auswirkungen der Einbindung von public.css auf andere Teile des Admin Bereichs.

Bildschirmfoto_2024-10-14_14-54-34

Dort wird folgender Style auf die Links angewendet.

.cb-wrapper .cb-title {
    color: var(--commonsbooking-color-primary);
}

Das Problem ist hier natürlich ein anders, es werden CSS-Klasse die ansonsten im User-Facing Frontend (public.css) genutzt werden, auch im Admin-Bereich genutzt.

Bin gerade unsicher wie am Besten weiterzumachen ist. Ich frage mich gerade:

  • inwieweit wird jquery überhaupt im frontend genutzt? Und können wir auch Litepicker für start-date und end-date im Admin-Bereich verwenden?
  • Inweit würde eine sinvolle Trennung der SASS-Regeln aussehen, die gerade im public\css\partial\bookings.sass (und ggf. weitere vorkommen) stehen, wenn jquery-CSS im User-Facing Frontend und im Admin-Frontend genutzt wird.
    • Sollten wir z.B. die custom-color Regeln oder die jquery-regeln in ein eigens CSS verschieben, das wir bei Bedarf im User-Facing oder Admin-Bereich enque-en können.

@hansmorb
Copy link
Contributor

Ich glaube um das Problem zu verstehen müsste ich es erstmal richtig rekonstruieren können. Wenn ich auf dem aktuellen Master mal das wp-env starte habe ich zum Beispiel das Problem nicht, da sieht der Datepicker ganz normal aus:

image

@datengraben
Copy link
Contributor Author

@hansmorb Danke.

Kannst du über die Dev-Tools zeigen ob bzw. welche CSS-Datei eingebunden ist (also z.B. public.css)? Und woher die #ui-datepicker-div Regel stammt. So heißt die Regel, die bei mir am Formular-Feld für die Datums-Eingabe hängt. Bei mir gelangt die über die public.css in den Browser.

@datengraben
Copy link
Contributor Author

datengraben commented Oct 14, 2024

In unserer Instanz wurde 2.9.4 via WP.org geladen und installiert. Ggf. unterscheiden sich die Inhalte der ausgelieferten Dateien von denen die wp-env erzeugt?

@hansmorb
Copy link
Contributor

In unserer Instanz wurde 2.9.4 via WP.org geladen und installiert. Ggf. unterscheiden sich die Inhalte der ausgelieferten Dateien von denen die wp-env erzeugt?

Möglich! Ich habe es nochmal mit der 2.9.4 in wp-env probiert, das hat funktioniert.
Dann habe ich es nochmal mit instawp und der aktuellen WP-Beta probiert: https://app.instawp.io/launch?t=beta-rc&d=v2
Und final im Playground: https://playground.wordpress.net/?plugin=commonsbooking&url=%2Fwp-admin%2F&mode=browser

Bei allen hat es funktioniert, die Ursache liegt also wahrscheinlich woanders.

@datengraben
Copy link
Contributor Author

@hansmorb Danke.

Kannst du über die Dev-Tools zeigen ob bzw. welche CSS-Datei eingebunden ist (also z.B. public.css)? Und woher die #ui-datepicker-div Regel stammt. So heißt die Regel, die bei mir am Formular-Feld für die Datums-Eingabe hängt. Bei mir gelangt die über die public.css in den Browser.

Wenn ich im Playground die Bookings Admin page ansurfe bekomme ich raus, das die datepicker styles aus dem admin.css kommen. Siehe screenshot für eine Regel die Anwendung findet.

Bildschirmfoto_2024-10-14_17-23-09

Ich probiere mal aus, das Plugin neu zu installieren.

@datengraben
Copy link
Contributor Author

Die Neu-Installation hat leider nichts gebracht.

Die geladenen CSS Assets (als Beispiel die Bookings-Seite im Admin bereich) sind genau gleich.
Die JS Assets nicht.

Folgende Liste der geladenen JQuery-Assets kann ich für unsere Instanz erzeugen.

Bildschirmfoto_2024-10-14_20-01-18

Folgende Liste taucht in den Dev-Tools für den Playground auf.

Bildschirmfoto_2024-10-14_20-06-43

Der Unterschied ist:

  • Der Playground zieht JQuery in der Version 3.7.1 und Jquery-Migrate in der Version 3.4.1
  • Wohingegen unsere Instanz migrate (hinter load-scripts.php) in der Version 6.6.2 (im Log steht aber auch 3.4.1) anzieht und Jquery gar nicht.

Das scheint das Problem zu sein. JQuery wird nicht ausgeliefert. Ich habe auch schon mal versucht alle Plugins zu deaktivieren, hat auch nicht funktioniert.

@hansmorb
Copy link
Contributor

hansmorb commented Oct 16, 2024

Vielleicht kannst du mal probieren jQuery als dependency für cb-scripts-admin mit anzugeben?

wp_enqueue_script(
'cb-scripts-admin',
COMMONSBOOKING_PLUGIN_ASSETS_URL . 'admin/js/admin.min.js',
array(),
COMMONSBOOKING_VERSION
);
}

@datengraben
Copy link
Contributor Author

Vielleicht kannst du mal probieren jQuery als dependency für cb-scripts-admin mit anzugeben?

wp_enqueue_script(
'cb-scripts-admin',
COMMONSBOOKING_PLUGIN_ASSETS_URL . 'admin/js/admin.min.js',
array(),
COMMONSBOOKING_VERSION
);
}

Danke guter Punkt. Das hatte leider nicht den gewünschten Effekt.
Ich versuche mal Schrittweise unsere Produktions-Umgebung (Plugins/Themes) in einem frischen WP-ENV nachzustellen.

@datengraben
Copy link
Contributor Author

datengraben commented Oct 17, 2024

Ich konnte es auf das Plugin LightStart (wp-maintenance-mode) zurückführen. Sobald ich das deaktiviere funktionieren die Kalendar-Widgets der Tabellen-Filter im Admin-Backend wieder.

@datengraben
Copy link
Contributor Author

Ich konnte es auf das Plugin LightStart (wp-maintenance-mode) zurückführen. Sobald ich das deaktiviere funktionieren die Kalendar-Widgets der Tabellen-Filter im Admin-Backend wieder.

Ich habe versucht eine fehlerfreie Version des Plugins aus der Vergangenheit zu finden (via der Rollback Funktion des LightStart-Plugins in der Plugin Liste), konnte keines finden.

Wenn ich das Plugin komplett lösche und neu installiere taucht das Problem auch nicht mehr auf.
Ich würde daher das Issue und den PR schließen und einen Eintrag im FAQ anlegen.

@datengraben datengraben deleted the 1646-admin-backend-date-picker-does-not-render-correctly branch October 17, 2024 13:00
@hansmorb
Copy link
Contributor

Super, danke! Ja, ich habe Lightstart irgendwann entfernt, nachdem es immer beim Aktivieren des maintenance Modus gecrasht ist. Vielleicht sollten wir einfach dazu raten, es nicht zu verwenden.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working frontend
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Admin Backend: date picker does not render correctly
2 participants