Commit f4761886 authored by Wolfgang's avatar Wolfgang
Browse files

Initial commit

parents
Loading
Loading
Loading
Loading
Loading

.existdb.json

0 → 100644
+20 −0
Original line number Diff line number Diff line
{
    "servers": {
        "localhost": {
            "server": "http://localhost:8080/exist",
            "user": "admin",
            "password": ""
        }
    },
    "sync": {
        "server": "localhost",
        "root": "/db/apps/dodis-facets",
        "active": true,
        "ignore": [
            ".existdb.json",
            ".git/**",
            "node_modules/**",
            "bower_components/**"
        ]
    }
}

build.xml

0 → 100644
+12 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="UTF-8"?>
<project name="dodis-facets" default="xar">
    <xmlproperty file="expath-pkg.xml"/>
    <property name="project.version" value="${package(version)}"/>
    <property name="project.app" value="${package(abbrev)}"/>
    <property name="build.dir" value="build"/>
    <target name="xar">
        <mkdir dir="${build.dir}"/>
        <zip basedir="." destfile="${build.dir}/${project.app}-${project.version}.xar" excludes="${build.dir}/*"/>
    </target>
</project>
 No newline at end of file

collection.xconf

0 → 100644
+38 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="UTF-8"?>
<collection xmlns="http://exist-db.org/collection-config/1.0">
    <index xmlns:tei="http://www.tei-c.org/ns/1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:dbk="http://docbook.org/ns/docbook">
        <fulltext default="none" attributes="false"/>
        <lucene>
            <module uri="http://teipublisher.com/index" prefix="nav" at="index.xql"/>
            <text match="/tei:TEI/tei:text">
                <ignore qname="tei:div"/>
                <field name="title" expression="nav:get-metadata(ancestor::tei:TEI, 'title')"/>
                <field name="author" expression="nav:get-metadata(ancestor::tei:TEI, 'author')"/>
                <field name="language" expression="nav:get-metadata(ancestor::tei:TEI, 'language')"/>
                <field name="date" expression="nav:get-metadata(ancestor::tei:TEI, 'date')"/>
                <field name="file" expression="util:document-name(.)"/>
                <facet dimension="genre" expression="nav:get-metadata(ancestor::tei:TEI, 'genre')" hierarchical="yes"/>
                <facet dimension="language" expression="nav:get-metadata(ancestor::tei:TEI, 'language')"/>
                <facet dimension="persons-mentioned" expression="nav:get-metadata(ancestor::tei:TEI, 'persons-mentioned')"/>
                <facet dimension="places-mentioned" expression="nav:get-metadata(ancestor::tei:TEI, 'places-mentioned')"/>
                <facet dimension="organizations-mentioned" expression="nav:get-metadata(ancestor::tei:TEI, 'organizations-mentioned')"/>
            </text>
            <text qname="tei:div">
                <ignore qname="tei:div"/>
                <facet dimension="genre" expression="nav:get-metadata(ancestor::tei:TEI, 'genre')" hierarchical="yes"/>
                <facet dimension="language" expression="nav:get-metadata(ancestor::tei:TEI, 'language')"/>
            </text>
            <text qname="tei:head"/>
            <text match="//tei:titleStmt/tei:title"/>
            <text match="//tei:msDesc/tei:head"/>
            <text qname="dbk:section">
                <field name="file" expression="util:document-name(.)"/>
                <field name="title" expression="nav:get-metadata((ancestor::dbk:book|ancestor::dbk:article)[1], 'title')"/>
                <facet dimension="genre" expression="nav:get-metadata((ancestor::dbk:book|ancestor::dbk:article)[1], 'genre')" hierarchical="yes"/>
                <facet dimension="language" expression="nav:get-metadata((ancestor::dbk:book|ancestor::dbk:article)[1], 'language')"/>
            </text>
            <text qname="dbk:title"/>
        </lucene>
    </index>
</collection>
 No newline at end of file

controller.xql

0 → 100644
+243 −0
Original line number Diff line number Diff line
xquery version "3.0";

import module namespace login="http://exist-db.org/xquery/login" at "resource:org/exist/xquery/modules/persistentlogin/login.xql";
import module namespace config="http://www.tei-c.org/tei-simple/config" at "modules/config.xqm";
import module namespace pages="http://www.tei-c.org/tei-simple/pages" at "modules/lib/pages.xql";
import module namespace tpu="http://www.tei-c.org/tei-publisher/util" at "modules/lib/util.xql";

declare variable $exist:path external;
declare variable $exist:resource external;
declare variable $exist:controller external;
declare variable $exist:prefix external;
declare variable $exist:root external;

declare variable $logout := request:get-parameter("logout", ());
declare variable $login := request:get-parameter("user", ());

