Modifications pour le document Planificateur de traitements

Modifié par superadmin le 2026/01/29 15:29

Depuis la version 2.1
modifié par superadmin
sur 2026/01/29 15:29
Commentaire de modification : Imported from XAR
À la version 1.1
modifié par superadmin
sur 2026/01/29 15:25
Commentaire de modification : Install extension [org.xwiki.platform:xwiki-platform-scheduler-ui/17.10.2]

Résumé

Détails

Propriétés de la Page
Contenu
... ... @@ -2,11 +2,12 @@
2 2  ## First, set a shortcut to our Scheduler plugin
3 3  ##
4 4  #set ($scheduler = $xwiki.scheduler)
5 +#set ($schedulerEnabled = $scheduler.enabled)
5 5  ##
6 6  ## If the sheet is called with an action ($request.do), let us first process this action
7 7  ## Possible values are : "schedule", "pause", "resume", "unschedule", "delete"
8 8  ##
9 -#if ("$!request.do" != '' && "$!request.which" != '')
10 +#if ($schedulerEnabled && "$!request.do" != '' && "$!request.which" != '')
10 10   ##
11 11   ## Obtain the Job document and object for which the action has been called
12 12   ##
... ... @@ -13,7 +13,13 @@
13 13   #set ($tJobHolder = $request.which)
14 14   #set ($jobDoc = $xwiki.getDocument($tJobHolder))
15 15   #set ($jobObj = $jobDoc.getObject('XWiki.SchedulerJobClass'))
16 - #if ($request.do == 'schedule')
17 + #if (!$services.csrf.isTokenValid($request.form_token))
18 + ##
19 + ## Check that the CSRF token matches the user before any operation
20 + ##
21 + {{error}}$services.localization.render('xe.scheduler.invalidToken'){{/error}}
22 +
23 + #elseif ($request.do == 'schedule')
17 17   ##
18 18   ## Schedule a job
19 19   ##
... ... @@ -97,6 +97,12 @@
97 97  #end
98 98  $services.localization.render('xe.scheduler.welcome')
99 99  
107 +#if (!$schedulerEnabled)
108 +{{warning}}
109 + {{translation key="scheduler.disabled"/}}
110 +{{/warning}}
111 +
112 +#end
100 100  = $services.localization.render('xe.scheduler.jobs.list') =
101 101  
102 102  ##
... ... @@ -103,35 +103,35 @@
103 103  ## Retrieve all scheduler jobs
104 104  ## Display their name, status, possible next fire time, and available actions
105 105  ##
106 -|=(%scope="col"%)$services.localization.render('xe.scheduler.jobs.name')|=(%scope="col"%)$services.localization.render('xe.scheduler.jobs.status')|=(%scope="col"%)$services.localization.render('xe.scheduler.jobs.next')|=(%scope="col"%)$services.localization.render('xe.scheduler.jobs.actions')
119 +|=(%scope="col"%)$services.localization.render('xe.scheduler.jobs.name')#if ($schedulerEnabled)|=(%scope="col"%)$services.localization.render('xe.scheduler.jobs.status')|=(%scope="col"%)$services.localization.render('xe.scheduler.jobs.next')#end|=(%scope="col"%)$services.localization.render('xe.scheduler.jobs.actions')
107 107  #foreach ($docName in $services.query.xwql('from doc.object(XWiki.SchedulerJobClass) as jobs where doc.fullName <> ''XWiki.SchedulerJobTemplate''').execute())
108 - #set ($actions = {})
109 109   #set ($jobHolder = $xwiki.getDocument($docName))
110 110   #set ($job = $jobHolder.getObject('XWiki.SchedulerJobClass'))
111 - #set ($status = $scheduler.getJobStatus($job).value)
112 - #if ($status == '')
113 - #set ($status = 'None')
123 + #if ($schedulerEnabled)
124 + #set ($status = $scheduler.getJobStatus($job).value)
125 + #if ($status == '')
126 + #set ($status = 'None')
127 + #end
128 + #set ($firetime = '')
129 + #if ($status != 'None')
130 + #set ($firetime = $scheduler.getNextFireTime($job))
131 + #else
132 + #set ($firetime = $services.localization.render('xe.scheduler.jobs.next.undefined'))
133 + #end
134 + #set ($actions = ['trigger'])
135 + #if ($status == 'None')
136 + #set ($ok = $actions.add('schedule'))
137 + #elseif($status == 'Normal')
138 + #set ($ok = $actions.addAll(['pause', 'unschedule']))
139 + #elseif ($status == 'Paused')
140 + #set ($ok = $actions.addAll(['resume', 'unschedule']))
141 + #end
142 + #set ($ok = $actions.add('delete'))
114 114   #end
115 - #set ($firetime = '')
116 - #if ($status != 'None')
117 - #set ($firetime = $scheduler.getNextFireTime($job))
118 - #else
119 - #set ($firetime = $services.localization.render('xe.scheduler.jobs.next.undefined'))
120 - #end
121 - #set ($ok = $!actions.put('trigger', $doc.getURL('view', "do=trigger&which=${jobHolder.fullName}")))
122 - #if ($status == 'None')
123 - #set ($ok = $!actions.put('schedule', $doc.getURL('view', "do=schedule&which=${jobHolder.fullName}")))
124 - #elseif($status == 'Normal')
125 - #set ($ok = $!actions.put('pause', $doc.getURL('view', "do=pause&which=${jobHolder.fullName}")))
126 - #set ($ok = $!actions.put('unschedule', $doc.getURL('view', "do=unschedule&which=${jobHolder.fullName}")))
127 - #elseif ($status == 'Paused')
128 - #set ($ok = $!actions.put('resume', $doc.getURL('view', "do=resume&which=${jobHolder.fullName}")))
129 - #set ($ok = $!actions.put('unschedule', $doc.getURL('view', "do=unschedule&which=${jobHolder.fullName}")))
130 - #end
131 - #set ($ok = $!actions.put('delete', $doc.getURL('view', "do=delete&which=${jobHolder.fullName}")))
132 -|$job.get('jobName')|$status|$firetime|**$services.localization.render('xe.scheduler.jobs.actions.access')** [[$services.localization.render('xe.scheduler.jobs.actions.view')>>$jobHolder.fullName]]#if($jobHolder.hasAccessLevel('programming')) [[$services.localization.render('xe.scheduler.jobs.actions.edit')>>path:${jobHolder.getURL('edit')}]]#end **$services.localization.render('xe.scheduler.jobs.actions.manage')**#foreach($action in $actions.entrySet()) [[$services.localization.render("xe.scheduler.jobs.actions.${action.key}")>>path:${action.value}]]#end
144 +|$job.get('jobName')#if($schedulerEnabled)|$status|$firetime#end|**$services.localization.render('xe.scheduler.jobs.actions.access')** [[$services.localization.render('xe.scheduler.jobs.actions.view')>>$services.rendering.escape($jobHolder.fullName, 'xwiki/2.1')]]#if($jobHolder.hasAccessLevel('programming'))#if ($schedulerEnabled) [[$services.localization.render('xe.scheduler.jobs.actions.edit')>>path:${jobHolder.getURL('edit')}]]#end#end#if ($schedulerEnabled) **$services.localization.render('xe.scheduler.jobs.actions.manage')**#foreach($action in $actions) [[$services.localization.render("xe.scheduler.jobs.actions.$action")>>path:$doc.getURL('view', $escapetool.url({'do': $action, 'which': $jobHolder.fullName, 'form_token': $services.csrf.token}))]]#end#end
133 133  
134 134  #end
147 +#if ($schedulerEnabled)
135 135  #if ($doc.hasAccessLevel('programming'))
136 136  ##
137 137  ## Job creation is offered only for programmers, because the job page needs to be saved
... ... @@ -154,9 +154,9 @@
154 154   <input type="hidden" name="template" value="XWiki.SchedulerJobTemplate" />
155 155   <input type="hidden" name="sheet" value="1" />
156 156   <input type="hidden" name="space" value="Scheduler"/>
157 - <label class="hidden" for="page">$services.localization.render('xe.scheduler.jobs.create.nameTip')</label>
170 + <label class="sr-only" for="page">$services.localization.render('xe.scheduler.jobs.create.nameTip')</label>
158 158   <input id="page" name="page" size="30" type="text"
159 - value="$escapetool.xml($services.localization.render('xe.scheduler.jobs.create.nameTip'))" />
172 + placeholder="$escapetool.xml($services.localization.render('xe.scheduler.jobs.create.nameTip'))" />
160 160   <span class="buttonwrapper">
161 161   <input type="submit" class="btn btn-success"
162 162   value="$escapetool.xml($services.localization.render('xe.scheduler.jobs.create.submit'))"/>
... ... @@ -169,4 +169,5 @@
169 169   {{warning}}$services.localization.render('xe.scheduler.jobs.warning'){{/warning}}
170 170  
171 171  #end
185 +#end
172 172  {{/velocity}}