Converting Unix timestamp renders odd results

jbenoit's Avatar

jbenoit

29 Apr, 2015 07:06 PM

I am using the format-date XSLT format from GitHub and am getting some very odd results as output. I am trying to pull the Review Date meta data and format it.

<li class="policyList__listing--nextReview">
                        <xsl:call-template name="format-date">
                            <xsl:with-param name="date" select="review-date"/>
                            <xsl:with-param name="mask" select="shortDate"/>
                        </xsl:call-template>
                    </li>

The results rendered are:

<li class="policyList__listing--nextReview">-0400rg.apac12e.x4000.uai0000.N-04001eVeca-0400r@2e264188</li>

I'm scratching my head.

  1. 1 Posted by Ryan Griffith on 29 Apr, 2015 07:33 PM

    Ryan Griffith's Avatar

    Hi,

    Definitely interesting. When you have a moment, give the following a try and let me know if the result changes at all:

    <xsl:with-param name="date" select="number(review-date)"/>
    

    Please let me know if you have any questions.

    Thanks!

  2. 2 Posted by jbenoit on 29 Apr, 2015 07:52 PM

    jbenoit's Avatar

    Ryan,

      I modified the format as you suggested, with no change.

    Jered

  3. 3 Posted by Ryan Griffith on 29 Apr, 2015 07:57 PM

    Ryan Griffith's Avatar

    Thank you for checking, Jered.

    When you have a moment, please attach your Format to this discussion so I can take a closer look. Also, try updating your date formatting Format to this one from our Githug repository to make sure you have the latest and greatest.

    Please let me know if you have any questions.

    Thanks!

  4. 4 Posted by jbenoit on 29 Apr, 2015 08:10 PM

    jbenoit's Avatar

    I did update the format-date format, but still weird results.

    Full format:

    
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
        <xsl:include href="/_internal/formats/format-date"/>
    <!-- Define our key for looping -->
        <xsl:key match="system-folder" name="letters" use="substring(display-name,1,1)"/>
        <xsl:template match="//system-index-block">
            <!-- Inline Alpha Jump Navigation -->
            <div class="policyAlphaNav">
                <ul class="policyAlphaNav__list">
                    <xsl:call-template name="navigation">
                        <xsl:with-param name="navigation" select="system-folder"/>
                    </xsl:call-template>
                </ul>
            </div>
            <!-- // Inline Alpha Jump Navigation -->
            <!-- Policy List -->
            <div class="policyList">
                <!-- Loop through folders that are not hidden -->
                <xsl:for-each select="system-folder[dynamic-metadata[name = 'folder-status']/value != 'Hidden']">
                    <xsl:sort select="display-name"/>
                    <xsl:variable name="firstLetter" select="substring(display-name, 1, 1)"/>
                    <xsl:variable name="pages" select="key('letters', $firstLetter)"/>
                    <!-- Generate Unique ID for each match to make sure we don't have multiple of the same letter -->
                    <xsl:if test="generate-id() = generate-id($pages[1])">
                        <a name="{$firstLetter}"></a>
                        <xsl:apply-templates select="../system-folder[substring(display-name,1,1)=$firstLetter]"/>
                    </xsl:if>
                </xsl:for-each>
                <!-- // Loop -->
                <!-- <xsl:apply-templates select="system-folder"/> -->
            </div>
            <!-- // Policy List -->
            <!-- Inline Alpha Jump Navigation -->
            <div class="policyAlphaNav">
                <ul class="policyAlphaNav__list">
                    <xsl:call-template name="navigation">
                        <xsl:with-param name="navigation" select="system-folder"/>
                    </xsl:call-template>
                </ul>
            </div>
            <!-- // Inline Alpha Jump Navigation -->
        </xsl:template>
        <!-- Policy Listing -->
        <xsl:template match="system-folder">
            <!-- Hidden Folders -->
            <xsl:if test="dynamic-metadata[name = 'folder-status']/value = 'Hidden'">
                <p class="policyList__department--hidden"></p>
            </xsl:if>
            <!-- // Hidden Folders -->
            <!-- Under Review Folders -->
            <xsl:if test="dynamic-metadata[name = 'folder-status']/value = 'Under Review'">
                <div class="policyList__department--underReview">
                    <h2 class="policyList__departmentTitle--underReview">
                        <xsl:value-of select="display-name"/> - Under Review
                
                    
                    </h2>
                </div>
            </xsl:if>
            <!-- // Under Review Folders -->
            <!-- Published Folders -->
            <xsl:if test="dynamic-metadata[name = 'folder-status']/value = 'Published'">
                <div class="policyList__department">
                    <h2>
                        <xsl:value-of select="display-name"/>
                    </h2>
                    <ul class="policyList__departmentPolicyList">
                        <xsl:apply-templates select="system-file"/>
                        <xsl:apply-templates select="system-symlink"/>
                    </ul>
                </div>
            </xsl:if>
            <!-- // Published Folders -->
            <div class="policyList__backToTop">
                <a href="#top">Back to top</a>
            </div>
        </xsl:template>
        <!-- Files contained in Polcy Folders -->
        <xsl:template match="system-file">
            <!-- Published Files -->
            <xsl:if test="dynamic-metadata[name = 'file-status']/value = 'Published'">
                <li class="policyList__departmentPolicy">
                    <ul class="policyList__listing">
                    <li class="policyList__listing--name">
                    <a href="{link}" role="link">
                        <xsl:value-of select="./display-name"/>
                        <xsl:if test="substring-after(link,'.') = 'doc' or substring-after(link,'.') = 'docx'"><span class="fa fa-file-word-o"></span></xsl:if>
                        <xsl:if test="substring-after(link,'.') = 'xls' or substring-after(link,'.') = 'xlsx'"><span class="fa fa-file-excel-o"></span></xsl:if>
                        <xsl:if test="substring-after(link,'.') = 'ppt' or substring-after(link,'.') = 'pptx'"><span class="fa fa-file-powerpoint-o"></span></xsl:if>
                        <xsl:if test="substring-after(link,'.') = 'pdf'"><span class="fa fa-file-pdf-o"></span></xsl:if>                    
                    </a>
                    </li>
                    <li class="policyList__listing--number"><xsl:value-of select="dynamic-metadata[name='policyNumber']/value"/></li>
                    <li class="policyList__listing--issued"><xsl:value-of select="dynamic-metadata[name='issued']/value"/></li>
                    <li class="policyList__listing--version"><xsl:value-of select="dynamic-metadata[name='version']/value"/></li>
                    <li class="policyList__listing--nextReview">
                        <xsl:call-template name="format-date">
                            <xsl:with-param name="date" select="number(review-date)"/>
                            <xsl:with-param name="mask" select="shortDate"/>
                        </xsl:call-template>
                    </li>
                    </ul>
                </li>
            </xsl:if>
            <!-- Published Folders -->
            <!-- Under Review Files -->
            <xsl:if test="dynamic-metadata[name = 'file-status']/value = 'Under Review'">
                <li class="policyList__departmentPolicy--underReview">
                 <ul class="policyList__listing">
                    <li class="policyList__listing--name">
                    <xsl:value-of select="./display-name"/> - Under Review
                    <xsl:if test="substring-after(link,'.') = 'doc' or substring-after(link,'.') = 'docx'"><span class="fa fa-file-word-o"></span></xsl:if>
                    <xsl:if test="substring-after(link,'.') = 'xls' or substring-after(link,'.') = 'xlsx'"><span class="fa fa-file-excel-o"></span></xsl:if>
                    <xsl:if test="substring-after(link,'.') = 'ppt' or substring-after(link,'.') = 'pptx'"><span class="fa fa-file-powerpoint-o"></span></xsl:if>
                    <xsl:if test="substring-after(link,'.') = 'pdf'"><span class="fa fa-file-pdf-o"></span></xsl:if>
                    </li>
                    <li class="policyList__listing--number"><xsl:value-of select="dynamic-metadata[name='policyNumber']/value"/></li>
                    <li class="policyList__listing--issued"><xsl:value-of select="dynamic-metadata[name='issued']/value"/></li>
                    <li class="policyList__listing--version"><xsl:value-of select="dynamic-metadata[name='version']/value"/></li>
                    <li class="policyList__listing--nextReview"><xsl:value-of select="review-date"/></li>
    
                    </ul>
                </li>
            </xsl:if>
            <!-- // Under Review Files -->
            <!-- Hidden Files -->
            <xsl:if test="dynamic-metadata[name = 'file-status']/value = 'Hidden'"/>
            <!-- // Hidden Files -->
        </xsl:template>
        <!-- // Files contained in Polcy Folders -->
        <!-- Links contained in Policy Folders -->
        <xsl:template match="system-symlink">
            <!-- Published Links -->
            <xsl:if test="dynamic-metadata[name = 'file-status']/value = 'Published'">
                <li class="policyList__departmentPolicy--link">
                    <a href="{./link}" role="link">
                        <xsl:value-of select="./display-name"/>
                        <span class="fa fa-link"></span>
                    </a>
                </li>
            </xsl:if>
            <!-- // Published Links -->
            <!-- Under Review Links -->
            <xsl:if test="dynamic-metadata[name = 'file-status']/value = 'Under Review'">
                <li class="policyList__departmentPolicy--linkUnderReview">
                    <xsl:value-of select="./display-name"/>
                    <span class="fa fa-link"></span> - Under Review 
                        <span class="fa fa-link"></span>            
                </li>
            </xsl:if>
            <!-- //Under Review Links -->
            <!-- Hidden Links -->
            <xsl:if test="dynamic-metadata[name = 'file-status']/value = 'Hidden'"/>
            <!-- // Hidden Links -->
        </xsl:template>
        <!-- // Links contained in Policy Folders -->
        <!-- Navigation -->
        <xsl:template name="navigation">
            <xsl:param name="navigation"/>
            <!-- Loop through folders that are not hidden -->
            <xsl:for-each select="$navigation[dynamic-metadata[name = 'folder-status']/value != 'Hidden']">
                <xsl:sort select="display-name"/>
                <xsl:variable name="firstLetter" select="substring(display-name, 1, 1)"/>
                <xsl:variable name="pages" select="key('letters', $firstLetter)"/>
                <!-- Generate Unique ID for each match to make sure we don't have multiple of the same letter -->
                <xsl:if test="generate-id() = generate-id($pages[1])">
                    <li class="policyAlphaNav__listItem">
                        <a href="#{$firstLetter}">
                            <xsl:value-of select="$firstLetter"/>
                        </a>
                    </li>
                </xsl:if>
            </xsl:for-each>
            <!-- // Loop -->
        </xsl:template>
        <!-- // Navigation -->
    </xsl:stylesheet>
    

    Index XML

    
    <?xml version="1.0" encoding="UTF-8"?>
    <system-index-block name="Policy Index" type="folder" current-time="1430337906087">
        <system-folder id="ecae5e3e899b100f7f81f91a5e1a20db">
            <name>business-office</name>
            <display-name>Business Office</display-name>
            <path>/policy/business-office</path>
            <site>intranet</site>
            <link>site://intranet/policy/business-office</link>
            <dynamic-metadata>
                <name>folder-status</name>
                <value>Published</value>
            </dynamic-metadata>
            <system-symlink id="00afe230899b100f3f9ab1bf9c01c32b">
                <name>2015-pay-and-holiday-calendar</name>
                <review-date>1435723200000</review-date>
                <display-name>2015 Pay and Holiday Calendar</display-name>
                <path>/policy/business-office/2015-pay-and-holiday-calendar</path>
                <site>intranet</site>
                <dynamic-metadata>
                    <name>file-status</name>
                    <value>Published</value>
                </dynamic-metadata>
                <dynamic-metadata>
                    <name>policyNumber</name>
                </dynamic-metadata>
                <dynamic-metadata>
                    <name>issued</name>
                </dynamic-metadata>
                <dynamic-metadata>
                    <name>version</name>
                </dynamic-metadata>
                <link>http://www.dhrm.virginia.gov/docs/default-source/default-document-library/payandholidaycalendar2015.pdf?sfvrsn=2</link>
            </system-symlink>
            <system-file id="ecafd6a0899b100f7f81f91a410953ea">
                <name>prior-approval-to-travel.xlsx</name>
                <review-date>1459483200000</review-date>
                <display-name>Prior Approval To Travel</display-name>
                <path>/policy/business-office/prior-approval-to-travel.xlsx</path>
                <site>intranet</site>
                <link>site://intranet/policy/business-office/prior-approval-to-travel.xlsx</link>
                <dynamic-metadata>
                    <name>file-status</name>
                    <value>Published</value>
                </dynamic-metadata>
                <dynamic-metadata>
                    <name>policyNumber</name>
                    <value>9999</value>
                </dynamic-metadata>
                <dynamic-metadata>
                    <name>issued</name>
                    <value>7/1/60</value>
                </dynamic-metadata>
                <dynamic-metadata>
                    <name>version</name>
                    <value>7/1/14</value>
                </dynamic-metadata>
                <file-size>0</file-size>
            </system-file>
        </system-folder>
        <system-folder id="eca5a230899b100f7f81f91a195bb7f4">
            <name>grounds</name>
            <review-date>1459483200000</review-date>
            <display-name>Grounds</display-name>
            <path>/policy/grounds</path>
            <site>intranet</site>
            <link>site://intranet/policy/grounds</link>
            <dynamic-metadata>
                <name>folder-status</name>
                <value>Published</value>
            </dynamic-metadata>
            <system-file id="013e737d899b100f3f9ab1bf06439723">
                <name>prior-approval-to-travel.xlsx</name>
                <review-date>1459483200000</review-date>
                <display-name>Prior Approval To Travel</display-name>
                <path>/policy/grounds/prior-approval-to-travel.xlsx</path>
                <site>intranet</site>
                <link>site://intranet/policy/grounds/prior-approval-to-travel.xlsx</link>
                <dynamic-metadata>
                    <name>file-status</name>
                    <value>Published</value>
                </dynamic-metadata>
                <dynamic-metadata>
                    <name>policyNumber</name>
                </dynamic-metadata>
                <dynamic-metadata>
                    <name>issued</name>
                </dynamic-metadata>
                <dynamic-metadata>
                    <name>version</name>
                </dynamic-metadata>
                <file-size>1404251</file-size>
            </system-file>
        </system-folder>
        <system-folder id="243f54e9899b100f5d8f794fd8673cf3">
            <name>housing</name>
            <title>Housing</title>
            <summary>All of the policies related to housing at CNU</summary>
            <display-name>Housing Policy</display-name>
            <path>/policy/housing</path>
            <site>intranet</site>
            <link>site://intranet/policy/housing</link>
            <dynamic-metadata>
                <name>folder-status</name>
                <value>Published</value>
            </dynamic-metadata>
            <system-file id="24447e0c899b100f5d8f794fff3309f6">
                <name>iModules-ERS-request.pdf</name>
                <title>Title: iModules ERS Request Procedure</title>
                <summary>How to request the iModules resource vie the ERS</summary>
                <display-name>iModules ERS Request Procedure</display-name>
                <path>/policy/housing/iModules-ERS-request.pdf</path>
                <site>intranet</site>
                <link>site://intranet/policy/housing/iModules-ERS-request.pdf</link>
                <dynamic-metadata>
                    <name>file-status</name>
                    <value>Published</value>
                </dynamic-metadata>
                <dynamic-metadata>
                    <name>policyNumber</name>
                </dynamic-metadata>
                <dynamic-metadata>
                    <name>issued</name>
                </dynamic-metadata>
                <dynamic-metadata>
                    <name>version</name>
                </dynamic-metadata>
                <file-size>451898</file-size>
            </system-file>
        </system-folder>
        <system-folder id="ecaf1ac7899b100f7f81f91ae65ec47c">
            <name>internal-audit</name>
            <display-name>Internal Audit</display-name>
            <path>/policy/internal-audit</path>
            <site>intranet</site>
            <link>site://intranet/policy/internal-audit</link>
            <dynamic-metadata>
                <name>folder-status</name>
                <value>Published</value>
            </dynamic-metadata>
            <system-file id="013e9d77899b100f3f9ab1bf992f4f91">
                <name>prior-approval-to-travel.xlsx</name>
                <review-date>1459483200000</review-date>
                <display-name>Prior Approval To Travel</display-name>
                <path>/policy/internal-audit/prior-approval-to-travel.xlsx</path>
                <site>intranet</site>
                <link>site://intranet/policy/internal-audit/prior-approval-to-travel.xlsx</link>
                <dynamic-metadata>
                    <name>file-status</name>
                    <value>Published</value>
                </dynamic-metadata>
                <dynamic-metadata>
                    <name>policyNumber</name>
                </dynamic-metadata>
                <dynamic-metadata>
                    <name>issued</name>
                </dynamic-metadata>
                <dynamic-metadata>
                    <name>version</name>
                </dynamic-metadata>
                <file-size>1404251</file-size>
            </system-file>
        </system-folder>
        <system-folder id="24509bde899b100f5d8f794f41b32583">
            <name>IT</name>
            <title>TITLE: ITS Policies</title>
            <summary>These are ITS policies</summary>
            <display-name>ITS Policies</display-name>
            <path>/policy/IT</path>
            <site>intranet</site>
            <link>site://intranet/policy/IT</link>
            <dynamic-metadata>
                <name>folder-status</name>
                <value>Published</value>
            </dynamic-metadata>
            <system-file id="24513c2e899b100f5d8f794fb5ebf97a">
                <name>iModules-ERS-request.pdf</name>
                <title>TITLE: IT Policy 1</title>
                <summary>This is IT policy 1</summary>
                <display-name>IT Policy 1</display-name>
                <path>/policy/IT/iModules-ERS-request.pdf</path>
                <site>intranet</site>
                <link>site://intranet/policy/IT/iModules-ERS-request.pdf</link>
                <dynamic-metadata>
                    <name>file-status</name>
                    <value>Under Review</value>
                </dynamic-metadata>
                <dynamic-metadata>
                    <name>policyNumber</name>
                </dynamic-metadata>
                <dynamic-metadata>
                    <name>issued</name>
                </dynamic-metadata>
                <dynamic-metadata>
                    <name>version</name>
                </dynamic-metadata>
                <file-size>451898</file-size>
            </system-file>
        </system-folder>
        <system-folder id="4d4fa4b0899b100f5d8f794f71a9f2d1">
            <name>ocrp</name>
            <display-name>Office of Communications and Arts and Crafts and Grammar</display-name>
            <path>/policy/ocrp</path>
            <site>intranet</site>
            <link>site://intranet/policy/ocrp</link>
            <dynamic-metadata>
                <name>folder-status</name>
                <value>Published</value>
            </dynamic-metadata>
            <system-file id="4d507d35899b100f5d8f794f401327cc">
                <name>handwriting paper.pdf</name>
                <display-name>Official Policies</display-name>
                <path>/policy/ocrp/handwriting paper.pdf</path>
                <site>intranet</site>
                <link>site://intranet/policy/ocrp/handwriting paper.pdf</link>
                <dynamic-metadata>
                    <name>file-status</name>
                    <value>Published</value>
                </dynamic-metadata>
                <dynamic-metadata>
                    <name>policyNumber</name>
                </dynamic-metadata>
                <dynamic-metadata>
                    <name>issued</name>
                </dynamic-metadata>
                <dynamic-metadata>
                    <name>version</name>
                </dynamic-metadata>
                <file-size>3115</file-size>
            </system-file>
        </system-folder>
    </system-index-block>
    
  5. 5 Posted by Ryan Griffith on 29 Apr, 2015 08:24 PM

    Ryan Griffith's Avatar

    Thank you for confirming and attaching your Format.

    When you have a moment, please check your Content Preferences (**System Menu -> Preferences -> Content**) to make sure both of the Xalan extension options next to XSLT Formats are checked.

    Thanks!

  6. 6 Posted by jbenoit on 30 Apr, 2015 07:09 PM

    jbenoit's Avatar

    Both XSLT format checkboxes are checked and have been checked during the duration. Another data point: This format is being run in a site. I have used the format-date format in Global without fail.

  7. 7 Posted by Ryan Griffith on 01 May, 2015 02:13 PM

    Ryan Griffith's Avatar

    Hi,

    After a little bit of head scratching, I was able to figure out the issue you are seeing. In your Format, you have the following:

    <xsl:call-template name="format-date">
        <xsl:with-param name="date" select="number(review-date)"/>
        <xsl:with-param name="mask" select="shortDate"/>
    </xsl:call-template>
    

    Note how you are passing the mask parameter. This syntax is attempting to send a node called shortDate into the mask, as opposed to a string. This is causing an issue when the Xalan function attempts to generate the date.

    To resolve the issue, you need to pass in a string, so change the line with the mask to one of the following:

    <xsl:with-param name="mask" select="'shortDate'"/>
    

    Or

    <xsl:with-param name="mask">shortDate</xsl:with-param>
    

    Please let me know if you have any questions.

    Thanks!

  8. 8 Posted by jbenoit on 01 May, 2015 02:49 PM

    jbenoit's Avatar

    Ryan,

    You got it exactly right! Huzzah!

    Thank you!

    Jered

  9. jbenoit closed this discussion on 01 May, 2015 02:49 PM.

Discussions are closed to public comments.
If you need help with Cascade CMS please start a new discussion.

Keyboard shortcuts

Generic

? Show this help
ESC Blurs the current field

Comment Form

r Focus the comment reply box
^ + ↩ Submit the comment

You can use Command ⌘ instead of Control ^ on Mac

 

26 Aug, 2016 01:19 PM
25 Aug, 2016 03:02 PM
25 Aug, 2016 12:50 PM
24 Aug, 2016 08:43 PM
24 Aug, 2016 07:20 PM
21 Aug, 2016 01:20 PM