diff options
Diffstat (limited to 'plugins/webinterface/www/coldmilk/page_update.js')
-rw-r--r-- | plugins/webinterface/www/coldmilk/page_update.js | 429 |
1 files changed, 0 insertions, 429 deletions
diff --git a/plugins/webinterface/www/coldmilk/page_update.js b/plugins/webinterface/www/coldmilk/page_update.js deleted file mode 100644 index c004456..0000000 --- a/plugins/webinterface/www/coldmilk/page_update.js +++ /dev/null @@ -1,429 +0,0 @@ - /*************************************************************************** - * Copyright (C) 2007 by Dagur Valberg Johannsson * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * - ***************************************************************************/ - -var details_of_torrent = null; //id of torrent which details are displayed - -function update_interval(time) { - update_all(); - if (!time) { - return; - } - var seconds = time * 1000; - window.setInterval(update_all, seconds); -} - -function update_all() { - fetch_xml("rest.php?global_status", new Array("update_status_bar", "update_title")); - fetch_xml("rest.php?download_status", new Array("update_torrent_table")); -} - -function fetch_xml(url, callback_functions) { - var request = false; - - if (window.XMLHttpRequest) { // most browsers - request = new XMLHttpRequest(); -// if (request.overrideMimeType) { -// request.overrideMimeType('text/xml'); -// } - } - - else if (window.ActiveXObject) { //ie - try { - request = new ActiveXObject("Msxml2.XMLHTTP"); - } - catch(e) { - try { request = new ActiveXObject("Microsoft.XMLHTTP"); } - catch(e) { } - } - } - - if (!request) { - // Browser doesn't support XMLHttpRequest - return false; - } - request.onreadystatechange = function() { - if (request.readyState == 4) { - if (request.status == 200) { - //overrideMimeType didn't work in Konqueror, - //so we'll have to parse the response into XML - //object ourselfs. responseXML won't work. - var xmlstring = request.responseText; - var xmldoc; - if (window.DOMParser) { - xmldoc = (new DOMParser()) - .parseFromString(xmlstring, "text/xml"); - } - else if (window.ActiveXObject) { //ie - xmldoc = new ActiveXObject("Microsoft.XMLDOM"); - xmldoc.async = false; - xmldoc.loadXML(xmlstring); - } - - for (var i in callback_functions) { - eval(callback_functions[i] + "(xmldoc)"); - } - - } - else { - // could not fetch - } - } - } - - request.open('GET', url, true); - request.send(null); -} - -function update_title(xmldoc) { - var down = _get_text(xmldoc, 'download_speed').data; - var up = _get_text(xmldoc, 'upload_speed').data; - var new_title = "(D: " + down + ") (U: " + up + ") - ktorrent web interface"; - document.title = new_title; -} - -function update_status_bar(xmldoc) { - var newtable = document.createElement('table'); - newtable.setAttribute('id', 'status_bar_table'); - - - //dht and encryption - { - var row = newtable.insertRow(0); - var cell = row.insertCell(0); - var dht = _get_text_from_attribute(xmldoc, 'dht', 'status').data; - var encryption = _get_text_from_attribute(xmldoc, 'encryption', 'status').data; - cell.appendChild( - document.createTextNode("DHT : " +dht)); - cell = row.insertCell(1); - cell.appendChild( - document.createTextNode("Encryption : " + encryption)); - } - //speed down/up - { - var row = newtable.insertRow(1); - var cell = row.insertCell(0); - cell.appendChild( - document.createTextNode("Speed")); - - cell = row.insertCell(1); - var down = _get_text(xmldoc, 'download_speed').data; - var up = _get_text(xmldoc, 'upload_speed').data; - cell.appendChild( - document.createTextNode("down: " + down + " / up: " + up)); - } - //transferred - { - var row = newtable.insertRow(2); - var cell = row.insertCell(0); - cell.appendChild( - document.createTextNode("Transferred")); - - cell = row.insertCell(1); - var down = _get_text(xmldoc, 'downloaded_total').data; - var up = _get_text(xmldoc, 'uploaded_total').data; - cell.appendChild( - document.createTextNode("down: " + down + " / up: " + up)); - } - var oldtable = document.getElementById('status_bar_table'); - oldtable.parentNode.replaceChild(newtable, oldtable); -} - -function update_torrent_table(xmldoc) { - - var newtable = document.createElement('table'); - newtable.setAttribute('id', 'torrent_list_table'); - newtable.className='list_table'; - - var torrents = xmldoc.getElementsByTagName('torrent'); - var i = 0; - while (torrents[i]) { - _torrent_table_row(torrents[i], newtable, i); - i++; - } - _torrent_table_header(newtable.insertRow(0)); - - var oldtable = document.getElementById('torrent_list_table'); - oldtable.parentNode.replaceChild(newtable, oldtable); -} - -function _torrent_table_row(torrent, table, i) { - var row = table.insertRow(i); - var row_color = (i % 2) ? - "#ffffff" : "#dce4f9"; - row.setAttribute("style", "background-color : " + row_color); - - //actions - { - var cell = row.insertCell(0); - var can_start = (_get_text(torrent, 'running').data) ? 0 : 1; //if torrent is running we can't start it - var can_stop = (can_start==1) ? 0 : 1; //opposite of can_start - var start_button = _create_action_button('Start', 'start.png', (can_start==1) ? 'start='+i : ''); - var stop_button = _create_action_button('Stop', 'stop.png', (can_stop==1) ? 'stop='+i : ''); - var remove_button = _create_action_button('Remove', 'remove.png', 'remove='+i); - remove_button.setAttribute("onclick", "return validate('remove_torrent')"); - - cell.appendChild(start_button); - cell.appendChild(stop_button); - cell.appendChild(remove_button); - } - - //file - { - var cell = row.insertCell(1); - var file = document.createElement('a'); - file.setAttribute('href', '#'); - file.appendChild(_get_text(torrent, 'name')); - file.onclick = function() - { - show('torrents_details'); - fetch_xml("rest.php?torrents_details="+i, new Array("get_torrents_details")); - details_of_torrent = i; - }; - cell.appendChild(file); - } - - //status - { - var cell = row.insertCell(2); - cell.appendChild( - _get_text(torrent, 'status')); - } - - //speed - { - var cell = row.insertCell(3); - - cell.appendChild( - _get_text(torrent, 'download_rate')); - cell.appendChild(document.createElement('br')); - cell.appendChild( - _get_text(torrent, 'upload_rate')); - } - - //size - { - var cell = row.insertCell(4); - cell.appendChild( - _get_text(torrent, 'size')); - } - - //peers - { - var cell = row.insertCell(5); - cell.appendChild( - _get_text(torrent, 'peers')); - } - - //transferred - { - var cell = row.insertCell(6); - - cell.appendChild( - _get_text(torrent, 'downloaded')); - cell.appendChild(document.createElement('br')); - cell.appendChild( - _get_text(torrent, 'uploaded')); - } - - //done - { - var cell = row.insertCell(7); - cell.setAttribute("style", "padding-right : 2px;"); - - var percent_done - = _get_text_from_attribute(torrent, 'downloaded', 'percent').data; - - var bar = document.createElement('div'); - bar.setAttribute("class", "percent_bar"); - bar.setAttribute("style", "width : " + percent_done + "%;"); - cell.appendChild(bar); - - var bar_text = document.createElement('div'); - bar_text.appendChild( - document.createTextNode(percent_done + "%")); - - bar.appendChild(bar_text); - } -} - -//function called after changing file priority to refresh list of files (and priorities) -function just_refresh_details(xmldoc) { - if (details_of_torrent!=null) - fetch_xml("rest.php?torrents_details="+details_of_torrent, new Array("get_torrents_details")); -} - -function get_torrents_details(xmldoc) { - var newtable = document.createElement('table'); - newtable.setAttribute('id', 'torrents_details_files'); - newtable.className='list_table'; - - var id = xmldoc.getElementsByTagName('torrents_details')[0].getAttribute('id'); - var files = xmldoc.getElementsByTagName('file'); - for(var i=0; i<files.length; i++) - { - var row = newtable.insertRow(i); - row.style.backgroundColor=(i % 2) ? '#ffffff' : '#dce4f9'; - var cell = row.insertCell(-1); - - var file_status = _get_text(files[i], 'status').data; - var command; //we call ?file_xx - this call is detected by server and priority is being changed - - command = (file_status==50)?'':'rest.php?file_hp='+id+'-'+i; - var high_prior = _create_file_action_button('/icons/16x16/high_priority.png', 'High Priority', command); - cell.appendChild(high_prior); - - command = (file_status==40)?'':'rest.php?file_np='+id+'-'+i; - var normal_prior = _create_file_action_button('/icons/16x16/normal_priority.png', 'Normal Priority', command); - cell.appendChild(normal_prior); - - command = (file_status==30)?'':'rest.php?file_lp='+id+'-'+i; - var low_prior = _create_file_action_button('/icons/16x16/low_priority.png', 'Low Priority', command); - cell.appendChild(low_prior); - - command = (file_status==20 || file_status==10)?'':'rest.php?file_stop='+id+'-'+i; - var dnd = _create_file_action_button('/icons/16x16/only_seed.png', 'Stop downloading (Only Seed Priority)', command); - cell.appendChild(dnd); - - var cell = row.insertCell(-1); - cell.appendChild(_get_text(files[i], 'name')); - var cell = row.insertCell(-1); - cell.appendChild(_get_text(files[i], 'size')); - var cell = row.insertCell(-1); - - if (_get_text(files[i], 'perc_done').data!='') - cell.appendChild(_get_text(files[i], 'perc_done')); - else - cell.appendChild(document.createTextNode("0")); - cell.appendChild(document.createTextNode("%")); - var cell = row.insertCell(-1); - - cell.appendChild(document.createTextNode(_get_file_status_name(file_status))); - } - - _torrents_details_header(newtable.insertRow(0)); - - /*var torrents = xmldoc.getElementsByTagName('torrent'); - var i = 0; - while (torrents[i]) { - _torrent_table_row(torrents[i], newtable, i); - i++; - } - _torrent_table_header(newtable.insertRow(0));*/ - - var oldtable = document.getElementById('torrents_details_files'); - oldtable.parentNode.replaceChild(newtable, oldtable); -} - -function _create_action_button(button_name, image_src, command) { - var image = document.createElement("img"); - image.setAttribute("src", "icons/22x22/" + image_src); - image.setAttribute("alt", button_name); - image.setAttribute("title", button_name); - if (command != '') - { - var a = document.createElement("a"); - a.setAttribute("href", "interface.php?" + command); - a.appendChild(image); - return a; - } - else - return image; -} - -function _create_file_action_button(img_src, img_alt, command) { - var image = document.createElement("img"); - image.setAttribute("src", img_src); - image.setAttribute("alt", img_alt); - image.setAttribute("title", img_alt); - if (command != '') - { - var a = document.createElement("a"); - a.setAttribute("href", "#"); - a.onclick = function() - { - fetch_xml(command, new Array("just_refresh_details")); - }; - a.appendChild(image); - return a; - } - else - return image; -} - -// gets element with given tag and crates text node from it -function _get_text(element, tag) { - var text_node; - try { - text_node = document.createTextNode( - element.getElementsByTagName(tag)[0].firstChild.data); - } - catch (e) { - text_node = document.createTextNode(''); - } - return text_node; -} - -function _get_text_from_attribute(element, tag, attribute) { - var text_node; - try { - text_node = document.createTextNode( - element.getElementsByTagName(tag)[0].getAttribute(attribute)); - } - catch (e) { - text_node = document.createTextNode(''); - } - return text_node; -} - -function _get_file_status_name(status_id) -{ - if (status_id==60) return 'PREVIEW_PRIORITY'; - else if (status_id==50) return 'Download First'; - else if (status_id==40) return 'Download Normally'; - else if (status_id==30) return 'Download Last'; - else if (status_id==20) return 'Only Seed'; - else if (status_id==10) return 'Do Not Download'; - else return 'Not supported file status'; -} - -function _torrents_details_header(row) { - headers = new Array("Actions", "File", "Size", "Perc done", "Status"); - for (var i in headers) { - var header = document.createElement("th"); - header.appendChild(document.createTextNode(headers[i])); - row.appendChild(header); - } - return row; -} - -function _torrent_table_header(row) { - headers = new Array( - "Actions", "File", "Status", - "Speed", "Size", "Peers", - "Transferred", "% done" - ); - - for (var i in headers) { - var header = document.createElement("th"); - header.appendChild( - document.createTextNode(headers[i])); - row.appendChild(header); - } - return row; -} |