#873 [Relaunch] rework: two-button relaunch widget and direct reminder form - #880
Open
evarisk-kilyan wants to merge 4 commits into
Open
evarisk-kilyan wants to merge 4 commits into
evarisk-kilyan wants to merge 4 commits into
Conversation
… list cells
Dolibarr flattens every div of a truncating list cell with
table.liste td[class*="tdoverflowmax"] div { display: inline; padding: 0; margin: 0 },
at a specificity the widget's own class pair cannot reach: the widget rendered
80x17 instead of 126x26 on the opportunity list and on the native project list,
segments and their + badges overlapping. The four pills escaped it through the
!important of _project-list.scss, whose rules are scoped on the
reedcrm-plist-relaunch-buttons class the new container no longer carries.
Restate the layout from inside that same selector rather than reintroducing the
keyword.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…-layout Eoxia#873 [Relaunch] fix: restore the two-button widget layout inside list cells
This was referenced Sep 18, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Proposition pour la refonte des boutons de relance. Les trois cases de l'issue sont couvertes : refonte des boutons, deux boutons gauche/droite avec leurs interactions, et refonte du panneau d'ajout de rappel direct.
Le parti pris
Le texte de l'issue et les annotations de la maquette ne décrivent pas la même chose : le texte décrit la création (gauche = événement complet + rappel, droite = rappel direct), les annotations décrivent le contenu (gauche = le passé avec une alerte sur les éléments en retard, droite = les événements à venir à faire). Les deux se réconcilient si le compteur et le panneau portent la dimension temporelle, et le
+la dimension création. C'est ce qui est implémenté.MAIN_DELAY_ACTIONS_TODO, surchargeable parREEDCRM_RELAUNCH_LATE_DELAY_DAYS). Son+ouvre le formulaire complet existant, inchangé.+ouvre le nouveau formulaire de rappel direct.date – type – qui – quoi – statut, avec la puce colorée du type et les lignes en retard surlignées.Architecture
Le nouveau
lib/reedcrm_relaunch.lib.phpdevient la source unique de vérité et remplace les quatre copies divergentes du markup des pastilles (helper de liste saturne, hook de fiche, hook de liste native, barre PWA) ainsi que les trois implémentations du comptage. Les surfaces ne choisissent plus qu'un habillage.Le comptage passe d'un
ActionComm::getActions()par ligne, qui charge chaque événement en entier pour n'incrémenter que des compteurs (1 + 2N requêtes par ligne de liste), à une seule requête agrégée mémoïsée. Le panneau tient en deux requêtes quel que soit le volume.La lecture unionne enfin les deux catégories, relance et rappel. Sans cela le bouton droit serait structurellement vide : les rappels sont volontairement exclus du tag de relance pour ne pas gonfler les compteurs, et ce sont les seuls événements que le module crée avec une date future et un statut à faire.
Corrections embarquées
ActionComm. L'ancien code mutait et re-créait l'objet de l'événement principal, ce qui laissait le rappel avec lefk_actionde l'événement alors que son code disaitAC_OTH, et écrivait une ressourcesocpeople/0parasite quand aucun contact n'était choisi.$resultn'est plus réutilisé pour trois créations successives avant de conditionner la mise à jour de l'opportunité.event()ne dégageait pas ses liaisons : un clic sur un+déclenchait deux GET parallèles surprocard.php.a.fk_contact, que le handler n'écrit jamais — seulsocpeopleassignedest renseigné.dol_time_plus_duree()était appelée sansdate.lib.php: fatal latent selon la page hôte.data-dialog-title, attribut déjà émis mais jamais consommé.Fichiers
Nouveaux :
lib/reedcrm_relaunch.lib.php,core/tpl/view/eventpro/view_eventpro_reminder.tpl.php,core/tpl/view/eventpro/relaunch_list_panel.tpl.php,css/scss/pages/_relaunch-widget.scss.Modifiés :
class/actions_reedcrm.class.php,lib/reedcrm_fields.lib.php,ajax/get_relaunches_list.php,core/tpl/view/eventpro/eventpro_actions.tpl.php,core/tpl/frontend/reedcrm_pwa_relaunch_bar.tpl.php,view/procard.php,view/frontend/pwa_relaunch.php,js/modules/eventpro.js,css/scss/pages/_pages.scss, les deux.lang.js/reedcrm.min.jsn'est pas régénéré dans cette PR. Le bundle était déjà en retard sureventpro.jset toutes les pages hôtes rechargent le fichier en clair par-dessus, donc le comportement est correct sans rebuild — mais unnpm run buildreste à passer avant release.Test
+du bouton de droite : le formulaire de rappel direct, un raccourci de date, valider, puis vérifier que le compteur de droite s'incrémente et que l'événement créé porte bien le tag de rappel et un statut à faire.+du bouton de gauche ouvre toujours le formulaire complet et que la case « rappel » y fonctionne comme avant.Points à arbitrer avant de fermer l'issue
L'issue dit « il faudra définir les interactions » et la maquette laisse une question ouverte. J'ai tranché pour livrer quelque chose de testable, mais trois décisions appartiennent au client :
percent = -1) est compté comme passé et jamais en retard.Refs #873