Bonjour,
Je parlais d’un masquage du bouton et pas d’un champ, c’est une erreur, désolé.
Le bouton est le bouton “Relancer” figurant sur chacune des lignes représentant une manifestation.
Il appelle l’action CRB_AGM_MAIL_RELANCE_MANIF dans le fichier de type Javascript de l’objet externe CrbAgmManifestationAgenda :
CrbAgmManifestationAgenda = (function() {
var $s=true;
var debug = false;
function display(url) {
$s = new Simplicite.Ajax();
var manifestation = $s.getBusinessObject("CrbAgmManifestation", "agenda_CrbAgmManifestation");
$j("#manifestationcalendar").fullCalendar({
defaultView: (localStorage.getItem("fcDefaultView") !== '' ? localStorage.getItem("fcDefaultView") : "list"),
defaultDate : (localStorage.getItem("fcDefaultDate") !== '' ? localStorage.getItem("fcDefaultDate") : moment()),
header: {
left: "prev,next",
center: "title",
right: "list, month,listMonth"
},
visibleRange: {
start: (localStorage.getItem("fcDefaultDate") !== '' ? localStorage.getItem("fcDefaultDate") : moment()),
end: moment().add('days', 7)
},
views: {
day: {
titleFormat: "dddd DD MMMM YYYY",
columnFormat: "DD/mm",
},
listWeek: {
buttonText: 'Manifestations de la semaine',
},
listMonth: {
buttonText: 'Manifestations du mois',
}
},
timezone: "local",
editable: true,
firstDay: 1,
maxTime: "21:30:00",
businessHours: {
dow: [ 1, 2, 3, 4, 5 ],
start: '09:00',
end: '17:30'
},
events: function(start, end, tz, callback) {
var f = "YYYY-MM-DD HH:mm:ss Z";
var debut=moment(start);
var fin=moment(end);
var dmin=debut.format(f);
var dmax = fin.format(f);
console.debug("Calendar view range = " + debut + " to " + fin);
manifestation.search(function() {
console.debug(manifestation.list.length + " sollicitations trouvées entre " + dmin + " et " + dmax);
var evts = [];
for (var i = 0; i < manifestation.list.length; i++) {
var item = manifestation.list[i];
var s = moment(item.CrbAgmManifDtDebut);
var e = moment(item.CrbAgmManifDtFin);
evts.push({
id: item.row_id,
data: item,
title: (item.CrbAgmManifReponsePresident ? "(" + item.CrbAgmManifReponsePresident + ")" : '') + ' '
+ item.CrbAgmManifObjet + ' '
+ "<button type=\"button\" class=\"btn btn-action action-not-xs\" onClick=\""
+ " var obj = $ui.getAjax().getBusinessObject(\'CrbAgmManifestation\'); "
+ " obj.get(function(item) { "
+ " obj.action(function() { /* done */ }, \'CRB_AGM_MAIL_RELANCE_MANIF\'); "
+ " }, " + item.row_id + "); "
+ " \">Relancer</button>"
+ item.CrbAgmManifListeRep,
start: s,
end: e
});
}
if (debug) console.debug("fin boucle :"+new Date());
if (debug) console.debug(evts.length + " resa displayed between " + dmin + " and " + dmax);
callback(evts);
}, {}, {});
},
eventClick: function(s) {
if (debug) console.log("Manifestation " + s.id + " clicked");
if (typeof parent.$ui !== "undefined") {
parent.$ui.displayForm(null, "CrbAgmManifestation", s.id, { nav: "add" });
}
else
document.location.replace(url.replace(/ROWID/, e.id));
},
viewRender: function (view) {
localStorage.setItem("fcDefaultView", view.name);
var viewStart = moment(view.start);
var viewEnd = moment(view.end);
$j('#datedebutselector').val(moment(view.start).format("YYYY-MM-DD"));
$j('#datefin').val(moment(view.end).format("YYYY-MM-DD"));
localStorage.setItem("fcDefaultDate", viewStart.format("YYYY-MM-DD"));
},
eventRender: function( event, element, view ) {
if (view.name.startsWith('list')) {
var title = element.find('.fc-list-item-title');
var title_html = title.text();
var array_html = [];
var array_sollicitation = title_html.split('●');
array_sollicitation.forEach(function(ligne){
ligne = ligne.replace(/.* - (INF)/, function(ligneSoll){return "<span style='color:grey'>"+ligneSoll.replace(' - INF','')+"</span>"});
ligne = ligne.replace(/.* - ((SRE)|(ABS)|(PRE))/, function(ligneSoll){return "<span style='color:#0080ff'>"+ligneSoll+"</span>"});
ligne = ligne.replace(/ \- ABS/, "<b><span style='color:red'> Non</span></b>");
ligne = ligne.replace(/ \- SRE/, "<b><span style='color:red'> ?</span></b>");
ligne = ligne.replace(/ \- PRE/, "<b><span style='color:red'> Oui</span></b>");
array_html.push(ligne);
});
title.html(array_html.join('<br/>'));
}
$j('button[aria-label=next]').click(function() {
$('#manifestationcalendar').fullCalendar('option', 'visibleRange', {
start: moment(view.start).add(7, 'days'),
end: moment(view.end).add(7, 'days')
});
});
$j('button[aria-label=prev]').click(function() {
$('#manifestationcalendar').fullCalendar('option', 'visibleRange', {
start: moment(view.start).subtract(7, 'days'),
end: moment(view.end).subtract(7, 'days')
});
});
},
});
$j('#datedebutselector').change(function(){
$('#manifestationcalendar').fullCalendar('option', 'visibleRange', {
start: moment($j('#datedebutselector').val()),
end: moment($j('#datedebutselector').val()).add(7, 'days')
});
});
}
return { display: display };
})(jQuery);
Je veux que se bouton soit masqué lorsque l’utilisateur ne dispose pas de la responsabilité ‘APPLI_SIMPLICITE_AGMANIF_GESTIONNAIRE’
J’ai vu qu’il existe la fonction $ui.grant.hasResponsability()
Mais je ne sais pas comment l’utiliser dans mon script pour masquer le bouton.
Pour info, les utilisateurs pour qui le bouton est masqué n’ont pas le droit d’exécuter l’action “côté serveur”.
Merci de vos retours,
Cordialement,
Guillaume