aboutsummaryrefslogtreecommitdiff
path: root/node_modules/montage/ui/feed-reader
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/montage/ui/feed-reader')
-rw-r--r--node_modules/montage/ui/feed-reader/feed-entry.reel/feed-entry.html7
-rw-r--r--node_modules/montage/ui/feed-reader/feed-entry.reel/feed-entry.js10
-rw-r--r--node_modules/montage/ui/feed-reader/feed-reader.reel/feed-reader.html30
-rw-r--r--node_modules/montage/ui/feed-reader/feed-reader.reel/feed-reader.js116
4 files changed, 132 insertions, 31 deletions
diff --git a/node_modules/montage/ui/feed-reader/feed-entry.reel/feed-entry.html b/node_modules/montage/ui/feed-reader/feed-entry.reel/feed-entry.html
index 213b4602..15dc7eb0 100644
--- a/node_modules/montage/ui/feed-reader/feed-entry.reel/feed-entry.html
+++ b/node_modules/montage/ui/feed-reader/feed-entry.reel/feed-entry.html
@@ -59,17 +59,16 @@
59 59
60 <style> 60 <style>
61 .feed-entry { 61 .feed-entry {
62 padding: 10px; 62 /*padding: 2px;*/
63 margin: 3px 0; 63 /*margin: 3px 0;*/
64 border: 1px solid #aaa;
65 } 64 }
66 .feed-entry h2 { 65 .feed-entry h2 {
66 margin-top: 0px;
67 font-size: 24px; 67 font-size: 24px;
68 line-height: 24px; 68 line-height: 24px;
69 margin-bottom: 12px; 69 margin-bottom: 12px;
70 } 70 }
71 .feed-entry .entry-title { 71 .feed-entry .entry-title {
72 color: #404040;
73 font-weight: bold; 72 font-weight: bold;
74 } 73 }
75 .feed-entry .entry-url { 74 .feed-entry .entry-url {
diff --git a/node_modules/montage/ui/feed-reader/feed-entry.reel/feed-entry.js b/node_modules/montage/ui/feed-reader/feed-entry.reel/feed-entry.js
index 3d97eec7..72c5023e 100644
--- a/node_modules/montage/ui/feed-reader/feed-entry.reel/feed-entry.js
+++ b/node_modules/montage/ui/feed-reader/feed-entry.reel/feed-entry.js
@@ -8,6 +8,14 @@ var Montage = require("montage").Montage,
8 8
9exports.FeedEntry = Montage.create(Component, { 9exports.FeedEntry = Montage.create(Component, {
10 10
11 entry: {value: null} 11 _entry: {value: null},
12 entry: {
13 get: function() {
14 return this._entry;
15 },
16 set: function(value) {
17 this._entry = value;
18 }
19 }
12 20
13}); 21});
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
index a3523001..56523984 100644
--- 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
@@ -23,17 +23,7 @@
23 } 23 }
24 } 24 }
25 }, 25 },
26 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": { 27 "feedEntry": {
38 "module": "montage/ui/feed-reader/feed-entry.reel", 28 "module": "montage/ui/feed-reader/feed-entry.reel",
39 "name": "FeedEntry", 29 "name": "FeedEntry",
@@ -42,11 +32,11 @@
42 }, 32 },
43 "bindings": { 33 "bindings": {
44 "entry": { 34 "entry": {
45 "boundObject": {"@": "repetition"}, 35 "boundObject": {"@": "owner"},
46 "boundObjectPropertyPath": "objectAtCurrentIteration", 36 "boundObjectPropertyPath": "activeFeedEntry",
47 "oneway": true 37 "oneway": true
48 } 38 }
49 } 39 }
50 }, 40 },
51 41
52 "owner": { 42 "owner": {
@@ -54,17 +44,23 @@
54 "name": "FeedReader", 44 "name": "FeedReader",
55 "properties": { 45 "properties": {
56 "element": {"#": "feed-reader"} 46 "element": {"#": "feed-reader"}
57 } 47 }
58 } 48 }
59 49
60} 50}
61 </script> 51 </script>
62 52
63 <style> 53 <style>
64 .feed-reader { 54 div.feed-reader {
65 padding: 10px; 55 /*padding: 2px;*/
56 height: 120px;
57 width: 380px;
66 } 58 }
67 59
60 .feed-entry {
61 }
62
63
68 </style> 64 </style>
69 65
70 66
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
index 838a957d..cc652417 100644
--- 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
@@ -41,42 +41,140 @@ exports.FeedReader = Montage.create(Component, {
41 } 41 }
42 }, 42 },
43 43
44 // time in ms between slides
45 interval: {value: 3, distinct: true},
46
47 maxEntries: {value: 10, distinct: true},
48
44 entries: {value: null}, 49 entries: {value: null},
45 50
51 _feedDisplayMode: {value: null},
52 feedDisplayMode: {
53 get: function() {
54 return this._feedDisplayMode;
55 },
56 set: function(value) {
46 57
47 _startLoading: { 58 this.removeEntryAnimation();
48 value: function() { 59 this._feedDisplayMode = value;
49 //Notifier.show('Loading ... please wait', null, {top: this.element.style.top, left: this.element.style.left + 20}); 60
61 this.addEntryAnimation();
50 } 62 }
51 }, 63 },
52 64
53 _stopLoading: { 65
54 value: function() { 66 feedEntryTimer: {enumerable: false, value: null},
55 //Notifier.hide(); 67
68
69 activeFeedEntry: {value: null},
70 _activeIndex: {value: null},
71 activeIndex: {
72 get: function() {
73 return this._activeIndex || 0;
74 },
75 set: function(index) {
76 if(this.entries) {
77 var max = this.entries.length-1;
78 if(index > max) {
79 index = 0;
80 }
81 if(index < 0) {
82 index = 0;
83 }
84 this._activeIndex = index;
85 this.activeFeedEntry = this.entries[this._activeIndex];
86 } else {
87 this._activeIndex = 0;
88 }
56 } 89 }
57 }, 90 },
58 91
59 _fetchFeed: { 92 _fetchFeed: {
60 value: function() { 93 value: function() {
94
61 var url = this.feedURL; 95 var url = this.feedURL;
62 var feed = new google.feeds.Feed(url); 96 var feed = new google.feeds.Feed(url);
63 feed.setNumEntries(10); 97 feed.setNumEntries(10);
64 98
65 var self = this; 99 var self = this;
66
67 this._startLoading();
68 self.entries = []; 100 self.entries = [];
69 101
70 feed.load(function(result) {