Changes for page api
Last modified by Ophion Admin on 2026/10/06 19:32
From version 5.1
edited by Ophion Admin
on 2026/10/06 16:20
on 2026/10/06 16:20
Change comment:
There is no comment for this version
To version 4.1
edited by Ophion Admin
on 2026/10/06 16:02
on 2026/10/06 16:02
Change comment:
There is no comment for this version
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -16,47 +16,10 @@ 16 16 #end 17 17 #end 18 18 #end 19 -## Current state of the form 20 -#set ($name = "$!request.name") 21 -#set ($sourceClass = "$!request.sourceClass") 22 -#set ($filterField = "$!request.filterField") 23 -#set ($filterValue = "$!request.filterValue") 24 -## Preselect the first app on the first page load 25 -#if ($sourceClass == '') 26 - #foreach ($key in $apps.keySet()) 27 - #set ($sourceClass = $key) 28 - #break 29 - #end 30 -#end 31 -## Fields of the selected source app 32 -#set ($fields = []) 33 -#if ($apps.containsKey($sourceClass)) 34 - #foreach ($p in $xwiki.getDocument($sourceClass).getxWikiClass().properties) 35 - #set ($discard = $fields.add($p.name)) 36 - #end 37 -#end 38 -## Reset the filter if the field does not belong to the selected app 39 -#if (!$fields.contains($filterField)) 40 - #set ($filterField = '') 41 - #set ($filterValue = '') 42 -#end 43 -## Existing values of the selected field 44 -#set ($values = []) 45 -#if ($filterField != '') 46 - #set ($template = $sourceClass.replaceAll('Class$', 'Template')) 47 - #set ($hql = "select distinct doc.fullName from XWikiDocument doc, BaseObject obj where obj.name = doc.fullName and obj.className = :cls and doc.fullName <> :tpl order by doc.fullName") 48 - #foreach ($entryName in $services.query.hql($hql).bindValue('cls', $sourceClass).bindValue('tpl', $template).execute()) 49 - #set ($entry = $xwiki.getDocument($entryName)) 50 - #if ($entry) 51 - #set ($value = "$!entry.getObject($sourceClass).getValue($filterField)") 52 - #if ($value != '' && !$values.contains($value)) 53 - #set ($discard = $values.add($value)) 54 - #end 55 - #end 56 - #end 57 -#end 58 58 #set ($errorMsg = '') 59 59 #if ("$!request.createEntry" == '1') 21 + #set ($name = "$!request.name") 22 + #set ($sourceClass = "$!request.sourceClass") 60 60 #if (!$services.csrf.isTokenValid("$!request.form_token")) 61 61 #set ($errorMsg = 'Invalid form token, please try again.') 62 62 #elseif (!$name.matches($namePattern)) ... ... @@ -63,8 +63,6 @@ 63 63 #set ($errorMsg = 'Only lowercase letters, digits and hyphens are allowed.') 64 64 #elseif (!$apps.containsKey($sourceClass)) 65 65 #set ($errorMsg = 'Invalid source application.') 66 - #elseif ($filterField != '' && !$values.contains($filterValue)) 67 - #set ($errorMsg = 'Please select a filter value.') 68 68 #else 69 69 #set ($ref = $services.model.createDocumentReference('', [$appSpace, $name], 'WebHome')) 70 70 #if ($xwiki.exists($ref)) ... ... @@ -76,8 +76,6 @@ 76 76 #set ($discard = $newDoc.setParent("${appSpace}.WebHome")) 77 77 #set ($newObj = $newDoc.newObject($appClass)) 78 78 #set ($discard = $newObj.set('sourceClass', $sourceClass)) 79 - #set ($discard = $newObj.set('filterField', $filterField)) 80 - #set ($discard = $newObj.set('filterValue', $filterValue)) 81 81 #set ($discard = $newDoc.save('Created API entry')) 82 82 $response.sendRedirect($doc.getURL()) 83 83 #end ... ... @@ -92,29 +92,16 @@ 92 92 ul.actions a.action.add, a.action.add { display: none !important; } 93 93 </style> 94 94 <form action="$doc.getURL()" method="post" class="form-inline"> 54 + <input type="hidden" name="createEntry" value="1"/> 95 95 <input type="hidden" name="form_token" value="$!services.csrf.token"/> 96 - <!-- Changing the app or the field reloads the form without creating anything --> 97 - <select name="sourceClass" class="form-control" onchange="this.form.submit()"> 56 + <select name="sourceClass" class="form-control"> 98 98 #foreach ($app in $apps.entrySet()) 99 - <option value="$escapetool.xml($app.key)" #if ($app.key == $sourceClass)selected="selected"#end>$escapetool.xml($app.value)</option>58 + <option value="$escapetool.xml($app.key)">$escapetool.xml($app.value)</option> 100 100 #end 101 101 </select> 102 - <select name="filterField" class="form-control" onchange="this.form.submit()"> 103 - <option value="">(no filter)</option> 104 - #foreach ($field in $fields) 105 - <option value="$escapetool.xml($field)" #if ($field == $filterField)selected="selected"#end>$escapetool.xml($field)</option> 106 - #end 107 - </select> 108 - #if ($filterField != '') 109 - <select name="filterValue" class="form-control"> 110 - #foreach ($value in $values) 111 - <option value="$escapetool.xml($value)" #if ($value == $filterValue)selected="selected"#end>$escapetool.xml($value)</option> 112 - #end 113 - </select> 114 - #end 115 - <input type="text" name="name" class="form-control" required="required" value="$escapetool.xml($name)" 61 + <input type="text" name="name" class="form-control" required="required" 116 116 pattern="$namePattern" title="Lowercase letters, digits and hyphens only"/> 117 - < buttontype="submit"name="createEntry" value="1" class="btn btn-primary">Create API</button>63 + <input type="submit" class="btn btn-primary" value="Create API"/> 118 118 </form> 119 119 {{/html}} 120 120 {{/velocity}}