Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
5656ebd
Created movie model
TheresaManney Jun 13, 2017
a56c8f9
Added semantic HTML to index. Added templates for result-movie and st…
janicewilson Jun 13, 2017
d358edf
Merge branch 'master' of https://github.com/janicewilson/VideoStoreCo…
janicewilson Jun 13, 2017
2a9f1bb
Completed movies collection
TheresaManney Jun 13, 2017
6401e97
Merge branch 'tam/movies_collection'
TheresaManney Jun 13, 2017
41ac8e6
Basic logic for movie view is complete
TheresaManney Jun 13, 2017
996ed9e
Created instances of collection Movies. Compiled HTML templates.
janicewilson Jun 13, 2017
e2266fd
Merge branch 'master' of https://github.com/janicewilson/VideoStoreCo…
janicewilson Jun 13, 2017
75a0163
Created file and added imports for movies_view.js
TheresaManney Jun 13, 2017
90fd416
Merge branch 'master' into tam/movies_views
TheresaManney Jun 13, 2017
c29021e
Commit so I can get a change from master
TheresaManney Jun 13, 2017
2f75ae4
Template correction.
janicewilson Jun 13, 2017
3842f64
Merge branch 'master' into tam/movies_views
TheresaManney Jun 13, 2017
8710a1a
Things should be showing by now but are not
TheresaManney Jun 13, 2017
bc9df04
Fixing nits and adding fetch.
janicewilson Jun 14, 2017
b16031a
Added search form.
janicewilson Jun 14, 2017
b9aa784
Added click event.
janicewilson Jun 14, 2017
874a633
Added function to prevent default.
janicewilson Jun 14, 2017
c0d3913
Added function to capture query to send to local api
TheresaManney Jun 14, 2017
2edbb1e
Added files for db-model, db-views and db-collection.
janicewilson Jun 14, 2017
1f1c0d4
Added files for db-model, db-views and db-collection.
janicewilson Jun 14, 2017
e786f79
Got search working without commingling collections.
janicewilson Jun 14, 2017
7908765
Added hidden field to Add Movie form. Imported db views into app.js. …
janicewilson Jun 14, 2017
5442a17
WIP add movie functionality.
janicewilson Jun 16, 2017
ae72865
Add movie function is finally working.
janicewilson Jun 16, 2017
cc9ab7e
trying to get the added movie to cause a re-render to refresh the pag…
TheresaManney Jun 16, 2017
281ec57
Fixed refresh.
janicewilson Jun 19, 2017
9b25f98
images kinda work
TheresaManney Jun 19, 2017
ebae500
Added some foundation styling
TheresaManney Jun 21, 2017
60f9a26
no wierd spacing happening any more, changed the font style in the he…
TheresaManney Jun 23, 2017
dcd2051
style looks better now, changed the font again
TheresaManney Jun 23, 2017
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 33 additions & 10 deletions build/css/styles.css
Original file line number Diff line number Diff line change
@@ -1,12 +1,17 @@
@include foundation-everything;

main {
background: lightblue;
background: #3B3355;
}

header {
background-color: lightgreen;
background-color: #BFCDE0;
padding: 0.5rem;
text-align: center;
}

h1 {
font-family: 'Fjalla One', sans-serif;
}

#completed-checkbox {
Expand All @@ -22,10 +27,6 @@ button.success {
display: inline;
}

