From b8f52fa1ecfd29bac9d88f2721a40e13faccc289 Mon Sep 17 00:00:00 2001
From: Christophe Vilayphiou
Date: Mon, 30 Apr 2012 06:27:38 +0800
Subject: [PATCH] Separate announcement and news
---
.../admin/page_parts_controller.rb | 6 +-
app/controllers/admin/pages_controller.rb | 13 +-
app/controllers/pages_controller.rb | 12 +-
app/helpers/orbit_backend_helper.rb | 4 +-
.../page_parts/_widget_categories.html.erb | 2 +-
app/views/admin/pages/_form.html.erb | 2 +-
app/views/layouts/_side_bar.html.erb | 12 +
lib/parsers/parser_front_end.rb | 15 +-
.../front_end/bulletins_controller.rb | 4 +-
.../widget/bulletins_controller.rb | 9 +-
.../bulletins/bulletins_side_bar.html.erb | 25 ++
.../announcement/config/locales/en.yml | 3 +
.../announcement/config/locales/zh_tw.yml | 3 +-
.../announcement/config/routes.rb | 1 +
vendor/built_in_modules/news/.gitignore | 6 +
vendor/built_in_modules/news/Gemfile | 17 +
vendor/built_in_modules/news/MIT-LICENSE | 20 +
vendor/built_in_modules/news/README.rdoc | 3 +
vendor/built_in_modules/news/Rakefile | 39 ++
.../app/assets/images/announcement/.gitkeep | 0
.../app/assets/javascripts/module_widget.js | 9 +
.../news/app/assets/javascripts/news_link.js | 45 ++
.../assets/stylesheets/announcement/.gitkeep | 0
.../news/app/controllers/.gitkeep | 0
.../app/controllers/application_controller.rb | 23 +
.../back_end/news_approvals_controller.rb | 41 ++
.../news_bulletin_categorys_controller.rb | 118 +++++
.../news_bulletin_files_controller.rb | 48 +++
.../news_bulletin_links_controller.rb | 49 +++
.../back_end/news_bulletins_controller.rb | 408 ++++++++++++++++++
.../panel/news/back_end/tags_controller.rb | 8 +
.../front_end/news_bulletins_controller.rb | 38 ++
.../news/widget/news_bulletins_controller.rb | 58 +++
.../news/app/helpers/.gitkeep | 0
.../news/app/mailers/.gitkeep | 0
.../built_in_modules/news/app/models/.gitkeep | 0
.../news/app/models/news_bulletin.rb | 182 ++++++++
.../news/app/models/news_bulletin_category.rb | 25 ++
.../news/app/models/news_bulletin_file.rb | 40 ++
.../news/app/models/news_bulletin_link.rb | 15 +
.../news/app/models/news_tag.rb | 11 +
.../built_in_modules/news/app/views/.gitkeep | 0
.../back_end/fact_checks/setting.html.erb | 46 ++
.../_list_table.html.erb.can_del | 15 +
.../news_approvals/_privilege_user.html.erb | 26 ++
.../news_approvals/index.html.erb.can_del | 50 +++
.../back_end/news_approvals/setting.html.erb | 40 ++
.../back_end/news_approvals/setting.js.erb | 1 +
.../news_bulletin_categorys/_form.html.erb | 37 ++
.../_news_bulletin_category.html.erb | 15 +
.../_quick_edit_qe.html.erb | 28 ++
.../news_bulletin_categorys/create.js.erb | 2 +
.../news_bulletin_categorys/destroy.js.erb | 1 +
.../news_bulletin_categorys/edit.html.erb | 7 +
.../news_bulletin_categorys/edit.js.erb | 1 +
.../news_bulletin_categorys/index.html.erb | 23 +
.../news_bulletin_categorys/new.html.erb | 19 +
.../news_bulletin_categorys/new.js.erb | 1 +
.../news_bulletin_categorys/update.js.erb | 4 +
.../news_bulletins/_clear_filters.html.erb | 3 +
.../back_end/news_bulletins/_file.html.erb | 37 ++
.../back_end/news_bulletins/_filter.html.erb | 37 ++
.../_filter_categories.html.erb | 6 +
.../news_bulletins/_filter_status.html.erb | 9 +
.../news_bulletins/_filter_tags.html.erb | 6 +
.../back_end/news_bulletins/_form.html.erb | 310 +++++++++++++
.../_form_news_bulletin_file.html.erb | 72 ++++
.../_form_news_bulletin_link.html.erb | 47 ++
.../_list_news_bulletin_file.html.erb | 22 +
.../_list_news_bulletin_link.html.erb | 15 +
.../news_bulletins/_news_bulletin.html.erb | 67 +++
.../_news_bulletin_file_qe.html.erb | 51 +++
.../_news_bulletin_link_qe.html.erb | 36 ++
.../news_bulletins/_news_bulletins.html.erb | 15 +
.../news_bulletins/_quick_edit.html.erb | 10 +
.../news_bulletins/_quick_edit_basic.html.erb | 62 +++
.../news_bulletins/_quick_edit_files.html.erb | 26 ++
.../news_bulletins/_quick_edit_links.html.erb | 27 ++
.../_quick_edit_picture.html.erb | 25 ++
.../news_bulletins/_quick_edit_tags.html.erb | 14 +
.../news_bulletins/_sort_headers.html.erb | 7 +
.../create_news_bulletin_file.js.erb | 2 +
.../create_news_bulletin_link.js.erb | 2 +
.../back_end/news_bulletins/destroy.js.erb | 1 +
.../back_end/news_bulletins/edit.html.erb | 10 +
.../news_bulletins/file_quick_add.js.erb | 1 +
.../news_bulletins/file_quick_edit.js.erb | 1 +
.../back_end/news_bulletins/index.html.erb | 31 ++
.../news/back_end/news_bulletins/index.js.erb | 7 +
.../news_bulletins/link_quick_add.js.erb | 1 +
.../news_bulletins/link_quick_edit.js.erb | 1 +
.../news_bulletins/load_quick_edit.js.erb | 2 +
.../news/back_end/news_bulletins/new.html.erb | 5 +
.../back_end/news_bulletins/show.html.erb | 49 +++
.../news_bulletins/toggle_enable.js.erb | 3 +
.../update_news_bulletin_file.js.erb | 2 +
.../update_news_bulletin_link.js.erb | 2 +
.../front_end/news_bulletins/index.html.erb | 33 ++
.../front_end/news_bulletins/show.html.erb | 71 +++
.../news_bulletins/_news_bulletins.html.erb | 10 +
.../news/widget/news_bulletins/_tag.html.erb | 3 +
.../widget/news_bulletins/_web_links.html.erb | 10 +
.../news/widget/news_bulletins/index.html.erb | 20 +
.../news_bulletins_and_web_links.html.erb | 19 +
.../news_bulletins_and_web_links.js.erb | 3 +
.../news_bulletins_list.html.erb | 31 ++
.../news_bulletins_side_bar.html.erb | 25 ++
.../reload_news_bulletins.js.erb | 1 +
.../news_bulletins/reload_web_links.js.erb | 1 +
.../news/config/locales/en.yml | 181 ++++++++
.../news/config/locales/zh_tw.yml | 382 ++++++++++++++++
vendor/built_in_modules/news/config/routes.rb | 45 ++
vendor/built_in_modules/news/lib/news.rb | 4 +
.../built_in_modules/news/lib/news/engine.rb | 4 +
.../built_in_modules/news/lib/news/version.rb | 3 +
vendor/built_in_modules/news/news.gemspec | 23 +
vendor/built_in_modules/news/news.json | 12 +
vendor/built_in_modules/news/script/rails | 6 +
.../built_in_modules/news/test/dummy/Rakefile | 7 +
.../app/assets/javascripts/application.js | 9 +
.../app/assets/stylesheets/application.css | 7 +
.../app/controllers/application_controller.rb | 3 +
.../dummy/app/helpers/application_helper.rb | 2 +
.../news/test/dummy/app/mailers/.gitkeep | 0
.../news/test/dummy/app/models/.gitkeep | 0
.../app/views/layouts/application.html.erb | 14 +
.../news/test/dummy/config.ru | 4 +
.../news/test/dummy/config/application.rb | 45 ++
.../news/test/dummy/config/boot.rb | 10 +
.../news/test/dummy/config/database.yml | 25 ++
.../news/test/dummy/config/environment.rb | 5 +
.../dummy/config/environments/development.rb | 30 ++
.../dummy/config/environments/production.rb | 60 +++
.../test/dummy/config/environments/test.rb | 39 ++
.../initializers/backtrace_silencers.rb | 7 +
.../dummy/config/initializers/inflections.rb | 10 +
.../dummy/config/initializers/mime_types.rb | 5 +
.../dummy/config/initializers/secret_token.rb | 7 +
.../config/initializers/session_store.rb | 8 +
.../config/initializers/wrap_parameters.rb | 14 +
.../news/test/dummy/config/locales/en.yml | 5 +
.../news/test/dummy/config/routes.rb | 58 +++
.../news/test/dummy/lib/assets/.gitkeep | 0
.../news/test/dummy/log/.gitkeep | 0
.../news/test/dummy/public/404.html | 26 ++
.../news/test/dummy/public/422.html | 26 ++
.../news/test/dummy/public/500.html | 26 ++
.../news/test/dummy/public/favicon.ico | 0
.../news/test/dummy/script/rails | 6 +
.../news/test/integration/navigation_test.rb | 10 +
.../built_in_modules/news/test/news_test.rb | 7 +
.../built_in_modules/news/test/test_helper.rb | 10 +
152 files changed, 4008 insertions(+), 18 deletions(-)
create mode 100644 vendor/built_in_modules/announcement/app/views/panel/announcement/widget/bulletins/bulletins_side_bar.html.erb
create mode 100644 vendor/built_in_modules/news/.gitignore
create mode 100644 vendor/built_in_modules/news/Gemfile
create mode 100644 vendor/built_in_modules/news/MIT-LICENSE
create mode 100644 vendor/built_in_modules/news/README.rdoc
create mode 100644 vendor/built_in_modules/news/Rakefile
create mode 100644 vendor/built_in_modules/news/app/assets/images/announcement/.gitkeep
create mode 100644 vendor/built_in_modules/news/app/assets/javascripts/module_widget.js
create mode 100644 vendor/built_in_modules/news/app/assets/javascripts/news_link.js
create mode 100644 vendor/built_in_modules/news/app/assets/stylesheets/announcement/.gitkeep
create mode 100644 vendor/built_in_modules/news/app/controllers/.gitkeep
create mode 100644 vendor/built_in_modules/news/app/controllers/application_controller.rb
create mode 100644 vendor/built_in_modules/news/app/controllers/panel/news/back_end/news_approvals_controller.rb
create mode 100644 vendor/built_in_modules/news/app/controllers/panel/news/back_end/news_bulletin_categorys_controller.rb
create mode 100644 vendor/built_in_modules/news/app/controllers/panel/news/back_end/news_bulletin_files_controller.rb
create mode 100644 vendor/built_in_modules/news/app/controllers/panel/news/back_end/news_bulletin_links_controller.rb
create mode 100644 vendor/built_in_modules/news/app/controllers/panel/news/back_end/news_bulletins_controller.rb
create mode 100644 vendor/built_in_modules/news/app/controllers/panel/news/back_end/tags_controller.rb
create mode 100644 vendor/built_in_modules/news/app/controllers/panel/news/front_end/news_bulletins_controller.rb
create mode 100644 vendor/built_in_modules/news/app/controllers/panel/news/widget/news_bulletins_controller.rb
create mode 100644 vendor/built_in_modules/news/app/helpers/.gitkeep
create mode 100644 vendor/built_in_modules/news/app/mailers/.gitkeep
create mode 100644 vendor/built_in_modules/news/app/models/.gitkeep
create mode 100644 vendor/built_in_modules/news/app/models/news_bulletin.rb
create mode 100644 vendor/built_in_modules/news/app/models/news_bulletin_category.rb
create mode 100644 vendor/built_in_modules/news/app/models/news_bulletin_file.rb
create mode 100644 vendor/built_in_modules/news/app/models/news_bulletin_link.rb
create mode 100644 vendor/built_in_modules/news/app/models/news_tag.rb
create mode 100644 vendor/built_in_modules/news/app/views/.gitkeep
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/back_end/fact_checks/setting.html.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/back_end/news_approvals/_list_table.html.erb.can_del
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/back_end/news_approvals/_privilege_user.html.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/back_end/news_approvals/index.html.erb.can_del
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/back_end/news_approvals/setting.html.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/back_end/news_approvals/setting.js.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletin_categorys/_form.html.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletin_categorys/_news_bulletin_category.html.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletin_categorys/_quick_edit_qe.html.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletin_categorys/create.js.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletin_categorys/destroy.js.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletin_categorys/edit.html.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletin_categorys/edit.js.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletin_categorys/index.html.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletin_categorys/new.html.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletin_categorys/new.js.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletin_categorys/update.js.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_clear_filters.html.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_file.html.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_filter.html.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_filter_categories.html.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_filter_status.html.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_filter_tags.html.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_form.html.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_form_news_bulletin_file.html.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_form_news_bulletin_link.html.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_list_news_bulletin_file.html.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_list_news_bulletin_link.html.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_news_bulletin.html.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_news_bulletin_file_qe.html.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_news_bulletin_link_qe.html.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_news_bulletins.html.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_quick_edit.html.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_quick_edit_basic.html.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_quick_edit_files.html.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_quick_edit_links.html.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_quick_edit_picture.html.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_quick_edit_tags.html.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_sort_headers.html.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/create_news_bulletin_file.js.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/create_news_bulletin_link.js.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/destroy.js.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/edit.html.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/file_quick_add.js.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/file_quick_edit.js.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/index.html.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/index.js.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/link_quick_add.js.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/link_quick_edit.js.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/load_quick_edit.js.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/new.html.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/show.html.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/toggle_enable.js.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/update_news_bulletin_file.js.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/update_news_bulletin_link.js.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/front_end/news_bulletins/index.html.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/front_end/news_bulletins/show.html.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/widget/news_bulletins/_news_bulletins.html.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/widget/news_bulletins/_tag.html.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/widget/news_bulletins/_web_links.html.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/widget/news_bulletins/index.html.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/widget/news_bulletins/news_bulletins_and_web_links.html.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/widget/news_bulletins/news_bulletins_and_web_links.js.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/widget/news_bulletins/news_bulletins_list.html.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/widget/news_bulletins/news_bulletins_side_bar.html.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/widget/news_bulletins/reload_news_bulletins.js.erb
create mode 100644 vendor/built_in_modules/news/app/views/panel/news/widget/news_bulletins/reload_web_links.js.erb
create mode 100644 vendor/built_in_modules/news/config/locales/en.yml
create mode 100644 vendor/built_in_modules/news/config/locales/zh_tw.yml
create mode 100644 vendor/built_in_modules/news/config/routes.rb
create mode 100644 vendor/built_in_modules/news/lib/news.rb
create mode 100644 vendor/built_in_modules/news/lib/news/engine.rb
create mode 100644 vendor/built_in_modules/news/lib/news/version.rb
create mode 100644 vendor/built_in_modules/news/news.gemspec
create mode 100644 vendor/built_in_modules/news/news.json
create mode 100644 vendor/built_in_modules/news/script/rails
create mode 100644 vendor/built_in_modules/news/test/dummy/Rakefile
create mode 100644 vendor/built_in_modules/news/test/dummy/app/assets/javascripts/application.js
create mode 100644 vendor/built_in_modules/news/test/dummy/app/assets/stylesheets/application.css
create mode 100644 vendor/built_in_modules/news/test/dummy/app/controllers/application_controller.rb
create mode 100644 vendor/built_in_modules/news/test/dummy/app/helpers/application_helper.rb
create mode 100644 vendor/built_in_modules/news/test/dummy/app/mailers/.gitkeep
create mode 100644 vendor/built_in_modules/news/test/dummy/app/models/.gitkeep
create mode 100644 vendor/built_in_modules/news/test/dummy/app/views/layouts/application.html.erb
create mode 100644 vendor/built_in_modules/news/test/dummy/config.ru
create mode 100644 vendor/built_in_modules/news/test/dummy/config/application.rb
create mode 100644 vendor/built_in_modules/news/test/dummy/config/boot.rb
create mode 100644 vendor/built_in_modules/news/test/dummy/config/database.yml
create mode 100644 vendor/built_in_modules/news/test/dummy/config/environment.rb
create mode 100644 vendor/built_in_modules/news/test/dummy/config/environments/development.rb
create mode 100644 vendor/built_in_modules/news/test/dummy/config/environments/production.rb
create mode 100644 vendor/built_in_modules/news/test/dummy/config/environments/test.rb
create mode 100644 vendor/built_in_modules/news/test/dummy/config/initializers/backtrace_silencers.rb
create mode 100644 vendor/built_in_modules/news/test/dummy/config/initializers/inflections.rb
create mode 100644 vendor/built_in_modules/news/test/dummy/config/initializers/mime_types.rb
create mode 100644 vendor/built_in_modules/news/test/dummy/config/initializers/secret_token.rb
create mode 100644 vendor/built_in_modules/news/test/dummy/config/initializers/session_store.rb
create mode 100644 vendor/built_in_modules/news/test/dummy/config/initializers/wrap_parameters.rb
create mode 100644 vendor/built_in_modules/news/test/dummy/config/locales/en.yml
create mode 100644 vendor/built_in_modules/news/test/dummy/config/routes.rb
create mode 100644 vendor/built_in_modules/news/test/dummy/lib/assets/.gitkeep
create mode 100644 vendor/built_in_modules/news/test/dummy/log/.gitkeep
create mode 100644 vendor/built_in_modules/news/test/dummy/public/404.html
create mode 100644 vendor/built_in_modules/news/test/dummy/public/422.html
create mode 100644 vendor/built_in_modules/news/test/dummy/public/500.html
create mode 100644 vendor/built_in_modules/news/test/dummy/public/favicon.ico
create mode 100644 vendor/built_in_modules/news/test/dummy/script/rails
create mode 100644 vendor/built_in_modules/news/test/integration/navigation_test.rb
create mode 100644 vendor/built_in_modules/news/test/news_test.rb
create mode 100644 vendor/built_in_modules/news/test/test_helper.rb
diff --git a/app/controllers/admin/page_parts_controller.rb b/app/controllers/admin/page_parts_controller.rb
index 4558cb03..600a289b 100644
--- a/app/controllers/admin/page_parts_controller.rb
+++ b/app/controllers/admin/page_parts_controller.rb
@@ -27,8 +27,10 @@ class Admin::PagePartsController < ApplicationController
@r_tag = @part.public_r_tag.blank? ? LIST[:public_r_tags][0] : @part.public_r_tag
@tag_objects = @r_tag.classify.constantize.all rescue nil
case @module_app.key
- when 'bulletin'
+ when 'announcement'
@categories = BulletinCategory.all
+ when 'news'
+ @categories = NewsBulletinCategory.all
when 'web_resource'
@categories = WebLinkCategory.all
end
@@ -67,6 +69,8 @@ class Admin::PagePartsController < ApplicationController
case @module_app.key
when 'announcement'
@categories = BulletinCategory.all
+ when 'news'
+ @categories = NewsBulletinCategory.all
when 'web_resource'
@categories = WebLinkCategory.all
end
diff --git a/app/controllers/admin/pages_controller.rb b/app/controllers/admin/pages_controller.rb
index 411297ce..65754319 100644
--- a/app/controllers/admin/pages_controller.rb
+++ b/app/controllers/admin/pages_controller.rb
@@ -31,7 +31,18 @@ class Admin::PagesController < ApplicationController
@designs = Design.all.entries
@design = @item.design ? @item.design : @designs.first
@app_frontend_urls = @item.module_app.app_pages if @item.module_app
- @categories = BulletinCategory.all if @item.module_app && @item.module_app.key.eql?('announcement')
+ if @item.module_app
+ case @item.module_app.key
+ when 'announcement'
+ @categories = BulletinCategory.all
+ when 'news'
+ @categories = NewsBulletinCategory.all
+ when 'web_resource'
+ @categories = WebLinkCategory.all
+ end
+ else
+ @categories = nil
+ end
end
def create
diff --git a/app/controllers/pages_controller.rb b/app/controllers/pages_controller.rb
index 4860ea2e..8e9f8bb6 100644
--- a/app/controllers/pages_controller.rb
+++ b/app/controllers/pages_controller.rb
@@ -33,9 +33,9 @@ class PagesController < ApplicationController
def index_from_link
if params[:page]
- redirect_to "/#{@item.full_name}?page=#{params[:page]}"
+ redirect_to "/#{@item.full_name}?page=#{params[:page]}&category_id=#{params[:category_id]}&tag_id=#{params[:tag_id]}"
else
- redirect_to "/#{@item.full_name}"
+ redirect_to "/#{@item.full_name}?category_id=#{params[:category_id]}&tag_id=#{params[:tag_id]}"
end
end
@@ -51,11 +51,11 @@ class PagesController < ApplicationController
def get_item
module_app = ModuleApp.first(:conditions => {:key => params[:app_name]})
- if params[:category_id]
- @item = Item.first(:conditions => {:module_app_id => module_app.id, :app_frontend_url => params[:app_action], :category => params[:category_id]})
- else
+ # if params[:category_id]
+ # @item = Item.first(:conditions => {:module_app_id => module_app.id, :app_frontend_url => params[:app_action], :category => params[:category_id]})
+ # else
@item = Item.first(:conditions => {:module_app_id => module_app.id, :app_frontend_url => params[:app_action]})
- end
+ # end
end
end
diff --git a/app/helpers/orbit_backend_helper.rb b/app/helpers/orbit_backend_helper.rb
index c5f32cbb..b0da6df6 100644
--- a/app/helpers/orbit_backend_helper.rb
+++ b/app/helpers/orbit_backend_helper.rb
@@ -25,8 +25,8 @@ module OrbitBackendHelper
content_tag :thead do
content_tag :tr, :class => "sort-header" do
concat (content_tag :th, :class => "span1 strong" do
- check_box_tag :check_all
- link_to content_tag(:i, nil, :class => "icon-trash"), '#', :class => "list-remove"
+ concat check_box_tag :check_all
+ concat link_to content_tag(:i, nil, :class => "icon-trash"), '#', :class => "list-remove"
end) if delete_all
titles.each do |title|
concat render_title(title[0], title[1], title[2], title[3])
diff --git a/app/views/admin/page_parts/_widget_categories.html.erb b/app/views/admin/page_parts/_widget_categories.html.erb
index ce037d39..60659036 100644
--- a/app/views/admin/page_parts/_widget_categories.html.erb
+++ b/app/views/admin/page_parts/_widget_categories.html.erb
@@ -1 +1 @@
- <%= select 'page_part', 'category', @categories.collect{|category| [category.i18n_variable[I18n.locale], category.id]}, :selected => (@part ? @part[:category] : nil) if @categories && @categories.size > 0 %>
\ No newline at end of file
+ <%= select 'page_part', 'category', @categories.collect{|category| [category.i18n_variable[I18n.locale], category.id]}, :selected => (@part ? @part[:category] : nil), :include_blank => true if @categories && @categories.size > 0 %>
\ No newline at end of file
diff --git a/app/views/admin/pages/_form.html.erb b/app/views/admin/pages/_form.html.erb
index 6c211d01..5271af8f 100644
--- a/app/views/admin/pages/_form.html.erb
+++ b/app/views/admin/pages/_form.html.erb
@@ -27,7 +27,7 @@
<%= t('admin.module_app') %>
<%= render :partial => "app_selector", :locals => { :f => f } %>
<%= select('page','app_frontend_url', @app_frontend_urls, :selected => @item.app_frontend_url ) rescue ''%>
- <%= select('page','category', @categories.collect{|category| [category.i18n_variable[I18n.locale], category.id]}, :selected => @item[:category] ) rescue ''%>
+ <%= select('page','category', @categories.collect{|category| [category.i18n_variable[I18n.locale], category.id]}, :selected => @item[:category], :include_blank => true ) rescue ''%>
<%= f.label :is_published, "#{t('admin.is_published')} ?" %>
diff --git a/app/views/layouts/_side_bar.html.erb b/app/views/layouts/_side_bar.html.erb
index 6fde1f2b..3b0b3dcd 100644
--- a/app/views/layouts/_side_bar.html.erb
+++ b/app/views/layouts/_side_bar.html.erb
@@ -16,6 +16,18 @@
<% end -%>
+<%= content_tag :li, :class => active_for_controllers('news_bulletins', '/panel/news/back_end/tags', 'news_bulletin_categorys', 'news_approvals') do -%>
+ <%= link_to content_tag(:i, nil, :class => 'icons-announcement') + t('admin.news'), panel_news_back_end_news_bulletins_path %>
+ <%= content_tag :ul, :class => ("nav nav-list " + visible_for_controllers('news_bulletins', '/panel/news/back_end/tags', 'news_bulletin_categorys', 'news_approvals')) do -%>
+ <%= content_tag :li, link_to(t('news.all_articles'), panel_news_back_end_news_bulletins_path), :class => active_for_action('news_bulletins', 'index') %>
+ <%= content_tag :li, link_to(t('news.add_new'), new_panel_news_back_end_news_bulletin_path), :class => active_for_action('news_bulletins', 'new') %>
+ <%= content_tag :li, link_to(t('news.categories'), panel_news_back_end_news_bulletin_categorys_path), :class => active_for_action('news_bulletin_categorys', 'index') %>
+ <%= content_tag :li, link_to(t('news.tags'), panel_news_back_end_tags_path), :class => active_for_action('/panel/news/back_end/tags', 'index') %>
+ <%= content_tag :li, link_to(t('news.news_bulletin.approval_setting'), panel_news_back_end_news_approval_setting_path), :class => active_for_action('news_approvals', 'setting') if (is_manager? rescue nil) %>
+ <% end -%>
+
+<% end -%>
+
<%#= content_tag :li, :class => active_for_controllers('users') do -%>
<%#= link_to content_tag(:i, nil, :class => 'icons-member') + t('admin.member'), admin_users_path %>
<%# end -%>
diff --git a/lib/parsers/parser_front_end.rb b/lib/parsers/parser_front_end.rb
index dfec0dd9..5eea7f9f 100644
--- a/lib/parsers/parser_front_end.rb
+++ b/lib/parsers/parser_front_end.rb
@@ -43,7 +43,9 @@ module ParserFrontEnd
ret << "
"
else
part = page.page_parts.detect{ |p| p.name.to_s == content['name'].to_s } rescue nil
@@ -51,8 +53,15 @@ module ParserFrontEnd
when 'text'
ret << part.i18n_variable[I18n.locale] rescue ''
when 'module_widget'
- if part[:category]
- ret << "
"
+ # if part[:category]
+ # ret << "
"
+ # else
+ # ret << "
"
+ # end
+ if !params[:category_id].blank?
+ ret << "
"
+ elsif !params[:tag_id].blank?
+ ret << "
"
else
ret << "
"
end
diff --git a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/front_end/bulletins_controller.rb b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/front_end/bulletins_controller.rb
index 8438c8e0..e8f25163 100644
--- a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/front_end/bulletins_controller.rb
+++ b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/front_end/bulletins_controller.rb
@@ -11,8 +11,10 @@ class Panel::Announcement::FrontEnd::BulletinsController < OrbitWidgetController
def index
date_now = Time.now
- if params[:category_id]
+ if !params[:category_id].blank?
@bulletins = Bulletin.can_display.where(:bulletin_category_id => params[:category_id]).any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page]).per(10)
+ elsif !params[:tag_id].blank?
+ @bulletins = AnnouncementTag.find(params[:tag_id]).bulletins.can_display.any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page]).per(10)
else
@bulletins = Bulletin.can_display.any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page]).per(10)
end
diff --git a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/widget/bulletins_controller.rb b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/widget/bulletins_controller.rb
index 96277c5e..8ee3ca8e 100644
--- a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/widget/bulletins_controller.rb
+++ b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/widget/bulletins_controller.rb
@@ -13,8 +13,10 @@ class Panel::Announcement::Widget::BulletinsController < OrbitWidgetController
# deadline
# @bulletin_categorys = BulletinCategory.first;
# @bulletins = Bulletin.widget_datas(@bulletin_categorys.id).limit(9)
- if params[:category_id]
+ if !params[:category_id].blank?
@bulletins = Bulletin.can_display.where(:bulletin_category_id => params[:category_id]).widget_datas.limit(9)
+ elsif !params[:tag_id].blank?
+ @bulletins = AnnouncementTag.find(params[:tag_id]).bulletins.can_display.widget_datas.limit(9) rescue nil
else
@bulletins = Bulletin.can_display.widget_datas.limit(9)
end
@@ -40,6 +42,11 @@ class Panel::Announcement::Widget::BulletinsController < OrbitWidgetController
@selected_tag = AnnouncementTag.find(params[:tag_id])
@web_links = WebResourceTag.first(:conditions => {:en => @selected_tag[:en]}).get_visible_links.page(params[:page]).per(5) rescue nil
end
+
+ def bulletins_side_bar
+ @tags = AnnouncementTag.all
+ get_categorys
+ end
protected
diff --git a/vendor/built_in_modules/announcement/app/views/panel/announcement/widget/bulletins/bulletins_side_bar.html.erb b/vendor/built_in_modules/announcement/app/views/panel/announcement/widget/bulletins/bulletins_side_bar.html.erb
new file mode 100644
index 00000000..78943a33
--- /dev/null
+++ b/vendor/built_in_modules/announcement/app/views/panel/announcement/widget/bulletins/bulletins_side_bar.html.erb
@@ -0,0 +1,25 @@
+
+
+
<%= t('announcement.categories') %>
+
+ <% @bulletin_categorys.each do |category| %>
+
+ <%= link_to category.i18n_variable[I18n.locale], panel_announcement_front_end_bulletins_path(:category_id => category.id) %>
+
+ <% end %>
+
+
+
+
<%= t('announcement.tag_cloud') %>
+
+ <% @tags.each do |tag| %>
+
+ <%= link_to tag[I18n.locale], panel_announcement_front_end_bulletins_path(:tag_id => tag.id) %>
+
+ <% end %>
+
+
+
+
\ No newline at end of file
diff --git a/vendor/built_in_modules/announcement/config/locales/en.yml b/vendor/built_in_modules/announcement/config/locales/en.yml
index 3e781823..5f319340 100644
--- a/vendor/built_in_modules/announcement/config/locales/en.yml
+++ b/vendor/built_in_modules/announcement/config/locales/en.yml
@@ -58,6 +58,7 @@ en:
announcement:
all_articles: List
add_new: Add
+ categories: Categories
sure?: Sure?
campus_news: Campus News
more: more+
@@ -79,6 +80,8 @@ en:
approval_setting_window_title: 'Unit'
approval_user_list: 'Approval Users'
cate_auth: Category Authorization
+ tag_cloud: Tag cloud
+
# admin:
# action: Action
# add_language: Add language
diff --git a/vendor/built_in_modules/announcement/config/locales/zh_tw.yml b/vendor/built_in_modules/announcement/config/locales/zh_tw.yml
index dfe9e55f..11e79fcc 100644
--- a/vendor/built_in_modules/announcement/config/locales/zh_tw.yml
+++ b/vendor/built_in_modules/announcement/config/locales/zh_tw.yml
@@ -61,7 +61,8 @@ zh_tw:
approval_setting_window_title: '單位'
approval_user_list: '審核者'
cate_auth: '分類授權'
-
+ tag_cloud: 標籤雲
+
bulletin:
last_modified: 最後修改於
tags: 標籤
diff --git a/vendor/built_in_modules/announcement/config/routes.rb b/vendor/built_in_modules/announcement/config/routes.rb
index 0de9877a..6e60960f 100644
--- a/vendor/built_in_modules/announcement/config/routes.rb
+++ b/vendor/built_in_modules/announcement/config/routes.rb
@@ -39,6 +39,7 @@ Rails.application.routes.draw do
match "bulletins_and_web_links" => "bulletins#bulletins_and_web_links"
match "reload_bulletins" => "bulletins#reload_bulletins"
match "reload_web_links" => "bulletins#reload_web_links"
+ match "bulletins_side_bar" => "bulletins#bulletins_side_bar"
end
end
end
diff --git a/vendor/built_in_modules/news/.gitignore b/vendor/built_in_modules/news/.gitignore
new file mode 100644
index 00000000..1463de6d
--- /dev/null
+++ b/vendor/built_in_modules/news/.gitignore
@@ -0,0 +1,6 @@
+.bundle/
+log/*.log
+pkg/
+test/dummy/db/*.sqlite3
+test/dummy/log/*.log
+test/dummy/tmp/
\ No newline at end of file
diff --git a/vendor/built_in_modules/news/Gemfile b/vendor/built_in_modules/news/Gemfile
new file mode 100644
index 00000000..a86130f6
--- /dev/null
+++ b/vendor/built_in_modules/news/Gemfile
@@ -0,0 +1,17 @@
+source "http://rubygems.org"
+
+# Declare your gem's dependencies in news.gemspec.
+# Bundler will treat runtime dependencies like base dependencies, and
+# development dependencies will be added by default to the :development group.
+gemspec
+
+# jquery-rails is used by the dummy application
+gem "jquery-rails"
+
+# Declare any dependencies that are still in development here instead of in
+# your gemspec. These might include edge Rails or gems from your path or
+# Git. Remember to move these dependencies to your gemspec before releasing
+# your gem to rubygems.org.
+
+# To use debugger
+# gem 'ruby-debug19', :require => 'ruby-debug'
diff --git a/vendor/built_in_modules/news/MIT-LICENSE b/vendor/built_in_modules/news/MIT-LICENSE
new file mode 100644
index 00000000..80cf031a
--- /dev/null
+++ b/vendor/built_in_modules/news/MIT-LICENSE
@@ -0,0 +1,20 @@
+Copyright 2011 YOURNAME
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/vendor/built_in_modules/news/README.rdoc b/vendor/built_in_modules/news/README.rdoc
new file mode 100644
index 00000000..d1a18aec
--- /dev/null
+++ b/vendor/built_in_modules/news/README.rdoc
@@ -0,0 +1,3 @@
+= News
+
+This project rocks and uses MIT-LICENSE.
\ No newline at end of file
diff --git a/vendor/built_in_modules/news/Rakefile b/vendor/built_in_modules/news/Rakefile
new file mode 100644
index 00000000..ee1ca0a0
--- /dev/null
+++ b/vendor/built_in_modules/news/Rakefile
@@ -0,0 +1,39 @@
+#!/usr/bin/env rake
+begin
+ require 'bundler/setup'
+rescue LoadError
+ puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
+end
+begin
+ require 'rdoc/task'
+rescue LoadError
+ require 'rdoc/rdoc'
+ require 'rake/rdoctask'
+ RDoc::Task = Rake::RDocTask
+end
+
+RDoc::Task.new(:rdoc) do |rdoc|
+ rdoc.rdoc_dir = 'rdoc'
+ rdoc.title = 'News'
+ rdoc.options << '--line-numbers'
+ rdoc.rdoc_files.include('README.rdoc')
+ rdoc.rdoc_files.include('lib/**/*.rb')
+end
+
+APP_RAKEFILE = File.expand_path("../test/dummy/Rakefile", __FILE__)
+load 'rails/tasks/engine.rake'
+
+
+Bundler::GemHelper.install_tasks
+
+require 'rake/testtask'
+
+Rake::TestTask.new(:test) do |t|
+ t.libs << 'lib'
+ t.libs << 'test'
+ t.pattern = 'test/**/*_test.rb'
+ t.verbose = false
+end
+
+
+task :default => :test
diff --git a/vendor/built_in_modules/news/app/assets/images/announcement/.gitkeep b/vendor/built_in_modules/news/app/assets/images/announcement/.gitkeep
new file mode 100644
index 00000000..e69de29b
diff --git a/vendor/built_in_modules/news/app/assets/javascripts/module_widget.js b/vendor/built_in_modules/news/app/assets/javascripts/module_widget.js
new file mode 100644
index 00000000..aea46d72
--- /dev/null
+++ b/vendor/built_in_modules/news/app/assets/javascripts/module_widget.js
@@ -0,0 +1,9 @@
+// This is a manifest file that'll be compiled into including all the files listed below.
+// Add new JavaScript/Coffee code in separate files in this directory and they'll automatically
+// be included in the compiled file accessible from http://example.com/assets/application.js
+// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
+// the compiled file.
+//
+//= require jquery
+//= require jquery_ujs
+//= require news_link
\ No newline at end of file
diff --git a/vendor/built_in_modules/news/app/assets/javascripts/news_link.js b/vendor/built_in_modules/news/app/assets/javascripts/news_link.js
new file mode 100644
index 00000000..89a5e569
--- /dev/null
+++ b/vendor/built_in_modules/news/app/assets/javascripts/news_link.js
@@ -0,0 +1,45 @@
+$(document).ready(function(){
+ var topic1="0px";
+ var topic2="-948px";
+ var topic3="-1896px";
+ var topic_page=1;
+ $(".topic_prev").addClass("topic_prev_first");
+ $(document).on("click", ".topic_prev", function() {
+ if (topic_page !=1){
+ topic_page-=1;
+ }else{
+ }
+ if (topic_page == 1){
+ $("#topic_list").stop().animate({"left": topic1}, "slow");
+ $(".topic_prev").addClass("topic_prev_first");
+ }
+ if (topic_page == 2){
+ $("#topic_list").stop().animate({"left": topic2}, "slow");
+ $(".topic_prev").removeClass("topic_prev_first");
+ $(".topic_next").removeClass("topic_next_last");
+ }
+ if (topic_page == 3){
+ $("#topic_list").stop().animate({"left": topic3}, "slow");
+ $(".topic_prev").removeClass("topic_next_last");
+ }
+
+ });
+ $(document).on("click", ".topic_next", function() {
+ if (topic_page >=1 && topic_page <=2){
+ topic_page+=1;
+ }else{
+ }
+ if (topic_page == 1){
+ $("#topic_list").stop().animate({"left": topic1}, "slow");
+ $(".topic_prev").addClass("topic_prev_first");
+ }
+ if (topic_page == 2){
+ $("#topic_list").stop().animate({"left": topic2}, "slow");
+ $(".topic_prev").removeClass("topic_prev_first");
+ }
+ if (topic_page == 3){
+ $("#topic_list").stop().animate({"left": topic3}, "slow");
+ $(".topic_next").addClass("topic_next_last");
+ }
+ });
+});
diff --git a/vendor/built_in_modules/news/app/assets/stylesheets/announcement/.gitkeep b/vendor/built_in_modules/news/app/assets/stylesheets/announcement/.gitkeep
new file mode 100644
index 00000000..e69de29b
diff --git a/vendor/built_in_modules/news/app/controllers/.gitkeep b/vendor/built_in_modules/news/app/controllers/.gitkeep
new file mode 100644
index 00000000..e69de29b
diff --git a/vendor/built_in_modules/news/app/controllers/application_controller.rb b/vendor/built_in_modules/news/app/controllers/application_controller.rb
new file mode 100644
index 00000000..307a4acd
--- /dev/null
+++ b/vendor/built_in_modules/news/app/controllers/application_controller.rb
@@ -0,0 +1,23 @@
+class ApplicationController < ActionController::Base
+ protect_from_forgery
+ before_filter :set_locale
+
+ # Set I18n.locale
+ def set_locale
+ # update session if passed
+ session[:locale] = params[:locale] if params[:locale]
+
+ # set locale based on session or default
+ begin
+ # check if locale is valid for non site pages
+ if !VALID_LOCALES.include?(session[:locale])
+ I18n.locale = I18n.default_locale
+ else
+ I18n.locale = session[:locale]
+ end
+ rescue
+ I18n.locale = I18n.default_locale
+ end
+ end
+
+end
diff --git a/vendor/built_in_modules/news/app/controllers/panel/news/back_end/news_approvals_controller.rb b/vendor/built_in_modules/news/app/controllers/panel/news/back_end/news_approvals_controller.rb
new file mode 100644
index 00000000..c6cb33ea
--- /dev/null
+++ b/vendor/built_in_modules/news/app/controllers/panel/news/back_end/news_approvals_controller.rb
@@ -0,0 +1,41 @@
+class Panel::News::BackEnd::NewsApprovalsController < OrbitBackendController
+ before_filter :authenticate_user!
+ include AdminHelper
+
+ def setting
+ @news_bulletin_categorys = NewsBulletinCategory.all
+ if params.has_key?(:category_id)
+ first_category = NewsBulletinCategory.find params[:category_id]
+ if params[:commit] == 'Update'
+ privilege_users = params[:users].collect{|key,value| User.find key } rescue []
+ preload_object_auth_ary = first_category.object_auths.where(title: 'fact_check') || (first_category.object_auths.create :title=> 'fact_check')
+ preload_object_auth = preload_object_auth_ary.first
+ preload_object_auth.privilege_users = privilege_users
+ preload_object_auth.save!
+ end
+ else
+ first_category = @news_bulletin_categorys.first
+ end
+ preload_object_auth = first_category.object_auths.where(title: 'fact_check').empty?? (first_category.object_auths.create! :title=> 'fact_check') : first_category.object_auths.where(title: 'fact_check')
+ @users_array = preload_object_auth.first.privilege_users rescue []
+ respond_to do |format|
+ format.html
+ format.js
+ end
+ end
+
+ def update_setting
+
+ end
+
+ protected
+
+ def get_categorys(id = nil)
+ @news_bulletin_categorys = []
+ if(is_manager? || is_admin?)
+ @news_bulletin_categorys = (id ? NewsBulletinCategory.find(id).to_a : NewsBulletinCategory.excludes('disabled' => true))
+ elsif is_sub_manager?
+ @news_bulletin_categorys = NewsBulletinCategory.authed_for_user(current_user,'submit_new')
+ end
+ end
+end
diff --git a/vendor/built_in_modules/news/app/controllers/panel/news/back_end/news_bulletin_categorys_controller.rb b/vendor/built_in_modules/news/app/controllers/panel/news/back_end/news_bulletin_categorys_controller.rb
new file mode 100644
index 00000000..83ca09f8
--- /dev/null
+++ b/vendor/built_in_modules/news/app/controllers/panel/news/back_end/news_bulletin_categorys_controller.rb
@@ -0,0 +1,118 @@
+class Panel::News::BackEnd::NewsBulletinCategorysController < OrbitBackendController
+
+ def index
+ @news_bulletin_categorys = NewsBulletinCategory.all
+ @news_bulletin_category = NewsBulletinCategory.new(:display => 'List')
+
+ @url = panel_news_back_end_news_bulletin_categorys_path
+
+ respond_to do |format|
+ format.html # index.html.erb
+ # format.xml { render :xml => @news_bulletins }
+ format.js
+ end
+ end
+
+ # GET /news_bulletins/1
+ # GET /news_bulletins/1.xml
+ def show
+ @news_bulletin_category = NewsBulletinCategory.find(params[:id])
+
+ respond_to do |format|
+ format.html # show.html.erb
+ # format.xml { render :xml => @news_bulletin_category }
+ format.js
+ end
+ end
+
+ # GET /news_bulletins/new
+ # GET /news_bulletins/new.xml
+ def new
+ @news_bulletin_category = NewsBulletinCategory.new(:display => 'List')
+
+ respond_to do |format|
+ format.html # new.html.erb
+ # format.xml { render :xml => @news_bulletin_category }
+ format.js
+ end
+ end
+
+ def quick_edit
+ # debugger
+
+ @news_bulletin_category = NewsBulletinCategory.find(params[:news_bulletin_category_id])
+
+ @url = panel_news_back_end_news_bulletin_category_path(@news_bulletin_category)
+
+ respond_to do |format|
+ format.js
+ end
+
+ end
+
+ # GET /news_bulletins/1/edit
+ def edit
+ @news_bulletin_category = NewsBulletinCategory.find(params[:id])
+ @i18n_variable = @news_bulletin_category.i18n_variable
+
+ @url = panel_news_back_end_news_bulletin_category_path(@news_bulletin_category)
+
+ respond_to do |format|
+ format.html
+ format.js
+ end
+ end
+
+ # POST /news_bulletins
+ # POST /news_bulletins.xml
+ def create
+ @news_bulletin_category = NewsBulletinCategory.new(params[:news_bulletin_category])
+
+ respond_to do |format|
+ if @news_bulletin_category.save
+ # format.html { redirect_to @news_bulletin_category, notice: 'Entry was successfully created.' }
+ format.html { redirect_to(panel_news_back_end_news_bulletin_categorys_url, :notice => t('news.create_news_bulletin_category_success')) }
+ # format.xml { render :xml => @news_bulletin_category, :status => :created, :location => @news_bulletin_category }
+ format.js
+ else
+ format.html { render :action => "new" }
+ # format.xml { render :xml => @news_bulletin_category.errors, :status => :unprocessable_entity }
+ format.js { render action: "new" }
+ end
+ end
+ end
+
+ # PUT /news_bulletins/1
+ # PUT /news_bulletins/1.xml
+ def update
+ @news_bulletin_category = NewsBulletinCategory.find(params[:id])
+
+ @url = panel_news_back_end_news_bulletin_category_path(@news_bulletin_category)
+
+ respond_to do |format|
+ if @news_bulletin_category.update_attributes(params[:news_bulletin_category])
+ # format.html { redirect_to(panel_news_back_end_news_bulletin_category_url(@news_bulletin_category), :notice => t('news_bulletin_category.update_news_bulletin_category_success')) }
+ # format.html { redirect_to(panel_news_back_end_news_bulletin_categorys_url, :notice => t('news_bulletin_category.update_news_bulletin_category_success')) }
+ # format.xml { head :ok }
+ format.js
+ else
+ format.html { render :action => "edit" }
+ format.js { render :action => "edit" }
+ # format.xml { render :xml => @news_bulletin_category.errors, :status => :unprocessable_entity }
+ end
+ end
+ end
+
+ # DELETE /news_bulletins/1
+ # DELETE /news_bulletins/1.xml
+ def destroy
+ @news_bulletin_category = NewsBulletinCategory.find(params[:id])
+ @news_bulletin_category.destroy
+
+ respond_to do |format|
+ format.html { redirect_to(panel_news_back_end_news_bulletin_categorys_url) }
+ # format.xml { head :ok }
+ format.js
+ end
+ end
+end
diff --git a/vendor/built_in_modules/news/app/controllers/panel/news/back_end/news_bulletin_files_controller.rb b/vendor/built_in_modules/news/app/controllers/panel/news/back_end/news_bulletin_files_controller.rb
new file mode 100644
index 00000000..806aced2
--- /dev/null
+++ b/vendor/built_in_modules/news/app/controllers/panel/news/back_end/news_bulletin_files_controller.rb
@@ -0,0 +1,48 @@
+class Panel::News::BackEnd::NewsBulletinFilesController < ApplicationController
+
+ layout 'new_admin'
+
+ def index
+ @news_bulletin_files = NewsBulletinFile.all
+
+ respond_to do |format|
+ format.html # index.html.erb
+ # format.xml { render :xml => @news_bulletins }
+ format.js
+ end
+
+ end
+
+ # POST /news_bulletins
+ # POST /news_bulletins.xml
+ def create
+ @news_bulletin_file = NewsBulletinFile.new(params[:news_bulletin_file])
+
+ respond_to do |format|
+ if @news_bulletin_file.save
+ format.html { redirect_to(panel_news_back_end_news_bulletins_url) }
+ format.js
+ else
+ format.html { render :action => "new" }
+ format.js { render action: "new" }
+ end
+ end
+ end
+
+ # PUT /news_bulletins/1
+ # PUT /news_bulletins/1.xml
+ def update
+ @news_bulletin_file = NewsBulletinFile.find(params[:id])
+
+ respond_to do |format|
+ if @news_bulletin_file.update_attributes(params[:news_bulletin_file])
+ format.html { redirect_to(panel_news_back_end_news_bulletins_url) }
+ format.js
+ else
+ format.html { render :action => "edit" }
+ format.js { render :action => "edit" }
+ end
+ end
+ end
+
+end
diff --git a/vendor/built_in_modules/news/app/controllers/panel/news/back_end/news_bulletin_links_controller.rb b/vendor/built_in_modules/news/app/controllers/panel/news/back_end/news_bulletin_links_controller.rb
new file mode 100644
index 00000000..15ae4f64
--- /dev/null
+++ b/vendor/built_in_modules/news/app/controllers/panel/news/back_end/news_bulletin_links_controller.rb
@@ -0,0 +1,49 @@
+class Panel::News::BackEnd::NewsBulletinLinksController < ApplicationController
+
+ layout 'new_admin'
+
+ def index
+ @news_bulletin_links = NewsBulletinLink.all
+
+ respond_to do |format|
+ format.html # index.html.erb
+ # format.xml { render :xml => @news_bulletins }
+ format.js
+ end
+
+ end
+
+ # POST /news_bulletins
+ # POST /news_bulletins.xml
+ def create
+ @news_bulletin_link = NewsBulletinLink.new(params[:news_bulletin_link])
+ # @news_bulletin_link.news_bulletin_id = params[:news_bulletin_link][:news_bulletin_id]
+
+ respond_to do |format|
+ if @news_bulletin_link.save
+ format.html { redirect_to(panel_news_back_end_news_bulletins_url) }
+ format.js
+ else
+ format.html { render :action => "new" }
+ format.js { render action: "new" }
+ end
+ end
+ end
+
+ # PUT /news_bulletins/1
+ # PUT /news_bulletins/1.xml
+ def update
+ @news_bulletin_link = NewsBulletinLink.find(params[:id])
+
+ respond_to do |format|
+ if @news_bulletin_link.update_attributes(params[:news_bulletin_link])
+ format.html { redirect_to(panel_news_back_end_news_bulletins_url) }
+ format.js
+ else
+ format.html { render :action => "edit" }
+ format.js { render :action => "edit" }
+ end
+ end
+ end
+
+end
diff --git a/vendor/built_in_modules/news/app/controllers/panel/news/back_end/news_bulletins_controller.rb b/vendor/built_in_modules/news/app/controllers/panel/news/back_end/news_bulletins_controller.rb
new file mode 100644
index 00000000..f5c2b5e6
--- /dev/null
+++ b/vendor/built_in_modules/news/app/controllers/panel/news/back_end/news_bulletins_controller.rb
@@ -0,0 +1,408 @@
+class Panel::News::BackEnd::NewsBulletinsController < OrbitBackendController
+
+ before_filter :authenticate_user!
+ before_filter :is_admin?
+
+ def index
+ # @news_bulletins = NewsBulletin.all
+ # @news_bulletins = NewsBulletin.desc("postdate desc")
+ get_categorys(params[:news_bulletin_category_id])
+ get_tags
+
+ @filter = params[:filter]
+ new_filter = params[:new_filter]
+
+ if @filter && params[:clear]
+ @filter.delete(params[:type])
+ elsif @filter && new_filter
+ if @filter.has_key?(new_filter[:type]) && @filter[new_filter[:type]].include?(new_filter[:id].to_s)
+ @filter[new_filter[:type]].delete(new_filter[:id].to_s)
+ elsif @filter.has_key?(new_filter[:type])
+ @filter[new_filter[:type]] << new_filter[:id].to_s
+ else
+ @filter.merge!({new_filter[:type] => [new_filter[:id].to_s]})
+ end
+ elsif new_filter
+ @filter = {new_filter[:type] => [new_filter[:id].to_s]}
+ end
+
+ # @news_bulletins = NewsBulletin.where("news_bulletin_category_id" => params[:news_bulletin_category_id]).desc("postdate") if params[:news_bulletin_category_id]
+
+ # @news_bulletins = NewsBulletin.search(params[:search], params[:category_id])
+ # @news_bulletins = NewsBulletin.all.order_by([params[:sort], params[:direction]])
+
+
+ # @news_bulletins = (params[:sort] || @filter) ? get_sorted_and_filtered_news_bulletins : NewsBulletin.all.page(params[:page]).per(10)
+ @news_bulletins = (params[:sort] || @filter) ? get_sorted_and_filtered("news_bulletin") : NewsBulletin.all.page(params[:page]).per(10)
+ @news_bulletin_categories = NewsBulletinCategory.all
+
+ @news_bulletin_link = NewsBulletinLink.new
+ @link_url = panel_news_back_end_news_bulletins_path
+
+ @news_bulletin_file = NewsBulletinFile.new
+ @file_url = panel_news_back_end_news_bulletins_path
+
+ respond_to do |format|
+ format.html # index.html.erb
+ format.js { }
+ format.xml { render :xml => @news_bulletins }
+ end
+ end
+
+ # GET /news_bulletins/1
+ # GET /news_bulletins/1.xml
+ def show
+ @news_bulletin = NewsBulletin.find(params[:id])
+ get_tags
+ # get_categorys
+
+ # @news_bulletin_categorys = NewsBulletinCategory.where("_id" => params[:id])
+
+ # if params[:id]
+ # @news_bulletins = NewsBulletin.where("news_bulletin_category_id" => params[:id])
+ # else
+ # @news_bulletins = NewsBulletin.desc("postdate desc")
+ # end
+
+ respond_to do |format|
+ format.html # show.html.erb
+ format.xml { render :xml => @news_bulletin }
+ end
+ end
+
+ # GET /news_bulletins/new
+ # GET /news_bulletins/new.xml
+ def new
+ @news_bulletin = NewsBulletin.new
+
+ @link_url = panel_news_back_end_news_bulletins_path
+
+ # @news_bulletin.news_bulletin_files.build
+ # @news_bulletin.news_bulletin_files.new
+
+ get_categorys
+ get_tags
+
+ respond_to do |format|
+ format.html # new.html.erb
+ format.xml { render :xml => @news_bulletin }
+ end
+ end
+
+ # GET /news_bulletins/1/edit
+ def edit
+ @news_bulletin = NewsBulletin.find(params[:id])
+ if !current_user.admin? && (@news_bulletin.is_rejected? || @news_bulletin.is_checked?)
+ redirect_to :action => :index
+ else
+ # @summary_variable = @news_bulletin.summary_variable
+
+ @link_url = panel_news_back_end_news_bulletin_path(@news_bulletin)
+
+ get_categorys
+ get_tags
+ end
+ end
+
+ # POST /news_bulletins
+ # POST /news_bulletins.xml
+ def create
+
+ if params[:news_bulletin_link]
+
+ @news_bulletin_link = NewsBulletinLink.new(params[:news_bulletin_link])
+
+ respond_to do |format|
+ if @news_bulletin_link.save
+ format.js { render 'create_news_bulletin_link' }
+ end
+ end
+
+ elsif params[:news_bulletin_file]
+
+ @news_bulletin_file = NewsBulletinFile.new(params[:news_bulletin_file])
+
+ respond_to do |format|
+ if @news_bulletin_file.save
+ format.js { render 'create_news_bulletin_file' }
+ end
+ end
+
+ else
+
+ @news_bulletin = NewsBulletin.new(params[:news_bulletin])
+
+ @news_bulletin.create_user_id = current_user.id
+ @news_bulletin.update_user_id = current_user.id
+
+ respond_to do |format|
+ if @news_bulletin.save
+ # format.html { redirect_to(panel_news_back_end_news_bulletin_url(@news_bulletin), :notice => t('news.create_news_bulletin_success')) }
+ format.html { redirect_to(panel_news_back_end_news_bulletins_url, :notice => t('news.create_news_bulletin_success')) }
+ format.xml { render :xml => @news_bulletin, :status => :created, :location => @news_bulletin }
+ format.js
+ else
+ format.html { render :action => "new" }
+ format.xml { render :xml => @news_bulletin.errors, :status => :unprocessable_entity }
+ end
+ end
+
+ end
+
+ end
+
+ def link_quick_add
+ # debugger
+
+ @news_bulletin_link = NewsBulletinLink.new
+ @link_url = panel_news_back_end_news_bulletins_path
+
+ @news_bulletin_link.news_bulletin_id = params[:news_bulletin_id]
+
+ respond_to do |format|
+ format.js
+ end
+
+ end
+
+ def link_quick_edit
+ # debugger
+ @news_bulletin_link = NewsBulletinLink.find(params[:news_bulletin_id])
+
+ @link_url = panel_news_back_end_news_bulletin_path(@news_bulletin_link)
+
+ # @news_bulletin = NewsBulletin.find(params[:news_bulletin_id])
+
+ # @link_url = panel_news_back_end_news_bulletin_path(@news_bulletin)
+
+ respond_to do |format|
+ format.js
+ end
+
+ end
+
+ def file_quick_add
+ # debugger
+
+ @news_bulletin_file = NewsBulletinFile.new
+ @file_url = panel_news_back_end_news_bulletins_path
+
+ @news_bulletin_file.news_bulletin_id = params[:news_bulletin_id]
+
+ respond_to do |format|
+ format.js
+ end
+
+ end
+
+ def file_quick_edit
+ # debugger
+ @news_bulletin_file = NewsBulletinFile.find(params[:news_bulletin_id])
+
+ @file_url = panel_news_back_end_news_bulletin_path(@news_bulletin_file)
+
+ respond_to do |format|
+ format.js
+ end
+ end
+
+ # PUT /news_bulletins/1
+ # PUT /news_bulletins/1.xml
+ def update
+
+ if params[:news_bulletin_link]
+
+ @news_bulletin_link = NewsBulletinLink.find(params[:id])
+
+ @link_url = panel_news_back_end_news_bulletin_path(@news_bulletin_link)
+
+ respond_to do |format|
+ if @news_bulletin_link.update_attributes(params[:news_bulletin_link])
+ # format.html { redirect_to(panel_news_back_end_news_bulletins_url) }
+ format.js { render 'update_news_bulletin_link' }
+ end
+ end
+
+ elsif params[:news_bulletin_file]
+
+ @news_bulletin_file = NewsBulletinFile.find(params[:id])
+
+ @file_url = panel_news_back_end_news_bulletin_path(@news_bulletin_file)
+
+ respond_to do |format|
+ if @news_bulletin_file.update_attributes(params[:news_bulletin_file])
+ # format.html { redirect_to(panel_news_back_end_news_bulletins_url) }
+ format.js { render 'update_news_bulletin_file' }
+ end
+ end
+
+ else
+
+ @news_bulletin = NewsBulletin.find(params[:id])
+
+ @news_bulletin.update_user_id = current_user.id
+
+ # @news_bulletin.image.clear if params[:news_bulletin][:image_del] == '1'
+ # if params[:news_bulletin][:image_del] == '1'
+ # @news_bulletin.remove_image!
+ # @news_bulletin.image_del = nil
+ # params[:news_bulletin][:image_del] = nil
+ # end
+
+ respond_to do |format|
+ if @news_bulletin.update_attributes(params[:news_bulletin])
+ # format.html { redirect_to(panel_news_back_end_news_bulletin_url(@news_bulletin), :notice => t('news_bulletin.update_news_bulletin_success')) }
+ format.html { redirect_to(panel_news_back_end_news_bulletins_url, :notice => t('news_bulletin.update_news_bulletin_success')) }
+ format.js { render 'toggle_enable' }
+ format.xml { head :ok }
+ else
+ get_tags
+ get_categorys
+ format.html { render :action => "edit" }
+ format.xml { render :xml => @news_bulletin.errors, :status => :unprocessable_entity }
+ end
+ end
+
+ end
+
+ end
+
+ # DELETE /news_bulletins/1
+ # DELETE /news_bulletins/1.xml
+ def destroy
+ @news_bulletin = NewsBulletin.find(params[:id])
+ # @news_bulletin.news_bulletin_files.destroy
+ @news_bulletin.destroy
+
+ respond_to do |format|
+ format.html { redirect_to(panel_news_back_end_news_bulletins_url) }
+ # format.xml { head :ok }
+ format.js
+ end
+ end
+
+ # def top_edit
+
+ # NewsBulletin.where(id: params[:id]).update_all( is_top: true )
+ # respond_to do |format|
+ # format.html { redirect_to(panel_news_back_end_news_bulletins_url) }
+ # format.xml { head :ok }
+ # end
+
+ # end
+
+
+ def load_quick_edit
+ @news_bulletin = NewsBulletin.find(params[:id])
+ @type = params[:type]
+ @news_bulletin_categories = NewsBulletinCategory.all
+ get_tags
+ end
+
+ def delete
+ if params[:to_delete]
+ news_bulletins = NewsBulletin.any_in(:_id => params[:to_delete]).delete_all
+ end
+ redirect_to panel_news_back_end_news_bulletins_url(:filter => params[:filter], :direction => params[:direction], :sort => params[:sort], :sort_options => params[:sort_options])
+ end
+
+
+ protected
+
+ def get_categorys(id = nil)
+ @news_bulletin_categorys = []
+ if(is_manager? || is_admin?)
+ @news_bulletin_categorys = (id ? NewsBulletinCategory.find(id).to_a : NewsBulletinCategory.excludes('disabled' => true))
+ elsif is_sub_manager?
+ @news_bulletin_categorys = NewsBulletinCategory.authed_for_user(current_user,'submit_new')
+ end
+ end
+
+ def get_tags
+ module_app = ModuleApp.first(:conditions => {:key => 'news'})
+ @tags = Tag.all(:conditions => {:module_app_id => module_app.id}).order_by(I18n.locale, :asc)
+ end
+
+ def get_sorted_and_filtered_news_bulletins
+ news_bulletins = NewsBulletin.all
+ case params[:sort]
+ when 'postdate', 'deadline'
+ news_bulletins = news_bulletins.order_by([params[:sort], params[:direction]])
+ when 'category'
+ category_ids = news_bulletins.distinct(:news_bulletin_category_id)
+ categories = NewsBulletinCategory.find(category_ids) rescue nil
+ if categories
+ h = Hash.new
+ categories.each { |category| h[category.i18n_variable[I18n.locale]] = category.id }
+ sorted = params[:direction].eql?('asc') ? h.sort : h.sort.reverse!
+ sorted_categorys = sorted.collect {|a| news_bulletins.where(:news_bulletin_category_id => a[1]).entries }
+ news_bulletins = sorted_categorys.flatten!
+ end
+ when 'title'
+ h = Array.new
+ news_bulletins.each { |news_bulletin| h << [news_bulletin.title[I18n.locale].downcase, news_bulletin] }
+ sorted = params[:direction].eql?('asc') ? h.sort : h.sort.reverse!
+ news_bulletins = sorted.collect {|a| a[1] }
+ when 'status'
+ news_bulletins = news_bulletins.order_by(:is_top, params[:direction]).order_by(:is_hot, params[:direction]).order_by(:is_hidden, params[:direction]).order_by(:is_pending, params[:direction]).order_by(:is_checked, params[:direction]).order_by(:is_rejected, params[:direction])
+ when 'update_user_id'
+ user_ids = news_bulletins.distinct(:update_user_id)
+ users = User.find(user_ids) rescue nil
+ if users
+ h = Array.new
+ users.each { |user| h << [user.name, user.id] }
+ sorted = params[:direction].eql?('asc') ? h.sort : h.sort.reverse!
+ sorted_users = sorted.collect {|a| news_bulletins.where(:update_user_id => a[1]).entries }
+ news_bulletins = sorted_users.flatten
+ end
+ when 'tags'
+ a = Array.new
+ NewsTag.all.order_by(I18n.locale, params[:direction]).each { |tag| a << tag.news_bulletins }
+ a.flatten!
+ a.uniq!
+ tmp = Array.new
+ news_bulletins.where(:tag_ids => []).each { |news_bulletin| tmp << [news_bulletin.title[I18n.locale].downcase, news_bulletin] }
+ sorted = params[:direction].eql?('asc') ? tmp.sort : tmp.sort.reverse!
+ sorted_titles = sorted.collect {|a| a[1] }
+ a = params[:direction].eql?('asc') ? (sorted_titles + a) : (a + sorted_titles)
+ news_bulletins = a.flatten
+ end
+ if @filter
+ @filter.each do |key, value|
+ case key
+ when 'status'
+ a = Array.new
+ news_bulletins.each do |news_bulletin|
+ value.each do |v|
+ case v
+ when 'pending'
+ a << news_bulletin if news_bulletin.is_checked.nil?
+ when 'rejected'
+ a << news_bulletin if news_bulletin.is_checked.eql?(false)
+ else
+ a << news_bulletin if news_bulletin[v]
+ end
+ end
+ end
+ news_bulletins = a.uniq
+ when 'categories'
+ a = Array.new
+ news_bulletins.each do |news_bulletin|
+ a << news_bulletin if value.include?(news_bulletin.news_bulletin_category.id.to_s)
+ end
+ news_bulletins = a.uniq
+ when 'tags'
+ a = Array.new
+ news_bulletins.each do |news_bulletin|
+ news_bulletin.tags.each do |tag|
+ a << news_bulletin if value.include?(tag.id.to_s)
+ end
+ end
+ news_bulletins = a.uniq
+ end if value.size > 0
+ end
+ end
+ Kaminari.paginate_array(news_bulletins).page(params[:page]).per(10)
+ end
+
+end
diff --git a/vendor/built_in_modules/news/app/controllers/panel/news/back_end/tags_controller.rb b/vendor/built_in_modules/news/app/controllers/panel/news/back_end/tags_controller.rb
new file mode 100644
index 00000000..970b426e
--- /dev/null
+++ b/vendor/built_in_modules/news/app/controllers/panel/news/back_end/tags_controller.rb
@@ -0,0 +1,8 @@
+class Panel::News::BackEnd::TagsController < Admin::TagsController
+
+ def initialize
+ super
+ @app_title = 'news'
+ end
+
+end
diff --git a/vendor/built_in_modules/news/app/controllers/panel/news/front_end/news_bulletins_controller.rb b/vendor/built_in_modules/news/app/controllers/panel/news/front_end/news_bulletins_controller.rb
new file mode 100644
index 00000000..12d0cac6
--- /dev/null
+++ b/vendor/built_in_modules/news/app/controllers/panel/news/front_end/news_bulletins_controller.rb
@@ -0,0 +1,38 @@
+class Panel::News::FrontEnd::NewsBulletinsController < OrbitWidgetController
+
+ def initialize
+ super
+ @app_title = 'news'
+ end
+
+ # GET /news_bulletins
+ # GET /news_bulletins.xml
+
+ def index
+ date_now = Time.now
+ if !params[:category_id].blank?
+ @news_bulletins = NewsBulletin.can_display.where(:news_bulletin_category_id => params[:category_id]).any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page]).per(10)
+ elsif !params[:tag_id].blank?
+ @news_bulletins = NewsTag.find(params[:tag_id]).news_bulletins.can_display.any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page]).per(10)
+ else
+ @news_bulletins = NewsBulletin.can_display.any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page]).per(10)
+ end
+
+ get_categorys
+
+ @current_category = NewsBulletinCategory.from_id(params[:category_id]) rescue nil
+ end
+
+ def show
+ @news_bulletin = NewsBulletin.can_display.where(_id: params[:id]).first
+ get_categorys
+ end
+
+
+ protected
+
+ def get_categorys
+ @news_bulletin_categorys = NewsBulletinCategory.excludes('disabled' => true)
+ end
+
+end
diff --git a/vendor/built_in_modules/news/app/controllers/panel/news/widget/news_bulletins_controller.rb b/vendor/built_in_modules/news/app/controllers/panel/news/widget/news_bulletins_controller.rb
new file mode 100644
index 00000000..7d678cad
--- /dev/null
+++ b/vendor/built_in_modules/news/app/controllers/panel/news/widget/news_bulletins_controller.rb
@@ -0,0 +1,58 @@
+class Panel::News::Widget::NewsBulletinsController < OrbitWidgetController
+
+ def initialize
+ super
+ @app_title = 'news'
+ end
+
+ # GET /news_bulletins
+ # GET /news_bulletins.xml
+
+ def index
+
+ # deadline
+ # @news_bulletin_categorys = NewsBulletinCategory.first;
+ # @news_bulletins = NewsBulletin.widget_datas(@news_bulletin_categorys.id).limit(9)
+ if !params[:category_id].blank?
+ @news_bulletins = NewsBulletin.can_display.where(:news_bulletin_category_id => params[:category_id]).widget_datas.limit(9)
+ elsif !params[:tag_id].blank?
+ @news_bulletins = NewsTag.find(params[:tag_id]).news_bulletins.can_display.widget_datas.limit(9) rescue nil
+ else
+ @news_bulletins = NewsBulletin.can_display.widget_datas.limit(9)
+ end
+
+ get_categorys
+
+ end
+
+ def news_bulletins_and_web_links
+ @tags = NewsTag.all
+ @selected_tag = NewsTag.find(params[:id]) rescue @tags[0]
+ @news_bulletins = @selected_tag.get_visible_news_bulletins.can_display.page(params[:page]).per(5) rescue nil
+ @web_links = WebResourceTag.first(:conditions => {:en => @selected_tag[:en]}).get_visible_links.page(params[:page]).per(5) rescue nil
+ render :layout => 'module_widget'
+ end
+
+ def reload_news_bulletins
+ @selected_tag = NewsTag.find(params[:tag_id])
+ @news_bulletins = @selected_tag.get_visible_news_bulletins.can_display.page(params[:page]).per(5) rescue nil
+ end
+
+ def reload_web_links
+ @selected_tag = NewsTag.find(params[:tag_id])
+ @web_links = WebResourceTag.first(:conditions => {:en => @selected_tag[:en]}).get_visible_links.page(params[:page]).per(5) rescue nil
+ end
+
+ def news_bulletins_side_bar
+ @tags = NewsTag.all
+ get_categorys
+ end
+
+
+ protected
+
+ def get_categorys
+ @news_bulletin_categorys = NewsBulletinCategory.excludes('disabled' => true)
+ end
+
+end
diff --git a/vendor/built_in_modules/news/app/helpers/.gitkeep b/vendor/built_in_modules/news/app/helpers/.gitkeep
new file mode 100644
index 00000000..e69de29b
diff --git a/vendor/built_in_modules/news/app/mailers/.gitkeep b/vendor/built_in_modules/news/app/mailers/.gitkeep
new file mode 100644
index 00000000..e69de29b
diff --git a/vendor/built_in_modules/news/app/models/.gitkeep b/vendor/built_in_modules/news/app/models/.gitkeep
new file mode 100644
index 00000000..e69de29b
diff --git a/vendor/built_in_modules/news/app/models/news_bulletin.rb b/vendor/built_in_modules/news/app/models/news_bulletin.rb
new file mode 100644
index 00000000..101ed5d2
--- /dev/null
+++ b/vendor/built_in_modules/news/app/models/news_bulletin.rb
@@ -0,0 +1,182 @@
+# encoding: utf-8
+
+class NewsBulletin
+ include Mongoid::Document
+ include Mongoid::Timestamps
+ include Mongoid::MultiParameterAttributes
+
+ has_one :title, :class_name => "I18nVariable", :as => :language_value, :autosave => true, :dependent => :destroy
+ has_one :subtitle, :class_name => "I18nVariable", :as => :language_value, :autosave => true, :dependent => :destroy
+ has_one :text, :class_name => "I18nVariable", :as => :language_value, :autosave => true, :dependent => :destroy
+ has_and_belongs_to_many :tags, :class_name => "NewsTag"
+
+ field :postdate , :type => Date
+ field :deadline , :type => Date
+ # field :url
+ field :create_user_id
+ field :update_user_id, :class_name => "User"
+
+ field :is_top, :type => Boolean, :default => false
+ field :is_hot, :type => Boolean, :default => false
+ field :is_hidden, :type => Boolean, :default => false
+ field :is_checked, :type => Boolean, :default => false
+ field :is_pending, :type => Boolean, :default => true
+ field :is_rejected, :type => Boolean, :default => false
+
+
+ field :not_checked_reason
+
+ field :public, :type => Boolean, :default => true
+
+ scope :can_display,where(is_checked: true)
+
+ mount_uploader :image, ImageUploader
+
+ belongs_to :news_bulletin_category
+
+ # embeds_many :news_bulletin_links, :cascade_callbacks => true
+ # embeds_many :news_bulletin_files, :cascade_callbacks => true
+
+ has_many :news_bulletin_links, :autosave => true, :dependent => :destroy
+ has_many :news_bulletin_files, :autosave => true, :dependent => :destroy
+
+ accepts_nested_attributes_for :news_bulletin_files, :allow_destroy => true
+ accepts_nested_attributes_for :news_bulletin_links, :allow_destroy => true
+
+ validates_presence_of :title
+
+ before_save :set_key, :update_status
+
+ after_save :save_news_bulletin_links
+ after_save :save_news_bulletin_files
+
+
+ def self.search( search = nil, category_id = nil )
+ if category_id.to_s.size > 0 and search.to_s.size > 0
+ key = /#{search}/
+ find(:all, :conditions => {title: key, news_bulletin_category_id: category_id}).desc( :is_top, :postdate )
+ elsif category_id.to_s.size > 0 and search.to_s.size < 1
+ find(:all, :conditions => {news_bulletin_category_id: category_id}).desc( :is_top, :postdate )
+ elsif search.to_s.size > 0 and category_id.to_s.size < 1
+ key = /#{search}/
+ find(:all, :conditions => {title: key}).desc( :is_top, :postdate )
+ else
+ find(:all).desc( :is_top, :postdate)
+ end
+ end
+
+
+ def self.widget_datas( category_id = nil )
+
+ date_now = Time.now
+
+ # find(:all, :conditions => {:postdate => {"$lte" => Date.today}, deadline: nil} ).desc( :is_top, :postdate)
+ # where( :postdate.lte => date_now ).where( :deadline => nil ).desc(:is_top, :postdate)
+ # any_of({ :title => "test" },{:deadline => nil, :title => "123"})
+
+ if category_id.to_s.size > 0
+ find(:all, :conditions => {news_bulletin_category_id: category_id}).any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate)
+ else
+ any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate)
+ end
+
+ end
+
+ def is_expired?
+ Date.today > self.deadline ? true : false rescue false
+ #some dates might sat as nil so rescue false
+ end
+
+ def is_top?
+ self.is_top
+ end
+
+ def is_hot?
+ self.is_hot
+ end
+
+ def is_hidden?
+ self.is_hidden
+ end
+
+ def is_checked?
+ self.is_checked
+ end
+
+ def is_pending?
+ self.is_pending
+ end
+
+ def is_rejected?
+ self.is_rejected
+ end
+
+
+ def save_news_bulletin_links
+ self.news_bulletin_links.each do |t|
+ if t.should_destroy
+ t.destroy
+ end
+ end
+ end
+
+ def save_news_bulletin_files
+ self.news_bulletin_files.each do |t|
+ if t.should_destroy
+ t.destroy
+ end
+ end
+ end
+
+
+ def title
+ @title ||= I18nVariable.first(:conditions => {:key => 'title', :language_value_id => self.id, :language_value_type => self.class}) rescue nil
+ end
+
+ def subtitle
+ @subtitle ||= I18nVariable.first(:conditions => {:key => 'subtitle', :language_value_id => self.id, :language_value_type => self.class}) rescue nil
+ end
+
+ def text
+ @text ||= I18nVariable.first(:conditions => {:key => 'text', :language_value_id => self.id, :language_value_type => self.class}) rescue nil
+ end
+
+ def self.filter(news_bulletins)
+ news_bulletins.each do |news_bulletin|
+ p "#{news_bulletin.id}/#{news_bulletin.is_top}/#{news_bulletin.is_hot}/#{news_bulletin.is_hidden}"
+ end
+ return nil
+ end
+
+ def sorted_tags
+ tags.order_by(I18n.locale, :asc)
+ end
+
+ protected
+
+ def set_key
+ if title.new_record?
+ title.key = 'title'
+ end
+ if subtitle.new_record?
+ subtitle.key = 'subtitle'
+ end
+ if text.new_record?
+ text.key = 'text'
+ end
+ end
+
+ def update_status
+ if !self.is_pending && !self.is_checked
+ self.is_pending = false
+ self.is_rejected = true
+ self.is_checked = false
+ elsif self.is_checked
+ self.is_pending = false
+ self.is_rejected = false
+ self.is_checked = true
+ end
+ end
+
+
+end
\ No newline at end of file
diff --git a/vendor/built_in_modules/news/app/models/news_bulletin_category.rb b/vendor/built_in_modules/news/app/models/news_bulletin_category.rb
new file mode 100644
index 00000000..45576589
--- /dev/null
+++ b/vendor/built_in_modules/news/app/models/news_bulletin_category.rb
@@ -0,0 +1,25 @@
+# encoding: utf-8
+
+class NewsBulletinCategory
+ include Mongoid::Document
+ include Mongoid::Timestamps
+ include OrbitCoreLib::ObjectAuthable
+
+ ObjectAuthTitlesOptions = %W{submit_new fact_check}
+ AfterObjectAuthUrl = '/panel/news/back_end/news_bulletin_categorys'
+ # include Mongoid::MultiParameterAttributes
+
+ PAYMENT_TYPES = [ "List", "Picture" ]
+
+ field :key
+ field :display
+
+ has_one :i18n_variable, :as => :language_value, :autosave => true, :dependent => :destroy
+
+ has_many :news_bulletins
+
+ def self.from_id(id)
+ NewsBulletinCategory.find(id) rescue nil
+ end
+
+end
\ No newline at end of file
diff --git a/vendor/built_in_modules/news/app/models/news_bulletin_file.rb b/vendor/built_in_modules/news/app/models/news_bulletin_file.rb
new file mode 100644
index 00000000..a75dc01f
--- /dev/null
+++ b/vendor/built_in_modules/news/app/models/news_bulletin_file.rb
@@ -0,0 +1,40 @@
+class NewsBulletinFile
+
+ include Mongoid::Document
+ include Mongoid::Timestamps
+
+ mount_uploader :file, AssetUploader
+
+ # field :filetitle
+ # field :description
+ has_one :filetitle, :class_name => "I18nVariable", :as => :language_value, :autosave => true, :dependent => :destroy
+ has_one :description, :class_name => "I18nVariable", :as => :language_value, :autosave => true, :dependent => :destroy
+
+ # field :to_save, :type => Boolean
+ field :should_destroy, :type => Boolean
+
+ belongs_to :news_bulletin
+ # embedded_in :news_bulletin
+
+ before_save :set_key
+
+ def filetitle
+ @filetitle ||= I18nVariable.first(:conditions => {:key => 'filetitle', :language_value_id => self.id, :language_value_type => self.class}) rescue nil
+ end
+
+ def description
+ @description ||= I18nVariable.first(:conditions => {:key => 'description', :language_value_id => self.id, :language_value_type => self.class}) rescue nil
+ end
+
+ protected
+
+ def set_key
+ if filetitle.new_record?
+ filetitle.key = 'filetitle'
+ end
+ if description.new_record?
+ description.key = 'description'
+ end
+ end
+
+end
diff --git a/vendor/built_in_modules/news/app/models/news_bulletin_link.rb b/vendor/built_in_modules/news/app/models/news_bulletin_link.rb
new file mode 100644
index 00000000..2e56c23c
--- /dev/null
+++ b/vendor/built_in_modules/news/app/models/news_bulletin_link.rb
@@ -0,0 +1,15 @@
+class NewsBulletinLink
+
+ include Mongoid::Document
+ include Mongoid::Timestamps
+
+ field :url
+ # field :name
+
+ has_one :i18n_variable, :as => :language_value, :autosave => true, :dependent => :destroy
+
+ field :should_destroy, :type => Boolean
+
+ # embedded_in :news_bulletin
+ belongs_to :news_bulletin
+end
diff --git a/vendor/built_in_modules/news/app/models/news_tag.rb b/vendor/built_in_modules/news/app/models/news_tag.rb
new file mode 100644
index 00000000..e1b4174c
--- /dev/null
+++ b/vendor/built_in_modules/news/app/models/news_tag.rb
@@ -0,0 +1,11 @@
+class NewsTag < Tag
+
+ has_and_belongs_to_many :news_bulletins
+
+
+ def get_visible_news_bulletins(sort = :name)
+ date_now = Time.now
+ self.news_bulletins.where(:is_hidden => false).any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc(:is_top, sort)
+ end
+
+end
\ No newline at end of file
diff --git a/vendor/built_in_modules/news/app/views/.gitkeep b/vendor/built_in_modules/news/app/views/.gitkeep
new file mode 100644
index 00000000..e69de29b
diff --git a/vendor/built_in_modules/news/app/views/panel/news/back_end/fact_checks/setting.html.erb b/vendor/built_in_modules/news/app/views/panel/news/back_end/fact_checks/setting.html.erb
new file mode 100644
index 00000000..aa7949f9
--- /dev/null
+++ b/vendor/built_in_modules/news/app/views/panel/news/back_end/fact_checks/setting.html.erb
@@ -0,0 +1,46 @@
+<% content_for :page_specific_css do %>
+ <%= stylesheet_link_tag "inc/permission-checkbox" %>
+<% end %>
+<% content_for :page_specific_javascript do %>
+<<<<<<< HEAD
+ <%= javascript_include_tag "bootstrap" %>
+ <%#= javascript_include_tag "inc/permission-checkbox" %>
+ <%#= javascript_include_tag "inc/search" %>
+=======
+ <%= javascript_include_tag "inc/permission-checkbox" %>
+ <%= javascript_include_tag "inc/search" %>
+>>>>>>> 291d5e3a03ba7da62ceb5e3b18012f0c9198dfba
+<% end %>
+<%#= label_tag :fact_check_setting, t("news.news_bulletin.fact_check_setting") %>
+<%= form_tag('', :remote => true) %>
+
+
+
+
+ <%= label_tag :category, t("news.news_bulletin.category") %>
+ <%= select_tag "category_id", options_from_collection_for_select(@news_bulletin_categorys, "id", "key") %>
+ <%= search_field_tag 'user_filter' %>
+
+
+
+
+<%#= label_tag :role, t("admin.roles") %>
+
+<%= content_tag :div do -%>
+ <% form_tag :action => "update_setting" do %>
+ <%= render :partial => "privilege_user", :locals => {:users => @users_array} %>
+
+ <% end -%>
+<% end -%>
+
+
+
\ No newline at end of file
diff --git a/vendor/built_in_modules/news/app/views/panel/news/back_end/news_approvals/_list_table.html.erb.can_del b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_approvals/_list_table.html.erb.can_del
new file mode 100644
index 00000000..0149988f
--- /dev/null
+++ b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_approvals/_list_table.html.erb.can_del
@@ -0,0 +1,15 @@
+<%= news_bulletin_category.key %>
+
+
+ <%= t('news_bulletin.status') %>
+ <%= t('news_bulletin.category') %>
+ <%= t('news_bulletin.title') %>
+ <%= t('news_bulletin.postdate') %>
+ <%= t('news_bulletin.deadline') %>
+ <%= t('news_bulletin.action') %>
+
+
+<% news_bulletin_category.news_bulletins.each do |post| %>
+ <%= render :partial => 'panel/news/back_end/news_bulletins/news_bulletins', :locals => {:post => post,:approval_allow=>true} %>
+<% end %>
+
\ No newline at end of file
diff --git a/vendor/built_in_modules/news/app/views/panel/news/back_end/news_approvals/_privilege_user.html.erb b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_approvals/_privilege_user.html.erb
new file mode 100644
index 00000000..87d4d78e
--- /dev/null
+++ b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_approvals/_privilege_user.html.erb
@@ -0,0 +1,26 @@
+<%= content_tag :div ,:id => "users_checkbox_ary",:class => 'clear' do -%>
+<% sys_users = User.all -%>
+ <% sys_users.each do |user| -%>
+
+
+
+ <% user.sub_roles.each do |sr| %>
+
<%= sr.key %>
+ <% end %>
+ <%= content_tag :div,:data=>{'original-title'=>t('news.news_bulletin.approval_setting_window_title'),:content => "#{user.sub_roles.collect{|sr| sr.key}.join(',')}"},:class=>"checkbox clear" do %>
+
+
+
+ <% if user.avatar? %>
+ <%= image_tag(user.avatar.thumb.url,:class => "member-img") %>
+ <% else %>
+ <%= image_tag "person.png",:class => "member-img" %>
+ <% end %>
+
+ <%= label_tag "lab-user-#{user.id}", (user.name rescue ''),:class=>"member-name",:id=>nil -%>
+ <%= check_box_tag "[users][#{user.id}]", 'true',users.include?(user),:class => "check" -%>
+ <%end -%>
+
+
+ <% end -%>
+<% end -%>
\ No newline at end of file
diff --git a/vendor/built_in_modules/news/app/views/panel/news/back_end/news_approvals/index.html.erb.can_del b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_approvals/index.html.erb.can_del
new file mode 100644
index 00000000..f16f6c93
--- /dev/null
+++ b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_approvals/index.html.erb.can_del
@@ -0,0 +1,50 @@
+<%= render 'panel/news/back_end/news_bulletins/filter' %>
+
+ <%= render 'panel/news/back_end/news_bulletins/news_bulletins' %>
+
+
+ <%= link_to content_tag(:i, nil, :class => 'icon-plus icon-white') + t('admin.add'), new_panel_news_back_end_news_bulletin_path, :class => 'btn btn-primary' %>
+
+
+
\ No newline at end of file
diff --git a/vendor/built_in_modules/news/app/views/panel/news/back_end/news_approvals/setting.html.erb b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_approvals/setting.html.erb
new file mode 100644
index 00000000..aca35fd0
--- /dev/null
+++ b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_approvals/setting.html.erb
@@ -0,0 +1,40 @@
+<% content_for :page_specific_css do %>
+ <%= stylesheet_link_tag "inc/permission-checkbox" %>
+<% end %>
+<% content_for :page_specific_javascript do %>
+ <%= javascript_include_tag "inc/permission-checkbox" %>
+ <%= javascript_include_tag "inc/search" %>
+<% end %>
+<%#= label_tag :fact_check_setting, t("news.news_bulletin.fact_check_setting") %>
+<%= form_tag('', :remote => true) %>
+
+
+
+
+ <%= label_tag :category, t("news.news_bulletin.category") %>
+ <%= select_tag "category_id", options_from_collection_for_select(@news_bulletin_categorys, "id", "key") %>
+ <%= search_field_tag 'user_filter' %>
+
+
+
+
+<%#= label_tag :role, t("admin.roles") %>
+
+<%= content_tag :div do -%>
+ <% form_tag :action => "update_setting" do %>
+ <%= render :partial => "privilege_user", :locals => {:users => @users_array} %>
+
+ <% end -%>
+<% end -%>
+
+
+
\ No newline at end of file
diff --git a/vendor/built_in_modules/news/app/views/panel/news/back_end/news_approvals/setting.js.erb b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_approvals/setting.js.erb
new file mode 100644
index 00000000..a01c9d6a
--- /dev/null
+++ b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_approvals/setting.js.erb
@@ -0,0 +1 @@
+$("#users_checkbox_ary").replaceWith('<%= (render :partial => 'privilege_user', :locals => {:users => @users_array}).html_safe%>');
\ No newline at end of file
diff --git a/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletin_categorys/_form.html.erb b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletin_categorys/_form.html.erb
new file mode 100644
index 00000000..02f071d9
--- /dev/null
+++ b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletin_categorys/_form.html.erb
@@ -0,0 +1,37 @@
+<% # encoding: utf-8 %>
+
+<%= form_for(@news_bulletin_category, :remote => true, :url => @url) do |f| %>
+
+ <%= (@news_bulletin_category.new_record? ? 'Add' : 'Edit') %>
+
+
+ <%= f.label :key %>
+ <%= f.text_field :key %>
+
+
+
+
+
+ <%#= f.label :display %>
+ <%#= f.radio_button :display, "List" List%>
+ <%#= f.radio_button :display, "Picture" Picture%>
+ <%# 顯示方式是設定在前台頁面時,資訊所呈現的樣式 %>
+
+
+
+ <%= f.submit t('submit'), :class=>'btn btn-primary' %>
+
+
+<% end %>
+
\ No newline at end of file
diff --git a/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletin_categorys/_news_bulletin_category.html.erb b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletin_categorys/_news_bulletin_category.html.erb
new file mode 100644
index 00000000..01d58f98
--- /dev/null
+++ b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletin_categorys/_news_bulletin_category.html.erb
@@ -0,0 +1,15 @@
+
+
+
+ <%= news_bulletin_category.key %>
+
+
+ <%= link_to t('news_bulletin_category.edit'), edit_panel_news_back_end_news_bulletin_category_path(news_bulletin_category), :remote => true %>
+ <%= link_to t('news_bulletin_category.delete'), panel_news_back_end_news_bulletin_category_path(news_bulletin_category), :confirm => t('news.sure?'), :method => :delete, :remote => true %>
+
+
+
+ <% @site_valid_locales.each do |locale| %>
+ <%= news_bulletin_category.i18n_variable[locale] rescue nil %>
+ <% end %>
+
diff --git a/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletin_categorys/_quick_edit_qe.html.erb b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletin_categorys/_quick_edit_qe.html.erb
new file mode 100644
index 00000000..d59e55b7
--- /dev/null
+++ b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletin_categorys/_quick_edit_qe.html.erb
@@ -0,0 +1,28 @@
+<% # encoding: utf-8 %>
+
+
+
+
+ <%= f.label :key %>
+ <%= f.text_field :key %>
+
+
+
+
+ <%= f.label :display %>
+ <%= f.radio_button :display, "List" %>List
+ <%= f.radio_button :display, "Picture" %>Picture
+ 顯示方式是設定在前台頁面時,資訊所呈現的樣式
+
+
diff --git a/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletin_categorys/create.js.erb b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletin_categorys/create.js.erb
new file mode 100644
index 00000000..3fe18f5e
--- /dev/null
+++ b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletin_categorys/create.js.erb
@@ -0,0 +1,2 @@
+$('<%= j render :partial => 'news_bulletin_category', :collection => [@news_bulletin_category] %>').appendTo('#news_bulletin_categorys').hide().fadeIn();
+$("#new_news_bulletin_category")[0].reset();
\ No newline at end of file
diff --git a/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletin_categorys/destroy.js.erb b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletin_categorys/destroy.js.erb
new file mode 100644
index 00000000..0ffa06b1
--- /dev/null
+++ b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletin_categorys/destroy.js.erb
@@ -0,0 +1 @@
+$("#<%= dom_id @news_bulletin_category %>").remove();
\ No newline at end of file
diff --git a/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletin_categorys/edit.html.erb b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletin_categorys/edit.html.erb
new file mode 100644
index 00000000..584a0085
--- /dev/null
+++ b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletin_categorys/edit.html.erb
@@ -0,0 +1,7 @@
+<%= t('news.editing_news_class') %>
+
+<%= form_for @news_bulletin_category, :url => panel_news_back_end_news_bulletin_category_path(@news_bulletin_category) do |f| %>
+ <%= render :partial => 'form', :locals => {:f => f} %>
+<% end %>
+
+<%= link_back %>
diff --git a/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletin_categorys/edit.js.erb b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletin_categorys/edit.js.erb
new file mode 100644
index 00000000..eaff01fa
--- /dev/null
+++ b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletin_categorys/edit.js.erb
@@ -0,0 +1 @@
+$("#form > form").replaceWith("<%= j render "form" %>");
\ No newline at end of file
diff --git a/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletin_categorys/index.html.erb b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletin_categorys/index.html.erb
new file mode 100644
index 00000000..caa4981f
--- /dev/null
+++ b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletin_categorys/index.html.erb
@@ -0,0 +1,23 @@
+
+<%= flash_messages %>
+
+
+
+
+ <%= t('news_bulletin_category.key') %>
+ <% @site_valid_locales.each do |locale| %>
+ <%= I18nVariable.first(:conditions => {:key => locale})[I18n.locale] %>
+ <% end %>
+
+
+
+
+ <%= render :partial => 'news_bulletin_category', :collection => @news_bulletin_categorys %>
+
+
+
+
+<%= render :partial => "form" %>
+
+
+
diff --git a/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletin_categorys/new.html.erb b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletin_categorys/new.html.erb
new file mode 100644
index 00000000..95ec68d2
--- /dev/null
+++ b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletin_categorys/new.html.erb
@@ -0,0 +1,19 @@
+<% content_for :secondary do %>
+<%= render :partial => '/panel/news/back_end/news_secondary' %>
+<% end -%>
+
+<%= flash_messages %>
+
+
+
+
+
+
+
+<%= t('news_bulletin_category.new_news_class') %>
+<%= form_for @news_bulletin_category, :url => panel_news_back_end_news_bulletin_categorys_path do |f| %>
+ <%= render :partial => 'form', :locals => {:f => f} %>
+<% end %>
+
+<%= link_back %>
+
diff --git a/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletin_categorys/new.js.erb b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletin_categorys/new.js.erb
new file mode 100644
index 00000000..40061b9f
--- /dev/null
+++ b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletin_categorys/new.js.erb
@@ -0,0 +1 @@
+$("#form > form").replaceWith("<%= j render "form" %>");
diff --git a/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletin_categorys/update.js.erb b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletin_categorys/update.js.erb
new file mode 100644
index 00000000..9b11d5d5
--- /dev/null
+++ b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletin_categorys/update.js.erb
@@ -0,0 +1,4 @@
+$("#<%= dom_id @news_bulletin_category %>").replaceWith("<%= j render :partial => 'news_bulletin_category', :collection => [@news_bulletin_category] %>");
+<% @news_bulletin_category = NewsBulletinCategory.new(:display => 'List') # reset for new form %>
+$(".edit_news_bulletin_category").replaceWith("<%= j render "form" %>")
+$(".new_news_bulletin_category")[0].reset();
\ No newline at end of file
diff --git a/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_clear_filters.html.erb b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_clear_filters.html.erb
new file mode 100644
index 00000000..9cc95e0d
--- /dev/null
+++ b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_clear_filters.html.erb
@@ -0,0 +1,3 @@
+
+ <%= link_to content_tag(:i, nil, :class => 'icons-brush-large') + t(:clear), panel_news_back_end_news_bulletins_path(:filter => @filter, :sort => params[:sort], :direction => params[:direction], :clear => true, :type => type), :class => "btn js_history" %>
+
\ No newline at end of file
diff --git a/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_file.html.erb b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_file.html.erb
new file mode 100644
index 00000000..9e0943ed
--- /dev/null
+++ b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_file.html.erb
@@ -0,0 +1,37 @@
+
+
+ <% news_bulletin_files.each do | news_bulletin_file | %>
+
+ <%= fields_for 'news_bulletin[news_bulletin_files][]', news_bulletin_file, :index => nil do |f| %>
+
+
" class='list_item'>
+
+ <%= f.label :file %>
+ <%#= file_field_tag 'news_bulletin[file]' %>
+ <%= f.file_field :file %>
+
+ <%= f.label :file_title %>
+ <%= f.text_field :filetitle %>
+
+ <%= f.label :file_description %>
+ <%= f.text_field :description %>
+
+
+ <% if news_bulletin_file.new_record? %>
+ <%= t(:delete) %>
+ <% else %>
+ <%= f.hidden_field :id %>
+ <% if news_bulletin_file.is_built_in? %>
+
+ <% else %>
+ <%= t(:delete) %>
+ <%= f.hidden_field :_destroy, :value => nil, :class => 'should_destroy' %>
+ <% end %>
+ <% end %>
+
+
+
+ <% end %>
+
+ <% end %>
+
diff --git a/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_filter.html.erb b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_filter.html.erb
new file mode 100644
index 00000000..a8c1c51a
--- /dev/null
+++ b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_filter.html.erb
@@ -0,0 +1,37 @@
+
+
+
+
+ <%= render 'filter_status' %>
+
+
+ <%= render 'filter_categories' %>
+
+
+ <%= render 'filter_tags' %>
+
+
+
+
+
+<% content_for :page_specific_javascript do %>
+ <%= javascript_include_tag "sort_header" %>
+<% end %>
\ No newline at end of file
diff --git a/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_filter_categories.html.erb b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_filter_categories.html.erb
new file mode 100644
index 00000000..eb301ec0
--- /dev/null
+++ b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_filter_categories.html.erb
@@ -0,0 +1,6 @@
+
+ <% @news_bulletin_categories.each do |category| -%>
+ <%= link_to category.i18n_variable[I18n.locale], panel_news_back_end_news_bulletins_path(:filter => @filter, :new_filter => {:type => 'categories', :id => category.id}, :sort => params[:sort], :direction => params[:direction], :sort_options => params[:sort_options]), :class => "btn js_history#{is_filter_active?('categories', category.id)}" %>
+ <% end -%>
+
+<%= render :partial => 'clear_filters', :locals => {:type => 'categories'} %>
\ No newline at end of file
diff --git a/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_filter_status.html.erb b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_filter_status.html.erb
new file mode 100644
index 00000000..6611e81b
--- /dev/null
+++ b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_filter_status.html.erb
@@ -0,0 +1,9 @@
+
+ <%= link_to t(:top), panel_news_back_end_news_bulletins_path(:filter => @filter, :new_filter => {:type => 'status', :id => 'is_top'}, :sort => params[:sort], :direction => params[:direction], :sort_options => params[:sort_options]), :class => "btn js_history#{is_filter_active?('status', 'is_top')}" %>
+ <%= link_to t(:hot), panel_news_back_end_news_bulletins_path(:filter => @filter, :new_filter => {:type => 'status', :id => 'is_hot'}, :sort => params[:sort], :direction => params[:direction], :sort_options => params[:sort_options]), :class => "btn js_history#{is_filter_active?('status', 'is_hot')}" %>
+ <%= link_to t(:hidden), panel_news_back_end_news_bulletins_path(:filter => @filter, :new_filter => {:type => 'status', :id => 'is_hidden'}, :sort => params[:sort], :direction => params[:direction], :sort_options => params[:sort_options]), :class => "btn js_history#{is_filter_active?('status', 'is_hidden')}" %>
+ <%= link_to t(:pending), panel_news_back_end_news_bulletins_path(:filter => @filter, :new_filter => {:type => 'status', :id => 'is_pending'}, :sort => params[:sort], :direction => params[:direction], :sort_options => params[:sort_options]), :class => "btn js_history#{is_filter_active?('status', 'is_pending')}" %>
+ <%= link_to t(:passed), panel_news_back_end_news_bulletins_path(:filter => @filter, :new_filter => {:type => 'status', :id => 'is_checked'}, :sort => params[:sort], :direction => params[:direction], :sort_options => params[:sort_options]), :class => "btn js_history#{is_filter_active?('status', 'is_checked')}" %>
+ <%= link_to t(:rejected), panel_news_back_end_news_bulletins_path(:filter => @filter, :new_filter => {:type => 'status', :id => 'is_rejected'}, :sort => params[:sort], :direction => params[:direction], :sort_options => params[:sort_options]), :class => "btn js_history#{is_filter_active?('status', 'is_rejected')}" %>
+
+<%= render :partial => 'clear_filters', :locals => {:type => 'status'} %>
\ No newline at end of file
diff --git a/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_filter_tags.html.erb b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_filter_tags.html.erb
new file mode 100644
index 00000000..3fe385c5
--- /dev/null
+++ b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_filter_tags.html.erb
@@ -0,0 +1,6 @@
+
+ <% @tags.each do |tag| -%>
+ <%= link_to tag[I18n.locale], panel_news_back_end_news_bulletins_path(:filter => @filter, :new_filter => {:type => 'tags', :id => tag.id}, :sort => params[:sort], :direction => params[:direction], :sort_options => params[:sort_options]), :class => "btn js_history#{is_filter_active?('tags', tag.id)}" %>
+ <% end -%>
+
+<%= render :partial => 'clear_filters', :locals => {:type => 'tags'} %>
\ No newline at end of file
diff --git a/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_form.html.erb b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_form.html.erb
new file mode 100644
index 00000000..c7dfd155
--- /dev/null
+++ b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_form.html.erb
@@ -0,0 +1,310 @@
+<% # encoding: utf-8 %>
+
+
+ <%= f.error_messages %>
+
+
+
+
+
+
+
+
+
+
+
+ <% if params[:action] != 'new' %>
+
+ <% elsif current_user.admin? %>
+ <%= f.hidden_field :is_checked,:value => true%>
+ <% end %>
+
+
+
+
+
+
+
+
+
+ <%= f.label :category %>
+ <%= f.select :news_bulletin_category_id, @news_bulletin_categorys.collect{|t| [ t.i18n_variable[I18n.locale], t.id ]}, {}, :class => "input-medium" %>
+
+
+
+
+
+ <%# @site_valid_locales.each_with_index do |locale, i| %>
+ <% site_valid_locales_default_head.each_with_index do |locale, i| %>
+
+
">
+
+
+ <%= f.label :title %>
+ <%= f.fields_for :title, (@news_bulletin.new_record? ? @news_bulletin.build_title : @news_bulletin.title ) do |f| %>
+ <%= I18nVariable.from_locale(locale) %>
+ <%= f.text_field locale, :class=>'post-title' %>
+ <% end %>
+
+
+
+ <%= f.label :subtitle %>
+ <%= f.fields_for :subtitle, (@news_bulletin.new_record? ? @news_bulletin.build_subtitle : @news_bulletin.subtitle ) do |f| %>
+ <%= I18nVariable.from_locale(locale) %>
+ <%= f.text_area locale, :style=>"width:100%", :class => 'tinymce_textarea' %>
+ <% end %>
+
+
+
+ <%= f.label :text %>
+ <%= f.fields_for :text, (@news_bulletin.new_record? ? @news_bulletin.build_text : @news_bulletin.text ) do |f| %>
+ <%= I18nVariable.from_locale(locale) %>
+ <%= f.text_area locale, :style=>"width:100%", :class => 'tinymce_textarea' %>
+ <% end %>
+
+
+
+
+ <% end %>
+
+
+
+
+
+
+
+
+
+
+ <%= f.submit t('submit'), :class=>'btn btn-primary' %>
+ <%= link_to t('cancel'), get_go_back, :class=>"btn" %>
+
+
+
+
+
+
+<% content_for :page_specific_javascript do %>
+ <%= javascript_include_tag "inc/jquery.imagesloaded.js" %>
+
+<% end %>
diff --git a/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_form_news_bulletin_file.html.erb b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_form_news_bulletin_file.html.erb
new file mode 100644
index 00000000..27867f49
--- /dev/null
+++ b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_form_news_bulletin_file.html.erb
@@ -0,0 +1,72 @@
+
+ " class='list_item'>
+
+
+
+ <%= f.file_field :file %>
+ <%= form_news_bulletin_file.file.file ? ( link_to t(:view), form_news_bulletin_file.file.url, {:class => 'btn', :target => '_blank', :title => t(:view)} ) : '' %>
+
+
+
+
+
+
+
+ <% @site_valid_locales.each_with_index do |locale, i| %>
+
+
">
+
+ <%= f.fields_for :filetitle, (form_news_bulletin_file.new_record? ? form_news_bulletin_file.build_filetitle : form_news_bulletin_file.filetitle ) do |f| %>
+
+
<%= I18nVariable.first(:conditions => {:key => locale})[I18n.locale] %>
+
+ <%= f.text_field locale, :id => "link-#{locale}" %>
+
+
+ <% end %>
+
+
+
+ <% end %>
+
+
+
+
+
+
+
+
+ <% @site_valid_locales.each_with_index do |locale, i| %>
+
+
">
+
+ <%= f.fields_for :description, (form_news_bulletin_file.new_record? ? form_news_bulletin_file.build_description : form_news_bulletin_file.description ) do |f| %>
+
+
<%= I18nVariable.first(:conditions => {:key => locale})[I18n.locale] %>
+
+ <%= f.text_field locale, :id => "link-#{locale}" %>
+
+
+ <% end %>
+
+
+
+ <% end %>
+
+
+
+
+
+
+ <% if form_news_bulletin_file.new_record? %>
+
+ <% else %>
+ <%= f.hidden_field :id %>
+
+ <%= f.hidden_field :should_destroy, :value => nil, :class => 'should_destroy' %>
+ <% end %>
+
+
+
+
+
diff --git a/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_form_news_bulletin_link.html.erb b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_form_news_bulletin_link.html.erb
new file mode 100644
index 00000000..f7d58919
--- /dev/null
+++ b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_form_news_bulletin_link.html.erb
@@ -0,0 +1,47 @@
+
+ " class='list_item'>
+
+
+
+
+ <%= f.text_field :url %>
+
+
+
+
+
+
+
+
+ <% @site_valid_locales.each_with_index do |locale, i| %>
+
+
">
+
+ <%= f.fields_for :i18n_variable, (form_news_bulletin_link.new_record? ? form_news_bulletin_link.build_i18n_variable : form_news_bulletin_link.i18n_variable) do |f| %>
+
+
<%= I18nVariable.first(:conditions => {:key => locale})[I18n.locale] %>
+
+ <%= f.text_field locale, :id => "link-#{locale}", :class => "input-xlarge" %>
+
+
+ <% end %>
+
+
+
+ <% end %>
+
+
+
+
+
+
+ <% if form_news_bulletin_link.new_record? %>
+
+ <% else %>
+ <%= f.hidden_field :id %>
+
+ <%= f.hidden_field :should_destroy, :value => nil, :class => 'should_destroy' %>
+ <% end %>
+
+
+
diff --git a/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_list_news_bulletin_file.html.erb b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_list_news_bulletin_file.html.erb
new file mode 100644
index 00000000..a57a5aed
--- /dev/null
+++ b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_list_news_bulletin_file.html.erb
@@ -0,0 +1,22 @@
+
+
+ <%= list_news_bulletin_file.file.file ? ( link_to list_news_bulletin_file.filetitle.zh_tw, list_news_bulletin_file.file.url, {:target => '_blank', :title => list_news_bulletin_file.description.zh_tw} ) : list_news_bulletin_file.filetitle.zh_tw %>
+ <%= list_news_bulletin_file.file.file ? ( link_to list_news_bulletin_file.filetitle.en, list_news_bulletin_file.file.url, {:target => '_blank', :title => list_news_bulletin_file.description.en} ) : list_news_bulletin_file.filetitle.en %>
+
+
+
+ <%= fields_for "news_bulletin[news_bulletin_files_attributes][]", list_news_bulletin_file, :index => list_news_bulletin_file_counter do |f| %>
+ <%= f.hidden_field :id %>
+ <%= hidden_field_tag :tr, (dom_id list_news_bulletin_file) %>
+
+ <%= f.hidden_field :_destroy, :value => nil , :class => 'should_destroy' %>
+ <% end %>
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_list_news_bulletin_link.html.erb b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_list_news_bulletin_link.html.erb
new file mode 100644
index 00000000..806fac75
--- /dev/null
+++ b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_list_news_bulletin_link.html.erb
@@ -0,0 +1,15 @@
+
+ <%= link_to list_news_bulletin_link.i18n_variable.zh_tw, list_news_bulletin_link.url, :target => '_blank' %>
+ <%= link_to list_news_bulletin_link.i18n_variable.en, list_news_bulletin_link.url, :target => '_blank' %>
+
+
+
+ <%= fields_for "news_bulletin[news_bulletin_links_attributes][]", list_news_bulletin_link, :index => list_news_bulletin_link_counter do |f| %>
+ <%= f.hidden_field :id %>
+ <%= hidden_field_tag :tr, (dom_id list_news_bulletin_link) %>
+
+ <%= f.hidden_field :_destroy, :value => nil, :class => 'should_destroy' %>
+ <% end %>
+
+
+
diff --git a/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_news_bulletin.html.erb b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_news_bulletin.html.erb
new file mode 100644
index 00000000..c800bf18
--- /dev/null
+++ b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_news_bulletin.html.erb
@@ -0,0 +1,67 @@
+
+ <%= check_box_tag 'to_delete[]', news_bulletin.id, false, :class => "checkbox_in_list" %>
+
+
+
+ <% if news_bulletin.is_top? %>
+ <%= t(:top) %>
+ <% end %>
+ <% if news_bulletin.is_hot? %>
+ <%= t(:hot) %>
+ <% end %>
+ <% if news_bulletin.is_hidden? %>
+ <%= t(:hidden) %>
+ <% end %>
+ <% if news_bulletin.is_pending? %>
+ <%= t(:pending) %>
+ <% end %>
+ <% if news_bulletin.is_checked? %>
+ <%= t(:passed) %>
+ <% end %>
+ <% if news_bulletin.is_rejected? %>
+ <%= t(:rejected) %>
+ <% end %>
+
+
+
+ <%= news_bulletin.news_bulletin_category.i18n_variable[I18n.locale] %>
+
+ <%= link_to news_bulletin.title[I18n.locale], panel_news_front_end_news_bulletin_path(news_bulletin, :category_id => news_bulletin.news_bulletin_category.id) rescue ''%>
+
+
+ <% if current_user.admin? || (!news_bulletin.is_rejected? && !news_bulletin.is_checked?) %>
+ <%= link_to t('news_bulletin.edit'), edit_panel_news_back_end_news_bulletin_path(news_bulletin) %>
+
+ <%= t(:quick_edit) %>
+
+
+ <%#= debugger %>
+ <%#= a=1 %>
+ <% if (news_bulletin.news_bulletin_category.authed_users('fact_check').include?(current_user) or is_manager?) and !news_bulletin.is_expired? %>
+ <%= link_to t('news.news_bulletin.approval'), edit_panel_news_back_end_news_bulletin_path(news_bulletin) %> <%#= #TODO add ancher so user can quick access into that part %>
+ <% end %>
+ <% end %>
+ <%= link_to t('news_bulletin.delete'), panel_news_back_end_news_bulletin_path(news_bulletin), :confirm => t('news.sure?'), :method => :delete, :remote => true %>
+
+
+
+ <%= news_bulletin.postdate %>
+ <%= (news_bulletin.deadline) ? news_bulletin.deadline : t('news_bulletin.no_deadline') %>
+
+
+
+ <% news_bulletin.sorted_tags.each do |tag| %>
+ <%= tag[I18n.locale] %>
+ <% end %>
+
+
+
+ <%= User.from_id(news_bulletin.update_user_id).name rescue ''%>
+
+
diff --git a/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_news_bulletin_file_qe.html.erb b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_news_bulletin_file_qe.html.erb
new file mode 100644
index 00000000..211daaa6
--- /dev/null
+++ b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_news_bulletin_file_qe.html.erb
@@ -0,0 +1,51 @@
+<% # encoding: utf-8 %>
+
+ <%= form_for @news_bulletin_file, :url => @file_url, :html => {:id => 'ajaxForm', :multipart => true} do |f| %>
+
+
+
+
+
+ <%= f.file_field :file %>
+
+
+
+ <%= f.fields_for :filetitle, (@news_bulletin_file.new_record? ? @news_bulletin_file.build_filetitle : @news_bulletin_file.filetitle ) do |f| %>
+ <% @site_valid_locales.each do |locale| %>
+
+
Name <%= I18nVariable.first(:conditions => {:key => locale})[I18n.locale] %>
+
+ <%= f.text_field locale, :id => "file-#{locale}", :class => "input-xlarge" %>
+
+
+ <% end %>
+ <% end %>
+
+ <%= f.fields_for :description, (@news_bulletin_file.new_record? ? @news_bulletin_file.build_description : @news_bulletin_file.description ) do |f| %>
+ <% @site_valid_locales.each do |locale| %>
+
+
Description <%= I18nVariable.first(:conditions => {:key => locale})[I18n.locale] %>
+
+ <%= f.text_field locale, :id => "file-#{locale}", :class => "input-xlarge" %>
+
+
+ <% end %>
+ <% end %>
+
+
+
+
+
+
+ <% end %>
+
+
+
\ No newline at end of file
diff --git a/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_news_bulletin_link_qe.html.erb b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_news_bulletin_link_qe.html.erb
new file mode 100644
index 00000000..d4613e38
--- /dev/null
+++ b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_news_bulletin_link_qe.html.erb
@@ -0,0 +1,36 @@
+<% # encoding: utf-8 %>
+
+<%= form_for(@news_bulletin_link, :remote => true, :url => @link_url) do |f| %>
+
+
+
+
+
URL
+
+ <%= f.text_field :url %>
+
+
+
+ <%= f.fields_for :i18n_variable, (@news_bulletin_link.new_record? ? @news_bulletin_link.build_i18n_variable : @news_bulletin_link.i18n_variable) do |f| %>
+ <% @site_valid_locales.each do |locale| %>
+
+ <%= label_tag "link-#{locale}", "Name-#{I18nVariable.from_locale(locale)}", :class => 'control-label' %>
+
+ <%#= f.text_field locale, :class => 'input-xxlarge' %>
+ <%= f.text_field locale %>
+
+
+ <% end %>
+ <% end %>
+
+