folder_helper.rb 1.09 KB
module FolderHelper

  def list_articles(articles, recursive = false)
    content_tag(
      'table',
      content_tag('tr', content_tag('th', _('Title')) + content_tag('th', _('Last update'))) +
      articles.map {|item| display_article_in_listing(item, recursive, 0)}.join('')
    )
  end

  def display_article_in_listing(article, recursive = false, level = 0)
    result = content_tag(
      'tr',
      content_tag('td', link_to((' ' * (level * 4) ) + image_tag(icon_for_article(article)) + article.name, article.url))+
      content_tag('td', show_date(article.updated_at), :class => 'last-update'),
      :class => 'sitemap-item'
    )
    if recursive
      result + article.children.map {|item| display_article_in_listing(item, recursive, level + 1) }.join('')
    else
      result
    end
  end

  def icon_for_article(article)
    icon = article.icon_name
    if (icon =~ /\//)
      icon
    else
      if File.exists?(File.join(RAILS_ROOT, 'public', 'images', 'icons-mime', "#{icon}.png"))
        "icons-mime/#{icon}.png"
      else
        "icons-mime/unknown.png"
      end
    end
  end

end