source: sandbox/expressoMail1_2/MailArchiver/2.2/expressoMail1_2/js/news_edit.js @ 4778

Revision 4778, 8.8 KB checked in by fernando-alberto, 13 years ago (diff)

Ticket #1269 - Mergiando revisoes do branch22 de rev4644 ate rev4755

  • Property svn:executable set to *
Line 
1
2function cnews_edit()
3{
4    this.arrayWin = new Array();
5    this.rssXml;
6    this.xtools = new xtools('/expressoMail1_2/');
7}
8
9cnews_edit.prototype.read_rss = function(val)
10{
11    Element("border_id_0").innerHTML    = get_lang('News')+'&nbsp;&nbsp;<font face="Verdana" size="1" color="#505050">[ <span id="tot_m"></span> ]</font>';
12   
13    current_folder = "NEWS/"+val;
14    openTab.imapBox[0] = "NEWS/"+val;
15   
16    this.rssXml = this.xtools.load('controller.php?action=$this.rss.getContent&url='+escape(val));
17
18    var langs =
19    {
20        'lang_who'      : get_lang('Who'),
21        'lang_subject'  : get_lang('subject'),
22        'lang_date'     : get_lang('date'),
23        'lang_size'     : get_lang('size')
24    };
25   
26    var _div = document.getElementById("content_id_0");
27        _div.innerHTML = this.xtools.parse( this.rssXml, 'stylesheet/news_read.xsl' , langs );
28   
29    update_menu();
30    var box = Element("tbody_box");
31   
32    if(box.childNodes.length > 1)
33        updateBoxBgColor(box.childNodes);
34   
35    for( var i = 0 ; i < box.childNodes.length ; i++ )
36    {
37        if( box.childNodes[i].childNodes[2].getAttribute("convertDate") )
38        {
39            box.childNodes[i].childNodes[2].innerHTML = this.dateString(box.childNodes[i].childNodes[2].getAttribute("convertDate"));
40        }
41    }
42   
43    Element("tot_m").innerHTML = box.childNodes.length - 1 ;
44}
45
46cnews_edit.prototype.read_item = function(item_number)
47{
48    try
49    {
50        var description = this.rssXml.getElementsByTagName('item')[item_number-1].getElementsByTagName('description')[0].firstChild.nodeValue;
51    }
52    catch(e)
53    {
54        return;
55    }
56   
57    var title = this.rssXml.getElementsByTagName('item')[item_number-1].getElementsByTagName('title')[0].firstChild.nodeValue;
58    var pubDate = this.dateString(this.rssXml.getElementsByTagName('item')[item_number-1].getElementsByTagName('pubDate')[0].firstChild.nodeValue);
59    var link = this.rssXml.getElementsByTagName('item')[item_number-1].getElementsByTagName('link')[0].firstChild.nodeValue;
60    var owner = this.rssXml.getElementsByTagName('item')[item_number-1].getElementsByTagName('owner')[0];
61    if (currentTab.toString().indexOf('news_') != -1)
62        delete_border(currentTab);
63    var border_id = create_border(title, 'news_'+item_number);
64    if(!border_id)
65        return false;
66
67    openTab.type[border_id] = 2;
68
69    var toolbarCode = "<div style='background-color: #FFF; font-size: larger;'>"+
70                      "<table class='table_message' style='width:100%;'><tr><td>"+(owner != undefined?owner.firstChild.nodeValue:get_lang('nobody'))+", "+pubDate+"</td>"+
71                      '<td width="30%" align="left"></td>'+
72                      '<td nowrap="true" width="30%" align="right"><a target="_blank" href="'+link+'" style class="message_options">'+get_lang('Complete news')+'</a>';
73    if ( owner != undefined )
74        toolbarCode += '<span>&nbsp;|&nbsp;</span><span class="message_options">'+get_lang('forward')+'</span><span>&nbsp;|&nbsp;</span>'+
75        '<span class="message_options">Responder</span></td>';
76    toolbarCode += '<td nowrap="true" width="40px" align="right">'+
77    ( item_number == 1 ?  '<img style="cursor: default;" src="./templates/default/images/up.gray.button.png">' :
78        '<img onclick="news_edit.read_item('+(parseInt(item_number)-1)+')" style="cursor: default;" src="./templates/default/images/up.button.png">')+
79    '<span>&nbsp;</span>'+
80    (this.rssXml.getElementsByTagName('item')[parseInt(item_number)] == undefined ? '<img style="cursor: default;" src="./templates/default/images/down.gray.button.png">' :
81        '<img onclick="news_edit.read_item('+(parseInt(item_number)+1)+')" style="cursor: pointer;" src="./templates/default/images/down.button.png">')+
82    "</td></tr></table><h2>"+title+"</h2><br>"+description+"</div>";
83    Element('content_id_'+border_id).innerHTML = toolbarCode;
84    resizeWindow();
85}
86
87cnews_edit.prototype.dateString = function(StringDate)
88{
89    var _date   = new Date(StringDate);
90   
91    var _day    = ( (_date.getDate()).toString().length > 1 ) ? _date.getDate() : "0" + _date.getDate();
92   
93    var _month  = _date.getMonth() + 1;
94        _month  = ( _month.toString().length > 1 ) ? _month : "0" + _month;
95   
96    var _year   = _date.getFullYear();
97   
98    return ( _day + "/" + _month + "/" + _year );
99}
100
101cnews_edit.prototype.makeWindow = function(options)
102{
103    _this = this;
104
105    var params =
106    {
107        'lang_label1'       :   get_lang('Enter the URL of RSS service'),
108        'lang_label2'       :   get_lang('List of registered RSS'),
109        'lang_subscribe'    :   get_lang('Subscribe')
110    };
111
112    var el = document.createElement("DIV");
113        el.style.visibility = "hidden";
114        el.style.position = "absolute";
115        el.style.left = "0px";
116        el.style.top = "0px";
117        el.style.width = "0px";
118        el.style.height = "0px";
119        el.id = 'dJSWin_newswin';
120        el.innerHTML = this.xtools.parse( this.xtools.xml('make_window'), 'stylesheet/makeWindow.xsl', params );
121
122    document.body.appendChild(el);
123   
124    var butt = Element('dJSWin_wfolders_bok');
125   
126    if ( !butt )
127    {
128        butt = document.createElement('INPUT');
129        butt.style.margin = "3px";
130        butt.id = 'dJSWin_wfolders_bok';
131        butt.type = 'button';
132        butt.value = get_lang('Close');
133        el.appendChild(butt);
134    }
135   
136    butt.onclick = function ()
137    {
138        news_edit.arrayWin[el.id].close();
139    }
140
141    _this.showWindow(el);
142}
143
144cnews_edit.prototype.showWindow = function (div)
145{
146    if(! this.arrayWin[div.id])
147    {
148        div.style.height = "280px";
149        div.style.width = "340px";
150        var title = "<label style='margin-left:5px;'>:: "+get_lang("News edit")+" ::</label> ";
151        var wHeight = div.offsetHeight + "px";
152        var wWidth =  div.offsetWidth   + "px";
153        div.style.width = div.offsetWidth - 5;
154
155        win = new dJSWin({
156            id: 'win_'+div.id,
157            content_id: div.id,
158            width: wWidth,
159            height: wHeight,
160            title_color: '#3978d6',
161            bg_color: '#eee',
162            title: title,
163            title_text_color: 'white',
164            button_x_img: '../phpgwapi/images/winclose.gif',
165            border: true
166        });
167        this.arrayWin[div.id] = win;
168        win.draw();
169    }
170    else
171    {
172        win = this.arrayWin[div.id];
173    }
174   
175    win.open();
176   
177    var handlerChannel = function( data )
178    {
179        var _listRss =  document.getElementById("listRSS");
180       
181        if( data != null )
182        {
183            for( var i = 0 ; i < data.length; i++)
184            {   
185                _listRss.innerHTML += "<div>" +
186                                        "<img onclick='news_edit.unsubscribe(\""+data[i].rss_url+"\",this);' style='width:16px; height:16px; cursor: pointer;' src='../phpgwapi/templates/default/images/foldertree_trash.png' />" +
187                                        "<label style='margin-right: 2px'>"+data[i].name+"</label>" +               
188                                       "</div>";
189            }
190        }
191    }
192   
193    cExecute('$this.rss.getChannels',handlerChannel);
194}
195cnews_edit.prototype.unsubscribe = function(url,el)
196{
197    var rem_handler = function (data)
198    {
199        if ( data != "Success" )
200        {   
201            if (data == "Error")
202                alert(get_lang("Database Error"));
203            else
204                alert(get_lang("Invalid entry"));
205        }
206        else
207        {
208           el.parentNode.parentNode.removeChild( el.parentNode );
209        }
210    };
211
212    cExecute('$this.rss.removeChannel&url='+escape(url),rem_handler);
213}
214cnews_edit.prototype.subscribe = function()
215{
216    var newTableEl  = document.getElementById("listRSS");
217    var val         = trim( Element('rssEnter').value );
218   
219    if( val != "" )
220    {
221        this.rssXml = this.xtools.load('controller.php?action=$this.rss.getContent&url='+escape(val));
222
223        var params =
224        {
225            'linkURL' : val
226        };
227
228        var _div = document.createElement("div");
229            _div.innerHTML = this.xtools.parse( this.rssXml, 'stylesheet/news_add.xsl', params );
230
231        var add_handler = function (data)
232        {
233            if ( data != "Success" )
234            {
235                if ( data == "Error" )
236                    alert( get_lang("Database Error") );
237                else
238                    alert( get_lang("Invalid entry") );
239            }
240            else
241            {
242                newTableEl.appendChild(_div);
243            }
244        };
245
246        try
247        {
248            if( _div.childNodes[2].getAttribute("titleRss") )
249            {   
250                var name = _div.childNodes[2].getAttribute("titleRss");
251
252                cExecute('$this.rss.addChannel&url='+escape(val)+'&name='+name,add_handler);
253            }
254        }
255        catch(e){ }
256    }
257
258};
259
260/* Build the Object */
261var news_edit;
262news_edit = new cnews_edit();
Note: See TracBrowser for help on using the repository browser.