Changeset 1849 for trunk/tools


Ignore:
Timestamp:
Feb 22, 2007, 2:12:32 AM (17 years ago)
Author:
rvelices
Message:
  • user comments are not saved in the database with htmlspecialchars anymore
  • web service: added the possibility to enter a user comment using the service...
  • new comment functions from picture_comment.inc.php
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tools/ws.htm

    r1698 r1849  
     1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    12<html>
    23<head>
     
    4142
    4243var gServiceUrl;
     44var gCurrentMethodParams;
    4345
    4446Ajax.Responders.register({
     
    105107
    106108  gServiceUrl = $F('ws_url');
     109  gCurrentMethodParams = null;
    107110
    108111  try {
     
    138141  setVisibility("methodDetailWrapper", "hidden");
    139142  setVisibility("methodWrapper", "visible");
     143  gCurrentMethodParams = null;
    140144
    141145  try {
     
    161165                methodParamsElt.tBodies[0].deleteRow(methodParamsElt.tBodies[0].rows.length-1);
    162166
    163         if (result.params && result.params.length>0)
    164         {
    165                 for (var i=0; i<result.params.length; i++)
    166                 {
    167                         var row = methodParamsElt.tBodies[0].insertRow(-1);
    168                         var isOptional = result.params[i].optional;
    169                         var defaultValue = result.params[i].defaultValue == null ? '' : result.params[i].defaultValue;
    170 
    171                         row.insertCell(0).innerHTML = result.params[i].name;
    172                         row.insertCell(1).innerHTML = (isOptional ? 'optional':'required');
    173                         row.insertCell(2).innerHTML = '<input id="methodParameterSend_'+i+'" type="checkbox" '+(isOptional ? '':'checked="checked"')+'/>';
    174                         row.insertCell(3).innerHTML = '<input id="methodParameterName_'+i+'" type="hidden" value="'+result.params[i].name+'"/>'
    175           +'<input id="methodParameterValue_'+i+'"" value="'+defaultValue+'" style="width:99%" onchange="$(\'methodParameterSend_'+i+'\').checked=true;"/>';
    176                 }
     167        if (result.params)
     168  {
     169    gCurrentMethodParams = result.params;
     170    if (result.params.length>0)
     171          {
     172                for (var i=0; i<result.params.length; i++)
     173                {
     174                        var row = methodParamsElt.tBodies[0].insertRow(-1);
     175                        var isOptional = result.params[i].optional;
     176                        var defaultValue = result.params[i].defaultValue == null ? '' : result.params[i].defaultValue;
     177 
     178                        row.insertCell(0).innerHTML = result.params[i].name;
     179                        row.insertCell(1).innerHTML = (isOptional ? 'optional':'required');
     180                        row.insertCell(2).innerHTML = '<input id="methodParameterSend_'+i+'" type="checkbox" '+(isOptional ? '':'checked="checked"')+'/>';
     181                        row.insertCell(3).innerHTML = '<input id="methodParameterValue_'+i+'"" value="'+defaultValue+'" style="width:99%" onchange="$(\'methodParameterSend_'+i+'\').checked=true;"/>';
     182                }
     183        }
    177184        }
    178185        setElementText("methodDescription", result.description);
     
    180187}
    181188
    182 function pwgInvokeMethod()
     189function pwgInvokeMethod( newWindow )
    183190{
    184191        var method = document.getElementById('methodName').innerHTML;
     
    190197  {
    191198    reqUrl += "&method="+method;
    192     var i=0;
    193     do
     199    for ( var i=0; i<gCurrentMethodParams.length; i++)
    194200    {
    195       var elt = document.getElementById('methodParameterName_'+i);
    196       if (!elt) break;
    197201      if (document.getElementById('methodParameterSend_'+i).checked)
    198         reqUrl += '&'+elt.value+'='+$F('methodParameterValue_'+i);
    199       i++;
     202        reqUrl += '&'+gCurrentMethodParams[i].name+'='+$F('methodParameterValue_'+i);
    200203    }
    201     while (1);
    202     document.getElementById("invokeFrame").src = reqUrl;
     204    if ( !newWindow )
     205      document.getElementById("invokeFrame").src = reqUrl;
     206    else
     207      window.open(reqUrl);
    203208  }
    204209  else
     
    207212    form.action = reqUrl;
    208213    var t = '<input type="hidden" name="'+'method'+'" value="'+method+'"/>';
    209     var i=0;
    210     do
     214    for ( var i=0; i<gCurrentMethodParams.length; i++)
    211215    {
    212       var elt = document.getElementById('methodParameterName_'+i);
    213       if (!elt) break;
    214216      if (document.getElementById('methodParameterSend_'+i).checked)
    215         t += '<input type="hidden" name="'+elt.value+'" value="'+$F('methodParameterValue_'+i)+'"/>';
    216       i++;
     217        t += '<input type="hidden" name="'+gCurrentMethodParams[i].name+'" value="'+$F('methodParameterValue_'+i)+'"/>';
    217218    }
    218     while (1);
    219219    form.innerHTML = t;
     220    if ( !newWindow )
     221      form.target = "invokeFrame";
     222    else
     223      form.target = "_blank";
    220224    form.submit();
    221225  }
     
    227231<style>
    228232#methodListWrapper {
    229   width: 16em;
     233  width: 13em;
    230234  float: left;
    231235  display: inline;
     
    234238
    235239#methodList {
    236   padding-left: 15px;
     240  padding-left: 10px;
     241  margin-left: 15px;
    237242}
    238243
    239244#methodWrapper {
    240   margin-left: 16.5em;
     245  margin-left: 14em;
    241246  visibility: hidden;
    242247}
     
    256261#methodParams {
    257262  border-collapse: collapse;
    258 }
     263  font-size: small;
     264}
     265
     266#methodParams input {
     267  font-size: 90%;
     268  border: 1px solid black;
     269  text-indent: 2px;
     270}
     271
     272
     273a {
     274  color: #02f;
     275  background-color: white;
     276  text-decoration: underline;
     277}
     278
     279a:hover {
     280  color: white;
     281  background-color: #02f;
     282  text-decoration: none;
     283  cursor:pointer;
     284}
     285
    259286</style>
    260287
     
    280307<div>
    281308
    282 <div id="methodListWrapper">Methods
     309<div id="methodListWrapper"><h2>Methods</h2>
    283310  <ul id="methodList">
    284311    <li><a href="#" onclick="return pwgSelectMethod(this.innerHTML)">getVersion</a></li>
     
    289316  <h2 id="methodName"></h2>
    290317  <div id="methodDetailWrapper">
    291     <div id="methodDescription"></div>
     318
    292319    <table>
    293       <tr>
    294         <td>Request format:</td>
    295         <td>
    296           <select id="requestFormat">
    297             <option value="get" selected="selected">GET</option>
    298             <option value="post">POST</option>
    299           </select>
    300         </td>
    301       </tr>
    302 
    303       <tr>
    304         <td>Response format:</td>
    305         <td>
    306           <select id="responseFormat">
    307             <option value="rest" selected="selected">REST (xml)</option>
    308             <option value="json">JSON</option>
    309             <option value="php">PHP serial</option>
    310             <option value="xmlrpc">XML RPC</option>
    311           </select>
    312         </td>
    313       </tr>
     320    <tr style="vertical-align:top">
     321   
     322    <td>
     323      <div id="methodDescription"></div>
     324      <table>
     325        <tr>
     326          <td>Request format:</td>
     327          <td>
     328            <select id="requestFormat">
     329              <option value="get" selected="selected">GET</option>
     330              <option value="post">POST</option>
     331            </select>
     332          </td>
     333        </tr>
     334 
     335        <tr>
     336          <td>Response format:</td>
     337          <td>
     338            <select id="responseFormat">
     339              <option value="rest" selected="selected">REST (xml)</option>
     340              <option value="json">JSON</option>
     341              <option value="php">PHP serial</option>
     342              <option value="xmlrpc">XML RPC</option>
     343            </select>
     344          </td>
     345        </tr>
     346      </table>
     347      <p>
     348        <a href="#" onclick="return pwgInvokeMethod(false)">Invoke</a>
     349        <a href="#" onclick="return pwgInvokeMethod(true)">Invoke (new Window)</a>
     350      </p>
     351    </td>
     352   
     353
     354    <td>
     355      <table id="methodParams"  border="1" cellspacing="0" cellpadding="2px">
     356        <thead>
     357          <tr>
     358            <td style="width:150px">Parameter</td>
     359            <td>Optional</td>
     360            <td>Send</td>
     361            <td style="width:160px">Value</td>
     362          </tr>
     363        </thead>
     364        <tbody>
     365        </tbody>
     366      </table>
     367    </td>
     368   
     369    </tr>
    314370    </table>
    315 
    316     <div id="methodParamsWrapper">
    317     <table id="methodParams"  border="1" cellspacing="0" cellpadding="2px">
    318       <thead>
    319         <tr>
    320           <td style="width:150px">Parameter</td>
    321           <td>Optional</td>
    322           <td>Send</td>
    323           <td style="width:160px">Value</td>
    324         </tr>
    325       </thead>
    326       <tbody>
    327       </tbody>
    328     </table>
    329     </div>
    330     <a href="#" onclick="return pwgInvokeMethod()">Invoke</a>
    331 
    332                 <div style="display:none">
     371   
     372                <div style="display:none;">
    333373                        <!-- hiddenForm for POST -->
    334374                        <form method="post" action="" target="invokeFrame" id="invokeForm">
     
    337377                </div>
    338378
    339     <iframe width="100%" height="400px" id="invokeFrame" name="invokeFrame"></iframe>
     379    <iframe width="100%" height="400px" id="invokeFrame" name="invokeFrame" style="clear:both"></iframe>
    340380  </div> <!-- methodDetailWrapper -->
    341381</div> <!-- methodWrapper -->
Note: See TracChangeset for help on using the changeset viewer.