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 4558cb03e..600a289b6 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 411297ce9..657543191 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 4860ea2e8..8e9f8bb6a 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 c5f32cbb4..b0da6df6e 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 ce037d395..60659036b 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 6c211d011..5271af8f5 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 6fde1f2b1..3b0b3dcd7 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 dfec0dd9a..5eea7f9fd 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 8438c8e0f..e8f25163e 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 96277c5ee..8ee3ca8e1 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 000000000..78943a336 --- /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') %>

+ +
+
+

<%= t('announcement.tag_cloud') %>

+ +
+ + \ 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 3e7818231..5f3193406 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 dfe9e55fe..11e79fcca 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 0de9877a1..6e60960fc 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 000000000..1463de6df --- /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 000000000..a86130f60 --- /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 000000000..80cf031a6 --- /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 000000000..d1a18aec7 --- /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 000000000..ee1ca0a07 --- /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 000000000..e69de29bb 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 000000000..aea46d72a --- /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 000000000..89a5e569d --- /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 000000000..e69de29bb 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 000000000..e69de29bb 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 000000000..307a4acd8 --- /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 000000000..c6cb33ea3 --- /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 000000000..83ca09f83 --- /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 000000000..806aced21 --- /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 000000000..15ae4f646 --- /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 000000000..f5c2b5e63 --- /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 000000000..970b426e1 --- /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 000000000..12d0cac69 --- /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 000000000..7d678cada --- /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 000000000..e69de29bb 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 000000000..e69de29bb 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 000000000..e69de29bb 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 000000000..101ed5d2b --- /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 000000000..45576589f --- /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 000000000..a75dc01fc --- /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 000000000..2e56c23c2 --- /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 000000000..e1b4174c7 --- /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 000000000..e69de29bb 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 000000000..aa7949f9e --- /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 :role, t("admin.roles") %> +
+<%= content_tag :div do -%> + <% form_tag :action => "update_setting" do %> + <%= render :partial => "privilege_user", :locals => {:users => @users_array} %> +
+ <%= submit_tag "Update", :class => 'btn' %> +
+ <% 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 000000000..0149988fb --- /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 %>

+ + + + + + + + + + +<% 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 %> +
<%= t('news_bulletin.status') %><%= t('news_bulletin.category') %><%= t('news_bulletin.title') %><%= t('news_bulletin.postdate') %><%= t('news_bulletin.deadline') %><%= t('news_bulletin.action') %>
\ 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 000000000..87d4d78e0 --- /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| %> + + <% 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 000000000..f16f6c93a --- /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 000000000..aca35fd0f --- /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 :role, t("admin.roles") %> +
+<%= content_tag :div do -%> + <% form_tag :action => "update_setting" do %> + <%= render :partial => "privilege_user", :locals => {:users => @users_array} %> +
+ <%= submit_tag "Update", :class => 'btn' %> +
+ <% 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 000000000..a01c9d6ab --- /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 000000000..02f071d94 --- /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.fields_for :i18n_variable, (@news_bulletin_category.new_record? ? @news_bulletin_category.build_i18n_variable : @news_bulletin_category.i18n_variable) do |f| %> + <% @site_valid_locales.each do |locale| %> +
+ <%= label_tag "name-#{locale}", "Name-#{I18nVariable.from_locale(locale)}", :class => 'control-label' %> +
+ <%= f.text_field locale, :class => 'input-xxlarge' %> +
+
+ <% end %> + <% end %> +
+ +
+ <%#= 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 000000000..01d58f986 --- /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 %> +
+ +
+ + <% @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 000000000..d59e55b7c --- /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.fields_for :i18n_variable, news_bulletin_category.i18n_variable do |f| %> + <% @site_valid_locales.each do |locale| %> +
+ <%= label_tag "title-#{locale}", "Title-#{I18nVariable.from_locale(locale)}", :class => 'control-label' %> +
+ <%= f.text_field locale, :class => 'input-xxlarge' %> +
+
+ <% end %> + <% end %> +
+ +
+ <%= 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 000000000..3fe18f5e7 --- /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 000000000..0ffa06b1d --- /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 000000000..584a0085d --- /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 000000000..eaff01fa3 --- /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 000000000..caa4981f9 --- /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 %> + + + + + + <% @site_valid_locales.each do |locale| %> + + <% end %> + + + + + <%= render :partial => 'news_bulletin_category', :collection => @news_bulletin_categorys %> + + +
<%= t('news_bulletin_category.key') %><%= I18nVariable.first(:conditions => {:key => locale})[I18n.locale] %>
+ +
<%= 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 000000000..95ec68d27 --- /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 000000000..40061b9fc --- /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 000000000..9b11d5d58 --- /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 000000000..9cc95e0d5 --- /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 000000000..9e0943ed0 --- /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 000000000..a8c1c51aa --- /dev/null +++ b/vendor/built_in_modules/news/app/views/panel/news/back_end/news_bulletins/_filter.html.erb @@ -0,0 +1,37 @@ + + +<% 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 000000000..eb301ec06 --- /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 000000000..6611e81b7 --- /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 000000000..3fe385c5a --- /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 000000000..c7dfd1558 --- /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 %> + +
+
+
+ +
+

