View | Details | Raw Unified | Return to bug 5643
Collapse All | Expand All

(-)a/koha-tmpl/opac-tmpl/prog/en/xslt/MARC21slim2OPACResults.xsl (-133 / +174 lines)
Lines 20-27 Link Here
20
        <xsl:variable name="display880" select="boolean(marc:datafield[@tag=880])"/>
20
        <xsl:variable name="display880" select="boolean(marc:datafield[@tag=880])"/>
21
21
22
    <xsl:variable name="DisplayOPACiconsXSLT" select="marc:sysprefs/marc:syspref[@name='DisplayOPACiconsXSLT']"/>
22
    <xsl:variable name="DisplayOPACiconsXSLT" select="marc:sysprefs/marc:syspref[@name='DisplayOPACiconsXSLT']"/>
23
    <xsl:variable name="OPACURLOpenInNewWindow" select="marc:sysprefs/marc:syspref[@name='OPACURLOpenInNewWindow']"/>
24
    <xsl:variable name="URLLinkText" select="marc:sysprefs/marc:syspref[@name='URLLinkText']"/>
25
        <xsl:variable name="leader" select="marc:leader"/>
23
        <xsl:variable name="leader" select="marc:leader"/>
26
        <xsl:variable name="leader6" select="substring($leader,7,1)"/>
24
        <xsl:variable name="leader6" select="substring($leader,7,1)"/>
27
        <xsl:variable name="leader7" select="substring($leader,8,1)"/>
25
        <xsl:variable name="leader7" select="substring($leader,8,1)"/>
Lines 899-1041 Link Here
899
            </xsl:for-each>
897
            </xsl:for-each>
900
	</span>
898
	</span>
901
    </xsl:if>
899
    </xsl:if>
902
    <xsl:if test="marc:datafield[@tag=856]">
900
903
         <span class="results_summary">
901
        <xsl:call-template name="ShowELocation"/>
904
			   <span class="label">Online Access: </span>
902
905
                            <xsl:for-each select="marc:datafield[@tag=856]">
903
        <!-- Remove surrouding comments to show call number too -->
906
                            <xsl:if test="$OPACURLOpenInNewWindow='0'">
904
        <!--
907
                                   <a><xsl:attribute name="href"><xsl:value-of select="marc:subfield[@code='u']"/></xsl:attribute>
905
        <xsl:call-template name="ShowCallNumber"/>
908
                                    <xsl:choose>
906
        -->
909
                                    <xsl:when test="marc:subfield[@code='y' or @code='3' or @code='z']">
907
910
                                        <xsl:call-template name="subfieldSelect">                        
908
        <xsl:call-template name="ShowAvailable"/>
911
                                        <xsl:with-param name="codes">y3z</xsl:with-param>                    
909
    </xsl:template>
912
                                        </xsl:call-template>
910
    <!-- end of match marc:record -->
913
                                    </xsl:when>
911
914
                                    <xsl:when test="not(marc:subfield[@code='y']) and not(marc:subfield[@code='3']) and not(marc:subfield[@code='z'])">
912
915
					<xsl:choose>
913
    <xsl:template name="ShowELocation">
916
					<xsl:when test="$URLLinkText!=''">
914
        <xsl:variable name="OPACURLOpenInNewWindow" select="marc:sysprefs/marc:syspref[@name='OPACURLOpenInNewWindow']"/>
917
						<xsl:value-of select="$URLLinkText"/>
915
        <xsl:variable name="URLLinkText" select="marc:sysprefs/marc:syspref[@name='URLLinkText']"/>
918
					</xsl:when>
916
        <xsl:if test="marc:datafield[@tag=856]">
919
					<xsl:otherwise>
917
            <span class="results_summary">
920
						<xsl:text>Click here to access online</xsl:text>
918
	        <span class="label">Online Access: </span>
921
					</xsl:otherwise>
919
                <xsl:for-each select="marc:datafield[@tag=856]">
922
					</xsl:choose>
920
                    <xsl:if test="$OPACURLOpenInNewWindow='0'">
