1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package info.magnolia.ui.admincentral.shellapp.pulse.task;
35
36 import info.magnolia.registry.RegistrationException;
37 import info.magnolia.task.Task;
38 import info.magnolia.task.definition.TaskDefinition;
39 import info.magnolia.task.definition.registry.TaskDefinitionRegistry;
40 import info.magnolia.ui.api.ioc.AdmincentralScoped;
41
42 import java.text.MessageFormat;
43
44 import javax.inject.Inject;
45
46 import org.apache.commons.lang3.BooleanUtils;
47 import org.apache.commons.lang3.StringUtils;
48 import org.slf4j.Logger;
49 import org.slf4j.LoggerFactory;
50
51
52
53
54 @AdmincentralScoped
55 public class TaskTypeHelper {
56
57 private static final Logger log = LoggerFactory.getLogger(TaskTypeHelper.class);
58
59 private TaskDefinitionRegistry taskDefinitionRegistry;
60
61 @Inject
62 public TaskTypeHelper(TaskDefinitionRegistry taskDefinitionRegistry) {
63 this.taskDefinitionRegistry = taskDefinitionRegistry;
64 }
65
66
67
68
69 public String getTitle(Task task) {
70
71 String title = task.getName();
72
73 if(title == null) {
74 return null;
75 }
76
77 try {
78 TaskDefinition definition = taskDefinitionRegistry.get(task.getName());
79 if (definition != null) {
80 title = definition.getTitle();
81
82
83 if("publish".equals(task.getName())) {
84 boolean isDeletion = BooleanUtils.toBooleanDefaultIfNull((Boolean) task.getContent().get("isDeletion"), false);
85 title = MessageFormat.format(title, BooleanUtils.toInteger(isDeletion));
86 }
87 }
88 } catch (RegistrationException e) {
89 log.error("Could not get task definition for {}.", task.getName(), e);
90 }
91 String comment = (StringUtils.isNotEmpty(task.getComment())) ? "|" + task.getComment() : "";
92 return title + comment;
93 }
94 }