view software/eXist/webapp/mpdl/_stuff/futureDev/rest-doc-operation.xql @ 7:5589d865af7a

Erstellung XQL/XSL Applikation
author Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
date Tue, 08 Feb 2011 15:16:46 +0100
parents
children
line wrap: on
line source

xquery version "1.0";

import module namespace mpdl-time = "http://www.mpiwg-berlin.mpg.de/ns/mpdl/util/time" at "../util/time.xql";

declare namespace file = "http://exist-db.org/xquery/file";
declare namespace request="http://exist-db.org/xquery/request";
declare namespace session="http://exist-db.org/xquery/session";
declare namespace util = "http://exist-db.org/xquery/util";
declare namespace xmldb = "http://exist-db.org/xquery/xmldb";

let $login := xmldb:authenticate("xmldb:exist:///db", "admin", "")

let $operation := request:get-parameter("operation", "")
let $docBase := request:get-parameter("docBase", "")
let $language := request:get-parameter("language", "")
let $fileName := request:get-parameter("fileName", "")

let $eSciDocCookieId := request:get-cookie-value("escidocCookie")

let $srcLocalFileName := request:get-uploaded-file-name("srcLocalFileName")
let $srcExistUploadFileJavaObject := request:get-uploaded-file("srcLocalFileName")
let $srcExistUploadFileName := string(<b>{$srcExistUploadFileJavaObject}</b>)
let $srcExistUploadFileUrl := concat("file://", $srcExistUploadFileName)

let $reqSrcUrl := request:get-parameter("srcUrl", "")
let $srcUrl :=
  if ($reqSrcUrl = '')
  then $srcExistUploadFileUrl
  else $reqSrcUrl

let $error :=
  if ($eSciDocCookieId = '' or empty($eSciDocCookieId))
  then <bla>No login context available. Please <a href="login-exist.xql">login</a> before you do an operation</bla>
  else if(($operation = 'updateExist') and ($srcUrl = ''))
  then "please specify your source"
  else if(($operation = 'updateExist' or $operation = 'delete') and ($fileName = ''))
  then "please specify your destination document name"
  else "no"

let $jobId := 
  if($error = 'no' and $operation = 'updateExist')
  then mpdldoc:do($operation, $srcUrl, $srcLocalFileName, $docBase, $language, $fileName, $eSciDocCookieId)
  else if($error = 'no' and $operation = 'deleteExist')
  then mpdldoc:do($operation, 'empty', 'empty', $docBase, $language, $fileName, $eSciDocCookieId)
  else ()
let $redirectUrl := <a href="../scheduler/get-jobs.xql?id={$jobId}">here</a>
let $resultHtml := 
  if ($error = 'no')
  then <div>See the status of your document operation {$redirectUrl}</div>
  else <div><b>Error in your document operation:</b> {$error}</div> 

let $title := "MPDL: eXist document management"
return
<html>
<head>
<title>{$title}</title>
</head>
<body>
  <h1>{$title}</h1>
  {$resultHtml} 
  <br/>
  <br/>{$eSciDocCookieId}
  <br/>
  <hr/>
  Back to <a href="rest-doc-operation.xql">document operation page</a>, see the <a href="rest-doc-operation.xql?_source=yes">XQuery source</a> of this page, if you find a bug <a href="https://itgroup.mpiwg-berlin.mpg.de:8080/tracs/mpdl-project-software/newticket">let us know</a>
</body>
</html>