Add only_manager_can_edit_status setting.
This commit is contained in:
parent
5ae0c57a1a
commit
3ed071f486
|
@ -15,6 +15,7 @@ class Admin::AnnouncementsController < OrbitAdminController
|
||||||
Bulletin.remove_expired_status
|
Bulletin.remove_expired_status
|
||||||
@tags = @module_app.tags
|
@tags = @module_app.tags
|
||||||
@table_fields = [:status, :category, :title, :start_date, :end_date, :last_modified]
|
@table_fields = [:status, :category, :title, :start_date, :end_date, :last_modified]
|
||||||
|
@current_user = current_user
|
||||||
if AnnouncementSetting.first.is_display_edit_only && !current_user.is_admin? && !current_user.is_manager?(@module_app)
|
if AnnouncementSetting.first.is_display_edit_only && !current_user.is_admin? && !current_user.is_manager?(@module_app)
|
||||||
current_user_is_sub_manager = !current_user.is_manager?(@module_app) && (current_user.is_sub_manager?(@module_app) || current_user.is_sub_manager_with_role?(@module_app)) rescue false
|
current_user_is_sub_manager = !current_user.is_manager?(@module_app) && (current_user.is_sub_manager?(@module_app) || current_user.is_sub_manager_with_role?(@module_app)) rescue false
|
||||||
if current_user_is_sub_manager
|
if current_user_is_sub_manager
|
||||||
|
@ -173,9 +174,15 @@ class Admin::AnnouncementsController < OrbitAdminController
|
||||||
bps['bulletin_links_attributes'].delete(idx.to_s) if link['url'].blank?
|
bps['bulletin_links_attributes'].delete(idx.to_s) if link['url'].blank?
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if bps[:is_top] == "1" && !AnnouncementSetting.check_limit_for_user(current_user.id)
|
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))) )
|
||||||
bps[:is_top] = "0"
|
if bps[:is_top] == "1" && !AnnouncementSetting.check_limit_for_user(bulletin.create_user_id, bulletin.id)
|
||||||
bps[:top_end_date] = nil
|
bps[:is_top] = "0"
|
||||||
|
bps[:top_end_date] = nil
|
||||||
|
end
|
||||||
|
else
|
||||||
|
bps[:is_top] = false
|
||||||
|
bps[:is_hot] = false
|
||||||
|
bps[:is_hidden] = false
|
||||||
end
|
end
|
||||||
|
|
||||||
bulletin = Bulletin.new(bps)
|
bulletin = Bulletin.new(bps)
|
||||||
|
@ -237,12 +244,16 @@ class Admin::AnnouncementsController < OrbitAdminController
|
||||||
bps['bulletin_links_attributes'].delete(idx.to_s) if link['url'].blank?
|
bps['bulletin_links_attributes'].delete(idx.to_s) if link['url'].blank?
|
||||||
end
|
end
|
||||||
end
|
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 bps[:is_top] == "1" && !AnnouncementSetting.check_limit_for_user(bulletin.create_user_id, bulletin.id)
|
if bps[:is_top] == "1" && !AnnouncementSetting.check_limit_for_user(bulletin.create_user_id, bulletin.id)
|
||||||
bps[:is_top] = "0"
|
bps[:is_top] = "0"
|
||||||
bps[:top_end_date] = nil
|
bps[:top_end_date] = nil
|
||||||
|
end
|
||||||
|
else
|
||||||
|
bps[:is_top] = bulletin.is_top
|
||||||
|
bps[:is_hot] = bulletin.is_hot
|
||||||
|
bps[:is_hidden] = bulletin.is_hidden
|
||||||
end
|
end
|
||||||
|
|
||||||
bulletin.update_attributes(bps)
|
bulletin.update_attributes(bps)
|
||||||
bulletin.update_user_id = current_user.id
|
bulletin.update_user_id = current_user.id
|
||||||
if bulletin.rejected
|
if bulletin.rejected
|
||||||
|
|
|
@ -7,6 +7,7 @@ class AnnouncementSetting
|
||||||
field :approvers, type: Array, :default => []
|
field :approvers, type: Array, :default => []
|
||||||
field :email_to, type: Array, :default => ["admins","managers","approvers"]
|
field :email_to, type: Array, :default => ["admins","managers","approvers"]
|
||||||
field :is_display_edit_only, type: Boolean, :default => false
|
field :is_display_edit_only, type: Boolean, :default => false
|
||||||
|
field :only_manager_can_edit_status, type: Boolean, :default => false
|
||||||
has_many :anns_status_settings, :autosave => true, :dependent => :destroy
|
has_many :anns_status_settings, :autosave => true, :dependent => :destroy
|
||||||
accepts_nested_attributes_for :anns_status_settings, :allow_destroy => true
|
accepts_nested_attributes_for :anns_status_settings, :allow_destroy => true
|
||||||
def self.check_limit_for_user(user_id, b_id = nil)
|
def self.check_limit_for_user(user_id, b_id = nil)
|
||||||
|
|
|
@ -30,7 +30,9 @@
|
||||||
<div class="nav-name"><strong><%= t(:module) %></strong></div>
|
<div class="nav-name"><strong><%= t(:module) %></strong></div>
|
||||||
<ul class="nav nav-pills module-nav">
|
<ul class="nav nav-pills module-nav">
|
||||||
<li class="active"><a href="#basic" data-toggle="tab"><%= t(:basic) %></a></li>
|
<li class="active"><a href="#basic" data-toggle="tab"><%= t(:basic) %></a></li>
|
||||||
<li><a href="#status" data-toggle="tab"><%= t(:status) %></a></li>
|
<% 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))) ) %>
|
||||||
|
<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="#tag" data-toggle="tab"><%= t(:tags) %></a></li>
|
||||||
<li><a href="#imageupload" data-toggle="tab"><%= t('announcement.image') %></a></li>
|
<li><a href="#imageupload" data-toggle="tab"><%= t('announcement.image') %></a></li>
|
||||||
<li><a href="#mail-group" data-toggle="tab"><%= t('announcement.email_reminder')%></a></li>
|
<li><a href="#mail-group" data-toggle="tab"><%= t('announcement.email_reminder')%></a></li>
|
||||||
|
@ -97,6 +99,7 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Status Module -->
|
<!-- 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))) ) %>
|
||||||
<div class="tab-pane fade" id="status">
|
<div class="tab-pane fade" id="status">
|
||||||
<!-- Status -->
|
<!-- Status -->
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
|
@ -138,7 +141,7 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<%# end %>
|
<% end %>
|
||||||
|
|
||||||
<!-- Tag Module -->
|
<!-- Tag Module -->
|
||||||
<div class="tab-pane fade" id="tag">
|
<div class="tab-pane fade" id="tag">
|
||||||
|
|
|
@ -121,6 +121,12 @@
|
||||||
<div id="notification"><%= t("announcement.click_on_submit") %></div>
|
<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| %>
|
<%= form_for @setting, url: (@setting.new_record? ? admin_announcement_createsettings_path : admin_announcement_updatesettings_path), html: {class: "form-horizontal main-forms"} do |f| %>
|
||||||
<div class="input-area">
|
<div class="input-area">
|
||||||
|
<div class="control-group">
|
||||||
|
<%= f.label :only_manager_can_edit_status, t("announcement.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">
|
<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("announcement.is_display_edit_only"), :class => "control-label muted" %>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
|
|
|
@ -114,3 +114,4 @@ en:
|
||||||
display_subtitle: Display Subtitle in Content Page
|
display_subtitle: Display Subtitle in Content Page
|
||||||
display_img: Display Cover Image in Content Page
|
display_img: Display Cover Image in Content Page
|
||||||
is_display_edit_only: Only display editable announcements
|
is_display_edit_only: Only display editable announcements
|
||||||
|
only_manager_can_edit_status: Only manager can edit status of announcements
|
||||||
|
|
|
@ -118,3 +118,4 @@ zh_tw:
|
||||||
display_subtitle: 內容頁顯示副標題
|
display_subtitle: 內容頁顯示副標題
|
||||||
display_img: 內容頁顯示封面圖片
|
display_img: 內容頁顯示封面圖片
|
||||||
is_display_edit_only: 只顯示可更新的公告
|
is_display_edit_only: 只顯示可更新的公告
|
||||||
|
only_manager_can_edit_status: 只有管理者可更新公告狀態
|
||||||
|
|
Loading…
Reference in New Issue