File: /home/xedaptot/be.naniguide.com/app/Http/Controllers/MailListTemplateController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Model\Template;
class MailListTemplateController extends Controller
{
public function index($list_uid)
{
$list = \App\Model\MailList::findByUid($list_uid);
// authorize
if (\Gate::denies('update', $list)) {
return $this->notAuthorized();
}
return view('mail_list_templates.index', [
'list' => $list,
'mailListTemplates' => $list->mailListTemplates()->orderBy('id', 'asc')->get(),
]);
}
public function update(Request $request, $list_uid, $alias)
{
$list = \App\Model\MailList::findByUid($list_uid);
// authorize
if (\Gate::denies('update', $list)) {
return $this->notAuthorized();
}
// Get template
$mailListTemplate = $list->getTemplate($alias);
// storing
if ($request->isMethod('post')) {
//
$validator = $mailListTemplate->template->updateContent($request->json, $request->content);
//
if ($validator->fails()) {
return response()->json($validator->errors(), 400);
}
//
return response()->json([
'status' => 'success',
]);
// $page->fill($request->all());
// $validate = 'required';
// foreach ($layout->tags() as $tag) {
// if ($tag['required']) {
// $validate .= '|substring:'.$tag['name'];
// }
// }
// $rules = array();
// // Check if use outside url
// if ($request->use_outside_url) {
// $rules['outside_url'] = 'active_url';
// } else {
// $rules['content'] = $validate;
// $rules['subject'] = 'required';
// }
// // Validation
// $this->validate($request, $rules);
// // option
// if ($request->term) {
// $list->setEmbeddedFormOption('term', $request->term);
// $list->setEmbeddedFormOption('enable_term', $request->enable_term);
// }
// // save
// $page->customer_id = $list->customer->id;
// $page->save();
// $request->session()->flash('alert-success', trans('messages.page.updated'));
// return redirect()->action('MailListTemplateController@update', array('list_uid' => $list->uid, 'alias' => $layout->alias));
}
return view('mail_list_templates.update', [
'list' => $list,
'mailListTemplate' => $mailListTemplate,
]);
}
public function builder(Request $request, $uid)
{
$mailListTemplate = \App\Model\MailListTemplate::findByUid($uid);
$list = $mailListTemplate->mailList;
// authorize
if (\Gate::denies('update', $list)) {
return $this->notAuthorized();
}
return view('mail_list_templates.builder', [
'list' => $list,
'mailListTemplate' => $mailListTemplate,
'templates' => [],
]);
}
public function preview(Request $request, $uid)
{
$mailListTemplate = \App\Model\MailListTemplate::findByUid($uid);
$list = $mailListTemplate->mailList;
// authorize
if (\Gate::denies('update', $list)) {
return $this->notAuthorized();
}
echo $mailListTemplate->renderContent();
}
public function restoreDefault(Request $request, $uid)
{
$mailListTemplate = \App\Model\MailListTemplate::findByUid($uid);
// authorize
if (\Gate::denies('update', $mailListTemplate->mailList)) {
return $this->notAuthorized();
}
$mailListTemplate->restoreSystemTemplate();
$request->session()->flash('alert-success', trans('messages.page.reset.success'));
return redirect()->action('MailListTemplateController@update', array('list_uid' => $mailListTemplate->mailList->uid, 'alias' => $mailListTemplate->alias));
}
public function changeTemplate(Request $request, $uid)
{
$template = Template::findByUid($uid);
$fromTemplate = Template::findByUid($request->template_uid);
// Change theme from a template
$template->theme = $fromTemplate->theme;
$template->save();
}
}