updates and added sections

This commit is contained in:
rulingcom 2025-05-12 23:44:04 +08:00
parent f2c186797a
commit 8fbdcd65ac
40 changed files with 317 additions and 314 deletions

View File

@ -342,9 +342,6 @@ class Admin::CurationsController < OrbitAdminController
bps[:is_hot] = bulletin.is_hot
bps[:is_hidden] = bulletin.is_hidden
end
if !defined?(Calendar).nil?
bps = update_calendar(bps,bulletin)
end
bulletin.update_attributes(bps)
bulletin.update_user_id = current_user.id
bulletin.expirable_created_at = nil

View File

@ -97,8 +97,8 @@ class CurationsController < ApplicationController
}
end
locale = OrbitHelper.get_site_locale.to_s
files = a.bulletin_files.to_fronted(locale)
links = a.bulletin_links.map{|link| { "link_url" => link.url, "link_title" => (link.title.blank? ? link.url : link.title) } } rescue []
files = a.curation_post_files.to_fronted(locale)
links = a.curation_post_links.map{|link| { "link_url" => link.url, "link_title" => (link.title.blank? ? link.url : link.title) } } rescue []
author = tmp_enable_annc_dept ? annc_depts[a.annc_dept] : User.find(a.update_user_id).member_name rescue (User.find(a.update_user_id).member_profile.name rescue "")
desc = a.image_description
desc = (desc.blank? ? "curation image" : desc)
@ -771,7 +771,7 @@ class CurationsController < ApplicationController
img_src = (announcement.image.url || DefaultImgSrc) if announcement.display_img?
img_description = announcement.image_description if (announcement.image_description.present?) && (announcement.display_img?)
show_comment_flag = announcement.open_comment_for_user(OrbitHelper.current_user)
bulletin_carousel_images = announcement.bulletin_carousel_images.map{|image| {"src"=>image.file.url,"description"=>image.description.to_s,"description_text"=>image.description_text }}
bulletin_carousel_images = announcement.curation_post_carousel_images.map{|image| {"src"=>image.file.url,"description"=>image.description.to_s,"description_text"=>image.description_text }}
resume_btn_title = (I18n.locale.to_s =="zh_tw") ? "繼續播放" : "resume"
pause_btn_title = (I18n.locale.to_s =="zh_tw") ? "暫停播放" : "pause"
prev_btn_title = (I18n.locale.to_s =="zh_tw") ? "上一張" : "prev"

View File

@ -10,6 +10,7 @@ class CurationPost
include Slug
require 'curation/cache'
include Curation::Cache
SECTION_TYPES = ["text", "universal_table"]
attr_accessor :org_tag_ids,:org_category_id
def tags=(ids)
self.org_tag_ids = self.tag_ids
@ -92,9 +93,11 @@ class CurationPost
has_many :curation_post_files, :autosave => true, :dependent => :destroy
has_many :curation_post_comments, :autosave => true, :dependent => :destroy
has_many :curation_post_carousel_images, :autosave => true, :dependent => :destroy
has_many :curation_post_sections, :autosave => true, :dependent => :destroy
accepts_nested_attributes_for :curation_post_files, :allow_destroy => true
accepts_nested_attributes_for :curation_post_links, :allow_destroy => true
accepts_nested_attributes_for :curation_post_carousel_images, :allow_destroy => true
accepts_nested_attributes_for :curation_post_sections, :allow_destroy => true
before_destroy :destroy_email

View File

@ -0,0 +1,13 @@
# encoding: utf-8
class CurationPostSection
include Mongoid::Document
include Mongoid::Timestamps
field :title, localize: true
field :section_type
field :text, localize: true
field :universal_table
field :table_entries, type: Array, default: []
belongs_to :curation_post
end

View File

@ -1,4 +1,4 @@
class CurationPostSetting
class CurationSetting
include Mongoid::Document
include Mongoid::Timestamps
field :carousel_image_type, :type => Integer, :default => 0 # 0: carousel, 1: album

View File

@ -1,5 +0,0 @@
<%= form_for @bulletin, url: admin_announcement_path(@bulletin), html: {class: "form-horizontal main-forms previewable"} do |f| %>
<fieldset>
<%= render :partial => 'form', locals: {f: f} %>
</fieldset>
<% end %>

View File

@ -1,5 +0,0 @@
<%= form_for @bulletin, url: admin_announcements_path, html: {class: "form-horizontal main-forms previewable"} do |f| %>
<fieldset>
<%= render :partial => 'form', locals: {f: f} %>
</fieldset>
<% end %>

View File

@ -93,7 +93,7 @@
</div>
</div>
<div class="modal-footer">
<%= form_tag "/admin/announcement/approve_bulletin", :class=>"approvalModal__form" do %>
<%= form_tag "/admin/curation/approve_bulletin", :class=>"approvalModal__form" do %>
<div class="approvalModal__group">
<label class="control-label" for="bulletin_approval_stat">審核狀態</label>
<div class="approvalModal__controls">

View File

@ -1,4 +1,4 @@
<%= form_for @announcement_feed, url: admin_announcement_updatefeed_path(:id => @announcement_feed.id), html: {class: "form-horizontal main-forms"} do |f| %>
<%= form_for @announcement_feed, url: admin_curation_updatefeed_path(:id => @announcement_feed.id), html: {class: "form-horizontal main-forms"} do |f| %>
<fieldset>
<% @site_in_use_locales.each do |locale| %>
<%= f.fields_for :title_translations do |f| %>

View File

