<!--
 -
 -  $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
 -
 -
-->
<v:page name="blog_home_page"
        xmlns:vm="http://www.openlinksw.com/vspx/ods/"
        xmlns:v="http://www.openlinksw.com/vspx/"
        style="index.xsl"
        doctype="-//W3C//DTD XHTML 1.0 Transitional//EN"
        doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
	<vm:page>
	  <vm:variable name="sparql_qr" type="any" default="null" param-name="qry"/>
	  <vm:variable name="sparql_rq_res_name" type="varchar" default="null" param-name="rq_res_name"/>
	  <v:on-init>
	    <![CDATA[
	    set isolation = 'uncommitted';
	    set http_charset='utf-8';
	    ]]>
	  </v:on-init>

	  <vm:header>
	    <vm:title>Search</vm:title>
	  </vm:header>
	  <vm:pagewrapper>
	    <vm:navigation-new on="site"/>
	    <vm:subnavigation-new on="site"/>
	    <vm:body>
	      <vm:login redirect="login.vspx"/>
	      <v:form name="form1" type="simple" method="POST">
		<table border="0" width="100%" height="100%" cellpadding="0" cellspacing="0">
		  <tr valign='top'>
		    <td>
		      <v:template name="tabTemplate" type="simple">
			<table cellpadding="0" cellspacing="0" border="0">
			  <colgroup>
			    <col/>
			    <col/>
			    <col/>
			  </colgroup>
			  <tr>
			    <?vsp
			    {
			    declare pg int;
			    pg := 4;
			    ?>
			    <td class="<?V case when pg = 1 then 'navtab_sel' else 'navtab' end ?>" align="center">
			      <v:url name="b_url21" value="Keyword" format="%s" url="--sprintf('search.vspx?page=1&amp;l=1')" xhtml_class="uddi"/>
			    </td>
			    <td class="<?V case when pg = 2 then 'navtab_sel' else 'navtab' end ?>" align="center">
			      <v:url name="b_url12" value="Users" format="%s" url="--sprintf('search.vspx?page=2&amp;l=1')" xhtml_class="uddi"/>
			    </td>
			    <!--td class="<?V case when pg = 3 then 'navtab_sel' else 'navtab' end ?>" align="center">
			    <v:url name="b_url13" value="Network Affiliation" format="%s" url="-#-sprintf('search.vspx?page=3')" xhtml_class="uddi"/>
			  </td-->
			  <td class="<?V case when pg = 4 then 'navtab_sel' else 'navtab' end ?>" align="center">
			    <v:url name="b_url14" value="RDF" format="%s" url="--sprintf('search.vspx?page=4&amp;l=1')" xhtml_class="uddi"/>
			  </td>
			  <td class="page_tab_empty" align="center" width="100%">
			    <table cellpadding="0" cellspacing="0">
			      <tr>
				<td width="100%" >
				</td>
			      </tr>
			    </table>
			  </td>
			  <?vsp
			  }
			  ?>
			</tr>
		      </table>
		    </v:template>
		    <table class="tab_page">
		      <tr>
			<td valign="top" colspan="2">
			  <h2>Store the SPARQL query</h2>
			  <table>
			    <tr>
			      <td colspan="2">
				<pre><?V self.sparql_qr ?></pre>
			      </td>
			    </tr>
			    <tr>
			      <td>Resource Name</td>
			      <td>
				<v:text name="rq_name" value="--case when e.ve_is_post then control.ufl_value else coalesce (self.sparql_rq_res_name, '') end" xhtml_size="70" />
			      </td>
			    </tr>
			    <tr>
			      <td colspan="2">
				<v:check-box xhtml_id="cb_public" name="cb_public" value="0" initial-checked="1" />
				<label for="cb_public">Is public</label></td>
			    </tr>
			    <tr>
			      <td>
				<v:button name="cancel_bt" action="simple" value="Cancel">
				  <v:on-post><![CDATA[
                                  self.vc_redirect (sprintf ('search.vspx?page=4&l=1&sid=%s&realm=%s', self.sid, self.realm));
			      ]]></v:on-post>
				</v:button>
			      </td>
			      <td>
				<v:button name="save_bt" action="simple" value="Save">
				  <v:on-post><![CDATA[
		              declare rc, col, ctr int;
			      declare path, pwd, perms varchar;

			      if (not self.vc_is_valid)
				return;
			      col := DAV_SEARCH_ID ('/DAV/home/'||self.u_name||'/SPARQL/', 'C');
			      if (col < 0)
				{
				  col := DB.DBA.DAV_MAKE_DIR('/DAV/home/'||self.u_name||'/SPARQL/',
				    self.u_id, http_nogroup_gid(), '110110100N');
				}
		              if (length (self.rq_name.ufl_value) = 0)
	                        {
				  self.vc_is_valid := 0;
				  self.vc_error_message := 'The name of the resource cannot be empty';
				  return;
				}
		              if (self.cb_public.ufl_selected)
			        perms := '110100100NN';
			      else
                                perms := '110100000NN';

			      path := '/DAV/home/'||self.u_name||'/SPARQL/' || self.rq_name.ufl_value;
			      if (path not like '%.rq')
		                path := path || '.rq';
			      pwd := (select pwd_magic_calc (U_NAME, U_PASSWORD, 1) from DB.DBA.SYS_USERS where U_NAME = self.u_name);
			      rc := DAV_RES_UPLOAD (path, self.sparql_qr, 'application/sparql-query', perms,
			        self.u_name, 'nogroup', self.u_name, pwd);
                              if (rc < 0)
			        {
				  self.vc_is_valid := 0;
				  self.vc_error_message := DAV_PERROR (rc);
				  return;
				}
                              else
			        {
                                  self.vc_redirect (sprintf ('search.vspx?page=4&l=1&sid=%s&realm=%s&rq=%d', self.sid, self.realm, rc));
			        }
			      ]]></v:on-post>
				</v:button>
			      </td>
			    </tr>
			  </table>
			</td>
		      </tr>
		    </table>
		  </td>
		</tr>
	      </table>
	    </v:form>
	</vm:body>
     </vm:pagewrapper>
  </vm:page>
</v:page>