declare function local:get-template($doc as xs:string) {
    let $template := request:get-parameter("template", ())
    return
        if ($template) then
            $template
        else
            let $document := pages:get-document($doc)
            let $config := tpu:parse-pi($document, request:get-parameter("view", ()))
            return
                $config?template
};


if ($exist:path eq '') then
    <dispatch xmlns="http://exist.sourceforge.net/NS/exist">
        <redirect url="{request:get-uri()}/"/>
    </dispatch>

else if ($exist:path eq "/") then
    (: forward root path to index.xql :)
    <dispatch xmlns="http://exist.sourceforge.net/NS/exist">
        <redirect url="index.html"/>
    </dispatch>

(:
 : Login a user via AJAX. Just returns a 401 if login fails.
 :)
else if ($exist:resource eq 'login') then (
    let $loggedIn := login:set-user($config:login-domain, (), false())
    let $user := request:get-attribute($config:login-domain || ".user")
    return (
        util:declare-option("exist:serialize", "method=json"),
        try {
            <status>
                <user>{$user}</user>
                {
                    if ($user) then (
                        <group>{sm:get-user-groups($user)}</group>,
                        <dba>{sm:is-dba($user)}</dba>
                    ) else
                        ()
                }
            </status>
        } catch * {
            response:set-status-code(401),
            <status>{$err:description}</status>
        }
    )

) else if (contains($exist:path, "/$shared/")) then
    <dispatch xmlns="http://exist.sourceforge.net/NS/exist">
        <forward url="/shared-resources/{substring-after($exist:path, '/$shared/')}"/>
    </dispatch>

else if (matches($exist:path, "^.*/(resources|transform)/.*$")) then
    let $dir := replace($exist:path, "^.*/(resources|transform)/.*$", "$1")
    return
        <dispatch xmlns="http://exist.sourceforge.net/NS/exist">
            <forward url="{$exist:controller}/{$dir}/{substring-after($exist:path, '/' || $dir || '/')}"/>
        </dispatch>

else if (contains($exist:path, "/images/")) then
     <dispatch xmlns="http://exist.sourceforge.net/NS/exist">
        <forward url="{$exist:controller}/resources/images/{substring-after($exist:path, '/images/')}"/>
    </dispatch>

else if (ends-with($exist:resource, ".xql")) then (
    login:set-user($config:login-domain, (), false()),
    <dispatch xmlns="http://exist.sourceforge.net/NS/exist">
        <forward url="{$exist:controller}/modules/{substring-after($exist:path, '/modules/')}"/>
        <cache-control cache="no"/>
    </dispatch>

)

else if (contains($exist:path, "/components")) then
    <dispatch xmlns="http://exist.sourceforge.net/NS/exist">
        <forward url="{$exist:controller}/../tei-publisher/components/{substring-after($exist:path, '/components/')}"/>
    </dispatch>

else if (contains($exist:path, "/webcomponents")) then
    <dispatch xmlns="http://exist.sourceforge.net/NS/exist">
        <forward url="{$exist:controller}/webcomponents/{substring-after($exist:path, '/webcomponents/')}"/>
    </dispatch>

else if ($logout or $login) then (
    login:set-user($config:login-domain, (), false()),
    (: redirect successful login attempts to the original page, but prevent redirection to non-local websites:)
    let $referer := request:get-header("Referer")
    let $this-servers-scheme-and-domain := request:get-scheme() || "://" || request:get-server-name()
    return
        if (starts-with($referer, $this-servers-scheme-and-domain)) then
            <dispatch xmlns="http://exist.sourceforge.net/NS/exist">
                <redirect url="{request:get-header("Referer")}"/>
            </dispatch>
        else
            <dispatch xmlns="http://exist.sourceforge.net/NS/exist">
                <redirect url="{replace(request:get-uri(), "^(.*)\?", "$1")}"/>
            </dispatch>

) else if (matches($exist:resource, "\.(png|jpg|jpeg|gif|tif|tiff|txt)$", "s")) then
    <dispatch xmlns="http://exist.sourceforge.net/NS/exist">
       <forward url="{$exist:controller}/data/{$exist:path}"/>
   </dispatch>

