aboutsummaryrefslogtreecommitdiff
path: root/node_modules/montage/ui/feed-reader/feed-reader.reel
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/montage/ui/feed-reader/feed-reader.reel')
-rw-r--r--node_modules/montage/ui/feed-reader/feed-reader.reel/feed-reader.html83
-rw-r--r--node_modules/montage/ui/feed-reader/feed-reader.reel/feed-reader.js82
2 files changed, 165 insertions, 0 deletions
diff --git a/node_modules/montage/ui/feed-reader/feed-reader.reel/feed-reader.html b/node_modules/montage/ui/feed-reader/feed-reader.reel/feed-reader.html
new file mode 100644
index 00000000..a3523001
--- /dev/null
+++ b/node_modules/montage/ui/feed-reader/feed-reader.reel/feed-reader.html
@@ -0,0 +1,83 @@
1<!DOCTYPE html>
2<html>
3<head>
4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5 <title>Feed Reader</title>
6
7 <script type="text/javascript" src="https://www.google.com/jsapi?callback=initGoogleAPI"></script>
8
9 <script type="text/montage-serialization">
10{
11 "entriesController": {
12 "name": "ArrayController",
13 "module": "montage/ui/controller/array-controller",
14 "properties": {
15 "selectObjectsOnAddition": true,
16 "automaticallyOrganizeObjects": true
17 },
18 "bindings": {
19 "content": {
20 "boundObject": {"@": "owner"},
21 "boundObjectPropertyPath": "entries",
22 "oneway": true
23 }
24 }
25 },
26
27 "repetition": {
28 "module": "montage/ui/repetition.reel",
29 "name": "Repetition",
30 "properties": {
31 "element": {"#": "entries"},
32 "contentController": {"@": "entriesController"},
33 "isSelectionEnabled": true,
34 "orientation": "vertical"
35 }
36 },
37 "feedEntry": {
38 "module": "montage/ui/feed-reader/feed-entry.reel",
39 "name": "FeedEntry",
40 "properties": {
41 "element": {"#": "feed-entry"}
42 },
43 "bindings": {
44 "entry": {
45 "boundObject": {"@": "repetition"},
46 "boundObjectPropertyPath": "objectAtCurrentIteration",
47 "oneway": true
48 }
49 }
50 },
51
52 "owner": {
53 "module": "montage/ui/feed-reader/feed-reader.reel",
54 "name": "FeedReader",
55 "properties": {
56 "element": {"#": "feed-reader"}
57 }
58 }
59
60}
61 </script>
62
63 <style>
64 .feed-reader {
65 padding: 10px;
66 }
67
68 </style>
69
70
71</head>
72<body>
73 <div class="feed-reader" id="feed-reader">
74
75 <div id="entries">
76 <div class="feed-entry" id="feed-entry"></div>
77 </div>
78
79
80 </div>
81
82</body>
83</html>
diff --git a/node_modules/montage/ui/feed-reader/feed-reader.reel/feed-reader.js b/node_modules/montage/ui/feed-reader/feed-reader.reel/feed-reader.js
new file mode 100644
index 00000000..838a957d
--- /dev/null
+++ b/node_modules/montage/ui/feed-reader/feed-reader.reel/feed-reader.js
@@ -0,0 +1,82 @@
1/* <copyright>
2 This file contains proprietary software owned by Motorola Mobility, Inc.<br/>
3 No rights, expressed or implied, whatsoever to this software are provided by Motorola Mobility, Inc. hereunder.<br/>
4 (c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved.
5 </copyright> */
6var Montage = require("montage").Montage,
7 Component = require("ui/component").Component;
8 //Notifier = require("ui/popup/notifier.reel").Notifier;
9
10exports.FeedReader = Montage.create(Component, {
11
12 didCreate: {
13 value: function() {
14 var self = this;
15 var apiInit = function() {
16 console.log('google api initialized');
17
18 google.load("feeds", "1", {
19 callback: function() {
20 console.log('google feeds api loaded');
21 self.needsDraw = true;
22 window.initGoogleAPI = null;
23 }
24 });
25 };
26
27 // set up a global function
28 window.initGoogleAPI = apiInit;
29 }
30 },
31
32 _feedURL: {value: null},
33 feedURL: {
34 get: function() {
35 return this._feedURL;
36 },
37 set: function(value) {
38 this._feedURL = value;
39 // execute the search and get the entries
40 this._fetchFeed();
41 }
42 },
43
44 entries: {value: null},
45
46
47 _startLoading: {
48 value: function() {
49 //Notifier.show('Loading ... please wait', null, {top: this.element.style.top, left: this.element.style.left + 20});
50 }
51 },
52
53 _stopLoading: {
54 value: function() {
55 //Notifier.hide();
56 }
57 },
58
59 _fetchFeed: {
60 value: function() {
61 var url = this.feedURL;
62 var feed = new google.feeds.Feed(url);
63 feed.setNumEntries(10);
64
65 var self = this;
66
67 this._startLoading();
68 self.entries = [];
69
70 feed.load(function(result) {
71 self._stopLoading();
72 if(result.error) {
73 self.entries = [];
74 } else {
75 //console.log('entries: ', result.feed.entries);
76 self.entries = result.feed.entries;
77 }
78 });
79 }
80 }
81
82});