<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.8.1 
 | Rendered using Apache Maven Fluido Skin 1.6
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta name="author" content="Olivier Lamy" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Archiva &#x2013; Archiva Javascript application General design</title>
    <link rel="stylesheet" href="../css/apache-maven-fluido-1.6.min.css" />
    <link rel="stylesheet" href="../css/site.css" />
    <link rel="stylesheet" href="../css/print.css" media="print" />
      <script type="text/javascript" src="../js/apache-maven-fluido-1.6.min.js"></script>
<!-- Google Analytics -->
        <script src='//www.google-analytics.com/analytics.js'></script>
        <script>
          window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;

          ga('create', 'UA-140879-5', 'auto');
          ga('send', 'pageview');

        </script>
      </head>
    <body class="topBarEnabled">
                      <a href="https://github.com/apache/archiva">
      <img style="position: absolute; top: 0; right: 0; border: 0; z-index: 10000;"
        src="https://s3.amazonaws.com/github/ribbons/forkme_right_gray_6d6d6d.png"
        alt="Fork me on GitHub">
    </a>
      <div id="topbar" class="navbar navbar-fixed-top ">
      <div class="navbar-inner">
            <div class="container"><div class="nav-collapse">
            <ul class="nav">
        <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Introduction <b class="caret"></b></a>
        <ul class="dropdown-menu">
            <li><a href="../index.html" title="About">About</a></li>
            <li><a href="../download.html" title="Downloads">Downloads</a></li>
            <li><a href="../versions.html" title="Versions">Versions</a></li>
            <li><a href="../mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
            <li><a href="../security.html" title="Security">Security</a></li>
            <li class="dropdown-submenu">
<a href="../" title="Documentation">Documentation</a>
              <ul class="dropdown-menu">
                  <li><a href="../docs/2.2.4/" title="Release 2.2.4">Release 2.2.4</a></li>
                  <li><a href="../docs/3.0.0-SNAPSHOT/" title="Dev 3.0.0-SNAPSHOT">Dev 3.0.0-SNAPSHOT</a></li>
              </ul>
            </li>
        </ul>
      </li>
        <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a>
        <ul class="dropdown-menu">
            <li><a href="../developers/building.html" title="Build Apache Archiva">Build Apache Archiva</a></li>
            <li><a href="../get-involved.html" title="Get involved">Get involved</a></li>
            <li><a href="../developers/how-we-do-things.html" title="How we do things">How we do things</a></li>
            <li><a href="../redback" title="Redback">Redback</a></li>
            <li><a href="../components" title="Archiva Components">Archiva Components</a></li>
            <li class="dropdown-submenu">
<a href="../jsui/index.html" title="Javascript application Architecture">Javascript application Architecture</a>
              <ul class="dropdown-menu">
                  <li><a href="../jsui/rest.html" title="Rest service">Rest service</a></li>
                  <li><a href="../jsui/template-loading.html" title="JS Template loading">JS Template loading</a></li>
                  <li><a href="../jsui/i18n.html" title="i18n">i18n</a></li>
                  <li><a href="../jsui/knockout-binding.html" title="Knockout Binding">Knockout Binding</a></li>
                  <li><a href="../jsui/generics-js.html" title="Generic Javascipts">Generic Javascipts</a></li>
              </ul>
            </li>
            <li><a href="../developers/releasing.html" title="Releasing">Releasing</a></li>
            <li><a href="../developers/publishing-site.html" title="Site Publish">Site Publish</a></li>
        </ul>
      </li>
        <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">ASF <b class="caret"></b></a>
        <ul class="dropdown-menu">
            <li><a href="http://www.apache.org/foundation/how-it-works.html" title="How Apache Works">How Apache Works</a></li>
            <li><a href="http://www.apache.org/foundation/" title="Foundation">Foundation</a></li>
            <li><a href="http://www.apache.org/foundation/sponsorship.html" title="Sponsoring Apache">Sponsoring Apache</a></li>
            <li><a href="http://www.apache.org/foundation/thanks.html" title="Thanks">Thanks</a></li>
        </ul>
      </li>
        <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project Documentation <b class="caret"></b></a>
        <ul class="dropdown-menu">
            <li class="dropdown-submenu">
<a href="../project-info.html" title="Project Information">Project Information</a>
              <ul class="dropdown-menu">
                  <li><a href="../ci-management.html" title="CI Management">CI Management</a></li>
                  <li><a href="../mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
                  <li><a href="../issue-management.html" title="Issue Management">Issue Management</a></li>
                  <li><a href="../licenses.html" title="Licenses">Licenses</a></li>
                  <li><a href="../team.html" title="Team">Team</a></li>
                  <li><a href="../scm.html" title="Source Code Management">Source Code Management</a></li>
              </ul>
            </li>
        </ul>
      </li>
              </ul>
