tweeter demo script

This commit is contained in:
Misko Hevery 2010-03-23 15:16:44 -07:00
parent bb98ae14f2
commit 1b976dc27d
4 changed files with 48 additions and 14 deletions

View file

@ -4,7 +4,7 @@
<link rel="stylesheet" type="text/css" href="style.css">
<link rel="stylesheet" type="text/css" href="../../css/angular.css">
<script type="text/javascript" src="../../lib/underscore/underscore.js"></script>
<script type="text/javascript" src="../../lib/jquery/jquery-1.4.js"></script>
<script type="text/javascript" src="../../lib/jquery/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="../../src/angular-bootstrap.js"></script>
<script type="text/javascript" src="tweeterclient.js"></script>
</head>
@ -15,7 +15,7 @@
<ul>
<li ng-repeat="user in users.$filter(userFilter).$orderBy('screen_name')" ng-class-even="'even'" ng-class-odd="'odd'">
<a href="" ng-action="$anchor.user=user.screen_name"><img src="{{user.profile_image_url}}"/></a>
<a href="" ng-action="$anchor.user=user.screen_name">{{user.screen_name}}</a>
<a href="" ng-action="$anchor.user=user.screen_name">{{user.screen_name}}</a>
as <span class="nickname">{{user.name}}</span>
[ <a href="#" ng-action="$anchor.edituser=user.screen_name">edit</a>
| <a href="#" ng-action="users.$remove(user)">X</a>
@ -36,8 +36,8 @@
<input type="text" name="user.profile_image_url"/>
<label>Notes:</label>
<textarea type="text" name="user.notes"></textarea>
<input type="button" ng-action="$anchor.edituser=undefined" value="Close"/>
<input type="button" ng-action="$anchor.edituser=undefined" value="Close"/>
</div>
</div>
<hr/>
@ -62,8 +62,8 @@ tweets={{tweets}}
]
<div class="loading">Loading...</div>
<ul>
<li ng-repeat="tweet in tweets.$filter(tweetFilter).$filter({:!mute[$.user.screen_name]})"
ng-class-even="'even'" ng-class-odd="'odd'"
<li ng-repeat="tweet in tweets.$filter(tweetFilter).$filter({:!mute[$.user.screen_name]})"
ng-class-even="'even'" ng-class-odd="'odd'"
ng-eval="user = users.$find({: $.screen_name == tweet.user.screen_name}) || tweet.user">
<img src="{{user.profile_image_url}}"/>
[ <a href="" ng-action="$anchor.user=user.screen_name">{{user.nickname || user.name || user.screen_name }}</a>

View file

@ -0,0 +1,34 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<link rel="stylesheet" type="text/css" href="style.css">
<link rel="stylesheet" type="text/css" href="../../css/angular.css">
<script type="text/javascript" src="../../lib/underscore/underscore.js"></script>
<script type="text/javascript" src="../../lib/jquery/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="../../src/angular-bootstrap.js"></script>
<script type="text/javascript" src="tweeterclient.js"></script>
</head>
<body ng-class="status" Xng-init="tweets = fetchTweets()">
(TODO: I should fetch current tweets)
<div class="tweeter box">
<h1>Tweets: {{$anchor.user}}</h1>
[ Filter: <input type="text" name="tweetFilter"/> (TODO: this should act as search box)
<span ng-show="$anchor.user">| <a href="#user=">&lt;&lt; All</a></span>
]
<div class="loading">Loading...</div>
<ul>
<li Xng-repeat="tweet in tweets"
ng-class-even="'even'" ng-class-odd="'odd'">
<img src="{{tweet.user.profile_image_url}}"/>
[ <a href="" Xng-action="$anchor.user=tweet.user.screen_name">{{tweet.user.nickname || tweet.user.name || tweet.user.screen_name }}</a>
]:
{{tweet.text}} (TODO: I want urls as links)
<span class="notes">{{tweet.created_at}}</span>
<span class="notes">{{tweet.user.notes}}</span>
<div class="clrleft"></div>
</li>
</ul>
</div>
<pre>tweets=(TODO: display me!!!)</pre>
</body>
</html>

View file

@ -4,7 +4,7 @@ $(document).ready(function(){
jQuery.getJSON(url, function(){
callback.apply(this, arguments);
scope.updateView();
})
});
}
var resourceFactory = new ResourceFactory(xhr);
@ -25,11 +25,11 @@ $(document).ready(function(){
scope.set('fetchTweets', fetchTweets);
scope.set('users', [
{screen_name:'mhevery', name:'Mi\u0161ko Hevery',
notes:'Author of <angular/> http://www.getangular.com.',
{screen_name:'mhevery', name:'Mi\u0161ko Hevery',
notes:'Author of <angular/> http://www.getangular.com.',
profile_image_url:'http://a3.twimg.com/profile_images/54360179/Me_-_Small_Banner_normal.jpg'},
{screen_name:'abrons', name:'Adam Abrons',
notes:'Author of <angular/> & Ruby guru see: http://www.angularjs.org.',
{screen_name:'abrons', name:'Adam Abrons',
notes:'Author of <angular/> & Ruby guru see: http://www.angularjs.org.',
profile_image_url:'http://media.linkedin.com/mpr/mpr/shrink_80_80/p/2/000/005/0a8/044278d.jpg'}
]);
scope.init();

View file

@ -8,7 +8,7 @@
var parts = src.match(filename);
return parts[1];
}
}
}
})();
function addScript(path) {
document.write('<script type="text/javascript" src="' + prefix + path + '"></script>');
@ -17,7 +17,7 @@
document.write('<link rel="stylesheet" type="text/css" href="' + prefix + path + '"/>');
};
window.onload = function(){
if (!_.stepper) {
if (!_.stepper) {
_.stepper = function(collection, iterator, done){
var keys = _.keys(collection);
function next() {
@ -38,7 +38,7 @@
};
addCSS("../../css/angular-scenario.css");
addScript("../../lib/underscore/underscore.js");
addScript("../../lib/jquery/jquery-1.3.2.js");
addScript("../../lib/jquery/jquery-1.4.2.js");
addScript("../angular-bootstrap.js");
addScript("_namespace.js");
addScript("Steps.js");