Wiki-Quellcode von Dependencies
Zuletzt geändert von Daniel Herrmann am 2026/03/08 12:48
Verstecke letzte Bearbeiter
| author | version | line-number | content |
|---|---|---|---|
| |
1.1 | 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}} |