f5fa65189da8364a4175f36cd91622d53465f24a
[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   '8287b137f969bcae66ca51f7abf14308' :"Show Previously Read ",
9   'd9cd9f7b44e0493c9604e9f8fb7a6c07' :"Mark All Read",
10   'b78a3223503896721cca1303f776159b' :"Title",
11   'b7436cc90ecf26f15baeead978f09040' :"name of feed",
12   '83ca9a18d9507324a9453c92a7420dd2' :"Report Issue",
13   'eae639a70006feff484a39363c977e24' :"Domain",
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            Roo.log(rec);
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      loadArticle : 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                  url : baseURL + '/FeedBody/' + id,
180                  success : function(res) {
181                      rec.data.rss_body = res.responseText;
182                      _this.article_ctr.showArticle(pos);
183                      
184                    
185                  }
186              });
187              return;
188              
189          }
190          
191          _this.articleDate.el.update(rec.data.article_id_published_dt);
192      
193          _this.articleDomain.el.update(String.format('<a href="{0}">{1}</a>', 
194                  rec.data.article_id_real_url,
195                  rec.data.article_id_real_url.split('/')[2] // hopefull will not break.!
196           );
197           _this.articleDomain.el.update(String.format('{0}', rec.data.article_id_headline));
198          
199          _this.articleBody.el.update(rec.data.rss_body || "Body has not been loaded",false, function() {
200              //Roo.log("body loaded");
201              (function() { 
202                  var w = Roo.lib.Dom.getViewportWidth();
203      
204                  // resize the images... 
205                  _this.articleBody.el.select('img', true).each(function(im) {
206                      if (im.getWidth() > w) {
207                          var sf = w/im.getWidth()  
208                          im.setSize(w, im.getHeight() * sf);
209                      }
210                      
211                          
212                  });
213              }).defer(100);
214                  
215          });
216          // hide the summary...
217          
218          
219          
220          
221          
222          //Roo.get(document.body).unmask();
223          
224          //Roo.select('.rss-art-count').first().update((this.pos +1) +'/' + this.articles.elements.length);
225         
226          // flag it as read...
227          
228          new Pman.Request({
229              method: 'GET',
230              url : baseURL + '/FeedBody/' + id,
231              params : { flag_read : 1 }, 
232              success : function(res) { }
233          });
234          rec.set('has_read', 1);
235              
236          //Roo.select('.rss-list-article-' +id +
237          //           ' .count').show();
238          
239          //Roo.select('.rss-list-article-' +id +
240          //           ' .count').first().dom.innerHTML =  'Read';
241      
242          //Roo.select('.rss-list-article-' +id +
243          //           ' .chevron').first().hide();
244          
245         
246              //Roo.select('header h2').first().dom.innerHTML = this.feed_title + ' - ' +
247              //        art.select('.rss-title').first().dom.innerH
248      },
249      xns : Roo.bootstrap,
250      '|xns' : 'Roo.bootstrap',
251      xtype : 'Element',
252      listeners : {
253       render : function (_self)
254        {
255          _this.articleCtr = this;
256        }
257      },
258      items  : [
259       {
260        cls : 'breadcrumb',
261        tag : 'ol',
262        xns : Roo.bootstrap,
263        '|xns' : 'Roo.bootstrap',
264        xtype : 'Element',
265        items  : [
266         {
267          html : _this._strings['44749712dbec183e983dcd78a7736c41'] /* Date */,
268          tag : 'li',
269          xns : Roo.bootstrap,
270          '|xns' : 'Roo.bootstrap',
271          xtype : 'Element',
272          listeners : {
273           render : function (_self)
274            {
275              _this.articleDate  = this;
276            }
277          }
278         },
279         {
280          html : _this._strings['eae639a70006feff484a39363c977e24'] /* Domain */,
281          tag : 'li',
282          xns : Roo.bootstrap,
283          '|xns' : 'Roo.bootstrap',
284          xtype : 'Element',
285          listeners : {
286           render : function (_self)
287            {
288              _this.articleURL  = this;
289            }
290          }
291         },
292         {
293          cls : 'active',
294          html : _this._strings['b78a3223503896721cca1303f776159b'] /* Title */,
295          tag : 'li',
296          xns : Roo.bootstrap,
297          '|xns' : 'Roo.bootstrap',
298          xtype : 'Element',
299          listeners : {
300           render : function (_self)
301            {
302            _this.articleTitle = this;
303            }
304          }
305         }
306        ]
307       },
308       {
309        xns : Roo.bootstrap,
310        '|xns' : 'Roo.bootstrap',
311        xtype : 'Container',
312        listeners : {
313         render : function (_self)
314          {
315            _this.articleBody = this;
316          }
317        }
318       }
319      ]
320     }
321    ]
322   };  }
323 });