HEX
Server: LiteSpeed
System: Linux s1049.use1.mysecurecloudhost.com 4.18.0-477.27.2.lve.el8.x86_64 #1 SMP Wed Oct 11 12:32:56 UTC 2023 x86_64
User: xedaptot (3356)
PHP: 8.3.31
Disabled: NONE
Upload Files
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();
    }
}