From d91ba26665deb2d2e300d703a63fb848177d491a Mon Sep 17 00:00:00 2001 From: murog Date: Mon, 18 Dec 2017 10:52:06 -0800 Subject: [PATCH 01/33] created movie model and movie collection. --- src/collections/movie_list.js | 8 ++++++++ src/models/movie.js | 7 +++++++ 2 files changed, 15 insertions(+) create mode 100644 src/collections/movie_list.js create mode 100644 src/models/movie.js diff --git a/src/collections/movie_list.js b/src/collections/movie_list.js new file mode 100644 index 000000000..c0e72dcc8 --- /dev/null +++ b/src/collections/movie_list.js @@ -0,0 +1,8 @@ +import Backbone from 'backbone'; +import Movie from 'models/movie'; + +const MovieList = Backbone.Collection.extend({ + model: Movie, +}); + +export default MovieList; diff --git a/src/models/movie.js b/src/models/movie.js new file mode 100644 index 000000000..2e3c413ca --- /dev/null +++ b/src/models/movie.js @@ -0,0 +1,7 @@ +import Backbone from 'backbone'; + +const Movie = Backbone.Model.extend({ + +}); + +export default Movie; From 8dfd3632d527565961551151a7928c490cf04eaf Mon Sep 17 00:00:00 2001 From: murog Date: Mon, 18 Dec 2017 10:52:59 -0800 Subject: [PATCH 02/33] created movie and movie list view with render functions --- src/views/movie_list_view.js | 30 ++++++++++++++++++++++++++++++ src/views/movie_view.js | 19 +++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 src/views/movie_list_view.js create mode 100644 src/views/movie_view.js diff --git a/src/views/movie_list_view.js b/src/views/movie_list_view.js new file mode 100644 index 000000000..4e6a4bb31 --- /dev/null +++ b/src/views/movie_list_view.js @@ -0,0 +1,30 @@ +import Backbone from 'backbone'; +import _ from 'underscore'; + +import MovieView from '../views/movie_view'; +// import OrderView from '../views/order_view'; +// import Quote from '../models/quote'; +import Movie from '../models/movie'; + +const MovieListView = Backbone.View.extend({ + initialize(params) { + this.bus = params.bus; + this.template = params.template; + }, + render() { + this.$('#movies').empty(); + this.model.each((movie) => { + const movieView = new MovieView({ + model: movie, + template: this.template, + bus: this.bus, + tagname: 'li', + className: 'movie', + }); + this.$('#movies').append(movieView.render().$el); + }); + }, + +}); + +export default MovieListView; diff --git a/src/views/movie_view.js b/src/views/movie_view.js new file mode 100644 index 000000000..379eb1a5b --- /dev/null +++ b/src/views/movie_view.js @@ -0,0 +1,19 @@ +import Backbone from 'backbone'; +import Movie from '../models/movie'; + +const MovieView = Backbone.View.extend({ + initialize(params) { + this.template = params.template; + this.bus = params.bus; + }, + render() { + const compiledTemplate = this.template(this.model.attributes); + this.$el.html(compiledTemplate); + return this; + }, + events: { + + }, +}); + +export default MovieView; From b9485debe2d0c859d34faa46299abc843fb9cafe Mon Sep 17 00:00:00 2001 From: murog Date: Mon, 18 Dec 2017 10:53:12 -0800 Subject: [PATCH 03/33] created movie workspace html --- dist/index.html | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/dist/index.html b/dist/index.html index 559b18ecd..f6382ef0b 100644 --- a/dist/index.html +++ b/dist/index.html @@ -6,7 +6,19 @@
- +
+
+
+

Moviez

+
+
    + +
