<?xml version="1.0" encoding="UTF-8"?>
<!--
 -
 -  $Id$
 -
 -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 -  project.
 -
 -  Copyright (C) 1998-2018 OpenLink Software
 -
 -  This project is free software; you can redistribute it and/or modify it
 -  under the terms of the GNU General Public License as published by the
 -  Free Software Foundation; only version 2 of the License, dated June 1991.
 -
 -  This program is distributed in the hope that it will be useful, but
 -  WITHOUT ANY WARRANTY; without even the implied warranty of
 -  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 -  General Public License for more details.
 -
 -  You should have received a copy of the GNU General Public License along
 -  with this program; if not, write to the Free Software Foundation, Inc.,
 -  51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
 -
-->
<!-- Generic WA user homepage, all home pages are interpreted using this markup -->
<v:page style="home.xsl"
        name="home"
        xmlns:vm="http://www.openlinksw.com/vspx/ods/"
        xmlns:v="http://www.openlinksw.com/vspx/"
        doctype="-//W3C//DTD XHTML 1.0 Transitional//EN"
	doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
	fast-render="1"
        on-deadlock-retry="5">
  <vm:page>
    <v:method name="wa_widget_render" arglist="in widget varchar"><![CDATA[
	declare children any;
	children := self.home_children;
	foreach (vspx_control chil in children) do
	  {
	    if (chil is not null and chil.vc_name = widget)
	      {
	        chil.vc_render ();
		return;
              }
	  }
    ]]></v:method>
    <v:before-render><![CDATA[
      declare children, widgets any;
      declare form vspx_control;
      declare i, l, inx any;

      children := self.page_form.vc_children;
      -- keep length in sync with IN values below
      widgets := make_array (5, 'any');
      l := length (children);
      for (i := 0; i < l; i := i + 1)
        {
	  declare chil vspx_control;
	  chil := children[i];
	  if (chil is not null and chil.vc_name in ('search','login_top_button','user_details', 'user_home_map','ods_bar'))
	    {
	      widgets [inx] := chil;
	      children[i] := null;
	      inx := inx + 1;
	    }
	}
      self.home_children := widgets;
      self.page_form.vc_children := children;
      ]]></v:before-render>
      <vm:header>
	  <!-- place for user markup -->
	  <vm:header-wrapper/>
      </vm:header>
      <vm:body>
	<!-- common for user home page -->
	<vm:home-init />
	<vm:login redirect="uhome.vspx"/>
	<!-- all possible widgets for user home -->
	<vm:ods-bar/>
	<vm:user-home-map/>
	<vm:search />
	<vm:login-top-button/>
	<vm:user-details/>
	<!-- pace for user markup -->
	<vm:body-wrapper/>
      </vm:body>
  </vm:page>
</v:page>

