[tuxdroid-svn] r4567 - in softwares_suite_v3/kysoh/tuxware/server/trunk: data/css data/xsl resourc
Status: Beta
Brought to you by:
ks156
|
From: remi <c2m...@c2...> - 2009-04-21 08:53:48
|
Author: remi
Date: 2009-04-21 10:53:34 +0200 (Tue, 21 Apr 2009)
New Revision: 4567
Modified:
softwares_suite_v3/kysoh/tuxware/server/trunk/data/css/gadget.css
softwares_suite_v3/kysoh/tuxware/server/trunk/data/xsl/web_gadget.xsl
softwares_suite_v3/kysoh/tuxware/server/trunk/resources/01_robot_system/resourceGadgetFramework.py
softwares_suite_v3/kysoh/tuxware/server/trunk/util/applicationserver/gadget/WebGadgetTools.py
Log:
* improved web gadgets parameters
Modified: softwares_suite_v3/kysoh/tuxware/server/trunk/data/css/gadget.css
===================================================================
--- softwares_suite_v3/kysoh/tuxware/server/trunk/data/css/gadget.css 2009-04-21 08:52:46 UTC (rev 4566)
+++ softwares_suite_v3/kysoh/tuxware/server/trunk/data/css/gadget.css 2009-04-21 08:53:34 UTC (rev 4567)
@@ -67,4 +67,4 @@
border-style:solid;
border-width:0px;
width:177px;
-}
\ No newline at end of file
+}
Modified: softwares_suite_v3/kysoh/tuxware/server/trunk/data/xsl/web_gadget.xsl
===================================================================
--- softwares_suite_v3/kysoh/tuxware/server/trunk/data/xsl/web_gadget.xsl 2009-04-21 08:52:46 UTC (rev 4566)
+++ softwares_suite_v3/kysoh/tuxware/server/trunk/data/xsl/web_gadget.xsl 2009-04-21 08:53:34 UTC (rev 4567)
@@ -28,12 +28,19 @@
for (var i = 0; i < parameters.length; i++)
{
var param = parameters[i];
- if ((param.type != 'button') && (param.id != 'unvisible'))
+ if ((param.type != 'button') && (param.id != 'unvisible') && (param.name != ''))
{
if (param.type == 'checkbox')
{
parametersString += param.name + '=' + param.checked + '|';
}
+ else if (param.type == 'radio')
+ {
+ if (param.checked)
+ {
+ parametersString += param.name + '=' + param.value.replace('&', '&&') + '|';
+ }
+ }
else
{
parametersString += param.name + '=' + param.value.replace('&', '&&') + '|';
@@ -51,6 +58,7 @@
var url = "/gadget_framework/start_gadget_by_uuid?command=";
url += command + "&uuid=" + uuid;
url += "¶meters=" + parametersString;
+ alert(url);
url += "&rndTag=" + Math.random();
document.getElementById("fake_image").src = url;
}
@@ -133,11 +141,11 @@
<tr bgcolor="#D7D8DA">
<td align="right" width="180">
<span class="paramName">
- <xsl:value-of select="description"/> :
+ <xsl:value-of select="description"/>:
</span>
</td>
<td>
- <!-- Parameter is "string" then show it as "input" -->
+ <!-- Parameter is "string" then show it as "text" -->
<xsl:if test="type = 'string'">
<xsl:element name="input">
<xsl:attribute name="class">text</xsl:attribute>
@@ -151,6 +159,67 @@
<xsl:attribute name="size">20</xsl:attribute>
</xsl:element>
</xsl:if>
+ <!-- Parameter is "file" then show it as "text" -->
+ <xsl:if test="type = 'file'">
+ <xsl:element name="input">
+ <xsl:attribute name="class">text</xsl:attribute>
+ <xsl:attribute name="type">text</xsl:attribute>
+ <xsl:attribute name="name">
+ <xsl:value-of select="name"/>
+ </xsl:attribute>
+ <xsl:attribute name="value">
+ <xsl:value-of select="default_value"/>
+ </xsl:attribute>
+ <xsl:attribute name="size">20</xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <!-- Parameter is "directory" then show it as "text" -->
+ <xsl:if test="type = 'directory'">
+ <xsl:element name="input">
+ <xsl:attribute name="class">text</xsl:attribute>
+ <xsl:attribute name="type">text</xsl:attribute>
+ <xsl:attribute name="name">
+ <xsl:value-of select="name"/>
+ </xsl:attribute>
+ <xsl:attribute name="value">
+ <xsl:value-of select="default_value"/>
+ </xsl:attribute>
+ <xsl:attribute name="size">20</xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <!-- Parameter is "increment" then show it as "text" -->
+ <xsl:if test="type = 'increment'">
+ <xsl:element name="input">
+ <xsl:attribute name="class">text</xsl:attribute>
+ <xsl:attribute name="type">text</xsl:attribute>
+ <xsl:attribute name="name">
+ <xsl:value-of select="name"/>
+ </xsl:attribute>
+ <xsl:attribute name="value">
+ <xsl:value-of select="default_value"/>
+ </xsl:attribute>
+ <xsl:attribute name="size">20</xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <!-- Parameter is "booleans" then show it as "radio buttons" -->
+ <xsl:if test="type = 'booleans'">
+ <xsl:for-each select="enum_values/*">
+ <xsl:element name="input">
+ <xsl:attribute name="type">radio</xsl:attribute>
+ <xsl:attribute name="class">checkbox</xsl:attribute>
+ <xsl:attribute name="name">
+ <xsl:value-of select="../../name"/>
+ </xsl:attribute>
+ <xsl:attribute name="value">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ <xsl:if test=". = ../../default_value">
+ <xsl:attribute name="checked">true</xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ <xsl:value-of select="."/><xsl:element name="br"/>
+ </xsl:for-each>
+ </xsl:if>
<!-- Parameter is "integer" then show it as "input" -->
<xsl:if test="type = 'integer'">
<xsl:element name="input">
@@ -173,7 +242,9 @@
<xsl:attribute name="name">
<xsl:value-of select="name"/>
</xsl:attribute>
- <xsl:attribute name="value">********</xsl:attribute>
+ <xsl:attribute name="value">
+ <xsl:value-of select="default_value"/>
+ </xsl:attribute>
<xsl:attribute name="size">20</xsl:attribute>
</xsl:element>
</xsl:if>
@@ -192,7 +263,7 @@
</xsl:if>
</xsl:element>
</xsl:if>
- <!-- Parameter is "enum" then show it as "input" -->
+ <!-- Parameter is "enum" then show it as "combobox" -->
<xsl:if test="type = 'enum'">
<xsl:element name="select">
<xsl:attribute name="class">select</xsl:attribute>
Modified: softwares_suite_v3/kysoh/tuxware/server/trunk/resources/01_robot_system/resourceGadgetFramework.py
===================================================================
--- softwares_suite_v3/kysoh/tuxware/server/trunk/resources/01_robot_system/resourceGadgetFramework.py 2009-04-21 08:52:46 UTC (rev 4566)
+++ softwares_suite_v3/kysoh/tuxware/server/trunk/resources/01_robot_system/resourceGadgetFramework.py 2009-04-21 08:53:34 UTC (rev 4567)
@@ -511,7 +511,7 @@
d_name = "data|%.3d" % i
structure = WebGadgetTools.generateWebGadgetStructure(gadget,
'/gadget_framework/web_gadget?',
- gadget.getDefaultRunCommandName(), {})
+ gadget.getDefaultRunCommandName(), {}, [])
structure['commands'] = {}
for j, command in enumerate(gadget.getCommands()):
c_name = "command_%.3d" % j
@@ -548,7 +548,7 @@
d_name = "data|%d" % i
structure = WebGadgetTools.generateWebGadgetStructure(gadget,
'/gadget_framework/web_gadget?',
- gadget.getDefaultRunCommandName(), {})
+ gadget.getDefaultRunCommandName(), {}, [])
#del structure['command']
structure['commands'] = {}
for j, command in enumerate(gadget.getCommands()):
@@ -573,6 +573,7 @@
'uuid' : 'string',
'command' : 'string',
'parameters' : 'string',
+ 'hiddenlist' : 'string',
}
self.minimalUserLevel = TDS_CLIENT_LEVEL_ANONYMOUS
self.exclusiveExecution = False
@@ -591,13 +592,14 @@
param = paramStruct.split("=")
if len(param) == 2:
params[param[0]] = param[1]
+ hList = parameters['hiddenlist'].split("|")
uuid = parameters['uuid']
gadget = resourceGadgetFramework.getGadgetsContainer().getGadgetByUuid(uuid)
structure = None
if gadget != None:
structure = WebGadgetTools.generateWebGadgetStructure(gadget,
- '/gadget_framework/web_gadget?',
- parameters['command'], params)
+ '/gadget_framework/web_gadget?', parameters['command'], params,
+ hList)
if structure == None:
contentStruct['root']['result'] = getStrError(E_TDREST_FAILED)
else:
Modified: softwares_suite_v3/kysoh/tuxware/server/trunk/util/applicationserver/gadget/WebGadgetTools.py
===================================================================
--- softwares_suite_v3/kysoh/tuxware/server/trunk/util/applicationserver/gadget/WebGadgetTools.py 2009-04-21 08:52:46 UTC (rev 4566)
+++ softwares_suite_v3/kysoh/tuxware/server/trunk/util/applicationserver/gadget/WebGadgetTools.py 2009-04-21 08:53:34 UTC (rev 4567)
@@ -41,12 +41,14 @@
# --------------------------------------------------------------------------
# Get the url for a web gadget.
# --------------------------------------------------------------------------
- def getWebGadgetUrl(gadget, baseUrl, command, parameters = {}):
+ def getWebGadgetUrl(gadget, baseUrl, command, parameters = {},
+ hiddenList = []):
"""Get the url for a web gadget.
@param gadget: Gadget object.
@param baseUrl: Base url of the web gadgets.
@param command: Gadget command.
@param parameters: Parameters dictionary.
+ @param hiddenList: List of parameters to hide.
@return: A web url.
"""
params = ""
@@ -54,20 +56,27 @@
if len(params) > 0:
params += "|"
params += "%s=%s" % (key, parameters[key])
+ hList = ""
+ for h in hiddenList:
+ if len(hList) > 0:
+ hList += "|"
+ hList += h
uuid = gadget.getDescription().getUuid()
- url = "%suuid=%s&command=%s¶meters=%s" % (baseUrl, uuid, command,
- params)
+ url = "%suuid=%s&command=%s¶meters=%s&hiddenlist=%s" % (baseUrl,
+ uuid, command, params, hList)
return url
# --------------------------------------------------------------------------
# Generate a web gadget structure.
# --------------------------------------------------------------------------
- def generateWebGadgetStructure(gadget, baseUrl, command, parameters = {}):
+ def generateWebGadgetStructure(gadget, baseUrl, command, parameters = {},
+ hiddenList = []):
"""Generate a web gadget structure.
@param gadget: Gadget object.
@param baseUrl: Base url.
@param command: Gadget command.
@param parameters: Parameters dictionary.
+ @param hiddenList: List of parameters to hide.
@return: A dictionary.
"""
structure = {}
@@ -124,13 +133,13 @@
# Serialize enum values
for key in structure['parameters']:
param = structure['parameters'][key]
- if param['type'] == 'enum':
+ if param['type'] in ['enum', 'booleans']:
values = param['enum_values'].split(",")
enums = {}
for i, value in enumerate(values):
dName = "enum_%.2d" % i
if value != '':
- enums[dName] = value
+ enums[dName] = value.strip()
param['enum_values'] = enums
# Insert the command
structure['command'] = command
@@ -141,19 +150,27 @@
param = structure['parameters'][sKey]
if param['name'] == key:
param['default_value'] = parameters[key]
- param['visible'] = 'false'
+ # Hide parameters from the hidden list
+ for sKey in structure['parameters']:
+ param = structure['parameters'][sKey]
+ if param['name'] in hiddenList:
+ param['visible'] = 'false'
return structure
# --------------------------------------------------------------------------
# Generate the code of a google gadget.
# --------------------------------------------------------------------------
- def generateGoogleGadgetCode(gadget, baseUrl, command, parameters = {}):
+ def generateGoogleGadgetCode(gadget, baseUrl, command, parameters = {},
+ hiddenList = []):
"""Generate the code of a google gadget.
@param baseUrl: Base url of the web gadgets.
@param command: Gadget command.
@param parameters: Parameters dictionary.
+ @param hiddenList: List of parameters to hide.
+ @return: The google gadget html code.
"""
- url = WebGadgetTools.getWebGadgetUrl(gadget, baseUrl, command, parameters)
+ url = WebGadgetTools.getWebGadgetUrl(gadget, baseUrl, command,
+ parameters, hiddenList)
if parameters.has_key('language'):
language = parameters['language']
else:
|