<?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
 -
-->
<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:header>
      <vm:title>OAuth application registration</vm:title>
    </vm:header>
    <vm:pagewrapper >
      <v:variable persist="temp" name="msg_msg" type="varchar" default="''"/>
      <v:variable name="edit_oauth" type="int" default="null" param-name="edit" />
      <v:variable name="del_oauth" type="int" default="null" param-name="del" />
      <vm:rawheader caption="Edit your personal data"/>
      <vm:navigation-new on="settings"/>
      <vm:subnavigation-new on="site"/>
      <vm:body>
	  <vm:login redirect="index.vspx"/>

	<div class="message"><v:label name="pwd_msg" value="--self.msg_msg" /></div>
    <table border="0" width="100%" height="100%" cellpadding="0" cellspacing="0">
    <tr valign='top'>
      <td>
        <table cellpadding='10' cellspacing='0' border='0' width='100%'>
          <tr>
            <td class="tab_deck">
	<h3>OAuth application registration</h3>
	<v:form type="simple" method="POST">
	  <table class="listing" rules="groups">
	      <colgroup>
		  <col/>
		  <col/>
		  <col/>
		  <col/>
	      </colgroup>
	      <tr class="listing_header_row">
		  <th>Application</th>
		  <th>Token</th>
		  <th>Secret</th>
                		  <th width="5%">Action</th>
	      </tr>
	      <v:data-set name="oauth" sql="select a_id, a_name, a_descr, a_key, a_secret, a_url, a_cb_url, a_status
		  from OAUTH.DBA.APP_REG where a_owner = :self.u_id"
		  scrollable="1" editable="1" nrows="1000">
		  <v:before-data-bind>
if (not e.ve_is_post and self.del_oauth is not null)
{
  delete from OAUTH.DBA.APP_REG where a_id = self.del_oauth and a_owner = self.u_id;
  delete from OAUTH.DBA.SESSIONS where s_a_id = self.del_oauth;
}
		  </v:before-data-bind>

		  <v:template name="maps_rep" type="repeat">
		      <v:template name="maps_brows" type="browse">
			  <tr class="<?V case when self.edit_oauth = control.te_rowset[0] then 'listing_row_selected' when mod(control.te_ctr, 2) then 'listing_row_odd' else 'listing_row_even' end ?>">
			      <td>
				  <v:label name="ur1"
				      format="%s"
				      value="--(control.vc_parent as vspx_row_template).te_rowset[1]"
				      />
			      </td>
			      <td>
				  <v:label name="la3" value="--(control.vc_parent as vspx_row_template).te_rowset[3]"
				      format="%s" render-only="1"/>

			      </td>
			      <td>
				  <v:label name="la2" value="--(control.vc_parent as vspx_row_template).te_rowset[4]"
				      format="%s" render-only="1"/>

			      </td>
                			    <td nowrap="nowrap">
                				    <v:url name="ur2" value='<img src="images/icons/trash_16.png" hspace="3" border="0"/>Delete'
				      format="%s"
				      url="--sprintf ('oauth_apps.vspx?del=%d', (control.vc_parent as vspx_row_template).te_rowset[0])"
				      xhtml_title="Delete"
				      xhtml_alt="Delete"
                				      xhtml_class="img_button"
				      />
			      </td>
			  </tr>
		      </v:template>
		  </v:template>

		  <v:template name="maps_footer" type="simple">
		      <tr>
			  <td colspan="4" class="listing_col_action">
			      <vm:ds-navigation data-set="oauth" type="set" />
			  </td>
		      </tr>
		  </v:template>
	      </v:data-set>
	  </table>
                	  <?vsp if ((exists (select 1 from WA_MEMBER where WAM_USER = self.u_id and not exists (select 1 from OAUTH.DBA.APP_REG where A_NAME = WAM_INST))) or (not exists (select 1 from OAUTH.DBA.APP_REG where A_OWNER = self.u_id and A_NAME = 'Discussion'))) { ?>
	  <div class="fm">
	      <fieldset>
		  <label for="a_name">Application name</label>
		  <v:data-list
		      name="a_name"
                  		      sql="select 'Discussion' as WAM_INST from DB.DBA.SYS_USERS where U_ID=self.u_id and not exists (select 1 from OAUTH.DBA.APP_REG where A_NAME = 'Discussion' and A_OWNER=self.u_id) union select WAM_INST from WA_MEMBER where WAM_USER = self.u_id and not exists (select 1 from OAUTH.DBA.APP_REG where a_name = WAM_INST)"
		      key-column="WAM_INST"
		      value-column="WAM_INST"
		      xhtml_id="a_name" error-glyph="*">
		  </v:data-list>
	      <span class="fm_ctl_btn">
		  <v:button name="save1" value="Generate Keys" action="simple">
		      <v:on-post><![CDATA[
  if (not self.vc_is_valid)
    return;

  OAUTH.DBA.app_register (self.a_name.ufl_value, self.u_id);
  self.oauth.vc_data_bind (e);
  self.a_name.vc_data_bind (e);
]]></v:on-post>
		  </v:button>
	      </span>
	  </fieldset>
      </div>
      <?vsp } ?>
	</v:form>
                </td>
              </tr>
            </table>
          </td>
        </tr>
      </table>
      </vm:body>
    </vm:pagewrapper>
  </vm:page>
</v:page>
