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

Last change on this file since 27919 was 27919, checked in by sjm84, 11 years ago

Custom metadata fields are now saved properly

  • Property svn:executable set to *
  • Property svn:mime-type set to application/xml
File size: 4.2 KB
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 repository browser.