From 9c6038d6dd5855104081d0cb2da0aa7cedaaf734 Mon Sep 17 00:00:00 2001 From: Thomas Blazek Date: Fri, 16 Jan 2015 12:10:02 +0100 Subject: [PATCH] Gallery show enhancements a) Worked on better pagination, knows now 25, 50, 100 and "all" b) Viewer always shows ALL pictures, sorted to fit the order of the pagination --- app/controllers/galleries_controller.rb | 22 +++++++++++++++++----- app/views/galleries/show.html.erb | 18 ++++++++++-------- 2 files changed, 27 insertions(+), 13 deletions(-) diff --git a/app/controllers/galleries_controller.rb b/app/controllers/galleries_controller.rb index c68fe1d..048f7a0 100644 --- a/app/controllers/galleries_controller.rb +++ b/app/controllers/galleries_controller.rb @@ -19,19 +19,31 @@ class GalleriesController < ApplicationController def show @gallery = Gallery.find(params[:id]) - @pppage_array = [ 25 , 50 , 100 ] #defines number & size of picture chunks + @pppage_array = [ 25 , 50 , 100, "all"] #defines number & size of picture chunks @pppage = 0 #starting index of pppage_array - - if params[:pppage].to_i <= 2 && params[:pppage].to_i >= 0 + + if !params[:pppage].nil? && params[:pppage].to_i <= 2 && params[:pppage].to_i >= 0 @pppage = params[:pppage].to_i end @page = params[:page].nil? ? 1 : params[:page].to_i # @fotos = Foto.where(:gallery_id => params[:id]).limit(@pppage_array[@pppage]).offset(@pppage_array[@pppage]*(@page-1)) @fotos = Foto.where(:gallery_id => params[:id]) - @pages = (Foto.where(:gallery_id => params[:id]).count/(@pppage_array[@pppage])+1) + if @pppage_array[@pppage] != "all" + @fotos_p = @fotos.page(@page).per(@pppage_array[@pppage]) + + @fotos_n = @fotos- @fotos_p + @foto_ind = @fotos.find_index(@fotos_p.first) + @fotos_n = @fotos_n.rotate(@foto_ind) + @pages = (Foto.where(:gallery_id => params[:id]).count/(@pppage_array[@pppage])+1) + else + @fotos_p = @fotos + @fotos_n = [] + @pages = 1 + end + @showind=[] - @showind.fill(0,@pppage_array[@pppage]){ |i| i+ @pppage_array[@pppage]*(@page-1)} # Hier ausrechnen welche angezeigt werden sollen + # Hier ausrechnen welche angezeigt werden sollen @toolbar_elements << {:hicon=>'icon-plus', :text=> I18n.t('fotos.new-fotos'), :path=>new_gallery_foto_path(@gallery)} @toolbar_elements << {:hicon=>'icon-pencil', :text => I18n.t('common.edit'), :path=>edit_gallery_path(@gallery)} @toolbar_elements << {:hicon=>'icon-arrow-left', :text=>I18n.t('common.back'), :path=>galleries_path()} diff --git a/app/views/galleries/show.html.erb b/app/views/galleries/show.html.erb index 8e9f042..2be79fd 100644 --- a/app/views/galleries/show.html.erb +++ b/app/views/galleries/show.html.erb @@ -36,10 +36,8 @@ -
- -