aboutsummaryrefslogtreecommitdiffstats
path: root/docs/content/cookbook/buzz.ngdoc
diff options
context:
space:
mode:
Diffstat (limited to 'docs/content/cookbook/buzz.ngdoc')
-rw-r--r--docs/content/cookbook/buzz.ngdoc63
1 files changed, 63 insertions, 0 deletions
diff --git a/docs/content/cookbook/buzz.ngdoc b/docs/content/cookbook/buzz.ngdoc
new file mode 100644
index 00000000..2e82b2d1
--- /dev/null
+++ b/docs/content/cookbook/buzz.ngdoc
@@ -0,0 +1,63 @@
+@workInProgress
+@ngdoc overview
+@name Cookbook: Resources - Buzz
+@description
+
+External resources are URLs that provide JSON data, which are then rendered with the help of
+templates. angular has a resource factory that can be used to give names to the URLs and then
+attach behavior to them. For example you can use the
+{@link http://code.google.com/apis/buzz/v1/getting_started.html#background-operations| Google Buzz API}
+to retrieve Buzz activity and comments.
+
+<doc:example>
+ <doc:source>
+ <script>
+ BuzzController.$inject = ['$resource'];
+ function BuzzController($resource){
+ this.Activity = $resource(
+ 'https://www.googleapis.com/buzz/v1/activities/:userId/:visibility/:activityId/:comments',
+ {alt:'json', callback:'JSON_CALLBACK'},
+ { get: {method:'JSON', params:{visibility:'@self'}},
+ replies: {method:'JSON', params:{visibility:'@self', comments:'@comments'}}
+ });
+ }
+ BuzzController.prototype = {
+ fetch: function(){
+ this.activities = this.Activity.get({userId:this.userId});
+ },
+ expandReplies: function(activity) {
+ activity.replies =
+ this.Activity.replies({userId:this.userId, activityId:activity.id});
+ }
+ };
+ </script>
+ <div ng:controller="BuzzController">
+ <input name="userId" value="googlebuzz"/>
+ <button ng:click="fetch()">fetch</button>
+ <hr/>
+ <div class="buzz" ng:repeat="item in activities.data.items">
+ <h1 style="font-size: 15px;">
+ <img src="{{item.actor.thumbnailUrl}}" style="max-height:30px;max-width:30px;"/>
+ <a href="{{item.actor.profileUrl}}">{{item.actor.name}}</a>
+ <a href="" ng:click="expandReplies(item)" style="float: right;">
+ Expand replies: {{item.links.replies[0].count}}
+ </a>
+ </h1>
+ {{item.object.content | html}}
+ <div class="reply" ng:repeat="reply in item.replies.data.items" style="margin-left: 20px;">
+ <img src="{{reply.actor.thumbnailUrl}}" style="max-height:30px;max-width:30px;"/>
+ <a href="{{reply.actor.profileUrl}}">{{reply.actor.name}}</a>:
+ {{reply.content | html}}
+ </div>
+ </div>
+ </div>
+ </doc:source>
+ <doc:scenario>
+ it('fetch buzz and expand', function(){
+ element(':button:contains(fetch)').click();
+ expect(repeater('div.buzz').count()).toBeGreaterThan(0);
+ element('.buzz a:contains(Expand replies):first').click();
+ expect(repeater('div.reply').count()).toBeGreaterThan(0);
+ });
+ </doc:scenario>
+</doc:example>