923
                                    </xsl:when>
921
                        <a><xsl:attribute name="href"><xsl:value-of select="marc:subfield[@code='u']"/></xsl:attribute>
924
                                    </xsl:choose>
922
                        <xsl:choose>
925
                                    </a>
923
                            <xsl:when test="marc:subfield[@code='y' or @code='3' or @code='z']">
926
                              </xsl:if>
924
                                <xsl:call-template name="subfieldSelect">
927
                            <xsl:if test="$OPACURLOpenInNewWindow='1'">
925
                                    <xsl:with-param name="codes">y3z</xsl:with-param>
928
                                   <a target='_blank'><xsl:attribute name="href"><xsl:value-of select="marc:subfield[@code='u']"/></xsl:attribute>
926
                                </xsl:call-template>
929
                                    <xsl:choose>
927
                            </xsl:when>
930
                                    <xsl:when test="marc:subfield[@code='y' or @code='3' or @code='z']">
928
                            <xsl:when test="not(marc:subfield[@code='y']) and not(marc:subfield[@code='3']) and not(marc:subfield[@code='z'])">
931
                                        <xsl:call-template name="subfieldSelect">                        
929
			        <xsl:choose>
932
                                        <xsl:with-param name="codes">y3z</xsl:with-param>                    
930
				    <xsl:when test="$URLLinkText!=''">
933
                                        </xsl:call-template>
931
                                        <xsl:value-of select="$URLLinkText"/>
934
                                    </xsl:when>
935
                                    <xsl:when test="not(marc:subfield[@code='y']) and not(marc:subfield[@code='3']) and not(marc:subfield[@code='z'])">
936
					<xsl:choose>
937
					<xsl:when test="$URLLinkText!=''">
938
						<xsl:value-of select="$URLLinkText"/>
939
					</xsl:when>
940
					<xsl:otherwise>
941
						<xsl:text>Click here to access online</xsl:text>
942
					</xsl:otherwise>
943
					</xsl:choose>
944
                                    </xsl:when>
932
                                    </xsl:when>
945
                                    </xsl:choose>
933
                                    <xsl:otherwise>
946
                                    </a>
934
                                        <xsl:text>Click here to access online</xsl:text>
947
                              </xsl:if>
935
                                    </xsl:otherwise>
948
                                    <xsl:choose>
936
                                </xsl:choose>
949
                                    <xsl:when test="position()=last()"><xsl:text> </xsl:text></xsl:when>
937
                            </xsl:when>
950
                                    <xsl:otherwise> | </xsl:otherwise>
938
                        </xsl:choose>
951
                                    </xsl:choose>
939
                        </a>
952
                            </xsl:for-each>
940
                    </xsl:if>
953
                            </span>
941
                    <xsl:if test="$OPACURLOpenInNewWindow='1'">
954
                        </xsl:if>
942
                      <a target='_blank'><xsl:attribute name="href"><xsl:value-of select="marc:subfield[@code='u']"/></xsl:attribute>
955
                        <span class="results_summary">
956
                        <span class="label">Availability: </span>
957
                        <xsl:choose>
943
                        <xsl:choose>
958
				   <xsl:when test="count(key('item-by-status', 'available'))=0 and count(key('item-by-status', 'reference'))=0">No copies available
944
                            <xsl:when test="marc:subfield[@code='y' or @code='3' or @code='z']">
959
				   </xsl:when>
945
                                <xsl:call-template name="subfieldSelect">
960
                   <xsl:when test="count(key('item-by-status', 'available'))>0">
946
                                    <xsl:with-param name="codes">y3z</xsl:with-param>
961
                   <span class="available">
947
                                </xsl:call-template>
962
                       <b><xsl:text>Copies available for loan: </xsl:text></b>
948
                            </xsl:when>
963
                       <xsl:variable name="available_items"
949
                            <xsl:when test="not(marc:subfield[@code='y']) and not(marc:subfield[@code='3']) and not(marc:subfield[@code='z'])">
950
                                <xsl:choose>
