J'essaie d'apporter une légère amélioration à un widget existant créé par notre équipe, mais je n'arrive pas à le faire fonctionner correctement. Nous avons un widget qui fait un RowCount de tâches et les groupe par état. Je veux que le RowCount se mette à jour automatiquement une fois qu'une tâche est terminée sans que l'utilisateur appuie sur le bouton d'actualisation. J'ai lu de la documentation sur $ rootscope, $ broadcast et $ on, mais je n'arrive pas à le faire fonctionner.ServiceNow spUtil
ci-dessous est extrait de notre HTML:
<table class="table table-sm table-responsive">
<tbody>
<tr class="h3">
<td colspan=2>Complete</td>
</tr>
<tr class="h2 bg-success" ng-repeat="x in data.values track by $index">
<td><span class="glyphicon glyphicon-check"></span></td>
<td>{{x.completedCount}}</td>
</tr>
</tbody>
</table>
Un extrait de notre script serveur:
var values = [];
var _completedCount;
var gsCompleted = new GlideRecordSecure('sn_hr_core_task');
//CLOSED COMPLETE, CLOSED INCOMPLETE,
gsCompleted.addQuery('state', 'IN', '3,4,7');
gsCompleted.addQuery('assigned_to', gs.getUserID());
gsCompleted.addQuery("parent.state", 'NOT IN', '1,800,900');
gsCompleted.query();
if(gsCompleted){
_completedCount = gsCompleted.getRowCount();
}
else{
_completedCount = 0;
}
values.push(
{
completedCount: _completedCount
});
data.values = values;
Comment puis-je obtenir ce widget mise à jour automatique du nombre de lignes terminées sans rafraîchir la page? Je joue autour avec spUtil recordWatch, mais ne peut pas faire fonctionner correctement:
function($scope, $sce, spUtil) {
var c = this;
c.data.loading = true;
//After page initially loads re-call server script to load data
c.server.get({
action: 'retrieve_data'
}).then(function(response) {
c.data.loading = false;
console.log('Response');
console.log(response);
c.data.values = response.data.values;
spUtil.recordWatch($scope, 'sn_hr_core_task', "", function(name,data) {
spUtil.update($scope);
})
});
}