diff --git a/app/controllers/admin/feeds_controller.rb b/app/controllers/admin/feeds_controller.rb index 669aef5..9d6b0fc 100644 --- a/app/controllers/admin/feeds_controller.rb +++ b/app/controllers/admin/feeds_controller.rb @@ -1,5 +1,6 @@ class Admin::FeedsController < OrbitAdminController layout :compute_layout + helper_method :search_all_words def compute_layout if action_name== 'annc_content' false @@ -61,7 +62,17 @@ class Admin::FeedsController < OrbitAdminController render :text => 'success' end def announcements + @filter_fields = {} + @filter_fields['source'] = SiteFeed.all.pluck(:channel_title,:remote_site_url).collect do |a,b| + tp = (a.blank? || a[I18n.locale].blank?) ? b.gsub(/http:\/\/|https:\/\//,'').gsub(/\./,'-') : a[I18n.locale] + {:title => tp,:id => tp} + end @all_feed_annc = SiteFeedAnnc.all.order(created_at: 1).to_a rescue [] + @source = params[:filters][:source] rescue [] + @keywords = params[:keywords] rescue nil + if request.xhr? + render :partial => "announcements" + end end def get_category_list app_key = params[:channel] @@ -150,5 +161,10 @@ class Admin::FeedsController < OrbitAdminController end render :json => {"success" => true}.to_json end + def search_all_words(target, word) + target = target.upcase + words = word.upcase.split(' ') + words.select { |value| target.include? value } == words + end end diff --git a/app/views/admin/feeds/_announcements.html.erb b/app/views/admin/feeds/_announcements.html.erb new file mode 100644 index 0000000..f72b59c --- /dev/null +++ b/app/views/admin/feeds/_announcements.html.erb @@ -0,0 +1,60 @@ +<% available_locales = Site.first.in_use_locales rescue I18n.available_locales %> + + + + + + + + + + + <% @all_feed_annc.each do |feed_annc| %> + <% feed_name = available_locales.collect{|v| feed_annc[:feed_name][v]}.join(' / ') %> + <% if @source.blank? || (@source.include?(feed_annc.channel_title) rescue false) || @source.include?(feed_annc.remote_site_url.gsub(/http:\/\/|https:\/\//,'').gsub(/\./,'-')) %> + <% Array(feed_annc[:all_contents_for_feed]).each do |annc| %> + <% annc_title = available_locales.collect{|v| annc['title_translations'][v]}.join('/') %> + <% annc_tags = annc['tags'].collect{|tmp| available_locales.collect{|v| tmp['name_translations'][v]}.join(' / ')} %> + <% if @keywords.blank? || search_all_words(Nokogiri.HTML(annc_title).text()+' '+feed_name+' '+annc_tags.join(' '),@keywords) %> + '> + + + + + + <% end %> + <% end %> + <% end %> + <% end %> + +
<%= t('feed.feed_name') %><%= "#{t('title')}(#{available_locales.collect{|v| t(v)}.join('/')})" %><%= "#{t('tags')}(#{available_locales.collect{|v| t(v)}.join('/')})" %>
+ <% if (!feed_annc.channel_title.to_s.empty? rescue false) %> + <%= feed_annc.channel_title %> +
+ <% end %> + <%= feed_name %> +
+
    +
  • + <%= annc_title.html_safe %> +
  • +
  • + <%= check_box_tag nil,nil,feed_annc[:top_list].include?(annc['id']),'class' => 'is_top' %> + <%= check_box_tag nil,nil,feed_annc[:hot_list].include?(annc['id']),'class' => 'is_hot' %> +
  • +
+
+ <%= annc_tags.join('
').html_safe %> +
+ <% display_flag = feed_annc[:hidden_annc].count==0 || feed_annc[:hidden_annc].exclude?(annc['id']) ? true : false %> + <% if display_flag %> + + <% else %> + + <% end %> +
+ \ No newline at end of file diff --git a/app/views/admin/feeds/announcements.html.erb b/app/views/admin/feeds/announcements.html.erb index 369dd99..44a9874 100644 --- a/app/views/admin/feeds/announcements.html.erb +++ b/app/views/admin/feeds/announcements.html.erb @@ -1,4 +1,3 @@ -<% available_locales = Site.first.in_use_locales rescue I18n.available_locales %>