PageRenderTime 45ms CodeModel.GetById 13ms RepoModel.GetById 0ms app.codeStats 0ms

/src/webserver/default/amuleweb-main-shared.php

https://bitbucket.org/gzf/umule
PHP | 378 lines | 336 code | 28 blank | 14 comment | 80 complexity | 213a59e7f224e674a1c054b4c07b0dd1 MD5 | raw file
Possible License(s): GPL-2.0, AGPL-1.0, LGPL-2.0, LGPL-2.1
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <html>
  3. <head>
  4. <title>aMule control panel</title>
  5. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  6. <script language="JavaScript" type="text/JavaScript">
  7. <!--
  8. function MM_swapImgRestore() { //v3.0
  9. var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
  10. }
  11. function MM_preloadImages() { //v3.0
  12. var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
  13. var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
  14. if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
  15. }
  16. function MM_findObj(n, d) { //v4.01
  17. var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
  18. d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  19. if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  20. for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  21. if(!x && d.getElementById) x=d.getElementById(n); return x;
  22. }
  23. function MM_swapImage() { //v3.0
  24. var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
  25. if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
  26. }
  27. function MM_nbGroup(event, grpName) { //v6.0
  28. var i,img,nbArr,args=MM_nbGroup.arguments;
  29. if (event == "init" && args.length > 2) {
  30. if ((img = MM_findObj(args[2])) != null && !img.MM_init) {
  31. img.MM_init = true; img.MM_up = args[3]; img.MM_dn = img.src;
  32. if ((nbArr = document[grpName]) == null) nbArr = document[grpName] = new Array();
  33. nbArr[nbArr.length] = img;
  34. for (i=4; i < args.length-1; i+=2) if ((img = MM_findObj(args[i])) != null) {
  35. if (!img.MM_up) img.MM_up = img.src;
  36. img.src = img.MM_dn = args[i+1];
  37. nbArr[nbArr.length] = img;
  38. } }
  39. } else if (event == "over") {
  40. document.MM_nbOver = nbArr = new Array();
  41. for (i=1; i < args.length-1; i+=3) if ((img = MM_findObj(args[i])) != null) {
  42. if (!img.MM_up) img.MM_up = img.src;
  43. img.src = (img.MM_dn && args[i+2]) ? args[i+2] : ((args[i+1])? args[i+1] : img.MM_up);
  44. nbArr[nbArr.length] = img;
  45. }
  46. } else if (event == "out" ) {
  47. for (i=0; i < document.MM_nbOver.length; i++) {
  48. img = document.MM_nbOver[i]; img.src = (img.MM_dn) ? img.MM_dn : img.MM_up; }
  49. } else if (event == "down") {
  50. nbArr = document[grpName];
  51. if (nbArr)
  52. for (i=0; i < nbArr.length; i++) { img=nbArr[i]; img.src = img.MM_up; img.MM_dn = 0; }
  53. document[grpName] = nbArr = new Array();
  54. for (i=2; i < args.length-1; i+=2) if ((img = MM_findObj(args[i])) != null) {
  55. if (!img.MM_up) img.MM_up = img.src;
  56. img.src = img.MM_dn = (args[i+1])? args[i+1] : img.MM_up;
  57. nbArr[nbArr.length] = img;
  58. } }
  59. }
  60. //-->
  61. </script>
  62. <link href="style.css" rel="stylesheet" type="text/css"><style type="text/css">
  63. <!--
  64. caption {
  65. font-family: Helvetica;
  66. font-size: 18px;
  67. font-weight: bold;
  68. color: #003161;
  69. }
  70. th {
  71. font-family: Helvetica;
  72. font-size: 14px;
  73. font-height: 22px;
  74. font-weight: bold;
  75. color: #003161;
  76. }
  77. a:link {
  78. color: #003161;
  79. text-decoration: none;
  80. }
  81. a:active {
  82. color: #003161;
  83. text-decoration: none;
  84. }
  85. a:visited {
  86. color: #003161;
  87. text-decoration: none;
  88. }
  89. a:hover {
  90. color: #c0c0c0;
  91. text-decoration: underline;
  92. }
  93. td {
  94. font-family: Helvetica;
  95. font-size: 12px;
  96. font-weight: normal;
  97. }
  98. label {
  99. font-family: Helvetica;
  100. font-size: 14px;
  101. font-weight: bold;
  102. }
  103. .texte {
  104. font-family: Helvetica;
  105. font-size: 12px;
  106. font-weight: normal;
  107. }
  108. label {
  109. font-family:"trebuchet ms",sans-serif;
  110. font-size: 12px;
  111. font-weight:bold
  112. }
  113. input {
  114. border:1px solid #003161;
  115. background-color: white;
  116. font-family:"trebuchet ms",sans-serif;
  117. font-size: 12px;
  118. color: #003161;
  119. }
  120. select, option {
  121. background-color: white;
  122. font-size: 12px;
  123. color: #003161;
  124. }
  125. textarea {
  126. border:1px solid #003161;
  127. background-color: #90B6DB;
  128. font-family:"trebuchet ms",sans-serif;
  129. font-size: 12px;
  130. color: white;
  131. }
  132. -->
  133. </style>
  134. </head><script language="JavaScript" type="text/JavaScript">
  135. function formCommandSubmit(command)
  136. {
  137. <?php
  138. if ($_SESSION["guest_login"] != 0) {
  139. echo 'alert("You logged in as guest - commands are disabled");';
  140. echo "return;";
  141. }
  142. ?>
  143. var frm=document.forms.mainform
  144. frm.command.value=command
  145. frm.submit()
  146. }
  147. </script>
  148. <body background="images/fond.gif" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" onLoad="MM_preloadImages('images/transf_1.png','images/shared_1.png','images/search_1.png','images/edkserv_1.png','images/sheserv_1.png','images/stats_1.png');">
  149. <table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
  150. <tr valign="top">
  151. <td width="143" height="64"><img src="images/logo.png" width="143" height="64"></td>
  152. <td width="100%" height="64" align="right" background="images/fond_haut.png"> <table border="0" cellspacing="0" cellpadding="0">
  153. <tr>
  154. <td><a href="amuleweb-main-dload.php" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('transfert','','images/transf_1.png',1)"><img src="images/transf_0.png" alt="transfert" name="transfert" width="52" height="50" border="0"></a></td>
  155. <td><a href="amuleweb-main-shared.php" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('shared','','images/shared_1.png',1)"><img src="images/shared_0.png" alt="shared" name="shared" width="52" height="50" border="0"></a></td>
  156. <td><a href="amuleweb-main-search.php" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('search','','images/search_1.png',1)"><img src="images/search_0.png" alt="search" name="search" width="52" height="50" border="0"></a></td>
  157. <td><a href="amuleweb-main-servers.php" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('edkserver','','images/edkserv_1.png',1)"><img src="images/edkserv_0.png" alt="edkserver" name="edkserver" width="52" height="50" border="0"></a></td>
  158. <td><a href="amuleweb-main-kad.php" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('sheserv','','images/sheserv_1.png',1)"><img src="images/sheserv_0.png" alt="sheserv" name="sheserv" width="52" height="50" border="0"></a></td>
  159. <td><a href="amuleweb-main-stats.php" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('statistiques','','images/stats_1.png',1)"><img src="images/stats_0.png" alt="statistiques" name="statistiques" width="52" height="50" border="0"></a></td>
  160. <td><img src="images/col.png"></td>
  161. <td width="10"></td>
  162. <td width="190" align="right" class="texteinv"><a href="login.php">exit</a><br>
  163. <a href="amuleweb-main-log.php">log &bull;</a> <a href="amuleweb-main-prefs.php">configuration</a></td>
  164. <td width="10"></td>
  165. </tr>
  166. </table></td>
  167. </tr>
  168. <tr align="center" valign="top">
  169. <td colspan="2"><form name="mainform" action="amuleweb-main-shared.php" method="post">
  170. <table border="0" align="center" cellpadding="0" cellspacing="0">
  171. <tr>
  172. <td><input type="hidden" name="command"></td>
  173. <td><a href="javascript:formCommandSubmit('reload');" onClick="MM_nbGroup('down','group1','reload','',1)" onMouseOver="MM_nbGroup('over','reload','','',1)" onMouseOut="MM_nbGroup('out')"><img src="images/refresh.png" alt="Ricarica Files Condivisi" name="reload" border="0" onload=""></a></td>
  174. <td><a href="javascript:formCommandSubmit('prioup');" onClick="MM_nbGroup('down','group1','up','',1)" onMouseOver="MM_nbGroup('over','up','','',1)" onMouseOut="MM_nbGroup('out')"><img name="up" src="images/up.png" border="0" alt="Alza Priorit?" onLoad=""></a></td>
  175. <td><a href="javascript:formCommandSubmit('priodown');" onClick="MM_nbGroup('down','group1','down','',1)" onMouseOver="MM_nbGroup('over','down','','',1)" onMouseOut="MM_nbGroup('out')"><img src="images/down.png" alt="Abbassa Priorit?" name="down" border="0" onload=""></a></td>
  176. <td><select name="select">
  177. <option selected>Select prio</option>
  178. <option>Low</option>
  179. <option>Normal</option>
  180. <option>High</option>
  181. </select> </td>
  182. <td><a href="javascript:formCommandSubmit('setprio');" onClick="MM_nbGroup('down','group1','resume','',1)" onMouseOver="MM_nbGroup('over','resume','','',1)" onMouseOut="MM_nbGroup('out')"><img src="images/ok.png" alt="Imposta Priorit?" name="resume" border="0" onload=""></a></td>
  183. <td>
  184. <?php
  185. if ($_SESSION["guest_login"] != 0) {
  186. echo "<b>&nbsp;You logged in as guest - commands are disabled</b>";
  187. }
  188. ?>
  189. </td>
  190. </tr>
  191. </table>
  192. <table width="100%" border="0" cellspacing="0" cellpadding="0">
  193. <caption>
  194. SHARED FILES
  195. </caption>
  196. <tr>
  197. <td width="24"><img src="images/tab_top_left.png" width="24" height="24"></td>
  198. <td background="images/tab_top.png">&nbsp;</td>
  199. <td width="24"><img src="images/tab_top_right.png" width="24" height="24"></td>
  200. </tr>
  201. <tr>
  202. <td width="24" background="images/tab_left.png">&nbsp;</td>
  203. <td bgcolor="#FFFFFF">
  204. <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
  205. <tr>
  206. <th></th>
  207. <th><a href="amuleweb-main-shared.php?sort=name">File Name</a></th>
  208. <th><a href="amuleweb-main-shared.php?sort=xfer">Transferred</a>
  209. (<a href="amuleweb-main-shared.php?sort=xfer_all">Total</a>)</th>
  210. <th><a href="amuleweb-main-shared.php?sort=req">Requested</a>
  211. (<a href="amuleweb-main-shared.php?sort=req_all">Total</a>)</th>
  212. <th><a href="amuleweb-main-shared.php?sort=acc">Accepted requests</a>
  213. (<a href="amuleweb-main-shared.php?sort=acc_all">Total</a>)</th>
  214. <th><a href="amuleweb-main-shared.php?sort=size">Size</a></th>
  215. <th><a href="amuleweb-main-shared.php?sort=prio">Priority</a></th>
  216. </tr><tr><td colspan="9" height="1" bgcolor="#000000"></td></tr>
  217. <?php
  218. function CastToXBytes($size)
  219. {
  220. if ( $size < 1024 ) {
  221. $result = $size . " bytes";
  222. } elseif ( $size < 1048576 ) {
  223. $result = ($size / 1024.0) . "KB";
  224. } elseif ( $size < 1073741824 ) {
  225. $result = ($size / 1048576.0) . "MB";
  226. } else {
  227. $result = ($size / 1073741824.0) . "GB";
  228. }
  229. return $result;
  230. }
  231. function StatusString($file)
  232. {
  233. if ( $file->status == 7 ) {
  234. return "Paused";
  235. } elseif ( $file->src_count_xfer > 0 ) {
  236. return "Downloading";
  237. } else {
  238. return "Waiting";
  239. }
  240. }
  241. function PrioString($file)
  242. {
  243. $prionames = array(0 => "Low", 1 => "Normal", 2 => "High",
  244. 3 => "Very high", 4 => "Very low", 5=> "Auto", 6 => "Release");
  245. $result = $prionames[$file->prio];
  246. if ( $file->prio_auto == 1) {
  247. $result = $result . "(auto)";
  248. }
  249. return $result;
  250. }
  251. function PrioSort($file) {
  252. // Very low (4) has a too high number
  253. if (4 == $file->prio) {
  254. return 0;
  255. }
  256. return $file->prio+1;
  257. }
  258. //
  259. // declare it here, before any function reffered it in "global"
  260. //
  261. $sort_order;$sort_reverse;
  262. function my_cmp($a, $b)
  263. {
  264. global $sort_order, $sort_reverse;
  265. switch ( $sort_order) {
  266. case "size": $result = $a->size > $b->size; break;
  267. case "name": $result = $a->name > $b->name; break;
  268. case "xfer": $result = $a->xfer > $b->xfer; break;
  269. case "xfer_all": $result = $a->xfer_all > $b->xfer_all; break;
  270. case "acc": $result = $a->accept > $b->accept; break;
  271. case "acc_all": $result = $a->accept_all > $b->accept_all; break;
  272. case "req": $result = $a->req > $b->req; break;
  273. case "req_all": $result = $a->req_all > $b->req_all; break;
  274. case "prio": $result = PrioSort($a) < PrioSort($b); break;
  275. }
  276. if ( $sort_reverse ) {
  277. $result = !$result;
  278. }
  279. //var_dump($sort_reverse);
  280. return $result;
  281. }
  282. //
  283. // perform command before processing content
  284. //
  285. //var_dump($HTTP_GET_VARS);
  286. if (($HTTP_GET_VARS["command"] != "") && ($_SESSION["guest_login"] == 0)) {
  287. //amule_do_download_cmd($HTTP_GET_VARS["command"]);
  288. foreach ( $HTTP_GET_VARS as $name => $val) {
  289. // this is file checkboxes
  290. if ( (strlen($name) == 32) and ($val == "on") ) {
  291. //var_dump($name);var_dump($val);
  292. amule_do_shared_cmd($name, $HTTP_GET_VARS["command"]);
  293. }
  294. }
  295. if ($HTTP_GET_VARS["command"] == "reload") {
  296. amule_do_reload_shared_cmd();
  297. }
  298. }
  299. $shared = amule_load_vars("shared");
  300. $sort_order = $HTTP_GET_VARS["sort"];
  301. if ( $sort_order == "" ) {
  302. $sort_order = $_SESSION["shared_sort"];
  303. } else {
  304. if ( $_SESSION["sort_reverse"] == "" ) {
  305. $_SESSION["sort_reverse"] = 0;
  306. } else {
  307. $_SESSION["sort_reverse"] = !$_SESSION["sort_reverse"];
  308. }
  309. }
  310. //var_dump($_SESSION);
  311. $sort_reverse = $_SESSION["sort_reverse"];
  312. if ( $sort_order != "" ) {
  313. $_SESSION["shared_sort"] = $sort_order;
  314. usort(&$shared, "my_cmp");
  315. }
  316. foreach ($shared as $file) {
  317. print "<tr>";
  318. echo "<td class='texte'>", '<input type="checkbox" name="', $file->hash, '" >', "</td>";
  319. echo "<td class='texte'>", $file->short_name, "</td>";
  320. echo "<td class='texte' align='center'>", CastToXBytes($file->xfer), " (", CastToXBytes($file->xfer_all),")</td>";
  321. echo "<td class='texte' align='center'>", $file->req, " (", $file->req_all, ")</td>";
  322. echo "<td class='texte' align='center'>", $file->accept, " (", $file->accept_all, ")</td>";
  323. echo "<td class='texte' align='center'>", CastToXBytes($file->size), "</td>";
  324. echo "<td class='texte' align='center'>", PrioString($file), "</td>";;
  325. print "</tr><tr><td colspan='9' height='1' bgcolor='#c0c0c0'></td></tr>";
  326. }
  327. ?>
  328. </table></td>
  329. <td width="24" background="images/tab_right.png">&nbsp;</td>
  330. </tr>
  331. <tr>
  332. <td width="24"><img src="images/tab_bottom_left.png" width="24" height="24"></td>
  333. <td background="images/tab_bottom.png">&nbsp;</td>
  334. <td width="24"><img src="images/tab_bottom_right.png" width="24" height="24"></td>
  335. </tr>
  336. </table></form></td>
  337. </tr>
  338. <tr valign="bottom">
  339. <td height="25" colspan="2"> <table width="100%" height="40" border="0" cellpadding="0" cellspacing="0">
  340. <tr align="center" valign="middle">
  341. <td width="50%"> <iframe name="stats" src="footer.php" height="35" width="100%" scrolling="no" frameborder="0">edklink</iframe>
  342. </td>
  343. <td width="50%"> <iframe name="stats" src="stats.php" height="35" width="100%" scrolling="no" frameborder="0">connection</iframe>
  344. </td>
  345. </tr>
  346. </table></td>
  347. </tr>
  348. </table>
  349. </body>
  350. </html>