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 From 2df072e3f89e8998b06b5a9e5ffb10fa32155136 Mon Sep 17 00:00:00 2001 From: Adam Abrons Date: Tue, 16 Mar 2010 14:38:56 -0700 Subject: twitter using resources --- example/tweeter/tweeter_addressbook.html | 2 +- example/tweeter/tweeterclient.js | 34 +++++++++++++++----------------- 2 files changed, 17 insertions(+), 19 deletions(-) (limited to 'example/tweeter') diff --git a/example/tweeter/tweeter_addressbook.html b/example/tweeter/tweeter_addressbook.html index 64a3f95e..92121d5f 100644 --- a/example/tweeter/tweeter_addressbook.html +++ b/example/tweeter/tweeter_addressbook.html @@ -5,7 +5,7 @@ - + diff --git a/example/tweeter/tweeterclient.js b/example/tweeter/tweeterclient.js index 8c68fac0..612f9dee 100644 --- a/example/tweeter/tweeterclient.js +++ b/example/tweeter/tweeterclient.js @@ -1,28 +1,26 @@ function noop(){} $(document).ready(function(){ + function xhr(method, url, data, callback){ + jQuery.getJSON(url, function(){ + callback.apply(this, arguments); + scope.updateView(); + }) + } + + var resourceFactory = new ResourceFactory({method: xhr}); + + var Tweeter = resourceFactory.route("http://twitter.com/statuses/:service:username.json", {}, { + home: {method:'GET', params: {service:'home_timeline'}, isArray:true }, + user: {method:'GET', params: {service:'user_timeline/'}, isArray:true } + }); + + var scope = window.scope = angular.compile(document, { location:angular.startUrlWatcher() }); - scope.getJSON = function(url, callback) { - var list = []; - var self = this; - self.set('status', 'fetching'); - $.getJSON(url, function(response, code){ - _(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"); + return username ? Tweeter.user({username: username}) : Tweeter.home(); } scope.set('fetchTweets', fetchTweets); -- cgit v1.2.3 From c9aba8b442adce496f0600c88764f7ffcc166879 Mon Sep 17 00:00:00 2001 From: Adam Abrons Date: Tue, 16 Mar 2010 14:48:11 -0700 Subject: make xhr just a method --- 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 612f9dee..d6fdd084 100644 --- a/example/tweeter/tweeterclient.js +++ b/example/tweeter/tweeterclient.js @@ -7,7 +7,7 @@ $(document).ready(function(){ }) } - var resourceFactory = new ResourceFactory({method: xhr}); + var resourceFactory = new ResourceFactory(xhr); var Tweeter = resourceFactory.route("http://twitter.com/statuses/:service:username.json", {}, { home: {method:'GET', params: {service:'home_timeline'}, isArray:true }, -- cgit v1.2.3 From 1b976dc27d022c681d764d51a70a1af6a7e35dd6 Mon Sep 17 00:00:00 2001 From: Misko Hevery Date: Tue, 23 Mar 2010 15:16:44 -0700 Subject: tweeter demo script --- example/tweeter/tweeter_addressbook.html | 12 +++++------ example/tweeter/tweeter_demo.html | 34 ++++++++++++++++++++++++++++++++ example/tweeter/tweeterclient.js | 10 +++++----- 3 files changed, 45 insertions(+), 11 deletions(-) create mode 100644 example/tweeter/tweeter_demo.html (limited to 'example/tweeter') diff --git a/example/tweeter/tweeter_addressbook.html b/example/tweeter/tweeter_addressbook.html index 92121d5f..a2c0f52d 100644 --- a/example/tweeter/tweeter_addressbook.html +++ b/example/tweeter/tweeter_addressbook.html @@ -4,7 +4,7 @@ - + @@ -15,7 +15,7 @@

@@ -62,8 +62,8 @@ tweets={{tweets}} ]
Loading...
    -
  • [ {{user.nickname || user.name || user.screen_name }} diff --git a/example/tweeter/tweeter_demo.html b/example/tweeter/tweeter_demo.html new file mode 100644 index 00000000..e3c4f739 --- /dev/null +++ b/example/tweeter/tweeter_demo.html @@ -0,0 +1,34 @@ + + + + + + + + + + + + (TODO: I should fetch current tweets) +
    +

    Tweets: {{$anchor.user}}

    + [ Filter: (TODO: this should act as search box) + | << All + ] +
    Loading...
    + +
    +
    tweets=(TODO: display me!!!)
    + + diff --git a/example/tweeter/tweeterclient.js b/example/tweeter/tweeterclient.js index d6fdd084..84fc5ef7 100644 --- a/example/tweeter/tweeterclient.js +++ b/example/tweeter/tweeterclient.js @@ -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 http://www.getangular.com.', + {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.', + {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.init(); -- cgit v1.2.3 From deb86fe357a901889bc4289087f0b9e69cb8a302 Mon Sep 17 00:00:00 2001 From: Misko Hevery Date: Fri, 16 Apr 2010 14:01:29 -0700 Subject: lots of small fixes --- example/tweeter/tweeter_addressbook.html | 16 ++++++++-------- example/tweeter/tweeter_demo.html | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) (limited to 'example/tweeter') diff --git a/example/tweeter/tweeter_addressbook.html b/example/tweeter/tweeter_addressbook.html index a2c0f52d..4844c035 100644 --- a/example/tweeter/tweeter_addressbook.html +++ b/example/tweeter/tweeter_addressbook.html @@ -14,12 +14,12 @@ [ Filter: ]

@@ -66,8 +66,8 @@ tweets={{tweets}} ng-class-even="'even'" ng-class-odd="'odd'" ng-eval="user = users.$find({: $.screen_name == tweet.user.screen_name}) || tweet.user"> - [ {{user.nickname || user.name || user.screen_name }} - | + + [ {{user.nickname || user.name || user.screen_name }} + | + ]: {{tweet.text | linky}} {{tweet.created_at}} diff --git a/example/tweeter/tweeter_demo.html b/example/tweeter/tweeter_demo.html index e3c4f739..138d4e2b 100644 --- a/example/tweeter/tweeter_demo.html +++ b/example/tweeter/tweeter_demo.html @@ -20,7 +20,7 @@
  • - [ {{tweet.user.nickname || tweet.user.name || tweet.user.screen_name }} + [ {{tweet.user.nickname || tweet.user.name || tweet.user.screen_name }} ]: {{tweet.text}} (TODO: I want urls as links) {{tweet.created_at}} -- cgit v1.2.3