Repeat code for news module
This commit is contained in:
		
							parent
							
								
									c82d701b55
								
							
						
					
					
						commit
						a9c241658a
					
				| 
						 | 
				
			
			@ -0,0 +1,63 @@
 | 
			
		|||
class Panel::News::BackEnd::NewsBulletinCategorySettingController < OrbitBackendController
 | 
			
		||||
  before_filter :authenticate_user!
 | 
			
		||||
  before_filter :for_app_manager
 | 
			
		||||
  include AdminHelper
 | 
			
		||||
  # layout 'admin'
 | 
			
		||||
  # def preview_and_approve
 | 
			
		||||
  #   @bulletin = Bulletin.find params[:bulletin_id]
 | 
			
		||||
  # end
 | 
			
		||||
  
 | 
			
		||||
  # def approve
 | 
			
		||||
  #   
 | 
			
		||||
  # end
 | 
			
		||||
  
 | 
			
		||||
  def setting
 | 
			
		||||
    @bulletin_categorys = []
 | 
			
		||||
    @bulletin_categorys << NewsBulletinCategory.find(params[:news_bulletin_category_id])
 | 
			
		||||
    @options_from_collection_for_select_bulletin_categorys = @bulletin_categorys.collect{|bc| [bc.i18n_variable[I18n.locale],bc.id] }
 | 
			
		||||
    if params.has_key? :category
 | 
			
		||||
      @bulletin_category = NewsBulletinCategory.find params[:category][:id]
 | 
			
		||||
    else
 | 
			
		||||
      @bulletin_category =  @bulletin_categorys.first
 | 
			
		||||
    end
 | 
			
		||||
    preload_object_auth = @bulletin_category.object_auths.where(title: 'submit').empty?? (@bulletin_category.object_auths.create! :title=> 'submit') : @bulletin_category.object_auths.where(title: 'submit')
 | 
			
		||||
    @users_array =  preload_object_auth.first.privilege_users rescue []
 | 
			
		||||
    respond_to do |format|
 | 
			
		||||
      format.html
 | 
			
		||||
      format.js
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
  
 | 
			
		||||
  def update_setting
 | 
			
		||||
    object_auth = update_setting_by_params
 | 
			
		||||
    if object_auth.save!
 | 
			
		||||
      flash[:notice] = "Update Done"
 | 
			
		||||
    else
 | 
			
		||||
      flash[:notice] = "Update Failed"
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
  
 | 
			
		||||
  def user_list
 | 
			
		||||
    @bulletin_category = NewsBulletinCategory.find params[:category][:id]
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  protected
 | 
			
		||||
  def update_setting_by_params
 | 
			
		||||
    category = NewsBulletinCategory.find params[:category][:id]
 | 
			
		||||
    privilege_users = params[:users].collect{|key,value| User.find key }  rescue []
 | 
			
		||||
    object_auth_ary = category.object_auths.where(title: 'submit') || (category.object_auths.create :title=> 'submit')
 | 
			
		||||
    object_auth = object_auth_ary.first
 | 
			
		||||
    object_auth.privilege_users = privilege_users
 | 
			
		||||
    object_auth
 | 
			
		||||
  end
 | 
			
		||||
  
 | 
			
		||||
  def get_categorys(id = nil)
 | 
			
		||||
    @bulletin_categorys = []
 | 
			
		||||
    if(is_manager? || is_admin?)
 | 
			
		||||
      @bulletin_categorys = (id ? NewsBulletinCategory.find(id).to_a : NewsBulletinCategory.excludes('disabled' => true))
 | 
			
		||||
    elsif is_sub_manager?
 | 
			
		||||
      @bulletin_categorys = NewsBulletinCategory.authed_for_user(current_user,'submit_new')
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			@ -2,13 +2,16 @@ module Panel::News::BackEnd::NewsBulletinCategorysHelper
 | 
			
		|||
include ActionView::Helpers::UrlHelper
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
  def show_submit_permission_link(news_bulletin_category)
 | 
			
		||||
    oa = news_bulletin_category.get_object_auth_by_title('submit')
 | 
			
		||||
  def show_permission_link(news_bulletin_category)
 | 
			
		||||
    type = 'submit'
 | 
			
		||||
    oa = news_bulletin_category.get_object_auth_by_title(type)
 | 
			
		||||
    if oa.nil?
 | 
			
		||||
      news_bulletin_category.object_auths.new(title: 'submit' ).save
 | 
			
		||||
      oa = news_bulletin_category.get_object_auth_by_title('submit')
 | 
			
		||||
      news_bulletin_category.object_auths.new(title: type ).save
 | 
			
		||||
      oa = news_bulletin_category.get_object_auth_by_title(type)
 | 
			
		||||
    end
 | 
			
		||||
    link_to t('announcement.bulletin.cate_auth'), edit_admin_object_auth_path(oa)
 | 
			
		||||
#    link_to t('announcement.bulletin.cate_auth'), edit_admin_object_auth_path(oa)
 | 
			
		||||