else if (ends-with($exist:resource, ".html")) then (
    login:set-user($config:login-domain, (), false()),
    let $resource :=
        if (contains($exist:path, "/templates/")) then
            "templates/" || $exist:resource
        else
            $exist:resource
    return
        (: the html page is run through view.xql to expand templates :)
        <dispatch xmlns="http://exist.sourceforge.net/NS/exist">
            <forward url="{$exist:controller}/{$resource}"/>
            <view>
                <forward url="{$exist:controller}/modules/view.xql">
                {
                    if ($exist:resource = ("search-results.html", "documents.html", "index.html")) then
                        <set-header name="Cache-Control" value="no-cache"/>
                    else
                        ()
                }
                </forward>
            </view>
            {
                if ($exist:resource = "index.html") then
            		<error-handler>
            			<forward url="{$exist:controller}/error-page.html" method="get"/>
            			<forward url="{$exist:controller}/modules/view.xql"/>
            		</error-handler>
                else
                    ()
            }
        </dispatch>

) else (
    login:set-user($config:login-domain, (), false()),
    (: let $id := replace(xmldb:decode($exist:resource), "^(.*)\..*$", "$1") :)
    let $id := xmldb:decode($exist:resource)
    let $path := replace($exist:path, "^/(.*?)[^/]*$", "$1")
    (: let $path := substring-before(substring-after($exist:path, "/works/"), $exist:resource) :)
    let $mode := request:get-parameter("mode", ())
    let $html :=
        if ($exist:resource = "") then
            "index.html"
        else if ($exist:resource = ("search.html", "toc.html")) then
            $exist:resource
        else
            ()
    return
        if (ends-with($exist:resource, ".epub")) then
            <dispatch xmlns="http://exist.sourceforge.net/NS/exist">
                <forward url="{$exist:controller}/modules/lib/get-epub.xql">
                    <add-parameter name="id" value="{$path}{$id}"/>
                </forward>
                <error-handler>
                    <forward url="{$exist:controller}/error-page.html" method="get"/>
                    <forward url="{$exist:controller}/modules/view.xql"/>
                </error-handler>
            </dispatch>
        else if (ends-with($exist:resource, ".tex")) then
            <dispatch xmlns="http://exist.sourceforge.net/NS/exist">
                <forward url="{$exist:controller}/modules/lib/latex.xql">
                    <add-parameter name="id" value="{$path}{$id}"/>
                </forward>
                <error-handler>
                    <forward url="{$exist:controller}/error-page.html" method="get"/>
                    <forward url="{$exist:controller}/modules/view.xql"/>
                </error-handler>
            </dispatch>
        else if (ends-with($exist:resource, ".pdf")) then
            <dispatch xmlns="http://exist.sourceforge.net/NS/exist">
                <forward url="{$exist:controller}/modules/lib/pdf.xql">
                    <add-parameter name="doc" value="{$path}{$id}"/>
                </forward>
                <error-handler>
                    <forward url="{$exist:controller}/error-page.html" method="get"/>
                    <forward url="{$exist:controller}/modules/view.xql"/>
                </error-handler>
            </dispatch>
        else if ($mode = "plain") then
            <dispatch xmlns="http://exist.sourceforge.net/NS/exist">
                <forward url="{$exist:controller}/modules/lib/transform.xql">
                    <add-parameter name="doc" value="{$path}{$id}"/>
                </forward>
                <error-handler>
                    <forward url="{$exist:controller}/error-page.html" method="get"/>
                    <forward url="{$exist:controller}/modules/view.xql"/>
                </error-handler>
            </dispatch>
        else if (matches($exist:resource, ".xml$", "i")) then
            let $docPath := $path || $id
            let $template :=
                if ($html) then $html else (local:get-template($docPath), $config:default-template)[1]
            return
                <dispatch xmlns="http://exist.sourceforge.net/NS/exist">
                    <forward url="{$exist:controller}/templates/pages/{$template}"></forward>
                    <view>
                        <forward url="{$exist:controller}/modules/view.xql">
                        {
                            if (request:get-parameter("template", ())) then
                                ()
                            else
                                <add-parameter name="template" value="{$template}"/>
                        }
                        {
                            if ($exist:resource != "toc.html") then
                                <add-parameter name="doc" value="{$path}{$id}"/>
                            else
                                ()
                        }
                            <set-header name="Cache-Control" value="no-cache"/>
                        </forward>
                    </view>
                    <error-handler>
                        <forward url="{$exist:controller}/error-page.html" method="get"/>
                        <forward url="{$exist:controller}/modules/view.xql"/>
                    </error-handler>
                </dispatch>
        else
            <dispatch xmlns="http://exist.sourceforge.net/NS/exist">
                <cache-control cache="yes"/>
            </dispatch>

)

data/49548.xml

