send_email.xsl 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  3. xmlns:xs="http://www.w3.org/2001/XMLSchema"
  4. xmlns:send_email="http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/send_email/send_email.xsd"
  5. exclude-result-prefixes="xs"
  6. version="2.0">
  7. <xsl:output indent="yes"/>
  8. <xsl:strip-space elements="*"/>
  9. <xsl:param name="basedir"/>
  10. <xsl:param name="send_email.send_email_from_xml_parsed.xml"/>
  11. <xsl:param name="antFunctionUrl" />
  12. <xsl:param name="confirmAntfile" />
  13. <xsl:param name="confirmAntfileTarget" />
  14. <xsl:param name="out.pdf"/>
  15. <xsl:template mode="send_email:send_email.send_email_from_xml_parsed.xml" match="*">
  16. <send_email:send_email_from_xml_parsed>
  17. <xsl:apply-templates mode="send_email:send_email_from_xml_parsed.child"/>
  18. </send_email:send_email_from_xml_parsed>
  19. </xsl:template>
  20. <xsl:template mode="send_email:send_email_from_xml_parsed.child" match="*">
  21. <xsl:apply-templates mode="#current"/>
  22. </xsl:template>
  23. <xsl:template mode="send_email:send_email_from_xml_parsed.child" match="*[@FROM and text()] | data[@datatype='FROM'] ">
  24. <send_email:send_email.send_email_from_xml_parsed.xml.child.FROM>
  25. <xsl:value-of select="text()"/>
  26. </send_email:send_email.send_email_from_xml_parsed.xml.child.FROM>
  27. <xsl:apply-templates mode="#current"/>
  28. </xsl:template>
  29. <xsl:template mode="send_email:send_email_from_xml_parsed.child" match="*[@CONTENT.TEXT and text()] | data[@datatype='CONTENT.TEXT'] ">
  30. <send_email:send_email.send_email_from_xml_parsed.xml.child.CONTENT.TEXT>
  31. <xsl:value-of select="text()"/>
  32. </send_email:send_email.send_email_from_xml_parsed.xml.child.CONTENT.TEXT>
  33. <xsl:apply-templates mode="#current"/>
  34. </xsl:template>
  35. <xsl:template mode="send_email:send_email_from_xml_parsed.child" match="data[@datatype='REPLYTO'] ">
  36. <send_email:send_email.send_email_from_xml_parsed.xml.child>
  37. <xsl:attribute name="REPLYTO" select="1"/>
  38. <xsl:value-of select="."/>
  39. </send_email:send_email.send_email_from_xml_parsed.xml.child>
  40. <xsl:apply-templates mode="#current"/>
  41. </xsl:template>
  42. <xsl:template mode="send_email:send_email_from_xml_parsed.child" match="title">
  43. <send_email:send_email.send_email_from_xml_parsed.xml.child.title>
  44. <xsl:for-each select="*">
  45. <xsl:text> </xsl:text><xsl:copy-of select="text()"/><xsl:text> </xsl:text>
  46. <xsl:for-each select="*">
  47. <xsl:text> </xsl:text><xsl:copy-of select="text()"/><xsl:text> </xsl:text>
  48. </xsl:for-each>
  49. </xsl:for-each>
  50. </send_email:send_email.send_email_from_xml_parsed.xml.child.title>
  51. </xsl:template>
  52. <xsl:template mode="send_email:send_email_from_xml_parsed.child" match="text()">
  53. <xsl:variable name="REPLYTO" select="parent::node()/@REPLYTO"/>
  54. <xsl:for-each select="tokenize(.,' ')">
  55. <xsl:choose>
  56. <xsl:when test="contains(.,'@')">
  57. <send_email:send_email.send_email_from_xml_parsed.xml.child>
  58. <xsl:copy-of select="$REPLYTO"/>
  59. <xsl:value-of select="."/>
  60. </send_email:send_email.send_email_from_xml_parsed.xml.child>
  61. </xsl:when>
  62. <xsl:otherwise>
  63. </xsl:otherwise>
  64. </xsl:choose>
  65. </xsl:for-each>
  66. </xsl:template>
  67. <xsl:template match="send_email:send_email_from_xml_parsed" mode="send_email:send_email.send_email_from_xml_parsed.build.xml">
  68. <project
  69. basedir="{$basedir}"
  70. name="send_email.send_email_from_xml_parsed.build.xml"
  71. default="send_email.send_email_from_xml_parsed.build.xml.to.confirm"><!--#98 This is generated by xsl:template match="p5build_SE:procesy5_config" mode="p5build_SE:build_procesy5_config.default_db.properties.xml"-->
  72. <xsl:variable name="title">
  73. <xsl:choose>
  74. <xsl:when test="send_email:send_email.send_email_from_xml_parsed.xml.child.title">
  75. <property name="send_email.send_email_from_xml_parsed.build.xml.title" value="{send_email:send_email.send_email_from_xml_parsed.xml.child.title/text()}"/>
  76. </xsl:when>
  77. <xsl:otherwise>
  78. <property name="send_email.send_email_from_xml_parsed.build.xml.title" value="Wiadomosc systemowa"/>
  79. </xsl:otherwise>
  80. </xsl:choose>
  81. </xsl:variable>
  82. <xsl:copy-of select="$title"/>
  83. <target name="send_email.send_email_from_xml_parsed.build.xml.to.confirm">
  84. <xsl:copy-of select="$title"/>
  85. <xsl:for-each-group select="send_email:send_email.send_email_from_xml_parsed.xml.child" group-by="text()">
  86. <!--<echo message="O_UTPUT__START"/>-->
  87. <echo>&lt;br&gt;&lt;a href=&quot;${antFunctionUrl}&amp;confirmAntfile=<xsl:value-of select="$confirmAntfile"/>&amp;confirmAntfileTarget=send_email.send_email_from_xml_parsed.build.xml.confirm.<xsl:value-of select="position()"/>&quot; target=&quot;_blank&quot;&gt;Wyslij mail do <xsl:value-of select="."/>&lt;/a&gt; &lt;/br&gt;</echo>
  88. <!--<echo message="O_UTPUT__END"/>-->
  89. </xsl:for-each-group>
  90. <echo>&lt;br&gt;&lt;a href=&quot;${antFunctionUrl}&amp;confirmAntfile=<xsl:value-of select="$confirmAntfile"/>&amp;confirmAntfileTarget=send_email.send_email_from_xml_parsed.build.xml.confirm.all&quot; target=&quot;_blank&quot;&gt;Wyslij mail do Wszystkich &lt;/a&gt; &lt;/br&gt;</echo>
  91. </target>
  92. <xsl:variable name="REPLYTO" select="send_email:send_email.send_email_from_xml_parsed.xml.child[@REPLYTO][1]/text()"/>
  93. <!--<xsl:variable name="FROM" select="send_email:send_email.send_email_from_xml_parsed.xml.child[@FROM][1]/text()"/>
  94. <xsl:variable name="CONTENT.TEXT" select="send_email:send_email.send_email_from_xml_parsed.xml.child[@CONTENT.TEXT][1]/text()"/>-->
  95. <target name="send_email.send_email_from_xml_parsed.build.xml.confirm.all">
  96. <exec executable="mutt">
  97. <xsl:attribute name="inputstring">${send_email.send_email_from_xml_parsed.build.xml.title}<xsl:text> </xsl:text><xsl:value-of select="string-join(send_email:send_email.send_email_from_xml_parsed.xml.child.CONTENT.TEXT/text(),' ')"/></xsl:attribute>
  98. <xsl:if test="send_email:send_email.send_email_from_xml_parsed.xml.child[@REPLYTO]">
  99. <env key="REPLYTO" value="{send_email:send_email.send_email_from_xml_parsed.xml.child[@REPLYTO][1]/text()}"/>
  100. </xsl:if>
  101. <env key="LANG" value="en_US.UTF-8"/>
  102. <env key="LC_CTYPE" value="en_US.UTF-8"/>
  103. <arg line='-a "{$out.pdf}"'/>
  104. <!--<arg line='-s "Wiadomosc"'/>-->
  105. <arg>
  106. <xsl:attribute name="line">-s &quot;${send_email.send_email_from_xml_parsed.build.xml.title}<xsl:text> </xsl:text><xsl:value-of select="string-join(send_email:send_email.send_email_from_xml_parsed.xml.child.CONTENT.TEXT/text(),' ')"/>&quot;</xsl:attribute>
  107. </arg>
  108. <arg line='-e "set copy = no"'/>
  109. <xsl:if test="send_email:send_email.send_email_from_xml_parsed.xml.child.FROM">
  110. <arg line="-e &quot;my_hdr From: {send_email:send_email.send_email_from_xml_parsed.xml.child.FROM[1]/text()} &lt;{$REPLYTO}&gt;&quot;"/>
  111. </xsl:if>
  112. <arg line='-F /dev/null'/>
  113. <arg>
  114. <xsl:attribute name="line"><xsl:text>-- </xsl:text>
  115. <xsl:for-each-group select="send_email:send_email.send_email_from_xml_parsed.xml.child" group-by="text()">
  116. <xsl:value-of select="text()"/><xsl:text> </xsl:text>
  117. </xsl:for-each-group>
  118. </xsl:attribute>
  119. </arg>
  120. </exec>
  121. </target>
  122. <xsl:for-each-group select="send_email:send_email.send_email_from_xml_parsed.xml.child" group-by="text()">
  123. <target name="send_email.send_email_from_xml_parsed.build.xml.confirm.{position()}">
  124. <echo>Sending message to <xsl:value-of select="."/></echo>
  125. <!--<mail from="a.binder@biall-net.pl" failonerror="false"
  126. tolist="{text()}">
  127. <xsl:attribute name="subject">${send_email.send_email_from_xml_parsed.build.xml.title}</xsl:attribute>
  128. <message>Test wiadomosci</message>
  129. </mail>-->
  130. <exec executable="mutt">
  131. <xsl:attribute name="inputstring">${send_email.send_email_from_xml_parsed.build.xml.title}<xsl:text> </xsl:text><xsl:value-of select="string-join(parent::*//send_email:send_email.send_email_from_xml_parsed.xml.child.CONTENT.TEXT/text(),' ')"/>
  132. </xsl:attribute>
  133. <xsl:if test="string-length($REPLYTO) &gt;0">
  134. <env key="REPLYTO" value="{$REPLYTO}"/>
  135. </xsl:if>
  136. <env key="LANG" value="en_US.UTF-8"/>
  137. <env key="LC_CTYPE" value="en_US.UTF-8"/>
  138. <arg line='-a "{$out.pdf}"'/>
  139. <!--<arg line='-s "Wiadomosc"'/>-->
  140. <arg>
  141. <xsl:attribute name="line">-s &quot;${send_email.send_email_from_xml_parsed.build.xml.title}<xsl:text> </xsl:text><xsl:value-of select="string-join(parent::*//send_email:send_email.send_email_from_xml_parsed.xml.child.CONTENT.TEXT/text(),' ')"/>&quot;</xsl:attribute>
  142. </arg>
  143. <arg line='-F /dev/null'/>
  144. <!--<arg line='&lt; /dev/null'/>-->
  145. <arg line='-e "set copy = no"'/>
  146. <xsl:if test="parent::*//send_email:send_email.send_email_from_xml_parsed.xml.child.FROM">
  147. <arg line="-e &quot;my_hdr From: {parent::*//send_email:send_email.send_email_from_xml_parsed.xml.child.FROM[1]/text()} &lt;{$REPLYTO}&gt;&quot;"/>
  148. </xsl:if>
  149. <arg line='-- {text()}'/>
  150. </exec>
  151. </target>
  152. </xsl:for-each-group>
  153. </project>
  154. </xsl:template>
  155. </xsl:stylesheet>