module Announcement
  OrbitApp.registration "Announcement",:type=> 'ModuleApp' do
    module_label 'announcement.announcement'
    base_url File.expand_path File.dirname(__FILE__)    

    # personal_plugin :enable => true,:path=>"panel/announcement/plugin/profile",:i18n=>'announcement.announcement'
    
    version "0.1"
    organization "Rulingcom"
    author "RD dep"
    intro "I am intro"
    update_info 'some update_info'

    front_end do
      app_page 'bulletins'  do 
        frontend_i18n "announcement.frontend.bulletins"
        style ["1","2","3"]
      end
    end

    category ["BulletinCategory"]
    data_count 3..10

    widgets do
      default_widget do
        query 'Bulletin.any_of( {deadline: nil,:postdate.lte => Time.now} , {:deadline.gte => Time.now,:postdate.lte => Time.now} )'
        enable ["typeA","typeC"]
        image :image
        field :postdate
        link_field :title,{:method => 'panel_announcement_front_end_bulletin_path',:args=>:self}
        link_field :bulletin_category_with_title,{:method => 'panel_announcement_front_end_bulletins_path',:args=>{:category_id => [:bulletin_category,:id]}}
        link_to_more 'panel_announcement_front_end_bulletins_path',:title_i18n=> 'more_plus'
      end

      categories_query 'BulletinCategory.all'
      tags_query 'AnnouncementTag.all'

      customize_widget "index" do 
        widget_i18n "announcement.widget.index"
        style ["1","2"]
      end
      # item "index","announcement.widget.index",:default_template=>true,:fields=>["title","category","postdate"]
      # item "bulletins_and_web_links","announcement.widget.bulletins_and_web_links"
    end
    
    side_bar do
      head_label_i18n  'announcement.announcement',:icon_class=>"icons-megaphone"
      available_for [:admin,:guest,:manager,:sub_manager]
      active_for_controllers ({:private=>['bulletins', 'bulletin_categorys', 'approvals','tags']})
      active_for_object_auth ['BulletinCategory'] 

      head_link_path "panel_announcement_back_end_bulletins_path"

      context_link 'announcement.all_articles',
                            :link_path=>"panel_announcement_back_end_bulletins_path" ,
                            :priority=>2,
                            :active_for_action=>{:bulletins=>:index},
                            :available_for => [:all]
      context_link 'announcement.add_new', 
                            :link_path=>"new_panel_announcement_back_end_bulletin_path" ,
                            :priority=>1,
                            :active_for_action=>{:bulletins=>:new},
                            :available_for => [:sub_manager]
      
      context_link 'announcement.categories',
                            :link_path=>"panel_announcement_back_end_bulletin_categorys_path" ,
                            :priority=>3,
                            :active_for_action=>{:bulletin_categorys=>:index},
                            :available_for => [:manager]


      context_link 'tags',
                            :link_path=>"panel_announcement_back_end_tags_path" ,
                            :priority=>4,
                            # :active_for_action=>{:bulletin_categorys=>:index},
                            :available_for => [:manager]


    # widgets do
    #   default_widget do
    #     query 'Bulletin.all'
    #     image :image
    #   end

    #   categories_query 'BulletinCategory.all'
    #   tags_query 'AnnouncementTag.all'

    #   customize_widget "index","announcement.widget.index",:fields=>["title","category","postdate"],:style=>["cu_style_1","cu_style_2","cu_style_3","cu_style_4","cu_style_5"]
    #   customize_widget "bulletins_and_web_links","announcement.widget.bulletins_and_web_links"
    #   # item "index","announcement.widget.index",:default_template=>true,:fields=>["title","category","postdate"]
    #   # item "bulletins_and_web_links","announcement.widget.bulletins_and_web_links"
    # end
    
    # side_bar do
    #   head_label_i18n  'admin.announcement',:icon_class=>"icons-megaphone"
    #   available_for [:admin,:guest,:manager,:sub_manager]
    #   active_for_controllers ({:private=>['bulletins', 'bulletin_categorys', 'approvals','tags']})
    #   active_for_object_auth ['BulletinCategory'] 

    #   head_link_path "panel_announcement_back_end_bulletins_path"

    #   context_link 'announcement.all_articles',
    #                         :link_path=>"panel_announcement_back_end_bulletins_path" ,
    #                         :priority=>1,
    #                         :active_for_action=>{:bulletins=>:index},
    #                         :available_for => [:all]

    #   context_link 'announcement.add_new', 
    #                         :link_path=>"new_panel_announcement_back_end_bulletin_path" ,
    #                         :priority=>2,
    #                         :active_for_action=>{:bulletins=>:new},
    #                         :available_for => [:sub_manager]
      
    #   context_link 'announcement.categories',
    #                         :link_path=>"panel_announcement_back_end_bulletin_categorys_path" ,
    #                         :priority=>3,
    #                         :active_for_action=>{:bulletin_categorys=>:index},
    #                         :available_for => [:manager]

    #   context_link 'tags',
    #                         :link_path=>"panel_announcement_back_end_tags_path" ,
    #                         :priority=>4,
    #                         # :active_for_action=>{:bulletin_categorys=>:index},
    #                         :available_for => [:manager]

      context_link 'announcement.approval_setting',
                            :link_path=>"panel_announcement_back_end_approval_setting_path" ,
                            :priority=>5,
                            :active_for_action=>{:approvals=>:setting},
                            :active_for_object_auth => 'BulletinCategory',
                            :available_for => [:manager]

      context_link 'module_authorization',
                            :link_path=>"admin_module_app_manager_auth_proc_path(ModuleApp.first(conditions: {title: 'Announcement'}))",
                            :priority=>6,
                            :active_for_app_auth => 'Announcement'
    end
  end
end