+
+
+
+
+
From 60690669e74ca21631543bd9cf388f515c768a37 Mon Sep 17 00:00:00 2001 From: murog Date: Mon, 18 Dec 2017 11:03:48 -0800 Subject: [PATCH 04/33] initialized a movieList in app.js, added movies url to movies collection --- src/app.js | 9 +++++++++ src/collections/movie_list.js | 5 +++++ 2 files changed, 14 insertions(+) diff --git a/src/app.js b/src/app.js index 30c00d594..67d1f791a 100644 --- a/src/app.js +++ b/src/app.js @@ -6,8 +6,17 @@ import './css/styles.css'; import $ from 'jquery'; import _ from 'underscore'; +//import models and collections +import MovieList from 'collections/movie_list'; + +// import views +import MovieListView from 'views/movie_list_view'; + + // ready to go $(document).ready(function() { + const movieList = new MovieList; + movieList.fetch(); $('#main-content').append('

Hello World!

'); diff --git a/src/collections/movie_list.js b/src/collections/movie_list.js index c0e72dcc8..5f106f41d 100644 --- a/src/collections/movie_list.js +++ b/src/collections/movie_list.js @@ -3,6 +3,11 @@ import Movie from 'models/movie'; const MovieList = Backbone.Collection.extend({ model: Movie, + url: 'http://localhost:3000/movies', + parse(response) { + console.log(response); + return response; + } }); export default MovieList; From 519608414ef671834e0d9cec9216b7f47023127a Mon Sep 17 00:00:00 2001 From: murog Date: Mon, 18 Dec 2017 11:26:32 -0800 Subject: [PATCH 05/33] created template for movies, intialized movie list and movie views with template --- dist/index.html | 12 ++++++++++-- src/app.js | 13 ++++++++++++- src/views/movie_list_view.js | 3 ++- 3 files changed, 24 insertions(+), 4 deletions(-) diff --git a/dist/index.html b/dist/index.html index f6382ef0b..ad0afbd0b 100644 --- a/dist/index.html +++ b/dist/index.html @@ -12,7 +12,7 @@

Moviez

    - +
@@ -20,7 +20,15 @@

Moviez

- + diff --git a/src/app.js b/src/app.js index 67d1f791a..d723b155a 100644 --- a/src/app.js +++ b/src/app.js @@ -15,9 +15,20 @@ import MovieListView from 'views/movie_list_view'; // ready to go $(document).ready(function() { + let bus = {}; + bus = _.extend(bus, Backbone.Events); + const movieList = new MovieList; + // tripList.on('update', render, tripList); movieList.fetch(); + const movieListView = new MovieListView({ + model: movieList, + template: _.template($('#movie-template').html()), + el: 'movies-container', + bus: bus, + }) + + movieListView.render(); - $('#main-content').append('

Hello World!

'); }); diff --git a/src/views/movie_list_view.js b/src/views/movie_list_view.js index 4e6a4bb31..bfc192338 100644 --- a/src/views/movie_list_view.js +++ b/src/views/movie_list_view.js @@ -10,6 +10,7 @@ const MovieListView = Backbone.View.extend({ initialize(params) { this.bus = params.bus; this.template = params.template; + this.listenTo(this.model, 'update', this.render); }, render() { this.$('#movies').empty(); @@ -24,7 +25,7 @@ const MovieListView = Backbone.View.extend({ this.$('#movies').append(movieView.render().$el); }); }, - + }); export default MovieListView; From 513b2eaf6af742b104272e82d7d0415e0d2d3c8f Mon Sep 17 00:00:00 2001 From: murog Date: Mon, 18 Dec 2017 11:35:09 -0800 Subject: [PATCH 06/33] movie views render, fixed typo to include id --- dist/index.html | 1 + src/app.js | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/dist/index.html b/dist/index.html index ad0afbd0b..5f9db7313 100644 --- a/dist/index.html +++ b/dist/index.html @@ -27,6 +27,7 @@

<%- title %>

<%- overview %>

