| 517 | 
  517 | 
  
            pdf.AddPage("L")
   | 
  | 518 | 
  518 | 
  
            pdf.SetFontStyle('B',12)
   | 
  | 519 | 
  519 | 
  
            pdf.SetX(15) 
   | 
  | 520 | 
   | 
  
            pdf.Cell(PDF::LeftPaneWidth, 20, project.to_s) 
   | 
   | 
  520 | 
  
            pdf.UTF8Cell(PDF::LeftPaneWidth, 20, project.to_s) 
   | 
  | 521 | 
  521 | 
  
            pdf.Ln 
   | 
  | 522 | 
  522 | 
  
            pdf.SetFontStyle('B',9)
   | 
  | 523 | 
  523 | 
  
             
   | 
  | ... | ... |  | 
  | 552 | 
  552 | 
  
              width = ((month_f >> 1) - month_f) * zoom  
   | 
  | 553 | 
  553 | 
  
              pdf.SetY(y_start) 
   | 
  | 554 | 
  554 | 
  
              pdf.SetX(left) 
   | 
  | 555 | 
   | 
  
              pdf.Cell(width, height, "#{month_f.year}-#{month_f.month}", "LTR", 0, "C")
   | 
   | 
  555 | 
  
              pdf.UTF8Cell(width, height, "#{month_f.year}-#{month_f.month}", "LTR", 0, "C")
   | 
  | 556 | 
  556 | 
  
              left = left + width 
   | 
  | 557 | 
  557 | 
  
              month_f = month_f >> 1 
   | 
  | 558 | 
  558 | 
  
            end   
   | 
  | ... | ... |  | 
  | 570 | 
  570 | 
  
                width = (7 - self.date_from.cwday + 1) * zoom-1 
   | 
  | 571 | 
  571 | 
  
                pdf.SetY(y_start + header_heigth) 
   | 
  | 572 | 
  572 | 
  
                pdf.SetX(left) 
   | 
  | 573 | 
   | 
  
                pdf.Cell(width + 1, height, "", "LTR") 
   | 
   | 
  573 | 
  
                pdf.UTF8Cell(width + 1, height, "", "LTR") 
   | 
  | 574 | 
  574 | 
  
                left = left + width+1 
   | 
  | 575 | 
  575 | 
  
              end 
   | 
  | 576 | 
  576 | 
  
              while week_f <= self.date_to 
   | 
  | 577 | 
  577 | 
  
                width = (week_f + 6 <= self.date_to) ? 7 * zoom : (self.date_to - week_f + 1) * zoom 
   | 
  | 578 | 
  578 | 
  
                pdf.SetY(y_start + header_heigth) 
   | 
  | 579 | 
  579 | 
  
                pdf.SetX(left) 
   | 
  | 580 | 
   | 
  
                pdf.Cell(width, height, (width >= 5 ? week_f.cweek.to_s : ""), "LTR", 0, "C") 
   | 
   | 
  580 | 
  
                pdf.UTF8Cell(width, height, (width >= 5 ? week_f.cweek.to_s : ""), "LTR", 0, "C") 
   | 
  | 581 | 
  581 | 
  
                left = left + width 
   | 
  | 582 | 
  582 | 
  
                week_f = week_f+7 
   | 
  | 583 | 
  583 | 
  
              end 
   | 
  | ... | ... |  | 
  | 593 | 
  593 | 
  
                width = zoom 
   | 
  | 594 | 
  594 | 
  
                pdf.SetY(y_start + 2 * header_heigth) 
   | 
  | 595 | 
  595 | 
  
                pdf.SetX(left) 
   | 
  | 596 | 
   | 
  
                pdf.Cell(width, height, day_name(wday).first, "LTR", 0, "C") 
   | 
   | 
  596 | 
  
                pdf.UTF8Cell(width, height, day_name(wday).first, "LTR", 0, "C") 
   | 
  | 597 | 
  597 | 
  
                left = left + width 
   | 
  | 598 | 
  598 | 
  
                wday = wday + 1 
   | 
  | 599 | 
  599 | 
  
                wday = 1 if wday > 7 
   | 
  | ... | ... |  | 
  | 602 | 
  602 | 
  
             
   | 
  | 603 | 
  603 | 
  
            pdf.SetY(y_start) 
   | 
  | 604 | 
  604 | 
  
            pdf.SetX(15) 
   | 
  | 605 | 
   | 
  
            pdf.Cell(subject_width+g_width-15, headers_heigth, "", 1) 
   | 
   | 
  605 | 
  
            pdf.UTF8Cell(subject_width+g_width-15, headers_heigth, "", 1) 
   | 
  | 606 | 
  606 | 
  
             
   | 
  | 607 | 
  607 | 
  
            # Tasks 
   | 
  | 608 | 
  608 | 
  
            top = headers_heigth + y_start 
   | 
  | ... | ... |  | 
  | 722 | 
  722 | 
  
            params[:pdf].SetX(15) 
   | 
  | 723 | 
  723 | 
  
             
   | 
  | 724 | 
  724 | 
  
            char_limit = PDF::MaxCharactorsForSubject - params[:indent] 
   | 
  | 725 | 
   | 
  
            params[:pdf].Cell(params[:subject_width]-15, 5, (" " * params[:indent]) +  subject.to_s.sub(/^(.{#{char_limit}}[^\s]*\s).*$/, '\1 (...)'), "LR")
   | 
   | 
  725 | 
  
            params[:pdf].UTF8Cell(params[:subject_width]-15, 5, (" " * params[:indent]) +  subject.to_s.sub(/^(.{#{char_limit}}[^\s]*\s).*$/, '\1 (...)'), "LR")
   | 
  | 726 | 
  726 | 
  
           
   | 
  | 727 | 
  727 | 
  
            params[:pdf].SetY(params[:top]) 
   | 
  | 728 | 
  728 | 
  
            params[:pdf].SetX(params[:subject_width]) 
   | 
  | 729 | 
   | 
  
            params[:pdf].Cell(params[:g_width], 5, "", "LR") 
   | 
   | 
  729 | 
  
            params[:pdf].UTF8Cell(params[:g_width], 5, "", "LR") 
   | 
  | 730 | 
  730 | 
  
          end 
   | 
  | 731 | 
  731 | 
  
           
   | 
  | 732 | 
  732 | 
  
          def image_subject(params, subject, options={})
   | 
  | ... | ... |  | 
  | 783 | 
  783 | 
  
              params[:pdf].SetY(params[:top]+1.5) 
   | 
  | 784 | 
  784 | 
  
              params[:pdf].SetX(params[:subject_width] + coords[:bar_start]) 
   | 
  | 785 | 
  785 | 
  
              params[:pdf].SetFillColor(200,200,200) 
   | 
  | 786 | 
   | 
  
              params[:pdf].Cell(coords[:bar_end] - coords[:bar_start], height, "", 0, 0, "", 1) 
   | 
   | 
  786 | 
  
              params[:pdf].UTF8Cell(coords[:bar_end] - coords[:bar_start], height, "", 0, 0, "", 1) 
   | 
  | 787 | 
  787 | 
  
                 
   | 
  | 788 | 
  788 | 
  
              if coords[:bar_late_end] 
   | 
  | 789 | 
  789 | 
  
                params[:pdf].SetY(params[:top]+1.5) 
   | 
  | 790 | 
  790 | 
  
                params[:pdf].SetX(params[:subject_width] + coords[:bar_start]) 
   | 
  | 791 | 
  791 | 
  
                params[:pdf].SetFillColor(255,100,100) 
   | 
  | 792 | 
   | 
  
                params[:pdf].Cell(coords[:bar_late_end] - coords[:bar_start], height, "", 0, 0, "", 1) 
   | 
   | 
  792 | 
  
                params[:pdf].UTF8Cell(coords[:bar_late_end] - coords[:bar_start], height, "", 0, 0, "", 1) 
   | 
  | 793 | 
  793 | 
  
              end 
   | 
  | 794 | 
  794 | 
  
              if coords[:bar_progress_end] 
   | 
  | 795 | 
  795 | 
  
                params[:pdf].SetY(params[:top]+1.5) 
   | 
  | 796 | 
  796 | 
  
                params[:pdf].SetX(params[:subject_width] + coords[:bar_start]) 
   | 
  | 797 | 
  797 | 
  
                params[:pdf].SetFillColor(90,200,90) 
   | 
  | 798 | 
   | 
  
                params[:pdf].Cell(coords[:bar_progress_end] - coords[:bar_start], height, "", 0, 0, "", 1) 
   | 
   | 
  798 | 
  
                params[:pdf].UTF8Cell(coords[:bar_progress_end] - coords[:bar_start], height, "", 0, 0, "", 1) 
   | 
  | 799 | 
  799 | 
  
              end 
   | 
  | 800 | 
  800 | 
  
            end 
   | 
  | 801 | 
  801 | 
  
            # Renders the markers 
   | 
  | ... | ... |  | 
  | 804 | 
  804 | 
  
                params[:pdf].SetY(params[:top] + 1) 
   | 
  | 805 | 
  805 | 
  
                params[:pdf].SetX(params[:subject_width] + coords[:start] - 1) 
   | 
  | 806 | 
  806 | 
  
                params[:pdf].SetFillColor(50,50,200) 
   | 
  | 807 | 
   | 
  
                params[:pdf].Cell(2, 2, "", 0, 0, "", 1)  
   | 
   | 
  807 | 
  
                params[:pdf].UTF8Cell(2, 2, "", 0, 0, "", 1)  
   | 
  | 808 | 
  808 | 
  
              end 
   | 
  | 809 | 
  809 | 
  
              if coords[:end] 
   | 
  | 810 | 
  810 | 
  
                params[:pdf].SetY(params[:top] + 1) 
   | 
  | 811 | 
  811 | 
  
                params[:pdf].SetX(params[:subject_width] + coords[:end] - 1) 
   | 
  | 812 | 
  812 | 
  
                params[:pdf].SetFillColor(50,50,200) 
   | 
  | 813 | 
   | 
  
                params[:pdf].Cell(2, 2, "", 0, 0, "", 1)  
   | 
   | 
  813 | 
  
                params[:pdf].UTF8Cell(2, 2, "", 0, 0, "", 1)  
   | 
  | 814 | 
  814 | 
  
              end 
   | 
  | 815 | 
  815 | 
  
            end 
   | 
  | 816 | 
  816 | 
  
            # Renders the label on the right 
   | 
  | 817 | 
  817 | 
  
            if options[:label] 
   | 
  | 818 | 
  818 | 
  
              params[:pdf].SetX(params[:subject_width] + (coords[:bar_end] || 0) + 5) 
   | 
  | 819 | 
   | 
  
              params[:pdf].Cell(30, 2, options[:label]) 
   | 
   | 
  819 | 
  
              params[:pdf].UTF8Cell(30, 2, options[:label]) 
   | 
  | 820 | 
  820 | 
  
            end 
   | 
  | 821 | 
  821 | 
  
          end 
   | 
  | 822 | 
  822 | 
  
    
   |