<form id="search-form" action="https://www.google.com/search" method="get"  class="navbar-search pull-right" >
      <input value="http://archiva.apache.org/" name="sitesearch" type="hidden"/>
  <input class="search-query" name="q" id="query" type="text" />
</form>
<script type="text/javascript">asyncJs( 'https://cse.google.com/brand?form=search-form' )</script>
                    </div>
        </div>
      </div>
    </div>
    <div class="container">
      <div id="banner">
        <div class="pull-left"><a href="../index.html" id="bannerLeft"><img src="../images/archiva.png"  alt="Apache Archiva"/></a></div>
        <div class="pull-right"><a href="http://www.apache.org/" id="bannerRight"><img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/></a></div>
        <div class="clear"><hr/></div>
      </div>

      <div id="breadcrumbs">
        <ul class="breadcrumb">
        <li class=""><a href="https://www.apache.org" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li>
      <li class=""><a href="../" title="Archiva">Archiva</a><span class="divider">/</span></li>
    <li class="active ">Archiva Javascript application General design</li>
        <li id="publishDate" class="pull-right">Last Published: 28 Nov 2019</li>
        </ul>
      </div>
        <div id="bodyColumn" >

  

    <script src="../js/jquery.fancybox.pack.2.1.5.js" type="text/javascript"></script>
    <script src="../js/jquery.mousewheel-3.0.6.pack.js" type="text/javascript"></script>
    <link rel="stylesheet" href="../css/jquery.fancybox.2.1.5.css" type="text/css" media="screen" />
    <script type="text/javascript" src="../js/fancy-box-activation.js"></script>


    
<ul>
<li><a href="#Archiva_Javascript_Web_Application">Archiva Javascript Web Application</a>
<ul>
<li><a href="#General_design">General design</a></li>
<li><a href="#Runtime_Properties">Runtime Properties</a></li>
<li><a href="#Used_Javascript_frameworks">Used Javascript frameworks</a></li>
<li><a href="#Sources_organisation">Sources organisation</a></li>
<li><a href="#js_directory">js directory</a></li>
<li><a href="#Start_page">Start page</a></li>
<li><a href="#Grid.2Fedit_model">Grid/edit model</a></li></ul></li></ul>

    
<div class="section">
<h2><a name="Archiva_Javascript_Web_Application"></a>Archiva Javascript Web Application</h2>
      
<div class="section">
<h3><a name="General_design"></a>General design</h3>
        
<p>
          The goal is to have a &quot;one page loading&quot; javascript application.
          <br />
          For this the only html page will contains a div with id &quot;main-content&quot; this div will be populated
          by jquery template execution (see <a href="./template-loading.html">template loading</a>).
          <br />
          The server will be contacted only for REST request/response (see <a href="./rest.html">details</a>).
          <br />
          <b>All UI rendering will be done only on client side.</b>
          <br />
          As we are not designer :-), the application will use the <a class="externalLink" href="http://twitter.github.com/bootstrap" target="_blank">twitter bootstrap css</a>.
        </p>
      </div>
      
<div class="section">
<h3><a name="Runtime_Properties"></a>Runtime Properties</h3>
        
<p>The application is designed to use http cache mechanism for css, javascript. Except REST call to get datas which will never use cache as a query timestamp parameter is used.
          But as this can cause issue in developpement phase, two system properties (disabled by default) prevent can prevent caching and/or help debuging
          </p>
<ul>
            
<li>archiva.devMode=true/false: if true will add a timestamp query parameter for loading js and html templates.</li>
            
<li>archiva.javascriptLog=true/false: will activate javascript log, method available with $.log(msg)</li>
            
<li>archiva.logMissingI18n=true/false: will activate remote logging of missing i18n key in the servlet container log:  INFO  archivaMissingi18n.logger  - missing i18n key : 'proxy-connectors.grid.managedrepo.title'</li>
          </ul>
        
      </div>
      
<div class="section">
<h3><a name="Used_Javascript_frameworks"></a>Used Javascript frameworks</h3>
        
<p>
        We use some well known javascript framework librairies :
        </p>
<ul>
          
<li><a class="externalLink" href="http://jquery.com/" target="_blank">jquery</a>.</li>

          
<li><a class="externalLink" href="http://sammyjs.org" target="_blank">sammyjs for hash navigation</a></li>

          
<li><a class="externalLink" href="http://requirejs.org" target="_blank">requirejs</a> for template loading (see <a href="./template-loading.html">details</a>).</li>

          
<li><a class="externalLink" href="http://code.google.com/p/jquery-i18n-properties" target="_blank">jquery-i18n-properties</a> for i18n loading (see <a href="./i18n.html">details</a>).</li>

          
<li><a class="externalLink" href="http://knockoutjs.com" target="_blank">knockoutjs</a> as we use a MVVM pattern (see <a href="./knockout-binding.html">knockout binding</a>).</li>

          
<li><a class="externalLink" href="http://twitter.github.com/bootstrap/javascript.html" target="_blank">twitter bootstrap js</a> to magnify the ui.</li>

          
<li><a class="externalLink" href="http://bassistance.de/jquery-plugins/jquery-plugin-validation" target="_blank">jquery validate</a> for form validation.</li>
        </ul>
        
      </div>
      
