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%; | |
| } | |