+ diff --git a/src/app.js b/src/app.js index d723b155a..f3a50708e 100644 --- a/src/app.js +++ b/src/app.js @@ -24,7 +24,7 @@ $(document).ready(function() { const movieListView = new MovieListView({ model: movieList, template: _.template($('#movie-template').html()), - el: 'movies-container', + el: '#movies-container', bus: bus, }) From 652522cbac3f53b404f4fbb3ecc06a002f04c371 Mon Sep 17 00:00:00 2001 From: murog Date: Mon, 18 Dec 2017 13:02:36 -0800 Subject: [PATCH 07/33] added form to index for finding movie --- dist/index.html | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/dist/index.html b/dist/index.html index 5f9db7313..5c7f7e0b3 100644 --- a/dist/index.html +++ b/dist/index.html @@ -7,7 +7,18 @@
-
+
+
+

Find Movie

+
+ + + + +
+
+
+

Moviez

@@ -17,11 +28,11 @@

Moviez

-
+
+ From 1aa1030dc0ecb17b7e765eff7fca98806849b6eb Mon Sep 17 00:00:00 2001 From: murog Date: Mon, 18 Dec 2017 14:34:09 -0800 Subject: [PATCH 10/33] imported and initialized form view --- src/app.js | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/app.js b/src/app.js index f3a50708e..b5a53d7a5 100644 --- a/src/app.js +++ b/src/app.js @@ -11,7 +11,7 @@ import MovieList from 'collections/movie_list'; // import views import MovieListView from 'views/movie_list_view'; - +import FormView from 'views/form_view'; // ready to go $(document).ready(function() { @@ -20,15 +20,23 @@ $(document).ready(function() { const movieList = new MovieList; // tripList.on('update', render, tripList); - movieList.fetch(); + // movieList.fetch(); const movieListView = new MovieListView({ model: movieList, template: _.template($('#movie-template').html()), + detailsTemplate: _.template($('#movie-details-template').html()), el: '#movies-container', bus: bus, }) - movieListView.render(); + const formView = new FormView({ + model: movieList, + el: '.movie-workspace', + bus: bus + + }) + + // movieListView.render(); }); From fb17faa2340993f11893fc1423a17b3ac38df0b2 Mon Sep 17 00:00:00 2001 From: murog Date: Mon, 18 Dec 2017 14:36:12 -0800 Subject: [PATCH 11/33] added default inventory of 0 and attribute of uppercase title for ease of searching collection regardless of case, added movie details template and rendering of movie details (currently not working) --- src/models/movie.js | 7 +++++++ src/views/movie_list_view.js | 2 ++ src/views/movie_view.js | 20 +++++++++++++++++++- 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/src/models/movie.js b/src/models/movie.js index 2e3c413ca..b8507fabf 100644 --- a/src/models/movie.js +++ b/src/models/movie.js @@ -1,6 +1,13 @@ import Backbone from 'backbone'; const Movie = Backbone.Model.extend({ + defaults: { + inventory: 0, + }, + initialize(params) { + this.title = params.title; + this.attributes.upperCaseTitle = this.title.toUpperCase(); + } }); diff --git a/src/views/movie_list_view.js b/src/views/movie_list_view.js index bfc192338..2f3ebfe5e 100644 --- a/src/views/movie_list_view.js +++ b/src/views/movie_list_view.js @@ -10,6 +10,7 @@ const MovieListView = Backbone.View.extend({ initialize(params) { this.bus = params.bus; this.template = params.template; + this.detailsTemplate = params.detailsTemplate; this.listenTo(this.model, 'update', this.render); }, render() { @@ -18,6 +19,7 @@ const MovieListView = Backbone.View.extend({ const movieView = new MovieView({ model: movie, template: this.template, + detailsTemplate: this.detailsTemplate, bus: this.bus, tagname: 'li', className: 'movie', diff --git a/src/views/movie_view.js b/src/views/movie_view.js index 379eb1a5b..00e3f8802 100644 --- a/src/views/movie_view.js +++ b/src/views/movie_view.js @@ -4,7 +4,9 @@ import Movie from '../models/movie'; const MovieView = Backbone.View.extend({ initialize(params) { this.template = params.template; + this.detailsTemplate = params.detailsTemplate; this.bus = params.bus; + this.listenTo(this.bus, `displayMyDetails${this.model.get('cid')}`, this.renderMovieDetails); }, render() { const compiledTemplate = this.template(this.model.attributes); @@ -12,8 +14,24 @@ const MovieView = Backbone.View.extend({ return this; }, events: { - + 'click this' : 'renderDetails', + }, + renderDetails: function(e) { + // debugger; + console.log('im trying to render a detail'); + e.preventDefault(); + this.renderMovieDetails(this.model); }, + renderMovieDetails: function(movie) { + // debugger; + console.log(movie); + this.$('#movie-details').empty(); + const compiledTemplate = this.detailsTemplate(this.model.attributes); + this.$el.html(compiledTemplate); + this.$('#movie-details').append(this.$el); + } + + }); export default MovieView; From f6f0c3b5f53d502714d0062e4511e1c228048fef Mon Sep 17 00:00:00 2001 From: IsabelDePapel Date: Tue, 19 Dec 2017 10:32:04 -0800 Subject: [PATCH 12/33] fix movie view event so details only show for the specific movie being found --- src/models/movie.js | 2 +- src/views/form_view.js | 3 ++- src/views/movie_view.js | 6 ++++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/models/movie.js b/src/models/movie.js index b8507fabf..6c525e502 100644 --- a/src/models/movie.js +++ b/src/models/movie.js @@ -7,7 +7,7 @@ const Movie = Backbone.Model.extend({ initialize(params) { this.title = params.title; this.attributes.upperCaseTitle = this.title.toUpperCase(); - } + }, }); diff --git a/src/views/form_view.js b/src/views/form_view.js index 4880682af..fedc23560 100644 --- a/src/views/form_view.js +++ b/src/views/form_view.js @@ -39,7 +39,8 @@ const FormView = Backbone.View.extend({ } // debugger; if (result ) { - this.bus.trigger(`displayMyDetails${result.get('cid')}`, result); + console.log(`displayMyDetails${result.get('id')}`); + this.bus.trigger(`displayMyDetails${result.get('id')}`, result); } else { result = searchTMDB(title); diff --git a/src/views/movie_view.js b/src/views/movie_view.js index 00e3f8802..048f87e3b 100644 --- a/src/views/movie_view.js +++ b/src/views/movie_view.js @@ -6,7 +6,8 @@ const MovieView = Backbone.View.extend({ this.template = params.template; this.detailsTemplate = params.detailsTemplate; this.bus = params.bus; - this.listenTo(this.bus, `displayMyDetails${this.model.get('cid')}`, this.renderMovieDetails); + // this.listenTo(this.bus, `displayMyDetails${this.model.get('cid')}`, this.renderMovieDetails); + this.listenTo(this.bus, `displayMyDetails${this.model.get('id')}`, this.renderMovieDetails); }, render() { const compiledTemplate = this.template(this.model.attributes); @@ -22,9 +23,10 @@ const MovieView = Backbone.View.extend({ e.preventDefault(); this.renderMovieDetails(this.model); }, - renderMovieDetails: function(movie) { + renderMovieDetails: function(movie, event) { // debugger; console.log(movie); + console.log(this.model.get('cid')); this.$('#movie-details').empty(); const compiledTemplate = this.detailsTemplate(this.model.attributes); this.$el.html(compiledTemplate); From 49fd320515f77aa0b5110b64faa039028180a57d Mon Sep 17 00:00:00 2001 From: IsabelDePapel Date: Tue, 19 Dec 2017 10:52:14 -0800 Subject: [PATCH 13/33] changes movie list display to fetch on init and then toggle view on click show all movies avail : --- dist/index.html | 2 +- src/app.js | 4 ++-- src/views/form_view.js | 13 +++++++------ 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/dist/index.html b/dist/index.html index 5adedf3ff..c146c4923 100644 --- a/dist/index.html +++ b/dist/index.html @@ -31,7 +31,7 @@

Some Specific Moviez

-
+