xquery version "1.0"; declare namespace session="http://exist-db.org/xquery/session"; declare namespace util="http://exist-db.org/xquery/util"; declare namespace i18n="http://apache.org/cocoon/i18n/2.1"; import module namespace classmenu="http://www.risten.no/shared/classmenu" at "../xquery/classmenu.xqm"; import module namespace langmenu="http://www.risten.no/shared/langmenu" at "../xquery/langmenu.xqm"; import module namespace ristenutil="http://www.risten.no/shared/util" at "../xquery/ristenutil.xqm"; (: Function to delete the language/dictionary entry, considering the number : of senses, and in the future synonyms and other related words. :) declare function local:delete-lang-entry( $lang as xs:string, $langid as xs:string, $centerid as xs:string ) { let $doc := ristenutil:get-doc($lang), $entry := document($doc)//entry[@id = $langid], $numofsenses := count($entry//sense) let $user := session:get-attribute("user"), $date := ristenutil:dateTime(), $whattext := concat("Deleted the sense ", $centerid) return if ( $numofsenses > 1 ) then ( (: delete only the relevant sense :) update delete $entry//sense[@idref = $centerid], update insert into $entry/changes ) else (: delete the whole entry :) update delete $entry }; (: Function to delete the term record entry, considering the number : of languages. :) declare function local:delete-term-record( $lang as xs:string, $langid as xs:string, $centerid as xs:string) { let $doc := ristenutil:get-doc('center'), $entry := document($doc)//entry[@id = $centerid], $numoflangs := count($entry/entryref) let $user := session:get-attribute("user"), $date := ristenutil:dateTime(), $whattext := concat("Removed the term ref for language ", $lang) return if ( $numoflangs > 1 ) then ( (: delete only the relevant sense :) update delete $entry/entryref[@xml:lang = $lang], update insert into $entry/changes ) else (: delete the whole entry :) update delete $entry }; (: Main function - gathers the data required to build and pre-polutate : the form, :) declare function local:main() as element()+ { (: previous selections are stored in session attributes, and used for preselecting the same values as in the previous edit :) let $centerid := request:get-parameter("centerid", "" ), $langid := request:get-parameter("langid", "" ), $lang := request:get-parameter("lang", ""), $date := current-dateTime() return ( { local:delete-lang-entry( $lang, $langid, $centerid) } { local:delete-term-record($lang, $langid, $centerid) } Entry deleted!
CenterID: {$centerid}
LangID: {$langid}
Lang: {$lang}
) };
{ let $start := util:system-time() return ( local:main(),

SearchTime { round-half-to-even( seconds-from-duration( util:system-time()-$start) , 3)}

) }