update
This commit is contained in:
parent
d4f80abb48
commit
dfda76379a
6
TODO.md
6
TODO.md
|
@ -1,10 +1,5 @@
|
||||||
## TODO
|
## TODO
|
||||||
* General - fallbacks in case no api response
|
|
||||||
* General - about page api call
|
|
||||||
* General - sort things by sort_order
|
|
||||||
* General - page headings etc - use api
|
|
||||||
* mailer
|
* mailer
|
||||||
* remove testing/dev mode or whatever its called from axios in nuxt.config.js
|
|
||||||
|
|
||||||
## Maybes
|
## Maybes
|
||||||
* gallery page - featured images in same style as on services page with the
|
* gallery page - featured images in same style as on services page with the
|
||||||
|
@ -73,6 +68,7 @@
|
||||||
]
|
]
|
||||||
```
|
```
|
||||||
```html
|
```html
|
||||||
|
// about
|
||||||
<h2 class="heading heading-top">I Imagine Myself</h2>
|
<h2 class="heading heading-top">I Imagine Myself</h2>
|
||||||
<blockquote class="quote">
|
<blockquote class="quote">
|
||||||
<p class="quote-text">"As a photographic artist, my creative pursuit is to escape the attempts to categorize, characterize, compartmentalize, explain, or limit my photographic expression. It is always pleasing to see how observers respond with delight to the ultimate visualizations of my quest. My fondest wish is to pursue my life as a photographer, unbridled and always with a resolve to improve and be the best I can, with a constant yearning to be better."</p>
|
<p class="quote-text">"As a photographic artist, my creative pursuit is to escape the attempts to categorize, characterize, compartmentalize, explain, or limit my photographic expression. It is always pleasing to see how observers respond with delight to the ultimate visualizations of my quest. My fondest wish is to pursue my life as a photographer, unbridled and always with a resolve to improve and be the best I can, with a constant yearning to be better."</p>
|
||||||
|
|
|
@ -98,7 +98,7 @@ $z-index-top: 10;
|
||||||
}
|
}
|
||||||
|
|
||||||
.page-heading {
|
.page-heading {
|
||||||
z-index: $z-index-top;
|
z-index: $z-index-top + 5;
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
@clickNext="handleClickNext"
|
@clickNext="handleClickNext"
|
||||||
@close="imageViewerIsVisible = false" />
|
@close="imageViewerIsVisible = false" />
|
||||||
<article class="gallery">
|
<article class="gallery">
|
||||||
<h1 class="page-heading page-title"><span class="shadow-deco">My Galleries</span></h1>
|
<h1 class="page-heading page-title"><span class="shadow-deco">{{ title }}</span></h1>
|
||||||
<GalleryFeatured class="gallery__featured load-transition load-transition--1"
|
<GalleryFeatured class="gallery__featured load-transition load-transition--1"
|
||||||
:galleries="galleries"
|
:galleries="galleries"
|
||||||
:gallery-active="activeGalleryIndex"
|
:gallery-active="activeGalleryIndex"
|
||||||
|
@ -44,6 +44,13 @@ export default {
|
||||||
galleries: {
|
galleries: {
|
||||||
type: Array,
|
type: Array,
|
||||||
required: true
|
required: true
|
||||||
|
},
|
||||||
|
title: {
|
||||||
|
type: String,
|
||||||
|
required: false,
|
||||||
|
default () {
|
||||||
|
return 'My Galleries'
|
||||||
|
},
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<ContentPage heading="About Me" class="about">
|
<ContentPage :heading="title" class="about">
|
||||||
<div class="about-content" :class="{ 'no-content-container': isNoContent }">
|
<div class="about-content" :class="{ 'no-content-container': isNoContent }">
|
||||||
<h2 class="heading heading-top">{{ title }}</h2>
|
<h2 class="heading heading-top">{{ title }}</h2>
|
||||||
<div v-html="body"></div>
|
<div v-html="body"></div>
|
||||||
|
@ -27,7 +27,7 @@ export default {
|
||||||
|
|
||||||
head () {
|
head () {
|
||||||
return {
|
return {
|
||||||
title: 'About Me',
|
title: this.title,
|
||||||
meta: [{
|
meta: [{
|
||||||
hid: 'description',
|
hid: 'description',
|
||||||
name: 'description',
|
name: 'description',
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
<template>
|
<template>
|
||||||
<ContentPage heading="Contact Me">
|
<ContentPage :heading="title">
|
||||||
|
|
||||||
<form class="contact-form">
|
<form class="contact-form">
|
||||||
|
<div class="form-background"></div>
|
||||||
<div class="form-content">
|
<div class="form-content">
|
||||||
<b-field label="Name"
|
<b-field label="Name"
|
||||||
:type="attemptedSubmit && form.name.length < 1 ? 'is-danger' : ''"
|
:type="attemptedSubmit && form.name.length < 1 ? 'is-danger' : ''"
|
||||||
|
@ -109,7 +110,7 @@ export default {
|
||||||
|
|
||||||
head () {
|
head () {
|
||||||
return {
|
return {
|
||||||
title: 'Contact Me',
|
title: this.title,
|
||||||
meta: [{
|
meta: [{
|
||||||
hid: 'description',
|
hid: 'description',
|
||||||
name: 'description',
|
name: 'description',
|
||||||
|
@ -163,14 +164,18 @@ export default {
|
||||||
|
|
||||||
async asyncData ({ $axios }) {
|
async asyncData ({ $axios }) {
|
||||||
try {
|
try {
|
||||||
const { imageUrl } = await $axios.$get('/api/v1/page/about')
|
let { imageUrl, title } = await $axios.$get('/api/v1/page/about')
|
||||||
if (!imageUrl) {
|
if (!imageUrl) {
|
||||||
throw new Error('empty imageUrl')
|
throw new Error('empty imageUrl')
|
||||||
}
|
}
|
||||||
return { imageUrl }
|
if (!title || title === '') {
|
||||||
|
title = 'Contact Me'
|
||||||
|
}
|
||||||
|
return { imageUrl, title }
|
||||||
} catch {
|
} catch {
|
||||||
return {
|
return {
|
||||||
imageUrl: '/img/default-contact.jpg'
|
imageUrl: '/img/default-contact.jpg',
|
||||||
|
title: 'Contact Me',
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -180,25 +185,36 @@ export default {
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
|
|
||||||
.contact-form {
|
.contact-form {
|
||||||
|
position: relative;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
padding: 1rem 1rem 2rem;
|
padding: 1rem 1rem 2rem;
|
||||||
border-radius: 2px;
|
border-radius: 2px;
|
||||||
background-color: rgba(#fff, .9);
|
|
||||||
background: linear-gradient(
|
|
||||||
to bottom right,
|
|
||||||
rgba(#fff, .95),
|
|
||||||
rgba($color__neutral-800, .9)
|
|
||||||
),
|
|
||||||
url(/img/keyboard--crop-rotate.jpg);
|
|
||||||
background-size: cover;
|
|
||||||
background-position: center center;
|
|
||||||
|
|
||||||
@media (min-width: $bp__layout) {
|
@media (min-width: $bp__layout) {
|
||||||
padding: 2rem;
|
padding: 2rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.form-background {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
background-color: rgba(#fff, .95);
|
||||||
|
background: linear-gradient(
|
||||||
|
to bottom right,
|
||||||
|
rgba(#fff, .95),
|
||||||
|
rgba($color__neutral-800, .97)
|
||||||
|
),
|
||||||
|
url(/img/default-contact.jpg);
|
||||||
|
background-size: cover;
|
||||||
|
background-position: top left;
|
||||||
|
transform: scaleX(-1);
|
||||||
|
}
|
||||||
|
|
||||||
.form-content {
|
.form-content {
|
||||||
|
z-index: 5;
|
||||||
max-width: 30em;
|
max-width: 30em;
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<GalleryPage v-if="galleries && galleries.length > 0" :galleries="galleries">
|
<GalleryPage v-if="galleries && galleries.length > 0" :galleries="galleries">
|
||||||
</GalleryPage>
|
</GalleryPage>
|
||||||
<NoContent v-else heading="My Galleries"
|
<NoContent v-else :heading="title"
|
||||||
message="My galleries are being prepared for upload, please check back soon."
|
message="My galleries are being prepared for upload, please check back soon."
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
|
@ -26,7 +26,8 @@ export default {
|
||||||
|
|
||||||
head () {
|
head () {
|
||||||
return {
|
return {
|
||||||
title: 'My Galleries',
|
// title: 'My Galleries',
|
||||||
|
title: this.title,
|
||||||
meta: [{
|
meta: [{
|
||||||
hid: 'description',
|
hid: 'description',
|
||||||
name: 'description',
|
name: 'description',
|
||||||
|
@ -37,8 +38,11 @@ export default {
|
||||||
|
|
||||||
async asyncData ({ $axios }) {
|
async asyncData ({ $axios }) {
|
||||||
try {
|
try {
|
||||||
let { galleries } = await $axios.$get('/api/v1/galleries')
|
let { galleries, title } = await $axios.$get('/api/v1/galleries')
|
||||||
return { galleries }
|
if (title === '') {
|
||||||
|
title = 'My Galleries'
|
||||||
|
}
|
||||||
|
return { galleries, title }
|
||||||
} catch {
|
} catch {
|
||||||
return {
|
return {
|
||||||
galleries: []
|
galleries: []
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<ContentPage heading="My Services">
|
<ContentPage :heading="title">
|
||||||
<BackgroundImagePreloader v-if="showPreloaderBackground && backgroundImageUrls.length > 0"
|
<BackgroundImagePreloader v-if="showPreloaderBackground && backgroundImageUrls.length > 0"
|
||||||
slot="background"
|
slot="background"
|
||||||
class="background-preloader"
|
class="background-preloader"
|
||||||
|
@ -65,7 +65,7 @@ export default {
|
||||||
|
|
||||||
head () {
|
head () {
|
||||||
return {
|
return {
|
||||||
title: 'My Services',
|
title: this.title,
|
||||||
meta: [{
|
meta: [{
|
||||||
hid: 'description',
|
hid: 'description',
|
||||||
name: 'description',
|
name: 'description',
|
||||||
|
@ -94,13 +94,17 @@ export default {
|
||||||
async asyncData ({ $axios }) {
|
async asyncData ({ $axios }) {
|
||||||
try {
|
try {
|
||||||
const { services } = await $axios.$get('api/v1/services')
|
const { services } = await $axios.$get('api/v1/services')
|
||||||
let { imageUrl } = await $axios.$get('api/v1/page/services')
|
let { imageUrl, title } = await $axios.$get('api/v1/page/services')
|
||||||
|
|
||||||
if (!imageUrl) {
|
if (!imageUrl) {
|
||||||
imageUrl = '/img/default-services.jpg'
|
imageUrl = '/img/default-services.jpg'
|
||||||
}
|
}
|
||||||
|
|
||||||
return { services, imageUrl }
|
if (!title || title === '') {
|
||||||
|
title = 'My Services'
|
||||||
|
}
|
||||||
|
|
||||||
|
return { services, imageUrl, title }
|
||||||
} catch {
|
} catch {
|
||||||
return {
|
return {
|
||||||
services: [],
|
services: [],
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 37 KiB |
Binary file not shown.
Before Width: | Height: | Size: 44 KiB |
Binary file not shown.
Before Width: | Height: | Size: 42 KiB |
Binary file not shown.
Before Width: | Height: | Size: 3.0 MiB |
Loading…
Reference in New Issue