From 10686d1f5eaaf9a0b98e6711e15e08144446cd86 Mon Sep 17 00:00:00 2001 From: Torsten Date: Wed, 11 Jan 2023 18:20:21 +0200 Subject: [PATCH] start on memers view --- app/assets/images/no_image.png | Bin 0 -> 23737 bytes app/controllers/members_controller.rb | 2 +- app/helpers/application_helper.rb | 3 ++- app/helpers/members_helper.rb | 10 +++++++++ app/views/layouts/_header.haml | 4 +++- app/views/members/index.html.haml | 31 +++++++++----------------- 6 files changed, 26 insertions(+), 24 deletions(-) create mode 100644 app/assets/images/no_image.png diff --git a/app/assets/images/no_image.png b/app/assets/images/no_image.png new file mode 100644 index 0000000000000000000000000000000000000000..ef843ce8fd8c169f5e3b4748a2780711538930ec GIT binary patch literal 23737 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 literal 0 HcmV?d00001 diff --git a/app/controllers/members_controller.rb b/app/controllers/members_controller.rb index ce47e25..0d34e25 100644 --- a/app/controllers/members_controller.rb +++ b/app/controllers/members_controller.rb @@ -3,7 +3,7 @@ class MembersController < ApplicationController # GET /members def index - @members = Member.all + @members = Member.order(:name).page params[:page] end # GET /members/1 diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index df5818d..e2264d6 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -1,7 +1,8 @@ require "redcarpet" module ApplicationHelper - + include Merged::ViewHelper + def renderer options = {hard_wrap: true , autolink: true, no_intra_emphasis: true , safe_links_only: true, no_styles: true , diff --git a/app/helpers/members_helper.rb b/app/helpers/members_helper.rb index e3fa623..02d29f9 100644 --- a/app/helpers/members_helper.rb +++ b/app/helpers/members_helper.rb @@ -1,2 +1,12 @@ module MembersHelper + + def image_for(someone , classes = "") + if someone.picture.blank? + image = asset_url("no_image") + else + image = element.picture.url + end + image_tag(image , alt: someone.name , class: classes ) + end + end diff --git a/app/views/layouts/_header.haml b/app/views/layouts/_header.haml index ad784ef..7870ed3 100644 --- a/app/views/layouts/_header.haml +++ b/app/views/layouts/_header.haml @@ -4,7 +4,9 @@ = image_tag("feenix_lintu" , class: "h-20") %span.ml-2.text-xl.font-bold.tracking-wide.text-gray-800.uppercase Hub Feenix %ul.flex.items-center.hidden.space-x-8.lg:flex - - [:volunteers , :stories , :info , :arriving, :about].each do |link| + %li + %a.font-medium.tracking-wide.text-gray-700.transition-colors.duration-400.hover:text-cyan-800{"aria-label" => "Our product", :href => "/members", :title => "People"} People + - [ :stories , :info , :arriving, :about].each do |link| %li %a.font-medium.tracking-wide.text-gray-700.transition-colors.duration-400.hover:text-cyan-800{"aria-label" => "Our product", :href => "/#{link}", :title => link.capitalize}= link.capitalize %li diff --git a/app/views/members/index.html.haml b/app/views/members/index.html.haml index ea556b4..2e88109 100644 --- a/app/views/members/index.html.haml +++ b/app/views/members/index.html.haml @@ -1,25 +1,14 @@ .flex.justify-center %h1 Listing members + = paginate @members - %table - %thead - %tr - %th Name - %th Public - %th - %th - %th - - %tbody - - @members.each do |member| - %tr - %td= member.name - %td= member.public - %td= link_to 'Show', member - %td= link_to 'Edit', edit_member_path(member) - %td= link_to 'Destroy', member, method: :delete, data: { confirm: 'Are you sure?' } - - %br - - = link_to 'New Member', new_member_path +.grid.grid-cols-4 + - @members.each do |member| + .fex.flex-col.overflow-hidden.rounded-lg.border.border-gray-100.shadow-sm.m-10 + = image_for( member , class: "h-60 w-full object-cover") + %h3.p-5.text-2xl.bg-gray-100.text-black.font-bold.text-center= member.name + %div.h-full + .p-5.text-center + .m-2.text-sm.leading-relaxed.line-clamp-3{ prose_classes } + = markdown(member.bio)