@fto-consult/common
Version:
Un ensemble de bibliothèques et d'utilistaires communs pour le développement d'applications javascript
52 lines (49 loc) • 2.27 kB
JavaScript
// Copyright 2022 @fto-consult/Boris Fouomene. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// Copyright 2022 @fto-consult/Boris Fouomene. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
/***
* @namespace actions
* @memberof <global>
*/
import defaultStr from "$cutils/defaultStr";
/**** Les actions sont utiles pour l'écoute des évènement de l'application.
* Ils ont pour rôle de prendre en paramètre :
* le nom du composant, puis retourner l'unique action correspondante au type
* @param : string componentName : le nom du composant
* @param : string type : le type de l'action
* Exemple : actions('structData','show') => SRUCT_DATA_SHOW : pour afficher un composant StructData
* actions('productsCategories','upsert') => PRODUCTS_CATEGORIES_UPSERT : appelée lorsqu'une catégorie d'article est mise à jour
*/
export default function actions(componentName,type){
type = defaultStr(type).trim();
if(type.toLowerCase().includes("remove")){
type = "remove";
}
if(type){
type = "_"+type.toUpperCase().trim().ltrim("_");
}
componentName = defaultStr(componentName);
if(componentName){
return componentName.trim().toSnake().toUpperCase().ltrim("_").rtrim("_")+type;
}
return '';
}
[
/*** liste les données d'un tableau avec les paramètres passés en paramètre */
"list",
/**** Affiche le formulaire lié au composant passé en paramètre */
'show',
/**** insère ue données dont la table est passée en paramètre */
'upsert',
'remove', //action permettant de supprimer uen données en base,
'onRemove',//action appelée lorsqu'une données a été supprimée de la base lorsqu'une données a été supprimée de la base
/**** annulle l'opération d'édition du composant passé en paramètre */
'cancel',
/**** affiche le formulaire d'édition ou d'ajout d'une nouvelle donnée de type tableData */
'showTableData'
].map((action,k)=>{
actions[action] = (componentName) => actions(componentName,action);;
});