apache > lenya
 

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 deactivateDocumentis in the publication :

{publication}/config/tasks/targets.xml

and depends on the target livedocumentpath, to compute the live directory of the contents

More about ant task, see the documentation Ant Task and the Javadoc