Skip to content

Commit

Permalink
Added hide/show watched movie functionality fixing #13
Browse files Browse the repository at this point in the history
  • Loading branch information
pschfr committed Jun 14, 2018
1 parent 7d9c879 commit 21cdbdb
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 20 deletions.
4 changes: 4 additions & 0 deletions public/index.jade
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,7 @@ for movie, index in movies
label(for="#{index}")= index
p.text-center#count
em #{watchedCount} watched, #{unwatchedCount} unwatched, #{totalCount} total.
br
input(type="checkbox" id="hide" name="hide")
label(for="hide")
| Hide Watched
52 changes: 32 additions & 20 deletions public/js/app.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -6,27 +6,29 @@ logging = false
# Loops through inputs and label names, then performs search request for details & adds watched movies to localStorage
listMovies = () ->
for movie in document.getElementsByTagName('label')
movie.addEventListener('click', (event) ->
event.preventDefault()
searchTMDb(event.target.innerHTML)
)
if movie.htmlFor != 'hide'
movie.addEventListener('click', (event) ->
event.preventDefault()
searchTMDb(event.target.innerHTML)
)
for input in document.getElementsByTagName('input')
if localStorage.getItem(input.name)
document.getElementById(input.name).parentElement.title = 'watched'
document.getElementById(input.name).setAttribute('checked', 'checked')
input.addEventListener('click', (event) ->
if event.target.checked
localStorage.setItem(event.target.name, 'watched')
event.target.parentElement.title = 'watched'
else
localStorage.removeItem(event.target.name)
event.target.parentElement.title = ''
)
# Press `Enter` when focused on an input to open the modal
input.addEventListener('keyup', (event) ->
if (event.keyCode == 13)
document.querySelector('label[for="' + event.target.id + '"]').click()
)
if input.id != 'hide'
if localStorage.getItem(input.name)
document.getElementById(input.name).parentElement.title = 'watched'
document.getElementById(input.name).setAttribute('checked', 'checked')
input.addEventListener('click', (event) ->
if event.target.checked
localStorage.setItem(event.target.name, 'watched')
event.target.parentElement.title = 'watched'
else
localStorage.removeItem(event.target.name)
event.target.parentElement.title = ''
)
# Press `Enter` when focused on an input to open the modal
input.addEventListener('keyup', (event) ->
if (event.keyCode == 13)
document.querySelector('label[for="' + event.target.id + '"]').click()
)

# Search The Movie Database - https://www.themoviedb.org/
searchTMDb = (query) ->
Expand Down Expand Up @@ -121,6 +123,16 @@ document.onkeyup = (event) ->
if (event.keyCode == 27)
document.getElementById('overlay').classList.remove('open')

# Hides watched videos on click
document.getElementById('hide').addEventListener('click', (event) ->
for movie in document.getElementsByClassName('movie')
if movie.title
if document.getElementById('hide').checked
movie.style.display = 'none'
else
movie.style.display = ''
)

# Run everything on load
findGenres()
listMovies()
10 changes: 10 additions & 0 deletions public/main.sass
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ a
#count
margin: $small-margin auto
color: $light-color
line-height: 2

.movie
background-color: $muted-color
Expand Down Expand Up @@ -111,6 +112,15 @@ a
visibility: visible
opacity: 1

#hide
margin-top: 0
vertical-align: middle
label[for="hide"]
margin: 0 0 0 3px
font-weight: normal
font-size: 16px
user-select: none

@include media-query($medium-width)
#overlay
#modal
Expand Down

0 comments on commit 21cdbdb

Please sign in to comment.