File "EmailTemplatesController.php"
Full Path: /home/isoftco/public_html/hrm/app/Http/Controllers/Admin/EmailTemplatesController.php
File size: 6.25 KB
MIME-type: text/x-php
Charset: utf-8
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\AdminBaseController;
use App\Http\Requests\Admin\EmailTemplate\UpdateRequest;
use App\Models\EmailTemplate;
use Illuminate\Support\Facades\Response;
use Illuminate\Support\Facades\View;
use Yajra\DataTables\Facades\DataTables;
class EmailTemplatesController extends AdminBaseController
{
public function __construct()
{
parent::__construct();
$this->pageTitle = 'Email Templates';
$this->settingActive = 'active';
$this->emailTemplateActive = 'active';
$this->middleware(function ($request, $next) {
if (admin()->type != 'superadmin') {
echo View::make('admin.errors.noaccess', $this->data);
die();
}
return $next($request);
});
}
public function index()
{
$this->email_templates = EmailTemplate::all();
$this->emailsDef = EmailTemplate::select('id', 'email_id', 'subject', 'body', 'created_at')
->where('email_id', '<>', 'NEW_COMPANY_NOTIFICATION_SUPERADMIN')
->where('email_id', '<>', 'NEW_COMPANY_REQUEST_TO_ADMIN')
->orderBy('created_at', 'desc')->take(5)->get();
$this->total = EmailTemplate::count();
return View::make('admin.email_templates.index', $this->data);
}
// DATA TABLE ajax request
public function ajax_email_templates()
{
$result = EmailTemplate::select('id', 'email_id', 'subject', 'body', 'created_at')
->where('email_id', '<>', 'NEW_COMPANY_NOTIFICATION_SUPERADMIN')
->where('email_id', '<>', 'NEW_COMPANY_REQUEST_TO_ADMIN')
->where('email_id', '<>', 'INVOICE_ONE_DAY_LEFT_NOTICE')
->get();
return DataTables::of($result)->editColumn('created_at', function ($row) {
return date('d-M-Y', strtotime($row->created_at));
})->addColumn('edit', function ($row) {
$string = '<a style="width: 75px;" class="btn purple btn-sm margin-bottom-10" href="javascript:;" onclick="showEdit(' . $row->id . ');return false;" >
<i class="fa fa-edit"></i> ' . trans('core.edit') . '</a>';
return $string;
})
->rawColumns(['edit','body'])
->removeColumn('id')->make();
}
public function edit($id)
{
// VARIABLES ON EMAIL TEMPALTES
$new_admin = ["##NAME##", "##COMPANY_NAME##", "##EMAIL##", "##PASSWORD##"];
$this->data['email']['NEW_ADMIN'] = implode(" | ", $new_admin);
$attendance_marked = ['##NAME##', '##DATE##'];
$this->data['email']['ATTENDANCE_MARKED'] = implode(" | ", $attendance_marked);
$award = ['##NAME##', '##AWARD##'];
$this->data['email']['AWARD'] = implode(" | ", $award);
$employee_add = ["##NAME##", "##COMPANY_NAME##", "##EMAIL##", "##PASSWORD##"];
$this->data['email']['EMPLOYEE_ADD'] = implode(" | ", $employee_add);
$expense_approval = ['##STATUS##', '##DATE##'];
$this->data['email']['EXPENSE_APPROVAL'] = implode(" | ", $expense_approval);
$leave_approval = ['##STATUS##', '##DATE##'];
$this->data['email']['LEAVE_APPROVAL'] = implode(" | ", $leave_approval);
$new_company_request_to_admin = ['##STATUS##', '##COMPANY_NAME##'];
$this->data['email']['NEW_COMPANY_REQUEST_TO_ADMIN'] = implode(" | ", $new_company_request_to_admin);
$new_company_noti = ['##STATUS##', '##COMPANY_NAME##'];
$this->data['email']['NEW_COMPANY_NOTIFICATION_SUPERADMIN'] = implode(" | ", $new_company_noti);
$new_notice = ['##NAME##', '##LINK##'];
$this->data['email']['NEW_NOTICE'] = implode(" | ", $new_notice);
$admin_reset_password = ['##NAME##', '##CODE_LINK##'];
$this->data['email']['ADMIN_RESET_PASSWORD'] = implode(" | ", $admin_reset_password);
$new_payslip = ['##NAME##', '##MONTH_YEAR##'];
$this->data['email']['NEW_PAYSLIP'] = implode(" | ", $new_payslip);
$reset_success = ['##NAME##'];
$this->data['email']['RESET_PASSWORD_SUCCESS'] = implode(" | ", $reset_success);
$reset_success = ['##NAME##', '##CODE_LINK##'];
$this->data['email']['FRONT_RESET_PASSWORD'] = implode(" | ", $reset_success);
$employee_password = ['##NAME##'];
$this->data['email']['CHANGE_PASSWORD_EMPLOYEE'] = implode(" | ", $employee_password);
$expense_claim = ['##NAME##', '##ITEM_NAME##', '##PURCHASE_FROM##',
'##PURCHASE_DATE##', '##PRICE##'];
$this->data['email']['EXPENSE_CLAIM'] = implode(" | ", $expense_claim);
$job_request = ['##EMPLOYEE_NAME##', '##POSITION##', '##NAME##',
'##EMAIL##', '##PHONE##', '##COVER_LETTER##', '#LINK'];
$this->data['email']['JOB_APPLICATION_REQUEST'] = implode(" | ", $job_request);
$employee_password = ['##NAME##'];
$this->data['email']['CHANGE_PASSWORD_EMPLOYEE'] = implode(" | ", $employee_password);
$emailVerifi = ['##NAME##', '##VERIFY_LINK##'];
$this->data['email']['NEW_ADMIN_EMAIL_VERIFICATION'] = implode(" | ", $emailVerifi);
$emailVerifi = ['##PRODUCT##', '##INVOICE_NUMBER##','##AMOUNT##','##DATE_GENERATED##','##DUE_DATE##'];
$this->data['email']['LICENSE_EXPIRED'] = implode(" | ", $emailVerifi);
$emailVerifi = ['##PRODUCT##', '##INVOICE_NUMBER##','##AMOUNT##','##DATE_GENERATED##','##DUE_DATE##'];
$this->data['email']['NEW_INVOICE_GENERATED'] = implode(" | ", $emailVerifi);
//Check employee Company
$this->email_template = EmailTemplate::find($id);
if ($this->email_template == null) {
return View::make('admin.errors.noaccess', $this->data);
}
return View::make('admin.email_templates.edit', $this->data);
}
/**
* Update the specified emailtemplate in storage.
*
* @param int $id
* @return Response
*/
public function update(UpdateRequest $request, $id)
{
$email = EmailTemplate::findOrFail($id);
$data = request()->all();
$email->subject = request()->get('subject');
$email->body = request()->get('body');
$email->save();
$output['status'] = 'success';
$output['msg'] = trans("messages.updateSuccess");
return Response::json($output, 200);
}
}