Advertisement
Guest User

addtimers.patch

a guest
Aug 19th, 2013
814
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 2.81 KB | None | 0 0
  1. --- oldfile 2013-08-19 11:08:35.139637000 -0400
  2. +++ newfile 2013-08-19 11:24:47.975594478 -0400
  3. @@ -12,6 +12,8 @@
  4.     var $tbarid;
  5.     var $textid;
  6.     var $decimals = 1;
  7. +   var $showTimes = 1;
  8. +   var $hideOnComplete = 0;
  9.  
  10.     function __construct($percentDone = 0) {
  11.         $this->pbid = 'pb';
  12. @@ -39,7 +41,6 @@
  13.                 style="width: '.$percentDone.';"></div>
  14.                 <div id="'.$this->tbarid.'" class="pb_after"></div>
  15.             </div>
  16. -           <br style="height: 1px; font-size: 1px;"/>
  17.         </div>
  18.         <style>
  19.             .pb_container {
  20. @@ -80,7 +81,40 @@
  21.                 position: absolute;
  22.                 left: 48%;
  23.             }
  24. +           .clear {
  25. +               height: 1px;
  26. +               font-size: 1px;
  27. +               clear:both;
  28. +           }
  29. +           #elapsed {
  30. +               float:left;
  31. +           }
  32. +           #remaining {
  33. +               float:right;
  34. +           }
  35.         </style>'."\r\n";
  36. +       if ($this->showTimes) {
  37. +           $content .= '<div id="elapsed">0:00</div><div id="remaining"></div>
  38. +           <script type="text/javascript">
  39. +               function pad(n){n=parseInt(n);return n<10?"0"+n:n;}
  40. +               function setRemaining(elapsed){
  41. +                   var percent = parseFloat(document.getElementById("'.$this->textid.'").innerHTML);
  42. +                   var remaining = (elapsed*100/(percent || 1))-elapsed;
  43. +                   var minutes = parseInt(remaining/60);
  44. +                   var seconds = remaining%60;
  45. +                   document.getElementById("remaining").innerHTML = minutes+":"+pad(seconds);
  46. +               }
  47. +               function setElapsed(){
  48. +                   var elapsed = document.getElementById("elapsed").innerHTML.split(":");
  49. +                   var minutes = parseInt(elapsed[0]);
  50. +                   var seconds = parseInt(elapsed[1])+1;
  51. +                   if(seconds>=60){minutes++;seconds=0;}
  52. +                   document.getElementById("elapsed").innerHTML = minutes+":"+pad(seconds);
  53. +                   setRemaining(minutes*60+seconds);
  54. +               }
  55. +               var addElapsed = setInterval(setElapsed, 1000);
  56. +           </script><br class="clear" />'."\r\n";
  57. +       }
  58.         return $content;
  59.     }
  60.  
  61. @@ -90,16 +124,21 @@
  62.         print('
  63.         <script type="text/javascript">
  64.         if (document.getElementById("'.$this->pbarid.'")) {
  65. -           document.getElementById("'.$this->pbarid.'").style.width = "'.$percentDone.'%";');
  66. -       if ($percentDone == 100) {
  67. -           print('document.getElementById("'.$this->pbid.'").style.display = "none";');
  68. +           document.getElementById("'.$this->pbarid.'").style.width = "'.$percentDone.'%";}');
  69. +       if ($percentDone == 100) {         
  70. +           if ($this->showTimes) {
  71. +               print('document.getElementById("remaining").innerHTML = "0:00";clearInterval(addElapsed);');
  72. +           }          
  73. +           if ($this->hideOnComplete) {
  74. +               print('document.getElementById("'.$this->pbid.'").style.display = "none";');
  75. +           }
  76.         } else {
  77.             print('document.getElementById("'.$this->tbarid.'").style.width = "'.(100-$percentDone).'%";');
  78.         }
  79.         if ($text) {
  80.             print('document.getElementById("'.$this->textid.'").innerHTML = "'.htmlspecialchars($text).'";');
  81.         }
  82. -       print('}</script>'."\n");
  83. +       print('</script>'."\n");
  84.         $this->flush();
  85.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement