今日の修正

フィルターの変更

フィルターリストの一番左につけたチェックボックスをチェックしたとき、その条件にマッチするメールを表示「しない」ように修正。
フィルター名をクリックしたときは、その条件にマッチするものだけを表示するのは、変更なし。

controllers/filter_controller.rb

  def set_filters
    select_conds_a = Array.new
    params.each_key {|key|
      puts key
      if key =~ /^select_/ && params[key]["select"] == "1"
        id = key.sub("select_", "")
        filter = Filter.find(id)
        if filter != nil
          select_conds_a << filter.conds
        end
      end
    }
    n = select_conds_a.size
    if n > 0
      select_conds = "not ("
      i = 0
      while i < n
        select_conds += select_conds_a[i]
        if i == n - 1
          select_conds += ")"
        else
          select_conds += ") and not ("
        end
        i += 1
      end
    end
    if select_conds != ""
      cookies[:filter_conds] = select_conds
    end
    redirect_to("/list/list")
  end

要は、選択条件をORでつなぐ代わりにNOTをつけてANDでつなぐようにしただけ。(ついでに、"check"という名前を"select"に変更した。)

メールサーバの設定位置の変更

ListController内でMailFetcherをnewするところにメールサーバのIPアドレスとポート番号を埋め込んであったのを、components/settings.rbにまとめた。