Commit e5b78485 authored by Jerome Chauveau's avatar Jerome Chauveau
Browse files

database : sources and collections listing

parent 497b9f05
Loading
Loading
Loading
Loading
+1 −4
Original line number Diff line number Diff line
@@ -40,10 +40,7 @@ function max-dev:index() as element(){
                    {if(db:exists($database:max-db))
                        then
                            <div>
                                <ul>{
                                for $d in db:list($database:max-db)
                                return <li>{$d}</li>
                                }</ul>
                                {database:sources()}
                            </div>
                        else <span style='color:red;'> NOK</span>
                    }
+42 −0
Original line number Diff line number Diff line
@@ -37,3 +37,45 @@ declare function database:get-element-by-id($documentPath, $id as xs:string) as
};



declare %private function database:list-dir($db as xs:string, $path as xs:string, $dirsOnly as xs:boolean){
	let $res := <list>{db:dir($db, $path)}</list>
	let $resources := for $resource in $res//*:resource
        			return <li>{$resource/data()}</li>
	let $prefix:= if($path = '/') then '' else $path				
	let $dirs := for $dir in $res//*:dir
		let $p := if($path = '/') then $dir/data() else $path ||'/'||$dir/data()
         return
          <li>
			<label data-path="{$p}">{$dir/data()}</label>
            <ul>{database:list-dir($db, $p, $dirsOnly)}</ul>
          </li>
    return
    	if($dirsOnly)
			then $dirs 
		else ($resources, $dirs)	
};

(:~
 : Returns MaX xml sources as html tree
 : @return listing
 :)
declare function database:sources() as element()?{
	<div>
		<label data-path="/">Collection <em>racine</em></label>
		<ul>{database:list-dir($database:max-db, "/", false())}</ul>
	</div>
};

(:~
 : Returns MaX collections as html tree
 : @return listing
 :)
declare function database:collections() as element()?{
	<div>
		<label data-path="/">Collection <em>racine</em></label>
		<ul>{database:list-dir($database:max-db, "/", true())}</ul>
	</div>
};

+1 −1
Original line number Diff line number Diff line
<package xmlns="http://expath.org/ns/pkg"
         name="max"
         abbrev="max"
         version="0.0.2-alpha"
         version="0.0.4-dev"
         spec="1.0">

   <title>MaX app</title>