announcement-test/app/views/admin/announcements/settings.html.erb

247 lines
8.4 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<style type="text/css">
#notification{
background-color: #ececec;
font-size: 14px;
left: 40%;
padding: 10px;
position: absolute;
text-align: center;
top: 40px;
width: auto;
z-index: 1200;
display: none;
}
.badge-info{
margin-left: 10px;
}
#approver-list{
list-style: none;
margin-left: 5px;
}
#approver-list li {
border-bottom: 1px solid #efefef;
margin-bottom: 10px;
padding-bottom: 10px;
}
#approver-list .approver-avatar{
width: 60px;
height: 60px;
border-radius: 50px;
margin-right: 20px;
}
#approver-list .approver-check{
vertical-align: middle;
margin-top: 25px;
}
#approver-list .approver-check input{
margin-right: 5px;
vertical-align: middle;
}
#approver-list .approver-check label{
display: inline;
vertical-align: middle;
}
#approver-list .approver-title{
font-size: 14px;
}
.table{
display: flex;
flex-direction: column;
}
.table-row,.role_limit_tr,.role_limit_add {
width: 100%;
display: inline-flex;
align-items: center;
margin-bottom: 0.5em;
}
.td{
width: 30%;
display: inline-flex;
justify-content: center;
}
.table{
border: #2d4cd0 0.1em solid;
}
.td-3{
width: 100%;
display: inline-flex;
justify-content: center;
}
.td>*{
max-width: 95%;
}
.td-delete{
width: 10%;
}
</style>
<%
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)
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>"
%>
<script type="text/javascript">
function add_limit_role(){
var role_limit_l = $('.role_limit_tr').length
var role_limit_tp = '<%= all_tp.inspect %>'
role_limit_tp = role_limit_tp.replace(/-1/g,role_limit_l)
$('.role_limit_add').before($('<div/>').html(role_limit_tp).text().slice(1,-2))
}
function delete_limit_role(ele){
var now_index = $(ele).parents('.role_limit_tr').index('.role_limit_tr')
console.log(now_index)
$(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){
console.log($(v1).attr('name'))
$(v1).attr('name',$(v1).attr('name').replace(/\d+/g,i.toString()))
})
}
})
}
var approverList = $(".hidden-approver-list");
$(".approver-check input").on("click",function(){
var el = $(this);
if(el.is(":checked")){
var t = $("<input type='hidden'>");
t.val(el.val());
t.attr("name", "announcement_setting[approvers][]");
t.attr("id", "check_" + el.val());
approverList.append(t);
}else{
approverList.find("#check_" + el.val()).remove();
}
})
</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 class="input-area">
<div class="control-group">
<%= f.label :top_limit, t("announcement.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>
</div>
</div>
<div class="control-group">
<div class="table">
<div class="table-row">
<div class="td">
<%= t('status') %>
</div>
<div class="td">
<%= t('role') %>
</div>
<div class="td">
<%= t('announcement.top_limit') %>
</div>
</div>
<% (AnnouncementSetting.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) %>
<div class="td">
<%= select_tag("announcement_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'])) %>
</div>
<div class="td">
<%= number_field_tag("announcement_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">
<%= t('delete_') %>
</button>
</div>
</div>
<% end %>
<div class="role_limit_add">
<div class="td-3">
<button type="button" onclick="add_limit_role()" class="btn">
<%= t('add') %>
</button>
</div>
</div>
</div>
</div>
<% if AnnouncementSetting.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>
<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>
</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") %>
</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][]">
<% end %>
<% end %>
</div>
<% end %>
<div class="form-actions">
<%= f.submit t('submit'), class: 'btn btn-primary' %>
</div>
<% end %>
<% if AnnouncementSetting.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>
<h3 id="approverModalLabel"><%= t("sub_manager") %></h3>
</div>
<div class="modal-body">
<ul id="approver-list">
<% sub_managers.each do |sm| %>
<li>
<%= image_tag sm.member_profile.avatar.thumb, :class => "approver-avatar" %>
<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>
</span>
</li>
<% end %>
</ul>
</div>
<div class="modal-footer">
<button class="btn btn-primary" data-dismiss="modal" aria-hidden="true">Ok</button>
</div>
</div>
<script type="text/javascript">
$("#approverModal").on("hidden",function(){
$("#notification").slideDown();
$(".badge-info").text($(".hidden-approver-list input").length);
})
</script>
<% end %>