Recherche

Un formulaire de recherche permet la saisie de critères permettant aux utilisateurs d’accéder facilement aux composants stockés. Afin de pouvoir intéragir avec ce type de formulaire, il est nécessaire de s’abonner à son ouverture :

JSAPI.get().registerForSearchOpen(function(searchFormAPI, template) {
	console.log("hidden request: " + searchFormAPI.getHiddenRequest());
});

Un formulaire de recherche dispose de deux conteneurs d’actions disponible grâce aux fonctions suivantes :

Fonction Description
getHeaderActions() Récupère le conteneur d’action au dessus des résultats de recherche
getFooterActions() Récupère le conteneur d’action en dessous des résultats de recherche

L’exemple ci-dessous illustre l’ajout d’une action dans le conteneur sous le tableau de résultats.

JSAPI.get().registerForSearchOpen(function(searchFormAPI, template) {
	console.error("Call of register for open");
	var actionAPI = JSAPI.get().getActionFactoryAPI();
	var action = actionAPI.buildTextual("myCustomAction", "Test", function(actionPresenter){
		console.info("on click");
		actionPresenter.setEnabled(false);
	});

	var footerActions = searchFormAPI.getFooterActions();
	footerActions.remove(action.getId());
	footerActions.add(action);
});

Si l’on souhaite réagir au changement de valeur d’un critère de recherche spécifique, l’abonnement s’effectue comme ci-dessous :

criterionName = "EDS";
JSAPI.get().getSearchFormAPI().registerForCriterionChange(criterionName, function(criterion) {
});

A noter : Dans cette partie, la variable criterionName correspond dans le cas d’un tag à la valeur de son identifiant. S’il s’agit de la classe du composant, il faut utiliser classid.