root/main/trunk/greenstone3/web/interfaces/default/transform/depositor/depositor.xsl @ 27919

Revision 27919, 4.2 KB (checked in by sjm84, 7 years ago)

Custom metadata fields are now saved properly

  • Property svn:executable set to *
  • Property svn:mime-type set to application/xml
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<xsl:stylesheet version="1.0"
3    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
4    xmlns:java="http://xml.apache.org/xslt/java"
5    xmlns:util="xalan://org.greenstone.gsdl3.util.XSLTUtil"
6    xmlns:gslib="http://www.greenstone.org/skinning"
7    extension-element-prefixes="java util"
8    exclude-result-prefixes="java util">
9   
10    <!-- use the 'main' layout -->
11    <xsl:include href="layouts/main.xsl"/>
12
13    <!-- Used to store how many pages are present in the depositor -->
14    <xsl:variable name="numOfPages">5</xsl:variable>
15   
16    <!-- set page title -->
17    <xsl:template name="pageTitle">Depositor</xsl:template>
18
19    <!-- set page breadcrumbs -->
20    <xsl:template name="breadcrumbs"></xsl:template>
21
22    <!-- the page content -->
23    <xsl:template match="/page">
24        <xsl:call-template name="depositorJavascript"/>
25        <div id="wizardContainer"><xsl:text> </xsl:text>
26            <form enctype="multipart/form-data" method="post" name="depositorform" id="depositorform">
27                <xsl:attribute name="action"><xsl:value-of select="$library_name"/></xsl:attribute>
28                <input type="hidden" name="a" value="de"/>
29                <input type="hidden" name="sa" value="getwizard"/>
30                <input type="hidden" name="c" value="{/page/pageResponse/collection/@name}"/>
31                <input type="hidden" name="currentPage" value="{/page/pageRequest/paramList/param[@name='dePage']/@value}">
32                    <xsl:attribute name="value">
33                        <xsl:choose>
34                            <xsl:when test="/page/pageRequest/paramList/param[@name='dePage']">
35                                <xsl:value-of select="/page/pageRequest/paramList/param[@name='dePage']/@value"/>
36                            </xsl:when>
37                            <xsl:otherwise>1</xsl:otherwise>
38                        </xsl:choose>
39                    </xsl:attribute>
40                </input>
41                <!-- A CALL TO THE APPROPRIATE PAGE ADDED ON THE SERVER -->
42            </form>
43        </div>
44        <xsl:call-template name="wizardBar"/>
45    </xsl:template>
46   
47    <xsl:template name="wizardBar">
48        <!-- CREATED ON THE SERVER -->
49    </xsl:template>
50   
51    <xsl:template name="depositorJavascript">
52        <script type="text/javascript">
53            <xsl:text disable-output-escaping="yes">
54                {
55                    $(window).load(function()
56                    {
57                        var cachedMetadata = [];
58                        var cachedPageMetaString;
59
60                        </xsl:text>
61                        <xsl:for-each select="/page/pageResponse/cachedValues/pageCache">
62                            <xsl:text disable-output-escaping="yes">cachedPageMetaString = '</xsl:text><xsl:value-of select="."/><xsl:text disable-output-escaping="yes">';
63                            cachedPageMetaString = cachedPageMetaString.replace(/&amp;lt;/g, "&lt;").replace(/&amp;gt;/g, "&gt;").replace(/&amp;amp;/g, "&amp;").replace(/&amp;quot;/g, "\"");
64                            cachedMetadata.push(eval(cachedPageMetaString));</xsl:text>
65                        </xsl:for-each>
66                        <xsl:text disable-output-escaping="yes">
67
68                        //console.log(cachedMetadata);
69                        gs.deSavedMetadata = [];
70                        for(var j = 0; j &lt; cachedMetadata.length; j++)
71                        {
72                            var currentPageCache = cachedMetadata[j];
73                            for(var i = 0; i &lt; currentPageCache.length; i++)
74                            {
75                                gs.deSavedMetadata[currentPageCache[i].name] = currentPageCache[i].value;
76                               
77                                var inputElem = $('form [name="' + currentPageCache[i].name + '"]');
78                                if(inputElem.length)
79                                {
80                                    inputElem.val(currentPageCache[i].value);
81                                }
82                                else if(currentPageCache[i].name.search(/\bex\./g) == -1)
83                                {
84                                    var newInput = $("&lt;input&gt;");
85                                    newInput.attr("type", "text");
86                                    newInput.attr("name", currentPageCache[i].name);
87                                    newInput.val(currentPageCache[i].value);
88                                   
89                                    var newRow = $("&lt;tr&gt;");
90                                    newRow.append("&lt;td&gt;" + currentPageCache[i].name.replace("md___", "") + ": &lt;/td&gt;");
91                                    newRow.append($("&lt;td&gt;").append(newInput));
92                                   
93                                    $("form table").prepend(newRow);
94                                }
95                            }
96                        }
97
98                        $(".wizardStepLink a").click(function()
99                        {
100                            var requestedPage = $(this).attr("page");
101                            var form = $("#depositorform");
102                            form.append($("&lt;input&gt;").attr({type:"hidden", name:"dePage", value:requestedPage}));
103                            form.submit();
104                        });
105                       
106                        $("[gs-metadata]").each(function()
107                        {
108                            var metaVal = gs.deSavedMetadata["md___" + $(this).attr("gs-metadata")];
109                            if(metaVal)
110                            {
111                                $(this).text(metaVal);
112                            }
113                        });
114                    });
115                }
116            </xsl:text>
117        </script>
118    </xsl:template>
119</xsl:stylesheet> 
120
Note: See TracBrowser for help on using the browser.