Your IP : 18.222.197.132
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:mgr="http://ispsystem.com/xslplugin" xmlns:xdsl="http://www.w3.org/1999/XSL/Transform" exclude-result-prefixes="mgr">
<xsl:import href="extfunc.xsl"/>
<xsl:output method="xml" encoding="UTF-8" indent="no" omit-xml-declaration="yes"/>
<xsl:key name="msg" match="/doc/messages/msg" use="@name"/>
<xsl:variable name="messages" select="/doc/messages"/>
<xsl:variable name="binary" select="/doc/@binary"/>
<xsl:variable name="host" select="/doc/@host"/>
<xsl:variable name="commondir">/manimg/common/</xsl:variable>
<xsl:variable name="url" select="concat($host, $binary)"/>
<xsl:template match="/doc">
<!-- jsonp suppport header -->
<xsl:if test="/doc/tparams/callback">
<xsl:value-of select="/doc/tparams/callback"/>(
</xsl:if>
{
"setvalues": { <xsl:apply-templates select="./*"/> }
}
<!-- jsonp support footer -->
<xsl:if test="/doc/tparams/callback">
);
</xsl:if>
</xsl:template>
<xsl:variable name="form" select="/doc/metadata/form"/>
<xsl:template match="/doc/*">
<xsl:if test="position() = 1">"nullmsg" : "<xsl:value-of select="/doc/messages/msg[@name='null']"/>"</xsl:if>
<xsl:variable name="name" select="local-name()"/>
<xsl:if test="$name != 'metadata' and $name != 'messages' and $name != 'doc'">
<xsl:variable name="controltype" select="/doc/metadata//field//*[@name = $name]"/>
<xsl:choose>
<!--select elems -->
<xsl:when test="$name = 'slist'">
<xsl:variable name="sname" select="@name"/>
,"<xsl:value-of select="@name"/>" : { "slist" : [
<xsl:apply-templates select="val"/>
],
<xsl:choose>
<xsl:when test="count(/doc/*[local-name() = $sname]) > 1">
"value" : [
<xsl:for-each select="/doc/*[local-name() = $sname]">
"<xsl:value-of select="mgr:fixquote(.)"/>"<xsl:if test="position() != last()">,</xsl:if>
</xsl:for-each>
]
</xsl:when>
<xsl:otherwise>
"value" : "<xsl:value-of select="/doc/*[local-name() = $sname]"/>"
</xsl:otherwise>
</xsl:choose>
<xsl:variable name="valueField" select="/doc/*[local-name() = $sname]"/>
<xsl:if test="$valueField/@readonly">, "readonly" : "<xsl:value-of select="$valueField/@readonly"/>"</xsl:if>
}
</xsl:when>
<!-- tree elems -->
<xsl:when test="$name = 'tlist'">
,"<xsl:value-of select="@name"/>" : { "tlist" : [
<xsl:apply-templates select="val"/>
]
,"value" : "<xsl:value-of select="/doc/*[local-name() = current()/@name]"/>"
}
</xsl:when>
<!-- form list -->
<xsl:when test="$name = 'list'">
,"<xsl:value-of select="@name"/>" : <xsl:apply-templates select="/doc/metadata/form//list[@name = current()/@name]"/>
</xsl:when>
<xsl:when test="$name = 'flist'">
,"<xsl:value-of select="@name"/>": <xsl:apply-templates select="/doc/metadata/form//listfilter[@name = current()/@name]"/>
</xsl:when>
<!-- multiselect values -->
<xsl:when test="(count(/doc/*[local-name() = $name]) > 1) and (not(/doc/slist[@name = $name]))">
,"<xsl:value-of select="$name"/>" : [
<xsl:for-each select="/doc/*[local-name() = $name]">
"<xsl:value-of select="mgr:fixquote(.)"/>"<xsl:if test="position() != last()">,</xsl:if>
</xsl:for-each>
]
</xsl:when>
<!--ticket message-->
<xsl:when test="$name = 'mlist'">
<xsl:variable name="mname" select="@name"/>
,"<xsl:value-of select="$mname"/>" : { "mlist" : [
<xsl:call-template name="mlist"><xsl:with-param name="msg" select="."/></xsl:call-template>
]}
</xsl:when>
<xsl:when test="$name = 'buttons'">
,"buttons": [
<xsl:for-each select="./*">
<xsl:if test="position() != 1">,</xsl:if>
{ "name" : "<xsl:value-of select="@name"/>"
,"flags" : " default
<xsl:if test="@keepform">| keepform</xsl:if>
<xsl:if test="$form/@cancelrefresh">| refresh</xsl:if>
<xsl:if test="@blocking">
| blocking</xsl:if>"
<xsl:if test="@func">
,"func" : "<xsl:value-of select="@func"/>"
</xsl:if>
<xsl:if test="@default">
,"default": true
</xsl:if>
,"act" : "<xsl:choose><xsl:when test="$form/@target">blank</xsl:when><xsl:otherwise><xsl:value-of select="@type"/></xsl:otherwise></xsl:choose>"
,"type" : "<xsl:choose><xsl:when test="@type = 'cancel' or @type = 'setvalues' or @type = 'reset' or @type = 'func'"><xsl:value-of select="@type"/></xsl:when><xsl:otherwise>ok</xsl:otherwise></xsl:choose>"
,"msg" : "<xsl:value-of select="mgr:fixquote(key('msg', concat('msg_', @name)))"/>"
,"hint" : "<xsl:value-of select="mgr:fixquote(key('msg', concat('hint_', @name)))"/>"
,"color" : "<xsl:value-of select="@color"/>"
,"disabled": <xsl:choose><xsl:when test="@disabled">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose>
,"disabledText" : "<xsl:value-of select="mgr:fixquote(key('msg', 'msg_disabled'))"/>" }
</xsl:for-each>
]
</xsl:when>
<!--single value-->
<xsl:when test="not(/doc/slist[@name = $name])">
<!--detect type of control-->
<xsl:choose>
<xsl:when test="local-name($controltype) = 'textdata'">
<xsl:choose>
<xsl:when test="$controltype/@type = 'msgdata'">
,"<xsl:value-of select="$name"/>" : { "value" : "<xsl:value-of select="mgr:fixquote(/doc/messages/msg[@name = current()/text()])"/>" }
</xsl:when>
<xsl:otherwise>
,"<xsl:value-of select="$name"/>" : { "value" : "<xsl:value-of select="mgr:fixquote(.)"/>" }
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
,"<xsl:value-of select="$name"/>": { "value": "<xsl:value-of select="mgr:fixquote(.)" disable-output-escaping="yes"/>"
<xsl:if test="@readonly">, "readonly": "<xsl:value-of select="@readonly"/>"</xsl:if>
<xsl:if test="@mask">, "mask": "<xsl:value-of select="mgr:fixquote(@mask)"/>"</xsl:if>
<xsl:if test="//input[@name=$name][@prefix]">, "prefix": "<xsl:value-of select="mgr:fixquote(/doc/*[local-name() = concat($name, '_prefix')])"/>"</xsl:if>
<xsl:if test="@min">,"min": "<xsl:value-of select="@min"/>"</xsl:if>
<xsl:if test="@max">,"max": "<xsl:value-of select="@max"/>"</xsl:if>
<xsl:if test="@step">,"step": "<xsl:value-of select="@step"/>"</xsl:if>
}
</xsl:otherwise>
</xsl:choose>
</xsl:when>
</xsl:choose>
</xsl:if>
</xsl:template>
<xsl:template match="slist">
"<xsl:value-of select="@name"/>" : { "slist" : [
<xsl:apply-templates select="slist/val"/>
],
"value" : "<xsl:value-of select="/doc/*[local-name() = current()/@name]"/>"
}
</xsl:template>
<!--slist-->
<xsl:template match="slist/val">
<xsl:variable name="key">
<xsl:choose>
<xsl:when test="@key">
<xsl:value-of select="mgr:fixquote(@key)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="mgr:fixquote(.)"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
{
"key": "<xsl:value-of select="$key"/>"
,"value": "<xsl:value-of select="mgr:fixquote(.)"/>"
,"depend": "<xsl:value-of select="@depend"/>"
<!--,"handlerValue" : "<xsl:value-of select="generate-id(@key)"/>"-->
,"classes": "<xsl:if test="@color">b-myselect__item_color_<xsl:value-of select="@color"/></xsl:if>"
,"code": "<xsl:value-of select="mgr:fixquote(@code)"/>"
,"mask": "<xsl:value-of select="mgr:fixquote(@mask)"/>"
<xsl:if test="@image">
,"src" : "<xsl:value-of select="concat($host, mgr:fixquote(@image))"/>"
,"width" : "<xsl:value-of select="@width"/>"
,"height" : "<xsl:value-of select="@height"/>"
</xsl:if>
<xsl:if test="@img">
<xsl:variable name="width" select="@width"/>
<xsl:choose>
<xsl:when test="@sprite">
,"img" : "<xsl:value-of select="concat(@img, ' s-icon s', $width, 'x', $width)"/>"
</xsl:when>
<xsl:otherwise>
,"src" : "<xsl:value-of select="concat($commondir, 'img/', @img, '.png')"/>"
</xsl:otherwise>
</xsl:choose>
,"width" : "<xsl:value-of select="@width"/>"
,"height" : "<xsl:value-of select="@height"/>"
</xsl:if>
}
<xsl:if test="position() != last()">,</xsl:if>
</xsl:template>
<!--tlist-->
<xsl:template match="tlist/val">
<xsl:variable name="key">
<xsl:choose>
<xsl:when test="@key">
<xsl:value-of select="mgr:fixquote(@key)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="mgr:fixquote(.)"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
{
"key" :"<xsl:value-of select="$key"/>"
,"value" : "<xsl:value-of select="mgr:fixquote(.)"/>"
,"img" : "<xsl:value-of select="@img"/>"
,"collapsed" : <xsl:choose><xsl:when test="@collapsed">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose>
,"child" : []
}
<xsl:if test="position() != last()">,</xsl:if>
</xsl:template>
<!--ticket list-->
<xsl:template name="mlist">
<xsl:param name="msg"/>
<xsl:for-each select="$msg/message">
<xsl:choose>
<xsl:when test="@type = 'info'">
{
"type" : "<xsl:value-of select="@type"/>"
,"avatar" : { "is" : false }
,"rows" : [<xsl:for-each select="./*">
{ "label" : "<xsl:value-of select="mgr:fixquote(key('msg', current()/@name))"/>"
,"header" : true
}<xsl:if test="position() != last()">,</xsl:if><xsl:if test="position() = last() and current()/row">,</xsl:if>
<xsl:for-each select="./*">
{"label" : "<xsl:value-of select="mgr:fixquote(key('msg', current()/@name))"/>"
,"v" : "<xsl:value-of select="mgr:fixquote(.)"/>"
}<xsl:if test="position() != last() or count(parent::node()/following-sibling::node()) > 0">,</xsl:if>
</xsl:for-each>
</xsl:for-each>]
}<xsl:if test="position() != last()">,</xsl:if>
</xsl:when>
<xsl:otherwise>
{
"type" : "<xsl:value-of select="@type"/>"
,"title" : "<xsl:value-of select="mgr:fixquote(./title)"/>"
,"body" : "<xsl:value-of select="mgr:fixquote(./body)"/>"
<xsl:choose>
<xsl:when test="./avatar">
,"avatar" : { "is" : true
,"src" : "<xsl:value-of select="./avatar"/>"
,"width" : "<xsl:value-of select="./avatar/@width"/>"
,"height" : "<xsl:value-of select="./avatar/@height"/>"
}
</xsl:when>
<xsl:otherwise>,"avatar" : { "is" : false }</xsl:otherwise>
</xsl:choose>
<xsl:choose>
<xsl:when test="./file">
,"file" : { "is" : true,
"elems" : [<xsl:for-each select="./file">
{ "action" : "<xsl:value-of select="@action"/>"
,"preview" : <xsl:choose><xsl:when test="@imgpreview">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose>
,"name" : "<xsl:value-of select="mgr:fixquote(./name)"/>"
,"params" : [<xsl:for-each select="./param">
{"name" : "<xsl:value-of select="@name"/>", "value" : "<xsl:value-of select="mgr:fixquote(.)"/>"}
<xsl:if test="position() != last()">,</xsl:if></xsl:for-each>]}<xsl:if test="position() != last()">,</xsl:if>
</xsl:for-each>
]}
</xsl:when>
<xsl:otherwise>,"file" : { "is" : false }</xsl:otherwise>
</xsl:choose>
<xsl:variable name="ratelike" select="./setrate[@name='like']"/>
<xsl:variable name="ratedislike" select="./setrate[@name='dislike']"/>
<xsl:variable name="rate" select="./rate"/>
<xsl:choose>
<xsl:when test="./setrate">
,"rate": {
"is": true
,"msg": "<xsl:value-of select="mgr:fixquote(key('msg', 'msg_rate'))"/>"
,"id": "<xsl:value-of select="@id"/>"
,"elid": "<xsl:value-of select="/doc/elid"/>"
,"classes": "i-ticket__rate"
,"like": {
"img": "<xsl:value-of select="concat($commondir, 'img/', mgr:fixquote($ratelike/@img), '.png')"/>"
,"func": "<xsl:value-of select="$ratelike/@func"/>"
,"msg": "<xsl:value-of select="mgr:fixquote(key('msg', 'msg_rate_like'))"/>"
}
,"dislike": {
"img": "<xsl:value-of select="concat($commondir, 'img/', mgr:fixquote($ratedislike/@img), '.png')"/>"
,"func": "<xsl:value-of select="$ratedislike/@func"/>"
,"msg": "<xsl:value-of select="mgr:fixquote(key('msg', 'msg_rate_dislike'))"/>"
}
}
</xsl:when>
<xsl:when test="./rate">
,"rate": {
"is": true
,"classes": ""
,"msg": "<xsl:value-of select="mgr:fixquote(key('msg', 'msg_rate_done'))"/>"
<xsl:choose>
<xsl:when test="./rate/@name = 'like'">
,"like": {
"img": "<xsl:value-of select="concat($commondir, 'img/', mgr:fixquote($rate/@img), '.png')"/>"
,"msg": "<xsl:value-of select="mgr:fixquote(key('msg', 'msg_rate_like'))"/>"
}
</xsl:when>
<xsl:otherwise>
,"dislike": {
"img": "<xsl:value-of select="concat($commondir, 'img/', mgr:fixquote($rate/@img), '.png')"/>"
,"msg": "<xsl:value-of select="mgr:fixquote(key('msg', 'msg_rate_dislike'))"/>"
}
</xsl:otherwise>
</xsl:choose>
}
</xsl:when>
<xsl:otherwise>
,"rate": {
"is": false
}
</xsl:otherwise>
</xsl:choose>
}<xsl:if test="position() != last()">,</xsl:if>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:template>
<!--form listfilter-->
<xsl:template match="/doc/metadata/form//listfilter">
<xsl:variable select="parent::node()/@name" name="pname"/>
{
"label": "<xsl:value-of select="mgr:fixquote(key('msg', @name))"/>"
,"type": "listfilter"
,"name": "<xsl:value-of select="@name"/>"
,"srcField": "<xsl:value-of select="@src_field"/>"
,"srcName": "<xsl:value-of select="parent::node()/list/@name"/>"
<xsl:if test="@fixed = 'yes'">
,"fixed": true
</xsl:if>
,"resetMsg": "<xsl:value-of select="mgr:fixquote(key('msg', 'filterclear'))"/>"
,"notFoundMsg": "<xsl:value-of select="mgr:fixquote(key('msg', 'msg_formlist_filter_notfound'))"/>"
,"list": [
<xsl:for-each select="/doc/flist[@name = current()/@name]/val">
{"name": "filter__<xsl:value-of select="@key"/>",
"value": "<xsl:choose><xsl:when test="@val"><xsl:value-of select="@val"/></xsl:when><xsl:otherwise>off</xsl:otherwise></xsl:choose>",
"cbclass": "",
"desc": "<xsl:value-of select="mgr:fixquote(.)"/>" }
<xsl:if test="position() != last()">,</xsl:if>
</xsl:for-each>]
<xsl:if test="key('elsehide', $pname)">
,"show" : [<xsl:call-template name="elsehidefield"><xsl:with-param name="el" select="key('elsehide', $pname)"/></xsl:call-template>]
</xsl:if>
<xsl:if test="key('ifhide', $pname)">
,"hide" : [<xsl:call-template name="hidefield"><xsl:with-param name="el" select="key('ifhide', $pname)"/></xsl:call-template>]
</xsl:if>
}
</xsl:template>
<!--form list-->
<xsl:template match="/doc/metadata/form//list">
<xsl:variable select="parent::node()/@name" name="pname"/>
<xsl:variable name="name" select="@name"/>
<xsl:variable name="col" select="col"/>
<xsl:variable name="listfilter" select="parent::node()/listfilter"/>
<xsl:variable name="list" select="."/>
{
"name": "<xsl:value-of select="$name"/>"
,"type" : "list"
,"view": "<xsl:choose><xsl:when test="@type"><xsl:value-of select="@type"/></xsl:when><xsl:otherwise>list</xsl:otherwise></xsl:choose>"
<xsl:if test="$listfilter">
,"filterfield": "<xsl:value-of select="$listfilter/@src_field"/>"
</xsl:if>
<!--,"formflags" : {-->
<!--"disabledText" : "<xsl:value-of select="mgr:fixquote(key('msg', 'msg_disabled'))"/>"-->
<!--}-->
,"coldata": {
<xsl:for-each select="$col">
"<xsl:value-of select="@name"/>" : {
"name" : "<xsl:value-of select="@name"/>"
,"type" : "<xsl:value-of select="@type"/>"
,"align" : "<xsl:choose><xsl:when test="@align"><xsl:value-of select="@align"/></xsl:when><xsl:otherwise>left</xsl:otherwise></xsl:choose>"
,"width" : "<xsl:choose><xsl:when test="@width"><xsl:value-of select="@width"/></xsl:when><xsl:otherwise>auto</xsl:otherwise></xsl:choose>"
}<xsl:if test="position() != last()">,</xsl:if></xsl:for-each>}
,"rows" : [
<xsl:if test="@type = 'table'">
{
<xsl:for-each select="$col">
"<xsl:value-of select="@name"/>" : {
"v" : "<xsl:value-of select="mgr:fixquote(key('msg', concat('list_', current()/@name)))"/>"
,"header" : true
}<xsl:if test="position() != last()">,</xsl:if>
</xsl:for-each>
}<xsl:if test="count(/doc/list[@name = $name]/elem) > 0">,</xsl:if>
</xsl:if>
<xsl:for-each select="/doc/list[@name = $name]/elem">
{
<xsl:for-each select="./*">
<xsl:variable name="colname" select="local-name()"/>
<xsl:variable name="type" select="$col[@name = $colname]/@type"/>
"<xsl:value-of select="$colname"/>":
<xsl:choose>
<xsl:when test="$type = 'button'">
[<xsl:for-each select="./button">
{"name" : "<xsl:value-of select="@name"/>"
,"act" : "<xsl:choose><xsl:when test="$form/@target">blank</xsl:when><xsl:otherwise><xsl:value-of select="@type"/></xsl:otherwise></xsl:choose>"
,"type" : "<xsl:choose><xsl:when test="@type = 'cancel' or @type = 'setvalues' or @type = 'reset' or @type = 'func'"><xsl:value-of select="@type"/></xsl:when><xsl:otherwise>ok</xsl:otherwise></xsl:choose>"
,"msg" : "<xsl:value-of select="mgr:fixquote(key('msg', concat('msg_', @name)))"/>"
,"id": "<xsl:choose><xsl:when test="@key"><xsl:value-of select="$list/@key"/>=<xsl:value-of select="../../*[local-name() = current()/@key]"/></xsl:when><xsl:otherwise><xsl:value-of select="$list/@key"/>=<xsl:value-of select="../../*[local-name() = $list/@key]"/></xsl:otherwise></xsl:choose>"
,"hint" : "<xsl:value-of select="mgr:fixquote(key('msg', concat('hint_', @name)))"/>"
,"flags" : " default
<xsl:if test="@keepform">| keepform</xsl:if>
<xsl:if test="$form/@cancelrefresh">| refresh</xsl:if>
<xsl:if test="@blocking">
| blocking</xsl:if>"
<xsl:if test="@func">
,"func" : "<xsl:value-of select="@func"/>"
</xsl:if>
<xsl:if test="@default">
,"default": true
</xsl:if>
,"color" : "<xsl:value-of select="@color"/>"
,"disabled": <xsl:choose><xsl:when test="@disabled">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose>
,"disabledText" : "<xsl:value-of select="mgr:fixquote(key('msg', 'msg_disabled'))"/>"
}<xsl:if test="position() != last()">,</xsl:if></xsl:for-each>]
</xsl:when>
<xsl:when test="$type = 'img'">
{
<xsl:choose>
<xsl:when test="@img">
<xsl:variable name="width" select="@width"/>
<xsl:choose>
<xsl:when test="@sprite">
"img" : "<xsl:value-of select="concat(@img, ' s-icon s', $width, 'x', $width) "/>"
</xsl:when>
<xsl:otherwise>
"src" : "<xsl:value-of select="concat($host, $commondir, 'img/', @img, '.png')"/>"
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
"src" : "<xsl:value-of select="$host"/><xsl:value-of select="mgr:fixquote(.)"/>"
</xsl:otherwise>
</xsl:choose>
,"preview": <xsl:choose><xsl:when test="$col[@name = $colname]/@preview">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose>
,"width" : "<xsl:value-of select="$col[@name = $colname]/@width"/>"
,"height" : "<xsl:value-of select="$col[@name = $colname]/@height"/>"
}
</xsl:when> <xsl:when test="$type = 'control'">
[<xsl:for-each select="./input">
<xsl:apply-templates select="."/>
</xsl:for-each>
<xsl:for-each select="./select">
<xsl:apply-templates select="."/>
</xsl:for-each>
]
</xsl:when>
<xsl:when test="$type = 'msg'">
<xsl:variable name="msgContent" select="mgr:fixquote(key('msg', current()))"/>
{ "v" : "<xsl:choose><xsl:when test="$msgContent != ''"><xsl:value-of select="$msgContent"/></xsl:when><xsl:otherwise><xsl:value-of select="mgr:fixquote(current())"/></xsl:otherwise></xsl:choose>"
<xsl:if test="@color">
,"color" : "<xsl:value-of select="@color"/>"
</xsl:if>
}
</xsl:when>
<xsl:when test="$listfilter and $listfilter/@src_field = local-name()">
{
"v": [<xsl:for-each select="./tag">"<xsl:value-of select="mgr:fixquote(.)"/>"<xsl:if test="position() != last()">,</xsl:if></xsl:for-each>]
,"o": {<xsl:for-each select="./tag">"<xsl:value-of select="mgr:fixquote(.)"/>" : true<xsl:if test="position() != last()">,</xsl:if></xsl:for-each>}
}
</xsl:when>
<xsl:otherwise>
{ "v" : "<xsl:value-of select="mgr:fixquote(.)"/>"
<xsl:if test="@color">
,"color" : "<xsl:value-of select="@color"/>"
</xsl:if>
}
</xsl:otherwise>
</xsl:choose>
<xsl:if test="position() != last()">,</xsl:if></xsl:for-each>
}<xsl:if test="position() != last()">,</xsl:if>
</xsl:for-each>]
}<xsl:if test="position() != last()">,</xsl:if>
</xsl:template>
<!--input type=checkbox -->
<xsl:template match="input[@type = 'checkbox']">
<xsl:variable select="@name" name="name"/>
<xsl:variable select="parent::node()/@name" name="pname"/>
<xsl:variable name="checked">
<xsl:choose>
<xsl:when test="@diffvalues"></xsl:when>
<xsl:when test="/doc/*[local-name() = $name] = 'on'">checked</xsl:when>
</xsl:choose>
</xsl:variable>
{
"attr" : "type='checkbox' name='<xsl:value-of select="$name"/>' value='<xsl:if test="count(/doc/*[local-name() = $name]) != 0">on</xsl:if>'"
,"label" : "<xsl:if test="not(parent::node()/@noname)"><xsl:value-of select="mgr:fixquote(key('msg', $pname))"/></xsl:if>"
,"type" : "<xsl:value-of select="@type"/>"
,"name" : "<xsl:value-of select="$name"/>"
,"value" : "<xsl:choose><xsl:when test="/doc/*[local-name() = $name] = 'on'">on</xsl:when><xsl:otherwise>off</xsl:otherwise></xsl:choose>"
,"cbclass" : "<xsl:value-of select="$checked"/> <xsl:if test="@default"> i-checkbox_type_default</xsl:if>"
,"hint" : "<xsl:value-of select="mgr:fixquote(key('msg', concat('hint_', $pname)))"/>"
<xsl:if test="key('msg', concat('shadow_hint_', $pname))">,"shadowHint" : "<xsl:value-of select="mgr:fixquote(key('msg', concat('shadow_hint_', $pname)))"/>"</xsl:if>
,"dependFields" : "<xsl:if test="if or @plainhint">control-field</xsl:if>"
,"fieldname" : "<xsl:value-of select="parent::node()/@name"/>"
,"setvalue" : "<xsl:choose><xsl:when test="@setvalues = 'finalblock'">setvalue sv_nochange sv_blocking</xsl:when><xsl:when test="@setvalues = 'final'">setvalue sv_nochange </xsl:when><xsl:when test="@setvalues = 'blocking'">setvalue sv_blocking</xsl:when><xsl:when test="@setvalues = 'yes'">setvalue</xsl:when><xsl:when test="@setvalue"><xsl:value-of select="@setvalue"/></xsl:when></xsl:choose>"
,"readonly" : "<xsl:if test="@readonly = 'yes'">readonly</xsl:if>"
<xsl:variable name="desc" select="parent::node()/desc/@name"/>
,"attrInput" : "<xsl:if test="@diffvalues">data-novalue='yes'</xsl:if>"
,"desc" : "<xsl:value-of select="mgr:fixquote(key('msg', $desc))" disable-output-escaping="yes"/>"
}
<xsl:if test="position() != last()">,</xsl:if>
</xsl:template>
<!--input type = text -->
<xsl:template match="input[@type = 'text']">
<xsl:variable select="@name" name="name"/>
<xsl:variable name="pname" select="parent::node()/@name"/>
<xsl:variable name="valuefield" select="/doc/*[local-name() = $name]"/>
<xsl:variable name="value" select="mgr:fixquote($valuefield/text())"/>
{
"attr" : "type='text' name='<xsl:value-of select="$name" disable-output-escaping="yes"/>'
<xsl:if test="@maxlength">maxlength='<xsl:value-of select="@maxlength"/>'</xsl:if>
<xsl:if test="@readonly"> readonly</xsl:if>
<xsl:if test="@check"> data-check='<xsl:value-of select="@check"/>' data-fieldname='<xsl:value-of select="parent::node()/@name"/>' data-funcname='<xsl:value-of select="/doc/@func"/>'</xsl:if>
<xsl:if test="@checkargs"> data-check-args='<xsl:value-of select="@checkargs"/>' </xsl:if>
<xsl:if test="@duplicate = 'yes'"> duplicate='yes' </xsl:if>
<xsl:if test="@required ='yes'"> required='required' </xsl:if>
<xsl:if test="$messages/msg[@name = concat('placeholder_', $pname)] != ''"> placeholder='<xsl:value-of select="mgr:fixquote($messages/msg[@name = concat('placeholder_', $pname)])"/>' </xsl:if>
<xsl:if test="@unlimit"> data-unlimit='<xsl:value-of select="@unlimit"/>' </xsl:if>
<xsl:if test="@convert"> data-convert='<xsl:value-of select="@convert"/>' </xsl:if>
<xsl:if test="@diffvalues"> data-novalue='yes' </xsl:if>
<xsl:if test="@delimiter"> data-delimiter='<xsl:value-of select="@delimiter"/>' </xsl:if>
<xsl:if test="@oncesyncfield"> data-syncfield='<xsl:value-of select="@oncesyncfield"/>'</xsl:if>"
,"value" : "<xsl:value-of select="$value"/>"
,"required" : "<xsl:if test="@required">required</xsl:if>"
,"label" : "<xsl:if test="not(parent::node()/@noname)"><xsl:value-of select="mgr:fixquote(key('msg', $pname))"/></xsl:if>"
,"type" : "<xsl:value-of select="@type"/>"
,"name" : "<xsl:value-of select="$name"/>"
,"hint" : "<xsl:value-of select="mgr:fixquote(key('msg', concat('hint_', $pname)))"/>"
<xsl:if test="key('msg', concat('shadow_hint_', $pname))">,"shadowHint" : "<xsl:value-of select="mgr:fixquote(key('msg', concat('shadow_hint_', $pname)))"/>"</xsl:if>
,"fieldname" : "<xsl:value-of select="parent::node()/@name"/>"
<xsl:variable name="desc" select="parent::node()/desc/@name"/>
,"desc" : "<xsl:value-of select="mgr:fixquote($messages/msg[@name = $desc])"/>"
,"descName": "<xsl:value-of select="$desc"/>"
<xsl:if test="@zoom">
,"textareaAttr" : " name= 'zoom-<xsl:value-of select="$name"/>' rows='<xsl:choose><xsl:when test="@zoom"><xsl:value-of select="@zoom"/></xsl:when><xsl:otherwise>0</xsl:otherwise></xsl:choose>' data-control-field='<xsl:value-of select="$name"/>' <xsl:if test="@readonly"> readonly</xsl:if>"
</xsl:if>
<xsl:if test="@prefix">
,"prefix" : "<xsl:value-of select="mgr:fixquote(/doc/*[local-name() = concat($name, '_prefix')])"/>"
</xsl:if>
,"unlimit" : <xsl:choose><xsl:when test="@unlimit">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose>
,"change" : <xsl:choose><xsl:when test="@change">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose>
,"zoom" : <xsl:choose><xsl:when test="@zoom">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose>
,"hintBtn" : "<xsl:choose><xsl:when test="@zoom"><xsl:value-of select="mgr:fixquote(key('msg', 'msg_zoom')) "/></xsl:when><xsl:when test="@date"><xsl:value-of select="mgr:fixquote(key('msg', 'msg_calendar')) "/></xsl:when><xsl:when test="@unlimit"><xsl:value-of select="mgr:fixquote(key('msg', 'msg_unlimit')) "/></xsl:when><xsl:when test="@change"><xsl:value-of select="mgr:fixquote(key('msg', 'msg_change')) "/></xsl:when></xsl:choose>"
,"zoomlen" : <xsl:choose><xsl:when test="@zoom"><xsl:value-of select="@zoom"/></xsl:when><xsl:otherwise>0</xsl:otherwise></xsl:choose>
,"date" : <xsl:choose><xsl:when test="@date">"<xsl:value-of select="@date"/>"</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose>
,"dependFields" : "<xsl:if test="if">control-field</xsl:if>"
,"setvalue" : "<xsl:choose><xsl:when test="@setvalues = 'finalblock'">setvalue sv_nochange sv_blocking</xsl:when><xsl:when test="@setvalues = 'final'">setvalue sv_nochange</xsl:when><xsl:when test="@setvalues = 'blocking'">setvalue sv_blocking</xsl:when><xsl:when test="@setvalues = 'yes'">setvalue</xsl:when><xsl:when test="@setvalues"><xsl:value-of select="@setvalues"/></xsl:when></xsl:choose>"
<xsl:if test="parent::node()/@fullwidth = 'yes'">
,"fullwidth" : true
</xsl:if>
<xsl:if test="parent::node()/@formwidth = 'yes'">
,"formwidth" : true
</xsl:if>
<xsl:if test="@delimiter">
,"delimiter" : "<xsl:value-of select="@delimiter"/>"
</xsl:if>
<xsl:variable name="addition" select="local-name(following-sibling::*[1])"/>
<xsl:variable name="additiontype" select="following-sibling::*[1]/@type"/>
<xsl:if test="$addition = 'select' or ($addition = 'input' and $additiontype != 'hidden') or $addition = 'link'">
,"hasAddition": true
</xsl:if>
<!--check if it addition field -->
<xsl:variable name="prevelem" select="local-name(preceding-sibling::*[1])"/>
<xsl:variable name="prevelemtype" select="preceding-sibling::*[1]/@type"/>
<xsl:if test="$prevelem = 'select' or ($prevelem = 'input' and $prevelemtype != 'hidden')">
,"skip": true
</xsl:if>
<xsl:if test="@check">
,"test" : "<xsl:value-of select="@check"/>"
</xsl:if>
<xsl:if test="/doc/error/@object = $name">
,"error" : "<xsl:value-of select="mgr:fixquote(/doc/error/msg)"/>"
</xsl:if>
}
<xsl:if test="position() != last()">,</xsl:if>
</xsl:template>
<!--select -->
<xsl:template match="select">
<xsl:variable select="@name" name="name"/>
<xsl:variable name="pname" select="parent::node()/@name"/>
<xsl:variable name="value" select="mgr:fixquote(/doc/*[local-name() = $name]/text())"/>
<xsl:variable name="color" select="/doc/slist[@name = $name]/val[@key = /doc/*[local-name() = $name]/text()]/@color"/>
<xsl:variable name="depend" select="//select[@depend = $name]/@name"/>
<xsl:variable name="svalue">
<xsl:choose>
<xsl:when test="@diffvalues"></xsl:when>
<xsl:when test="$value = ''"><xsl:value-of select="mgr:fixquote(/doc/slist[@name = $name]/val[1]/@key)"/></xsl:when>
<xsl:otherwise><xsl:value-of select="$value"/></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="selvalue" >
<xsl:variable name="selvalueins" select="/doc/slist[@name = $name]/val[@key = $svalue]"/>
<xsl:choose>
<xsl:when test="@diffvalues"><xsl:value-of select="key('msg', 'null')"/></xsl:when>
<xsl:when test="$selvalueins != ''"><xsl:value-of select="$selvalueins"/></xsl:when>
<xsl:otherwise><xsl:value-of select="key('msg', 'null')"/></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="image">
<xsl:variable name="selected" select="/doc/slist[@name = $name]/val[@key = /doc/*[local-name() = $name]/text()]"/>
<xsl:choose>
<xsl:when test="$selected/@image">
<xsl:variable name="src" select="mgr:fixquote($selected/@image)"/>
<xsl:variable name="width" select="mgr:fixquote($selected/@width)"/>
<xsl:variable name="height" select="mgr:fixquote($selected/@height)"/>
<xsl:value-of select="concat('<span class=b-myselect__img style=background:url(', $src, ');width:', $width , 'px;height:', $height, 'px; ></span>')"/>
</xsl:when>
<xsl:when test="$selected/@sprite and $selected/@img">
<xsl:variable name="width" select="$selected/@width"/>
<xsl:variable name="src" select="concat($selected/@img, ' s-icon s', $width, 'x', $width, '"')"/>
<xsl:value-of select="concat('<span class="b-myselect__img ', $src, '></span>')"/>
</xsl:when>
<xsl:when test="$selected/@img">
<xsl:variable name="width" select="$selected/@width"/>
<xsl:variable name="src" select="concat($commondir, 'img/', $selected/@img, '.png')"/>
<xsl:value-of select="concat('<span class=b-myselect__img style=background:url(', $src, ');width:', $width , 'px; ></span>')"/>
</xsl:when>
<xsl:otherwise>&nbsp;</xsl:otherwise>
</xsl:choose>
</xsl:variable>
{
"label" : "<xsl:if test="not(parent::node()/@noname)"><xsl:value-of select="mgr:fixquote(key('msg', $pname))"/></xsl:if>"
,"type" : "select"
,"name" : "<xsl:value-of select="$name"/>"
<xsl:if test="@period">
,"period": true
</xsl:if>
,"slist" : [
<xsl:call-template name="slist">
<xsl:with-param name="nameslist" select="@name"/>
</xsl:call-template>
]
<xsl:if test="@plainhint">
,"plainhint": [{}
<xsl:call-template name="plainhint">
<xsl:with-param name="name" select="@name"/>
<xsl:with-param name="type" select="@type"/>
</xsl:call-template>
]
</xsl:if>
,"value" : "<xsl:value-of select="$svalue"/>"
,"img": "<xsl:value-of select="mgr:fixquote($image)" disable-output-escaping="yes"/>"
,"msg" : "<xsl:value-of select="mgr:fixquote(concat('<span class=b-myselect__item_color_', $color, '>', $selvalue, '</span>'))" disable-output-escaping="yes" />"
,"hint" : "<xsl:value-of select="mgr:fixquote(key('msg', concat('hint_', $pname)))"/>"
,"hintByName" : "<xsl:value-of select="mgr:fixquote(key('msg', concat('hint_', $name)))"/>"
<xsl:if test="key('msg', concat('shadow_hint_', $pname))">,"shadowHint" : "<xsl:value-of select="mgr:fixquote(key('msg', concat('shadow_hint_', $pname)))"/>"</xsl:if>
,"fieldname" : "<xsl:value-of select="parent::node()/@name"/>"
,"depend" : "<xsl:if test="$depend != ''">depend</xsl:if>"
,"propWidth": <xsl:choose><xsl:when test="@propwidth">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose>
,"dependMaster" : "<xsl:value-of select="@depend"/>"
,"dependFields" : "<xsl:if test="if or @plainhint">control-field</xsl:if>"
,"readonly" : "<xsl:if test="@readonly = 'yes'">readonly</xsl:if>"
,"required" : "<xsl:if test="@required">required</xsl:if>"
<xsl:if test="@targetfontfamilyview">
,"targetfontfamilyview" : "<xsl:value-of select="@targetfontfamilyview"/>"
</xsl:if>
<!-- check addition field-->
<xsl:variable name="addition" select="local-name(following-sibling::*[1])"/>
<xsl:variable name="additiontype" select="following-sibling::*[1]/@type"/>
<xsl:if test="$addition = 'select' or ($addition = 'input' and $additiontype != 'hidden') or $addition = 'link'">
,"hasAddition": true
</xsl:if>
<!--check if it addition field -->
<xsl:variable name="prevelem" select="local-name(preceding-sibling::*[1])"/>
<xsl:variable name="prevelemtype" select="preceding-sibling::*[1]/@type"/>
<xsl:if test="$prevelem = 'select' or ($prevelem = 'input' and $prevelemtype != 'hidden')">
,"skip": true
</xsl:if>
<!--dangerous find in select here!!!-->
,"setvalue" : "<xsl:choose><xsl:when test="@setvalues = 'finalblock'">setvalue sv_nochange sv_blocking</xsl:when><xsl:when test="@setvalues = 'final'">setvalue sv_nochange</xsl:when><xsl:when test="@setvalues = 'blocking'">setvalue sv_blocking</xsl:when><xsl:when test="@setvalues = 'yes'">setvalue</xsl:when><xsl:when test="@setvalues"><xsl:value-of select="@setvalues"/></xsl:when></xsl:choose><xsl:if test="count(//slist[@name = $name]/val) > 10"> sb-select</xsl:if>"
,"attrInput" : "<xsl:if test="@diffvalues">data-novalue='yes'</xsl:if>"
<xsl:if test="/doc/error/@object = $name">
,"error" : "<xsl:value-of select="mgr:fixquote(/doc/error/msg)"/>"
</xsl:if>
}
<xsl:if test="position() != last()">,</xsl:if>
</xsl:template>
<!--slist value-->
<xsl:template name="slist">
<xsl:param name="nameslist"/>
<xsl:apply-templates select="/doc/slist[@name = $nameslist]/*"/>
</xsl:template>
</xsl:stylesheet>