Saved: 2018-03-26 09:25

Torey Heinz committed Mar 26, 2018
commit d89a218e3d2f69b34d21911f907a87d8be158552
Showing 13 changed files with 190 additions and 232 deletions
app/content_types/marine_estimate_requests.yml +0 -130
@@ @@ -1,130 +0,0 @@
- # Human readable name of this type
- name: Marine estimate requests
-
- # Lowercase, underscored handle used to access this type
- slug: marine_estimate_requests
-
- # Explanatory text displayed in the back-office
- description: A description of the content type for the editors
-
- # Slug of field used to identify entries by default, such as the title
- label_field_name: name
-
- # Valid values: manually, created_at, updated_at, or the slug of any field
- order_by: manually
-
- # Valid values: asc (ascending) and desc (descending). Set to asc by default.
- # order_direction: asc
-
- # Specify a field slug to group entries by that field in the back-office.
- # group_by: <your field>
-
- # Activate public 'create' API (e.g for a contact form)
- # public_submission_enabled: false
-
- # Array of emails to be notified of new entries made with the public API
- # public_submission_accounts: ['john@example.com']
-
- # Control the display of the content type in the back-office.
- # display_settings:
- # seo: false # display the SEO tab for the content entries
- # advanced: false # display the Advanced tab for the content entries
- # position: 1 # position in the sidebar menu
- # hidden: false # hidden for authors?
-
- # By default, the back-office displays the _label property (see label_field_name) of the content entry. This can be modified by writing your own Liquid template below:
- # entry_template: '<a href="{{ link }}">{{ entry._label }}</a>' # The default template
-
- # A list describing each field
- fields:
- - name: # The lowercase, underscored name of the field
- label: Name # Human readable name of the field
- type: string
- required: true
- hint: Explanatory text displayed in the back office
- localized: false
-
- - email: # The lowercase, underscored name of the field
- label: Email # Human readable name of the field
- type: string
- required: false
- hint: Explanatory text displayed in the back office
- localized: false
-
- - phone: # The lowercase, underscored name of the field
- label: Phone # Human readable name of the field
- type: string
- required: false
- hint: Explanatory text displayed in the back office
- localized: false
-
- - vessel_description: # The lowercase, underscored name of the field
- label: Vessel description # Human readable name of the field
- type: string
- required: false
- hint: Explanatory text displayed in the back office
- localized: false
-
- - hull_number: # The lowercase, underscored name of the field
- label: Hull number # Human readable name of the field
- type: string
- required: false
- hint: Explanatory text displayed in the back office
- localized: false
-
- - location: # The lowercase, underscored name of the field
- label: Location # Human readable name of the field
- type: string
- required: false
- hint: Explanatory text displayed in the back office
- localized: false
-
- - marina: # The lowercase, underscored name of the field
- label: Marina # Human readable name of the field
- type: string
- required: false
- hint: Explanatory text displayed in the back office
- localized: false
-
- - completion_date: # The lowercase, underscored name of the field
- label: Completion date # Human readable name of the field
- type: string
- required: false
- hint: Explanatory text displayed in the back office
- localized: false
-
- - message: # The lowercase, underscored name of the field
- label: Message # Human readable name of the field
- type: text
- required: false
- hint: Explanatory text displayed in the back office
- localized: false
- # text_formatting: html # html (uses rich text editor), markdown or text (uses plain text editor)
-
- - attachment_1: # The lowercase, underscored name of the field
- label: Attachment 1 # Human readable name of the field
- type: file
- required: false
- hint: Explanatory text displayed in the back office
- localized: false
-
- - attachment_2: # The lowercase, underscored name of the field
- label: Attachment 2 # Human readable name of the field
- type: file
- required: false
- hint: Explanatory text displayed in the back office
- localized: false
-
- - attachment_3: # The lowercase, underscored name of the field
- label: Attachment 3 # Human readable name of the field
- type: file
- required: false
- hint: Explanatory text displayed in the back office
- localized: false
-
- - attachment_4: # The lowercase, underscored name of the field
- label: Attachment 4 # Human readable name of the field
- type: file
- required: false
- hint: Explanatory text displayed in the back office
- localized: false
app/content_types/project_requests.yml +116 -0
@@ @@ -0,0 +1,116 @@
+ # Human readable name of this type
+ name: Project Requests
+
+ # Lowercase, underscored handle used to access this type
+ slug: project_requests
+
+ # Explanatory text displayed in the back-office
+ description: A description of the content type for the editors
+
+ # Slug of field used to identify entries by default, such as the title
+ label_field_name: name
+
+ # Valid values: manually, created_at, updated_at, or the slug of any field
+ order_by: manually
+
+ # Valid values: asc (ascending) and desc (descending). Set to asc by default.
+ # order_direction: asc
+
+ # Specify a field slug to group entries by that field in the back-office.
+ # group_by: <your field>
+
+ # Activate public 'create' API (e.g for a contact form)
+ # public_submission_enabled: false
+
+ # Array of emails to be notified of new entries made with the public API
+ # public_submission_accounts: ['john@example.com']
+
+ # Control the display of the content type in the back-office.
+ # display_settings:
+ # seo: false # display the SEO tab for the content entries
+ # advanced: false # display the Advanced tab for the content entries
+ # position: 1 # position in the sidebar menu
+ # hidden: false # hidden for authors?
+
+ # By default, the back-office displays the _label property (see label_field_name) of the content entry. This can be modified by writing your own Liquid template below:
+ # entry_template: '<a href="{{ link }}">{{ entry._label }}</a>' # The default template
+
+ # A list describing each field
+ fields:
+ - name: # The lowercase, underscored name of the field
+ label: Name # Human readable name of the field
+ type: string
+ required: true
+ hint: Explanatory text displayed in the back office
+ localized: false
+
+ - email: # The lowercase, underscored name of the field
+ label: Email # Human readable name of the field
+ type: string
+ required: false
+ hint: Explanatory text displayed in the back office
+ localized: false
+
+ - phone: # The lowercase, underscored name of the field
+ label: Phone # Human readable name of the field
+ type: string
+ required: false
+ hint: Explanatory text displayed in the back office
+ localized: false
+
+ - address: # The lowercase, underscored name of the field
+ label: Address # Human readable name of the field
+ type: string
+ required: false
+ hint: Explanatory text displayed in the back office
+ localized: false
+
+ - location: # The lowercase, underscored name of the field
+ label: Location # Human readable name of the field
+ type: string
+ required: false
+ hint: Explanatory text displayed in the back office
+ localized: false
+
+ - completion_date: # The lowercase, underscored name of the field
+ label: Completion date # Human readable name of the field
+ type: string
+ required: false
+ hint: Explanatory text displayed in the back office
+ localized: false
+
+ - project_description: # The lowercase, underscored name of the field
+ label: Project Description # Human readable name of the field
+ type: text
+ required: false
+ hint: Explanatory text displayed in the back office
+ localized: false
+ # text_formatting: html # html (uses rich text editor), markdown or text (uses plain text editor)
+
+ - attachment_1: # The lowercase, underscored name of the field
+ label: Attachment 1 # Human readable name of the field
+ type: file
+ required: false
+ hint: Explanatory text displayed in the back office
+ localized: false
+
+ - attachment_2: # The lowercase, underscored name of the field
+ label: Attachment 2 # Human readable name of the field
+ type: file
+ required: false
+ hint: Explanatory text displayed in the back office
+ localized: false
+
+ - attachment_3: # The lowercase, underscored name of the field
+ label: Attachment 3 # Human readable name of the field
+ type: file
+ required: false
+ hint: Explanatory text displayed in the back office
+ localized: false
+
+ - attachment_4: # The lowercase, underscored name of the field
+ label: Attachment 4 # Human readable name of the field
+ type: file
+ required: false
+ hint: Explanatory text displayed in the back office
+ localized: false
app/views/pages/404.liquid +9 -4
@@ @@ -8,8 +8,13 @@ is_layout: false
---
{% extends 'layouts/application' %}
{% block 'main' %}
- <div class="text-center">
- <h1>Page Not Found</h1>
- <p>We're sorry but we can't find the page you are looking for</p>
- </div>
+ {% include 'page_header' %}
+ <section class="row page {{ page.slug }}">
+ <div class="column medium-8 small-centered">
+ <div class="callout">
+ <h2 class="text-center">{% editable_text "heading", line_break: false, format: 'raw', rows: 1 %}This page is lost at sea!{% endeditable_text %}</h2>
+ </div>
+ </div>
+ </section>
+ {% include 'featured-services' %}
{% endblock %}
app/views/pages/index.liquid +4 -37
@@ @@ -15,43 +15,10 @@ is_layout: false
</h1>
<p>West Michigan's Premier Shop for All Your Canvas and Upholstery Needs.</p>
<p class="cta">
- {% include 'estimate_button' %}
+ {% include 'estimate_button' %}
</p>
</div>
</header>
- <section class="services featured">
- <div class="row">
- {% with_scope featured: true %} {% for service in contents.services %}
- <div class="columns medium-4">
- <div class="card text-center">
- <div class="card-divider">
- <p class="lead"><a href="{% path_to service %}">{{ service.title }}</a></p>
- </div>
- <img src="{{ service.featured_image.url | resize: '600x450#' }}">
- <div class="card-section">
- {{ service.brief }}
- </div>
- </div>
- </div>
- {% endfor %} {% endwith_scope %}
- </div>
- </div>
- <section class="services standard">
- <div class="row small-up-2 medium-up-3 large-up-4">
- {% with_scope featured: false %} {% for service in contents.services %}
- <div class="columns medium-4">
- <div class="card text-center">
- <div class="card-divider">
- <p class="lead"><a href="{% path_to service %}">{{ service.title }}</a></p>
- </div>
- <img src="{{ service.featured_image.url | resize: '400x300#' }}">
- <div class="card-section hide-for-small-only">
- {{ service.brief }}
- </div>
- </div>
- </div>
- {% endfor %} {% endwith_scope %}
- </div>
- </section>
-
- {% endblock %}
+ {% include 'featured-services' %}
+ {% include 'standard-services' %}
+ {% endblock %}
app/views/pages/layouts/application.liquid +9 -3
@@ @@ -25,10 +25,16 @@ is_layout: true
<script src='https://www.google.com/recaptcha/api.js'></script>
</head>
<body class="{{ page.slug }}">
+ <div class="title-bar" data-responsive-toggle="example-menu" data-hide-for="medium">
+ <a href="/" class="logo">
+ Canvas Innovations
+ </a>
+ <button class="menu-icon float-right" type="button" data-toggle="example-menu"></button>
+ </div>
<!-- Start Top Bar -->
- <div class="top-bar">
+ <div class="top-bar" id="example-menu">
<div class="row column">
- <div class="top-bar-left">
+ <div class="top-bar-left text-center medium-text-left">
<div class="logo">
<a href="/">
<img src="{{ 'CanvasInnovations-logo.jpg' | theme_image_url | resize: '125x40#'}}" width="125" height="87" alt="Canvas Innovations Logo">
@@ @@ -36,7 +42,7 @@ is_layout: true
</div>
</div>
- <div class="top-bar-right">
+ <div class="top-bar-right text-center medium-text-left">
{% include 'dropdown-menu' %}
</div>
</div>
app/views/snippets/address_form.liquid +3 -3
@@ @@ -1,7 +1,7 @@
<label class="row">
Project Address:
- <input name="content[address]" required="true" type="text" value="{{marine_estimate_request.address}}">
- <input name="content[city]" required="true" type="text" value="{{marine_estimate_request.city}}">
+ <input name="content[address]" required="true" type="text" value="{{project_request.address}}">
+ <input name="content[city]" required="true" type="text" value="{{project_request.city}}">
<select name="content[state]" required="true">
<option value="" selected="selected">- Select -</option>
<option value="IL">Illinois</option>
@@ @@ -9,5 +9,5 @@
<option value="MI">Michigan</option>
<option value="OH">Ohio</option>
</select>
- <input name="content[zip]" required="true" type="text" value="{{marine_estimate_request.zip}}">
+ <input name="content[zip]" required="true" type="text" value="{{project_request.zip}}">
</label>
app/views/snippets/dropdown-menu.liquid +1 -1
@@ @@ -1,4 +1,4 @@
- <ul class="dropdown menu" data-dropdown-menu data-alignment="left">
+ <ul class="dropdown menu vertical medium-horizontal" data-dropdown-menu data-alignment="left">
<li><a href="/">Home</a></li>
{% for page in site.pages %}
{% if page.depth == 1 and page.listed? %}
app/views/snippets/estimate_form.liquid +9 -9
@@ @@ -1,38 +1,38 @@
- {% model_form 'marine_estimate_requests', success: '/contact/thank-you', error: '/estimate', id: 'estimate-form' %}
- {% if marine_estimate_request.errors %}
+ {% model_form 'project_requests', success: '/contact/thank-you', error: '/estimate', id: 'estimate-form' %}
+ {% if project_request.errors %}
<p>The following errors occured:</p>
<ul>
- {% for error in marine_estimate_request.errors %}
+ {% for error in project_request.errors %}
<li>{{error[0] | capitalize}} - {{error[1]}}</li>
{% endfor %}
</ul>
{% endif %}
<label>
Full Name:{% include 'required' %}
- <input name="content[name]" required="true" type="text" value="{{marine_estimate_request.name}}">
+ <input name="content[name]" required="true" type="text" value="{{project_request.name}}">
</label>
<label>
Best Email:{% include 'required' %}
- <input name="content[email]" required="true" type="email" value="{{marine_estimate_request.email}}">
+ <input name="content[email]" required="true" type="email" value="{{project_request.email}}">
</label>
<label>
Your Phone:{% include 'required' %}
- <input name="content[phone]" required="true" type="tel" value="{{marine_estimate_request.phone}}">
+ <input name="content[phone]" required="true" type="tel" value="{{project_request.phone}}">
</label>
<label>
Project Address:{% include 'required' %}
<p class="help-text thin">Please enter complete address</p>
<textarea name="content[address]" rows="2" required="true" placeholder="11276 E. Lakewood Blvd.
- Holland, MI 49424 ">{{marine_estimate_request.address}}</textarea>
+ Holland, MI 49424 ">{{project_request.address}}</textarea>
</label>
<label>
Project Location:
<p class="help-text thin">When applicable include: Marina, Dock/Slip number, location on property, etc.</p>
- <textarea name="content[vessel_description]" rows="2">{{marine_estimate_request.vessel_description}}</textarea>
+ <textarea name="content[location]" rows="2">{{project_request.location}}</textarea>
</label>
<label>
Work to be Completed:{% include 'required' %}
- <textarea class="autosize" name="content[message]" rows="6" required="true" >{{marine_estimate_request.message}}</textarea>
+ <textarea class="autosize" name="content[project_description]" rows="6" required="true" >{{project_request.project_description}}</textarea>
</label>
<label>
When would you like your project completed by?
app/views/snippets/featured-services.liquid +17 -0
@@ @@ -0,0 +1,17 @@
+ <section class="services featured">
+ <div class="row">
+ {% with_scope featured: true %} {% for service in contents.services %}
+ <div class="columns medium-4">
+ <div class="card text-center">
+ <div class="card-divider">
+ <p class="lead"><a href="{% path_to service %}">{{ service.title }}</a></p>
+ </div>
+ <img src="{{ service.featured_image.url | resize: '600x450#' }}">
+ <div class="card-section">
+ {{ service.brief }}
+ </div>
+ </div>
+ </div>
+ {% endfor %} {% endwith_scope %}
+ </div>
+ </section>
app/views/snippets/page_header.liquid +1 -1
@@ @@ -1,4 +1,4 @@
- <header class="service" data-background-url="{% editable_file 'banner', resize: '1200x400#' %}/images/header-bg.jpg{% endeditable_file %}">
+ <header class="service" data-background-url="{% editable_file 'banner', resize: '1200x400#' %}{% endeditable_file %}">
<div class="content row column text-center">
<h1>{{ page.title }}</h1>
</div>
app/views/snippets/standard-services.liquid +17 -0
@@ @@ -0,0 +1,17 @@
+ <section class="services standard">
+ <div class="row small-up-2 medium-up-3 large-up-4">
+ {% with_scope featured: false %} {% for service in contents.services %}
+ <div class="columns medium-4">
+ <div class="card text-center">
+ <div class="card-divider">
+ <p class="lead"><a href="{% path_to service %}">{{ service.title }}</a></p>
+ </div>
+ <img src="{{ service.featured_image.url | resize: '400x300#' }}">
+ <div class="card-section hide-for-small-only">
+ {{ service.brief }}
+ </div>
+ </div>
+ </div>
+ {% endfor %} {% endwith_scope %}
+ </div>
+ </section>
data/marine_estimate_requests.yml +0 -44
@@ @@ -1,44 +0,0 @@
- - "Sample 1":
- email: "Vel voluptas est placeat deleniti in beatae."
- phone: "Assumenda molestias eligendi id enim praesentium quia quaerat nihil."
- vessel_description: "Est voluptas doloremque ea."
- hull_number: "Eos veniam fugiat aspernatur consequatur dolor nemo."
- location: "Quis alias et voluptatem."
- marina: "Voluptate officia ipsam veniam eaque error iste nostrum."
- completion_date: "Vel sunt eos et non."
- message: "Cumque harum cupiditate natus consequatur ea itaque at. Optio hic illo quasi provident. Magnam voluptatum et tempora dolores fuga atque. Enim doloribus quasi eum et est."
- # attachment_1: /samples/marine_estimate_requests/yourfile.txt # Path to a file in the public/samples folder or to a remote and external file.
-
- - "Sample 2":
- email: "Ipsum qui eum totam facere adipisci voluptatem."
- phone: "A numquam quo rem velit facere adipisci voluptatem."
- vessel_description: "Porro rerum laboriosam eveniet eligendi quisquam."
- hull_number: "Non laborum ad dicta dolore iusto cupiditate."
- location: "Consequatur tempora fugit autem ea blanditiis eum aut ex."
- marina: "Voluptate sed maxime explicabo dolor."
- completion_date: "Ea tempore repellat esse ut quam."
- message: "Est voluptatem dolorem esse. Quo perspiciatis ut omnis molestiae porro ut libero. Neque omnis rerum repellendus animi minima."
- # attachment_1: /samples/marine_estimate_requests/yourfile.txt # Path to a file in the public/samples folder or to a remote and external file.
-
- - "Sample 3":
- email: "Fugit ducimus alias velit eum esse."
- phone: "Non quo laborum aut ducimus modi aperiam in consequatur."
- vessel_description: "Nobis et natus quis."
- hull_number: "Corrupti fugiat dicta quae nisi quos ea ab qui."
- location: "Autem molestiae ut distinctio corporis optio voluptatem quisquam."
- marina: "Reprehenderit enim velit minima."
- completion_date: "Qui repellat quo et similique."
- message: "Illum aut sed rerum sint. Qui exercitationem praesentium. Sit velit non voluptatem odit deserunt non. Tenetur ab possimus impedit."
- # attachment_1: /samples/marine_estimate_requests/yourfile.txt # Path to a file in the public/samples folder or to a remote and external file.
-
- - "Sample 4":
- email: "Enim vero dicta cumque dolore voluptatem aut."
- phone: "Fugit voluptas et omnis non quis ut."
- vessel_description: "Numquam ut quibusdam earum veniam."
- hull_number: "Omnis possimus fuga itaque non recusandae ducimus modi."
- location: "Id provident alias ut reiciendis qui dolorem."
- marina: "Et voluptatem sed magnam ullam dolorem aperiam."
- completion_date: "Unde quia aperiam explicabo vel laboriosam occaecati."
- message: "Aut porro fuga. Ea aperiam corrupti quia necessitatibus ut est optio. Et saepe quo illo at."
- # attachment_1: /samples/marine_estimate_requests/yourfile.txt # Path to a file in the public/samples folder or to a remote and external file.
-
public/stylesheets/app.scss +4 -0
@@ @@ -69,6 +69,10 @@ section.page {
}
}
+ .title-bar a.logo {
+ color: $white;
+ font-weight: bold;
+ }
.services .card .card-section {
width: 100%;
}