Wiki-Quellcode von CreateTaskTemplateEndpoint
Zuletzt geändert von Daniel Herrmann am 2026/03/08 12:48
Verstecke letzte Bearbeiter
| author | version | line-number | content |
|---|---|---|---|
| |
1.1 | 1 | {{velocity wiki="false"}} |
| 2 | #if($xcontext.action == 'get') | ||
| 3 | #set ($discard = $response.setContentType('application/json')) | ||
| 4 | ## Get template and provider names | ||
| 5 | #set ($templateName = $request.templateName) | ||
| 6 | #if ("$!templateName" != '') | ||
| 7 | #set ($templateDoc = $xwiki.getDocument("TaskManager.TaskManagerTemplates.$!{templateName}Template")) | ||
| 8 | #set ($providerDoc = $xwiki.getDocument("TaskManager.TaskManagerTemplates.$!{templateName}TemplateProvider")) | ||
| 9 | #set ($templateExists = $xwiki.exists($templateDoc.getDocumentReference())) | ||
| 10 | #set ($providerExists = $xwiki.exists($providerDoc.getDocumentReference())) | ||
| 11 | #set ($responseJSON = { | ||
| 12 | 'templateDocument': {'reference': "$templateDoc", 'exists': $templateExists}, | ||
| 13 | 'providerDocument': {'reference': "$providerDoc", 'exists': $providerExists} | ||
| 14 | }) | ||
| 15 | #if ($providerExists) | ||
| 16 | $response.setStatus(409) | ||
| 17 | $jsontool.serialize($responseJSON) | ||
| 18 | #elseif ($templateDoc.hasAccessLevel('edit') && $providerDoc.hasAccessLevel('edit')) | ||
| 19 | #if (!$templateExists) | ||
| 20 | #set ($discard = $templateDoc.createNewObject('TaskManager.TaskManagerClass')) | ||
| 21 | #set ($discard = $templateDoc.setHidden(true)) | ||
| 22 | #set ($discard = $templateDoc.save('Create template', true)) | ||
| 23 | #end | ||
| 24 | ## If provider doesn't exist, copy the base provider and configure it | ||
| 25 | #if (!$providerExists) | ||
| 26 | #if ($xwiki.exists('TaskManager.TaskManagerTemplates.TaskManagerTemplateProvider')) | ||
| 27 | #set ($discard = $xwiki.copyDocument( | ||
| 28 | $xwiki.getDocument('TaskManager.TaskManagerTemplates.TaskManagerTemplateProvider').getDocumentReference(), | ||
| 29 | $providerDoc.getDocumentReference(), | ||
| 30 | null, true, false | ||
| 31 | )) | ||
| 32 | ## Reload the document to update its isNew() status. | ||
| 33 | #set ($providerDoc = $xwiki.getDocument("TaskManager.TaskManagerTemplates.$!{templateName}TemplateProvider")) | ||
| 34 | #else | ||
| 35 | #set ($discard = $responseJSON.get('providerDocument').put('exists', 'noProvider')) | ||
| 36 | #end | ||
| 37 | #set ($providerObj = $providerDoc.getObject('XWiki.TemplateProviderClass')) | ||
| 38 | #set ($discard = $providerDoc.setHidden(true)) | ||
| 39 | #if ("$!providerObj" == '') | ||
| 40 | #set ($discard = $providerDoc.createNewObject('XWiki.TemplateProviderClass')) | ||
| 41 | #set ($providerObj = $providerDoc.getObject('XWiki.TemplateProviderClass')) | ||
| 42 | ## Hardcoded defaults | ||
| 43 | #set ($discard = $providerObj.set('action', 'Edit')) | ||
| 44 | #set ($discard = $providerObj.set('terminal', 1)) | ||
| 45 | #set ($discard = $providerObj.set('icon', 'application_view_list')) | ||
| 46 | #set ($discard = $providerObj.set('creationRestrictions', 'TaskManager')) | ||
| 47 | #set ($discard = $providerObj.set('creationRestrictionsAsSuggestions', 0)) | ||
| 48 | #end | ||
| 49 | #set ($discard = $providerObj.set('name', $templateName)) | ||
| 50 | #set ($discard = $providerObj.set('template', $templateDoc.getFullName())) | ||
| 51 | #set ($discard = $providerDoc.save('Create template provider', true)) | ||
| 52 | #end | ||
| 53 | #set ($discard = $response.setStatus(200)) | ||
| 54 | $jsontool.serialize($responseJSON) | ||
| 55 | #else | ||
| 56 | #set ($discard = $response.setStatus(401)) | ||
| 57 | #end | ||
| 58 | #else | ||
| 59 | #set ($discard = $response.setStatus(400)) | ||
| 60 | #end | ||
| 61 | #end | ||
| 62 | {{/velocity}} |