mirror of
https://github.com/Growstuff/growstuff.git
synced 2026-11-04 20:22:47 -05:00
Add garden stall owner display and update related views and styles
This commit is contained in:
1 parent
ae8fddbc7b
commit
61e0200be4
9 files changed
+90
-25
No files matched your search
@@ -10,6 +10,42 @@ $stall-label: #fff8e1;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.stall-owner {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 1rem;
|
||||
margin-bottom: 1.5rem;
|
||||
}
|
||||
|
||||
.stall-owner-avatar img {
|
||||
display: block;
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
.stall-owner-name {
|
||||
margin: 0;
|
||||
font-size: 1.4rem;
|
||||
}
|
||||
|
||||
// On the shutter: the avatar over a label, like the "Closed for now" tag.
|
||||
.stall-shutter .stall-owner {
|
||||
flex-direction: column;
|
||||
gap: 0.5rem;
|
||||
margin: 0;
|
||||
|
||||
img {
|
||||
border: 3px solid $stall-outline;
|
||||
}
|
||||
|
||||
.stall-owner-name {
|
||||
padding: 2px 14px;
|
||||
border: 3px solid $stall-outline;
|
||||
border-radius: 4px 12px 12px 4px;
|
||||
background: $stall-label;
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
}
|
||||
|
||||
.stall {
|
||||
position: relative;
|
||||
overflow: clip;
|
||||
@@ -119,6 +155,8 @@ $stall-label: #fff8e1;
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
z-index: 5;
|
||||
flex-direction: column;
|
||||
gap: 1rem;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border: 3px solid $stall-outline;
|
||||
@@ -142,18 +180,12 @@ $stall-label: #fff8e1;
|
||||
}
|
||||
|
||||
.stall-closed {
|
||||
.stall-awning {
|
||||
transform: scaleY(0);
|
||||
}
|
||||
min-height: 300px;
|
||||
|
||||
.stall-sign,
|
||||
.stall-table {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
// Keeps the shutter from collapsing to nothing with the contents hidden.
|
||||
// Nothing shows behind the shutter, and it must not hold the box open.
|
||||
.stall-awning,
|
||||
.stall-body {
|
||||
min-height: 300px;
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
.mb-3
|
||||
= render 'jobs/ideas_banner', href: suggestions_path, open: false,
|
||||
text: t('.suggested_plantings', count: @suggestion_count), go: t('.suggested_plantings_go')
|
||||
= render 'stalls/card', garden: @garden
|
||||
= render 'stalls/card', member: @garden.owner if @garden.nursery?
|
||||
= render 'gardens/facts', garden: @garden, growing_now: @current_plantings.size
|
||||
= render 'gardens/description', garden: @garden
|
||||
= render 'gardens/join_prompt', garden: @garden unless member_signed_in?
|
||||
|
||||
@@ -88,6 +88,7 @@
|
||||
= render "contact", member: @member, flickr_auth: @flickr_auth
|
||||
|
||||
.col-md-10#content
|
||||
= render 'stalls/card', member: @member
|
||||
.row
|
||||
%section.order-3.order-md-1.col-12= render "map", member: @member
|
||||
- if @harvesting.size.positive?
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
-# On the nursery garden: where the owner opens their garden stall, or goes to it.
|
||||
- if garden.nursery? && can?(:edit, garden) && Feature.enabled?(:garden_stall)
|
||||
- stall = garden.owner.stall
|
||||
-# Where a member opens their garden stall, or goes to it. Only they see it.
|
||||
- if member == current_member && Feature.enabled?(:garden_stall)
|
||||
.stall-card.mb-3
|
||||
%h2.h5= t('.heading')
|
||||
- if stall&.open?
|
||||
- if member.stall&.open?
|
||||
%p= t('.open_text')
|
||||
= link_to t('.go'), member_stall_path(garden.owner), class: 'btn btn-outline-success'
|
||||
= link_to t('.go'), member_stall_path(member), class: 'btn btn-outline-success'
|
||||
- else
|
||||
%p= t('.text')
|
||||
= link_to t('.open'), member_stall_path(garden.owner), class: 'btn btn-success'
|
||||
= link_to t('.open'), member_stall_path(member), class: 'btn btn-success'
|
||||
@@ -0,0 +1,7 @@
|
||||
-# Whose stall this is: their avatar (always a circle) and name.
|
||||
.stall-owner
|
||||
= link_to member, class: 'stall-owner-avatar', title: member.to_s do
|
||||
= image_tag avatar_uri(member, 128), alt: member.to_s, width: 64, height: 64
|
||||
%p.stall-owner-name
|
||||
= t('stalls.owner.garden_of')
|
||||
%strong= link_to member, member
|
||||
@@ -14,5 +14,6 @@
|
||||
- %i(seedlings seeds more).each do |spot|
|
||||
.stall-spot= t(".spots.#{spot}")
|
||||
.stall-tabletop
|
||||
.stall-shutter{ 'aria-hidden': 'true' }
|
||||
.stall-shutter
|
||||
= render 'stalls/owner', member: member
|
||||
%span.stall-shutter-sign= t('.closed')
|
||||
@@ -5,12 +5,8 @@
|
||||
%li.breadcrumb-item.active= t('.breadcrumb')
|
||||
|
||||
.stall-page
|
||||
.record-identity.mb-4
|
||||
= render 'shared/record_owner', owner: @member
|
||||
.record-identity-text
|
||||
%p.garden-grower
|
||||
= t('.garden_of')
|
||||
%strong.record-grower-name= link_to @member, @member
|
||||
-# Closed, the owner is on the shutter instead.
|
||||
= render 'stalls/owner', member: @member if @stall.open?
|
||||
|
||||
= render 'stalls/stall', member: @member, open: @stall.open?, opening: @opening
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
describe GardensController, 'garden stall card', flipper: :garden_stall do
|
||||
describe GardensController, '#show', flipper: :garden_stall do
|
||||
let(:owner) { create(:member) }
|
||||
let(:nursery) { create(:garden, owner:, nursery: true) }
|
||||
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
describe MembersController, '#show', flipper: :garden_stall do
|
||||
let(:owner) { create(:member) }
|
||||
|
||||
context 'when members look at their own profile' do
|
||||
before do
|
||||
sign_in owner
|
||||
get member_path(owner)
|
||||
end
|
||||
|
||||
it 'offers to open a stall' do
|
||||
expect(Capybara.string(response.body)).to have_link('Open a garden stall', href: member_stall_path(owner))
|
||||
end
|
||||
end
|
||||
|
||||
context 'when someone else looks at the profile' do
|
||||
before do
|
||||
sign_in create(:member)
|
||||
get member_path(owner)
|
||||
end
|
||||
|
||||
it 'has no stall card' do
|
||||
expect(Capybara.string(response.body)).to have_no_css('.stall-card')
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in new issue
Block a user