link_to t('announcement.bulletin.cate_auth'),panel_news_back_end_news_bulletin_category_setting_path(news_bulletin_category)
 | 
			
		||||
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,44 @@
 | 
			
		|||
<% if bulletin_category -%>
 | 
			
		||||
 | 
			
		||||
<div class="modal hide fade in" id="bulletin_category-<%=bulletin_category.id%>">
 | 
			
		||||
  <div class="modal-header">
 | 
			
		||||
    <a class="close" data-dismiss="modal">×</a>
 | 
			
		||||
    <h3><%= t("announcement.bulletin.approval_user_list") %></h3>
 | 
			
		||||
  </div>
 | 
			
		||||
  <div class="modal-body">
 | 
			
		||||
		<div class="clear">
 | 
			
		||||
			<% bulletin_category.get_object_auth_by_title('submit').auth_users.each do |user| %>
 | 
			
		||||
			<div class="checkbox clear checked">
 | 
			
		||||
					<div class='member-avatar'>
 | 
			
		||||
						<% if user.avatar? %>
 | 
			
		||||
							<%= image_tag(user.avatar.thumb.url,:class => "member-img") %>
 | 
			
		||||
						<% else %>
 | 
			
		||||
							<%= image_tag "person.png",:class => "member-img" %>
 | 
			
		||||
						<% end %>	
 | 
			
		||||
					</div>
 | 
			
		||||
					<%= label_tag "lab-user-#{user.id}", (user.name rescue ''),:class=>"member-name",:id=>nil -%>
 | 
			
		||||
			</div>
 | 
			
		||||
			<% end -%>
 | 
			
		||||
		<divl>
 | 
			
		||||
  </div>
 | 
			
		||||
  <div class="modal-footer">
 | 
			
		||||
    <a href="#" class="btn" data-dismiss="modal"><%= t("modal.close") %></a>
 | 
			
		||||
  </div>
 | 
			
		||||
  <div>
 | 
			
		||||
  	<script type="text/javascript" src="/static/kernel.js"></script>
 | 
			
		||||
		<script type="text/javascript">
 | 
			
		||||
			$(document).ready(function() {
 | 
			
		||||
	
 | 
			
		||||
			$("#bulletin_category-<%=bulletin_category.id%>").on("show", function () {
 | 
			
		||||
			});
 | 
			
		||||
		$(".modal").on("hidden", function () {
 | 
			
		||||
	  $("#show_preview").remove();
 | 
			
		||||
			});
 | 
			
		||||
		});
 | 
			
		||||
		</script>
 | 
			
		||||
	</div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<% end -%>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,26 @@
 | 
			
		|||
<%= content_tag :div ,:id => "users_checkbox_ary",:class => 'clear' do -%>
 | 
			
		||||
<% sys_users = User.all -%>
 | 
			
		||||
	<% sys_users.each do |sys_user| -%>
 | 
			
		||||
	
 | 
			
		||||
			<div class="checkblock">
 | 
			
		||||
				
 | 
			
		||||
				<% sys_user.sub_roles.each do |sr| %>
 | 
			
		||||
					<div class="for_unit" style="display:none;"> <%= sr.key %></div>
 | 
			
		||||
				<% end %>
 | 
			
		||||
				<%= content_tag :div,:data=>{'original-title'=>t('announcement.bulletin.approval_setting_window_title'),:content => "#{sys_user.sub_roles.collect{|sr| sr.i18n_variable[I18n.locale]}.join(',')}"},:class=>"checkbox clear" do %>
 | 
			
		||||
					<div class="check-icon">
 | 
			
		||||
					</div>
 | 
			
		||||
					<div class='member-avatar'>
 | 
			
		||||
						<% if sys_user.avatar? %>
 | 
			
		||||
							<%= image_tag(sys_user.avatar.thumb.url,:class => "member-img") %>
 | 
			
		||||
						<% else %>
 | 
			
		||||
							<%= image_tag "person.png",:class => "member-img" %>
 | 
			
		||||
						<% end %>	
 | 
			
		||||
					</div>
 | 
			
		||||
					<%= label_tag "lab-user-#{sys_user.id}", (sys_user.name rescue ''),:class=>"member-name",:id=>nil -%>
 | 
			
		||||
					<%= check_box_tag "[users][#{sys_user.id}]", 'true',users.include?(sys_user),:class => "check"   -%>
 | 
			
		||||
				<%end -%>
 | 
			
		||||
			</div>
 | 
			
		||||
 | 
			
		||||
	<% end -%>
 | 
			
		||||
<% end -%>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,56 @@
 | 
			
		|||
<% 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"  %>
 | 
			
		||||
	<%= javascript_include_tag "inc/modal-preview"  %>
 | 
			
		||||
<% end %>
 | 
			
		||||
<%#= label_tag :fact_check_setting, t("announcement.bulletin.fact_check_setting") %>
 | 
			
		||||
<%= form_tag('', :remote => true,:class => "prevent_enter_submit_form")  %>
 | 
			
		||||
