filtresCtrl.tableFiltres = {
"default" :
["EQUAL", "DIFFERENT", "GREATER", "GREATER_EQUAL", "LESS", "LESS_EQUAL", "BETWEEN", "CONTAIN", "START", "ISNULL", "ISNOTNULL"]
};
fct.listParams.Item.filtres = {
nomChampR: 'nomChampR',
operateur: operateur,
valeur: valeur
};
<aside> đź’ˇ // pour between valeur: [valeur1, valeur2]
</aside>
// .jade
html
body
.title-bar.fixed
ms-title(ms-text='prestaZoneCtl.fct.title')
.pull-right
form.form-inline
| 
ms-display(ms-meta='::prestaZoneCtl.fct.listParams.prestazone.meta.liste',
ms-filtres='prestaZoneCtl.fct.listParams.prestazone.filtres',
ms-search-fields='::(prestaZoneCtl.fct.listParams.prestazone.searchFields)',
ms-reload='prestaZoneCtl.fct.listParams.prestazone.refresh(RAZ,noAPI)',
ms-place-holder='::(prestaZoneCtl.fct.recherchePresta)',
ms-display-options='::({showSearch:false,showSearchBtn:false,showDisplay:true,showDefaultMenu:false,dropDownRight:true})')
| 
ms-action(ms-actions='::(prestaZoneCtl.fct.listParams.prestazone.actions)',
ms-get-action-params='prestaZoneCtl.fct.actions.params',
ms-action-run='prestaZoneCtl.fct.actions.run', ms-action-callback='prestaZoneCtl.fct.actions.callback', ms-param-list='prestaZoneCtl.fct.listParams.prestazone')
// .ctl.js
fct.listParams.prestazone={
data : {liste:[]},
meta : {liste:undefined},
getApi : PrestaZoneService.getListForPlanPresta,
apiParam : $stateParams.idPlanPresta,
ordre : [],
displayFields : [],
limit : 30,
searchFields : ['libelle_ServicePrestaContratR'],
filtres : [],
canLoad : true,
actions : undefined
};
// autre .jade possible
html
body
.title-bar.fixed
.in-title-bar-left
ms-title(ms-text='::approvisionnementCtl.fct.title')
.in-title-bar-right
.pull-right
form.form-inline
ms-display(ms-meta='approvisionnementCtl.fct.listParams.Approvisionnement.meta.liste',
ms-reload='approvisionnementCtl.fct.listParams.Approvisionnement.refresh(RAZ,noAPI)',
ms-filtres='approvisionnementCtl.fct.listParams.Approvisionnement.filtres',
ms-search-fields='::(approvisionnementCtl.fct.listParams.Approvisionnement.searchFields)')
| 
ms-action(ms-actions='::(approvisionnementCtl.fct.listParams.Approvisionnement.actions)',
ms-get-action-params='approvisionnementCtl.fct.actions.params',
ms-action-run='approvisionnementCtl.fct.actions.run',
ms-action-callback='approvisionnementCtl.fct.actions.callback',
ms-param-list='approvisionnementCtl.fct.listParams.Approvisionnement')
.pull-right
form
.row.approv-filtre-type
.col-md-12
ms-select(ms-id="filtreZone", ms-meta="::approvisionnementCtl.fct.metaFiltreZone",
ms-item-display="libComplet_ZoneR", ms-item-id="id_ZoneR", ms-value="approvisionnementCtl.fct.idZoneFiltreChoisi",
ms-on-change="approvisionnementCtl.fct.onFiltreZone(value)",
ms-search-enabled='true', ms-api-params='::(approvisionnementCtl.fct.zoneApi)',
ms-no-lib='true')
.pull-right
form
.row.approv-filtre-type
.col-md-12
ms-select(ms-id="filtreParamConso", ms-meta="::approvisionnementCtl.fct.metaFiltreParamConso",
ms-item-display="lib_ParamConsommableR", ms-item-id="id_ParamConsommableR",
ms-value="approvisionnementCtl.fct.idParamConsoFiltreChoisi",
ms-on-change="approvisionnementCtl.fct.onFiltreParamConso(value)",
ms-search-enabled='true', ms-api-params='::(approvisionnementCtl.fct.paramConsoApi)',
ms-no-lib='true')
.pull-right
form
.row.approv-filtre-date
.col-md-12
ms-date-picker(ms-meta='approvisionnementCtl.fct.metaFiltreDateFin',
ms-value='::(approvisionnementCtl.fct.idDateFinFiltreChoisi)',
ms-id='dateFin',
ms-on-change="approvisionnementCtl.fct.onFiltreDateFin(value)",
ms-no-lib='true')
.pull-right
form
.row.approv-filtre-date
.col-md-12
ms-date-picker(ms-meta='approvisionnementCtl.fct.metaFiltreDateDeb',
ms-value='::(approvisionnementCtl.fct.idDateDebFiltreChoisi)',
ms-id='dateDeb',
ms-on-change="approvisionnementCtl.fct.onFiltreDateDeb(value)",
ms-no-lib='true')
// ctl.js
fct.filtre = {
zone : null,
paramConso : null,
dateDeb :null,
dateFin :null
};
fct.listParams.Approvisionnement={
data : {liste:[]},
meta : {liste:undefined},
api : ApprovisionnementService,
ordre : [],
displayFields : [],
limit : 30,
searchFields : ['libUtilisateur_InterventionDetailApprovR'],
filtres : [],
canLoad : true,
actions : undefined
};
fct.displayOptions = {
showSearch: false
};
fct.idZoneFiltreChoisi=null;
fct.idParamConsoFiltreChoisi=null;
fct.idDateDebFiltreChoisi=null;
fct.idDateFinFiltreChoisi=null;
fct.onFiltreZone = function(value){
fct.filtre.zone = value;
updateFiltre(fct);
};
fct.onFiltreParamConso = function(value){
fct.filtre.paramConso = value;
updateFiltre(fct);
};
fct.onFiltreDateDeb = function(value){
fct.filtre.dateDeb = value;
updateFiltre(fct);
};
fct.onFiltreDateFin = function(value){
fct.filtre.dateFin = value;
updateFiltre(fct);
};
}
function updateFiltre(fct) {
fct.listParams.Approvisionnement.filtres = [];
// RG_APPRO_002
if(fct.filtre.zone !== undefined && fct.filtre.zone !== null){
fct.listParams.Approvisionnement.filtres.push({
nomChampR: 'id_ZoneR',
operateur: "EQUAL",
valeur: fct.filtre.zone
});
}
// RG_APPRO_003
if (fct.filtre.paramConso !== undefined && fct.filtre.paramConso !== null){
fct.listParams.Approvisionnement.filtres.push({
nomChampR: 'id_ParamConsommableR',
operateur: "EQUAL",
valeur: fct.filtre.paramConso
});
}
// RG_APPRO_001
if (fct.filtre.dateDeb !== undefined && fct.filtre.dateDeb !== null){
fct.listParams.Approvisionnement.filtres.push({
nomChampR: 'dateDebutOrigine_IntervEltRealiseR',
operateur: "GREATER_EQUAL",
valeur: DateTimeService.DateToJsonDate(fct.filtre.dateDeb)
});
}
// RG_APPRO_001
if (fct.filtre.dateFin !== undefined && fct.filtre.dateFin !== null){
fct.listParams.Approvisionnement.filtres.push({
nomChampR: 'dateDebutOrigine_IntervEltRealiseR',
operateur: "LESS_EQUAL",
valeur: DateTimeService.DateToJsonDate(fct.filtre.dateFin)
});
}
fct.listParams.Approvisionnement.refresh(true);
}
function initLibelles(fct) {
fct.metaFiltreParamConso= {
aff:"1",
id : "libParamConso_FiltreApprovR",
typeHTML : "select"
};
fct.metaFiltreZone = {
aff:"1",
id : "libZone_FiltreApprovR",
typeHTML : "select"
};
fct.metaFiltreDateDeb= {
aff:"1",
id : "libDateDeb_FiltreApprovR",
typeHTML : "date"
};
fct.metaFiltreDateFin = {
aff:"1",
id : "libDateFin_FiltreApprovR",
typeHTML : "date"
};
LibelleService.getLibelleChamp("libParamConso_FiltreApprovR").then(function (result) {
if ((result)&&(result.data)&&(result.data.data)) {
fct.metaFiltreParamConso.lib = result.data.data.libParamConso_FiltreApprovR;
}
});
LibelleService.getLibelleChamp("libZone_FiltreApprovR").then(function (result) {
if ((result)&&(result.data)&&(result.data.data)) {
fct.metaFiltreZone.lib = result.data.data.libZone_FiltreApprovR;
}
});
LibelleService.getLibelleChamp("libDateDeb_FiltreApprovR").then(function (result) {
if ((result)&&(result.data)&&(result.data.data)) {
fct.metaFiltreDateDeb.lib = result.data.data.libDateDeb_FiltreApprovR;
}
});
LibelleService.getLibelleChamp("libDateFin_FiltreApprovR").then(function (result) {
if ((result)&&(result.data)&&(result.data.data)) {
fct.metaFiltreDateFin.lib = result.data.data.libDateFin_FiltreApprovR;
}
});
LibelleService.getLibelleDiversList([
"app.views.consommable.approvisionnement.pasdeappro"]).then(function (result) {
if (result.status === 200) {
fct.pasdeappro = result.data.data["app.views.consommable.approvisionnement.pasdeappro"];
}
});
}
fct.actions = { params : {}, callback : {} }
cf. suivizonetpsreel(jade + ctl.js) / depot FM-front
ms-on-change='getController().fct.applyView(value,oldValue,id)'
fct.applyView = function(value,oldValue,id) {
var vue=$filter('filter')(fct.vues,{id:parseInt(id.replace('vue',''))},true)[0];
for (var i=0;i<fct.vues.length;i++) {
if (fct.vues[i].id!==vue.id) {
fct.vues[i].defaut="0";
//fct.askChildRefresh('vue'+fct.vues[i].id);
}
}
if (value==="0") {
vue=fct.vues[0];
vue.defaut="1";
//fct.askChildRefresh('vue'+vue.id);
}
// partant de lĂ on applique la vue, en renseignant d'abord la vue courante...
VueService.setVueCourante(fct.statename, '/gestionsite/suivizone/tpsreel/', vue.id);
};
C:\\DEV\\depot\\Emed-front\\src\\app\\core\\base\\base-views.fct.js
fct.applyView = function(idvue) {
if (angular.isDefined(fct.vues)) {
var vuesSel=$filter('filter')(fct.vues,{id:idvue},true);
if (angular.isArray(vuesSel)&&(vuesSel.length>0)) {
// partant de lĂ on applique la vue, en renseignant d'abord la vue courante...
VueService.setVueCourante($state.current.name,fct.dataFuncs.service.baseApi,idvue);
fct.doRefresh();
scope.$emit('msOnApplyView',{msId:$state.current.name,vue:vuesSel[0]});
}
}
};
C:\\DEV\\depot\\Emed-front\\src\\app\\core\\directives\\tableauto\\tableauto.js
// application de la vue d'id quelquechose...
msTableAutoCtrl.msParamListD.applyView=function(idvue) {
if (!((msTableAutoCtrl.msParamListD.api)&&(msTableAutoCtrl.msParamListD.api.baseApi))) {
alert('service-api non défini, pas possible d\\'appliquer la vue');
return;
}
if (angular.isDefined(msTableAutoCtrl.msParamListD.vues)) {
var vuesSel=$filter('filter')(msTableAutoCtrl.msParamListD.vues,{id:idvue},true);
if (angular.isArray(vuesSel)&&(vuesSel.length>0)) {
// partant de lĂ on applique la vue, en renseignant d'abord la vue courante...
VueService.setVueCourante($state.current.name,msTableAutoCtrl.msParamListD.api.baseApi,idvue);
// on lance un refresh
if (msTableAutoCtrl.msParamListD.filtres.length>0) {
msTableAutoCtrl.msParamListD.filtres.splice(0,msTableAutoCtrl.msParamListD.filtres.length);
}
if (msTableAutoCtrl.msParamListD.ordre.length>0) {
msTableAutoCtrl.msParamListD.ordre.splice(0,msTableAutoCtrl.msParamListD.ordre.length);
}
msTableAutoCtrl.msParamListD.refresh(true);
$scope.$emit('msOnApplyView',{msId:$state.current.name,vue:vuesSel[0]});
}
}
};
// exemple : Filtre sur les profils (select) planning roulement
.pull-right
form
//- RG_PLANNING_ROULEMENT_DATE_008
.row.planning-detaille-filtre
.col-md-12
ms-select(ms-id='profil-metier',
ms-meta='::(getController().fct.metaFiltreProfil)',
ms-value='getController().fct.idProfilFiltreChoisi',
ms-item-id='id_ProfilMetierIntervR',
ms-item-display='libelle_ProfilMetierIntervR',
ms-items='::(((getController().fct.profils!==undefined)&&(getController().fct.profils.length>0)) ? getController().fct.profils : undefined)',
ms-search-enabled='true',
ms-on-change='getController().fct.onFiltreProfil(value)',
ms-close-on-select='true',
ms-no-lib='true',
ng-if='((getController().fct.profils!==undefined)&&(getController().fct.profils.length>0))')
function initFiltres(fct) {
// chargement du filtre de profils métier
// RG_PLANNING_ROULEMENT_DATE_008
fct.filtre = {
profil: null
};
fct.idProfilFiltreChoisi = null;
fct.metaFiltreProfil = {
aff: "1",
id: "filtreProfil",
typeHTML: "select"
};
fct.profils = [];
var l_filtersProfils = [{
nomChampR: 'affectablePrestation_ProfilMetierIntervR',
operateur: "EQUAL",
valeur: true
}];
ProfilMetierIntervService.get(l_filtersProfils).then(function (result) {
if (result && (result.status === 200)) {
// on ajoute un élément vide pour réinitialiser la liste
fct.profils = result.data.data;
if ($stateParams.idprofil === null) {
fct.idProfilFiltreChoisi = fct.profils[0].id_ProfilMetierIntervR;
} else {
fct.idProfilFiltreChoisi = $stateParams.idprofil;
}
}
});
fct.onFiltreProfil = function (value) {
var vueCourante = VueService.getVueCourante(fct.statename, fct.listParams.planningdetaille.api.baseApi);
// suppression de l'ancien filtre sur l'idProfil s'il existe
for (var i in fct.listParams.planningdetaille.filtres) {
if (fct.listParams.planningdetaille.filtres[i].nomChampR === "id_ProfilMetierIntervR") {
fct.listParams.planningdetaille.filtres.splice(i, 1);
break;
}
}
// on applique le filtre si la valeur est différente de null
if (value) {
fct.filtre.profil = value;
var params = {
idprofil: fct.filtre.profil
};
BaseFct.goTo($state.current.name, params, undefined, event);
fct.loadData(vueCourante.id, fct.filtre.profil);
}
};
}
// exemple : Filtre sur les secteurs (select-multi)
fct.getSecteurList = {
api: SecteurService
};
fct.data.selectedSecteurs = [];
fct.secteurList = [];
fct.filtre = {
secteur: null
};
fct.metaFiltreSecteur = {
aff: "1",
id: 'idSecteur_EvalPersR',
typeHTML: 'select'
};
LibelleService.getLibelleDivers('app.views.benefevaluation.liste.filtre.secteur').then(function (result) {
if ((result.status === 200) && (result.data) && (result.data.data)) {
fct.metaFiltreSecteur.lib = result.data.data.libelle_Divers;
} else {
fct.metaFiltreSecteur.lib = 'app.views.benefevaluation.liste.filtre.secteur';
}
});
fct.onFiltreSecteur = function (value) {
fct.filtre.secteur = value;
updateFiltre(fct);
};
function updateFiltre(fct) {
fct.idListeSecteur = [];
fct.listParams.benefevaluation.filtres = [];
if ((fct.filtre.secteur !== undefined) && (fct.filtre.secteur !== null)) {
if (fct.filtre.secteur.length > 0) {
for (var i = 0; i < fct.filtre.secteur.length; i++) {
fct.idListeSecteur.push(fct.filtre.secteur[i].id_secteurList_ParamSecteurR);
}
fct.listParams.benefevaluation.filtres.push({
nomChampR: 'id_ParamSecteurR',
operateur: "IN",
valeur: fct.idListeSecteur
});
}
}
fct.listParams.benefevaluation.refresh(true);
}
.title-bar.fixed
ng-include(src='::("app/core/templates/listtitlebar/listtitlebar.html"+getController().fct.getVersion())')
.pull-right
form
.benefevaluation-filtre(ng-class='{"filtre-secteur": ((getController().fct.data.selectedSecteurs)&&\\
(getController().fct.data.selectedSecteurs.length>0))}')
ms-select-multi(ms-id='secteurs',
ms-meta='::(getController().fct.metaFiltreSecteur)',
ms-value='getController().fct.secteurList',
ms-value-prop-name='secteurList',
ms-item-id='id_ParamSecteurR',
ms-item-display='lib_ParamSecteurR',
ms-selected-values='getController().fct.data.selectedSecteurs',
ms-always-refresh='true',
ms-close-on-select='true',
ms-on-change='getController().fct.onFiltreSecteur(value)',
ms-api-params='::(getController().fct.getSecteurList)',
ms-no-lib='true')
// global.less
.benefevaluation-filtre, .suivi-pec-filtre {
width: 240px;
.form-group {
margin: 0;
margin-right: 5px;
}
&.filtre-secteur {
.ui-select-multiple.ui-select-bootstrap input.ui-select-search {
height: 1.1em;
}
}
.ui-select-match-item {
padding: 2px;
height: 14px;
border: 1px solid @color-bleu-fonce;
background-color: @color-bleu-fonce !important;
border-radius: 20px;
color: @white !important;
font-size: @text-small-size;
line-height: 0.9;
.close {
color: @white !important;
opacity: 1;
line-height: 0.3;
}
&:hover{
background-color: @color-rose !important;
}
}
.ms-select-multi .ui-select-container {
max-height: 40px;
}
}