apps_helper.rb 1.54 KB
module AppsHelper
  def link_to_copy_attributes_from_other_app
    if App.count > 1
      html =  link_to('copy settings from another app', '#',
        class: 'button copy_config')
      html << select("duplicate", "app",
        App.all.asc(:name).reject { |a| a == @app }.
        collect { |p| [p.name, p.id] }, { include_blank: "[choose app]" },
        class: "choose_other_app", style: "display: none;")
      return html
    end
  end

  def any_github_repos?
    detect_any_apps_with_attributes if @any_github_repos.nil?
    @any_github_repos
  end

  def any_notification_services?
    detect_any_apps_with_attributes if @any_notification_services.present?
    @any_notification_services
  end

  def any_bitbucket_repos?
    detect_any_apps_with_attributes if @any_bitbucket_repos.nil?
    @any_bitbucket_repos
  end

  def any_issue_trackers?
    detect_any_apps_with_attributes if @any_issue_trackers.nil?
    @any_issue_trackers
  end

  def any_deploys?
    detect_any_apps_with_attributes if @any_deploys.nil?
    @any_deploys
  end

  private def detect_any_apps_with_attributes
    @any_github_repos = @any_issue_trackers = @any_deploys = @any_bitbucket_repos = @any_notification_services = false

    apps.each do |app|
      @any_github_repos          ||= app.github_repo?
      @any_bitbucket_repos       ||= app.bitbucket_repo?
      @any_issue_trackers        ||= app.issue_tracker_configured?
      @any_deploys               ||= app.last_deploy_at.present?
      @any_notification_services ||= app.notification_service_configured?
    end
  end
end