<div class="subnav clear">
 | 
			
		||||
    <ul class="nav nav-pills filter pull-left">
 | 
			
		||||
        <li class="accordion-group">
 | 
			
		||||
            <div class="form-search" style="margin: 5px 10px;">
 | 
			
		||||
                <%= label_tag :category, t("announcement.bulletin.category") %>
 | 
			
		||||
                <%= select "category",'id',@options_from_collection_for_select_bulletin_categorys %>
 | 
			
		||||
								<%= search_field_tag 'user_filter' %>
 | 
			
		||||
            </div>
 | 
			
		||||
 | 
			
		||||
        </li>
 | 
			
		||||
    </ul>
 | 
			
		||||
		<%= link_to t("announcement.bulletin.approval_user_list"), panel_news_back_end_news_bulletin_category_user_list_path , :class=>'preview_trigger btn btn-success pull-right'%>	
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
<%#= label_tag :role, t("admin.roles") %>
 | 
			
		||||
<div class="clear">
 | 
			
		||||
<%= content_tag :div do -%>
 | 
			
		||||
	<% form_tag panel_news_back_end_news_bulletin_category_setting_path  do %>
 | 
			
		||||
		<%= render :partial => "privilege_user", :locals => {:users => @users_array} %>
 | 
			
		||||
	<div class="form-actions form-fixed pagination-right">
 | 
			
		||||
	<%= submit_tag "Update", :class => 'btn btn-primary' %>
 | 
			
		||||
	</div>
 | 
			
		||||
	<% end -%>
 | 
			
		||||
<% end -%>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<script type="text/javascript" charset="utf-8">
 | 
			
		||||
var availableTags = [];
 | 
			
		||||
$(document).ready(function() {
 | 
			
		||||
	
 | 
			
		||||
	$(".prevent_enter_submit_form").bind("keypress", function(e) {
 | 
			
		||||
		if (e.keyCode == 13) {
 | 
			
		||||
			return false;
 | 
			
		||||
		}
 | 
			
		||||
	});
 | 
			
		||||
   
 | 
			
		||||
	$('#category_id').change(function() {
 | 
			
		||||
		$.ajax({
 | 
			
		||||
			type: 'GET',
 | 
			
		||||
			dataType: "script",
 | 
			
		||||
			url:$(this).parents("from").attr("href"),
 | 
			
		||||
			data:$(this).parents("form").serialize()
 | 
			
		||||
		});
 | 
			
		||||
	});
 | 
			
		||||
});
 | 
			
		||||
</script>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,2 @@
 | 
			
		|||
$("#users_checkbox_ary").replaceWith('<%= escape_javascript(render :partial => "privilege_user", :locals => {:users => @users_array})%>');
 | 
			
		||||
permissionCheckbox();
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
alert( "<% flash.each do |key, msg| %><%= msg %><% end%>");
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,2 @@
 | 
			
		|||
$('#show_preview').html("<%= escape_javascript(render(:partial => 'modal_list',:locals => {:bulletin_category => @bulletin_category})) %>");
 | 
			
		||||
var start_modal_with_id = "bulletin_category-<%=@bulletin_category.id%>"
 | 
			
		||||
| 
						 | 
				
			
			@ -5,7 +5,7 @@
 | 
			
		|||
			<div class="quick-edit">
 | 
			
		||||
				<ul class="nav nav-pills hide">
 | 
			
		||||
					<%if is_manager? || is_admin? %>
 | 
			
		||||
						<li><%= show_submit_permission_link(news_bulletin_category) %></li>
 | 
			
		||||
						<li><%= show_permission_link(news_bulletin_category) %></li>
 | 
			
		||||
					<% end %>
 | 
			
		||||
					<% if is_admin?%>
 | 
			
		||||
						<li><%= link_to t('bulletin_category.edit'), edit_panel_news_back_end_news_bulletin_category_path(news_bulletin_category), :remote => true %></li>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -20,7 +20,11 @@ Rails.application.routes.draw do
 | 
			
		|||
          match "file_quick_edit/:news_bulletin_id" => "news_bulletins#file_quick_edit" ,:as => :file_quick_edit
 | 
			
		||||
        end
 | 
			
		||||
		
 | 
			
		||||
        resources :news_bulletin_categorys
 | 
			
		||||
        resources :news_bulletin_categorys do
 | 
			
		||||
          match 'submit_setting' => "news_bulletin_category_setting#setting" ,:as => :setting,:via => :get
 | 
			
		||||
          match 'submit_setting' => "news_bulletin_category_setting#update_setting" ,:as => :setting,:via => :post
 | 
			
		||||
          match 'submit_setting' => "news_bulletin_category_setting#user_list" ,:as => :user_list,:via => :put
 | 
			
		||||
        end
 | 
			
		||||
		
 | 
			
		||||
		resources :news_bulletin_links, :controller => 'news_bulletin_links' do
 | 
			
		||||
          match "link_quick_edit/:news_bulletin_link_id" => "news_bulletin_links#link_quick_edit" ,:as => :link_quick_edit
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Reference in New Issue