951
				    <xsl:when test="$URLLinkText!=''">
952
                                        <xsl:value-of select="$URLLinkText"/>
953
                                    </xsl:when>
954
				    <xsl:otherwise>
955
				        <xsl:text>Click here to access online</xsl:text>
956
				    </xsl:otherwise>
957
                                </xsl:choose>
958
                            </xsl:when>
959
                        </xsl:choose>
960
                      </a>
961
                    </xsl:if>
962
                    <xsl:choose>
963
                        <xsl:when test="position()=last()"><xsl:text> </xsl:text></xsl:when>
964
                        <xsl:otherwise> | </xsl:otherwise>
965
                    </xsl:choose>
966
                </xsl:for-each>
967
            </span>
968
        </xsl:if>
969
    </xsl:template>
970
971
    <xsl:template name="ShowAvailable">
972
      <span class="results_summary">
973
        <span class="label">Availability: </span>
974
        <xsl:choose>
975
              <xsl:when test="count(key('item-by-status', 'available'))=0 and count(key('item-by-status', 'reference'))=0">No copies available
976
              </xsl:when>
977
              <xsl:when test="count(key('item-by-status', 'available'))>0">
978
                  <span class="available">
979
                      <b><xsl:text>Copies available for loan: </xsl:text></b>
980
                      <xsl:variable name="available_items"
964
                           select="key('item-by-status', 'available')"/>
981
                           select="key('item-by-status', 'available')"/>
965
                       <xsl:for-each select="$available_items[generate-id() = generate-id(key('item-by-status-and-branch', concat(items:status, ' ', items:homebranch))[1])]">
982
                      <xsl:for-each select="$available_items[generate-id() = generate-id(key('item-by-status-and-branch', concat(items:status, ' ', items:homebranch))[1])]">
966
                           <xsl:value-of select="items:homebranch"/>
983
                          <xsl:value-of select="items:homebranch"/>
967
						   <xsl:if test="items:itemcallnumber != '' and items:itemcallnumber"> [<xsl:value-of select="items:itemcallnumber"/>]</xsl:if>
984
			  <xsl:if test="items:itemcallnumber != '' and items:itemcallnumber"> [<xsl:value-of select="items:itemcallnumber"/>]</xsl:if>
968
                           <xsl:text> (</xsl:text>
985
                          <xsl:text> (</xsl:text>
969
                           <xsl:value-of select="count(key('item-by-status-and-branch', concat(items:status, ' ', items:homebranch)))"/>
986
                          <xsl:value-of select="count(key('item-by-status-and-branch', concat(items:status, ' ', items:homebranch)))"/>
970
                           <xsl:text>)</xsl:text>
987
                          <xsl:text>)</xsl:text>
971
<xsl:choose><xsl:when test="position()=last()"><xsl:text>. </xsl:text></xsl:when><xsl:otherwise><xsl:text>, </xsl:text></xsl:otherwise></xsl:choose>
988
<xsl:choose><xsl:when test="position()=last()"><xsl:text>. </xsl:text></xsl:when><xsl:otherwise><xsl:text>, </xsl:text></xsl:otherwise></xsl:choose>
972
                       </xsl:for-each>
989
                      </xsl:for-each>
973
                   </span>
990
                  </span>
974
                   </xsl:when>
991
              </xsl:when>
975
				   </xsl:choose>
992
	</xsl:choose>
976
993
977
                   <xsl:choose>
994
        <xsl:choose>
978
                   <xsl:when test="count(key('item-by-status', 'reference'))>0">
995
            <xsl:when test="count(key('item-by-status', 'reference'))>0">
979
                   <span class="available">
996
                <span class="available">
980
                       <b><xsl:text>Copies available for reference: </xsl:text></b>
997
                    <b><xsl:text>Copies available for reference: </xsl:text></b>
981
                       <xsl:variable name="reference_items"
998
                    <xsl:variable name="reference_items"
982
                           select="key('item-by-status', 'reference')"/>
999
                           select="key('item-by-status', 'reference')"/>
