mirror of
https://github.com/Sylius/Sylius.git
synced 2026-07-14 17:10:53 +00:00
Added templates, routings, translations and fixtures for contact
This commit is contained in:
parent
9896c640fc
commit
92ac6b84f4
24 changed files with 555 additions and 2 deletions
31
features/contact/contact_requesting.feature
Normal file
31
features/contact/contact_requesting.feature
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
@contact
|
||||
Feature: Contact requesting
|
||||
In order to get help from customer support
|
||||
As a visitor
|
||||
I want to send message to store owner
|
||||
|
||||
Background:
|
||||
Given there is default currency configured
|
||||
And there are following contact topics:
|
||||
| title |
|
||||
| Order return |
|
||||
| Delivery |
|
||||
| Product information |
|
||||
And I am logged in as administrator
|
||||
|
||||
Scenario: Submitting the form without the required fields fails
|
||||
Given I am on the contact page
|
||||
When I press "Send"
|
||||
Then I should still be on the contact page
|
||||
And I should see "Please enter first name."
|
||||
|
||||
Scenario: Submitting contact form
|
||||
Given I am on the contact page
|
||||
When I fill in "First name" with "John"
|
||||
And I fill in "Last name" with "Doe"
|
||||
And I fill in "Email" with "john@doe.com"
|
||||
And I fill in "Message" with "Hello!"
|
||||
And I select "Delivery" from "Topic"
|
||||
And I press "Send"
|
||||
Then I should be on the contact page
|
||||
And I should see "Contact has been successfully sent."
|
||||
|
|
@ -5,5 +5,6 @@ sylius:
|
|||
last_name: Last name
|
||||
email: Email
|
||||
message: Message
|
||||
topic: Topic
|
||||
contact_topic:
|
||||
title: Title
|
||||
|
|
@ -0,0 +1,53 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Sylius package.
|
||||
*
|
||||
* (c) Paweł Jędrzejewski
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Sylius\Bundle\FixturesBundle\DataFixtures\ORM;
|
||||
|
||||
use Doctrine\Common\Persistence\ObjectManager;
|
||||
use Sylius\Bundle\FixturesBundle\DataFixtures\DataFixture;
|
||||
|
||||
/**
|
||||
* Default contact request fixtures.
|
||||
*
|
||||
* @author Michał Marcinkowski <michal.marcinkowski@lakion.com>
|
||||
*/
|
||||
class LoadContactRequestData extends DataFixture
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function load(ObjectManager $manager)
|
||||
{
|
||||
$contactRequestRepository = $this->getContactRequestRepository();
|
||||
|
||||
for ($i = 0; $i < 20; $i++) {
|
||||
$contactRequest = $contactRequestRepository->createNew();
|
||||
|
||||
$contactRequest->setFirstName($this->faker->firstName());
|
||||
$contactRequest->setLastName($this->faker->lastName());
|
||||
$contactRequest->setEmail($this->faker->email());
|
||||
$contactRequest->setMessage($this->faker->paragraph());
|
||||
$contactRequest->setTopic($this->getReference('Sylius.ContactTopic.' . rand(0, 4)));
|
||||
|
||||
$manager->persist($contactRequest);
|
||||
}
|
||||
|
||||
$manager->flush();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getOrder()
|
||||
{
|
||||
return 2;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Sylius package.
|
||||
*
|
||||
* (c) Paweł Jędrzejewski
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Sylius\Bundle\FixturesBundle\DataFixtures\ORM;
|
||||
|
||||
use Doctrine\Common\Persistence\ObjectManager;
|
||||
use Sylius\Bundle\FixturesBundle\DataFixtures\DataFixture;
|
||||
|
||||
/**
|
||||
* Default contact topic fixtures.
|
||||
*
|
||||
* @author Michał Marcinkowski <michal.marcinkowski@lakion.com>
|
||||
*/
|
||||
class LoadContactTopicData extends DataFixture
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function load(ObjectManager $manager)
|
||||
{
|
||||
$contactTopicRepository = $this->getContactTopicRepository();
|
||||
|
||||
for ($i = 0; $i < 5; $i++) {
|
||||
$contactTopic = $contactTopicRepository->createNew();
|
||||
|
||||
$contactTopic->setTitle($this->faker->sentence());
|
||||
|
||||
$manager->persist($contactTopic);
|
||||
|
||||
$this->setReference('Sylius.ContactTopic.' . $i, $contactTopic);
|
||||
}
|
||||
|
||||
$manager->flush();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getOrder()
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,47 @@
|
|||
# This file is part of the Sylius package.
|
||||
# (c) Paweł Jędrzejewski
|
||||
|
||||
sylius_backend_contact_request_index:
|
||||
path: /
|
||||
methods: [GET]
|
||||
defaults:
|
||||
_controller: sylius.controller.contact_request:indexAction
|
||||
_sylius:
|
||||
template: SyliusWebBundle:Backend/ContactRequest:index.html.twig
|
||||
sortable: true
|
||||
paginate: false
|
||||
|
||||
sylius_backend_contact_request_create:
|
||||
path: /new
|
||||
methods: [GET, POST]
|
||||
defaults:
|
||||
_controller: sylius.controller.contact_request:createAction
|
||||
_sylius:
|
||||
template: SyliusWebBundle:Backend/ContactRequest:create.html.twig
|
||||
redirect: sylius_backend_contact_request_index
|
||||
|
||||
sylius_backend_contact_request_update:
|
||||
path: /{id}/edit
|
||||
methods: [GET, PUT]
|
||||
defaults:
|
||||
_controller: sylius.controller.contact_request:updateAction
|
||||
_sylius:
|
||||
template: SyliusWebBundle:Backend/ContactRequest:update.html.twig
|
||||
redirect: sylius_backend_contact_request_index
|
||||
|
||||
sylius_backend_contact_request_delete:
|
||||
path: /{id}
|
||||
methods: [DELETE]
|
||||
defaults:
|
||||
_controller: sylius.controller.contact_request:deleteAction
|
||||
_sylius:
|
||||
template: SyliusWebBundle:Backend/Misc:delete.html.twig
|
||||
redirect: sylius_backend_contact_request_index
|
||||
|
||||
sylius_backend_contact_request_show:
|
||||
path: /{id}
|
||||
methods: [GET]
|
||||
defaults:
|
||||
_controller: sylius.controller.contact_request:showAction
|
||||
_sylius:
|
||||
template: SyliusWebBundle:Backend/ContactRequest:show.html.twig
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
# This file is part of the Sylius package.
|
||||
# (c) Paweł Jędrzejewski
|
||||
|
||||
sylius_backend_contact_topic_index:
|
||||
path: /
|
||||
methods: [GET]
|
||||
defaults:
|
||||
_controller: sylius.controller.contact_topic:indexAction
|
||||
_sylius:
|
||||
template: SyliusWebBundle:Backend/ContactTopic:index.html.twig
|
||||
sortable: true
|
||||
paginate: false
|
||||
|
||||
sylius_backend_contact_topic_create:
|
||||
path: /new
|
||||
methods: [GET, POST]
|
||||
defaults:
|
||||
_controller: sylius.controller.contact_topic:createAction
|
||||
_sylius:
|
||||
template: SyliusWebBundle:Backend/ContactTopic:create.html.twig
|
||||
redirect: sylius_backend_contact_topic_index
|
||||
|
||||
sylius_backend_contact_topic_update:
|
||||
path: /{id}/edit
|
||||
methods: [GET, PUT]
|
||||
defaults:
|
||||
_controller: sylius.controller.contact_topic:updateAction
|
||||
_sylius:
|
||||
template: SyliusWebBundle:Backend/ContactTopic:update.html.twig
|
||||
redirect: sylius_backend_contact_topic_index
|
||||
|
||||
sylius_backend_contact_topic_delete:
|
||||
path: /{id}
|
||||
methods: [DELETE]
|
||||
defaults:
|
||||
_controller: sylius.controller.contact_topic:deleteAction
|
||||
_sylius:
|
||||
template: SyliusWebBundle:Backend/Misc:delete.html.twig
|
||||
redirect: sylius_backend_contact_topic_index
|
||||
|
|
@ -132,6 +132,14 @@ sylius_backend_api_client:
|
|||
resource: @SyliusWebBundle/Resources/config/routing/backend/api_client.yml
|
||||
prefix: /api-clients
|
||||
|
||||
sylius_backend_contact_topic:
|
||||
resource: @SyliusWebBundle/Resources/config/routing/backend/contact_topic.yml
|
||||
prefix: /contact-topics
|
||||
|
||||
sylius_backend_contact_request:
|
||||
resource: @SyliusWebBundle/Resources/config/routing/backend/contact_request.yml
|
||||
prefix: /contact-requests
|
||||
|
||||
sylius_backend_settings:
|
||||
resource: @SyliusWebBundle/Resources/config/routing/backend/settings.yml
|
||||
prefix: /settings
|
||||
|
|
|
|||
|
|
@ -0,0 +1,7 @@
|
|||
sylius_contact:
|
||||
path: /
|
||||
defaults:
|
||||
_controller: sylius.controller.contact_request:createAction
|
||||
_sylius:
|
||||
template: SyliusWebBundle:Frontend:contact.html.twig
|
||||
redirect: sylius_contact
|
||||
|
|
@ -38,3 +38,7 @@ sylius_cart_save:
|
|||
_controller: sylius.controller.cart:saveAction
|
||||
_sylius:
|
||||
template: SyliusWebBundle:Frontend/Cart:summary.html.twig
|
||||
|
||||
sylius_contact:
|
||||
resource: @SyliusWebBundle/Resources/config/routing/frontend/contact.yml
|
||||
prefix: /contact
|
||||
|
|
|
|||
|
|
@ -106,6 +106,11 @@ sylius:
|
|||
customers: Customers
|
||||
dashboard: Dashboard
|
||||
edit: Edit
|
||||
contact_request:
|
||||
index: Contact requests
|
||||
show: Contact request
|
||||
contact_topic:
|
||||
index: Contact topics
|
||||
currency:
|
||||
index: Currencies
|
||||
general_settings: General Settings
|
||||
|
|
@ -753,3 +758,26 @@ sylius:
|
|||
scope: Scope
|
||||
zone_member:
|
||||
members: Members
|
||||
contact_topic:
|
||||
create: Create contact topic
|
||||
create_header: New contact topic
|
||||
id: ID
|
||||
title: Title
|
||||
index_header: Contact topics
|
||||
no_results: There are no contact topics to display.
|
||||
update_header: Editing contact topic
|
||||
updated_at: Last update
|
||||
contact_request:
|
||||
create: Create contact request
|
||||
create_header: New contact request
|
||||
id: ID
|
||||
firstName: First name
|
||||
lastName: Last name
|
||||
email: Email
|
||||
message: Message
|
||||
topic: Topic
|
||||
index_header: Contact requests
|
||||
no_results: There are no contact requests to display.
|
||||
update_header: Editing contact request
|
||||
updated_at: Last update
|
||||
show_header: Contact request details
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
{% form_theme form 'SyliusWebBundle::forms.html.twig' %}
|
||||
|
||||
{{ form_errors(form) }}
|
||||
|
||||
{{ form_row(form.topic) }}
|
||||
{{ form_row(form.firstName) }}
|
||||
{{ form_row(form.lastName) }}
|
||||
{{ form_row(form.email) }}
|
||||
{{ form_row(form.message) }}
|
||||
|
||||
{{ form_rest(form) }}
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
{% extends 'SyliusWebBundle:Backend:layout.html.twig' %}
|
||||
|
||||
{% from 'SyliusResourceBundle:Macros:actions.html.twig' import create %}
|
||||
|
||||
{% block topbar %}
|
||||
<ol class="breadcrumb">
|
||||
<li>{{ 'sylius.breadcrumb.configuration'|trans }}</li>
|
||||
<li><a href="{{ path('sylius_backend_contact_request_index') }}">{{ 'sylius.breadcrumb.contact_request.index'|trans }}</a></li>
|
||||
<li>{{ 'sylius.breadcrumb.new'|trans }}</li>
|
||||
</ol>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="page-header">
|
||||
<h1><i class="glyphicon glyphicon-plus-sign"></i> {{ 'sylius.contact_request.create_header'|trans|raw }}</h1>
|
||||
</div>
|
||||
|
||||
{{ form_errors(form) }}
|
||||
|
||||
<form action="{{ path('sylius_backend_contact_request_create') }}" method="post" class="form-horizontal" novalidate>
|
||||
{% include 'SyliusWebBundle:Backend/ContactRequest:_form.html.twig' %}
|
||||
{{ create() }}
|
||||
</form>
|
||||
{% endblock %}
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
{% extends 'SyliusWebBundle:Backend:layout.html.twig' %}
|
||||
|
||||
{% import 'SyliusResourceBundle:Macros:buttons.html.twig' as buttons %}
|
||||
{% from 'SyliusWebBundle:Backend/ContactRequest:macros.html.twig' import list %}
|
||||
|
||||
{% block topbar %}
|
||||
<ol class="breadcrumb">
|
||||
<li>{{ 'sylius.breadcrumb.configuration'|trans }}</li>
|
||||
<li>{{ 'sylius.breadcrumb.contact_request.index'|trans }}</li>
|
||||
</ol>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="page-header">
|
||||
<div class="actions-menu">
|
||||
{{ buttons.create(path('sylius_backend_contact_request_create'), 'sylius.contact_request.create'|trans) }}
|
||||
</div>
|
||||
<h1><i class="fa fa-comments"></i> {{ 'sylius.contact_request.index_header'|trans|raw }}</h1>
|
||||
</div>
|
||||
|
||||
{{ list(contact_requests) }}
|
||||
|
||||
{% endblock %}
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
{% macro list(contact_requests) %}
|
||||
|
||||
{% import 'SyliusResourceBundle:Macros:buttons.html.twig' as buttons %}
|
||||
{% import 'SyliusWebBundle:Backend/Macros:alerts.html.twig' as alerts %}
|
||||
|
||||
{% if contact_requests|length > 0 %}
|
||||
<table class="table table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{ sylius_resource_sort('firstName', 'sylius.contact_request.firstName'|trans) }}</th>
|
||||
<th>{{ sylius_resource_sort('lastName', 'sylius.contact_request.lastName'|trans) }}</th>
|
||||
<th>{{ sylius_resource_sort('email', 'sylius.contact_request.email'|trans) }}</th>
|
||||
<th>{{ sylius_resource_sort('topic', 'sylius.contact_request.topic'|trans) }}</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for contact_request in contact_requests %}
|
||||
<tr id="{{ contact_request.id }}">
|
||||
<td>{{ contact_request.firstName }}</td>
|
||||
<td>{{ contact_request.lastName }}</td>
|
||||
<td>{{ contact_request.email }}</td>
|
||||
<td>{{ contact_request.topic }}</td>
|
||||
<td>
|
||||
<div class="pull-right">
|
||||
{{ buttons.show(path('sylius_backend_contact_request_show', {'id': contact_request.id})) }}
|
||||
{{ buttons.edit(path('sylius_backend_contact_request_update', {'id': contact_request.id})) }}
|
||||
{{ buttons.delete(path('sylius_backend_contact_request_delete', {'id': contact_request.id})) }}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% else %}
|
||||
{{ alerts.info('sylius.contact_request.no_results'|trans) }}
|
||||
{% endif %}
|
||||
|
||||
{% endmacro %}
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
{% extends 'SyliusWebBundle:Backend:layout.html.twig' %}
|
||||
|
||||
{% block topbar %}
|
||||
<ol class="breadcrumb">
|
||||
<li>{{ 'sylius.breadcrumb.configuration'|trans }}</li>
|
||||
<li><a href="{{ path('sylius_backend_contact_request_index') }}">{{ 'sylius.breadcrumb.contact_request.index'|trans }}</a></li>
|
||||
<li>{{ contact_request.id }}</li>
|
||||
<li>{{ 'sylius.breadcrumb.contact_request.show'|trans }}</li>
|
||||
</ol>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="page-header">
|
||||
<h1><i class="fa fa-life-ring"></i> {{ 'sylius.contact_request.show_header'|trans|raw }}</h1>
|
||||
</div>
|
||||
|
||||
{{ contact_request.firstName }} <br/>
|
||||
{{ contact_request.lastName }} <br/>
|
||||
{{ contact_request.email }} <br/>
|
||||
{{ contact_request.topic }} <br/>
|
||||
{{ contact_request.message }}
|
||||
|
||||
{% endblock %}
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
{% extends 'SyliusWebBundle:Backend:layout.html.twig' %}
|
||||
|
||||
{% from 'SyliusResourceBundle:Macros:actions.html.twig' import update %}
|
||||
|
||||
{% block topbar %}
|
||||
<ol class="breadcrumb">
|
||||
<li>{{ 'sylius.breadcrumb.configuration'|trans }}</li>
|
||||
<li><a href="{{ path('sylius_backend_contact_request_index') }}">{{ 'sylius.breadcrumb.contact_request.index'|trans }}</a></li>
|
||||
<li>{{ contact_request.id }}</li>
|
||||
<li>{{ 'sylius.breadcrumb.edit'|trans }}</li>
|
||||
</ol>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="page-header">
|
||||
<h1><i class="glyphicon glyphicon-pencil"></i> {{ 'sylius.contact_request.update_header'|trans|raw }}</h1>
|
||||
</div>
|
||||
|
||||
{{ form_errors(form) }}
|
||||
|
||||
<form action="{{ path('sylius_backend_contact_request_update', {'id': contact_request.id}) }}" method="post" class="form-horizontal" novalidate>
|
||||
<input type="hidden" name="_method" value="PUT">
|
||||
{% include 'SyliusWebBundle:Backend/ContactRequest:_form.html.twig' %}
|
||||
{{ update() }}
|
||||
</form>
|
||||
{% endblock %}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
{% form_theme form 'SyliusWebBundle::forms.html.twig' %}
|
||||
|
||||
{{ form_errors(form) }}
|
||||
|
||||
{{ form_row(form.title, {'attr': {'class': 'input-lg'}}) }}
|
||||
|
||||
{{ form_rest(form) }}
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
{% extends 'SyliusWebBundle:Backend:layout.html.twig' %}
|
||||
|
||||
{% from 'SyliusResourceBundle:Macros:actions.html.twig' import create %}
|
||||
|
||||
{% block topbar %}
|
||||
<ol class="breadcrumb">
|
||||
<li>{{ 'sylius.breadcrumb.configuration'|trans }}</li>
|
||||
<li><a href="{{ path('sylius_backend_contact_topic_index') }}">{{ 'sylius.breadcrumb.contact_topic.index'|trans }}</a></li>
|
||||
<li>{{ 'sylius.breadcrumb.new'|trans }}</li>
|
||||
</ol>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="page-header">
|
||||
<h1><i class="glyphicon glyphicon-plus-sign"></i> {{ 'sylius.contact_topic.create_header'|trans|raw }}</h1>
|
||||
</div>
|
||||
|
||||
{{ form_errors(form) }}
|
||||
|
||||
<form action="{{ path('sylius_backend_contact_topic_create') }}" method="post" class="form-horizontal" novalidate>
|
||||
{% include 'SyliusWebBundle:Backend/ContactTopic:_form.html.twig' %}
|
||||
{{ create() }}
|
||||
</form>
|
||||
{% endblock %}
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
{% extends 'SyliusWebBundle:Backend:layout.html.twig' %}
|
||||
|
||||
{% import 'SyliusResourceBundle:Macros:buttons.html.twig' as buttons %}
|
||||
{% from 'SyliusWebBundle:Backend/ContactTopic:macros.html.twig' import list %}
|
||||
|
||||
{% block topbar %}
|
||||
<ol class="breadcrumb">
|
||||
<li>{{ 'sylius.breadcrumb.configuration'|trans }}</li>
|
||||
<li>{{ 'sylius.breadcrumb.contact_topic.index'|trans }}</li>
|
||||
</ol>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="page-header">
|
||||
<div class="actions-menu">
|
||||
{{ buttons.create(path('sylius_backend_contact_topic_create'), 'sylius.contact_topic.create'|trans) }}
|
||||
</div>
|
||||
<h1>{{ 'sylius.contact_topic.index_header'|trans|raw }}</h1>
|
||||
</div>
|
||||
|
||||
{{ list(contact_topics) }}
|
||||
|
||||
{% endblock %}
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
{% macro list(contact_topics) %}
|
||||
|
||||
{% import 'SyliusResourceBundle:Macros:buttons.html.twig' as buttons %}
|
||||
{% import 'SyliusWebBundle:Backend/Macros:alerts.html.twig' as alerts %}
|
||||
|
||||
{% if contact_topics|length > 0 %}
|
||||
<table class="table table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{ sylius_resource_sort('title', 'sylius.contact_topic.title'|trans) }}</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for contact_topic in contact_topics %}
|
||||
<tr id="{{ contact_topic.id }}">
|
||||
<td>{{ contact_topic.title }}</td>
|
||||
<td>
|
||||
<div class="pull-right">
|
||||
{{ buttons.edit(path('sylius_backend_contact_topic_update', {'id': contact_topic.id})) }}
|
||||
{{ buttons.delete(path('sylius_backend_contact_topic_delete', {'id': contact_topic.id})) }}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% else %}
|
||||
{{ alerts.info('sylius.contact_topic.no_results'|trans) }}
|
||||
{% endif %}
|
||||
|
||||
{% endmacro %}
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
{% extends 'SyliusWebBundle:Backend:layout.html.twig' %}
|
||||
|
||||
{% from 'SyliusResourceBundle:Macros:actions.html.twig' import update %}
|
||||
|
||||
{% block topbar %}
|
||||
<ol class="breadcrumb">
|
||||
<li>{{ 'sylius.breadcrumb.configuration'|trans }}</li>
|
||||
<li><a href="{{ path('sylius_backend_contact_topic_index') }}">{{ 'sylius.breadcrumb.contact_topic.index'|trans }}</a></li>
|
||||
<li>{{ contact_topic.title }}</li>
|
||||
<li>{{ 'sylius.breadcrumb.edit'|trans }}</li>
|
||||
</ol>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="page-header">
|
||||
<h1><i class="glyphicon glyphicon-pencil"></i> {{ 'sylius.contact_topic.update_header'|trans|raw }}</h1>
|
||||
</div>
|
||||
|
||||
{{ form_errors(form) }}
|
||||
|
||||
<form action="{{ path('sylius_backend_contact_topic_update', {'id': contact_topic.id}) }}" method="post" class="form-horizontal" novalidate>
|
||||
<input type="hidden" name="_method" value="PUT">
|
||||
{% include 'SyliusWebBundle:Backend/ContactTopic:_form.html.twig' %}
|
||||
{{ update() }}
|
||||
</form>
|
||||
{% endblock %}
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
{% extends 'SyliusWebBundle:Frontend:layout.html.twig' %}
|
||||
|
||||
{% form_theme form 'SyliusWebBundle::forms.html.twig' %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<div class="page-header">
|
||||
<h1>Contact</h1>
|
||||
</div>
|
||||
|
||||
|
||||
<form action="{{ path('sylius_contact') }}" method="post" class="form-horizontal" novalidate>
|
||||
|
||||
{{ form_errors(form) }}
|
||||
|
||||
{{ form_row(form.topic) }}
|
||||
{{ form_row(form.firstName) }}
|
||||
{{ form_row(form.lastName) }}
|
||||
{{ form_row(form.email) }}
|
||||
{{ form_row(form.message) }}
|
||||
|
||||
<input type="submit" value="Send" class="btn btn-primary" />
|
||||
|
||||
{{ form_rest(form) }}
|
||||
</form>
|
||||
{% endblock %}
|
||||
|
|
@ -146,7 +146,7 @@ class ContactRequest implements ContactRequestInterface
|
|||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function setTopic(ContactTopicInterface $topic)
|
||||
public function setTopic(ContactTopicInterface $topic = null)
|
||||
{
|
||||
$this->topic = $topic;
|
||||
|
||||
|
|
|
|||
|
|
@ -68,5 +68,5 @@ interface ContactRequestInterface extends TimestampableInterface
|
|||
/**
|
||||
* @param ContactTopicInterface $topic
|
||||
*/
|
||||
public function setTopic(ContactTopicInterface $topic);
|
||||
public function setTopic(ContactTopicInterface $topic = null);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue