Commit e534ee73 authored by dje's avatar dje
Browse files

début refactoring. Les ressources du core sont accessibles depuis /editions/{project}/core/ui/...

parent 5c78e23c
Loading
Loading
Loading
Loading
+6 −7
Original line number Diff line number Diff line
@@ -20,8 +20,7 @@ declare
%output:method("html")
%rest:path( "/editions/{$project}")
function max:home($project){
  web:redirect(if(ends-with(request:uri(),'/')) then 'accueil' else $project || "/accueil")

   web:redirect(request:uri() || '/accueil')
};

(:gets a project's HTML page:)
@@ -73,7 +72,7 @@ declare
%rest:GET
%output:method("html")
%output:indent("no")
%rest:path("/editions/{$project}/parcours/{$routeDoc=.*\.xml|.*\.svg}")
%rest:path("/editions/{$project}/parcours/{$routeDoc=[^plugins].*\.xml|.*\.svg}")
function max:document($project,$routeDoc){
   let $f:= max.route:getRouteQueryFile($project, $routeDoc)
   return
@@ -88,7 +87,7 @@ declare
%rest:GET
%output:method("html")
%output:indent("no")
%rest:path("/editions/{$project}/{$routeDoc=.*\.xml}/{$id}")
%rest:path("/editions/{$project}/{$routeDoc=[^plugins].*\.xml}/{$id}")
function max:htmlFragmentWithNavigationBar($project, $routeDoc, $id){

    let $dbPath := max.config:getProjectDBPath($project)
@@ -127,7 +126,7 @@ declare
%rest:GET
%output:method("html")
%output:indent("no")
%rest:path("/editions/{$project}/{$routeDoc=.*\.xml}/{$id}/target/{$targetId}/{$search}")
%rest:path("/editions/{$project}/{$routeDoc=[^plugins].*\.xml}/{$id}/target/{$targetId}/{$search}")
function max:htmlFragmentAndTargetSearchWithNavigationBar($project, $routeDoc, $id, $targetId, $search){
 
    
@@ -150,7 +149,7 @@ declare
%rest:GET
%output:method("html")
%output:indent("no")
%rest:path("/editions/{$project}/{$routeDoc=.*\.xml}/focus/{$idFocus}")
%rest:path("/editions/{$project}/{$routeDoc=[^plugins].*\.xml}/focus/{$idFocus}")
function max:htmlFragmentTargetIdWithNavigationBar($project, $routeDoc, $idFocus){
    copy $c := max:getFullDocument($project, $routeDoc)
    modify (
@@ -166,7 +165,7 @@ declare
%rest:GET
%output:method("html")
%output:indent("no")
%rest:path("/editions/{$project}/{$routeDoc=.*\.xml}/focus/{$idPart}/{$idFocus}")
%rest:path("/editions/{$project}/{$routeDoc=[^plugins].*\.xml}/focus/{$idPart}/{$idFocus}")
function max:htmlFragmentTargetPartAndIdWithNavigationBar($project, $routeDoc,$idPart, $idFocus){
  copy $c := max:htmlFragmentWithNavigationBar($project, $routeDoc, $idPart)
    modify (
+5 −3
Original line number Diff line number Diff line
var breadcrumb = new Object();

breadcrumb['onTextChange'] = function() {
  var currentPart = $("#text").find(".subpart").first().text();
  console.log(currentPart);
  if(route === '')
    return;
  $.get(MAX.getPluginsBaseURL() + "/breadcrumb/" + projectId +"/"+route +"/"+currentPart, function(data){

  $.get('/editions/'+ projectId + "/" + MAX.getPluginsBaseURL()  +"/breadcrumb/"+route +"/"+currentPart, function(data){
      var breadcrumb = data;
      $(breadcrumb).insertAfter($('#topbar'));
  });   
+2 −2
Original line number Diff line number Diff line
@@ -10,12 +10,12 @@ declare variable $max.plugin.breadcrumb:PLUGIN_ID := "breadcrumb";
declare variable $max.plugin.breadcrumb:TOP_LABEL := "topLabel";

(:
Route witnesses list
Breadcrumb
:)
declare
%rest:GET
%output:method("html")
%rest:path("/plugins/breadcrumb/{$project}/{$route=.*\.xml}/{$currentPart}")
%rest:path("/editions/{$project}/plugins/breadcrumb/{$route=.*\.xml}/{$currentPart}")
function max.plugin.breadcrumb:buildBreadcrumb($project, $route, $currentPart){
  let $dbPath := max.config:getProjectDBPath($project)  
  let $projectPrettyName := max.plugin.breadcrumb:getBreadcrumbTop($project)
+4 −37
Original line number Diff line number Diff line
@@ -9,36 +9,15 @@ import module namespace max.util = 'pddn/max/util' at 'util.xqm';
 : @return rest response and binary file
 :)
declare
  %rest:path("editions/plugins/{$pluginName}/{$file}")
  %rest:path("editions/{$project}/plugins/{$pluginName}/{$file}")
function max.file:pluginFile(
  $project,
  $pluginName as xs:string,
  $file as xs:string
) as item()+ {
  let $path := file:parent(file:parent(static-base-uri())) || "/plugins/" || $pluginName ||  "/" || $file
  return max.util:rawFile($file, $path)
};
(:
declare
  %rest:path("plugins/{$pluginName}/resources/{$path=.?}/a")
function max.file:pluginDir(
  $pluginName as xs:string,
  $path as xs:string
) as item()+ {
  let $path := file:parent(file:parent(static-base-uri())) || "/plugins/" || $pluginName || "/resources/" || $path
  return max.util:rawFile(".", $path)
};

declare
  %rest:path("plugins/{$pluginName}/resources/{$file}")
function max.file:pluginResourceFile(
  $pluginName as xs:string,
  $file as xs:string
) as item()+ {
  let $path := file:parent(file:parent(static-base-uri())) || "/plugins/" || $pluginName || "/resources/" || $file
  return max.util:rawFile($file, $path)
};

:)

(:
Project's UI file: css, js, image ...
@@ -58,8 +37,9 @@ function max.file:projectUIFile(
 Global ui css,images,f font, js ... file
:)  
declare
  %rest:path("/editions/ui/{$filePath=.*}")
  %rest:path("/editions/{$project=[a-zA-Z\_\-]+}/core/ui/{$filePath=.*}")
function max.file:UIFile(
  $project as xs:string,
  $filePath as xs:string){
    
    let $path := file:parent(file:parent(static-base-uri())) || "/ui/"  || $filePath
@@ -67,19 +47,6 @@ function max.file:UIFile(
  
};

(:only for test - needs to be removed:)
declare
  %rest:path("/editions/static/{$project}/{$file=.+}")
function max.file:file(
  $project as xs:string,
  $file as xs:string
) as item()+ {
  let $path := file:parent(file:base-dir()) || 'editions/' || $project || '/ui/' || $file
  return (
    web:response-header(map { 'media-type': web:content-type($path) }),
    file:read-binary($path)
  )
};

(:
 uiAddon css or js file
+16 −16
Original line number Diff line number Diff line
@@ -107,17 +107,17 @@ declare %private function max.html:generateHTMLHead($projectId){
    <title>PDDN MaX / {$projectId}</title>
    <!-- Bootstrap core & theme CSS -->
    <link rel="stylesheet" 
     href="{max.config:getReversedProxyBaseURI() || '/ui/js/lib/bootstrap/dist/css/bootstrap.min.css'}"/>
     href="{max.config:getReversedProxyBaseURI() || '/' || $projectId || '/core/ui/js/lib/bootstrap/dist/css/bootstrap.min.css'}"/>
    <link rel="stylesheet" 
     href="{max.config:getReversedProxyBaseURI() || '/ui/js/lib/bootstrap/dist/css/bootstrap-theme.min.css'}"/>
     href="{max.config:getReversedProxyBaseURI() || '/' || $projectId ||'/core/ui/js/lib/bootstrap/dist/css/bootstrap-theme.min.css'}"/>
                          
    <link rel="stylesheet" 
     href="{max.config:getReversedProxyBaseURI() || '/ui/js/lib/jquery-ui/themes/smoothness/jquery-ui.css'}"/>      
     href="{max.config:getReversedProxyBaseURI() || '/' || $projectId || '/core/ui/js/lib/jquery-ui/themes/smoothness/jquery-ui.css'}"/>      
                          
    <!-- CSS globale -->
    <link rel="stylesheet" type="text/css" href='{max.config:getReversedProxyBaseURI() || "/ui/css/max.css"}'/>
    <link rel="stylesheet" type="text/css" href='{max.config:getReversedProxyBaseURI() || "/" || $projectId || "/core/ui/css/max.css"}'/>
    <!-- CSS alignement -->
    <link rel="stylesheet" type="text/css" href='{max.config:getReversedProxyBaseURI() || "/ui/css/alignment.css"}'/>
    <link rel="stylesheet" type="text/css" href='{max.config:getReversedProxyBaseURI() || "/" || $projectId || "/core/ui/css/alignment.css"}'/>
    <!-- CSS éditions / addons / plugins -->
    {max.html:generateCSSImports($projectId)}
  </head>
@@ -141,13 +141,13 @@ declare %private function max.html:generateAllJSImports($projectId, $pageId, $fr
          </script>
          
          <!-- JQuery frameworks -->
          <script type="text/javascript" src='{max.config:getReversedProxyBaseURI() ||  "/ui/js/lib/jquery/dist/jquery.min.js"}'/>
          <script type="text/javascript" src='{max.config:getReversedProxyBaseURI() || "/" || $projectId || "/core/ui/js/lib/jquery/dist/jquery.min.js"}'/>
          <!-- boostrap -->
          <script src='{max.config:getReversedProxyBaseURI() || "/ui/js/lib/bootstrap/dist/js/bootstrap.min.js"}'/>
          <script src='{max.config:getReversedProxyBaseURI() || "/" || $projectId || "/core/ui/js/lib/bootstrap/dist/js/bootstrap.min.js"}'/>
          <!-- jquery ui -->
          <script src='{max.config:getReversedProxyBaseURI() ||  "/ui/js/lib/jquery-ui/jquery-ui.min.js"}'/>
          <script src='{max.config:getReversedProxyBaseURI() ||  "/" || $projectId || "/core/ui/js/lib/jquery-ui/jquery-ui.min.js"}'/>
          <!-- JS global -->
          <script type="text/javascript" src='{max.config:getReversedProxyBaseURI() ||  "/ui/js/dist/MaX.min.js"}'/>
          <script type="text/javascript" src='{max.config:getReversedProxyBaseURI() || "/" || $projectId || "/core/ui/js/dist/MaX.min.js"}'/>
          
          <!-- JS plugins/uiAddons du projet -->
          {max.html:generateJavascriptImports($projectId)}
@@ -177,14 +177,14 @@ as element(script)*
  let $pluginsJS := 
    for $plugin in max.config:getPluginNameList($projectId)
      for $file in file:list($pluginsFolder || "/" || $plugin, true(), "*.js")
        let $minifiedJS := max.config:getReversedProxyBaseURI() || "/ui/js/dist/" ||
        let $minifiedJS := max.config:getReversedProxyBaseURI() || "/" || $projectId || "/core/ui/js/dist/" ||
                            substring-before($file,".") || ".min.js"
        return 
          <script type="text/javascript" 
                  src="{$minifiedJS}"/>

   let $envJS := if(max.config:getXMLFormat($projectId) = $max.cons:EAD)
     then <script type="text/javascript" src="{max.config:getReversedProxyBaseURI() || '/ui/js/dist/ead_treeview.min.js'}"/>
     then <script type="text/javascript" src="{max.config:getReversedProxyBaseURI() || '/' || $projectId|| '/core/ui/js/dist/ead_treeview.min.js'}"/>
     else()
   
   return ($envJS,$projectJS,$pluginsJS)
@@ -213,7 +213,7 @@ as element(link)*
          then  
          <link rel="stylesheet" 
                type="text/css" 
                href="{max.config:getReversedProxyBaseURI() || '/' || $pluginDirectory|| '/'|| $pluginAddon || '.css'}"/>
                href="{max.config:getReversedProxyBaseURI() || '/' || $projectId || '/' || $pluginDirectory|| '/'|| $pluginAddon || '.css'}"/>
          else()
          
          
@@ -342,8 +342,8 @@ declare function max.html:getFooter($project){
  }
  catch * {
  <footer class='navbar navbar-inverse navbar-fixed-bottom'>
   <img id='biblissima' class='footer-logos' src='{max.config:getReversedProxyBaseURI()}/ui/images/logos/biblissima.png'/>
   <img id='invav' class='footer-logos' src='{max.config:getReversedProxyBaseURI()}/ui/images/logos/investissement-davenir.png'/> 
   <img id='biblissima' class='footer-logos' src='{max.config:getReversedProxyBaseURI()}/{$project}/core/ui/images/logos/biblissima.png'/>
   <img id='invav' class='footer-logos' src='{max.config:getReversedProxyBaseURI()}/{$project}/core/ui/images/logos/investissement-davenir.png'/> 
  </footer>
  }
};
@@ -355,10 +355,10 @@ declare function max.html:getNavigationBarForRoute($project, $routeId, $selected
  let $xml := max.route:getRouteNavigationEntriesAsHTML($project, $routeId)
  let $prevArrow := if($selectedId = $xml//li[1]/@id)
                    then ()
                    else <span id="nav_previous"><img class="" src="{max.config:getReversedProxyBaseURI() || '/ui/images/previous.png'}"/></span>
                    else <span id="nav_previous"><img class="" src="{max.config:getReversedProxyBaseURI() || '/' || $project || '/core/ui/images/previous.png'}"/></span>
  let $nextArrow := if($selectedId = $xml//li[last()]/@id)
                    then ()
                    else <span id="nav_next"><img class="" src="{max.config:getReversedProxyBaseURI() || '/ui/images/next.png'}"/></span>                
                    else <span id="nav_next"><img class="" src="{max.config:getReversedProxyBaseURI() ||  '/' || $project|| '/core/ui/images/next.png'}"/></span>                
  return <div class="navbar-form navbar-left">
          <div id="navigation-tool" class="dropdown">
            {$prevArrow}
Loading