Design

There is nothing spectacular in design.

 

<div id="site-frame">
  <div id="site-top">
    <table width="100%">
      <td class="portal-logo"><%= link_to image_tag("/assets/logo.png", :border => 0), '/' %></td>
      <td class="portal-title">Intranet</td>
      <td class="portal-login"><%= dc_render(:portal, method: 'login') %> </td>
    </table>
  </div>

 

Site top holds three elements. Logo, title and PortalRenderer::login method which displays current logged on user or login link.

 

Below is the main menu. 

 

<%= dc_render(:dc_simple_menu) %>

 

Since menu name is defined in DcSite document this is all that is required to draw the menu.

 

At the bottom we have application menu renderer.

 

 <div id="page">
   <div id="app-menu"><%= dc_render(@options['renderer']) %></div>
 </div>
</div>

 

Application menu is provided by calling render which is defined by  @options['renderer']. @options var is collected from parameters fields in DcSite and DcPage documents. In our example for notes application we have defined NotesRenderer class. Therefor we define:

 

renderer: notes


in DcPage parameters field. As result NotesRenderer::default method will be used to render data. In most cases this method will render default application menu. If we want more control over render method we might add method parameter to caller

 

   <div id="app-menu"><%= dc_render(@options['renderer'], method: 'menu'%></div>

 

Lets look at how application menu is rendered in following page.


Last update: 08.05.2018