summaryrefslogtreecommitdiffstats
path: root/plugins/webinterface/www/coldmilk/page_update.js
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/webinterface/www/coldmilk/page_update.js')
-rw-r--r--plugins/webinterface/www/coldmilk/page_update.js429
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;
-}