aside.create-tasklist {
background-color: navy;
color: #FFFFFF;
}
aside label {
color: #FFFFFF;
}
Expand All @@ -37,8 +38,30 @@ aside label {
div {
display: inline;
}
/*
* {
border-style: solid;

.hidden {
display: none;
}

#db-movies {
background-color: #2C666E;
}

h4 {
font-family: 'Fjalla One', sans-serif;
text-align: center;
height: 100px;
overflow: scroll;
}
.pic {
padding-bottom: 1em;
display: block;
margin: auto;
width: 225px;
height: 330px;

}

p {
text-align: center;
}
*/
85 changes: 71 additions & 14 deletions build/index.html
Original file line number Diff line number Diff line change
@@ -1,15 +1,72 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="css/_settings.css">
<link rel="stylesheet" type="text/css" href="css/foundation.css">
<link rel="stylesheet" type="text/css" href="css/styles.css">
<title>Backbone Baseline</title>
</head>
<body>

<script src="/app.bundle.js"></script>

</body>
</html>
<html lang='en'>
<head>
<meta charset='utf-8'>
<link rel='stylesheet' type='text/css' href='css/_settings.css'>
<link rel='stylesheet' type='text/css' href='css/foundation.css'>
<link rel='stylesheet' type='text/css' href='css/styles.css'>
<link href="https://fonts.googleapis.com/css?family=Fjalla+One" rel="stylesheet">
<title>Wetflix</title>
</head>

<body>
<header>
<nav></nav>
<h1>Wetflix</h1>
</header>

<main>
<section id='movies'>
<section id='db-movies'>
<form id='searchForm'>
<div class="row">
<section class='columns small-10 small-centered medium-9 medium-centered large-6'>
<input type='text' id='query' name='query' placeholder="Enter A Movie Title..."></input>

<section class='button'>
<button type='submit' id='search-button'>Search</button>
</section>
</section>
</div>
</form>
<section id='movie-results' class="row" data-equalizer></section>
</section>
<section>
<section id='movies-stocked' class="row" data-equalizer></section>
</section>
</section>
</main>

<footer></footer>
<!-- class="medium-4 columns" -->
<script id='movie-template' type='text/template'>
<section class="movie">
<section class="small-6 medium-4 large-3 columns" data-equalizer-watch>
<section class="callout">
<h4><%- movie.title %></h4>
<img class="pic" src=<%-movie.image_url%> >
<p> Release Date: <%- movie.release_date %></p>
</section>
</section>
</section>
</script>

<script id='db-movie-template' type='text/template'>
<section class="movie">
<section class="small-6 medium-4 large-3 columns" data-equalizer-watch>
<section class="callout">
<h4><%- movie.title %></h4>
<img class="pic" src=<%-movie.image_url%> >
<form>
<center>
<button class='button' id='add-button'>Add Movie</button>
</center>
</form>
</section>
</section>
</section>
</script>

<script src='/app.bundle.js'></script>
</body>
</html>
18 changes: 13 additions & 5 deletions src/app.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,20 @@
// /src/app.js

// Import jQuery & Underscore
import $ from 'jquery';
import _ from 'underscore';
import Movies from './collections/movies.js';
import DBMovies from './collections/db_movies.js';
import MoviesView from './views/movies_view.js';
import DBMoviesView from './views/db_movies_view.js';


var movies = new Movies();

// ready to go
$(document).ready(function() {
var moviesView = new MoviesView({
model: movies,
resultTemplate: _.template($('#movie-template').html(), {variable: 'movie'}),
el: '#movies'
});

$('section.main-content').append('<p>Hello World!</p>');
moviesView.render();

});
9 changes: 9 additions & 0 deletions src/collections/db_movies.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import Backbone from 'backbone';
import DBMovie from '../models/db_movie.js';

var DBMovies = Backbone.Collection.extend({
model: DBMovie,
url: 'http://localhost:3000/movies'
});

export default DBMovies;
11 changes: 11 additions & 0 deletions src/collections/movies.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
// collection - movies.js
import Backbone from 'backbone';

import Movie from '../models/movie.js';

var Movies = Backbone.Collection.extend({
model: Movie,
url: 'http://localhost:3000/movies'
});

export default Movies;
13 changes: 13 additions & 0 deletions src/models/db_movie.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import Backbone from 'backbone';

var DBMovie = Backbone.Model.extend({
defaults: {
title: '',
overview: '',
release_date: '',
image_url: '',
external_id: ''
},
});

export default DBMovie;
22 changes: 22 additions & 0 deletions src/models/movie.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import Backbone from 'backbone';

var Movie = Backbone.Model.extend({
defaults: {
title: '',
overview: '',
release_date: '',
image_url: '',
external_id: ''
},
// logStatus: function() {
// console.log('Model ' + this.cid);
// console.log('Title ' + this.get('title'));
// console.log('Inventory ' + this.get('inventory'));
// },
// initialize: function(params) {
// console.log('Starting ', params);
// this.logStatus();
// }
});

export default Movie;
38 changes: 38 additions & 0 deletions src/views/db_movie_view.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import Backbone from 'backbone';
import _ from 'underscore';
import $ from 'jquery';

import DBMovie from '../models/db_movie.js';
import Movie from '../models/movie.js';


var DBMovieView = Backbone.View.extend({
initialize: function(params) {
this.template = params.template;
this.listenTo(this.model, 'change', this.render);
},
render: function() {
var compiledTemplate = this.template(this.model.toJSON());
this.$el.html(compiledTemplate);
return this;
},
events: {
'click #add-button' : 'createMovie'
},
formatForMovie: function() {
return {
title: this.model.attributes.title,
overview: this.model.attributes.overview,
release_date: this.model.attributes.release_date,
image_url: this.model.attributes.image_url,
external_id: this.model.attributes.external_id
};
},
createMovie: function() {
event.preventDefault();
var movie = new Movie(this.formatForMovie());
this.trigger('created', movie);
}
});

export default DBMovieView;
52 changes: 52 additions & 0 deletions src/views/db_movies_view.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
import Backbone from 'backbone';
import _ from 'underscore';
import $ from 'jquery';

import DBMovieView from './db_movie_view.js';
import DBMovie from '../models/db_movie.js';
import Movies from '../collections/movies.js';


var DBMoviesView = Backbone.View.extend({
initialize: function( params ) {
this.template = params.stockTemplate;
this.movies = params.movies
this.listenTo(this.model, 'update', this.render);
},
render: function() {

this.$( '#movie-results' ).empty();

var that = this;

this.model.each(function( dbMovie ) {
var dbMovieView = new DBMovieView({
model: dbMovie,
template: that.template
});

that.listenTo(dbMovieView,'created', that.addMovie);
that.$('#movie-results').append( dbMovieView.render().$el );
});
return this;
},
events: {
'click #search-button' : 'searchMovie',
},
getFormSearch: function() {
var formQuery = this.$('#query').val();
this.$('#query').val('');
return formQuery;
},
searchMovie: function() {
event.preventDefault();
this.model.fetch({
data: {query: this.getFormSearch()}
});
},
addMovie: function(movie) {
this.movies.create(movie);
}
});

export default DBMoviesView;
19 changes: 19 additions & 0 deletions src/views/movie_view.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import Backbone from 'backbone';
import _ from 'underscore';
import $ from 'jquery';

import Movie from '../models/movie.js';

var MovieView = Backbone.View.extend({
initialize: function(params) {
this.template = params.template; // TODO: double check name of this template
this.listenTo(this.model, 'change', this.render);
},
render: function() {
var compiledTemplate = this.template(this.model.toJSON());
this.$el.html(compiledTemplate);
return this;
}
});

export default MovieView;
49 changes: 49 additions & 0 deletions src/views/movies_view.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
import Backbone from 'backbone';
import _ from 'underscore';
import $ from 'jquery';

import MovieView from './movie_view.js';
import Movie from '../models/movie.js';
import DBMoviesView from './db_movies_view.js';
import DBMovies from '../collections/db_movies.js';
import DBMovie from '../models/db_movie.js';


var MoviesView = Backbone.View.extend({
initialize: function(params) {
this.template = params.resultTemplate;
this.detailsTemplate = params.stockTemplate;
this.dbMovies = new DBMovies();

this.dbMoviesView = new DBMoviesView({
movies: this.model,
model: this.dbMovies,
stockTemplate: _.template($('#db-movie-template').html(), {variable: 'movie'}),
el: '#db-movies'
});

this.model.fetch();

this.listenTo(this.model, 'update', this.render);

},
render: function() {
console.log("test");
this.$('#movie-results').empty();
this.$('#movies-stocked').empty();
var that = this;

this.model.each(function(movie) {
var movieView = new MovieView({
model: movie,
template: that.template
});

that.$('#movies-stocked').append(movieView.render().$el);
});

return this;
}
});

export default MoviesView;