From 1d00b0771952d253842632280098c807ffcab314 Mon Sep 17 00:00:00 2001 From: Andreas Stephanides Date: Thu, 21 Aug 2014 16:29:29 +0530 Subject: [PATCH] pagination bootstrap update layout --- Gemfile | 5 ++- app/assets/javascripts/pagination.js.coffee | 10 ++++++ app/controllers/home_controller.rb | 5 +-- app/controllers/neuigkeiten_controller.rb | 15 ++++++-- app/controllers/rubriken_controller.rb | 16 ++++++--- app/controllers/themengruppen_controller.rb | 2 +- app/views/layouts/application.html.erb | 35 +++++++++---------- app/views/neuigkeiten/_find_link.js.erb | 0 app/views/neuigkeiten/_neuigkeit.html.erb | 15 ++++++++ app/views/neuigkeiten/_nlink_list.html.erb | 6 ++-- .../_nlink_list_search_whole.html.erb | 5 +++ .../neuigkeiten/_nlink_list_whole.html.erb | 15 ++++++++ app/views/neuigkeiten/create_link.js.erb | 2 +- app/views/neuigkeiten/find_link.js.erb | 1 + app/views/neuigkeiten/show.html.erb | 14 ++------ app/views/news_mailer/neuigkeit_mail.html.erb | 10 +++--- app/views/rubriken/index.html.erb | 7 +++- app/views/rubriken/show.html.erb | 12 ++++--- app/views/rubriken/show.js.erb | 7 ++++ config/routes.rb | 1 + 20 files changed, 129 insertions(+), 54 deletions(-) create mode 100644 app/assets/javascripts/pagination.js.coffee create mode 100644 app/views/neuigkeiten/_find_link.js.erb create mode 100644 app/views/neuigkeiten/_nlink_list_search_whole.html.erb create mode 100644 app/views/neuigkeiten/_nlink_list_whole.html.erb create mode 100644 app/views/neuigkeiten/find_link.js.erb create mode 100644 app/views/rubriken/show.js.erb diff --git a/Gemfile b/Gemfile index fd80595..6250ceb 100755 --- a/Gemfile +++ b/Gemfile @@ -102,4 +102,7 @@ gem 'themes_for_rails' gem 'rubyzip' -gem 'acts_as_votable' \ No newline at end of file +gem 'acts_as_votable' + +gem 'will_paginate' +gem 'bootstrap-will_paginate' diff --git a/app/assets/javascripts/pagination.js.coffee b/app/assets/javascripts/pagination.js.coffee new file mode 100644 index 0000000..f9d1c14 --- /dev/null +++ b/app/assets/javascripts/pagination.js.coffee @@ -0,0 +1,10 @@ +jQuery -> + if $('#infinite-scrolling').size() > 0 + $(window).on 'scroll', -> + more_posts_url = $('.pagination .next_page a').attr('href') + b=$(document).height() - $(window).height() - 60 + if more_posts_url && $(window).scrollTop() > b + $('.pagination').html(' Loading...') + $.getScript more_posts_url + return + return \ No newline at end of file diff --git a/app/controllers/home_controller.rb b/app/controllers/home_controller.rb index df28c51..ea3b682 100755 --- a/app/controllers/home_controller.rb +++ b/app/controllers/home_controller.rb @@ -28,6 +28,7 @@ class HomeController < ApplicationController def linksnotimplemented render 'links_notimplemented' end + def search unless params['query'].nil? || params['query'].empty? @@ -54,8 +55,8 @@ class HomeController < ApplicationController end end def choose_contact_topics -File.open("config/contact_topic.yml",'w'){|f| f.write(params[:themen].to_yaml)} - redirect_to admin_home_index_path + File.open("config/contact_topic.yml",'w'){|f| f.write(params[:themen].to_yaml)} + redirect_to admin_home_index_path end end diff --git a/app/controllers/neuigkeiten_controller.rb b/app/controllers/neuigkeiten_controller.rb index 29a54b9..52701ff 100755 --- a/app/controllers/neuigkeiten_controller.rb +++ b/app/controllers/neuigkeiten_controller.rb @@ -86,6 +86,11 @@ class NeuigkeitenController < ApplicationController end end + def mail_preview + @neuigkeit = Neuigkeit.find(params[:id]) + authorize! :publish, @neuigkeit + render template: "news_mailer/neuigkeit_mail", layout: false + end def edit @neuigkeit = Neuigkeit.find(params[:id]) @@ -109,8 +114,12 @@ class NeuigkeitenController < ApplicationController @nlink_search.flatten! - - render action:"show" + respond_to do |format| + format.html { render action:"show" } + format.js + end + + end def create_link @neuigkeit = Neuigkeit.find(params[:id]) @@ -118,7 +127,7 @@ class NeuigkeitenController < ApplicationController Nlink.create(:link=>params[:link_type].constantize.find(params[:link_id]),:neuigkeit=>Neuigkeit.find(params[:id])) @nlinks=@neuigkeit.nlinks respond_to do |format| - format.html { edirect_to action:"show" } + format.html { redirect_to action:"show" } format.js end end diff --git a/app/controllers/rubriken_controller.rb b/app/controllers/rubriken_controller.rb index 42afaf2..5e629d7 100755 --- a/app/controllers/rubriken_controller.rb +++ b/app/controllers/rubriken_controller.rb @@ -4,13 +4,18 @@ class RubrikenController < ApplicationController def index if can?(:showintern, Rubrik) @rubriken = Rubrik.all - @neuigkeiten = Neuigkeit.recent + @neuigkeiten = Neuigkeit.paginate(page: params[:page], per_page:3) else @rubriken = Rubrik.where(:public=>true) @neuigkeiten = Neuigkeit.public.recent end @calentries= @rubriken.collect(&:calentries).flatten + respond_to do |format| + format.html + format.js {render action: :show} + end + end def intern @@ -26,14 +31,17 @@ class RubrikenController < ApplicationController @moderatoren=User.with_role(:newsmoderator,@rubrik) @calentries= @rubrik.calentries if can?(:showunpublished, Neuigkeit) - @neuigkeiten = @rubrik.neuigkeiten + @neuigkeiten = @rubrik.neuigkeiten.paginate(page: params[:page], per_page:3) else - @neuigkeiten = @rubrik.neuigkeiten.published + @neuigkeiten = @rubrik.neuigkeiten.published.paginate(page: params[:page], per_page:3) end @toolbar_elements << {:text=>I18n.t('neuigkeit.new.title'), :path=> new_rubrik_neuigkeit_path(@rubrik),:hicon=>'icon-plus-sign'} if can? :verwalten, @rubrik @toolbar_elements << {:text=>I18n.t('common.verwalten'), :path=>verwalten_rubrik_path(@rubrik),:icon=>:pencil} if can? :verwalten, @rubrik - + respond_to do |format| + format.html + format.js + end end diff --git a/app/controllers/themengruppen_controller.rb b/app/controllers/themengruppen_controller.rb index a648f77..c2d310e 100644 --- a/app/controllers/themengruppen_controller.rb +++ b/app/controllers/themengruppen_controller.rb @@ -7,7 +7,7 @@ class ThemengruppenController < ApplicationController @toolbar_elements = [] @toolbar_elements << {:icon=>:plus, :hicon=>'icon-plus-sign', :text=>I18n.t('themengruppe.new'), :path=>new_themengruppe_path()} if can? :new, Themengruppe @toolbar_elements << {:icon=>:plus, :hicon=>'icon-plus-sign', :text=>I18n.t('themengruppe.manage_all'), :path=>verwalten_all_themengruppen_path()} if can? :verwalten_all, Themengruppe - + respond_to do |format| format.html # index.html.erb format.json { render json: @themengruppen } diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index 22b340c..dafbaf5 100755 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -1,23 +1,23 @@ - + - - - Fetsite + + + Fetsite + + <%= stylesheet_link_tag "themes/"+theme_name+"/application", :media => "all" unless theme_name.empty? %> + <%= stylesheet_link_tag "application", :media=>"all" if theme_name.empty? %> + <% theme_stylesheet_link_tag "test", :media => "all" %> + <% theme_stylesheet_link_tag "mod", :media=>"all" %> + <%= javascript_include_tag "application" %> + <%= csrf_meta_tags %> + <%= yield :header %> + - - <%= stylesheet_link_tag "themes/"+theme_name+"/application", :media => "all" unless theme_name.empty? %> - <%= stylesheet_link_tag "application", :media=>"all" if theme_name.empty? %> - <% theme_stylesheet_link_tag "test", :media => "all" %> - <% theme_stylesheet_link_tag "mod", :media=>"all" %> - <%= javascript_include_tag "application" %> - <%= csrf_meta_tags %> - - - -
+ +
@@ -27,7 +27,6 @@ <%= link_to home_index_path do %> <% end %> -
-
+
- + diff --git a/app/views/neuigkeiten/_find_link.js.erb b/app/views/neuigkeiten/_find_link.js.erb new file mode 100644 index 0000000..e69de29 diff --git a/app/views/neuigkeiten/_neuigkeit.html.erb b/app/views/neuigkeiten/_neuigkeit.html.erb index 9e17f73..3f23ff2 100755 --- a/app/views/neuigkeiten/_neuigkeit.html.erb +++ b/app/views/neuigkeiten/_neuigkeit.html.erb @@ -1,5 +1,20 @@ +<% if defined?(wrap_in) && !wrap_in.blank? %> +<%= content_tag wrap_in do %> +www <% c =[:linkbox] %> <% c << "color-"+neuigkeit.rubrik.color.to_s+"-dark" unless neuigkeit.rubrik.color.nil? %> <%= link_to [neuigkeit.rubrik,neuigkeit], {class: c} do %> <%= render :partial=>"neuigkeiten/compact",:locals=> {:neuigkeit=> neuigkeit} %> <% end %> + +<% end %> +<% else %> + +<% c =[:linkbox] %> +<% c << "color-"+neuigkeit.rubrik.color.to_s+"-dark" unless neuigkeit.rubrik.color.nil? %> +<%= link_to [neuigkeit.rubrik,neuigkeit], {class: c} do %> +<%= render :partial=>"neuigkeiten/compact",:locals=> {:neuigkeit=> neuigkeit} %> +<% end %> + + +<% end %> diff --git a/app/views/neuigkeiten/_nlink_list.html.erb b/app/views/neuigkeiten/_nlink_list.html.erb index d93927c..f6d9eb5 100644 --- a/app/views/neuigkeiten/_nlink_list.html.erb +++ b/app/views/neuigkeiten/_nlink_list.html.erb @@ -1,11 +1,11 @@ -
  • + <%= link_to nlink_list.link do %> -
    +
    <% p = nlink_list.link_type.downcase.pluralize+"/nlink" %> <%= raw(strip_links(render :partial=>p, :object=>nlink_list.link )) %>
    <% end %> -
  • + diff --git a/app/views/neuigkeiten/_nlink_list_search_whole.html.erb b/app/views/neuigkeiten/_nlink_list_search_whole.html.erb new file mode 100644 index 0000000..f2aefa1 --- /dev/null +++ b/app/views/neuigkeiten/_nlink_list_search_whole.html.erb @@ -0,0 +1,5 @@ + diff --git a/app/views/neuigkeiten/_nlink_list_whole.html.erb b/app/views/neuigkeiten/_nlink_list_whole.html.erb new file mode 100644 index 0000000..6fecd01 --- /dev/null +++ b/app/views/neuigkeiten/_nlink_list_whole.html.erb @@ -0,0 +1,15 @@ + + diff --git a/app/views/neuigkeiten/create_link.js.erb b/app/views/neuigkeiten/create_link.js.erb index d24f9fc..0c67c0b 100644 --- a/app/views/neuigkeiten/create_link.js.erb +++ b/app/views/neuigkeiten/create_link.js.erb @@ -1,2 +1,2 @@ $('#nlink_list_search').html(""); -$('#nlink_list').html("<%= escape_javascript( render partial:"nlink_list", collection: @nlinks )%>"); \ No newline at end of file +$('#nlink_list').replaceWith("<%= escape_javascript( render partial:"nlink_list_whole", object: @nlinks )%>"); \ No newline at end of file diff --git a/app/views/neuigkeiten/find_link.js.erb b/app/views/neuigkeiten/find_link.js.erb new file mode 100644 index 0000000..20b228d --- /dev/null +++ b/app/views/neuigkeiten/find_link.js.erb @@ -0,0 +1 @@ +$('#nlink_list_search').replaceWith("<%= escape_javascript( render partial:"nlink_list_search_whole", object: @nlink_search )%>"); \ No newline at end of file diff --git a/app/views/neuigkeiten/show.html.erb b/app/views/neuigkeiten/show.html.erb index 10e32ef..53f946f 100755 --- a/app/views/neuigkeiten/show.html.erb +++ b/app/views/neuigkeiten/show.html.erb @@ -27,18 +27,10 @@ <% end %> <%= render 'layouts/pretty_toolbar', :object=> @toolbar_elements %>
    - -<%= I18n.t("neuigkeit.sieheauch") %> - +<%= render partial: 'nlink_list_whole', :object=>@neuigkeit.nlinks %> +<%= render partial: 'nlink_list_search_whole', object: @nlink_search %> <% if can? :find_link, @neuigkeit %> -<%= semantic_form_for :find_link, :url=>find_link_rubrik_neuigkeit_path(@rubrik,@neuigkeit), :html=>{:id=>"search_form", :method=>'get'} do |f| %> +<%= semantic_form_for :find_link, :url=>find_link_rubrik_neuigkeit_path(@rubrik,@neuigkeit), :html=>{:id=>"search_form", :method=>'get'} , :remote=> true do |f| %> <%= f.input :query, :input_html => { :name => 'query' },:label=>false %> <% end %> <% end %> diff --git a/app/views/news_mailer/neuigkeit_mail.html.erb b/app/views/news_mailer/neuigkeit_mail.html.erb index 8706934..5149fd2 100644 --- a/app/views/news_mailer/neuigkeit_mail.html.erb +++ b/app/views/news_mailer/neuigkeit_mail.html.erb @@ -1,4 +1,6 @@ -

    - <%= @neuigkeit.title%> -

    - <%= raw(@neuigkeit.text) %> +

    + <%= @neuigkeit.title%> +

    +<%= image_tag @neuigkeit.picture.big_thumb.url %> +<%= raw(@neuigkeit.text) %> +

    Eine Nachricht aus deiner Fachschaft! wenn du diese Neuigkeiten nicht mehr bekommen willst hast du leider Pech gehabt es gibt keine Möglichkeit aus der FET wieder auszutreten.

    diff --git a/app/views/rubriken/index.html.erb b/app/views/rubriken/index.html.erb index 1cd9149..0039867 100755 --- a/app/views/rubriken/index.html.erb +++ b/app/views/rubriken/index.html.erb @@ -12,12 +12,17 @@
    -
    +
    <%= render 'calendars/calentries', :object=>@calentries %>
    diff --git a/app/views/rubriken/show.html.erb b/app/views/rubriken/show.html.erb index 85a4afa..0ef5b3e 100755 --- a/app/views/rubriken/show.html.erb +++ b/app/views/rubriken/show.html.erb @@ -19,16 +19,18 @@
    -<% @neuigkeiten.each_slice(1) do |row| %> -
      - <% row.each do |neuigkeit| %> + <% end %> +
    +
    +<%= will_paginate @neuigkeiten %> +
    <%= render 'calendars/calentries', :object=>@calentries %> diff --git a/app/views/rubriken/show.js.erb b/app/views/rubriken/show.js.erb new file mode 100644 index 0000000..ab1cfde --- /dev/null +++ b/app/views/rubriken/show.js.erb @@ -0,0 +1,7 @@ +$('#neuigkeiten').append('<%= j render @neuigkeiten, :locals => { :wrap_in => :li} %>'); +<% if @neuigkeiten.next_page %> + $('.pagination').replaceWith('<%= j will_paginate @neuigkeiten %>'); +<% else %> + $(window).off('scroll'); + $('.pagination').remove(); +<% end %> \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index 085095d..2c76fb0 100755 --- a/config/routes.rb +++ b/config/routes.rb @@ -127,6 +127,7 @@ Fetsite::Application.routes.draw do get 'find_link' get 'publish_to_facebook' get 'mail_to_fet' + get 'mail_preview' end end end