First
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
class AdminsController < ApplicationController
|
||||
PASSWORD_PARTS = %w[GEAR AXLE TURBO PARK].freeze
|
||||
|
||||
def show
|
||||
@unlocked = admin_unlocked?
|
||||
end
|
||||
|
||||
def create
|
||||
if submitted_password == admin_password
|
||||
session[:admin_unlocked] = true
|
||||
redirect_to admin_path, notice: "Admin Panel Unlocked"
|
||||
else
|
||||
session[:admin_unlocked] = false
|
||||
@unlocked = false
|
||||
flash.now[:alert] = "That passphrase did not unlock anything. Check the advert again."
|
||||
render :show, status: :unprocessable_entity
|
||||
end
|
||||
end
|
||||
|
||||
def destroy
|
||||
session.delete(:admin_unlocked)
|
||||
redirect_to admin_path, notice: "Admin session cleared."
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def admin_password
|
||||
PASSWORD_PARTS.join("-")
|
||||
end
|
||||
|
||||
def admin_unlocked?
|
||||
session[:admin_unlocked] == true
|
||||
end
|
||||
|
||||
def submitted_password
|
||||
params.fetch(:password, "").upcase.gsub(/\s+/, "")
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,4 @@
|
||||
class ApplicationController < ActionController::Base
|
||||
# Only allow modern browsers supporting webp images, web push, badges, import maps, CSS nesting, and CSS :has.
|
||||
allow_browser versions: :modern
|
||||
end
|
||||
@@ -0,0 +1,88 @@
|
||||
class ListingsController < ApplicationController
|
||||
def show
|
||||
@listing = {
|
||||
title: "2021 Porsche 718 Cayman S",
|
||||
subtitle: "Graphite Blue Metallic · HPI clear · Sport Chrono · 6-speed manual",
|
||||
price: "£48,950",
|
||||
payment: "£612/month est.",
|
||||
mileage: "18,240 miles",
|
||||
mot_status: "Until Oct 2026",
|
||||
driven_wheels: "Rear-wheel drive",
|
||||
location: "Guildford, Surrey",
|
||||
vin: "WP0AB2A84MK265184",
|
||||
stock_number: "FC-718-421",
|
||||
exterior: "Graphite Blue Metallic",
|
||||
interior: "Black leather with chalk stitching",
|
||||
seller_name: "Amelia Bennett",
|
||||
seller_role: "Verified private seller",
|
||||
seller_since: "On Forecourt since 2019",
|
||||
response_time: "Usually replies within 14 minutes",
|
||||
image_caption: "Photo set 03 // ingest note JHDU // something seems shifted.",
|
||||
hero_image: "https://images.unsplash.com/photo-1494976388531-d1058494cdd8?auto=format&fit=crop&w=1600&q=80",
|
||||
gallery: [
|
||||
"https://images.unsplash.com/photo-1494976388531-d1058494cdd8?auto=format&fit=crop&w=1200&q=80",
|
||||
"https://images.unsplash.com/photo-1503376780353-7e6692767b70?auto=format&fit=crop&w=1200&q=80",
|
||||
"https://images.unsplash.com/photo-1542282088-fe8426682b8f?auto=format&fit=crop&w=1200&q=80"
|
||||
],
|
||||
highlights: [
|
||||
"Original paint-depth readings documented in the gallery",
|
||||
"Fresh Michelin PS4S tyres with under 1,500 miles",
|
||||
"Annual brake fluid and gearbox service invoices retained from the seller's specialist"
|
||||
],
|
||||
overview: [
|
||||
"This Cayman S was specced exactly the way enthusiasts usually hope to find one: manual gearbox, Sport Chrono, PASM, and no unnecessary aero add-ons. The seller has owned it for four years, used it as a weekend car, and kept every service invoice in order.",
|
||||
"Cosmetically it presents like a well-kept private sale rather than a detail-heavy showroom car. There are two tiny stone marks on the nose, the front splitter shows light road wear, and the cabin leather has stayed impressively matte.",
|
||||
"Forecourt's intake notes show an HPI-clear history, no insurance loss markers, two keys, the original order paperwork, and recent borescope images from the last annual inspection."
|
||||
],
|
||||
specs: [
|
||||
[ "Engine", "2.5-litre turbocharged flat-four" ],
|
||||
[ "Gearbox", "6-speed manual" ],
|
||||
[ "Mileage", "18,240 miles" ],
|
||||
[ "Economy", "30 mpg combined" ],
|
||||
[ "Driven wheels", "Rear-wheel drive" ],
|
||||
[ "Exterior", "Graphite Blue Metallic" ],
|
||||
[ "Interior", "Black leather / chalk stitching" ],
|
||||
[ "Keepers", "2 keepers" ],
|
||||
[ "Vehicle history", "HPI clear, no outstanding finance" ]
|
||||
],
|
||||
document_packet: [
|
||||
{ source: "Original order form", detail: "Factory spec confirmed against supplied paperwork", file_type: "PDF" },
|
||||
{ source: "Annual alignment sheet", detail: "Alignment printout tucked behind service invoices", file_type: "Scan" },
|
||||
{ source: "Battery conditioner leaflet", detail: "Charger notes only, no service relevance", file_type: "JPG" },
|
||||
{ source: "Paint protection card", detail: "XPEL warranty card added to the folder", file_type: "Scan" },
|
||||
{ source: "Key handover note", detail: "Leather sleeve re-dyed to match the cabin", file_type: "Scan" },
|
||||
{ source: "Roadside kit insert", detail: "Emergency cartridge dated and photographed", file_type: "Scan" }
|
||||
],
|
||||
condition_notes: [
|
||||
"Cold-start video archived from 24 April",
|
||||
"Front discs measured at 31.1 mm",
|
||||
"Underbody photos show no corrosion bloom",
|
||||
"Driver's bolster has only light creasing"
|
||||
],
|
||||
seller_notes: [
|
||||
"Always warmed through before spirited driving",
|
||||
"No track days, no winter salt exposure",
|
||||
"Super unleaded only, documented with fuel log",
|
||||
"Includes factory battery conditioner and indoor cover"
|
||||
],
|
||||
prep_tickets: [
|
||||
{ task: "Bay card print", stamp: "2026-04-24 08:31 BST", code: "PDI-24-09", status: "Open" },
|
||||
{ task: "Handover pack filed", stamp: "2026-04-24 08:27 BST", code: "PDI-24-11", status: "Closed" },
|
||||
{ task: "Road test sign-off", stamp: "2026-04-24 08:21 BST", code: "PDI-24-18", status: "Closed" },
|
||||
{ task: "Alarm fob check", stamp: "2026-04-24 08:16 BST", code: "PDI-24-01", status: "Closed" },
|
||||
{ task: "Paint-depth sheet scanned", stamp: "2026-04-24 08:12 BST", code: "PDI-24-16", status: "Closed" }
|
||||
]
|
||||
}
|
||||
|
||||
@page_blob = {
|
||||
listing_id: "fc-718-cayman-s",
|
||||
media_manifest_version: 3,
|
||||
image_reconcile: {
|
||||
last_pull: "2026-04-26T08:14:00Z",
|
||||
transport_token: "VFVSQk8=",
|
||||
reviewer: "qa-bot"
|
||||
},
|
||||
notes: "remove before production"
|
||||
}.to_json
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user