@ -73,29 +73,25 @@
<div class="nav-name"><strong><%= t(:module) %></strong></div>
<ul class="nav nav-pills module-nav">
<li class="active"><a href="#basic" data-toggle="tab"><%= t(:basic) %></a></li>
<% if defined? Calendar %>
<li><a href="#calendar" data-toggle="tab"><%= t('calendar.calendar') %></a></li>
<% end %>
<% if((!AnnouncementSetting.first.only_manager_can_edit_status) || (AnnouncementSetting.first.only_manager_can_edit_status && (@current_user.is_admin? || @current_user.is_manager?(@module_app))) ) %>
<% if((!CurationSetting.first.only_manager_can_edit_status) || (CurationSetting.first.only_manager_can_edit_status && (@current_user.is_admin? || @current_user.is_manager?(@module_app))) ) %>
<li><a href="#status" data-toggle="tab"><%= t(:status) %></a></li>
<% end %>
<li><a href="#tag" data-toggle="tab"><%= t(:tags) %></a></li>
<li><a href="#imageupload" data-toggle="tab"><%= t('announcement.image') %></a></li>
<li><a href="#carousel_image_upload" data-toggle="tab" title="<%= t('announcement.carousel_image_title') %>"><%= t('announcement.carousel_image') %></a></li>
<li><a href="#relation_announcements_list" data-toggle="tab" title="<%= t('announcement.relation_announcements_list') %>"><%= t('announcement.relation_announcements_list') %></a></li>
<li><a href="#mail-group" data-toggle="tab"><%= t('announcement.email_reminder')%></a></li>
<li><a href="#imageupload" data-toggle="tab"><%= t('curation.image') %></a></li>
<li><a href="#carousel_image_upload" data-toggle="tab" title="<%= t('curation.carousel_image_title') %>"><%= t('curation.carousel_image') %></a></li>
<li><a href="#mail-group" data-toggle="tab"><%= t('curation.email_reminder')%></a></li>
</ul>
<!-- Module -->
<div class="tab-content module-area">
<!-- Basic Module -->
<div class="tab-pane fade in active" id="basic">
<% if (AnnouncementSetting.first.enable_annc_dept rescue false) %>
<% if (CurationSetting.first.enable_annc_dept rescue false) %>
<!-- Annc Dept -->
<div class="control-group">
<label class="control-label muted" for="annc_dept"><%= t("announcement.annc_dept") %></label>
<label class="control-label muted" for="annc_dept"><%= t("curation.annc_dept") %></label>
<div class="controls">
<%= f.select("annc_dept", (options_for_select(AnnouncementSetting.first.annc_depts.to_a.map.with_index{|dept,i| [dept, i] },:selected => f.object.annc_dept) rescue []) , { include_blank: true, id: "annc_dept" }) %>
<%= f.select("annc_dept", (options_for_select(CurationSetting.first.annc_depts.to_a.map.with_index{|dept,i| [dept, i] },:selected => f.object.annc_dept) rescue []) , { include_blank: true, id: "annc_dept" }) %>
</div>
</div>
<% end %>
@ -123,23 +119,23 @@
</div>
<div class="control-group">
<%= f.label :is_external_link, t("announcement.is_external_link"), :class => "control-label muted" %>
<%= f.label :is_external_link, t("curation.is_external_link"), :class => "control-label muted" %>
<div class="controls">
<%= f.check_box :is_external_link %>
</div>
</div>
<div class="control-group" style="display: none;" id="external_link_box">
<%= f.label :external_link, t("announcement.external_link"), :class => "control-label muted" %>
<%= f.label :external_link, t("curation.external_link"), :class => "control-label muted" %>
<div class="controls">
<%= f.text_field :external_link %>
<div class="hint"><%= t("announcement.external_link_hint") %></div>
<div class="hint"><%= t("curation.external_link_hint") %></div>
</div>
</div>
<!-- display subtitle -->
<div class="control-group">
<%= f.label :display_subtitle, t("announcement.display_subtitle"), :class => "control-label muted" %>
<%= f.label :display_subtitle, t("curation.display_subtitle"), :class => "control-label muted" %>
<div class="controls">
<%= f.check_box :display_subtitle %>
</div>
@ -147,7 +143,7 @@
<!-- display img src -->
<div class="control-group">
<%= f.label :display_img, t("announcement.display_img"), :class => "control-label muted" %>
<%= f.label :display_img, t("curation.display_img"), :class => "control-label muted" %>
<div class="controls">
<%= f.check_box :display_img %>
</div>
@ -156,70 +152,20 @@
<!-- Image display setting -->
<% image_display_class_relation = {"full_width"=>"full-size-img","up_left_corner"=>"pull-left","up_right_corner"=>"pull-right"} %>
<div class="control-group <%='hide' if !f.object.display_img %>" id="image_display_setting">
<%= f.label :image_display_class, t("announcement.cover_image_display_setting"), :class => "control-label muted" %>
<%= f.label :image_display_class, t("curation.cover_image_display_setting"), :class => "control-label muted" %>
<div class="controls">
<% image_display_class_relation.each.with_index do |(key,value),i| %>
<label>
<%= radio_button_tag "#{f.object_name}[image_display_class]", value , (f.object.image_display_class == value) %>
<%= t("announcement.#{key}") %>
<%= t("curation.#{key}") %>
</label>
<% end %>
</div>
</div>
</div>
<!-- Calendar Module -->
<% if defined? Calendar %>
<div class="tab-pane fade" id="calendar">
<div class="control-group">
<label class="control-label muted"><%= t('announcement.add_to_calendar') %></label>
<div class="controls">
<%= f.check_box :add_to_calendar,onchange: 'trigger_on_add_calendar(this)' %>
</div>
</div>
<div class="trigger_on_add_calendar" <%= "style=display:none;" if !@bulletin.add_to_calendar %>>
<div class="control-group">
<label class="control-label muted"><%= t('calendar.calendar') %></label>
<div class="controls">
<%= f.select :calendar_type_id, @calendar_categories.collect{|t| [ t.title, t.id ]} %>
</div>
</div>
<div class="control-group" style="display: flex;flex-wrap: wrap;">
<div style="display: flex;flex-direction: column;">
<label class="control-label muted"><%= t(:start_date) %></label>
<label class="control-label muted"><%= t('announcement.blank_to_set') %></label>
</div>
<div class="controls" style="margin-left: 1.5em;">
<%= f.datetime_picker :calendar_start_date, :new_record => @bulletin.new_record?, :no_label => true, :data=>{"picker-type" => "range", "range" => "start"} %>
</div>
</div>
<div class="control-group" style="display: flex;flex-wrap: wrap;">
<div style="display: flex;flex-direction: column;">
<label class="control-label muted"><%= t(:end_date) %></label>
<label class="control-label muted"><%= t('announcement.blank_to_set') %></label>
</div>
<div class="controls" style="margin-left: 1.5em;">
<%= f.datetime_picker :calendar_end_date, :new_record => @bulletin.new_record?, :no_label => true, :data=>{"picker-type" => "range", "range" => "end"} %>
</div>
</div>
<div class="control-group">
<label class="control-label muted"><%= t('calendar.all_day') %></label>
<div class="controls">
<%= f.check_box :calendar_all_day %>
</div>
</div>
<div class="control-group">
<label class="control-label muted">Select Read More Page :</label>
<div class="controls">
<%= f.select :page_id,[["----- Select a page -----",nil]]+@module_pages %>
</div>
</div>
</div>
<%= f.hidden_field :event_id %>
</div>
<% end %>
<!-- Status Module -->
<% if((!AnnouncementSetting.first.only_manager_can_edit_status) || (AnnouncementSetting.first.only_manager_can_edit_status && (@current_user.is_admin? || @current_user.is_manager?(@module_app))) ) %>
<% if((!CurationSetting.first.only_manager_can_edit_status) || (CurationSetting.first.only_manager_can_edit_status && (@current_user.is_admin? || @current_user.is_manager?(@module_app))) ) %>
<div class="tab-pane fade" id="status">
<!-- Status -->
<div class="control-group">
@ -248,7 +194,7 @@
</label>
</div>
<div class="controls">
<% if !@bulletin.is_top? && !AnnouncementSetting.check_limit_for_user((@bulletin.new_record? ? current_user.id : @bulletin.create_user_id)) %>
<% if !@bulletin.is_top? && !CurationSetting.check_limit_for_user((@bulletin.new_record? ? current_user.id : @bulletin.create_user_id)) %>
<span>Top limit has been reached. The bulletin wont be marked as top even if you click on it.</span>
<% end %>
</div>
@ -260,28 +206,28 @@
</div>
</div>
<div class="control-group">
<label class="control-label muted"><%= t('announcement.open_comment')%></label>
<label class="control-label muted"><%= t('curation.open_comment')%></label>
<div class="controls">
<%= f.check_box :open_comment %><%= t('announcement.open') %>
<%= f.check_box :open_comment %><%= t('curation.open') %>
</div>
</div>
<div class="control-group <%= @bulletin.open_comment ? "" : "hide" %>" data-for="open_comment">
<label for="" class="control-label muted"><%= t('announcement.comment_end_time')%></label>
<label for="" class="control-label muted"><%= t('curation.comment_end_time')%></label>
<div class="controls">
<%= f.datetime_picker :comment_end_time, :no_label => true, :new_record => @bulletin.new_record? %>
</div>
</div>
<div class="control-group <%= @bulletin.open_comment ? "" : "hide" %>" data-for="open_comment">
<label for="" class="control-label muted"><%= t('announcement.comment_role')%></label>
<label for="" class="control-label muted"><%= t('curation.comment_role')%></label>
<div class="controls">
<%= check_box_tag 'bulletin[comment_role][]','visitor',@bulletin.comment_role.include?('visitor') %>
<%= t('announcement.visitor') %>
<%= t('curation.visitor') %>
<br>
<%= check_box_tag 'bulletin[comment_role][]','all_member',@bulletin.comment_role.include?('all_member'),class: 'role_all_member' %>
<%= check_box_tag 'curation_post[comment_role][]','all_member',@bulletin.comment_role.include?('all_member'),class: 'role_all_member' %>
<%= t('announcement.all_member') %>
<br>
<% Role.all.each do |role| %>
<%= check_box_tag 'bulletin[comment_role][]',role.id.to_s,@bulletin.comment_role.include?(role.id.to_s),class: 'role' %>
<%= check_box_tag 'curation_post[comment_role][]',role.id.to_s,@bulletin.comment_role.include?(role.id.to_s),class: 'role' %>
<%= role.title %>
<% end %>
</div>
@ -342,22 +288,22 @@
<!-- Images Module -->
<div class="tab-pane fade" id="carousel_image_upload">
<div class="control-group">
<%= f.label :custom_carousel_image_type, t("announcement.default_carousel_image_type"), :class => "control-label muted" %>
<%= f.label :custom_carousel_image_type, t("curation.default_carousel_image_type"), :class => "control-label muted" %>
<div class="controls">
<% carousel_image_types = ["default","carousel","album"] %>
<%= f.select :custom_carousel_image_type, options_for_select(carousel_image_types.map.with_index{|type,i| [t("announcement.carousel_image_types.#{type}"),i]}.to_h,:selected => f.object.custom_carousel_image_type) %>
<%= f.select :custom_carousel_image_type, options_for_select(carousel_image_types.map.with_index{|type,i| [t("curation.carousel_image_types.#{type}"),i]}.to_h,:selected => f.object.custom_carousel_image_type) %>
</div>
</div>
<div class="control-group">
<label class="control-label muted" for="carousel_image_width"><%= t("announcement.carousel_image_width") %></label>
<label class="control-label muted" for="carousel_image_width"><%= t("curation.carousel_image_width") %></label>
<div class="controls">
<%= f.text_field :custom_carousel_image_width, :placeholder => t("announcement.custom_carousel_image_width_hint") %>
<%= f.text_field :custom_carousel_image_width, :placeholder => t("curation.custom_carousel_image_width_hint") %>
</div>
</div>
<% if @bulletin && !@bulletin.bulletin_carousel_images.blank? %>
<% if @bulletin && !@bulletin.curation_post_carousel_images.blank? %>
<div class="exist">
<% @bulletin.bulletin_carousel_images.each_with_index do |bulletin_carousel_image, i| %>
<%= f.fields_for :bulletin_carousel_images, bulletin_carousel_image do |f| %>
<% @bulletin.curation_post_carousel_images.each_with_index do |bulletin_carousel_image, i| %>
<%= f.fields_for :curation_post_carousel_images, bulletin_carousel_image do |f| %>
<%= render :partial => 'form_image', :object => bulletin_carousel_image, :locals => {:f => f, :i => i} %>
<% end %>
<% end %>
@ -368,93 +314,22 @@
<div class="add-target">
</div>
<p class="add-btn controls">
<%= hidden_field_tag 'bulletin_carousel_image_count', @bulletin.bulletin_carousel_images.count %>
<%= hidden_field_tag 'curation_post_carousel_image_count', @bulletin.curation_post_carousel_images.count %>
<a id="add_carousel_image" class="trigger btn btn-small btn-primary"><i class="icons-plus"></i> <%= t(:add) %></a>
</p>
</div>
<!-- relation_announcements_list -->
<div class="tab-pane fade" id="relation_announcements_list">
<!-- Enable relations-->
<div class="control-group">
<label class="control-label muted" for="enable_sub_annc"><%= t("announcement.enable") %></label>
<div class="controls">
<label class="checkbox inline">
<%= f.check_box :enable_sub_annc, {:id=>"enable_sub_annc"} %>
<%= t('announcement.enable')%>
</label>
</div>
</div>
<div id="sub_annc_block" class="<%= 'hide' if !(f.object.enable_sub_annc) %>">
<div class="control-group">
<%= f.label :sub_annc_title_trans, t("announcement.sub_annc_title_trans"), :class => "control-label muted" %>
<div class="controls">
<div class="input-append">
<div class="tab-content">
<% @site_in_use_locales.each_with_index do |locale, i| %>
<div class="tab-pane fade <%= ( i == 0 ) ? "active in" : '' %>" id="sub_annc_title_trans_<%= locale %>">
<%= f.fields_for :custom_sub_annc_title_trans_translations,f.object do |f| %>
<%= f.text_field locale, :value => (f.object.custom_sub_annc_title_trans_translations[locale] rescue nil), :placeholder=>t("announcement.sub_annc_title_trans_hint"),:id=> ((i == 0) ? "sub_annc_title_trans_input" : "") %>
<% end %>
</div>
<% end %>
</div>
<div class="btn-group" data-toggle="buttons-radio">
<% @site_in_use_locales.each_with_index do |locale, i| %>
<a class="btn <%= ( i == 0 ) ? "active" : '' %>" href="#sub_annc_title_trans_<%= locale %>" data-toggle="tab"><%= t(locale.to_s) %></a>
<% end %>
</div>
</div>
</div>
</div>
<div class="control-group">
<label class="control-label muted"><%= t("announcement.display_sub_annc_date") %></label>
<div class="controls">
<%= f.check_box :display_sub_annc_date,:id=>"display_sub_annc_date" %>
</div>
</div>
<div class="control-group">
<label class="control-label muted"><%= t("announcement.relation_announcements_list") %></label>
<div class="controls">
<table class="table table-bordered">
<thead>
<tr>
<th></th>
<th></th>
<th id="sub_annc_title_trans_text"><%=f.object.get_sub_annc_title_trans%></th>
<th id="annc_date_text" class="<%='hide' if !f.object.display_sub_annc_date %> annc_date"><%=t("announcement.table.date")%></th>
</tr>
</thead>
<tbody id="relation_announcements_list_target">
<% if f.object.sub_annc_list.count != 0 %>
<% f.object.get_sub_annc_list.each do |annc| %>
<tr>
<td><span class="brand"><i class="icons-list-2"></i></span></td>
<td><button class="remove_tr btn btn-danger" type="button">X</button><%= hidden_field_tag "#{f.object_name}[sub_annc_list][]", annc.id %></td>
<td><%=annc.title%></td>
<td class="<%='hide' if !f.object.display_sub_annc_date %> annc_date"><%=annc.display_postdate %></td>
</tr>
<% end %>
<% end %>
</tbody>
</table>
<div class="clearfix"></div>
<button id="add_sub_annc" class="btn btn-primary" type="button"><%= t(:add) %></button>
</div>
</div>
</div>
</div>
<!-- Mail Group Module -->
<div class="tab-pane fade" id="mail-group">
<!-- Mail Group -->
<div class="control-group">
<label class="control-label muted" for="remind-check"><%= t("announcement.email_to") %></label>
<label class="control-label muted" for="remind-check"><%= t("curation.email_to") %></label>
<div class="controls">
<label class="checkbox inline">
<%= f.check_box :email_sent, {:id=>'remind-check'} %>
<%= t('announcement.activate_email_reminder')%>
<%= t('curation.activate_email_reminder')%>
</label>
<div class="content-box">
<%= render partial: 'admin/member_selects/email_selection_box', locals: {field: 'bulletin[email_member_ids][]', email_members: @bulletin.email_members} %>
<%= render partial: 'admin/member_selects/email_selection_box', locals: {field: 'curation_post[email_member_ids][]', email_members: @bulletin.email_members} %>
</div>
</div>
</div>
@ -462,14 +337,14 @@
<label class="control-label muted"></label>
<div class="controls">
<div class="content-box">
<span class="help-block"><%= "#{t("announcement.other_mailaddress")}(#{t("announcement.other_mailaddress_note")})"%> </span>
<span class="help-block"><%= "#{t("curation.other_mailaddress")}(#{t("curation.other_mailaddress_note")})"%> </span>
<%= f.text_area :other_mailaddress, :class=>"span12", :cols=>"25", :rows=>"10" %>
</div>
</div>
</div>
<div class="content-box">
<div class="control-group">
<label class="control-label muted"><%= t("announcement.email_sentdate") %></label>
<label class="control-label muted"><%= t("curation.email_sentdate") %></label>
<div class="controls">
<%= f.datetime_picker :email_sentdate, :no_label => true %>
</div>
@ -478,7 +353,7 @@
<% if (@bulletin.email.is_sent rescue false) %>
<div class="content-box">
<div class="control-group">
<label class="control-label muted"><%= t("announcement.resend_mail") %></label>
<label class="control-label muted"><%= t("curation.resend_mail") %></label>
<div class="controls">
<input type="checkbox" name="resend_mail" value="true">
</div>
@ -527,32 +402,48 @@
</div>
</div>
<!-- Content -->
<div class="control-group input-content">
<label class="control-label muted"><%= t(:content) %></label>
<div class="controls">
<div class="textarea">
<%= f.fields_for :text_translations do |f| %>
<%= f.cktext_area locale, rows: 5, class: "input-block-level", :value => (@bulletin.text_translations[locale] rescue nil) %>
<% end %>
</div>
</div>
</div>
</div>
<% end %>
<!-- section -->
<div class="control-group">
<label class="control-label muted"><%= t("curation.section") %></label>
<div class="controls add-input">
<!-- Exist -->
<% if @bulletin && !@bulletin.curation_post_sections.blank? %>
<div class="exist">
<% @bulletin.curation_post_sections.each_with_index do |section_post, i| %>
<%= f.fields_for :curation_post_sections, section_post do |f| %>
<%= render :partial => 'form_section_post', :object => section_post, :locals => {:f => f, :i => i} %>
<% end %>
<% end %>
<hr>
</div>
<% end %>
<!-- Add -->
<div class="add-target">
</div>
<p class="add-btn">
<%= hidden_field_tag 'curation_post_section_field_count', @bulletin.curation_post_sections.count %>
<a id="add_section" class="trigger btn btn-small btn-primary"><i class="icons-plus"></i> <%= t(:add) %></a>
</p>
</div>
</div>
<!-- Link -->
<div class="control-group">
<label class="control-label muted"><%= t(:link) %></label>
<div class="controls add-input">
<!-- Exist -->
<% if @bulletin && !@bulletin.bulletin_links.blank? %>
<% if @bulletin && !@bulletin.curation_post_links.blank? %>
<div class="exist">
<% @bulletin.bulletin_links.each_with_index do |bulletin_link, i| %>
<%= f.fields_for :bulletin_links, bulletin_link do |f| %>
<% @bulletin.curation_post_links.each_with_index do |bulletin_link, i| %>
<%= f.fields_for :curation_post_links, bulletin_link do |f| %>
<%= render :partial => 'form_link', :object => bulletin_link, :locals => {:f => f, :i => i} %>
<% end %>
<% end %>
@ -564,7 +455,7 @@
<div class="add-target">
</div>
<p class="add-btn">
<%= hidden_field_tag 'bulletin_link_field_count', @bulletin.bulletin_links.count %>
<%= hidden_field_tag 'curation_post_link_field_count', @bulletin.curation_post_links.count %>
<a id="add_link" class="trigger btn btn-small btn-primary"><i class="icons-plus"></i> <%= t(:add) %></a>
</p>
@ -575,12 +466,12 @@
<div class="control-group">
<label class="control-label muted"><%= t(:file_) %></label>
<div class="controls">
<div id="file_description_hint"><%= t("announcement.file_description_hint") %></div>
<div id="file_description_hint"><%= t("curation.file_description_hint") %></div>
<!-- Exist -->
<% if @bulletin && !@bulletin.bulletin_files.blank? %>
<% if @bulletin && !@bulletin.curation_post_files.blank? %>
<div class="exist">
<% @bulletin.bulletin_files.each_with_index do |bulletin_file, i| %>
<%= f.fields_for :bulletin_files, bulletin_file do |f| %>
<% @bulletin.curation_post_files.each_with_index do |bulletin_file, i| %>
<%= f.fields_for :curation_post_files, bulletin_file do |f| %>
<%= render :partial => 'form_file', :object => bulletin_file, :locals => {:f => f, :i => i} %>
<% end %>
<% end %>
@ -592,7 +483,7 @@
<div class="add-target">
</div>
<p class="add-btn">
<%= hidden_field_tag 'bulletin_file_field_count', @bulletin.bulletin_files.count %>
<%= hidden_field_tag 'curation_post_file_field_count', @bulletin.curation_post_files.count %>
<a id="add_file" class="trigger btn btn-small btn-primary"><i class="icons-plus"></i> <%= t(:add) %></a>
</p>
@ -609,19 +500,19 @@
<%= f.submit t('submit'), class: 'btn btn-primary' %>
<input type="hidden" name="referer_url" value="<%= get_referer_url %>">
<%= button_tag t("preview"), id: "button_for_preview", name: "commit", class: 'btn', type: :button %>
<%= link_to t('cancel'), admin_announcements_path, :class=>"btn" %>
<%= link_to t('cancel'), admin_curations_path, :class=>"btn" %>
</div>
<span id='show_anncs'>
<div class="modal hide fade in banner-anncs" id="">
<div class="modal-header">
<a class="close" data-dismiss="modal">×</a>
<h3><%= t("announcement.select_relation_announcements") %></h3>
<h3><%= t("curation.select_relation_announcements") %></h3>
</div>
<div class="modal-body">
<iframe id="anncs-iframe" src=""></iframe>
</div>
<div class="modal-footer">
<a href="#" class="btn" data-dismiss="modal"><%= t("announcement.confirm") %></a>
<a href="#" class="btn" data-dismiss="modal"><%= t("curation.confirm") %></a>
</div>
</div>
</span>
@ -642,7 +533,7 @@
<% if !@module_app.tags.empty? %>
<script type="text/javascript">
$("form.previewable").on("submit", function(){
if(!$("input[name='bulletin[tags][]']").is(":checked")){
if(!$("input[name='curation_post[tags][]']").is(":checked")){
if(!confirm("You have selected no tag, do you wish to continue?")){
return false;
}
@ -743,7 +634,7 @@
});
})
$(document).on("click",".remove_tr",function(){
if(window.confirm("<%=t('announcement.are_you_sure_you_want_to_delete_relation')%>"))
if(window.confirm("<%=t('curation.are_you_sure_you_want_to_delete_relation')%>"))
$(this).parents("tr").eq(0).remove();
})
$('#bulletin_open_comment').change(function(){
@ -768,28 +659,39 @@
if (location.pathname.substr(-3)=='new'){
var getDate = new Date();
var toDay = getDate.getFullYear()+"/"+ (Appendzero(getDate.getMonth()+1))+"/"+Appendzero(getDate.getDate())+" "+Appendzero(getDate.getHours())+":"+Appendzero(getDate.getMinutes());
$('input[name="bulletin[postdate]"]').val(toDay);
$('input[name="curation_post[postdate]"]').val(toDay);
}
$("#main-wrap").after("");
$(document).on('click', '#add_link', function(){
$(document).on('click', '#add_section', function(){
var new_id = $(this).prev().attr('value');
var old_id = new RegExp("new_bulletin_links", "g");
var old_id = new RegExp("new_curation_post_sections", "g");
var on = $('.language-nav li.active').index();
var le = $(this).parent('.add-btn').prev('.add-target').children('.start-line').length;
$(this).prev().attr('value', parseInt(new_id) + 1);
$(this).parent().siblings('.add-target').append(("<%= escape_javascript(add_attribute 'form_link', f, :bulletin_links) %>").replace(old_id, new_id));
$(this).parent().siblings('.add-target').append(("<%= escape_javascript(add_attribute 'form_section_post', f, :curation_post_sections) %>").replace(old_id, new_id));
$(this).parent('.add-btn').prev('.add-target').children('.start-line').eq(le).children('.tab-content').children('.tab-pane').eq(on).addClass('in active').siblings().removeClass('in active');
formTip();
});
$(document).on('click', '#add_link', function(){
var new_id = $(this).prev().attr('value');
var old_id = new RegExp("new_curation_post_links", "g");
var on = $('.language-nav li.active').index();
var le = $(this).parent('.add-btn').prev('.add-target').children('.start-line').length;
$(this).prev().attr('value', parseInt(new_id) + 1);
$(this).parent().siblings('.add-target').append(("<%= escape_javascript(add_attribute 'form_link', f, :curation_post_links) %>").replace(old_id, new_id));
$(this).parent('.add-btn').prev('.add-target').children('.start-line').eq(le).children('.tab-content').children('.tab-pane').eq(on).addClass('in active').siblings().removeClass('in active');
formTip();
});
$(document).on('click', '#add_file', function(){
var new_id = $(this).prev().attr('value');
var old_id = new RegExp("new_bulletin_files", "g");
var old_id = new RegExp("new_curation_post_files", "g");
var on = $('.language-nav li.active').index();
var le = $(this).parent('.add-btn').prev('.add-target').children('.start-line').length;
$(this).prev().attr('value', parseInt(new_id) + 1);
$(this).parent().siblings('.add-target').append(("<%= escape_javascript(add_attribute 'form_file', f, :bulletin_files) %>").replace(old_id, new_id));
$(this).parent().siblings('.add-target').append(("<%= escape_javascript(add_attribute 'form_file', f, :curation_post_files) %>").replace(old_id, new_id));
$(this).parent('.add-btn').prev('.add-target').children('.start-line').eq(le).children('.input-append').find('.tab-content').each(function() {
$(this).children('.tab-pane').eq(on).addClass('in active').siblings().removeClass('in active');
});
@ -798,11 +700,11 @@
});
$(document).on('click', '#add_carousel_image', function(){
var new_id = $(this).prev().attr('value');
var old_id = new RegExp("new_bulletin_carousel_images", "g");
var old_id = new RegExp("new_curation_post_carousel_images", "g");
var on = $('.language-nav li.active').index();
var le = $(this).parent('.add-btn').prev('.add-target').children('.start-line').length;
$(this).prev().attr('value', parseInt(new_id) + 1);
$(this).parent().siblings('.add-target').append(("<%= escape_javascript(add_attribute 'form_image', f, :bulletin_carousel_images) %>").replace(old_id, new_id));
$(this).parent().siblings('.add-target').append(("<%= escape_javascript(add_attribute 'form_image', f, :curation_post_carousel_images) %>").replace(old_id, new_id));
$(this).parent('.add-btn').prev('.add-target').children('.start-line').eq(le).children('.input-append').find('.tab-content').each(function() {
$(this).children('.tab-pane').eq(on).addClass('in active').siblings().removeClass('in active');
});
@ -834,6 +736,27 @@
$(this).parents('.start-line').hide();
}
});
$(document).on('change', '.section_type select', function(){
var parent = $(this).parents(".curation_section");
parent.find(".section_type_text").hide();
parent.find(".section_type_ut").hide();
if($(this).val() == "text"){
parent.find(".section_type_text").show();
}else if($(this).val() == "universal_table"){
parent.find(".section_type_ut").show();
}
})
<% if defined? UniversalTable %>
$(document).on('change', '.section_type_ut select', function(){
var parent = $(this).parents(".curation_section");
if($(this).val()){
parent.find(".section_type_ut_entries").show();
}else{
parent.find(".section_type_ut_entries").hide();
}
})
<% end %>
$("#enable_sub_annc").click(function(){
$("#sub_annc_block").toggleClass("hide");
calc_relation_table_width();
@ -856,11 +779,11 @@
var formData = new FormData( $('.main-forms')[0] );
formData.append("preview_type", ( (method==undefined) ? "new" : "edit" ));
formData.append("bulletin_id", '<%= @bulletin.id.to_s %>');
formData.append("curation_post_id", '<%= @bulletin.id.to_s %>');
$.ajax({
type: "post",
url: '<%= admin_announcement_preview_path %>',
url: '<%= admin_curation_preview_path %>',
data : formData,
processData: false,
contentType: false
@ -877,7 +800,7 @@
$('#show_preview .modal').on('hidden.bs.modal', function () {
$.ajax({
type: "post",
url: '<%= admin_announcement_get_preview_action_path %>',
url: '<%= admin_curation_get_preview_action_path %>',
data: {uid: window.preview_annc_uid}
}).done(function(data){
if(data["action"] == "redirect"){

View File

@ -46,13 +46,13 @@
<% @site_in_use_locales.each do |locale| %>
<li>
<label class="checkbox">
<%= check_box_tag "bulletin[bulletin_files_attributes][#{( form_file.new_record? ? 'new_bulletin_files' : "#{i}" )}][choose_lang][]", locale, form_file.choose_lang.include?(locale.to_s) %>
<%= check_box_tag "create_post[create_post_files_attributes][#{( form_file.new_record? ? 'new_create_post_files' : "#{i}" )}][choose_lang][]", locale, form_file.choose_lang.include?(locale.to_s) %>
<%= t(locale.to_s) %>
</label>
</li>
<% end %>
</ul>
<%= hidden_field_tag "bulletin[bulletin_files_attributes][#{( form_file.new_record? ? 'new_bulletin_files' : "#{i}" )}][choose_lang][]", '' %>
<%= hidden_field_tag "create_post[create_post_files_attributes][#{( form_file.new_record? ? 'new_create_post_files' : "#{i}" )}][choose_lang][]", '' %>
</span>
<% if form_file.new_record? %>
<span class="delete_file add-on btn" title="<%= t(:delete_) %>">

View File

@ -0,0 +1,56 @@
<div class="input-prepend input-append start-line curation_section">
<span class="tab-content">
<span class="add-on"><%= t("curation.title") %></span>
<% @site_in_use_locales.each_with_index do |locale, i| %>
<span class="tab-pane fade <%= ( i == 0 ) ? "in active" : '' %> <%= locale %>">
<%= f.fields_for :title_translations do |f| %>
<%= f.text_field locale, :class => "input-large", placeholder: t("curation.title"), :value => (form_section_post.title_translations[locale] rescue nil) %>
<% end %>
</span>
<% end %>
</span>
<span class="tab-content section_type">
<span class="add-on"><%= t("curation.section_type") %></span>
<%= f.select :section_type, CurationPost::SECTION_TYPES.map { |type| [t("curation.#{type}"), type] },
{ include_blank: t("curation.please_select") },
class: 'form-control' %>
</span>
<span class="tab-content section_type_text" style="display:none">
<span class="add-on"><%= t("curation.text") %></span>
<% @site_in_use_locales.each_with_index do |locale, i| %>
<span class="tab-pane fade <%= ( i == 0 ) ? "in active" : '' %> <%= locale %>">
<%= f.fields_for :text_translations do |f| %>
<%= f.text_area locale, :rows => 2, :class => "ckeditor input-block-level", :placeholder => t("curation.text"), :value => (form_section_post.text_translations[locale] rescue nil) %>
<% end %>
</span>
<% end %>
</span>
<% if defined? UniversalTable %>
<span class="tab-content section_type_ut" style="display:none">
<span class="add-on"><%= t("curation.tables") %></span>
<%= f.select :section_type, UTable.all.map { |table| [table.title, table.id.to_s] },
{ include_blank: t("curation.please_select") },
class: 'form-control' %>
</span>
<span class="tab-content section_type_ut_entries" style="display:none">
<span class="add-on"><%= t("curation.table_entries") %></span>
<%= f.select :table_entries, [], :class => "" %>
</span>
<% end %>
<% if form_section_post.new_record? %>
<span class="delete_link add-on btn" title="<%= t(:delete_) %>">
<a class="icon-trash"></a>
</span>
<% else %>
<span class="remove_existing_record add-on btn" title="<%= t(:remove) %>">
<%= f.hidden_field :id %>
<a class="icon-remove"></a>
<%= f.hidden_field :_destroy, :value => nil, :class => 'should_destroy' %>
</span>
<% end %>
<script type="text/javascript">
</script>
</div>

View File

@ -1,7 +1,7 @@
<table class="table main-list">
<thead>
<tr class="sort-header">
<th style="width: 1em;"><%=t("announcement.select")%></th>
<th style="width: 1em;"><%=t("curation.select")%></th>
<% @table_fields.each do |f| %>
<%= thead(f) %>
<% end %>
@ -26,7 +26,7 @@
<% end %>
<% if b.reapproval %>
<span class='label'><%= t("announcement.reapproval") + " " + t(:pending) %></span>
<span class='label'><%= t("curation.reapproval") + " " + t(:pending) %></span>
<% end %>
<% if b.rejected %>
<span class='label'><%= t(:rejected) %> : <%= b.rejection_reason rescue "" %></span>

View File

@ -59,7 +59,7 @@
data.append('ids[]', val);
});
$.ajax({
url: "<%=admin_announcements_delete_path%>",
url: "<%=admin_curations_delete_path%>",
method: 'DELETE',
data: data,
headers: {
@ -127,7 +127,7 @@
<% end %>
<% if b.reapproval %>
<span class='label'><%= t("announcement.reapproval") + " " + t(:pending) %></span>
<span class='label'><%= t("curation.reapproval") + " " + t(:pending) %></span>
<% end %>
<% if b.rejected %>
<span class='label'><%= t(:rejected) %> : <%= b.rejection_reason rescue "" %></span>
@ -139,18 +139,18 @@
<ul class="nav nav-pills">
<li><a href="#" class="detail-row" onclick="$('#<%= "#{b.id.to_s}-detail" %>').slideToggle(300); return false;"><%= t(:detail) %></a></li>
<% if is_editable %>
<li><a href="/admin/announcements/<%=b.id.to_s%>/edit"><%= t(:edit) %></a></li>
<li><a href="#" class="delete text-error" rel="/admin/announcements/<%=b.id.to_s%>"><%= t(:delete_) %></a></li>
<li><a href="/admin/curations/<%=b.id.to_s%>/edit"><%= t(:edit) %></a></li>
<li><a href="#" class="delete text-error" rel="/admin/curations/<%=b.id.to_s%>"><%= t(:delete_) %></a></li>
<% end %>
<% if ((!b.approved && !b.rejected && !b.reapproval) || (b.rejected && b.reapproval)) && user_can_approve?(b) %>
<li><a href="<%= page_for_bulletin(b) %>" class="approval_button" data-id="<%= b.id.to_s %>" ><%= t("announcement.approval_waiting") %></a></li>
<li><a href="<%= page_for_bulletin(b) %>" class="approval_button" data-id="<%= b.id.to_s %>" ><%= t("curations.approval_waiting") %></a></li>
<% end %>
</ul>
</div>
</td>
<td><%= format_value b.postdate %></td>
<td class="<%= b.expired? ? "expired" : "" %>"><%= format_value b.deadline %></td>
<td><%= link_to b.bulletin_comments.count.to_s,"/#{I18n.locale}/admin/announcements/#{b.id}/comment" %></td>
<td><%= link_to b.curation_post_comments.count.to_s,"/#{I18n.locale}/admin/curations/#{b.id}/comment" %></td>
<td><%= b.update_user.user_name rescue ""%><br><%= format_value b.updated_at %></td>
</tr>
<tr class="footable-row-detail">
@ -167,7 +167,7 @@
<% end %>
</div>
<div>
<strong><%= t("announcement.email_to") %></strong> :
<strong><%= t("curations.email_to") %></strong> :
<% b.email_members.each do |member| %>
<span class="label"><%= member.name %></span>
<% end %>
@ -187,7 +187,7 @@
<%=
content_tag :div, class: "bottomnav clearfix" do
content_tag(:div, paginate(@bulletins), class: "pagination pagination-centered") +
content_tag(:div, link_to(t("announcement.delete_selected"), "javascript:void(0)", :class=>"btn btn-danger"), class: "pull-right hide delete_anncs_btn") +
content_tag(:div, link_to(t(:new_),new_admin_announcement_path, :class=>"btn btn-primary"), class: "pull-right")
content_tag(:div, link_to(t("curations.delete_selected"), "javascript:void(0)", :class=>"btn btn-danger"), class: "pull-right hide delete_anncs_btn") +
content_tag(:div, link_to(t(:new_),new_admin_curation_path, :class=>"btn btn-primary"), class: "pull-right")
end
%>

View File

@ -0,0 +1,5 @@
<%= form_for @bulletin, url: admin_curation_path(@bulletin), html: {class: "form-horizontal main-forms previewable"} do |f| %>
<fieldset>
<%= render :partial => 'form', locals: {f: f} %>
</fieldset>
<% end %>

View File

@ -3,10 +3,10 @@
<%= stylesheet_link_tag "lib/fileupload" %>
<%= stylesheet_link_tag "lib/main-list" %>
<% end %>
<%= form_for @setting, url: update_sort_setting_admin_announcement_path, html: {class: "form-horizontal main-forms"}, method: 'post' do |f| %>
<%= form_for @setting, url: update_sort_setting_admin_curation_path, html: {class: "form-horizontal main-forms"}, method: 'post' do |f| %>
<div class="input-area">
<div class="control-group">
<%= f.label :maull, t("announcement.enable_manually_sort"), :class => "control-label muted" %>
<%= f.label :maull, t("curation.enable_manually_sort"), :class => "control-label muted" %>
<div class="controls">
<%= f.check_box :enable_manually_sort,:id=>'enable_manually_sort' %>
</div>
@ -14,7 +14,7 @@
</div>
<% end %>
<div style="margin-bottom: 1em;">
<button type="button" class="btn btn-primary" id="update_sort_button"><%= t('announcement.manual_update_sort') %></button>
<button type="button" class="btn btn-primary" id="update_sort_button"><%= t('curation.manual_update_sort') %></button>
</div>
<%= render partial: 'edit_sort' %>
<script type="text/javascript">
@ -24,7 +24,7 @@
function update_sort(){
var ids = $.map($('#sortable>tr'),function(v){return $(v).data('id')});
$.ajax({
url: "<%= update_sort_admin_announcement_path %>",
url: "<%= update_sort_admin_curation_path %>",
type: 'POST',
dataType: 'text',
data: {ids: ids},

View File

@ -77,7 +77,7 @@
bindEditButtons();
var openFeedModal = function(type,feed_id){
$.ajax({
url : "/admin/announcements/feedform",
url : "/admin/curations/feedform",
type : "get",
data : {"type" : type, "id" : feed_id},
dataType : "html"
@ -122,5 +122,4 @@
}
})
}
</script>
</br>
</script>

View File

@ -19,7 +19,7 @@
<br>
<span class="thread-file">
<% if @thread.status[:filename] %>
<a href="<%=admin_announcement_download_file_from_thread_path(:id=>@thread.id.to_s) %>" title="<%= @thread.status[:filename] %>"><%= @thread.status[:filename] %></a>
<a href="<%=admin_curation_download_file_from_thread_path(:id=>@thread.id.to_s) %>" title="<%= @thread.status[:filename] %>"><%= @thread.status[:filename] %></a>
<% end %>
</span>
</div>
@ -30,19 +30,19 @@
</div>
</div>
<% end %>
<form action="<%= admin_announcement_importanns_path %>" method="post" class="form-horizontal main-forms" id="import-anns-xls" enctype="multipart/form-data">
<h3 style="padding-left: 30px;"><%= t("announcement.export_to_excel") %></h3>
<form action="<%= admin_curation_importanns_path %>" method="post" class="form-horizontal main-forms" id="import-anns-xls" enctype="multipart/form-data">
<h3 style="padding-left: 30px;"><%= t("curation.export_to_excel") %></h3>
<div class="control-group">
<div class="controls">
<a href="<%= admin_announcement_export_excel_path %>"><%= t("announcement.export_all_anns") %></a>
<a href="<%= admin_curation_export_excel_path %>"><%= t("curation.export_all_anns") %></a>
</div>
</div>
<h3 style="padding-left: 30px;"><%= t("announcement.import_from_excel") %></h3>
<h3 style="padding-left: 30px;"><%= t("curation.import_from_excel") %></h3>
<%= hidden_field_tag :authenticity_token, form_authenticity_token %>
<div class="input-area">
<div class="control-group">
<div class="controls">
<a href="<%= admin_announcement_excel_format_path(:format => "xlsx") %>"><%= t("announcement.download_example_sheet_here") %></a>
<a href="<%= admin_curation_excel_format_path(:format => "xlsx") %>"><%= t("curation.download_example_sheet_here") %></a>
</div>
</div>
<div class="control-group">
@ -59,8 +59,8 @@
<!-- import from wp xml -->
<form action="<%= admin_announcement_import_from_wp_path %>" method="post" class="form-horizontal main-forms" id="import-anns-wp-xml" enctype="multipart/form-data">
<h3 style="padding-left: 30px;"><%= t("announcement.import_from_wp_xml") %></h3>
<form action="<%= admin_curation_import_from_wp_path %>" method="post" class="form-horizontal main-forms" id="import-anns-wp-xml" enctype="multipart/form-data">
<h3 style="padding-left: 30px;"><%= t("curation.import_from_wp_xml") %></h3>
<%= hidden_field_tag :authenticity_token, form_authenticity_token %>
<div class="input-area">
<div class="control-group">
@ -130,7 +130,7 @@
var id = "<%=@thread.id if @thread%>";
var filename = data["filename"];
if(filename){
$("#threadModal .modal-body .thread-file").html(`<a href="<%=admin_announcement_download_file_from_thread_path%>?id=${id}" title="${filename}">${filename}</a>`);
$("#threadModal .modal-body .thread-file").html(`<a href="<%=admin_curation_download_file_from_thread_path%>?id=${id}" title="${filename}">${filename}</a>`);
}
if(window.time_out_id)
window.clearTimeout(window.time_out_id);

View File

@ -0,0 +1,5 @@
<%= form_for @bulletin, url: admin_curations_path, html: {class: "form-horizontal main-forms previewable"} do |f| %>
<fieldset>
<%= render :partial => 'form', locals: {f: f} %>
</fieldset>
<% end %>

View File

@ -87,9 +87,9 @@
sub_managers = @module_app.sub_managers
sub_managers.delete(nil)
all_statuses = [[t('top'),'is_top'],[t('hot'),'is_hot']]
tp1 = select_tag("announcement_setting[anns_status_settings][-1][status]",options_for_select(all_statuses))
tp2 = select_tag("announcement_setting[anns_status_settings][-1][role_id]",options_for_select(Role.all.map{|r| [r.title,r.id]}))
tp3 = number_field_tag("announcement_setting[anns_status_settings][-1][top_limit]",nil, min: 0,required: true)
tp1 = select_tag("curation_setting[anns_status_settings][-1][status]",options_for_select(all_statuses))
tp2 = select_tag("curation_setting[anns_status_settings][-1][role_id]",options_for_select(Role.all.map{|r| [r.title,r.id]}))
tp3 = number_field_tag("curation_setting[anns_status_settings][-1][top_limit]",nil, min: 0,required: true)
tp4 = "<button type='button' onclick='delete_limit_role(this)'' class='btn'>#{t('delete_')}</button>"
all_tp = "<div class='role_limit_tr'><div class='td'>#{tp1}</div><div class='td'>#{tp2}</div><div class='td'>#{tp3}</div><div class='td-delete'>#{tp4}</div></div>"
%>
@ -106,7 +106,7 @@
$(ele).parents('.role_limit_tr').remove()
$('.role_limit_tr').each(function(i,v){
if (i >= now_index){
$(v).find('[name^="announcement_setting[anns_status_settings]"]').each(function(i1,v1){
$(v).find('[name^="curation_post_setting[anns_status_settings]"]').each(function(i1,v1){
console.log($(v1).attr('name'))
$(v1).attr('name',$(v1).attr('name').replace(/\d+/g,i.toString()))
})
@ -120,7 +120,7 @@
if(el.is(":checked")){
var t = $("<input type='hidden'>");
t.val(el.val());
t.attr("name", "announcement_setting[approvers][]");
t.attr("name", "curation_post_setting[approvers][]");
t.attr("id", "check_" + el.val());
approverList.append(t);
}else{
@ -129,18 +129,18 @@
})
})
</script>
<div id="notification"><%= t("announcement.click_on_submit") %></div>
<%= form_for @setting, url: (@setting.new_record? ? admin_announcement_createsettings_path : admin_announcement_updatesettings_path), html: {class: "form-horizontal main-forms"} do |f| %>
<div id="notification"><%= t("curation.click_on_submit") %></div>
<%= form_for @setting, url: (@setting.new_record? ? admin_curation_createsettings_path : admin_curation_updatesettings_path), html: {class: "form-horizontal main-forms"} do |f| %>
<div class="input-area">
<div class="control-group">
<%= f.label :sub_annc_title_trans, t("announcement.default_sub_annc_title_trans"), :class => "control-label muted" %>
<%= f.label :sub_annc_title_trans, t("curation.default_sub_annc_title_trans"), :class => "control-label muted" %>
<div class="controls">
<div class="input-append">
<div class="tab-content">
<% @site_in_use_locales.each_with_index do |locale, i| %>
<div class="tab-pane fade <%= ( i == 0 ) ? "active in" : '' %>" id="sub_annc_title_trans_<%= locale %>">
<%= f.fields_for :sub_annc_title_trans_translations,f.object do |f| %>
<%= f.text_field locale, :value => f.object.get_sub_annc_title_trans(locale), :placeholder=>t("announcement.default_sub_annc_title_trans") %>
<%= f.text_field locale, :value => f.object.get_sub_annc_title_trans(locale), :placeholder=>t("curation.default_sub_annc_title_trans") %>
<% end %>
</div>
<% end %>
@ -154,22 +154,22 @@
</div>
</div>
<div class="control-group">
<%= f.label :carousel_image_type, t("announcement.default_carousel_image_type"), :class => "control-label muted" %>
<%= f.label :carousel_image_type, t("curation.default_carousel_image_type"), :class => "control-label muted" %>
<div class="controls">
<% carousel_image_types = ["carousel","album"] %>
<%= f.select :carousel_image_type, options_for_select(carousel_image_types.map.with_index{|type,i| [t("announcement.carousel_image_types.#{type}"),i]}.to_h,:selected => f.object.carousel_image_type) %>
<%= f.select :carousel_image_type, options_for_select(carousel_image_types.map.with_index{|type,i| [t("curation.carousel_image_types.#{type}"),i]}.to_h,:selected => f.object.carousel_image_type) %>
</div>
</div>
<div class="control-group">
<%= f.label :carousel_image_width, t("announcement.default_carousel_image_width"), :class => "control-label muted" %>
<%= f.label :carousel_image_width, t("curation.default_carousel_image_width"), :class => "control-label muted" %>
<div class="controls">
<%= f.text_field :carousel_image_width %>
</div>
</div>
<div class="control-group">
<%= f.label :enable_annc_dept, t("announcement.annc_dept"), :class => "control-label muted" %>
<%= f.label :enable_annc_dept, t("curation.annc_dept"), :class => "control-label muted" %>
<div class="controls">
<%= f.check_box :enable_annc_dept, :id=>"enable_annc_dept" %><%= t("announcement.enable") %>
<%= f.check_box :enable_annc_dept, :id=>"enable_annc_dept" %><%= t("curation.enable") %>
<div id="annc_depts_block" class="<%='hide' if !(f.object.enable_annc_dept) %>">
<% f.object.annc_depts.to_a.each_with_index do |dept, idx| %>
<div class="annc_dept">
@ -177,7 +177,7 @@
<% @site_in_use_locales.each_with_index do |locale, i| %>
<div class="tab-pane fade <%= ( i == 0 ) ? "active in" : '' %>" id="annc_depts_<%=idx%>_<%= locale %>">
<%= f.fields_for :annc_depts_translations,f.object do |f| %>
<%= f.text_field "#{locale}][", :value => (f.object.annc_depts_translations[locale][idx] rescue ""), :placeholder=>t("announcement.annc_dept", :id=>nil) %>
<%= f.text_field "#{locale}][", :value => (f.object.annc_depts_translations[locale][idx] rescue ""), :placeholder=>t("curation.annc_dept", :id=>nil) %>
<% end %>
</div>
<% end %>
@ -195,22 +195,22 @@
</div>
</div>
<div class="control-group">
<%= f.label :only_manager_can_edit_status, t("announcement.only_manager_can_edit_status"), :class => "control-label muted" %>
<%= f.label :only_manager_can_edit_status, t("curation.only_manager_can_edit_status"), :class => "control-label muted" %>
<div class="controls">
<%= f.check_box :only_manager_can_edit_status %>
</div>
</div>
<div class="control-group">
<%= f.label :is_display_edit_only, t("announcement.is_display_edit_only"), :class => "control-label muted" %>
<%= f.label :is_display_edit_only, t("curation.is_display_edit_only"), :class => "control-label muted" %>
<div class="controls">
<%= f.check_box :is_display_edit_only %>
</div>
</div>
<div class="control-group">
<%= f.label :top_limit, t("announcement.top_limit"), :class => "control-label muted" %>
<%= f.label :top_limit, t("curation.top_limit"), :class => "control-label muted" %>
<div class="controls">
<%= f.number_field :top_limit, :min => "0" %>
<span class="help-block"><%= t("announcement.for_unlimited") %></span>
<span class="help-block"><%= t("curation.for_unlimited") %></span>
</div>
</div>
<div class="control-group">
@ -223,20 +223,20 @@
<%= t('role') %>
</div>
<div class="td">
<%= t('announcement.top_limit') %>
<%= t('curation.top_limit') %>
</div>
</div>
<% (AnnouncementSetting.first.anns_status_settings rescue []).each_with_index do |v,i| %>
<% (CurationSetting.first.anns_status_settings rescue []).each_with_index do |v,i| %>
<div class="role_limit_tr">
<%= hidden_field_tag("announcement_setting[anns_status_settings][#{i}][_id]",v.id) %>
<%= hidden_field_tag("curation_setting[anns_status_settings][#{i}][_id]",v.id) %>
<div class="td">
<%= select_tag("announcement_setting[anns_status_settings][#{i}][status]",options_for_select(all_statuses,:selected => v['status'])) %>
<%= select_tag("curation_setting[anns_status_settings][#{i}][status]",options_for_select(all_statuses,:selected => v['status'])) %>
</div>
<div class="td">
<%= select_tag("announcement_setting[anns_status_settings][#{i}][role_id]",options_for_select(Role.all.map{|r| [r.title,r.id]},:selected => v['role_id'])) %>
<%= select_tag("curation_setting[anns_status_settings][#{i}][role_id]",options_for_select(Role.all.map{|r| [r.title,r.id]},:selected => v['role_id'])) %>
</div>
<div class="td">
<%= number_field_tag("announcement_setting[anns_status_settings][#{i}][top_limit]",v['top_limit'], min: 0,required: true) %>
<%= number_field_tag("curation_setting[anns_status_settings][#{i}][top_limit]",v['top_limit'], min: 0,required: true) %>
</div>
<div class="td-delete">
<button type="button" onclick="delete_limit_role(this)" class="btn">
@ -254,33 +254,33 @@
</div>
</div>
</div>
<% if AnnouncementSetting.is_pro? %>
<% if CurationSetting.is_pro? %>
<% if !sub_managers.blank? %>
<div class="control-group">
<%= f.label "Approver Setting", :class => "control-label muted" %>
<div class="controls">
<a href="#approverModal" role="button" class="btn" data-toggle="modal"><%= t("announcement.approvers_list") %></a>
<a href="#approverModal" role="button" class="btn" data-toggle="modal"><%= t("curation.approvers_list") %></a>
<span class="badge badge-info"><%= @setting.approvers.count %></span>
</div>
</div>
<% else %>
<div class="control-group">
<a href="/admin/authorizations/announcement"><%= t("announcement.click_set_sub_manager") %></a>
<a href="/admin/authorizations/curation"><%= t("curation.click_set_sub_manager") %></a>
</div>
<% end %>
<div class="control-group">
<%= f.label "Send emails to", :class => "control-label muted" %>
<div class="controls">
<input type="checkbox" name="announcement_setting[email_to][]" value="admins" <%= @setting.email_to.include?("admins") ? "checked=checked" : "" %>> <%= t("admin") %>
<input type="checkbox" name="announcement_setting[email_to][]" value="managers" <%= @setting.email_to.include?("managers") ? "checked=checked" : "" %>> <%= t("manager") %>
<input type="checkbox" name="announcement_setting[email_to][]" value="approvers" <%= @setting.email_to.include?("approvers") ? "checked=checked" : "" %>> <%= t("announcement.approver") %>
<input type="checkbox" name="curation_setting[email_to][]" value="admins" <%= @setting.email_to.include?("admins") ? "checked=checked" : "" %>> <%= t("admin") %>
<input type="checkbox" name="curation_setting[email_to][]" value="managers" <%= @setting.email_to.include?("managers") ? "checked=checked" : "" %>> <%= t("manager") %>
<input type="checkbox" name="curation_setting[email_to][]" value="approvers" <%= @setting.email_to.include?("approvers") ? "checked=checked" : "" %>> <%= t("curation.approver") %>
</div>
</div>
</div>
<div class="hidden-approver-list">
<% sub_managers.each do |sm| %>
<% if @setting.approvers.include?(sm.id.to_s) %>
<input type="hidden" id="check_<%= sm.id.to_s %>" value="<%= sm.id.to_s %>" name="announcement_setting[approvers][]">
<input type="hidden" id="check_<%= sm.id.to_s %>" value="<%= sm.id.to_s %>" name="curation_setting[approvers][]">
<% end %>
<% end %>
</div>
@ -290,7 +290,7 @@
</div>
<% end %>
</div>
<% if AnnouncementSetting.is_pro? %>
<% if CurationSetting.is_pro? %>
<div id="approverModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="approverModalLabel" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
@ -304,7 +304,7 @@
<span class="approver-title"><%= sm.name %></span>
<span class="pull-right approver-check">
<input id="checkbox_<%= sm.id %>" type="checkbox" value="<%= sm.id %>" <%= @setting.approvers.include?(sm.id.to_s) ? "checked=checked" : "" %>>
<label for="checkbox_<%= sm.id %>"><%= t("announcement.approver") %></label>
<label for="checkbox_<%= sm.id %>"><%= t("curation.approver") %></label>
</span>
</li>
<% end %>
@ -324,9 +324,9 @@
<%= fields_for :iframe do |f| %>
<div class="form-horizontal input-area">
<fieldset id="iframe_settings">
<legend><%=t('announcement.announcement_setting_for_iframe')%></legend>
<legend><%=t('curation.announcement_setting_for_iframe')%></legend>
<div class="control-group">
<%= f.label :layout_type, t("announcement.layout_type"), :class => "control-label muted" %>
<%= f.label :layout_type, t("curation.layout_type"), :class => "control-label muted" %>
<div class="controls">
<% @layout_types = get_layouts(@module_app.key) %>
<% if @layout_types.first.kind_of?(Hash) %>
@ -374,13 +374,13 @@
</div>
</div>
<div class="control-group">
<%= f.label :authors, t('announcement.table.author'), :class => "control-label muted" %>
<%= f.label :authors, t('curation.table.author'), :class => "control-label muted" %>
<div class="controls">
<%= render partial: 'admin/members/generate_modal_select' , locals: { :@sorted_members => @sorted_members ,:member_form_id => "card-list-members",:member_field_name=>"iframe[member_ids][]" } %>
</div>
</div>
<div class="control-group">
<%= f.label :show_page, t('announcement.show_page'), :class => "control-label muted" %>
<%= f.label :show_page, t('curation.show_page'), :class => "control-label muted" %>
<div class="controls">
<%=f.check_box :show_page ,{:checked=>'checked'},'true','false'%>
</div>
@ -393,7 +393,7 @@
</div>
<div class="control-group">
<div class="controls">
<a class="btn btn-primary" title="<%= t("announcement.url_generate") %>" id="url_generate"><%= t("announcement.url_generate") %></a>
<a class="btn btn-primary" title="<%= t("curation.url_generate") %>" id="url_generate"><%= t("curation.url_generate") %></a>
</div>
</div>
</fieldset>
@ -425,7 +425,7 @@
$(".add_dept").click(function(){
var tmp_text = '<div class="annc_dept"><div class="tab-content">';
<% @site_in_use_locales.each_with_index do |locale, i| %>
tmp_text += '<div class="tab-pane fade <%= ( i == 0 ) ? "active in" : '' %>" id="annc_depts_new_idx_<%= locale %>"><input name="announcement_setting[annc_depts_translations][<%=locale%>][]" placeholder="<%=t('announcement.annc_dept')%>" type="text" title="<%=t('announcement.annc_dept')%>"></div>';
tmp_text += '<div class="tab-pane fade <%= ( i == 0 ) ? "active in" : '' %>" id="annc_depts_new_idx_<%= locale %>"><input name="curation_setting[annc_depts_translations][<%=locale%>][]" placeholder="<%=t('curation.annc_dept')%>" type="text" title="<%=t('curation.annc_dept')%>"></div>';
<% end %>
tmp_text += '</div><div class="btn-group" data-toggle="buttons-radio">';
<% @site_in_use_locales.each_with_index do |locale, i| %>
@ -445,11 +445,11 @@
})
$('#url_generate').off('click').on('click',function(){
var params = getparams('iframe_settings');
$.post("<%=admin_announcement_generate_iframe_url_path%>",params).done(function(url){
$.post("<%=admin_curation_generate_iframe_url_path%>",params).done(function(url){
var real_url = '/annc_url?url='+window.location.href.split('/')[0]+"//"+window.location.host+url;
if($("#dialog-confirm").length == 0){
$("#url_generate").before("<div id='dialog-confirm' title='<%="iframe "+t('announcement.URL')%>'>"+
"<div style='clear:both;'></div><div id='info_texts'>"+"<label style='float:left;margin-right: 0.2em; line-height: 2em;' for='iframe_url'><%="iframe "+t('announcement.URL') %>:</label><input id= 'iframe_url' style='float:left;cursor:text;' type='text' readyonly value='"+real_url+"'><a class='btn btn-primary copy_text' style='color: white;'><%=t('announcement.copy')%></a>"+"</div>"+
$("#url_generate").before("<div id='dialog-confirm' title='<%="iframe "+t('curation.URL')%>'>"+
"<div style='clear:both;'></div><div id='info_texts'>"+"<label style='float:left;margin-right: 0.2em; line-height: 2em;' for='iframe_url'><%="iframe "+t('curation.URL') %>:</label><input id= 'iframe_url' style='float:left;cursor:text;' type='text' readyonly value='"+real_url+"'><a class='btn btn-primary copy_text' style='color: white;'><%=t('curation.copy')%></a>"+"</div>"+
"</div>");
}
$( "#dialog-confirm" ).dialog({

View File

@ -1 +1 @@
<%= render(:partial=>"announcements/bulletin_carousels#{carousel_image_type}", :locals=>{:data=>data}) %>
<%= render(:partial=>"curations/bulletin_carousels#{carousel_image_type}", :locals=>{:data=>data}) %>

View File

@ -6,7 +6,7 @@
prev_content = ''
next_content = ''
if page.methods.include? 'select_option_items'.to_sym
ModuleApp.all.select{|tmp| tmp.key.to_s=='announcement'}.each do |modile_app|
ModuleApp.all.select{|tmp| tmp.key.to_s=='curation'}.each do |modile_app|
@show_option_items = modile_app.show_option_items rescue nil
end
page.select_option_items.each do |select_option_item|
@ -14,11 +14,11 @@
value = YAML.load(select_option_item.value)
tmp = value[:en]
I18n.with_locale(:en) do
if tmp == t('announcement.not_show')
if tmp == t('curation.not_show')
@show_back_and_next_flag = 0
elsif tmp == t('announcement.show_top')
elsif tmp == t('curation.show_top')
@show_back_and_next_flag = 1
elsif tmp == t('announcement.show_bottom')
elsif tmp == t('curation.show_bottom')
@show_back_and_next_flag = 2
end
end
@ -33,12 +33,12 @@
if now_index != 0
prev_result = sorted[now_index-1]
prev_url = params['url'] + '/' + prev_result.to_param
prev_content = "<a href='#{prev_url}' title='#{t('announcement.prev')}' class='prev'><b>#{t('announcement.prev')}</b><p>#{prev_result['title'].is_a?(String) ? prev_result['title'] : prev_result['title'][I18n.locale]}</p></a>"
prev_content = "<a href='#{prev_url}' title='#{t('curation.prev')}' class='prev'><b>#{t('curation.prev')}</b><p>#{prev_result['title'].is_a?(String) ? prev_result['title'] : prev_result['title'][I18n.locale]}</p></a>"
end
if now_index != sorted.length-1
next_result = sorted[now_index+1]
next_url = params['url'] + '/' + next_result.to_param
next_content = "<a href='#{next_url}' title='#{t('announcement.next')}' class='next'><b>#{t('announcement.next')}</b><p>#{next_result['title'].is_a?(String) ? next_result['title'] : next_result['title'][I18n.locale]}</p></a>"
next_content = "<a href='#{next_url}' title='#{t('curation.next')}' class='next'><b>#{t('curation.next')}</b><p>#{next_result['title'].is_a?(String) ? next_result['title'] : next_result['title'][I18n.locale]}</p></a>"
end
if prev_content != '' || next_content != ''
content = "<div class='see_more_boxTitle'>#{prev_content}#{next_content}</div>".html_safe
@ -82,9 +82,9 @@
hover_color = site.orbit_bar_background_hover_color rescue nil
hover_color = '#0095CF' if hover_color.blank?
bg_color = site.orbit_bar_background_color rescue nil
bg_color = bg_color.blank? ? '#3a3b3c' : AnnouncementsHelper.lighten_color(bg_color,-40)
color1 = AnnouncementsHelper.lighten_color(bg_color,-40)
color2 = AnnouncementsHelper.lighten_color(AnnouncementsHelper.complementaryColor(bg_color),40)
bg_color = bg_color.blank? ? '#3a3b3c' : CurationsHelper.lighten_color(bg_color,-40)
color1 = CurationsHelper.lighten_color(bg_color,-40)
color2 = CurationsHelper.lighten_color(CurationsHelper.complementaryColor(bg_color),40)
%>
<style type="text/css">
div[contentEditable=true]:empty:before{
@ -152,7 +152,7 @@
$(function(){
$('.annc-comment-div .btn-comment').click(function(){
$.ajax({
url: "<%= "/xhr/announcements/#{URI.encode(params[:slug])}-#{params[:uid]}/comment" %>",
url: "<%= "/xhr/curations/#{URI.encode(params[:slug])}-#{params[:uid]}/comment" %>",
data : {"comment" : $(this).parents('.annc-comment-div').find('.announcement-comment').html()},
dataType : "json",
type : "get",
@ -177,9 +177,9 @@
<% end rescue nil %>
<% if action_data['show_comment_flag'] %>
<div class="annc-comment-div">
<div data-ph="<%= t('announcement.comment') %>" contenteditable="true" class="announcement-comment"></div>
<div data-ph="<%= t('curation.comment') %>" contenteditable="true" class="announcement-comment"></div>
<button class="btn btn-comment">
<%= t('announcement.send_comment') %>
<%= t('curation.send_comment') %>
</button>
</div>
<% end rescue nil %>

View File

@ -1,3 +1,3 @@
<h3>Hello <%= @data["name"] %>,</h3>
<p><%= @data["submitter"] %> <%= t("announcement.updated_annoucement") %>
<a href="<%= @data['url'] %>" ><%= t("announcement.click_here_to_see") %></a>
<p><%= @data["submitter"] %> <%= t("curation.updated_annoucement") %>
<a href="<%= @data['url'] %>" ><%= t("curation.click_here_to_see") %></a>

View File

@ -1,3 +1,3 @@
<h3>Hello <%= @data["name"] %>,</h3>
<p><%= @data["rejector"] %> <%= t("annoucement.rejected_annoucement") %> : <%= @data["reason"].nil? || @data["reason"] == "" ? "" : "#{@data["reason"]}" %></p>
<a href="<%= @data['url'] %>" ><%= t("announcement.click_here_to_see") %></a>
<p><%= @data["rejector"] %> <%= t("curation.rejected_annoucement") %> : <%= @data["reason"].nil? || @data["reason"] == "" ? "" : "#{@data["reason"]}" %></p>
<a href="<%= @data['url'] %>" ><%= t("curation.click_here_to_see") %></a>

View File

@ -115,7 +115,7 @@ en:
all_articles: All Articles
settings: Settings
import: Import / Export
announcement: Announcement
curation: Curation
approval_setting: Approval Setting
approve_bulletin_fail: Approval Fail
approve_bulletin_success: Approve Successfully
@ -206,4 +206,10 @@ en:
'11': 'November'
'12': 'December'
calendar_title: "%{month} %{year}"
section: Section
please_select: Please select
text: Text
universal_table: Universal Table
section_type: Section Type
tables: Tables

View File

@ -116,7 +116,7 @@ zh_tw:
jsonfeed: JSON 供給連結
feed_list: 訂閱清單
all_articles: 文章列表
announcement: 公告
curation: Curation
approval_setting: 審核設定
approve_bulletin_fail: 審核失敗
approve_bulletin_success: 審核成功
@ -195,4 +195,10 @@ zh_tw:
top: 重要
hot: 熱門
hidden: 隱藏
calendar_title: "%{year}年%{month}月"
calendar_title: "%{year}年%{month}月"
section: Section
please_select: Please select
text: Text
universal_table: Universal Table
section_type: Section Type
tables: Tables

View File

@ -40,7 +40,7 @@ if bundle_update_flag
info_json_file = "#{folder}modules/curation/info.json"
if File.exist?(info_json_file)
bundler_with_clean_env{system ('cp -f '+ app_path + '/modules/curation/show.html.erb ' + "#{folder}modules/curation/.")}
update_event_news_template(folder)
update_curation_template(folder)
begin
file_text = File.read(info_json_file) rescue ""
encode_file_text = file_text.encode("UTF-8", "UTF-8", invalid: :replace, replace: "???")

View File

@ -105,16 +105,16 @@ module Curation
puts ['there_was_no_show_option_method',e]
end
if File.basename($0) != 'rake'
gem_root = Announcement::Engine.root
gem_root = Curation::Engine.root
require File.join(gem_root, 'app/models/curation_cache')
begin
avoid_page_cache AnnsCache
avoid_page_cache CurationCache
rescue => e
puts ["avoid_page_cache", e.to_s]
end
end
side_bar do
head_label_i18n 'curation.curation', icon_class: "icons-megaphone"
head_label_i18n 'curation.curation', icon_class: "fa-area-chart"
available_for "users"
active_for_controllers (['admin/curations'])
head_link_path "admin_curations_path"