Deactivate a document
Introduction
We have to :
- look if there are some live children, if no other language version is live
- delete the live contents (xml file) for the given document id and the given language
- delete the live resources for the given document id only if no other language version is live
- delete the language from the node corresponding to given the document id or all the node, if no other language version is live.
Implementation
It is implemented in a sequence of usecases to get all needed parameters, and uses the task concept to execute some ant task
Parameters
The parameters are string-value parameters
Required parameters:
- the document id
- the language
- the task id
usecase
They are implemented in the usecase sitmap (core)
Deactivate screen
URL :
{document-URL}?lenya.usecase=deactivate&lenya.step=showscreen
usecase sitemap:
<map:match pattern="deactivate" type="usecase"> <map:match pattern="showscreen" type="step"> <map:generate src="content/info/deactivate.xsp" type="serverpages"/> <map:transform src="xslt/info/deactivate.xsl"> <map:parameter name="use-request-parameters" value="true"/> </map:transform> <map:transform src="cocoon:/notification/{../../1}/deactivate.xsl"/> <map:transform src="cocoon://scheduler/{../../1}/{../../2}/{../../3}.xsl"/> <map:call resource="style-cms-page"/> </map:match> </map:match>
In the serverpage, we get the required parameters and if no other language version is live, we look for the live children.
The stylesheet xslt/info/deactivate.xsl
builds a form, if the requirement are achieved, else shows a message.
Deactivate confirmation
URL :
{document-URL}?lenya.usecase=deactivate&lenya.step=deactivate&...{source parameters}
usecase sitemap:
<map:match pattern="deactivate" type="usecase"> <map:match pattern="deactivate" type="step"> <map:act type="task"> <map:redirect-to session="true" uri="{request:requestURI}"/> </map:act> </map:match> </map:match>
The action org.apache.lenya.cms.cocoon.acting.TaskAction calls the execution of the ant task.
Ant Task
The ant target deactivateDocument
is in the publication :
{publication}/config/tasks/targets.xml
and depends on the target livedocumentpath
, to compute the live directory of the contents
For more information about the Ant task, see the documentation Ant Task and the Javadocs.