Picture

+
+
+ +
+ + <% if @news_bulletin.image %> + <%= image_tag @news_bulletin.image, :width=> "456", :height=>'700' rescue ''%> + <% else %> + + <% end %> + +
+
+ + +
+ +
+ <% if @news_bulletin.image.file %> + <%= f.check_box :remove_image %> + <%= t('news.刪除已上傳檔案') %> + <% end %> +
+
+
+
+ + + +
+
+ +
+

Date

+
+
+ +
+ <%= f.date_select :postdate, {:use_month_numbers => true, :order => [:day, :month, :year] }, {:class => 'input-small'} %> +
+
+
+ +
+ <%= f.date_select :deadline, {:use_month_numbers => true, :prompt => { :month => 'Month', :day => 'Day', :year => 'Year'}, :order => [:day, :month, :year] }, {:class => 'input-small'} %> +
+
+
+
+ +
+
+ +
+

Status

+
+
+ <%= content_tag :label,:class => "checkbox inline" do -%> + <%= f.check_box :is_top %> + <%= t('top') %> + <% end -%> + <%= content_tag :label,:class => "checkbox inline" do -%> + <%= f.check_box :is_hot %> + <%= t('hot') %> + <% end -%> + <%= content_tag :label,:class => "checkbox inline" do -%> + <%= f.check_box :is_hidden %> + <%= t('hide') %> + <% end -%> +
+
+
+ +
+
+ +
+

Tags

+
+ <% @tags.each do |tag| %> + <%= content_tag :label,:class => "checkbox inline" do -%> + <%= check_box_tag 'news_bulletin[tag_ids][]', tag.id, @news_bulletin.tag_ids.include?(tag.id)%> + <%= tag[I18n.locale] %> + <% end %> + <% end %> +
+
+ <% if params[:action] != 'new' %> +
+
+ +
+ +

Audit

+
+ + <% if is_manager? || @news_bulletin.news_bulletin_category.authed_users('fact_check').include?(current_user) || current_user.admin? %> +
+ <%= f.label :approval_stat, t('news.news_bulletin.approval_stat') %> + <%= content_tag :label,:class => "radio inline" do -%> + <%= f.radio_button :is_checked, true , {:class => 'privacy'} %> + <%= t('news.news_bulletin.approval_pass') %> + <% end -%> + <%= content_tag :label,:class => "radio inline" do -%> + <%= f.radio_button :is_checked, false, (!@news_bulletin.is_checked ? {:checked => true, :class => 'privacy'} : {})%> + <%= t('news.news_bulletin.approval_not_pass') %> + <% end -%> +
+ <%= label :is_checked_false, t('news.news_bulletin.approval_not_pass_reason') %> + <%= f.text_field :not_checked_reason %> +
+ +
+ <% end %> +
+
+ <% 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 %> + +
+ +
+ +
+
+ +
+

File

+
+ +
+ + + + + + + + + + + + + + + + + + <% @news_bulletin.news_bulletin_files.each_with_index do |news_bulletin_file, i| %> + <%#= fields_for "news_bulletin[news_bulletin_files][]", news_bulletin_file do |f| %> + <%= f.fields_for :news_bulletin_files, news_bulletin_file do |f| %> + <%= render :partial => 'form_news_bulletin_file', :object => news_bulletin_file, :locals => {:f => f, :i => i} %> + <% end %> + <% end %> + + +
FileName<%= t('description') %>
+
+ <%= hidden_field_tag 'news_bulletin_file_field_count', @news_bulletin.news_bulletin_files.count %> + <%= t(:add) %> +
+
+ +
+ +
+
+
+ +
+ +
+ +
+ <%= 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 000000000..27867f49b --- /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| %> +
+ +
+ <%= 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| %> +
+ +
+ <%= 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 000000000..f7d58919b --- /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| %> +
+ +
+ <%= 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 000000000..a57a5aedb --- /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 000000000..806fac757 --- /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 000000000..c800bf18b --- /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 ''%> +
+ +
+ + <%= 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 000000000..211daaa6d --- /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| %> + + + + + + + + <% 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 000000000..d4613e385 --- /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| %> + + + +