home *** CD-ROM | disk | FTP | other *** search
/ Chip 2004 April / CMCD0404.ISO / Software / Freeware / Programare / dotproject / modules / tasks / viewgantt.php < prev    next >
Encoding:
PHP Script  |  2003-08-02  |  5.4 KB  |  168 lines

  1. <?php /* TASKS $Id: viewgantt.php,v 1.28 2003/08/01 23:35:13 kripper Exp $ */
  2. GLOBAL $min_view, $m, $a;
  3. $min_view = defVal( @$min_view, false);
  4.  
  5. $project_id = defVal( @$_GET['project_id'], 0);
  6.  
  7. // sdate and edate passed as unix time stamps
  8. $sdate = dPgetParam( $_POST, 'sdate', 0 );
  9. $edate = dPgetParam( $_POST, 'edate', 0 );
  10.  
  11. // months to scroll
  12. $scroll_date = 1;
  13.  
  14. $display_option = dPgetParam( $_POST, 'display_option', 'this_month' );
  15.  
  16. // format dates
  17. $df = $AppUI->getPref('SHDATEFORMAT');
  18.  
  19. if ($display_option == 'custom') {
  20.     // custom dates
  21.     $start_date = intval( $sdate ) ? new CDate( $sdate ) : new CDate();
  22.     $end_date = intval( $edate ) ? new CDate( $edate ) : new CDate();
  23. } else {
  24.     // month
  25.     $start_date = new CDate();
  26.     $end_date = $start_date;
  27.     $end_date->addMonths( $scroll_date );
  28. }
  29.  
  30. // setup the title block
  31. if (!@$min_view) {
  32.     $titleBlock = new CTitleBlock( 'Gantt Chart', 'applet-48.png', $m, "$m.$a" );
  33.     $titleBlock->addCrumb( "?m=tasks", "tasks list" );
  34.     $titleBlock->addCrumb( "?m=projects&a=view&project_id=$project_id", "view this project" );
  35.     $titleBlock->show();
  36. }
  37. ?>
  38. <script language="javascript">
  39. var calendarField = '';
  40.  
  41. function popCalendar( field ){
  42.     calendarField = field;
  43.     idate = eval( 'document.editFrm.' + field + '.value' );
  44.     window.open( 'index.php?m=public&a=calendar&dialog=1&callback=setCalendar&date=' + idate, 'calwin', 'top=250,left=250,width=250, height=220, scollbars=false' );
  45. }
  46.  
  47. /**
  48.  *    @param string Input date in the format YYYYMMDD
  49.  *    @param string Formatted date
  50.  */
  51. function setCalendar( idate, fdate ) {
  52.     fld_date = eval( 'document.editFrm.' + calendarField );
  53.     fld_fdate = eval( 'document.editFrm.show_' + calendarField );
  54.     fld_date.value = idate;
  55.     fld_fdate.value = fdate;
  56. }
  57.  
  58. function scrollPrev() {
  59.     f = document.editFrm;
  60. <?php
  61.     $new_start = $start_date;
  62.     $new_end = $end_date;
  63.     $new_start->addMonths( -$scroll_date );
  64.     $new_end->addMonths( -$scroll_date );
  65.     echo "f.sdate.value='".$new_start->format( FMT_TIMESTAMP_DATE )."';";
  66.     echo "f.edate.value='".$new_end->format( FMT_TIMESTAMP_DATE )."';";
  67. ?>
  68.     document.editFrm.display_option.value = 'custom';
  69.     f.submit()
  70. }
  71.  
  72. function scrollNext() {
  73.     f = document.editFrm;
  74. <?php
  75.     $new_start = $start_date;
  76.     $new_end = $end_date;
  77.     $new_start->addMonths( $scroll_date );
  78.     $new_end->addMonths( $scroll_date );
  79.     echo "f.sdate.value='" . $new_start->format( FMT_TIMESTAMP_DATE ) . "';";
  80.     echo "f.edate.value='" . $new_end->format( FMT_TIMESTAMP_DATE ) . "';";
  81. ?>
  82.     document.editFrm.display_option.value = 'custom';
  83.     f.submit()
  84. }
  85.  
  86. function showThisMonth() {
  87.     document.editFrm.display_option.value = "this_month";
  88.     document.editFrm.submit();
  89. }
  90.  
  91. function showFullProject() {
  92.     document.editFrm.display_option.value = "all";
  93.     document.editFrm.submit();
  94. }
  95.  
  96. </script>
  97.  
  98. <table border="0" cellpadding="4" cellspacing="0">
  99.  
  100. <form name="editFrm" method="post" action="?<?php echo "m=$m&a=$a&project_id=$project_id";?>">
  101. <input type="hidden" name="display_option" value="<?php echo $display_option;?>" />
  102.  
  103. <tr>
  104.     <td align="left" valign="top" width="20">
  105. <?php if ($display_option != "all") { ?>
  106.         <a href="javascript:scrollPrev()">
  107.             <img src="./images/prev.gif" width="16" height="16" alt="<?php echo $AppUI->_( 'previous' );?>" border="0">
  108.         </a>
  109. <?php } ?>
  110.     </td>
  111.  
  112.     <td align="right" nowrap="nowrap"><?php echo $AppUI->_( 'From' );?>:</td>
  113.     <td align="left" nowrap="nowrap">
  114.         <input type="hidden" name="sdate" value="<?php echo $start_date->format( FMT_TIMESTAMP_DATE );?>" />
  115.         <input type="text" class="text" name="show_sdate" value="<?php echo $start_date->format( $df );?>" size="12" disabled="disabled" />
  116.         <a href="javascript:popCalendar('sdate')"><img src="./images/calendar.gif" width="24" height="12" alt="" border="0"></a>
  117.     </td>
  118.  
  119.     <td align="right" nowrap="nowrap"><?php echo $AppUI->_( 'To' );?>:</td>
  120.     <td align="left" nowrap="nowrap">
  121.         <input type="hidden" name="edate" value="<?php echo $end_date->format( FMT_TIMESTAMP_DATE );?>" />
  122.         <input type="text" class="text" name="show_edate" value="<?php echo $end_date->format( $df );?>" size="12" disabled="disabled" />
  123.         <a href="javascript:popCalendar('edate')"><img src="./images/calendar.gif" width="24" height="12" alt="" border="0"></a>
  124.  
  125.     <td align="left">
  126.         <input type="button" class="button" value="<?php echo $AppUI->_( 'submit' );?>" onclick='document.editFrm.display_option.value="custom";submit();'>
  127.     </td>
  128.  
  129.     <td align="right" valign="top" width="20">
  130. <?php if ($display_option != "all") { ?>
  131.       <a href="javascript:scrollNext()">
  132.           <img src="./images/next.gif" width="16" height="16" alt="<?php echo $AppUI->_( 'next' );?>" border="0">
  133.       </a>
  134. <?php } ?>
  135.     </td>
  136. </tr>
  137.  
  138. </form>
  139.  
  140. <tr>
  141.     <td align="center" valign="bottom" colspan="7">
  142.         <?php echo "<a href='javascript:showThisMonth()'>".$AppUI->_('show this month')."</a> : <a href='javascript:showFullProject()'>".$AppUI->_('show full project')."</a><br>"; ?>
  143.     </td>
  144. </tr>
  145.  
  146. </table>
  147.  
  148. <table cellspacing="0" cellpadding="0" border="1" align="center">
  149. <tr>
  150.     <td>
  151. <?php
  152. if (db_loadResult( "SELECT COUNT(*) FROM tasks WHERE task_project=$project_id" )) {
  153.     $src =
  154.       "?m=tasks&a=gantt&suppressHeaders=1&project_id=$project_id" .
  155.       ( $display_option == 'all' ? '' :
  156.         '&start_date=' . $start_date->format( "%Y-%m-%d" ) . '&end_date=' . $end_date->format( "%Y-%m-%d" ) ) .
  157.       "&width=' + ((navigator.appName=='Netscape'?window.innerWidth:document.body.offsetWidth)*0.95) + '";
  158.  
  159.     echo "<script>document.write('<img src=\"$src\">')</script>";
  160. } else {
  161.     echo $AppUI->_( "No tasks to display" );
  162. }
  163. ?>
  164.     </td>
  165. </tr>
  166. </table>
  167. <br />
  168.