aboutsummaryrefslogtreecommitdiffstats
path: root/example/buzz/buzz.js
diff options
context:
space:
mode:
Diffstat (limited to 'example/buzz/buzz.js')
-rw-r--r--example/buzz/buzz.js46
1 files changed, 46 insertions, 0 deletions
diff --git a/example/buzz/buzz.js b/example/buzz/buzz.js
new file mode 100644
index 00000000..40813d16
--- /dev/null
+++ b/example/buzz/buzz.js
@@ -0,0 +1,46 @@
+angular.service('myApplication', function($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'}}
+ });
+}, {inject:['$resource']});
+
+function BuzzController(){
+ this.$watch('$location.hashPath', this.userChange);
+}
+BuzzController.prototype = {
+ userChange: function(){
+ this.userId = this.$location.hashPath;
+ this.activities = this.Activity.get({userId:this.userId});
+ },
+
+ expandReplies: function(activity) {
+ var self = this;
+ if (activity.replies) {
+ activity.replies.show = !activity.replies.show;
+ } else {
+ activity.replies = this.Activity.replies({userId:this.userId, activityId:activity.id}, function(){
+ activity.replies.show = true;
+ });
+ }
+ }
+};
+
+angular.widget('my:expand', function(element){
+ element.css('display', 'block');
+ this.descend(true);
+ return function(element) {
+ element.hide();
+ var watch = element.attr('expand');
+ this.$watch(watch, function(value){
+ if (value) {
+ element.delay(0).slideDown('slow');
+ } else {
+ element.slideUp('slow');
+ }
+ });
+ };
+});