send_email.xsl 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  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()] ">
  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()]">
  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="title">
  36. <send_email:send_email.send_email_from_xml_parsed.xml.child.title>
  37. <xsl:for-each select="*">
  38. <xsl:text> </xsl:text><xsl:copy-of select="text()"/><xsl:text> </xsl:text>
  39. <xsl:for-each select="*">
  40. <xsl:text> </xsl:text><xsl:copy-of select="text()"/><xsl:text> </xsl:text>
  41. </xsl:for-each>
  42. </xsl:for-each>
  43. </send_email:send_email.send_email_from_xml_parsed.xml.child.title>
  44. </xsl:template>
  45. <xsl:template mode="send_email:send_email_from_xml_parsed.child" match="text()">
  46. <xsl:variable name="REPLYTO" select="parent::node()/@REPLYTO"/>
  47. <xsl:for-each select="tokenize(.,' ')">
  48. <xsl:choose>
  49. <xsl:when test="contains(.,'@')">
  50. <send_email:send_email.send_email_from_xml_parsed.xml.child>
  51. <xsl:copy-of select="$REPLYTO"/>
  52. <xsl:value-of select="."/>
  53. </send_email:send_email.send_email_from_xml_parsed.xml.child>
  54. </xsl:when>
  55. <xsl:otherwise>
  56. </xsl:otherwise>
  57. </xsl:choose>
  58. </xsl:for-each>
  59. </xsl:template>
  60. <xsl:template match="send_email:send_email_from_xml_parsed" mode="send_email:send_email.send_email_from_xml_parsed.build.xml">
  61. <project
  62. basedir="{$basedir}"
  63. name="send_email.send_email_from_xml_parsed.build.xml"
  64. 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"-->
  65. <xsl:variable name="title">
  66. <xsl:choose>
  67. <xsl:when test="send_email:send_email.send_email_from_xml_parsed.xml.child.title">
  68. <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()}"/>
  69. </xsl:when>
  70. <xsl:otherwise>
  71. <property name="send_email.send_email_from_xml_parsed.build.xml.title" value="Wiadomosc systemowa"/>
  72. </xsl:otherwise>
  73. </xsl:choose>
  74. </xsl:variable>
  75. <xsl:copy-of select="$title"/>
  76. <target name="send_email.send_email_from_xml_parsed.build.xml.to.confirm">
  77. <xsl:copy-of select="$title"/>
  78. <xsl:for-each-group select="send_email:send_email.send_email_from_xml_parsed.xml.child" group-by="text()">
  79. <!--<echo message="O_UTPUT__START"/>-->
  80. <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>
  81. <!--<echo message="O_UTPUT__END"/>-->
  82. </xsl:for-each-group>
  83. <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>
  84. </target>
  85. <xsl:variable name="REPLYTO" select="send_email:send_email.send_email_from_xml_parsed.xml.child[@REPLYTO][1]/text()"/>
  86. <!--<xsl:variable name="FROM" select="send_email:send_email.send_email_from_xml_parsed.xml.child[@FROM][1]/text()"/>
  87. <xsl:variable name="CONTENT.TEXT" select="send_email:send_email.send_email_from_xml_parsed.xml.child[@CONTENT.TEXT][1]/text()"/>-->
  88. <target name="send_email.send_email_from_xml_parsed.build.xml.confirm.all">
  89. <exec executable="mutt">
  90. <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>
  91. <xsl:if test="send_email:send_email.send_email_from_xml_parsed.xml.child[@REPLYTO]">
  92. <env key="REPLYTO" value="{send_email:send_email.send_email_from_xml_parsed.xml.child[@REPLYTO][1]/text()}"/>
  93. </xsl:if>
  94. <env key="LANG" value="en_US.UTF-8"/>
  95. <env key="LC_CTYPE" value="en_US.UTF-8"/>
  96. <arg line='-a "{$out.pdf}"'/>
  97. <!--<arg line='-s "Wiadomosc"'/>-->
  98. <arg>
  99. <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>
  100. </arg>
  101. <arg line='-e "set copy = no"'/>
  102. <xsl:if test="send_email:send_email.send_email_from_xml_parsed.xml.child.FROM">
  103. <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;"/>
  104. </xsl:if>
  105. <arg line='-F /dev/null'/>
  106. <arg>
  107. <xsl:attribute name="line"><xsl:text>-- </xsl:text>
  108. <xsl:for-each-group select="send_email:send_email.send_email_from_xml_parsed.xml.child" group-by="text()">
  109. <xsl:value-of select="text()"/><xsl:text> </xsl:text>
  110. </xsl:for-each-group>
  111. </xsl:attribute>
  112. </arg>
  113. </exec>
  114. </target>
  115. <xsl:for-each-group select="send_email:send_email.send_email_from_xml_parsed.xml.child" group-by="text()">
  116. <target name="send_email.send_email_from_xml_parsed.build.xml.confirm.{position()}">
  117. <echo>Sending message to <xsl:value-of select="."/></echo>
  118. <!--<mail from="a.binder@biall-net.pl" failonerror="false"
  119. tolist="{text()}">
  120. <xsl:attribute name="subject">${send_email.send_email_from_xml_parsed.build.xml.title}</xsl:attribute>
  121. <message>Test wiadomosci</message>
  122. </mail>-->
  123. <exec executable="mutt">
  124. <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(),' ')"/>
  125. </xsl:attribute>
  126. <xsl:if test="string-length($REPLYTO) &gt;0">
  127. <env key="REPLYTO" value="{$REPLYTO}"/>
  128. </xsl:if>
  129. <env key="LANG" value="en_US.UTF-8"/>
  130. <env key="LC_CTYPE" value="en_US.UTF-8"/>
  131. <arg line='-a "{$out.pdf}"'/>
  132. <!--<arg line='-s "Wiadomosc"'/>-->
  133. <arg>
  134. <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>
  135. </arg>
  136. <arg line='-F /dev/null'/>
  137. <!--<arg line='&lt; /dev/null'/>-->
  138. <arg line='-e "set copy = no"'/>
  139. <xsl:if test="parent::*//send_email:send_email.send_email_from_xml_parsed.xml.child.FROM">
  140. <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;"/>
  141. </xsl:if>
  142. <arg line='-- {text()}'/>
  143. </exec>
  144. </target>
  145. </xsl:for-each-group>
  146. </project>
  147. </xsl:template>
  148. </xsl:stylesheet>