Skip to content

Commit

Permalink
Finishing up sample
Browse files Browse the repository at this point in the history
  • Loading branch information
jcreamer898 committed Mar 20, 2013
1 parent c4d92c1 commit ea0c83e
Show file tree
Hide file tree
Showing 12 changed files with 123 additions and 26 deletions.
5 changes: 4 additions & 1 deletion build.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,10 @@
}
},
"httpPaths": {
"/": "./lib"
"/": "./lib",
"/spec": "./spec",
"/spec/js": "./lib/js",
"/spec/lib": "./lib"
},
"anvil.compass": {
"config_file": "compass.rb"
Expand Down
17 changes: 17 additions & 0 deletions lib/css/styles.css
Original file line number Diff line number Diff line change
Expand Up @@ -69,3 +69,20 @@ a img {
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary {
display: block;
}

@media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/Jonathan\/gitrepos\/Blogs\/NetTuts\/NetTutsKnockout\/\.anvil\/tmp\/sass\/styles\.scss}line{font-family:\000034}}
body {
font-family: verdana;
}

@media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/Jonathan\/gitrepos\/Blogs\/NetTuts\/NetTutsKnockout\/\.anvil\/tmp\/sass\/styles\.scss}line{font-family:\000036}}
#main {
width: 50%;
margin: 0 auto;
font-size: .9em;
}
@media -sass-debug-info{filename{font-family:file\:\/\/C\:\/Users\/Jonathan\/gitrepos\/Blogs\/NetTuts\/NetTutsKnockout\/\.anvil\/tmp\/sass\/styles\.scss}line{font-family:\0000311}}
#main .search, #main .favorites {
width: 50%;
float: left;
}
31 changes: 22 additions & 9 deletions lib/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -8,21 +8,34 @@
<link rel="stylesheet" href="css/styles.css">
</head>
<body>
<input type="text" name="search" placeholder="Search" data-bind="value: search" />
<ul data-bind="foreach: beerListFiltered">
<li data-bind="text: name"></li>
</ul>
<section id="main">
<section id="container">
<form class="search" data-bind="submit: doSearch">
<input type="text" name="search" placeholder="Search" data-bind="value: search, valueUpdate: 'afterkeydown'" />
<ul data-bind="foreach: beerListFiltered">
<li data-bind="text: name, click: $parent.addToFavorites"></li>
</ul>
</form>

<!-- import("templates/list.html") -->
<aside id="favorites">
<h3>Favorites</h3>
<ul data-bind="foreach: favorites">
<li data-bind="text: name, click: $parent.removeFromFavorites"></li>
</ul>
</aside>
</section>
</section>