983
                       <xsl:for-each select="$reference_items[generate-id() = generate-id(key('item-by-status-and-branch', concat(items:status, ' ', items:homebranch))[1])]">
1000
                    <xsl:for-each select="$reference_items[generate-id() = generate-id(key('item-by-status-and-branch', concat(items:status, ' ', items:homebranch))[1])]">
984
                           <xsl:value-of select="items:homebranch"/>
1001
                        <xsl:value-of select="items:homebranch"/>
985
						   <xsl:if test="items:itemcallnumber != '' and items:itemcallnumber"> [<xsl:value-of select="items:itemcallnumber"/>]</xsl:if>
1002
			<xsl:if test="items:itemcallnumber != '' and items:itemcallnumber"> [<xsl:value-of select="items:itemcallnumber"/>]</xsl:if>
986
                           <xsl:text> (</xsl:text>
1003
                        <xsl:text> (</xsl:text>
987
                           <xsl:value-of select="count(key('item-by-status-and-branch', concat(items:status, ' ', items:homebranch)))"/>
1004
                        <xsl:value-of select="count(key('item-by-status-and-branch', concat(items:status, ' ', items:homebranch)))"/>
988
                           <xsl:text>)</xsl:text>
1005
                        <xsl:text>)</xsl:text>
989
                   <xsl:choose><xsl:when test="position()=last()"><xsl:text>. </xsl:text></xsl:when><xsl:otherwise><xsl:text>, </xsl:text></xsl:otherwise></xsl:choose>
1006
                        <xsl:choose><xsl:when test="position()=last()"><xsl:text>. </xsl:text></xsl:when><xsl:otherwise><xsl:text>, </xsl:text></xsl:otherwise></xsl:choose>
990
                       </xsl:for-each>
1007
                    </xsl:for-each>
991
                   </span>
1008
                </span>
992
                   </xsl:when>
1009
            </xsl:when>
993
                   </xsl:choose>
1010
        </xsl:choose>
1011
1012
        <xsl:if test="count(key('item-by-status', 'Checked out'))>0">
1013
            <span class="unavailable">
1014
                <xsl:text>Checked out (</xsl:text>
1015
                <xsl:value-of select="count(key('item-by-status', 'Checked out'))"/>
1016
                <xsl:text>). </xsl:text>
1017
            </span>
1018
        </xsl:if>
1019
1020
        <xsl:if test="count(key('item-by-status', 'Withdrawn'))>0">
1021
            <span class="unavailable">
1022
                <xsl:text>Withdrawn (</xsl:text>
1023
                <xsl:value-of select="count(key('item-by-status', 'Withdrawn'))"/>
1024
                <xsl:text>). </xsl:text>
1025
            </span>
1026
        </xsl:if>
1027
1028
        <xsl:if test="count(key('item-by-status', 'Lost'))>0">
1029
            <span class="unavailable">
1030
                <xsl:text>Lost (</xsl:text>
1031
                <xsl:value-of select="count(key('item-by-status', 'Lost'))"/>
1032
                <xsl:text>). </xsl:text>
1033
            </span>
1034
	</xsl:if>
1035
1036
        <xsl:if test="count(key('item-by-status', 'Damaged'))>0">
1037
            <span class="unavailable">
1038
                <xsl:text>Damaged (</xsl:text>
1039
                <xsl:value-of select="count(key('item-by-status', 'Damaged'))"/>
1040
                <xsl:text>). </xsl:text>
1041
            </span>
1042
        </xsl:if>
994
1043
995
                   <xsl:if test="count(key('item-by-status', 'Checked out'))>0">
1044
        <xsl:if test="count(key('item-by-status', 'On order'))>0">
996
                   <span class="unavailable">
1045
            <span class="unavailable">
997
                       <xsl:text>Checked out (</xsl:text>
1046
                <xsl:text>On order (</xsl:text>
998
                       <xsl:value-of select="count(key('item-by-status', 'Checked out'))"/>
1047
                <xsl:value-of select="count(key('item-by-status', 'On order'))"/>
999
                       <xsl:text>). </xsl:text>
1048
                <xsl:text>). </xsl:text>
