こんにちは。
Rails製の顧客管理システムGem、FatFreeCRMをつかった開発をしています。
FatFreeCRMはデフォルトで色々タブを用意してくれていて、CRMでよく使う「顧客」とか「決済」などは既に存在しますが、今回新たに「お知らせ」タブを追加するような場面に直面したので、実装方法をメモしておきます。
もくじ
タブの増やし方
今回はNewsタブという形で追加したいと思います。
news_controllerの作成
まずはnews_controllerを作成
# rails generate controller news
create app/controllers/news_controller.rb
invoke erb
create app/views/news
invoke test_unit
create test/controllers/news_controller_test.rb
invoke helper
create app/helpers/news_helper.rb
invoke test_unit
invoke assets
invoke coffee
create app/assets/javascripts/news.coffee
invoke scss
create app/assets/stylesheets/news.scss
routes.rbに追記
とりあえず既存のcampaignをパクって以下のような感じにしました
resources :news, id: /\d+/ do
collection do
get :advanced_search
post :filter
get :options
get :field_group
match :auto_complete, via: %i[get post]
get :redraw
get :versions
end
member do
put :attach
post :discard
post :subscribe
post :unsubscribe
get :leads
get :opportunities
end
end
setting.default.yml
setting.default.ymlの:tabsに以下を追加
- :active: false
:text: :tab_news
:icon: :fa-newspaper-o
:url:
:controller: news
- active => trueのものが活性表示される
- url => タブを押した際の遷移先
- text => 表示したい文言をja.ymlに登録しておいて表示
- icon => font-awesomeのもの
FatFreeCRMではFont AwesomeのV4を利用しています。最新のものを利用する場合には少し工夫が必要だったので、今回はおとなしくV4からアイコンを選びました。
ja.ymlにタブの日本語化テキストを追加
日本語化対応を施している場合、config/locales/ja.ymlから対応する日本語テキストを追加できます。
今回は「tab_news」を追加したのでこちらを「お知らせ」に変換してもらいましょう。
# Settings.
#--------------------------------------------------------
tab_news: お知らせ
サーバーを再起動するとsetting.default.ymlを再読み込みし、タブの追加が完了します。
お疲れ様でした。
まとめ
FatFreeCRMにおける、タブの作成方法を紹介いたしました。
今回は流石に内容がニッチすぎますかね??
導入すれば顧客管理機能を一気に実現できる便利Gemですが、作りが複雑で修正が難しいです。
[News]タブを開いた後の動きをこれから追加していきますが、ビューは標準でHamlですしファイル構造も難解なので、この先も課題は多そうです……。今回はここまで。tips溜まったらまた共有します。