Reinitliasation du fichier responsive5.js

Bonjour à tous,
J’ai un problème récurrent que je ne sais pas d’où ça vient, j’ai implémenté ce code dans le fichier du théme responsive5.js pour supprimer l’onglet Bannettes et Métriques :

/* Specific client script */

(function($) {
	$(document).on("ui.loaded", function() {
		// customize UI here before home page	
	});

	$(document).on("ui.ready", function() {
		// customize UI here	
		document.querySelector("[data-tray='Facture']").parentElement.remove();
		document.querySelector("[data-bam='Facture']").parentElement.remove();


		
	});
	
	$(document).on("ui.beforeunload", function() {
		// window will be unloaded
	});
	
	$(document).on("ui.unload", function() {
		// window is unloaded
	});
})(jQuery);

Sauf qu’à plusieurs reprises ce fichier se réinitialise et revient au code par défaut, je ne saurais pas dire la raison exact sachant que je travaille uniquement sur des Business Object pendant ce temps là.

Avez vous une idée ?
Merci

C’est normal, les éléments systèmes (paramétrages, scripts, styles, …) sont susceptibles d’être régulièrement relivrés au fil des évolutions/corrections de la plateforme.

Toute customisation, de ces éléments est fortement déconseillée, sauf si vous savez exactement ce que vous faites (le risque étant de “casser” votre instance).

Si vous le faites malgré tout vous devez impérativement prévoir de le rejouer ces customisations à chaque mise à jour de la plateforme, au cas où.

Mais bon, franchement, si vous êtes amené à aller modifier du JS de la disposition standard cela signifie sans doute que votre approche n’est pas la bonne.

Nous vous conseillons de toujours nous solliciter avant de vous lancer dans ce genre de choses pour savoir s’il y a une approche standard (ou, le cas échéant, nous proposer un change request si c’est effectivement quelque chose qui devrait être customisable et qui ne l’est pas actuellement).

En l’occurrence, dans le cas présent, si je comprends bien, votre besoin ne relève pas d’une customisation JS mais d’un simple paramétrage de votre objet:

Bonjour,

Merci pour votre retour, effectivement on va revoir le patch V5 pour préserver du code existant, comme responsive5 au niveau du STYLES et du SCRIPT optionnels et justement dédiés à la surcharge de la disposition.

En fait, votre cas d’usage est un nouveau besoin générique de la plateforme : l’idéal sera d’ajouter une notion dans le XML des patchs qui indique au loader de ne pas prendre en compte une valeur déjà surchargée.

Pour ne charger la valeur que si elle est vide en base, on va ajouter un attribut :

<res_file if="null"><![CDATA[DATA:SCRIPT.js:/* new empty script */]]></res_file>

Pour ne charger la valeur que si elle est non vide en base :

<res_file if="notnull"><![CDATA[DATA:SCRIPT.js:/* deprecated script */]]></res_file>

Ne rien préciser indiquera un écrasement de la valeur comme aujourd’hui.

Bonjour à tous,
Merci David pour les détails effectivement ta solution répond partiellement à mon besoin car en désactivant le “Dashboard Menu”, je n’ai plus accés au métriques alors que je les affiche actuellement avec du Js dans l’acceuil (comme l’exemple de la Démo).

Le but est de les afficher dans l’accueil et de supprimer le boutton depuis la navigation de l’objet concerné (plutôt une question de UX).

Merci pour les précision François, justement avant ça où est ce que c’est prévu du faire du custom JS qui s’exécutera au chargement de la UI ?

Merci à vous

C’est bien dans le SCRIPT de la disposition, comme vous l’avez fait au niveau des triggers ui.loaded et ui.ready :

$(document).on("ui.loaded", function() { ... });
$(document).on("ui.ready", function() { ... });

Donc en attendant cette évolution, la méthode historique est de modifier ce genre de valeur surchargée via un patch pour réappliquer vos modification après l’upgrade socle (ou déplacer la disposition dans votre module et réappliquer votre module après chaque upgrade).

L’évolution dont je parle n’est pas complexe et pourra être livrée rapidement, ce qui vous évitera cette manipulation.

Merci pour les détails, c’est ok pour moi