Compare commits

..

No commits in common. "8bdf848cbfd27b8bc513e0c1c75363c530124fd3" and "727e4e7867cb7ab82edf41c891e10acba53b5f67" have entirely different histories.

3 changed files with 123 additions and 84 deletions

View File

@ -39,9 +39,6 @@ function renderTable(records, sortField) {
var recordElement = document.getElementById("records"); var recordElement = document.getElementById("records");
recordElement.innerHTML = TableTemplate(records); recordElement.innerHTML = TableTemplate(records);
var recordCount = document.getElementById("recordCount");
recordCount.innerHTML = `${records.length} records`;
// add listeners for selecting record to view // add listeners for selecting record to view
Array.from(recordElement.querySelectorAll("tbody tr")) Array.from(recordElement.querySelectorAll("tbody tr"))
.slice(1) // remove header from Array .slice(1) // remove header from Array
@ -147,22 +144,34 @@ function RecordTemplate({
</span>`; </span>`;
} }
function TableRowTemplate({ name, coverURL, discogsURL }) { function TableRowTemplate({
return `<div class="record"> artists,
<img class="cover" src="${coverURL}"/> identifier,
<span class="name">${name}</span> label,
<a rowNumber,
target="_blank" name,
href="${discogsURL}" year,
class="discogsLink" }) {
> return `<tr class="tRow" id="${rowNumber}">
Data provided by Discogs. <td class="name">
</a> ${name}
</div>`; </td>
<td class="artist">${artists.join(", ")}</td>
<td class="label">${label}</td>
<td class="identifier">${identifier}</td>
<td class="year">${year}</td>
</tr>`;
} }
function TableTemplate(records) { function TableTemplate(records) {
return `<div class="flow">${records.reduce((acc, record) => { return `<table class="recordTable">
return acc.concat(TableRowTemplate(record)); <tr>
}, "")} </div>`; <th data-sort-by="sortName" class="tHeader name">Name</th>
<th data-sort-by="sortArtist" class="tHeader artist">Artist(s)</th>
<th data-sort-by="label" class="tHeader label">Label</th>
<th data-sort-by="identifier" class="tHeader identifier">Identifier</th>
<th data-sort-by="year" class="tHeader year">Year</th>
</tr>${records.reduce((acc, record) => {
return acc.concat(TableRowTemplate(record));
}, "")} </table>`;
} }

View File

@ -30,7 +30,6 @@
>git</a >git</a
> >
<div id="searchBox"> <div id="searchBox">
<span id="recordCount" class="recordCount">_ records</span>
<input <input
id="search" id="search"
type="text" type="text"
@ -39,11 +38,8 @@
/> />
</div> </div>
</div> </div>
<div id="current">No Record Selected</div>
<div id="records"></div> <div id="records"></div>
<footer>
This application uses Discogs API but is not affiliated with, sponsored
or endorsed by Discogs. Discogs is a trademark of Zink Media, LLC.
</footer>
<!-- Table goes here --> <!-- Table goes here -->
</div> </div>
</body> </body>

View File

@ -147,11 +147,6 @@ body {
display: inline; display: inline;
} }
#header .recordCount {
font-size: small;
color: #a29c77;
}
#searchBox { #searchBox {
position: absolute; position: absolute;
right: 10px; right: 10px;
@ -179,60 +174,99 @@ body {
color: #d8d0a0; color: #d8d0a0;
} }
#records .flow { #current {
height: calc(100vh - 35px - 15px - 20px);
padding-top: 5px;
padding-left: 20px;
padding-right: 20px;
display: flex;
justify-content: space-evenly;
align-items: flex-start;
flex-wrap: wrap;
overflow: auto;
}
#records .flow .record {
display: inline-block;
width: 250px;
padding: 15px;
border-radius: 3px;
}
#records .flow .record:nth-child(odd) {
background: #f9f8ed;
}
#records .flow .record .cover {
border-radius: 3px;
max-width: 250px;
display: block;
margin: 0 auto 3px;
overflow: unset;
}
#records .flow .record .name {
font-style: italic;
}
#records .flow .record a.discogsLink {
display: block;
text-align: right;
font-size: smaller;
padding-top: 10px;
color: #a29c77;
}
footer {
background-color: #f7f3dc; background-color: #f7f3dc;
font-size: smaller; width: calc(40vw - 40px);
text-align: center; height: calc(100vh - 80px);
vertical-align: bottom; padding: 20px;
padding: 5px 0px; overflow: auto;
position: absolute; float: left;
bottom: 0; }
padding-left: 20px;
padding-right: 20px; #records {
width: calc(100% - 40px); width: calc(60vw - 40px);
color: #a29c77; height: calc(100vh - 80px);
border-top: 2px solid #d8d0a0; padding: 20px;
} overflow: auto;
float: left;
}
.recordTable th {
font-weight: bold;
text-align: left;
font-family: "Libre Baskerville", sans-serif;
}
.recordTable th[data-sort-by] {
cursor: pointer;
}
.recordTable th[data-sort-by]::after {
content: "\f0dc";
font-family: FontAwesome;
font-size: x-small;
position: relative;
left: 4px;
bottom: 2px;
}
.recordTable th.asc::after {
content: "\f0de";
font-family: FontAwesome;
font-size: x-small;
position: relative;
left: 4px;
bottom: 2px;
}
.recordTable th.desc::after {
content: "\f0dd";
font-family: FontAwesome;
font-size: x-small;
position: relative;
left: 4px;
bottom: 2px;
}
.recordTable td,
.recordTable th {
padding: 5px;
min-width: 50px;
}
.tRow:nth-child(odd) {
background: #f9f8ed;
border-bottom: 1px solid #d8d0a0;
}
.recordTable .tRow {
cursor: pointer;
}
.recordTable .tRow .name {
font-style: italic;
max-width: 600px;
}
#current h1 {
font-size: x-large;
font-weight: bold;
font-style: italic;
padding: 10px 0;
}
#current h2 {
font-size: large;
padding: 7px 0;
}
#current img {
max-height: 400px;
max-width: 100%;
display: block;
margin: 0 auto;
}
#current .description p {
padding: 20px 0;
}