<script src="js/require-jquery.js"></script>
<script>
require( [ "./js/common" ], function (common) {
<!-- import("templates/list.html") -->

<script src="js/require-jquery.js"></script>
<script>
require( [ "./js/common" ], function (common) {
//js/common sets the baseUrl to be js/ so
//can just ask for 'app/main1' here instead
//of 'js/app/main1'
require( [ "pages/index" ] );
});
</script>
</script>
</body>
</html>
2 changes: 1 addition & 1 deletion lib/js/data/amplifyResources.js

Large diffs are not rendered by default.

17 changes: 16 additions & 1 deletion lib/js/viewModels/indexViewModel.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,12 @@ define( [

var IndexViewModel = function() {
this.beers = [];
this.favorites = [];
this.search = "";

BaseViewModel.apply( this, arguments );

_.bindAll( this, "addToFavorites", "removeFromFavorites" );
};

_.extend(IndexViewModel.prototype, BaseViewModel.prototype, {
Expand Down Expand Up @@ -49,8 +52,20 @@ define( [
var self = this;

bus.data.subscribe( "beers.fetched", function( data ) {
self.parse.call( self, _.sortBy( data.beers, "name" ) );
self.parse.call( self, _.sortBy( data.data, "name" ) );
});
},

addToFavorites: function( beer ) {
this.favorites.push( beer );
},

removeFromFavorites: function( beer ) {
this.favorites.remove( beer );
},

doSearch: function() {
return false;
}
});

Expand Down
1 change: 1 addition & 0 deletions spec/fixtures/beersdb.json

Large diffs are not rendered by default.

5 changes: 2 additions & 3 deletions spec/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,15 @@

<script src="mocha/expect.js"></script>
<script src="mocha/mocha.js"></script>
<script src="/testem.js"></script>
<script src="mocha/sinon-1.5.2.js"></script>


<script src="../lib/js/require-jquery.js"></script>
<script src="js/require-jquery.js"></script>

<script>
mocha.setup( "bdd" );

require( [ "../lib/js/common" ], function() {
require( [ "js/common" ], function() {
require( [
"./tests/baseViewModel.spec.js",
"./tests/resources.spec.js",
Expand Down
11 changes: 11 additions & 0 deletions spec/tests/indexViewModel.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -39,5 +39,16 @@ define( [ "underscore", "viewModels/indexViewModel", "models/beer", "postal" ],

expect( this.viewModel.beers().length ).to.be( 3 );
});

it( "should add new beers to favorites", function() {
expect( this.viewModel.favorites().length ).to.be( 0 );

this.viewModel.addToFavorites( new Beer({
name: "abita amber",
id: 3
}));

expect( this.viewModel.favorites().length ).to.be( 1 );
});
});
});
31 changes: 22 additions & 9 deletions src/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -8,21 +8,34 @@
<link rel="stylesheet" href="css/styles.css">
</head>
<body>
<input type="text" name="search" placeholder="Search" data-bind="value: search" />
<ul data-bind="foreach: beerListFiltered">
<li data-bind="text: name"></li>
</ul>
<section id="main">
<section id="container">
<form class="search" data-bind="submit: doSearch">
<input type="text" name="search" placeholder="Search" data-bind="value: search, valueUpdate: 'afterkeydown'" />
<ul data-bind="foreach: beerListFiltered">
<li data-bind="text: name, click: $parent.addToFavorites"></li>
</ul>
</form>

<!-- import("templates/list.html") -->
<aside id="favorites">
<h3>Favorites</h3>
<ul data-bind="foreach: favorites">
<li data-bind="text: name, click: $parent.removeFromFavorites"></li>
</ul>
</aside>
</section>
</section>

<script src="js/require-jquery.js"></script>
<script>
require( [ "./js/common" ], function (common) {
<!-- import("templates/list.html") -->

<script src="js/require-jquery.js"></script>
<script>
require( [ "./js/common" ], function (common) {
//js/common sets the baseUrl to be js/ so
//can just ask for 'app/main1' here instead
//of 'js/app/main1'
require( [ "pages/index" ] );
});
</script>
</script>
</body>
</html>
2 changes: 1 addition & 1 deletion src/js/data/amplifyResources.js

Large diffs are not rendered by default.

17 changes: 16 additions & 1 deletion src/js/viewModels/indexViewModel.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,12 @@ define( [

var IndexViewModel = function() {
this.beers = [];
this.favorites = [];
this.search = "";

BaseViewModel.apply( this, arguments );

_.bindAll( this, "addToFavorites", "removeFromFavorites" );
};

_.extend(IndexViewModel.prototype, BaseViewModel.prototype, {
Expand Down Expand Up @@ -49,8 +52,20 @@ define( [
var self = this;

bus.data.subscribe( "beers.fetched", function( data ) {
self.parse.call( self, _.sortBy( data.beers, "name" ) );
self.parse.call( self, _.sortBy( data.data, "name" ) );
});
},

addToFavorites: function( beer ) {
this.favorites.push( beer );
},

removeFromFavorites: function( beer ) {
this.favorites.remove( beer );
},

doSearch: function() {
return false;
}
});

Expand Down
10 changes: 10 additions & 0 deletions src/sass/styles.scss
Original file line number Diff line number Diff line change
@@ -1,2 +1,12 @@
@import "print";
@import "screen";

body { font-family: verdana; }

#main {
width: 50%;
margin: 0 auto;
font-size: .9em;

.search, .favorites { width: 50%; float: left; }
}

0 comments on commit ea0c83e

Please sign in to comment.