0 → 100644
+78 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="UTF-8"?>
<TEI xmlns="http://www.tei-c.org/ns/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.tei-c.org/ns/1.0 ../xsd/tei_dodis.xsd">
    <teiHeader>
        <fileDesc>
            <titleStmt>
                <title>Quaderni di Dodis 12</title>
                <author>Diplomatische Dokumente der Schweiz</author>
            </titleStmt>
            <publicationStmt>
                <publisher>Diplomatische Dokumente der Schweiz</publisher>
            </publicationStmt>
            <sourceDesc>
                <p/>
            </sourceDesc>
        </fileDesc>
    </teiHeader>
    <text>
        <body>
            <div type="doc">
                <head>
                    <ref target="http://dodis.ch/49548">dodis.ch/49548</ref>
                    <title type="main">Interne Notiz<note xml:id="e735">Notiz: <idno type="CH-BAR">
                                CH-BAR#E2010A#1999/250#7145*(B.73.0).</idno> Verfasst und
                            unterzeichnet von Daniel Woker, <ref target="dodis.ch/P27996">dodis.ch/P27996</ref>. Kopie an: Silvio Arioli, <ref target="http://dodis.ch/P24523">dodis.ch/P24523</ref>, Klaus Jacobi,
                                <ref target="http://dodis.ch/P19511">dodis.ch/P19511</ref>, die
                            Sektion Mittel- und Osteuropäische Länder, das Sekratariat des
                            Departementschefs, das Politisches Sekretariat, die Direktion für
                            Verwaltungsangelegenheiten und Aussendienst sowie der Presse- und
                            Informationsdienst des Politischen Departements, das Bundesamt für
                            Ausländerfragen des Justiz- und Polizeidepartements sowie die
                            schweizerischen Botschaften in Berlin und Bonn.</note> des
                        Eidgenössischen Departements für auswärtige Angelegenheiten</title>
                    <title type="sub">DDR: Nicht nur die Mauer zittert</title>
                </head>
                <opener>
                    <dateline>
                        <placeName>Bern, </placeName>
                        <date when="1989-11-13">13. November 1989</date>
                    </dateline>
                </opener>
                <p>Am Freitag, 10.11.1989, empfängt der Unterzeichnete den DDR-Botschaftsrat
                    Tschierlich, auf dessen dringendes Ersuchen und, in T<add type="edition">[schierlich]</add>
                    <note xml:id="e633">Arnold Tschirlich, <ref target="http://dodis.ch/P54816">dodis.ch/P54816</ref>, Botschaftsrat an der Botschaft der DDR in Bern
                        27.6.1986–1990.</note>’s Worten, als offizielle Vorstellung der DDR
                    gegenüber den schweizerischen Behörden mit Blick auf das heutige historische
                    Ereignis.</p>
                <p>T<add type="edition">[schierlich]</add> erscheint ausgesprochen «dépassé par les
                    évènements». Er übergibt zunächst die beiliegende Informationsnotiz<note xml:id="e624">Notiz der Botschaft der DDR in Bern vom 10. November 1989,
                            <ref target="http://dodis.ch/52350">dodis.ch/52350</ref>.</note>. Sowohl
                    die darin enthaltene Regelung wie auch T<add type="edition">[schierlich]</add>’s
                    Anmerkung, die Mauer bestehe unveränderlich weiter und habe weiterhin ihre
                    Funktion als Grenze sind zum Zeitpunkt seiner Intervention (später Freitag
                    Nachmittag) teilweise bereits überholt. Zwei Aspekte in T<add type="edition">[schierlich]</add>’s teilweise etwas wirren Ausführungen verdienen indes
                    Aufmerksamkeit:</p>
                <p>– In seiner Botschaft hatten sich heute eine grosse Anzahl Schweizer nach
                    formlosen Ausreisemöglichkeiten DDR – Schweiz (für Verwandte etc.) rsp.
                    ebensolche Reisemöglichkeiten in die DDR erkundigt. Die DDR-Behörden gingen
                    davon aus, dass die geltenden Visa-Vorschriften zwischen der DDR und der Schweiz
                    weiterhin gelten.</p>
                <p>– T<add type="edition">[schierlich]</add> scheint sich, allerdings sehr
                    verklausuliert, zu erkundigen, ob die Schweiz einer «nun reformierten» DDR
                    Unterstützung gewähren würde, «da durch die neue Reiseregelung sehr viel
                    Substanz verloren gehe».</p>
                <p>Ich antwortete T<add type="edition">[schierlich]</add> im Sinne der heute von
                    Presse- und Informationsdienst aufgelegten Mitteilung, dass wir die Öffnung der
                    DDR-Grenze als Schritt Richtung Freiheit und Demokratie sehr begrüssten.</p>
                <p>
                    <emph>Abzuklären:</emph> Soll und muss die schweizerische Visapraxis mit der DDR
                    im Lichte der jüngsten Ereignisse überprüft werden? Dies auch im Lichte der eben
                    eingetroffenen Mitteilung unserer Botschaft in Berlin (Tlx 72 vom 10.11. in
                        Beilage<note xml:id="e629">Telex Nr. 72 der schweizerischen Botschaft in
                        Berlin vom 10. November 1989, <ref target="http://dodis.ch/52351">dodis.ch/52351</ref>.</note>) die ebenfalls mit Anfragen überschwemmt
                    wird.</p>
            </div>
        </body>
    </text>
</TEI>
 No newline at end of file