Auf der Registerkarte "Verfolgung"in AEM Forms Workspace werden die Details der Prozessinstanzen angezeigt, an denen der angemeldete Benutzer beteiligt ist. Um die Verfolgungstabellen anzuzeigen, wählen Sie zunächst einen Prozessnamen im linken Fensterbereich aus, um die zugehörige Instanzenliste im mittleren Bereich anzuzeigen. Wählen Sie eine Prozessinstanz aus, um im rechten Fensterbereich eine Tabelle von Aufgaben anzuzeigen, die von dieser Instanz generiert werden. Standardmäßig enthalten die Tabellenspalten die folgenden Aufgabenattribute (das entsprechende Attribut im Aufgabenmodell wird in Klammern angegeben):
taskId
)stepName
)instructions
)selectedRoute
)createTime
)completeTime
)currentAssignment.queueOwner
)Die übrigen Attribute im Aufgabenmodell, die für die Anzeige in der Aufgabentabelle verfügbar sind, lauten:
actionInstanceId |
isOpenFullScreen |
reminderCount |
classOfTask |
isOwner |
routeList |
consultGroupId |
isRouteSelectionRequired |
savedFormCount |
contentType |
isShowAttachments |
serializedImageTicket |
createTime |
isStartTask |
serviceName |
creationId |
isVisible |
serviceTitle |
currentAssignment |
nextReminder |
showACLActions |
deadline |
numForms |
showDirectActions |
description |
numFormsToBeSaved |
status |
displayName |
outOfOfficeUserId |
summaryUrl |
forwardGroupId |
outOfOfficeUserName |
supportsSave |
isApprovalUI |
priority |
taskACL |
isCustomUI |
processInstanceId |
taskFormType |
isDefaultImage |
processInstanceStatus |
taskUserInfo |
isLocked |
processVariables |
|
isMustOpenToComplete |
readerSubmitOptions |
Für die folgenden Anpassungen in der Aufgabentabelle müssen Sie semantische Änderungen im Quellcode vornehmen. Siehe Einführung in das Anpassen von AEM Forms Workspace, wie Sie semantische Änderungen mithilfe des Workspace-SDK vornehmen und ein minimiertes Paket aus der geänderten Quelle erstellen können.
Um die in der Tabelle angezeigten Aufgabenattribute und ihre Reihenfolge zu ändern, konfigurieren Sie die Datei /ws/js/runtime/templates/processinstancehistory.html:
<table>
<thead>
<tr>
<!-- put the column headings in order here, for example-->
<th><%= $.t('history.fixedTaskTableHeader.taskName')%></th>
<th><%= $.t('history.fixedTaskTableHeader.taskInstructions')%></th>
<th><%= $.t('history.fixedTaskTableHeader.taskRoute')%></th>
<th><%= $.t('history.fixedTaskTableHeader.taskCreateTime')%></th>
<th><%= $.t('history.fixedTaskTableHeader.taskCompleteTime')%></th>
</tr>
</thead>
</table>
<table>
<tbody>
<%_.each(obj, function(task){%>
<tr>
<!-- Put the task attributes in the order of headings, for example -->
<td><%= task.stepName %></td>
<td><%= task.instructions %></td>
<td><%= !task.selectedRoute?'':(task.selectedRoute=='null'?'Default':task.selectedRoute) %></td>
<td><%= task.createTime?task.formattedCreateTime:'' %></td>
<td><%= task.completeTime? task.formattedCompleteTime:'' %></td>
</tr>
<%});%>
</tbody>
</table>
So sortieren Sie die Aufgabenlistentabelle durch Klicken auf die Spaltenüberschrift:
Registrieren Sie einen click-Handler für .fixedTaskTableHeader th
in der Datei js/runtime/views/processinstancehistory.js
.
events: {
//other handlers
"click .fixedTaskTableHeader th": "onTaskTableHeaderClick",
//other handlers
}
Rufen Sie im Handler die Funktion onTaskTableHeaderClick
von js/runtime/util/history.js
auf.
onTaskTableHeaderClick: function (event) {
history.onTaskTableHeaderClick(event);
}
Machen Sie die TaskTableHeaderClick
-Methode in js/runtime/util/history.js
verfügbar.
Die Methode sucht nach dem task-Attribut im Klick-Ereignis, sortiert die tasklist nach diesem Attribut und gibt die Aufgabentabelle mit der sortierten tasklist aus.
Die Sortierung erfolgt mit der Backbone-Sortierfunktion auf der tasklist-Sammlung, indem eine Komparator-Funktion bereitgestellt wird.
return {
//other methods
onTaskTableHeaderClick : onTaskTableHeaderClick,
//other methods
};
onTaskTableHeaderClick = function (event) {
var target = $(event.target),
comparator,
attribute;
if(target.hasClass('taskName')){
attribute = 'stepName';
} else if(target.hasClass('taskInstructions')){
attribute = 'instructions';
} else if(target.hasClass('taskRoute')){
attribute = 'selectedRoute';
} else if(target.hasClass('taskCreateTime')){
attribute = 'createTime';
} else if(target.hasClass('taskCompleteTime')){
attribute = 'completeTime';
}
taskList.comparator = function (task) {
return task.get(attribute);
};
taskList.sort();
render();
};