diff --git a/sass b/sass new file mode 100755 index 0000000..2d8eb12 --- /dev/null +++ b/sass @@ -0,0 +1 @@ +sass src/scss/style.scss build/style.css diff --git a/spotify/api/api.py b/spotify/api/api.py index 8138514..21a9a4b 100644 --- a/spotify/api/api.py +++ b/spotify/api/api.py @@ -75,6 +75,8 @@ def playlist(): playlist_parts = request_json.get('parts', None) playlist_id = request_json.get('id', None) playlist_shuffle = request_json.get('shuffle', None) + playlist_type = request_json.get('type', None) + playlist_day_boundary = request_json.get('day_boundary', None) queried_playlist = [i for i in playlists.where(u'name', u'==', playlist_name).stream()] @@ -90,12 +92,18 @@ def playlist(): new_playlist_id = create_playlist(session['username'], playlist_name) - playlists.add({ + to_add = { 'name': playlist_name, 'parts': playlist_parts, 'playlist_id': new_playlist_id, - 'shuffle': playlist_shuffle - }) + 'shuffle': playlist_shuffle, + 'type': playlist_type + } + + if playlist_type == 'recents': + to_add['day_boundary'] = playlist_day_boundary if playlist_day_boundary is not None else 21 + + playlists.add(to_add) return jsonify({"message": 'playlist added', "status": "success"}), 200 @@ -107,15 +115,21 @@ def playlist(): if len(queried_playlist) > 1: return jsonify({'error': "multiple playlists exist"}), 500 - if playlist_parts is None and playlist_id is None and playlist_shuffle is None: + if playlist_parts is None and \ + playlist_id is None and \ + playlist_shuffle is None and \ + playlist_day_boundary is None: return jsonify({'error': "no chnages to make"}), 400 playlist_doc = playlists.document(queried_playlist[0].id) dic = {} - if playlist_parts: - dic['parts'] = playlist_parts + if playlist_parts is not None: + if playlist_parts == -1: + dic['parts'] = [] + else: + dic['parts'] = playlist_parts if playlist_id: dic['playlist_id'] = playlist_id @@ -123,6 +137,9 @@ def playlist(): if playlist_shuffle is not None: dic['shuffle'] = playlist_shuffle + if playlist_day_boundary is not None: + dic['day_boundary'] = playlist_day_boundary + playlist_doc.update(dic) return jsonify({"message": 'playlist updated', "status": "success"}), 200 diff --git a/src/js/Playlist/NewPlaylist.js b/src/js/Playlist/NewPlaylist.js index 5840cb0..16a1df7 100644 --- a/src/js/Playlist/NewPlaylist.js +++ b/src/js/Playlist/NewPlaylist.js @@ -61,7 +61,7 @@ class NewPlaylist extends Component { diff --git a/src/js/Playlist/PlaylistView.js b/src/js/Playlist/PlaylistView.js index 6b97021..2797190 100644 --- a/src/js/Playlist/PlaylistView.js +++ b/src/js/Playlist/PlaylistView.js @@ -8,13 +8,17 @@ class PlaylistView extends Component{ this.state = { name: this.props.match.params.name, parts: [], + type: null, error: false, error_text: null, + + day_boundary: '', newPlaylistName: '', + shuffle: false } this.handleAddPart = this.handleAddPart.bind(this); - this.handleAddPartChange = this.handleAddPartChange.bind(this); + this.handleInputChange = this.handleInputChange.bind(this); this.handleRemoveRow = this.handleRemoveRow.bind(this); this.handleShuffleChange = this.handleShuffleChange.bind(this); @@ -36,9 +40,22 @@ class PlaylistView extends Component{ }); } - handleAddPartChange(event){ + handleInputChange(event){ this.setState({ - newPlaylistName: event.target.value + [event.target.name]: event.target.value + }); + + if(event.target.name == 'day_boundary'){ + this.handleDayBoundaryChange(event.target.value); + } + } + + handleDayBoundaryChange(boundary) { + axios.post('/api/playlist', { + name: this.state.name, + day_boundary: boundary + }).catch((error) => { + console.log(error); }); } @@ -75,6 +92,11 @@ class PlaylistView extends Component{ this.setState({ parts: parts }); + + if(parts.length == 0) { + parts = -1; + } + axios.post('/api/playlist', { name: this.state.name, parts: parts @@ -96,10 +118,11 @@ class PlaylistView extends Component{ { this.state.parts.map((part) => ) } - @@ -116,6 +139,20 @@ class PlaylistView extends Component{ onChange={this.handleShuffleChange}> + { this.state.type == 'recents' && + + + day boundary + + + + + + } ); diff --git a/src/scss/style.scss b/src/scss/style.scss index 54df3e7..1824036 100644 --- a/src/scss/style.scss +++ b/src/scss/style.scss @@ -49,14 +49,14 @@ p { display: inline-block; - border-radius: 10px; + border-radius: 5px; border: none; margin: 4px auto; padding: 15px; cursor: pointer; - box-shadow: 2px 2px 4px black; + box-shadow: 0 9px #383838; /*-webkit-transition-duration: 0.4s; transition-duration: 0.4s;*/ @@ -65,8 +65,13 @@ p { decoration: none; } - &:hover { - box-shadow: 0 12px 16px 0 rgba(0,0,0,0.24),0 17px 50px 0 rgba(0,0,0,0.19); + // &:hover { + // box-shadow: 0 12px 16px 0 rgba(0,0,0,0.24),0 17px 50px 0 rgba(0,0,0,0.19); + // } + + &:active { + box-shadow: 0 5px #383838; + transform: translateY(4px); } } diff --git a/watchsass b/watchsass new file mode 100755 index 0000000..729f219 --- /dev/null +++ b/watchsass @@ -0,0 +1 @@ +sass --watch src/scss/style.scss build/style.css