From 0e566fe6cb41de388df6793b350fb81aaa4a8476 Mon Sep 17 00:00:00 2001 From: Misko Hevery Date: Mon, 18 Jan 2010 17:56:08 -0800 Subject: tweeter demo client --- example/tweeter/style.css | 87 ++++++++++++++++++++++++++++++++ example/tweeter/tweeter_addressbook.html | 64 +++++++++++++++++++++++ example/tweeter/tweeterclient.js | 35 +++++++++++++ 3 files changed, 186 insertions(+) create mode 100644 example/tweeter/style.css create mode 100644 example/tweeter/tweeter_addressbook.html create mode 100644 example/tweeter/tweeterclient.js (limited to 'example/tweeter') diff --git a/example/tweeter/style.css b/example/tweeter/style.css new file mode 100644 index 00000000..769a6f45 --- /dev/null +++ b/example/tweeter/style.css @@ -0,0 +1,87 @@ +.loading {display: none;} +.fetching .loading {display: block;} + +a { + color: blue; +} + +h1 { + background-color: black; + margin: 0; + padding: .25em; + color: white; + border-bottom: 5px solid gray; +} + +.box { + border: 2px solid gray; +} + +.tweeter { + margin-right: 360px; +} + +ul { + list-style: none; + margin: 0; + padding: 0; +} + +li { + margin: .25em; + padding: 2px; +} + +li img { + float: left; + margin: 2px; + margin-right: .5em; + max-height: 48px; + min-height: 48px; +} + +li.even { + background-color: lightgray; +} + + +.addressbook { + float: right; + width: 350px; +} + +.clrleft { + clear: left; +} + +.notes { + font-size: .8em; + color: gray; +} + +.username, .nickname { + font-weight: bold; +} + +.editor { + padding: 4px; +} + +label { + color: gray; + display: inline-block; + width: 75px; + text-align: right; + padding: 2px; + margin-top: 10px; +} + +.editor input[type=text], +.editor textarea { + width: 230px; + vertical-align: text-top; +} + +.editor TEXTAREA { + height: 50px; +} \ No newline at end of file diff --git a/example/tweeter/tweeter_addressbook.html b/example/tweeter/tweeter_addressbook.html new file mode 100644 index 00000000..d8b8b893 --- /dev/null +++ b/example/tweeter/tweeter_addressbook.html @@ -0,0 +1,64 @@ + + + + + + + + + + + +
+

Address Book

+ [ Filter: ] + +
+
+
+ + + + + + + + + + +
+
+
+
+

Tweets: {{$anchor.user}}

