1<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="iso-8859-1"%>
2<%--@elvariable id="model" type="java.util.Map"--%>
3
4<html><head>
5    <%@ include file="head.jsp" %>
6    <%@ include file="jquery.jsp" %>
7
8    <script type="text/javascript" src="<c:url value="/dwr/engine.js"/>"></script>
9    <script type="text/javascript" src="<c:url value="/dwr/interface/starService.js"/>"></script>
10
11    <script type="text/javascript" src="<c:url value="/script/fancyzoom/FancyZoom.js"/>"></script>
12    <script type="text/javascript" src="<c:url value="/script/fancyzoom/FancyZoomHTML.js"/>"></script>
13
14
15    <script type="text/javascript">
16
17        function toggleStar(mediaFileId, imageId) {
18        if ($(imageId).attr("src").indexOf("<spring:theme code="ratingOnImage"/>") != -1) {
19            $(imageId).attr("src", "<spring:theme code="ratingOffImage"/>");
20            starService.unstar(mediaFileId);
21        }
22        else if ($(imageId).attr("src").indexOf("<spring:theme code="ratingOffImage"/>") != -1) {
23            $(imageId).attr("src", "<spring:theme code="ratingOnImage"/>");
24            starService.star(mediaFileId);
25        }
26    }
27
28    </script>
29
30    <style type="text/css">
31
32        .videoContainer {
33            width: 282px;
34            float: left;
35            padding-right: 14px;
36            padding-bottom: 10px;
37        }
38
39        .imageContainer {
40            width: 160px;
41            float: left;
42            padding-right: 14px;
43            padding-bottom: 10px;
44        }
45
46        .duration {
47            font-size: 9px;
48            position: absolute;
49            bottom: 3px;
50            right: 3px;
51            color: #d3d3d3;
52            background-color: black;
53            opacity: 0.8;
54            padding-right:4px;
55            padding-left:3px;
56        }
57        .format {
58            font-size:9;
59            position: absolute;
60            bottom: 3px;
61            left: 4px;
62            color: #d3d3d3;
63            background-color: black;
64            opacity: 0.8;
65            padding-right:4px;
66            padding-left:3px;
67        }
68
69        .title {
70            width:213px;
71            overflow: hidden;
72            text-overflow: ellipsis;
73            padding-top: 3px;
74        }
75        .directory {
76            width: 213px;
77            overflow: hidden;
78            text-overflow: ellipsis;
79        }
80    </style>
81
82</head>
83
84<body class="mainframe bgcolor1" onload="init();">
85<script type="text/javascript" language="javascript">
86    function init() {
87        setupZoom('<c:url value="/"/>');
88    };
89  </script>
90
91<h1 style="padding-bottom: 3em">
92    <span style="vertical-align: middle;">
93        <c:forEach items="${model.ancestors}" var="ancestor">
94            <madsonic:url value="main.view" var="ancestorUrl">
95                <madsonic:param name="id" value="${ancestor.id}"/>
96            </madsonic:url>
97            <a href="${ancestorUrl}">${ancestor.name}</a> &raquo;
98        </c:forEach>
99        ${model.dir.name}
100    </span>
101</h1>
102
103<c:forEach items="${model.children}" var="child">
104
105	<c:choose>
106		<c:when test="${child.video}">
107
108        <madsonic:url value="/videoPlayer.view" var="videoUrl">
109            <madsonic:param name="id" value="${child.id}"/>
110        </madsonic:url>
111
112        <madsonic:url value="/coverArt.view" var="coverArtUrl">
113            <madsonic:param name="id" value="${child.id}"/>
114            <madsonic:param name="size" value="160"/>
115        </madsonic:url>
116
117        <div class="videoContainer">
118            <div style="position:relative">
119                <div>
120                    <a href="${videoUrl}"><img src="${coverArtUrl}" alt="" class="dropshadow"></a>
121                </div>
122                <div class="detail format">${child.format}</div>
123                <div class="detail duration">${child.durationString}</div>
124            </div>
125
126            <div class="detail title" title="${child.name}" style="padding-top:10px">
127
128                <c:import url="playAddDownload.jsp">
129                    <c:param name="id" value="${child.id}"/>
130                    <c:param name="video" value="${child.video and model.player.web}"/>
131                    <c:param name="playEnabled" value="false"/>
132                    <c:param name="playAddEnabled" value="false"/>
133                    <c:param name="playMoreEnabled" value="false"/>
134                    <c:param name="addEnabled" value="false"/>
135                    <c:param name="addNextEnabled" value="false"/>
136                    <c:param name="addLastEnabled" value="false"/>
137                    <c:param name="downloadEnabled" value="false"/>
138                    <c:param name="artist" value="${fn:escapeXml(child.artist)}"/>
139                    <c:param name="title" value="${child.title}"/>
140                    <c:param name="starEnabled" value="true"/>
141                    <c:param name="starred" value="${not empty child.starredDate}"/>
142                    <c:param name="asTable" value="false"/>
143                    <c:param name="YoutubeEnabled" value="false"/>
144                </c:import>
145
146            <b>${child.name}</b></div>
147        </div>
148		</c:when>
149        <c:when test="${child.audio}">
150
151                    <div class="imageContainer">
152                        <div style="position:relative">
153                            <div class="coverart" style="float:left;padding-bottom:8px;">
154                                <img width="160" src="icons/default/default_cover.png">
155                            </div>
156
157                    <c:import url="playAddDownload.jsp">
158                        <c:param name="id" value="${child.id}"/>
159                        <c:param name="video" value="${child.video and model.player.web}"/>
160                        <c:param name="playEnabled" value="${model.user.streamRole and not model.partyMode and model.buttonVisibility.playVisible}"/>
161                        <c:param name="playAddEnabled" value="${model.user.streamRole and not model.partyMode and model.buttonVisibility.playAddVisible}"/>
162                        <c:param name="playMoreEnabled" value="${model.user.streamRole and not model.partyMode and model.buttonVisibility.playMoreVisible}"/>
163                        <c:param name="addEnabled" value="${model.user.streamRole and (not model.partyMode or not child.directory) and model.buttonVisibility.addContextVisible}"/>
164                        <c:param name="addNextEnabled" value="${model.user.streamRole and (not model.partyMode or not child.directory) and model.buttonVisibility.addNextVisible}"/>
165                        <c:param name="addLastEnabled" value="${model.user.streamRole and (not model.partyMode or not child.directory) and model.buttonVisibility.addLastVisible}"/>
166                        <c:param name="downloadEnabled" value="false"/>
167                        <c:param name="artist" value="${fn:escapeXml(child.artist)}"/>
168                        <c:param name="title" value="${child.title}"/>
169                        <c:param name="starEnabled" value="${model.buttonVisibility.starredVisible}"/>
170                        <c:param name="starred" value="${not empty child.starredDate}"/>
171                        <c:param name="asTable" value="false"/>
172                        <c:param name="YoutubeEnabled" value="${model.buttonVisibility.youtubeVisible}"/>
173                        <c:param name="LyricEnabled" value="${model.buttonVisibility.lyricVisible}"/>
174                        </c:import>
175
176                        </div>
177                    </div>
178
179		</c:when>
180		<c:otherwise>
181        <div class="imageContainer">
182            <div style="position:relative">
183                <div class="coverart" style="float:left;">
184                <c:import url="coverArt.jsp">
185                    <c:param name="albumId" value="${child.id}"/>
186                    <c:param name="albumName" value="${child.name}"/>
187                    <c:param name="coverArtSize" value="160"/>
188                    <c:param name="showLink" value="false"/>
189                    <c:param name="showZoom" value="true"/>
190                    <c:param name="showChange" value="false"/>
191                    <c:param name="showCaption" value="false"/>
192                    <c:param name="captionLength" value="20"/>
193                    <c:param name="appearAfter" value="1"/>
194                    <c:param name="showSmoother" value="true"/>
195                </c:import>
196                </div>
197                <b>${child.name}</b>
198            </div>
199        </div>
200		</c:otherwise>
201	</c:choose>
202
203
204</c:forEach>
205</body>
206</html>