<div class="section">
<h3><a name="Sources_organisation"></a>Sources organisation</h3>
        
<p>
          Sources are located in src/main/webapp of the archiva-webapp module :
          </p>
<ul>
            
<li>css</li>
            
<li>images</li>
            
<li>js</li>
          </ul>
        
        </div>
<div class="section">
<h3><a name="js_directory"></a>js directory</h3>
          
<p>
            Root directory contains external libraries.
          </p>
          
<p>
            archiva directory contains archiva js files with a subdirectory templates which contains templates
          </p>
          
<p>
            redback directory contains redback js files with a subdirectory templates which contains templates
          </p>
        </div>
      

      
<div class="section">
<h3><a name="Start_page"></a>Start page</h3>
        
<p>
          The main page will load javascript files, load <a href="./i18n.html">i18n</a>, <a href="./template-loading.html">load templates</a> and insert menu.
          <br />
          This main page is divided in 3 parts:
          
<p>
            <a href="../images/start-screen.png" class="single_image" title="Start Page">
              <img src="../images/start-screen.png" width="150" height="93" style="border: 1px solid silver; margin-left: 0.25em; margin-bottom: 0.25em" alt="" /><br />
              Start Page
            </a>
          </p>
          
<p>
            </p>
<ul>
              
<li>#topbar-menu-container is populated with the template js/archiva/templates/topbar.html.</li>
              
<li>#sidebar-content is populated with the template js/archiva/templates/menu.html.</li>
              
<li>#main-content is the place where screen will appear.</li>
              
<li>hidden #html-fragments will contains loaded templates.</li>
            </ul>
          
          
<p>
            Link are visible/hide depending on needed redback karmas.
            You can configure redback operations needed for a link using the attribute redback-permissions in your html element
            (by default element needed karma must be marked display: none):
            </p>
<div class="source"><pre class="prettyprint">

Support array: at least one operation is needed:
&lt;div .... redback-permissions=&quot;{permissions: ['archiva-manage-users','archiva-manage-configuration']}&quot; style=&quot;display: none&quot;&gt;
Support single value:
&lt;li style=&quot;display: none&quot; redback-permissions=&quot;{permissions: ['archiva-manage-users']}&quot;&gt;

            </pre></div>

          
        
      </div>

      
<div class="section">
<h3><a name="Grid.2Fedit_model"></a>Grid/edit model</h3>
        
<p>We use a tab/pill models to display grid of datas and edit/add form:
          </p>
<ul>
            
<li>
              One tab/pill display the grid
              <a href="../images/repo-grids.png" class="single_image" title="Repositories Grid">
                <img src="../images/repo-grids.png" width="150" height="93" style="border: 1px solid silver; margin-left: 0.25em; margin-bottom: 0.25em" alt="" /><br />
                Repositories Grid
              </a>
            </li>
            
<li>
              One tab/pill display the edit/add form. <b>As we use knockout framework grid will be updated with new value from add/edit form automatically.</b>
              <a href="../images/repo-edit.png" class="single_image" title="Repositories Edit/Add">
                <img src="../images/repo-edit.png" width="150" height="93" style="border: 1px solid silver; margin-left: 0.25em; margin-bottom: 0.25em" alt="" /><br />
                Repositories Edit/Add
              </a>
            </li>
          </ul>
          Have a look at the page <a href="./knockout-binding.html">knockout-binding</a> for more explanation.
        
      </div>

    </div>
  

        </div>
    </div>
    <hr/>
    <footer>
      <div class="container">
        <div class="row">
<div class="row pull-left">Apache Archiva, Archiva, Apache, the Apache feather logo, and the Apache Archiva project logos are trademarks of The Apache Software Foundation.</div>
      <div class="row">
        &nbsp;
      </div>
      <div class="row">
      <p>
        <a href="http://archiva.apache.org/privacy-policy.html">Privacy Policy</a>
        </p>
      </div>
        </div>
        <p id="poweredBy" class="pull-right">  <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" /></a>
  </p>
                          <div id="ohloh" class="pull-right">
      <script type="text/javascript" src="https://www.ohloh.net/p/6670/widgets/project_thin_badge.js"></script>
    </div>
        </div>
    </footer>
    </body>
</html>