Reader/Feed.bjs
[web.Reader] / Reader / Feed.js
1 //<script type="text/javascript">
2
3 // Auto generated file - created by app.Builder.js- do not edit directly (at present!)
4
5 Feed = new Roo.XComponent({
6
7  _strings : {
8   '40c829f4b6cdd8753135704af571192f' :"articleURL",
9   '8287b137f969bcae66ca51f7abf14308' :"Show Previously Read ",
10   'd9cd9f7b44e0493c9604e9f8fb7a6c07' :"Mark All Read",
11   'b78a3223503896721cca1303f776159b' :"Title",
12   'b7436cc90ecf26f15baeead978f09040' :"name of feed",
13   '83ca9a18d9507324a9453c92a7420dd2' :"Report Issue",
14   '44749712dbec183e983dcd78a7736c41' :"Date"
15  },
16
17   part     :  ["Reader", "Feed" ],
18   order    : '-Feed',
19   region   : 'center',
20   parent   : false,
21   name     : "unnamed module",
22   disabled : false, 
23   permname : '', 
24   _tree : function()
25   {
26    var _this = this;
27    var MODULE = this;
28    return {
29    xns : Roo.bootstrap,
30    '|xns' : 'Roo.bootstrap',
31    xtype : 'Body',
32    items  : [
33     {
34      html : _this._strings['b7436cc90ecf26f15baeead978f09040'] /* name of feed */,
35      style : 'font-weight: bold;\nfont-size: 22px;\n \nposition: absolute;\nleft: 100px;\ntop: 10px;\nz-Index: 1000;\ncolor: white;',
36      tag : 'div',
37      xns : Roo.bootstrap,
38      '|xns' : 'Roo.bootstrap',
39      xtype : 'Element'
40     },
41     {
42      brand : '<i class=\"fa fa-chevron-left\"></i> Feeds',
43      brand_href : baseURL + '/Feeds',
44      inverse : true,
45      position : 'fixed-top',
46      xns : Roo.bootstrap,
47      '|xns' : 'Roo.bootstrap',
48      xtype : 'NavHeaderbar',
49      items  : [
50       {
51        align : 'right',
52        xns : Roo.bootstrap,
53        '|xns' : 'Roo.bootstrap',
54        xtype : 'NavGroup',
55        items  : [
56         {
57          html : _this._strings['d9cd9f7b44e0493c9604e9f8fb7a6c07'] /* Mark All Read */,
58          xns : Roo.bootstrap,
59          '|xns' : 'Roo.bootstrap',
60          xtype : 'NavItem'
61         },
62         {
63          html : _this._strings['8287b137f969bcae66ca51f7abf14308'] /* Show Previously Read  */,
64          xns : Roo.bootstrap,
65          '|xns' : 'Roo.bootstrap',
66          xtype : 'NavItem'
67         },
68         {
69          html : _this._strings['83ca9a18d9507324a9453c92a7420dd2'] /* Report Issue */,
70          xns : Roo.bootstrap,
71          '|xns' : 'Roo.bootstrap',
72          xtype : 'NavItem'
73         }
74        ]
75       }
76      ]
77     },
78     {
79      hover : true,
80      responsive : true,
81      RowSelection : true,
82      striped : true,
83      style : 'margin-top:50px',
84      thead : false,
85      xns : Roo.bootstrap,
86      '|xns' : 'Roo.bootstrap',
87      xtype : 'Table',
88      listeners : {
89       render : function (_self)
90        {
91            _this.table = this;
92            this.store.load({});
93        },
94       rowclick : function (_self, el, rowIndex, e)
95        {
96            //var rec = this.store.getAt(rowIndex);
97           
98            _this.articleCtr.load(rowIndex);
99        }
100      },
101      store : {
102       remoteSort : true,
103       xns : Roo.data,
104       '|xns' : 'Roo.data',
105       xtype : 'Store',
106       listeners : {
107        beforeload : function (_self, o)
108         {
109             o.params = o.params || {};
110             o.params.feed = 83;
111         }
112       },
113       proxy : {
114        method : 'GET',
115        url : baseURL + '/Api/Reader_read',
116        xns : Roo.data,
117        '|xns' : 'Roo.data',
118        xtype : 'HttpProxy'
119       },
120       reader : {
121        fields : [
122                "id",
123                    "article_id",
124                    "has_read",
125                    "article_id_id" ,
126                    "article_id_published_dt" ,
127                    "article_id_headline" ,
128                    "article_id_body" ,
129                    "article_id_real_url" ,
130                    'article_id_body_txt'
131                ],
132        xns : Roo.data,
133        '|xns' : 'Roo.data',
134        xtype : 'JsonReader'
135       }
136      },
137      cm : [
138       {
139        dataIndex : 'article_id_headline',
140        renderer : function(v,x,r) {
141           
142           return String.format(
143                    '<h3>{0}</h3><small>{1}</small><i class="rss-list-body">{2}</i>' + 
144                        '{3}<i class="fa fa-chevron-right"></i>',
145                r.data.article_id_headline,
146                r.data.article_id_published_dt,
147                r.data.article_id_body_txt,
148                r.data.has_read * 1 ? '<span class="badge">Read</span>' : ''
149            );
150                    
151         
152         },
153        xns : Roo.grid,
154        '|xns' : 'Roo.grid',
155        xtype : 'ColumnModel'
156       }
157      ]
158     },
159     {
160      hidden : false,
161      load : function(pos) { 
162          
163      
164          if (pos < 0) {
165              Roo.MessageBox.alert("error", "show article got < 0");
166          }
167              
168          //    Roo.select('.hover-nav').show();
169          _this.table.hide(); // hopefully...
170          this.show();
171          
172          var rec = _this.table.store.getAt(pos);
173          if (typeof(rec.data.rss_body) == 'undefined') {
174      
175                  
176              new Pman.Request({
177                  method: 'GET',
178                  mask : 'Fetching Article',
179                  params : {as_json : 1} ,
180                  url : baseURL + '/FeedBody/' + rec.data.id,
181                  success : function(res) {
182                      Roo.log(res);
183                      rec.data.rss_body = res.data;
184                      _this.articleCtr.load(pos);
185                      
186                    
187                  }
188              });
189              return;
190              
191          }
192          
193          _this.articleDate.el.update(rec.data.article_id_published_dt.split(' ')[0]);
194      
195          _this.articleURL.el.update(String.format('<a href="{0}">{1}</a>',
196                  rec.data.article_id_real_url,
197                  rec.data.article_id_real_url.split('/')[2] // hopefull will not break.!
198           ));
199           _this.articleTitle.el.update(String.format('{0}', rec.data.article_id_headline));
200          
201          _this.articleBody.el.update(rec.data.rss_body || "Body has not been loaded",false, function() {
202              //Roo.log("body loaded");
203              (function() { 
204                  var w = Roo.lib.Dom.getViewportWidth();
205      
206                  // resize the images... 
207                  _this.articleBody.el.select('img', true).each(function(im) {
208                      if (im.getWidth() > w) {
209                          var sf = w/im.getWidth()  
210                          im.setSize(w, im.getHeight() * sf);
211                      }
212                      
213                          
214                  });
215              }).defer(100);
216                  
217          });
218          // hide the summary...
219          
220          
221          
222          
223          
224          //Roo.get(document.body).unmask();
225          
226          //Roo.select('.rss-art-count').first().update((this.pos +1) +'/' + this.articles.elements.length);
227         
228          // flag it as read...
229          
230          new Pman.Request({
231              method: 'GET',
232              url : baseURL + '/FeedBody/' + rec.data.id,
233              params : { flag_read : 1 }, 
234              success : function(res) { }
235          });
236          rec.set('has_read', 1);
237              
238          //Roo.select('.rss-list-article-' +id +
239          //           ' .count').show();
240          
241          //Roo.select('.rss-list-article-' +id +
242          //           ' .count').first().dom.innerHTML =  'Read';
243      
244          //Roo.select('.rss-list-article-' +id +
245          //           ' .chevron').first().hide();
246          
247         
248              //Roo.select('header h2').first().dom.innerHTML = this.feed_title + ' - ' +
249              //        art.select('.rss-title').first().dom.innerH
250      },
251      xns : Roo.bootstrap,
252      '|xns' : 'Roo.bootstrap',
253      xtype : 'Element',
254      listeners : {
255       render : function (_self)
256        {
257          _this.articleCtr = this;
258        }
259      },
260      items  : [
261       {
262        cls : 'breadcrumb',
263        style : 'margin-top:50px;',
264        tag : 'ol',
265        xns : Roo.bootstrap,
266        '|xns' : 'Roo.bootstrap',
267        xtype : 'Element',
268        items  : [
269         {
270          html : _this._strings['44749712dbec183e983dcd78a7736c41'] /* Date */,
271          tag : 'li',
272          xns : Roo.bootstrap,
273          '|xns' : 'Roo.bootstrap',
274          xtype : 'Element',
275          listeners : {
276           render : function (_self)
277            {
278              _this.articleDate  = this;
279            }
280          }
281         },
282         {
283          html : _this._strings['40c829f4b6cdd8753135704af571192f'] /* articleURL */,
284          tag : 'li',
285          xns : Roo.bootstrap,
286          '|xns' : 'Roo.bootstrap',
287          xtype : 'Element',
288          listeners : {
289           render : function (_self)
290            {
291              _this.articleURL  = this;
292            }
293          }
294         },
295         {
296          cls : 'active',
297          html : _this._strings['b78a3223503896721cca1303f776159b'] /* Title */,
298          tag : 'li',
299          xns : Roo.bootstrap,
300          '|xns' : 'Roo.bootstrap',
301          xtype : 'Element',
302          listeners : {
303           render : function (_self)
304            {
305            _this.articleTitle = this;
306            }
307          }
308         }
309        ]
310       },
311       {
312        xns : Roo.bootstrap,
313        '|xns' : 'Roo.bootstrap',
314        xtype : 'Container',
315        listeners : {
316         render : function (_self)
317          {
318            _this.articleBody = this;
319          }
320        }
321       }
322      ]
323     }
324    ]
325   };  }
326 });