Changeset 1211

Show
Ignore:
Timestamp:
2008-10-04 00:08:24 (3 months ago)
Author:
gaspard
Message:

commit 9e07b2c4d5f41adbc01e3b0d88294effd9c76210
Author: Gaspard Bucher <gaspard@teti.ch>

Ignoring coverage data in doc/coverage.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/.gitignore

    r1160 r1211  
    22config/deploy_config.rb 
    33config/database.yml 
     4doc/coverage 
    45log/ 
    56public/images/ext/*_pv.png 
  • trunk/app/helpers/application_helper.rb

    r1197 r1211  
    735735  end 
    736736   
     737  # list of page numbers links 
     738  def page_numbers(current, count, join_string = nil, max_count = nil) 
     739    max_count ||= 10 
     740    join_string ||= '' 
     741    join_str = '' 
     742    if count <= max_count 
     743      1.upto(count) do |p| 
     744        yield(p, join_str) 
     745        join_str = join_string 
     746      end 
     747    else 
     748      # only first pages (centered around current page) 
     749      if current - (max_count/2) > 0 
     750        finish = [current + (max_count/2),count].min 
     751      else 
     752        finish = [max_count,count].min 
     753      end 
     754       
     755      start  = [finish - max_count + 1,1].max 
     756       
     757      start.upto(finish) do |p| 
     758        yield(p, join_str) 
     759        join_str = join_string 
     760      end 
     761    end 
     762  end 
     763   
    737764  # main node before ajax stuff (the one in browser url) 
    738765  def start_node 
  • trunk/doc

    • Property svn:ignore set to coverage
  • trunk/lib/parser/lib/rules/zena.rb

    r1208 r1211  
    17351735      if @params[:page] 
    17361736        pagination_links 
    1737       elsif upd = @params[:update] 
    1738         return unless target = find_target(upd) 
    1739         link_to_update(target) 
    17401737      else 
    17411738        make_link 
     
    17441741     
    17451742    def make_link(options = {}) 
    1746       query_params   = options[:query_params] || {} 
     1743      query_params = options[:query_params] || {} 
    17471744      default_text = options[:default_text] 
    17481745      params = @params.dup 
     
    18061803       
    18071804      (params.keys - [:style, :class, :id, :rel, :name, :anchor, :attr, :tattr, :trans, :text, :page]).each do |k| 
     1805        next if k.to_s =~ /if_|set_/ 
    18081806        query_params[k] = params[k] 
    18091807      end 
     
    18291827            str = static ? CGI.escape(attribute) : "\#{CGI.escape(\"#{attribute}\")}" 
    18301828          end 
    1831           query_params_list << "#{k.gsub('"','')}=#{str}" 
     1829          query_params_list << "#{k.to_s.gsub('"','')}=#{str}" 
    18321830        end 
    18331831        pre_space + link_to_update(remote_target, :node_id => "#{lnode}.zip", :query_params => query_params_list, :default_text => default_text, :html_params => html_params) 
     
    18721870        @context[:vars] << "#{pagination_key}_previous" 
    18731871        out make_link(:default_text => "<%= set_#{pagination_key}_previous %>", :query_params => {pagination_key => "[#{pagination_key}_previous]"}) 
     1872        if descendant('else') 
     1873          out expand_with(:in_if => true, :only => ['else', 'elsif']) 
     1874        end 
    18741875        out "<% end -%>" 
    18751876      when 'next' 
     
    18781879        @context[:vars] << "#{pagination_key}_next" 
    18791880        out make_link(:default_text => "<%= set_#{pagination_key}_next %>", :query_params => {pagination_key => "[#{pagination_key}_next]"}) 
     1881        if descendant('else') 
     1882          out expand_with(:in_if => true, :only => ['else', 'elsif']) 
     1883        end 
    18801884        out "<% end -%>" 
    18811885      when 'list' 
    1882         # FIXME: implement page numbers (#211). 
    1883         parser_error("page numbers not implemented yet") 
     1886        @context[:vars] ||= [] 
     1887        @context[:vars] << "#{pagination_key}_page" 
     1888        if @blocks == [] || (@blocks.size == 1 && !@blocks.first.kind_of?(String) && @blocks.first.method == 'else') 
     1889          # add a default blocks 
     1890          if tag = @params[:tag] 
     1891            open_tag = "<#{tag}>" 
     1892            close_tag = "</#{tag}>" 
     1893          else 
     1894            open_tag = close_tag = '' 
     1895          end 
     1896          link_params = {} 
     1897          @params.each do |k,v| 
     1898            next if [:tag, :page, :join].include?(k) 
     1899            link_params[k] = v 
     1900          end 
     1901          text = "#{open_tag}<r:link #{params_to_html(link_params)} #{pagination_key}='[#{pagination_key}_page]' do='[#{pagination_key}_page]'/>#{close_tag}" 
     1902          @blocks = [make(:void, :method=>'void', :text=>text)] 
     1903          remove_instance_variable(:@all_descendants) 
     1904        end 
     1905         
     1906        if !descendant('else') 
     1907          @blocks += [make(:void, :method=>'void', :text=>"<r:else>#{open_tag}<r:show var='#{pagination_key}_page'/>#{close_tag}</r:else>")] 
     1908          remove_instance_variable(:@all_descendants) 
     1909        end 
     1910         
     1911        out "<% page_numbers(set_#{pagination_key}, set_#{pagination_key}_count, #{(@params[:join] || ' ').inspect}) do |set_#{pagination_key}_page, #{pagination_key}_page_join| %>" 
     1912        out "<%= #{pagination_key}_page_join %>" 
     1913        out "<% if set_#{pagination_key}_page != set_#{pagination_key} -%>" 
     1914        out render_html_tag(expand_with) 
     1915        @html_tag_done = false 
     1916        out render_html_tag(expand_with(:in_if => true, :only => ['else', 'elsif'])) 
     1917        out "<% end; end -%>" 
    18841918      else 
    18851919        parser_error("unkown 'page' option #{@params[:page].inspect} should be ('previous', 'next' or 'list')") 
     
    19321966        elsif !descendant('else') 
    19331967          @blocks += [make(:void, :method=>'void', :text=>"<r:else do='[current_date]' format='%d'/>")] 
     1968          remove_instance_variable(:@all_descendants) 
    19341969        end 
    19351970        @html_tag_done = false 
     
    29953030     
    29963031    def text_for_link(default = nil) 
    2997       if @blocks.size > 1 || (@blocks.size == 1 && !@blocks.first.kind_of?(String)) 
     3032      if @blocks.size > 1 || (@blocks.size == 1 && !(@blocks.first.kind_of?(String) || ['else','elsif'].include?(@blocks.first.method))) 
    29983033        expand_with 
    29993034      elsif default 
  • trunk/test/fixtures/files/Node-test.zafu

    r1201 r1211  
    3333    <r:link mode='test' page='previous' do='t'>previous</r:link> 
    3434    <r:show var='p'/>/<r:show var='p_count'/> 
     35    || <r:link page='list' mode='test'/> || 
    3536    <r:link mode='test' page='next' do='t'>next</r:link> 
    3637  </p> 
     
    4647    <r:link mode='test' update='pagir' page='previous' do='t'>previous</r:link> 
    4748    <r:show var='p'/>/<r:show var='p_count'/> 
     49    || <r:link page='list' update='pagir'/> || 
    4850    <r:link mode='test' update='pagir' page='next' do='t'>next</r:link> 
    4951  </p> 
  • trunk/test/helpers/application_helper_test.rb

    r1184 r1211  
    429429  end 
    430430   
     431  def test_page_numbers 
     432    s = "" 
     433    page_numbers(2, 3, ',') {|p,j| s << "#{j}#{p}"} 
     434    assert_equal "1,2,3", s 
     435    s = "" 
     436    page_numbers(2, 30, ',') {|p,j| s << "#{j}#{p}"} 
     437    assert_equal "1,2,3,4,5,6,7,8,9,10", s 
     438    s = "" 
     439    page_numbers(14, 30, ',') {|p,j| s << "#{j}#{p}"} 
     440    assert_equal "10,11,12,13,14,15,16,17,18,19", s 
     441    s = "" 
     442    page_numbers(28, 30, ' | ') {|p,j| s << "#{j}#{p}"} 
     443    assert_equal "21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30", s 
     444  end 
     445   
    431446end 
  • trunk/test/helpers/zena_parser/ajax.yml

    r1199 r1211  
    217217  src: "<div id='foo' do='block' do='nodes in site' limit='3' order='zip' paginate='pak'><r:link page='previous'/> | <r:show var='pak'/> | <r:link update='foo' page='next'/> || <r:each join=',' do='[id]'/></div>" 
    218218  res: "/<a href='/oo/projects/cleanWater/page22.html\?pak=1'>1</a> \| 2 \| .*22/zafu\?pak=3.*dom_id=foo.*>3</a>/" 
     219 
     220link_page_list: 
     221  context: 
     222    pak: 2 
     223  src: "<div id='foo' do='block' do='nodes' in='site' limit='10' order='zip' paginate='pak' do='link' page='list' update='foo' join=', '/>" 
     224  tem: "/set_pak_page != set_pak.*tag_to_remote.*pak=#.CGI.escape..#.set_pak_page.*dom_id=foo/" 
     225  res: "/pak=1.*1</a>, 2, .*pak=3.*3</a>.*pak=4.*4</a>.*pak=5.*5</a>/" 
  • trunk/test/helpers/zena_parser/basic.yml

    r1207 r1211  
    11421142  src: "<r:nodes in='site' limit='3' order='zip' paginate='pak'><r:link page='next' do='t'>next</r:link></r:nodes>" 
    11431143  res: "<a href='/oo/projects/cleanWater/page22.html?pak=2'>next</a>" 
     1144 
     1145link_page_list: 
     1146  context: 
     1147    pak: 2 
     1148  src: "<r:nodes in='site' limit='10' order='zip' paginate='pak' do='link' page='list' join=', '/>" 
     1149  tem: "/set_pak_page != set_pak.*zen_path\(@node,:pak.*elsif true.*set_pak_page/" 
     1150  res: "/<a href='.*page22.html\?pak=1'>1</a>, 2, .*pak=3'>3</a>.*pak=4'>4</a>.*pak=5'>5</a>/" 
     1151 
     1152link_page_previous_else_page1: 
     1153  src: "<r:nodes in='site' limit='3' order='zip' paginate='pak'><r:link page='previous' do='else'>noprev</r:link></r:nodes>" 
     1154  res: "noprev" 
     1155 
     1156link_page_previous_else_page2: 
     1157  context: 
     1158    pak: 2 
     1159  src: "<r:nodes in='site' limit='3' order='zip' paginate='pak'><r:link page='previous' do='else'>noprev</r:link></r:nodes>" 
     1160  res: "<a href='/oo/projects/cleanWater/page22.html?pak=1'>1</a>" 
     1161 
     1162link_page_list_else: 
     1163  context: 
     1164    pak: 2 
     1165  src: "<r:nodes in='site' limit='3' order='zip' paginate='pak'><r:link page='list' join=', ' do='else'>[<r:show var='pak'/>]</r:link></r:nodes>" 
     1166  res: "/<a.*1</a>, [2], <a.*3</a>/"