Wiki-Quellcode von Dependencies

Zuletzt geändert von Daniel Herrmann am 2026/03/08 12:48

Zeige letzte Bearbeiter
1 {{velocity}}
2 ## The core will make available the following variables:
3 ## - $name[String] = the name of the displayed field ('dependencies')
4 ## - $prefix[String] = a prefix for the form field ('TaskCode.TaskClass_0_')
5 ## - $object[com.xpn.xwiki.api.Object] = the displayed object
6 ## - $field[com.xpn.xwiki.api.PropertyClass] = the displayed property
7 ## - $type[String] = the intended display mode ('view', 'edit', 'hidden', 'search', etc.)
8 ## - $value[DBList in this case] = the property value
9 ##
10 #set($discard = $xwiki.jsx.use('TaskManager.TaskManagerClass'))
11 #set($discard = $xwiki.ssx.use('TaskManager.TaskManagerClass'))
12 #macro(displayTaskAsDependency $taskid)
13 #set($taskpageref = $services.model.resolveDocument($taskid))
14 #if ($services.security.authorization.hasAccess('view', $xcontext.userReference, $taskpageref))
15 #set($taskpage = $xwiki.getDocument($taskpageref))
16 #set($task = $taskpage.getObject('TaskManager.TaskManagerClass'))
17 #if("$!task" == '')
18 #break
19 #end
20 #set($tasktitle = $task.getProperty('name').value)
21 #if ("$tasktitle" == '')
22 #set ($tasktitle = $taskpageref.name)
23 #end
24 #set($tasklink = $services.model.serialize($taskpageref,'compactwiki'))
25 #set($taskstatus = $task.getProperty('status').value)
26 #set($taskduedate = $task.display('duedate', 'view'))
27 #set($taskproject = $task.getProperty('project').value)
28 #if($type == 'view')
29 ## Begin a list in XWiki Syntax
30 * ## Without this space the * is not parsed as XWiki syntax
31 #elseif($type == 'edit')
32 <label class="xwiki-form-listclass" data-project="$escapetool.xml($services.rendering.escape($taskproject, 'xwiki/2.1'))" for="xwiki-form-dependencies-0-${foreach.index}">
33 <input
34 id="xwiki-form-dependencies-0-${foreach.index}"
35 value="${escapetool.xml($services.rendering.escape($taskid, 'xwiki/2.1'))}"
36 #foreach($dependency in $value)
37 #if($dependency == $taskid)
38 checked
39 #end
40 #end
41 name='TaskManager.TaskManagerClass_0_dependencies'
42 type='checkbox'
43 />
44 #end
45 <span class="task-manager-dependency-progress">$taskpage.display('progress', 'view')</span>
46 <span class="task-manager-status-$escapetool.xml($services.rendering.escape($taskstatus, 'xwiki/2.1'))">
47 #set ($statusKey = "TaskManager.TaskManagerClass_status_${taskstatus}")
48 #if ($services.localization.get($statusKey))
49 [${escapetool.xml($services.rendering.escape($services.localization.render($statusKey), 'xwiki/2.1'))}]
50 #else
51 [${escapetool.xml($services.rendering.escape($taskstatus, 'xwiki/2.1'))}]
52 #end
53 </span>
54 <span class="wikilink"><a href="$escapetool.xml($services.rendering.escape($taskpage.getURL('view'), 'xwiki/2.1'))">${escapetool.xml($services.rendering.escape($tasktitle, 'xwiki/2.1'))}</a></span>
55 ($services.rendering.escape($services.localization.render('TaskManager.TaskManagerClass_duedate'), 'xwiki/2.1') ${taskduedate})
56 #if($task.getProperty('duedate').value.before($datetool.date) && $taskstatus != 'Done')
57 <span class="task-manager-status-Late">
58 ${services.icon.render('bell')}
59 $services.rendering.escape(${services.localization.render('TaskManager.TaskManagerClass_status_Late')}, 'xwiki/2.1')
60 </span>
61 #end
62 #if($type == 'edit')
63 </label>
64 #end
65 #end
66 #end
67
68 {{html clean="false" wiki="true"}}
69 #if($type == 'edit')
70 #set($query = "from doc.object(TaskManager.TaskManagerClass) as task where doc.space <> 'TaskManager.TaskManagerTemplates' and doc.fullName <> :fullName and task.project <> '' order by task.duedate")
71 #set($results = $services.query.xwql($query).bindValue('fullName', $doc.fullName).execute())
72 #if($results.size() != 0)
73 <div id="TaskManager.TaskManagerClass_dependencies">
74 ## empty value to submit in case nothing is selected
75 <input type="hidden" name="TaskManager.TaskManagerClass_0_dependencies" value="" />
76 #foreach($taskid in $results)
77 #displayTaskAsDependency($taskid)
78 #end
79 </div>
80 #else
81 {{info}}$services.rendering.escape(${services.localization.render('TaskManager.TaskManagerClass_dependencies_nodependencies')}, 'xwiki/2.1'){{/info}}
82 #end
83 #else
84 #foreach($taskid in $value)
85 #displayTaskAsDependency($taskid)
86 #end
87 #end
88 {{/html}}
89
90 {{/velocity}}