1000
				   </span>
1049
            </span>
1001
                   </xsl:if>
1050
        </xsl:if>
1002
                   <xsl:if test="count(key('item-by-status', 'Withdrawn'))>0">
1051
1003
                   <span class="unavailable">
1052
        <xsl:if test="count(key('item-by-status', 'In transit'))>0">
1004
                       <xsl:text>Withdrawn (</xsl:text>
1053
            <span class="unavailable">
1005
                       <xsl:value-of select="count(key('item-by-status', 'Withdrawn'))"/>
1054
                <xsl:text>In transit (</xsl:text>
1006
                       <xsl:text>). </xsl:text>                   </span>
1055
                <xsl:value-of select="count(key('item-by-status', 'In transit'))"/>
1007
				   </xsl:if>
1056
                <xsl:text>). </xsl:text>
1008
                    <xsl:if test="count(key('item-by-status', 'Lost'))>0">
1057
            </span>
1009
                   <span class="unavailable">
1058
        </xsl:if>
1010
                       <xsl:text>Lost (</xsl:text>
1059
1011
                       <xsl:value-of select="count(key('item-by-status', 'Lost'))"/>
1060
        <xsl:if test="count(key('item-by-status', 'Waiting'))>0">
1012
                       <xsl:text>). </xsl:text>                   </span>
1061
            <span class="unavailable">
1013
				   </xsl:if>
1062
                <xsl:text>On hold (</xsl:text>
1014
                    <xsl:if test="count(key('item-by-status', 'Damaged'))>0">
1063
                <xsl:value-of select="count(key('item-by-status', 'Waiting'))"/>
1015
                   <span class="unavailable">
1064
                <xsl:text>). </xsl:text>
1016
                       <xsl:text>Damaged (</xsl:text>
1065
            </span>
1017
                       <xsl:value-of select="count(key('item-by-status', 'Damaged'))"/>
1066
        </xsl:if>
1018
                       <xsl:text>). </xsl:text>                   </span>
1067
      </span>
1019
                   </xsl:if>
1068
    </xsl:template>
1020
                    <xsl:if test="count(key('item-by-status', 'On order'))>0">
1069
1021
                   <span class="unavailable">
1070
    <xsl:template name="ShowCallNumber">
1022
                       <xsl:text>On order (</xsl:text>
1071
        <span class="results_summary">
1023
                       <xsl:value-of select="count(key('item-by-status', 'On order'))"/>
1072
	    <span class="label">Call Number: </span>
1024
                       <xsl:text>). </xsl:text>                   </span>
1073
	    <xsl:for-each select="marc:datafield[@tag=952]/marc:subfield[@code='o']">
1025
                   </xsl:if>
1074
	        <xsl:value-of select="."/>
1026
                    <xsl:if test="count(key('item-by-status', 'In transit'))>0">
1075
	        <xsl:choose>
1027
                   <span class="unavailable">
1076
                    <xsl:when test="position()=last()"></xsl:when>
1028
                       <xsl:text>In transit (</xsl:text>
1077
                    <xsl:otherwise>, </xsl:otherwise>
1029
                       <xsl:value-of select="count(key('item-by-status', 'In transit'))"/>
1078
                </xsl:choose>
1030
                       <xsl:text>). </xsl:text>                   </span>
1079
            </xsl:for-each>
1031
                   </xsl:if>
1080
        </span>
1032
                    <xsl:if test="count(key('item-by-status', 'Waiting'))>0">
1033
                   <span class="unavailable">
1034
                       <xsl:text>On hold (</xsl:text>
1035
                       <xsl:value-of select="count(key('item-by-status', 'Waiting'))"/>
1036
                       <xsl:text>). </xsl:text>                   </span>
1037
                   </xsl:if>
1038
               </span>
1039
    </xsl:template>
1081
    </xsl:template>
1040
1082
1041
    <xsl:template name="nameABCDQ">
1083
    <xsl:template name="nameABCDQ">
1042
- 

Return to bug 5643