+ [ Filter: + | << All + ] +
Loading...
+ +
+ + diff --git a/example/tweeter/tweeterclient.js b/example/tweeter/tweeterclient.js new file mode 100644 index 00000000..27ec3348 --- /dev/null +++ b/example/tweeter/tweeterclient.js @@ -0,0 +1,35 @@ +function noop(){} +$(document).ready(function(){ + var scope = window.scope = angular.compile(document); + scope.getJSON = function(url, callback) { + var list = []; + var self = this; + self.set('status', 'fetching'); + $.getJSON(url, function(response){ + _(response).forEach(function(v,k){ + list[k] = v; + }); + (callback||noop)(response); + self.set('status', ''); + self.updateView(); + }); + return list; + }; + + function fetchTweets(username){ + return scope.getJSON( + username ? + "http://twitter.com/statuses/user_timeline/"+username+".json" : + "http://twitter.com/statuses/home_timeline.json"); + } + + scope.set('fetchTweets', fetchTweets); + scope.set('users', [ + {screen_name:'mhevery', name:'Mi\u0161ko Hevery', notes:'Author of .', + profile_image_url:'http://a3.twimg.com/profile_images/54360179/Me_-_Small_Banner_normal.jpg'}, + {screen_name:'abrons', name:'Adam Abrons', notes:'Author of & Ruby guru.', + profile_image_url:'http://a1.twimg.com/profile_images/533646480/PIC00024_normal.jpg'} + ]); + scope.watchUrl(); + scope.init(); +}); -- cgit v1.2.3 From 910ddbe34eb6268e9049ca91211d43663d629879 Mon Sep 17 00:00:00 2001 From: Misko Hevery Date: Mon, 18 Jan 2010 17:58:43 -0800 Subject: update image for adam --- example/tweeter/tweeterclient.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'example/tweeter') diff --git a/example/tweeter/tweeterclient.js b/example/tweeter/tweeterclient.js index 27ec3348..f5f2d731 100644 --- a/example/tweeter/tweeterclient.js +++ b/example/tweeter/tweeterclient.js @@ -28,7 +28,7 @@ $(document).ready(function(){ {screen_name:'mhevery', name:'Mi\u0161ko Hevery', notes:'Author of .', profile_image_url:'http://a3.twimg.com/profile_images/54360179/Me_-_Small_Banner_normal.jpg'}, {screen_name:'abrons', name:'Adam Abrons', notes:'Author of & Ruby guru.', - profile_image_url:'http://a1.twimg.com/profile_images/533646480/PIC00024_normal.jpg'} + profile_image_url:'http://media.linkedin.com/mpr/mpr/shrink_80_80/p/2/000/005/0a8/044278d.jpg'} ]); scope.watchUrl(); scope.init(); -- cgit v1.2.3 From db2031c5a1df205e6db40ca6aba80930375069c0 Mon Sep 17 00:00:00 2001 From: Misko Hevery Date: Tue, 19 Jan 2010 17:53:20 -0800 Subject: added debug info; fix parser bug with double negation --- example/tweeter/style.css | 7 +++++++ example/tweeter/tweeter_addressbook.html | 12 ++++++++++++ 2 files changed, 19 insertions(+) (limited to 'example/tweeter') diff --git a/example/tweeter/style.css b/example/tweeter/style.css index 769a6f45..0f2aaecd 100644 --- a/example/tweeter/style.css +++ b/example/tweeter/style.css @@ -84,4 +84,11 @@ label { .editor TEXTAREA { height: 50px; +} + +.debug{ + font-size: .7em; + white-space: pre; + padding: 0; + margin: 0; } \ No newline at end of file diff --git a/example/tweeter/tweeter_addressbook.html b/example/tweeter/tweeter_addressbook.html index d8b8b893..70068b0a 100644 --- a/example/tweeter/tweeter_addressbook.html +++ b/example/tweeter/tweeter_addressbook.html @@ -39,6 +39,18 @@ +
+
+userFilter={{userFilter|json}} + +tweetFilter={{tweetFilter|json}} + +$anchor={{$anchor}} + +users={{users}} + +tweets={{tweets}} +

Tweets: {{$anchor.user}}

-- cgit v1.2.3 From dc0db57b36bb6cd47dfea835a315f61b34ed8e1b Mon Sep 17 00:00:00 2001 From: Misko Hevery Date: Wed, 20 Jan 2010 06:52:50 -0800 Subject: tweek tweeter --- example/tweeter/tweeter_addressbook.html | 4 ++-- example/tweeter/tweeterclient.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'example/tweeter') diff --git a/example/tweeter/tweeter_addressbook.html b/example/tweeter/tweeter_addressbook.html index 70068b0a..21296925 100644 --- a/example/tweeter/tweeter_addressbook.html +++ b/example/tweeter/tweeter_addressbook.html @@ -20,7 +20,7 @@ [ edit | X ] -
{{user.notes}}
+
{{user.notes|linky}}
@@ -67,7 +67,7 @@ tweets={{tweets}} ]: {{tweet.text | linky}} {{tweet.created_at}} - {{user.notes}} + {{user.notes|linky}}
diff --git a/example/tweeter/tweeterclient.js b/example/tweeter/tweeterclient.js index f5f2d731..6b8427a7 100644 --- a/example/tweeter/tweeterclient.js +++ b/example/tweeter/tweeterclient.js @@ -25,9 +25,9 @@ $(document).ready(function(){ scope.set('fetchTweets', fetchTweets); scope.set('users', [ - {screen_name:'mhevery', name:'Mi\u0161ko Hevery', notes:'Author of .', + {screen_name:'mhevery', name:'Mi\u0161ko Hevery', notes:'Author of 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 & Ruby guru.', + {screen_name:'abrons', name:'Adam Abrons', notes:'Author of & Ruby guru see: http://www.getangular.com.', profile_image_url:'http://media.linkedin.com/mpr/mpr/shrink_80_80/p/2/000/005/0a8/044278d.jpg'} ]); scope.watchUrl(); -- cgit v1.2.3 From 4950b86da536ba19890726ae518193b149e63417 Mon Sep 17 00:00:00 2001 From: Misko Hevery Date: Wed, 20 Jan 2010 07:08:57 -0800 Subject: added mute button --- example/tweeter/style.css | 4 ++++ example/tweeter/tweeter_addressbook.html | 8 ++++++-- example/tweeter/tweeterclient.js | 10 ++++++---- 3 files changed, 16 insertions(+), 6 deletions(-) (limited to 'example/tweeter') diff --git a/example/tweeter/style.css b/example/tweeter/style.css index 0f2aaecd..e8468b6b 100644 --- a/example/tweeter/style.css +++ b/example/tweeter/style.css @@ -50,6 +50,10 @@ li.even { width: 350px; } +.addressbook li { + font-size: .9em; +} + .clrleft { clear: left; } diff --git a/example/tweeter/tweeter_addressbook.html b/example/tweeter/tweeter_addressbook.html index 21296925..15414410 100644 --- a/example/tweeter/tweeter_addressbook.html +++ b/example/tweeter/tweeter_addressbook.html @@ -8,7 +8,7 @@ - +

Address Book

[ Filter: ] @@ -19,6 +19,7 @@ as {{user.name}} [ edit | X + | unmute ]
{{user.notes|linky}}
@@ -41,6 +42,8 @@

+muted={{muted}} + userFilter={{userFilter|json}} tweetFilter={{tweetFilter|json}} @@ -59,7 +62,8 @@ tweets={{tweets}} ]
Loading...
    -
  • [ {{user.nickname || user.name || user.screen_name }} diff --git a/example/tweeter/tweeterclient.js b/example/tweeter/tweeterclient.js index 6b8427a7..9eac114a 100644 --- a/example/tweeter/tweeterclient.js +++ b/example/tweeter/tweeterclient.js @@ -25,10 +25,12 @@ $(document).ready(function(){ scope.set('fetchTweets', fetchTweets); scope.set('users', [ - {screen_name:'mhevery', name:'Mi\u0161ko Hevery', notes:'Author of 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 & Ruby guru see: http://www.getangular.com.', - profile_image_url:'http://media.linkedin.com/mpr/mpr/shrink_80_80/p/2/000/005/0a8/044278d.jpg'} + {screen_name:'mhevery', name:'Mi\u0161ko Hevery', + notes:'Author of 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 & 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.watchUrl(); scope.init(); -- cgit v1.2.3 From a12b81773fd7ec2ca5c6453a1a7957c18c3c4671 Mon Sep 17 00:00:00 2001 From: Misko Hevery Date: Wed, 20 Jan 2010 07:24:30 -0800 Subject: added jquery 1.4 and mute to twitter client --- example/tweeter/tweeter_addressbook.html | 2 +- example/tweeter/tweeterclient.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'example/tweeter') diff --git a/example/tweeter/tweeter_addressbook.html b/example/tweeter/tweeter_addressbook.html index 15414410..91394552 100644 --- a/example/tweeter/tweeter_addressbook.html +++ b/example/tweeter/tweeter_addressbook.html @@ -4,7 +4,7 @@ - + diff --git a/example/tweeter/tweeterclient.js b/example/tweeter/tweeterclient.js index 9eac114a..2fb60b0a 100644 --- a/example/tweeter/tweeterclient.js +++ b/example/tweeter/tweeterclient.js @@ -5,7 +5,7 @@ $(document).ready(function(){ var list = []; var self = this; self.set('status', 'fetching'); - $.getJSON(url, function(response){ + $.getJSON(url, function(response, code){ _(response).forEach(function(v,k){ list[k] = v; }); -- cgit v1.2.3 From e41ee88ef85986dcd0fea23fefcc57d89cee5c0b Mon Sep 17 00:00:00 2001 From: Misko Hevery Date: Fri, 22 Jan 2010 11:21:22 -0800 Subject: fix bug when multiple binders on same page --- example/tweeter/tweeter_addressbook.html | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'example/tweeter') diff --git a/example/tweeter/tweeter_addressbook.html b/example/tweeter/tweeter_addressbook.html index 91394552..64a3f95e 100644 --- a/example/tweeter/tweeter_addressbook.html +++ b/example/tweeter/tweeter_addressbook.html @@ -8,7 +8,7 @@ - +

    Address Book

    [ Filter: ] @@ -19,7 +19,7 @@ as {{user.name}} [ edit | X - | unmute + | mute ]
    {{user.notes|linky}}
    @@ -42,7 +42,7 @@

    -muted={{muted}} +mute={{mute|json}} userFilter={{userFilter|json}} @@ -62,7 +62,7 @@ tweets={{tweets}} ]
    Loading...
      -
    • @@ -71,7 +71,7 @@ tweets={{tweets}} ]: {{tweet.text | linky}} {{tweet.created_at}} - {{user.notes|linky}} + {{user.notes}}
    -- cgit v1.2.3 From 4460328bc1173f5d97fb4ff54edc041968486fce Mon Sep 17 00:00:00 2001 From: Misko Hevery Date: Sat, 23 Jan 2010 15:54:58 -0800 Subject: lots of cleanup to get it ready for OS --- example/tweeter/tweeterclient.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'example/tweeter') diff --git a/example/tweeter/tweeterclient.js b/example/tweeter/tweeterclient.js index 2fb60b0a..8c68fac0 100644 --- a/example/tweeter/tweeterclient.js +++ b/example/tweeter/tweeterclient.js @@ -1,6 +1,8 @@ function noop(){} $(document).ready(function(){ - var scope = window.scope = angular.compile(document); + var scope = window.scope = angular.compile(document, { + location:angular.startUrlWatcher() + }); scope.getJSON = function(url, callback) { var list = []; var self = this; @@ -32,6 +34,5 @@ $(document).ready(function(){ notes:'Author of & 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.watchUrl(); scope.init(); }); -- cgit v1.2.3