Apply fixes from StyleCI

This commit is contained in:
Manish Verma
2016-12-13 13:14:54 +00:00
committed by StyleCI Bot
parent 857d3004eb
commit 88f3df2180
161 changed files with 4729 additions and 3879 deletions

View File

@@ -2,11 +2,11 @@
namespace App\Console\Commands;
use Illuminate\Console\Command;
use App\Http\Controllers\Client\helpdesk\UnAuthController;
use Illuminate\Console\Command;
class CloseWork extends Command {
class CloseWork extends Command
{
/**
* The name and signature of the console command.
*
@@ -26,7 +26,8 @@ class CloseWork extends Command {
*
* @return void
*/
public function __construct() {
public function __construct()
{
parent::__construct();
}
@@ -35,7 +36,8 @@ class CloseWork extends Command {
*
* @return mixed
*/
public function handle() {
public function handle()
{
if (env('DB_INSTALL') == 1) {
$PhpMailController = new \App\Http\Controllers\Common\PhpMailController();
$controller = new UnAuthController($PhpMailController);
@@ -45,5 +47,4 @@ class CloseWork extends Command {
$this->info('Close ticket workflow executed');
}
}
}

View File

@@ -2,13 +2,13 @@
namespace App\Console\Commands;
use Illuminate\Console\Command;
use App\Http\Controllers\Agent\helpdesk\NotificationController;
use App\Http\Controllers\Common\PhpMailController;
use Exception;
use Illuminate\Console\Command;
class SendReport extends Command {
class SendReport extends Command
{
/**
* The name and signature of the console command.
*
@@ -28,8 +28,8 @@ class SendReport extends Command {
*
* @return void
*/
public function __construct() {
public function __construct()
{
parent::__construct();
}
@@ -38,7 +38,8 @@ class SendReport extends Command {
*
* @return mixed
*/
public function handle() {
public function handle()
{
try {
if (env('DB_INSTALL') == 1) {
$mail = new PhpMailController();
@@ -49,10 +50,10 @@ class SendReport extends Command {
if ($report !== 0) {
loging('sending-mail-report', 'Report has send', 'info');
//\Log::info("Report has send");
$this->info("Report has send");
$this->info('Report has send');
} else {
loging('sending-mail-report', 'Nothing to send', 'info');
$this->info("Nothing to send");
$this->info('Nothing to send');
}
}
} catch (Exception $ex) {
@@ -60,5 +61,4 @@ class SendReport extends Command {
$this->error($ex->getMessage());
}
}
}

View File

@@ -2,13 +2,13 @@
namespace App\Console\Commands;
use Illuminate\Console\Command;
use App\Http\Controllers\Agent\helpdesk\MailController;
use Event;
use App\Http\Controllers\Agent\helpdesk\TicketWorkflowController;
use Event;
use Illuminate\Console\Command;
class TicketFetch extends Command {
class TicketFetch extends Command
{
/**
* The name and signature of the console command.
*
@@ -28,7 +28,8 @@ class TicketFetch extends Command {
*
* @return void
*/
public function __construct() {
public function __construct()
{
parent::__construct();
}
@@ -37,9 +38,9 @@ class TicketFetch extends Command {
*
* @return mixed
*/
public function handle() {
public function handle()
{
if (env('DB_INSTALL') == 1) {
$controller = $this->mailController();
$emails = new \App\Model\helpdesk\Email\Emails();
$settings_email = new \App\Model\helpdesk\Settings\Email();
@@ -53,13 +54,14 @@ class TicketFetch extends Command {
}
}
public function mailController() {
public function mailController()
{
$PhpMailController = new \App\Http\Controllers\Common\PhpMailController();
$NotificationController = new \App\Http\Controllers\Common\NotificationController();
$ticket = new \App\Http\Controllers\Agent\helpdesk\TicketController($PhpMailController, $NotificationController);
$work = new TicketWorkflowController($ticket);
$controller = new MailController($work);
return $controller;
}
}

View File

@@ -2,12 +2,12 @@
namespace App\Console;
use App\Model\MailJob\Condition;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
use App\Model\MailJob\Condition;
class Kernel extends ConsoleKernel {
class Kernel extends ConsoleKernel
{
/**
* The Artisan commands provided by your application.
*
@@ -27,7 +27,8 @@ class Kernel extends ConsoleKernel {
*
* @return void
*/
protected function schedule(Schedule $schedule) {
protected function schedule(Schedule $schedule)
{
if (env('DB_INSTALL') == 1) {
$queue = $this->getCurrentQueue();
$schedule->command('queue:listen '.$queue, ['--tries' => 1])->everyMinute();
@@ -37,75 +38,79 @@ class Kernel extends ConsoleKernel {
}
}
public function execute($schedule, $task) {
public function execute($schedule, $task)
{
$condition = new Condition();
$command = $condition->getConditionValue($task);
switch ($task) {
case "fetching":
case 'fetching':
$this->getCondition($schedule->command('ticket:fetch'), $command);
break;
case "notification":
case 'notification':
$this->getCondition($schedule->command('report:send'), $command);
break;
case "work":
case 'work':
$this->getCondition($schedule->command('ticket:close'), $command);
break;
}
}
public function getCondition($schedule, $command) {
public function getCondition($schedule, $command)
{
$condition = $command['condition'];
$at = $command['at'];
switch ($condition) {
case "everyMinute":
case 'everyMinute':
$schedule->everyMinute()->withoutOverlapping();
break;
case "everyFiveMinutes":
case 'everyFiveMinutes':
$schedule->everyFiveMinutes()->withoutOverlapping();
break;
case "everyTenMinutes":
case 'everyTenMinutes':
$schedule->everyTenMinutes()->withoutOverlapping();
break;
case "everyThirtyMinutes":
case 'everyThirtyMinutes':
$schedule->everyThirtyMinutes()->withoutOverlapping();
break;
case "hourly":
case 'hourly':
$schedule->hourly()->withoutOverlapping();
break;
case "daily":
case 'daily':
$schedule->daily()->withoutOverlapping();
break;
case "dailyAt":
case 'dailyAt':
$this->getConditionWithOption($schedule, $condition, $at);
break;
case "weekly":
case 'weekly':
$schedule->weekly()->withoutOverlapping();
break;
case "monthly":
case 'monthly':
$schedule->monthly()->withoutOverlapping();
break;
case "yearly":
case 'yearly':
$schedule->yearly()->withoutOverlapping();
break;
}
}
public function getConditionWithOption($schedule, $command, $at) {
public function getConditionWithOption($schedule, $command, $at)
{
switch ($command) {
case "dailyAt":
case 'dailyAt':
$schedule->dailyAt($at)->withoutOverlapping();
break;
}
}
public function getCurrentQueue() {
public function getCurrentQueue()
{
$queue = 'database';
$services = new \App\Model\MailJob\QueueService();
$current = $services->where('status', 1)->first();
if ($current) {
$queue = $current->short_name;
}
return $queue;
}
}

View File

@@ -1,5 +1,7 @@
<?php
namespace App\Exceptions;
// controller
use Bugsnag;
//use Illuminate\Validation\ValidationException;
@@ -11,6 +13,7 @@ use Illuminate\Auth\Access\AuthorizationException;
use Illuminate\Database\Eloquent\ModelNotFoundException;
use Illuminate\Foundation\Validation\ValidationException;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
class Handler extends ExceptionHandler
{
/**
@@ -27,6 +30,7 @@ class Handler extends ExceptionHandler
ModelNotFoundException::class,
\Symfony\Component\HttpKernel\Exception\HttpException::class,
];
/**
* Report or log an exception.
*
@@ -48,8 +52,10 @@ class Handler extends ExceptionHandler
$version = \Config::get('app.version');
Bugsnag::setAppVersion($version);
}
return parent::report($e);
}
/**
* Render an exception into an HTTP response.
*
@@ -71,6 +77,7 @@ class Handler extends ExceptionHandler
return $this->common($request, $e);
}
}
/**
* Function to render 500 error page.
*
@@ -86,9 +93,11 @@ class Handler extends ExceptionHandler
} elseif ($e instanceof ValidationException) {
return parent::render($request, $e);
}
return response()->view('errors.500');
//return redirect()->route('error500', []);
}
/**
* Function to render 404 error page.
*
@@ -99,7 +108,6 @@ class Handler extends ExceptionHandler
*/
public function render404($request, $e)
{
$seg = $request->segments();
if (in_array('api', $seg)) {
return response()->json(['status' => '404']);
@@ -108,12 +116,15 @@ class Handler extends ExceptionHandler
if ($e->getStatusCode() == '404') {
return redirect()->route('error404', []);
}
return parent::render($request, $e);
}
return redirect()->route('error404', []);
}
/**
* Function to render database connection failed
* Function to render database connection failed.
*
* @param type $request
* @param type $e
@@ -129,8 +140,10 @@ class Handler extends ExceptionHandler
if (config('app.debug') == true) {
return parent::render($request, $e);
}
return redirect()->route('error404', []);
}
/**
* Common finction to render both types of codes.
*
@@ -161,6 +174,7 @@ class Handler extends ExceptionHandler
default:
return $this->render500($request, $e);
}
return parent::render($request, $e);
}
}

View File

@@ -8,11 +8,10 @@ use ReflectionClass;
use UTC;
/**
* Class LaravelLogViewer
* @package Rap2hpoutre\LaravelLogViewer
* Class LaravelLogViewer.
*/
class LaravelLogViewer {
class LaravelLogViewer
{
/**
* @var string file
*/
@@ -43,7 +42,8 @@ class LaravelLogViewer {
/**
* @param string $file
*/
public static function setFile($file) {
public static function setFile($file)
{
$file = self::pathToLogFile($file);
if (File::exists($file)) {
@@ -51,7 +51,8 @@ class LaravelLogViewer {
}
}
public static function pathToLogFile($file) {
public static function pathToLogFile($file)
{
$logsPath = storage_path('logs');
if (File::exists($file)) { // try the absolute path
@@ -71,15 +72,17 @@ class LaravelLogViewer {
/**
* @return string
*/
public static function getFileName() {
public static function getFileName()
{
return basename(self::$file);
}
/**
* @return array
*/
public static function all() {
$log = array();
public static function all()
{
$log = [];
$log_levels = self::getLogLevels();
@@ -93,15 +96,17 @@ class LaravelLogViewer {
self::$file = $log_file[0];
}
if (File::size(self::$file) > self::MAX_FILE_SIZE)
return null;
if (File::size(self::$file) > self::MAX_FILE_SIZE) {
return;
}
$file = File::get(self::$file);
preg_match_all($pattern, $file, $headings);
if (!is_array($headings))
if (!is_array($headings)) {
return $log;
}
$log_data = preg_split($pattern, $file);
@@ -113,11 +118,11 @@ class LaravelLogViewer {
for ($i = 0, $j = count($h); $i < $j; $i++) {
foreach ($log_levels as $level_key => $level_value) {
if (strpos(strtolower($h[$i]), '.'.$level_value)) {
preg_match('/^\[(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})\].*?(\w+)\.'.$level_key.': (.*?)( in .*?:[0-9]+)?$/', $h[$i], $current);
if (!isset($current[3]))
if (!isset($current[3])) {
continue;
}
$array = explode(':-:-:-', $current[3]);
$message = $current[3];
@@ -134,7 +139,7 @@ class LaravelLogViewer {
}
}
//dd($current);
$log[] = array(
$log[] = [
'context' => $context,
'level' => $level_value,
'level_class' => self::$levels_classes[$level_value],
@@ -142,8 +147,8 @@ class LaravelLogViewer {
'date' => self::date($current[1]),
'text' => $message,
'in_file' => isset($current[4]) ? $current[4] : null,
'stack' => preg_replace("/^\n*/", '', $log_data[$i])
);
'stack' => preg_replace("/^\n*/", '', $log_data[$i]),
];
}
}
}
@@ -154,9 +159,11 @@ class LaravelLogViewer {
/**
* @param bool $basename
*
* @return array
*/
public static function getFiles($basename = false) {
public static function getFiles($basename = false)
{
$files = glob(storage_path().'/logs/*');
$files = array_reverse($files);
$files = array_filter($files, 'is_file');
@@ -165,20 +172,24 @@ class LaravelLogViewer {
$files[$k] = basename($file);
}
}
return array_values($files);
}
/**
* @return array
*/
private static function getLogLevels() {
$class = new ReflectionClass(new LogLevel);
private static function getLogLevels()
{
$class = new ReflectionClass(new LogLevel());
return $class->getConstants();
}
public static function date($utc) {
public static function date($utc)
{
$system_date = UTC::usertimezone($utc);
return $system_date;
}
}

View File

@@ -4,8 +4,8 @@ namespace App\FaveoLog;
use Illuminate\Support\ServiceProvider;
class LaravelLogViewerServiceProvider extends ServiceProvider {
class LaravelLogViewerServiceProvider extends ServiceProvider
{
/**
* Indicates if loading of the provider is deferred.
*
@@ -18,17 +18,17 @@ class LaravelLogViewerServiceProvider extends ServiceProvider {
*
* @return void
*/
public function boot() {
public function boot()
{
if (method_exists($this, 'package')) {
$this->package('rap2hpoutre/laravel-log-viewer', 'laravel-log-viewer', __DIR__.'/../../');
}
$view_path = app_path().DIRECTORY_SEPARATOR.'FaveoLog'.DIRECTORY_SEPARATOR.'views';
$this->loadViewsFrom($view_path, 'log');
$lang_path = app_path().DIRECTORY_SEPARATOR.'FaveoLog'.DIRECTORY_SEPARATOR.'lang';
$this->loadTranslationsFrom($lang_path, "log");
$this->loadTranslationsFrom($lang_path, 'log');
}
/**
@@ -36,7 +36,8 @@ class LaravelLogViewerServiceProvider extends ServiceProvider {
*
* @return void
*/
public function register() {
public function register()
{
// Add routes
$routes = app_path('/FaveoLog/routes.php');
if (file_exists($routes)) {
@@ -49,8 +50,8 @@ class LaravelLogViewerServiceProvider extends ServiceProvider {
*
* @return array
*/
public function provides() {
return array();
public function provides()
{
return [];
}
}

View File

@@ -1,31 +1,29 @@
<?php
namespace App\FaveoLog\controllers;
use App\FaveoLog\LaravelLogViewer;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\View;
use Illuminate\Support\Facades\Redirect;
use Illuminate\Support\Facades\Request;
use Illuminate\Support\Facades\Response;
use App\FaveoLog\LaravelLogViewer;
use Illuminate\Support\Facades\View;
class LogViewerController extends Controller
{
public function index()
{
if (Request::input('l')) {
//dd(base64_decode(Request::input('l')));
LaravelLogViewer::setFile(base64_decode(Request::input('l')));
}
if (Request::input('dl')) {
return Response::download(LaravelLogViewer::pathToLogFile(base64_decode(Request::input('dl'))));
} elseif (Request::has('del')) {
File::delete(LaravelLogViewer::pathToLogFile(base64_decode(Request::input('del'))));
return Redirect::to(Request::url());
}
@@ -34,7 +32,7 @@ class LogViewerController extends Controller
return View::make('log::log', [
'logs' => $logs,
'files' => LaravelLogViewer::getFiles(true),
'current_file' => LaravelLogViewer::getFileName()
'current_file' => LaravelLogViewer::getFileName(),
]);
}
}

View File

@@ -7,4 +7,3 @@ Breadcrumbs::register('logs', function ($breadcrumbs) {
Route::group(['middleware' => ['web', 'auth', 'roles']], function () {
Route::get('logs', ['as' => 'logs', 'uses' => 'App\FaveoLog\controllers\LogViewerController@index']);
});

View File

@@ -3,17 +3,18 @@
namespace App\FaveoStorage\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Model\helpdesk\Settings\CommonSettings;
use Exception;
use RecursiveIteratorIterator;
use RecursiveDirectoryIterator;
use Artisan;
use Exception;
use Illuminate\Http\Request;
use Lang;
use RecursiveDirectoryIterator;
use RecursiveIteratorIterator;
class SettingsController extends Controller {
public function settingsIcon() {
class SettingsController extends Controller
{
public function settingsIcon()
{
return ' <div class="col-md-2 col-sm-6">
<div class="settingiconblue">
<div class="settingdivblue">
@@ -23,12 +24,13 @@ class SettingsController extends Controller {
</span>
</a>
</div>
<p class="box-title" >'.Lang::get("storage::lang.storage").'</p>
<p class="box-title" >'.Lang::get('storage::lang.storage').'</p>
</div>
</div>';
}
public function settings() {
public function settings()
{
try {
$settings = new CommonSettings();
$directories = $this->directories();
@@ -42,13 +44,15 @@ class SettingsController extends Controller {
if ($ro) {
$root = $ro->option_value;
}
return view('storage::settings', compact('default', 'root', 'directories'));
} catch (Exception $ex) {
return redirect()->back()->with('fails', $ex->getMessage());
}
}
public function postSettings(Request $request) {
public function postSettings(Request $request)
{
try {
$requests = $request->except('_token');
$this->delete();
@@ -59,13 +63,15 @@ class SettingsController extends Controller {
}
}
}
return redirect()->back()->with('success', 'Updated');
} catch (Exception $ex) {
return redirect()->back()->with('fails', $ex->getMessage());
}
}
public function delete() {
public function delete()
{
$settings = CommonSettings::where('option_name', 'storage')->get();
if ($settings->count() > 0) {
foreach ($settings as $setting) {
@@ -74,7 +80,8 @@ class SettingsController extends Controller {
}
}
public function save($key, $value) {
public function save($key, $value)
{
CommonSettings::create([
'option_name' => 'storage',
'optional_field' => $key,
@@ -82,8 +89,9 @@ class SettingsController extends Controller {
]);
}
public function directories($root = "") {
if ($root == "") {
public function directories($root = '')
{
if ($root == '') {
$root = base_path();
}
@@ -91,7 +99,7 @@ class SettingsController extends Controller {
new RecursiveDirectoryIterator($root, RecursiveDirectoryIterator::SKIP_DOTS), RecursiveIteratorIterator::SELF_FIRST, RecursiveIteratorIterator::CATCH_GET_CHILD // Ignore "Permission denied"
);
$paths = array($root);
$paths = [$root];
foreach ($iter as $path => $dir) {
if ($dir->isDir()) {
$paths[$path] = $path;
@@ -101,17 +109,18 @@ class SettingsController extends Controller {
return $paths;
}
public function attachment() {
public function attachment()
{
$storage = new StorageController();
$storage->upload();
}
public function activate(){
$path = "app".DIRECTORY_SEPARATOR."FaveoStorage".DIRECTORY_SEPARATOR."database".DIRECTORY_SEPARATOR."migrations";
public function activate()
{
$path = 'app'.DIRECTORY_SEPARATOR.'FaveoStorage'.DIRECTORY_SEPARATOR.'database'.DIRECTORY_SEPARATOR.'migrations';
Artisan::call('migrate', [
'--path' => $path,
'--force'=> true,
]);
}
}

View File

@@ -2,15 +2,15 @@
namespace App\FaveoStorage\Controllers;
use Storage;
use App\Model\helpdesk\Settings\CommonSettings;
use App\Http\Controllers\Controller;
use Config;
use App\Model\helpdesk\Settings\CommonSettings;
use App\Model\helpdesk\Ticket\Ticket_attachments;
use App\Model\helpdesk\Ticket\Ticket_Thread;
use Config;
use Storage;
class StorageController extends Controller {
class StorageController extends Controller
{
protected $default;
protected $driver;
protected $root;
@@ -25,7 +25,8 @@ class StorageController extends Controller {
protected $rackspace_endpoint;
protected $rackspace_url_type;
public function __construct() {
public function __construct()
{
$this->default = $this->defaults();
$this->driver = $this->driver();
$this->root = $this->root();
@@ -40,77 +41,95 @@ class StorageController extends Controller {
$this->rackspace_username = $this->rackspaceUsername();
}
protected function settings($option) {
protected function settings($option)
{
$settings = new CommonSettings();
$setting = $settings->getOptionValue('storage', $option);
$value = "";
$value = '';
if ($setting) {
$value = $setting->option_value;
}
return $value;
}
public function defaults() {
$default = "local";
public function defaults()
{
$default = 'local';
if ($this->settings('default')) {
$default = $this->settings('default');
}
return $default;
}
public function driver() {
public function driver()
{
return $this->settings('default');
}
public function root() {
public function root()
{
$root = storage_path('app');
if ($this->settings('root')) {
$root = $this->settings('root');
}
return $root;
}
public function s3Key() {
public function s3Key()
{
return $this->settings('s3_key');
}
public function s3Region() {
public function s3Region()
{
return $this->settings('s3_region');
}
public function s3Secret() {
public function s3Secret()
{
return $this->settings('s3_secret');
}
public function s3Bucket() {
public function s3Bucket()
{
return $this->settings('s3_bucket');
}
public function rackspaceKey() {
public function rackspaceKey()
{
return $this->settings('root');
}
public function rackspaceRegion() {
public function rackspaceRegion()
{
return $this->settings('rackspace_region');
}
public function rackspaceUsername() {
public function rackspaceUsername()
{
return $this->settings('rackspace_username');
}
public function rackspaceContainer() {
public function rackspaceContainer()
{
return $this->settings('rackspace_container');
}
public function rackspaceEndpoint() {
public function rackspaceEndpoint()
{
return $this->settings('rackspace_endpoint');
}
public function rackspaceUrlType() {
public function rackspaceUrlType()
{
return $this->settings('rackspace_url_type');
}
protected function setFileSystem() {
protected function setFileSystem()
{
$config = $this->config();
//dd($config);
foreach ($config as $key => $con) {
@@ -121,10 +140,12 @@ class StorageController extends Controller {
}
Config::set("filesystem.$key", $con);
}
return Config::get('filesystem');
}
protected function config() {
protected function config()
{
return [
'default' => $this->default,
'cloud' => 's3',
@@ -132,21 +153,22 @@ class StorageController extends Controller {
];
}
protected function disks() {
protected function disks()
{
return [
"local" => [
'driver' => "local",
'local' => [
'driver' => 'local',
'root' => $this->root.'/attachments',
],
"s3" => [
'driver' => "s3",
's3' => [
'driver' => 's3',
'key' => $this->s3_key,
'secret' => $this->s3_secret,
'region' => $this->s3_region,
'bucket' => $this->s3_bucket,
],
"rackspace" => [
'driver' => "rackspace",
'rackspace' => [
'driver' => 'rackspace',
'username' => $this->rackspace_username,
'key' => $this->rackspace_key,
'container' => $this->rackspace_container,
@@ -157,7 +179,8 @@ class StorageController extends Controller {
];
}
public function upload($data, $filename, $type, $size, $disposition, $thread_id) {
public function upload($data, $filename, $type, $size, $disposition, $thread_id)
{
$upload = new Ticket_attachments();
$upload->thread_id = $thread_id;
$upload->name = $filename;
@@ -166,7 +189,7 @@ class StorageController extends Controller {
$upload->poster = $disposition;
$upload->driver = $this->default;
$upload->path = $this->root;
if ($this->default !== "database") {
if ($this->default !== 'database') {
$this->setFileSystem();
Storage::disk($this->default)->put($filename, $data);
} else {
@@ -177,7 +200,8 @@ class StorageController extends Controller {
}
}
public function saveAttachments($thread_id, $attachments = []) {
public function saveAttachments($thread_id, $attachments = [])
{
if (is_array($attachments) && count($attachments) > 0) {
foreach ($attachments as $attachment) {
$structure = $attachment->getStructure();
@@ -195,14 +219,15 @@ class StorageController extends Controller {
}
}
public function updateBody($attachment, $thread_id, $filename) {
public function updateBody($attachment, $thread_id, $filename)
{
$structure = $attachment->getStructure();
$disposition = 'ATTACHMENT';
if (isset($structure->disposition)) {
$disposition = $structure->disposition;
}
if ($disposition == 'INLINE' || $disposition == 'inline') {
$id = str_replace(">", "", str_replace("<", "", $structure->id));
$id = str_replace('>', '', str_replace('<', '', $structure->id));
$threads = new Ticket_Thread();
$thread = $threads->find($thread_id);
$body = $thread->body;
@@ -212,14 +237,14 @@ class StorageController extends Controller {
}
}
public function getFile($drive, $name) {
public function getFile($drive, $name)
{
//dd($drive,$name);
if ($drive != "database") {
if ($drive != 'database') {
$this->setFileSystem();
if (Storage::disk($this->default)->exists($name)) {
return Storage::disk($this->default)->get($name);
}
}
}
}

View File

@@ -4,20 +4,20 @@ namespace App\FaveoStorage;
use Illuminate\Support\ServiceProvider;
class StorageServiceProvider extends ServiceProvider {
class StorageServiceProvider extends ServiceProvider
{
/**
* Bootstrap the application events.
*
* @return void
*/
public function boot() {
public function boot()
{
$view_path = app_path().DIRECTORY_SEPARATOR.'FaveoStorage'.DIRECTORY_SEPARATOR.'views';
$this->loadViewsFrom($view_path, 'storage');
$lang_path = app_path().DIRECTORY_SEPARATOR.'FaveoStorage'.DIRECTORY_SEPARATOR.'lang';
$this->loadTranslationsFrom($lang_path, "storage");
$this->loadTranslationsFrom($lang_path, 'storage');
if (isInstall()) {
$controller = new Controllers\SettingsController();
@@ -44,5 +44,4 @@ class StorageServiceProvider extends ServiceProvider {
}
}
}
}

View File

@@ -1,6 +1,6 @@
<?php
Breadcrumbs::register('storage', function($breadcrumbs)
{
Breadcrumbs::register('storage', function ($breadcrumbs) {
$breadcrumbs->parent('setting');
$breadcrumbs->push('Storage', route('storage'));
});

View File

@@ -1,7 +1,7 @@
<?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
class AlterAttachmentTable extends Migration
{

View File

@@ -14,4 +14,3 @@ return [
'endpoint' => 'End Point',
'url_type' => 'Url Type',
];

View File

@@ -5,12 +5,8 @@
echo $controller->settingsIcon();
});
Route::group(['middleware'=>['web']], function () {
Route::get('storage', ['as'=>'storage', 'uses'=>'App\FaveoStorage\Controllers\SettingsController@settings']);
Route::post('storage', ['as'=>'post.storage', 'uses'=>'App\FaveoStorage\Controllers\SettingsController@postSettings']);
Route::get('attachment', ['as'=>'attach', 'uses'=>'App\FaveoStorage\Controllers\SettingsController@attachment']);
});

View File

@@ -4,8 +4,8 @@ namespace App\Helper;
use App\Model\helpdesk\Agent\Department;
use App\Model\helpdesk\Agent\Groups;
use App\Model\helpdesk\Ticket\TicketStatusType;
use App\Model\helpdesk\Ticket\Ticket_Status;
use App\Model\helpdesk\Ticket\TicketStatusType;
/**
*------------------------------------------------------------------
@@ -18,68 +18,83 @@ use App\Model\helpdesk\Ticket\Ticket_Status;
*/
class Finder
{
/**
* DEPARTMENT
* This function is used for returning department name with respect to id
* This function is used for returning department name with respect to id.
*
* @param $id type int
* @param $custom type array/null
*
* @return type string
*/
public static function department($id, $custom = null) {
public static function department($id, $custom = null)
{
if ($custom == null) {
$department = Department::whereId($id)->select(['name']);
} elseif (isset($custom)) {
$department = Department::whereId($id)->select($custom);
}
return $department->first()->name;
}
/**
* GROUP
* This function is used for returning group name with respect to id
* This function is used for returning group name with respect to id.
*
* @param $id type int
* @param $custom type array/null
*
* @return type string
*/
public static function group($id, $custom = null) {
public static function group($id, $custom = null)
{
if ($custom == null) {
$group = Groups::whereId($id)->select(['name']);
} elseif (isset($custom)) {
$group = Groups::whereId($id)->select($custom);
}
return $group->first()->name;
}
/**
* STATUS TYPE
* This function is used for returning status type name with respect to id
* This function is used for returning status type name with respect to id.
*
* @param $id type int
* @param $custom type array/null
*
* @return type string
*/
public static function statusType($id, $custom = null) {
public static function statusType($id, $custom = null)
{
if ($custom == null) {
$status_type = TicketStatusType::whereId($id)->select(['name']);
} elseif (isset($custom)) {
$status_type = TicketStatusType::whereId($id)->select($custom);
}
return $status_type->first()->name;
}
/**
* STATUS
* This function is used for returning status name with respect to id
* This function is used for returning status name with respect to id.
*
* @param $id type int
* @param $custom type array/null
*
* @return type string
*/
public static function status($id, $custom = null) {
public static function status($id, $custom = null)
{
if ($custom == null) {
$status = Ticket_Status::whereId($id)->first();
} elseif (isset($custom)) {
$status = Ticket_Status::whereId($id)->select($custom);
}
return $status;
}
@@ -92,68 +107,78 @@ class Finder
* If the value is 1+2 = 3 the response is client, agent
* If the value is 1+4 = 5 the response is client, admin
* If the value is 2+4 = 6 the response is agent, admin
* If the value is 1+2+4 = 7 the response is client, agent, admin
* If the value is 1+2+4 = 7 the response is client, agent, admin.
*
* @param $id type int
*
* @return type string
*/
public static function rolesGroup($id) {
public static function rolesGroup($id)
{
switch ($id) {
case null:
return \Lang::get('lang.none');
case 1:
return "Client";
return 'Client';
case 2:
return "Agent";
return 'Agent';
case 4:
return "Admin";
return 'Admin';
case 3:
return "Client,Agent";
return 'Client,Agent';
case 5:
return "Client,Admin";
return 'Client,Admin';
case 6:
return "Agent,Admin";
return 'Agent,Admin';
case 7:
return "Client,Agent,Admin";
return 'Client,Agent,Admin';
default:
return "Undefined!";
return 'Undefined!';
}
}
/**
* ANY TYPE STATUS
* This function is used to return the set of status which are of any type passed in the param
* This function is used to return the set of status which are of any type passed in the param.
*
* @param type $id
*
* @return type array
*/
public static function anyTypeStatus($id) {
public static function anyTypeStatus($id)
{
$status_group = Ticket_Status::where('purpose_of_status', '=', $id)->select(['id'])->get();
foreach ($status_group as $status) {
$status_group2[] = $status->id;
}
return $status_group2;
}
/**
* RETURNS ALL STATUS
* This function is used to return all the status given in the system
* This function is used to return all the status given in the system.
*
* @return type array
*/
public static function getAllStatus() {
public static function getAllStatus()
{
$status = Ticket_Status::where('purpose_of_status', '!=', 3)->orwhere('purpose_of_status', '!=', 4)->get();
return $status;
}
/**
* VARIABLE REPLACEMENT
* This function is used to replace the replaceable variables form a given content for templates
*
* This function is used to replace the replaceable variables form a given content for templates.
*/
public static function replaceTemplateVariables($variables, $data, $contents) {
public static function replaceTemplateVariables($variables, $data, $contents)
{
foreach ($variables as $key => $variable) {
$messagebody = str_replace($variables[$key], $data[$key], $contents);
$contents = $messagebody;
}
return $contents;
}
}

View File

@@ -1,10 +1,13 @@
<?php
namespace App\Http\Controllers\Admin;
use Fetch\Server as Server;
class MailFetch extends Server{
public function __construct($serverPath, $port = 143, $service = 'imap') {
use Fetch\Server as Server;
class MailFetch extends Server
{
public function __construct($serverPath, $port = 143, $service = 'imap')
{
$this->serverPath = $serverPath;
$this->port = $port;

View File

@@ -3,8 +3,8 @@
namespace App\Http\Controllers\Admin\helpdesk;
// controller
use App\Http\Controllers\Controller;
use App\Http\Controllers\Common\PhpMailController;
use App\Http\Controllers\Controller;
// request
use App\Http\Requests\helpdesk\AgentRequest;
use App\Http\Requests\helpdesk\AgentUpdate;
@@ -92,6 +92,7 @@ class AgentController extends Controller
$phonecode = $code->where('iso', '=', $location->iso_code)->first();
// returns to the page with all the variables and their datas
$send_otp = DB::table('common_settings')->select('status')->where('option_name', '=', 'send_otp')->first();
return view('themes.default1.admin.helpdesk.agent.agents.create', compact('assign', 'teams', 'agents', 'timezones', 'groups', 'departments', 'team', 'send_otp'))->with('phonecode', $phonecode->phonecode);
} catch (Exception $e) {
// returns if try fails with exception meaagse
@@ -120,8 +121,7 @@ class AgentController extends Controller
}
// fixing the user role to agent
$user->fill($request->except(['group', 'primary_department', 'agent_time_zone', 'mobile']))->save();
if ($request->get('mobile'))
{
if ($request->get('mobile')) {
$user->mobile = $request->get('mobile');
} else {
$user->mobile = null;
@@ -159,6 +159,7 @@ class AgentController extends Controller
if ($request->input('active') == '0' || $request->input('active') == 0) {
\Event::fire(new \App\Events\LoginEvent($request));
}
return redirect('agents')->with('success', Lang::get('lang.agent_creation_success'));
} else {
// returns if fails
@@ -275,7 +276,6 @@ class AgentController extends Controller
$user->id;
$user->delete();
throw new \Exception($error);
return redirect('agents')->with('success', Lang::get('lang.agent_deleted_sucessfully'));
} catch (\Exception $e) {
return redirect('agents')->with('fails', $error);

View File

@@ -29,14 +29,15 @@ use Lang;
*
* @author Ladybird <info@ladybirdweb.com>
*/
class DepartmentController extends Controller {
class DepartmentController extends Controller
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct() {
public function __construct()
{
$this->middleware('auth');
$this->middleware('roles');
}
@@ -48,9 +49,11 @@ class DepartmentController extends Controller {
*
* @return type Response
*/
public function index(Department $department) {
public function index(Department $department)
{
try {
$departments = $department->get();
return view('themes.default1.admin.helpdesk.agent.departments.index', compact('departments'));
} catch (Exception $e) {
return view('404');
@@ -70,7 +73,8 @@ class DepartmentController extends Controller {
*
* @return type Response
*/
public function create(User $user, Group_assign_department $group_assign_department, Department $department, Sla_plan $sla, Template $template, Emails $email, Groups $group) {
public function create(User $user, Group_assign_department $group_assign_department, Department $department, Sla_plan $sla, Template $template, Emails $email, Groups $group)
{
try {
$slas = $sla->where('status', '=', 1)
->select('grace_period', 'id')->get();
@@ -96,7 +100,8 @@ class DepartmentController extends Controller {
*
* @return type Response
*/
public function store(Department $department, DepartmentRequest $request) {
public function store(Department $department, DepartmentRequest $request)
{
try {
$department->fill($request->except('group_id', 'manager', 'sla'))->save();
if ($request->sla) {
@@ -119,6 +124,7 @@ class DepartmentController extends Controller {
->where('id', 1)
->update(['department' => $department->id]);
}
return redirect('departments')->with('success', Lang::get('lang.department_created_sucessfully'));
} else {
return redirect('departments')->with('fails', Lang::get('lang.failed_to_create_department'));
@@ -143,7 +149,8 @@ class DepartmentController extends Controller {
*
* @return type Response
*/
public function edit($id, User $user, Group_assign_department $group_assign_department, Template $template, Teams $team, Department $department, Sla_plan $sla, Emails $email, Groups $group) {
public function edit($id, User $user, Group_assign_department $group_assign_department, Template $template, Teams $team, Department $department, Sla_plan $sla, Emails $email, Groups $group)
{
try {
$sys_department = \DB::table('settings_system')
->select('department')
@@ -176,7 +183,8 @@ class DepartmentController extends Controller {
*
* @return type Response
*/
public function update($id, Group_assign_department $group_assign_department, Department $department, DepartmentUpdate $request) {
public function update($id, Group_assign_department $group_assign_department, Department $department, DepartmentUpdate $request)
{
// dd($id);
try {
$table = $group_assign_department->where('department_id', $id);
@@ -224,7 +232,8 @@ class DepartmentController extends Controller {
*
* @return type Response
*/
public function destroy($id, Department $department, Group_assign_department $group_assign_department, System $system, Tickets $tickets) {
public function destroy($id, Department $department, Group_assign_department $group_assign_department, System $system, Tickets $tickets)
{
// try {
$system = $system->where('id', '=', '1')->first();
@@ -283,5 +292,4 @@ class DepartmentController extends Controller {
}
}
}
}

View File

@@ -3,21 +3,21 @@
namespace App\Http\Controllers\Admin\helpdesk;
// controllers
use App\Http\Controllers\Admin\MailFetch as Fetch;
use App\Http\Controllers\Controller;
use App\Http\Requests\helpdesk\EmailsRequest;
use App\Model\helpdesk\Agent\Department;
// model
use App\Http\Requests\helpdesk\Mail\MailRequest;
use App\Model\helpdesk\Agent\Department;
use App\Model\helpdesk\Email\Emails;
use App\Model\helpdesk\Manage\Help_topic;
use App\Model\helpdesk\Settings\Email;
use App\Model\helpdesk\Ticket\Ticket_Priority;
// classes
use App\Model\helpdesk\Utility\MailboxProtocol;
use Crypt;
// classes
use Exception;
use Lang;
use App\Http\Requests\helpdesk\Mail\MailRequest;
use App\Http\Controllers\Admin\MailFetch as Fetch;
/**
* ======================================
@@ -27,14 +27,15 @@ use App\Http\Controllers\Admin\MailFetch as Fetch;
*
* @author Ladybird <info@ladybirdweb.com>
*/
class EmailsController extends Controller {
class EmailsController extends Controller
{
/**
* Defining constructor variables.
*
* @return type
*/
public function __construct() {
public function __construct()
{
$this->middleware('auth');
$this->middleware('roles');
}
@@ -46,7 +47,8 @@ class EmailsController extends Controller {
*
* @return type view
*/
public function index(Emails $email) {
public function index(Emails $email)
{
try {
// fetch all the emails from emails table
$emails = $email->get();
@@ -67,7 +69,8 @@ class EmailsController extends Controller {
*
* @return type Response
*/
public function create(Department $department, Help_topic $help, Ticket_Priority $ticket_priority, MailboxProtocol $mailbox_protocol) {
public function create(Department $department, Help_topic $help, Ticket_Priority $ticket_priority, MailboxProtocol $mailbox_protocol)
{
try {
// fetch all the departments from the department table
$departments = $department->get();
@@ -96,7 +99,8 @@ class EmailsController extends Controller {
*
* @return int
*/
public function validatingEmailSettings(MailRequest $request, $id = "") {
public function validatingEmailSettings(MailRequest $request, $id = '')
{
//dd($request->all());
try {
$service_request = $request->except('sending_status', '_token', 'email_address', 'email_name', 'password', 'department', 'priority', 'help_topic', 'fetching_protocol', 'fetching_host', 'fetching_port', 'fetching_encryption', 'imap_authentication', 'sending_protocol', 'sending_host', 'sending_port', 'sending_encryption', 'smtp_authentication', 'internal_notes', '_wysihtml5_mode', 'code');
@@ -114,8 +118,10 @@ class EmailsController extends Controller {
}
if ($send == 1 && $fetch == 1) {
$this->store($request, $service_request, $id);
return $this->jsonResponse('success', Lang::get('lang.success'));
}
return $this->validateEmailError($send, $fetch);
} catch (Exception $ex) {
$message = $ex->getMessage();
@@ -123,11 +129,13 @@ class EmailsController extends Controller {
$message = imap_last_error();
}
loging('mail-config', $message);
return $this->jsonResponse('fails', $message);
}
}
public function validateEmailError($out, $in) {
public function validateEmailError($out, $in)
{
if ($out !== 1) {
return $this->jsonResponse('fails', Lang::get('lang.outgoing_email_connection_failed'));
}
@@ -136,13 +144,15 @@ class EmailsController extends Controller {
}
}
public function jsonResponse($type, $message) {
public function jsonResponse($type, $message)
{
if ($type == 'fails') {
$result = ['fails' => $message];
}
if ($type == 'success') {
$result = ['success' => $message];
}
return response()->json(compact('result'));
}
@@ -154,9 +164,10 @@ class EmailsController extends Controller {
*
* @return type Redirect
*/
public function store($request, $service_request = [], $id = "") {
public function store($request, $service_request = [], $id = '')
{
$email = new Emails();
if ($id !== "") {
if ($id !== '') {
$email = $email->find($id);
}
@@ -208,7 +219,7 @@ class EmailsController extends Controller {
if ($request->input('fetching_status')) {
$this->fetch($email);
}
if ($id === "") {
if ($id === '') {
// Creating a default system email as the first email is inserted to the system
$email_settings = Email::where('id', '=', '1')->first();
$email_settings->sys_email = $email->id;
@@ -222,10 +233,12 @@ class EmailsController extends Controller {
if ($request->input('fetching_status')) {
$this->fetch($email);
}
return 1;
}
public function checkMail($request) {
public function checkMail($request)
{
$mailservice_id = $request->input('sending_protocol');
$driver = $this->getDriver($mailservice_id);
$username = $request->input('email_address');
@@ -243,10 +256,12 @@ class EmailsController extends Controller {
$transport->setPassword($password);
$mailer = \Swift_Mailer::newInstance($transport);
$mailer->getTransport()->start();
return 1;
}
public function sendDiagnoEmail($request) {
public function sendDiagnoEmail($request)
{
$mailservice_id = $request->input('sending_protocol');
$driver = $this->getDriver($mailservice_id);
$username = $request->input('email_address');
@@ -260,17 +275,19 @@ class EmailsController extends Controller {
$this->emailService($driver, $service_request);
$this->setMailConfig($driver, $username, $name, $password, $enc, $host, $port);
$controller = new \App\Http\Controllers\Common\PhpMailController();
$subject = "test";
$data = "test";
$subject = 'test';
$data = 'test';
//dd(\Config::get('mail'),\Config::get('services'));
$send = $controller->laravelMail($username, $name, $subject, $data, [], []);
return $send;
}
public function setMailConfig($driver, $username, $name, $password, $enc, $host, $port) {
public function setMailConfig($driver, $username, $name, $password, $enc, $host, $port)
{
$configs = [
'username' => $username,
'from' => ['address' => $username, 'name' => $name,],
'from' => ['address' => $username, 'name' => $name],
'password' => $password,
'encryption' => $enc,
'host' => $host,
@@ -288,13 +305,15 @@ class EmailsController extends Controller {
}
}
public function getDriver($driver_id) {
$short = "";
public function getDriver($driver_id)
{
$short = '';
$email_drivers = new \App\Model\MailJob\MailService();
$email_driver = $email_drivers->find($driver_id);
if ($email_driver) {
$short = $email_driver->short_name;
}
return $short;
}
@@ -310,7 +329,8 @@ class EmailsController extends Controller {
*
* @return type Response
*/
public function edit($id, Department $department, Help_topic $help, Emails $email, Ticket_Priority $ticket_priority, MailboxProtocol $mailbox_protocol) {
public function edit($id, Department $department, Help_topic $help, Emails $email, Ticket_Priority $ticket_priority, MailboxProtocol $mailbox_protocol)
{
try {
$sys_email = \DB::table('settings_email')->select('sys_email')->where('id', '=', 1)->first();
// dd($sys_email);
@@ -345,7 +365,8 @@ class EmailsController extends Controller {
*
* @return int
*/
public function validatingEmailSettingsUpdate($id, MailRequest $request) {
public function validatingEmailSettingsUpdate($id, MailRequest $request)
{
try {
return $this->validatingEmailSettings($request, $id);
} catch (Exception $ex) {
@@ -369,9 +390,9 @@ class EmailsController extends Controller {
*
* @return type Response
*/
public function update($id, $request) {
public function update($id, $request)
{
try {
if ($request->sys_email == 'on') {
$system = \DB::table('settings_email')
->where('id', '=', 1)
@@ -397,7 +418,8 @@ class EmailsController extends Controller {
*
* @return type Redirect
*/
public function destroy($id, Emails $email) {
public function destroy($id, Emails $email)
{
// fetching the details on the basis of the $id passed to the function
$default_system_email = Email::where('id', '=', '1')->first();
if ($default_system_email->sys_email) {
@@ -411,6 +433,7 @@ class EmailsController extends Controller {
$emails = $email->whereId($id)->first();
// checking if deleting the email is success or if it's carrying any dependencies
$emails->delete();
return redirect('emails')->with('success', Lang::get('lang.email_deleted_sucessfully'));
} catch (Exception $e) {
// returns if the try fails
@@ -425,7 +448,8 @@ class EmailsController extends Controller {
*
* @return type int
*/
public function getImapStream($request) {
public function getImapStream($request)
{
$host = $request->input('fetching_host');
$port = $request->input('fetching_port');
$service = $request->input('fetching_protocol');
@@ -435,7 +459,7 @@ class EmailsController extends Controller {
$password = $request->input('password');
$server = new Fetch($host, $port, $service);
//$server->setFlag('novalidate-cert');
if ($encryption != "") {
if ($encryption != '') {
$server->setFlag($encryption);
}
if (!$validate) {
@@ -446,6 +470,7 @@ class EmailsController extends Controller {
$server->setAuthentication($username, $password);
$server->getImapStream();
return 1;
}
@@ -456,7 +481,8 @@ class EmailsController extends Controller {
*
* @return type int
*/
public function checkImapStream($imap_stream) {
public function checkImapStream($imap_stream)
{
$check_imap_stream = imap_check($imap_stream);
if ($check_imap_stream) {
$imap_stream = 1;
@@ -474,7 +500,8 @@ class EmailsController extends Controller {
*
* @return int
*/
public function getSmtp($request) {
public function getSmtp($request)
{
$sending_status = $request->input('sending_status');
// cheking for the sending protocol
if ($request->input('sending_protocol') == 'smtp') {
@@ -523,7 +550,8 @@ class EmailsController extends Controller {
*
* @return type string or null
*/
public function departmentValue($dept) {
public function departmentValue($dept)
{
if ($dept) {
$email_department = $dept;
} else {
@@ -540,7 +568,8 @@ class EmailsController extends Controller {
*
* @return type string or null
*/
public function priorityValue($priority) {
public function priorityValue($priority)
{
if ($priority) {
$email_priority = $priority;
} else {
@@ -557,7 +586,8 @@ class EmailsController extends Controller {
*
* @return type string or null
*/
public function helpTopicValue($help_topic) {
public function helpTopicValue($help_topic)
{
if ($help_topic) {
$email_help_topic = $help_topic;
} else {
@@ -567,18 +597,20 @@ class EmailsController extends Controller {
return $email_help_topic;
}
public function emailService($service, $value = []) {
public function emailService($service, $value = [])
{
switch ($service) {
case "mailgun":
case 'mailgun':
$this->setServiceConfig($service, $value);
case "mandrill":
case 'mandrill':
$this->setServiceConfig($service, $value);
case "ses":
case 'ses':
$this->setServiceConfig($service, $value);
}
}
public function setServiceConfig($service, $value) {
public function setServiceConfig($service, $value)
{
//dd($service);
if (count($value) > 0) {
foreach ($value as $k => $v) {
@@ -587,7 +619,8 @@ class EmailsController extends Controller {
}
}
public function saveMailService($emailid, $request, $driver) {
public function saveMailService($emailid, $request, $driver)
{
$mail_service = new \App\Model\MailJob\FaveoMail();
$mails = $mail_service->where('email_id', $emailid)->get();
if (count($request) > 0) {
@@ -605,7 +638,8 @@ class EmailsController extends Controller {
}
}
public function readMails() {
public function readMails()
{
$PhpMailController = new \App\Http\Controllers\Common\PhpMailController();
$NotificationController = new \App\Http\Controllers\Common\NotificationController();
$TicketController = new \App\Http\Controllers\Agent\helpdesk\TicketController($PhpMailController, $NotificationController);
@@ -618,7 +652,8 @@ class EmailsController extends Controller {
$controller->readmails($emails, $settings_email, $system, $ticket);
}
public function fetch($email) {
public function fetch($email)
{
$PhpMailController = new \App\Http\Controllers\Common\PhpMailController();
$NotificationController = new \App\Http\Controllers\Common\NotificationController();
$TicketController = new \App\Http\Controllers\Agent\helpdesk\TicketController($PhpMailController, $NotificationController);
@@ -626,5 +661,4 @@ class EmailsController extends Controller {
$controller = new \App\Http\Controllers\Agent\helpdesk\MailController($TicketWorkflowController);
$controller->fetch($email);
}
}

View File

@@ -9,13 +9,13 @@ use App\Model\helpdesk\Form\Fields;
use App\Model\helpdesk\Form\Forms;
use App\Model\helpdesk\Manage\Help_topic;
// Request
use Illuminate\Http\Request;
use Exception;
// Class
use Form;
use Illuminate\Http\Request;
use Input;
use Lang;
use Redirect;
use Exception;
use Form;
/**
* FormController
@@ -23,12 +23,13 @@ use Form;
*
* @author Ladybird <info@ladybirdweb.com>
*/
class FormController extends Controller {
class FormController extends Controller
{
private $fields;
private $forms;
public function __construct(Fields $fields, Forms $forms) {
public function __construct(Fields $fields, Forms $forms)
{
$this->fields = $fields;
$this->forms = $forms;
$this->middleware('auth', [
@@ -43,7 +44,7 @@ class FormController extends Controller {
'jqueryScript',
'jqueryCheckboxScript',
'jquerySelectScript',
]
],
]);
}
@@ -52,7 +53,8 @@ class FormController extends Controller {
*
* @return type
*/
public function home() {
public function home()
{
return view('forms.home');
}
@@ -63,7 +65,8 @@ class FormController extends Controller {
*
* @return Response
*/
public function index(Forms $forms) {
public function index(Forms $forms)
{
try {
return view('themes.default1.admin.helpdesk.manage.form.index', compact('forms'));
} catch (Exception $e) {
@@ -76,7 +79,8 @@ class FormController extends Controller {
*
* @return Response
*/
public function create() {
public function create()
{
try {
return view('themes.default1.admin.helpdesk.manage.form.form');
} catch (Exception $e) {
@@ -91,13 +95,15 @@ class FormController extends Controller {
*
* @return Response
*/
public function show($id) {
public function show($id)
{
try {
$forms = new Forms();
$form = $forms->find($id);
//dd($form);
if ($form) {
$fields = $form->fields();
return view('themes.default1.admin.helpdesk.manage.form.preview', compact('form', 'fields'));
}
throw new Exception("Sorry we can't find your request");
@@ -111,7 +117,8 @@ class FormController extends Controller {
*
* @return Response
*/
public function store(Request $request) {
public function store(Request $request)
{
$this->validate($request, [
'formname' => 'required|unique:custom_forms,formname',
'label.*' => 'required',
@@ -144,6 +151,7 @@ class FormController extends Controller {
return Redirect::back()->with('success', Lang::get('lang.successfully_created_form'));
} catch (Exception $ex) {
dd($ex);
return redirect()->back()->with('fails', $ex->getMessage());
}
}
@@ -158,7 +166,8 @@ class FormController extends Controller {
*
* @return type redirect
*/
public function delete($id, Forms $forms, Fields $field, Help_topic $help_topic) {
public function delete($id, Forms $forms, Fields $field, Help_topic $help_topic)
{
$fields = $field->where('forms_id', $id)->get();
$help_topics = $help_topic->where('custom_form', '=', $id)->get();
foreach ($help_topics as $help_topic) {
@@ -174,7 +183,8 @@ class FormController extends Controller {
return redirect()->back()->with('success', Lang::get('lang.form_deleted_successfully'));
}
public function edit($id) {
public function edit($id)
{
try {
$forms = new Forms();
$form = $forms->find($id);
@@ -187,12 +197,12 @@ class FormController extends Controller {
}
throw new Exception("Sorry we can't find your request");
} catch (Exception $ex) {
return redirect()->back()->with('fails', $ex->getMessage());
}
}
public function addChildForm($id) {
public function addChildForm($id)
{
try {
$forms = new Forms();
$form = $forms->find($id);
@@ -205,12 +215,12 @@ class FormController extends Controller {
}
throw new Exception("Sorry we can't find your request");
} catch (Exception $ex) {
return redirect()->back()->with('fails', $ex->getMessage());
}
}
public function update($id, Request $request) {
public function update($id, Request $request)
{
$this->validate($request, [
'formname' => 'required|unique:custom_forms,formname,'.$id,
'label.*' => 'required',
@@ -224,7 +234,7 @@ class FormController extends Controller {
$form = new Forms();
$forms = $form->find($id);
if (!$forms) {
throw new Exception("Sorry we can not find your request");
throw new Exception('Sorry we can not find your request');
}
$forms->formname = Input::get('formname');
$forms->save();
@@ -249,15 +259,18 @@ class FormController extends Controller {
$field_id = $field->id;
$this->createValues($field_id, Input::get('value')[$i], null, $name);
}
return redirect()->back()->with('success', 'updated');
} catch (Exception $ex) {
dd($ex);
return redirect()->back()->with('fails', $ex->getMessage());
}
}
public function renderForm($formid) {
$html = "";
public function renderForm($formid)
{
$html = '';
$forms = new Forms();
$form = $forms->find($formid);
if ($form) {
@@ -266,54 +279,58 @@ class FormController extends Controller {
$html .= self::getForm($field);
}
}
return self::requiredStyle().$html;
}
public static function getType($type) {
public static function getType($type)
{
switch ($type) {
case "select":
return "select";
case "text":
return "text";
case "email":
return "email";
case "textarea":
return "textarea";
case "select":
return "select";
case "radio":
return "radio";
case "checkbox":
return "checkbox";
case "hidden":
return "hidden";
case "password":
return "password";
case 'select':
return 'select';
case 'text':
return 'text';
case 'email':
return 'email';
case 'textarea':
return 'textarea';
case 'select':
return 'select';
case 'radio':
return 'radio';
case 'checkbox':
return 'checkbox';
case 'hidden':
return 'hidden';
case 'password':
return 'password';
}
}
public static function getAttribute($type) {
public static function getAttribute($type)
{
switch ($type) {
case "select":
case 'select':
return "null,['class'=>'form-control']";
case "text":
case 'text':
return "['class'=>'form-control']";
case "email":
case 'email':
return "['class'=>'form-control']";
case "textarea":
case 'textarea':
return "['class'=>'form-control']";
case "radio":
return "";
case "checkbox":
return "";
case "hidden":
return "";
case "password":
case 'radio':
return '';
case 'checkbox':
return '';
case 'hidden':
return '';
case 'password':
return "['class'=>'form-control']";
}
}
public static function getForm($field) {
public static function getForm($field)
{
$required = false;
$required_class = self::requiredClass($field->required);
if ($field->required === '1') {
@@ -322,32 +339,33 @@ class FormController extends Controller {
$type = $field->type;
$field_type = self::getType($type);
switch ($field_type) {
case "select":
case 'select':
return self::selectForm($field_type, $field, $required, $required_class);
case "text":
case 'text':
return Form::label($field->label, $field->label, ['class' => $required_class]).
Form::$field_type($field->name, NULL, ['class' => "form-control $field->id", 'id' => $field->id, 'required' => $required]);
case "email":
Form::$field_type($field->name, null, ['class' => "form-control $field->id", 'id' => $field->id, 'required' => $required]);
case 'email':
return Form::label($field->label, $field->label, ['class' => $required_class]).
Form::$field_type($field->name, NULL, ['class' => "form-control $field->id", 'id' => $field->id, 'required' => $required]);
case "password":
Form::$field_type($field->name, null, ['class' => "form-control $field->id", 'id' => $field->id, 'required' => $required]);
case 'password':
return Form::label($field->label, $field->label, ['class' => $required_class]).
Form::$field_type($field->name, ['class' => "form-control $field->id", 'id' => $field->id, 'required' => $required]);
case "textarea":
case 'textarea':
return Form::label($field->label, $field->label, ['class' => $required_class]).
Form::$field_type($field->name, NULL, ['class' => "form-control $field->id", 'id' => $field->id, 'required' => $required]);
case "radio":
Form::$field_type($field->name, null, ['class' => "form-control $field->id", 'id' => $field->id, 'required' => $required]);
case 'radio':
return self::radioForm($field_type, $field, $required, $required_class);
case "checkbox":
case 'checkbox':
return self::checkboxForm($field_type, $field, $required, $required_class);
case "hidden":
return Form::$field_type($field->name, NULL, ['id' => $field->id]);
case 'hidden':
return Form::$field_type($field->name, null, ['id' => $field->id]);
}
}
public function createValues($fieldid, $values, $childid = NULL, $key = "") {
public function createValues($fieldid, $values, $childid = null, $key = '')
{
if ($values) {
$values_array = explode(',', $values);
$field_values = new \App\Model\helpdesk\Form\FieldValue();
@@ -370,7 +388,8 @@ class FormController extends Controller {
}
}
public function addChild($fieldid, Request $request) {
public function addChild($fieldid, Request $request)
{
$ids = $request->except('_token');
try {
foreach ($ids as $valueid => $formid) {
@@ -384,37 +403,41 @@ class FormController extends Controller {
//}
}
}
return redirect()->back()->with('success', 'Updated');
} catch (Exception $ex) {
return redirect()->back()->with('fails', $ex->getMessage());
}
}
public function renderChild(Request $request) {
public function renderChild(Request $request)
{
self::setSession();
$render = "";
$render = '';
$value = $request->input('valueid');
$fieldid = $request->input('fieldid');
$field_values = new \App\Model\helpdesk\Form\FieldValue();
$field_value = $field_values->where('field_id', $fieldid)->where('field_value', $value)->first();
$child = "";
$child = '';
if ($field_value) {
$child = $field_value->child_id;
}
if ($child !== "") {
if ($child !== '') {
$render = $this->renderForm($child);
}
return $render;
}
public static function jqueryScript($value, $fieldid, $fieldname, $type = "", $index = "") {
if ($type == "select") {
public static function jqueryScript($value, $fieldid, $fieldname, $type = '', $index = '')
{
if ($type == 'select') {
return self::jquerySelectScript($fieldid);
}
if ($type == "checkbox") {
if ($type == 'checkbox') {
return self::jqueryCheckboxScript($fieldid, $index);
}
return '<script>
$("#'.str_slug($value).'").on("change", function () {
var valueid = $("#'.str_slug($value).'").val();
@@ -437,7 +460,8 @@ class FormController extends Controller {
</script>';
}
public static function jqueryCheckboxScript($fieldid, $index) {
public static function jqueryCheckboxScript($fieldid, $index)
{
$session = self::getSession();
$fields = new Fields();
$field = $fields->find($fieldid);
@@ -471,7 +495,8 @@ class FormController extends Controller {
}
}
public static function jquerySelectScript($fieldid) {
public static function jquerySelectScript($fieldid)
{
$fields = new Fields();
$field = $fields->find($fieldid);
$session = self::getSession();
@@ -505,55 +530,60 @@ class FormController extends Controller {
}
}
public static function selectForm($field_type, $field, $required, $required_class) {
public static function selectForm($field_type, $field, $required, $required_class)
{
$session = self::getSession();
$script = self::jqueryScript($field_value = "", $field->id, $field->name, $field_type);
$form_hidden = Form::hidden('fieldid[]', $field->id, ['id' => "hidden" . $session . $field->id]) . Form::label($field->label, $field->label, ['class' => $required_class]);
$select = Form::$field_type($field->name, ['' => 'Select', 'Selects' => self::removeUnderscoreFromDB($field->values()->lists('field_value', 'field_value')->toArray())], null, ['class' => "form-control $session$field->id", 'id' => $session . $field->id, 'required' => $required]) . "</br>";
$script = self::jqueryScript($field_value = '', $field->id, $field->name, $field_type);
$form_hidden = Form::hidden('fieldid[]', $field->id, ['id' => 'hidden'.$session.$field->id]).Form::label($field->label, $field->label, ['class' => $required_class]);
$select = Form::$field_type($field->name, ['' => 'Select', 'Selects' => self::removeUnderscoreFromDB($field->values()->lists('field_value', 'field_value')->toArray())], null, ['class' => "form-control $session$field->id", 'id' => $session.$field->id, 'required' => $required]).'</br>';
$html = $script.$form_hidden.$select;
$response_div = "<div id=" . $session . $field->name . "></div>";
$response_div = '<div id='.$session.$field->name.'></div>';
return $html.$response_div;
}
public static function radioForm($field_type, $field, $required, $required_class) {
$radio = "";
$html = "";
public static function radioForm($field_type, $field, $required, $required_class)
{
$radio = '';
$html = '';
$values = $field->values()->lists('field_value')->toArray();
if (count($values) > 0) {
foreach ($values as $field_value) {
$script = self::jqueryScript($field_value, $field->id, $field->name, $field_type);
$radio .= "<div>" . Form::hidden('fieldid[]', $field->id, ['id' => $field->id . str_slug($field_value)]);
$radio .= Form::$field_type($field->name, $field_value, NULL, ['class' => "$field->id", 'id' => str_slug($field_value), 'required' => $required]) . $script . "<span> " . removeUnderscore($field_value) . "</span></div>";
$radio .= '<div>'.Form::hidden('fieldid[]', $field->id, ['id' => $field->id.str_slug($field_value)]);
$radio .= Form::$field_type($field->name, $field_value, null, ['class' => "$field->id", 'id' => str_slug($field_value), 'required' => $required]).$script.'<span> '.removeUnderscore($field_value).'</span></div>';
}
$html = Form::label($field->label, $field->label, ['class' => $required_class]) . "</br>" . $radio . "<div id=" . $field->name . "></br></div>";
$html = Form::label($field->label, $field->label, ['class' => $required_class]).'</br>'.$radio.'<div id='.$field->name.'></br></div>';
}
return $html;
}
public static function checkboxForm($field_type, $field, $required, $required_class) {
public static function checkboxForm($field_type, $field, $required, $required_class)
{
$session = self::getSession();
$checkbox = "";
$html = "";
$checkbox = '';
$html = '';
$values = $field->values()->lists('field_value')->toArray();
if (count($values) > 0) {
$i = 1;
foreach ($values as $field_value) {
$script = self::jqueryScript($field_value, $field->id, $field->name, $field_type, $i);
$checkbox .= Form::hidden('fieldid[]', $field->id, ['id' => 'f'.$session.$i]);
$checkbox .= Form::$field_type($field->name, $field_value, NULL, ['class' => "$field->id", 'id' => $session . $i, 'required' => $required]);
$checkbox .= "<span> " . removeUnderscore($field_value) . "</span>";
$checkbox .= Form::$field_type($field->name, $field_value, null, ['class' => "$field->id", 'id' => $session.$i, 'required' => $required]);
$checkbox .= '<span> '.removeUnderscore($field_value).'</span>';
//$checkbox .="</br>";
$checkbox .="<div>" . $script . "<div id=div" . $session . $field_value . "></div></div>";
$checkbox .= '<div>'.$script.'<div id=div'.$session.$field_value.'></div></div>';
$i++;
}
$html = Form::label($field->label, $field->label, ['class' => $required_class]) . "</br>" . $checkbox;
$html = Form::label($field->label, $field->label, ['class' => $required_class]).'</br>'.$checkbox;
}
return $html;
}
public static function requiredStyle() {
public static function requiredStyle()
{
$style = "<style>
.required:after {
color: #e32 !important;
@@ -561,39 +591,46 @@ class FormController extends Controller {
display:inline !important;
}
</style>";
return $style;
}
public static function requiredClass($required) {
$class = "";
public static function requiredClass($required)
{
$class = '';
if ($required === '1') {
$class = "required";
$class = 'required';
}
return $class;
}
public static function setSession() {
public static function setSession()
{
$form = self::getSession();
$form++;
\Session::set('fromid', $form);
}
public static function getSession() {
public static function getSession()
{
$form = 0;
if (\Session::has('fromid')) {
$form = \Session::get('fromid');
}
return $form;
}
public static function removeUnderscoreFromDB($array) {
public static function removeUnderscoreFromDB($array)
{
$result = [];
if (is_array($array) && count($array) > 0) {
foreach ($array as $key => $value) {
$result[$key] = removeUnderscore($value);
}
}
return $result;
}
}

View File

@@ -88,6 +88,7 @@ class HelptopicController extends Controller
$agents = $agent->where('role', '=', 'agent')->get();
$slas = $sla->get();
$priority = Ticket_Priority::where('status', '=', 1)->get();
return view('themes.default1.admin.helpdesk.manage.helptopic.create', compact('priority', 'departments', 'topics', 'forms', 'agents', 'slas'));
} catch (Exception $e) {
return redirect()->back()->with('fails', $e->getMessage());

View File

@@ -8,7 +8,6 @@ use App;
use App\Http\Controllers\Controller;
//supports
use App\Http\Requests;
use Cache;
use Config;
//classes
use File;
@@ -17,8 +16,8 @@ use Illuminate\Support\Facades\Redirect;
use Illuminate\Support\Facades\Session;
use Input;
use Lang;
use Validator;
use UnAuth;
use Validator;
/**
* SlaController.
@@ -53,7 +52,6 @@ class LanguageController extends Controller
} else {
return \Redirect::back();
}
}
/**
@@ -93,7 +91,6 @@ class LanguageController extends Controller
} else {
return Config::get('languages.'.$model);
}
})
->addColumn('id', function ($model) {
return $model;
@@ -239,6 +236,7 @@ class LanguageController extends Controller
}
} else {
Session::flash('fails', Lang::get('lang.lang-fallback-lang'));
return redirect('languages');
}
} else {
@@ -247,5 +245,4 @@ class LanguageController extends Controller
return redirect('languages');
}
}
}

View File

@@ -5,61 +5,33 @@ namespace App\Http\Controllers\Admin\helpdesk;
// controllers
use App\Http\Controllers\Common\NotificationController;
use App\Http\Controllers\Common\PhpMailController;
use App\Http\Controllers\Common\FileuploadController;
use App\Http\Controllers\Controller;
// requests
use App\Http\Requests\helpdesk\CreateTicketRequest;
use App\Http\Requests\helpdesk\TicketRequest;
use App\Http\Requests\helpdesk\PriorityRequest;
// models
use App\Model\helpdesk\Agent\Teams;
use App\Model\helpdesk\Email\Emails;
use App\Model\helpdesk\Agent\Department;
use App\Model\helpdesk\Form\Fields;
use App\Model\helpdesk\Manage\Help_topic;
use App\Model\helpdesk\Manage\Sla_plan;
use App\Model\helpdesk\Settings\CommonSettings;
use App\Model\helpdesk\Notification\Notification;
use App\Model\helpdesk\Notification\UserNotification;
use App\Model\helpdesk\Settings\Alert;
use App\Model\helpdesk\Settings\Company;
use App\Model\helpdesk\Settings\Email;
use App\Model\helpdesk\Settings\System;
use App\Model\helpdesk\Ticket\Ticket_attachments;
use App\Model\helpdesk\Ticket\Ticket_Collaborator;
use App\Model\helpdesk\Ticket\Ticket_Form_Data;
use App\Model\helpdesk\Ticket\Ticket_Priority;
use App\Model\helpdesk\Ticket\Ticket_source;
use App\Model\helpdesk\Ticket\Ticket_Status;
use App\Model\helpdesk\Ticket\Ticket_Thread;
use App\Model\helpdesk\Ticket\Tickets;
use App\Model\helpdesk\Utility\CountryCode;
use App\Model\helpdesk\Utility\Date_time_format;
use App\Model\helpdesk\Utility\Timezones;
use App\User;
use Auth;
use DB;
use Exception;
use ForceUTF8\Encoding;
use GeoIP;
// classes
use Hash;
use Illuminate\Http\Request;
use Illuminate\support\Collection;
use Input;
use Lang;
use Mail;
use PDF;
use UTC;
/**
* TicketController.
*
* @author Ladybird <info@ladybirdweb.com>
*/
class PriorityController extends Controller {
public function __construct(PhpMailController $PhpMailController, NotificationController $NotificationController) {
class PriorityController extends Controller
{
public function __construct(PhpMailController $PhpMailController, NotificationController $NotificationController)
{
$this->PhpMailController = $PhpMailController;
$this->NotificationController = $NotificationController;
$this->middleware('auth');
@@ -70,18 +42,21 @@ class PriorityController extends Controller {
*
* @return type response
*/
public function priorityIndex() {
public function priorityIndex()
{
$user_status = CommonSettings::where('option_name', '=', 'user_priority')->first();
// dd( $user_status);
return view('themes.default1.admin.helpdesk.manage.ticket_priority.index', compact('user_status'));
}
/**
* Show the Inbox ticket list page.
*
* @return type response
*/
public function userPriorityIndex(Request $request) {
public function userPriorityIndex(Request $request)
{
try {
$user_status = $request->user_settings_priority;
@@ -94,10 +69,10 @@ class PriorityController extends Controller {
}
/**
*
* @return type
*/
public function priorityIndex1() {
public function priorityIndex1()
{
try {
$ticket = new Ticket_Priority();
$tickets = $ticket->select('priority_id', 'priority', 'priority_desc', 'priority_color', 'status', 'is_default', 'ispublic')->get();
@@ -113,14 +88,15 @@ class PriorityController extends Controller {
} elseif ($model->status == 0) {
Ticket_Priority::where('priority_id', '=', '$priority_id')
->update(['priority_id' => '']);
return "<a style='color:red'>inactive</a>";
}
})
->addColumn('action', function ($model) {
if ($model->is_default > 0) {
return "<a href=" . url('ticket/priority/' . $model->priority_id . '/edit') . " class='btn btn-info btn-xs' disabled='disabled'>Edit</a>&nbsp;<a href=" . url('ticket/priority/' . $model->priority_id . '/destroy') . " class='btn btn-warning btn-info btn-xs' disabled='disabled' > delete </a>";
return '<a href='.url('ticket/priority/'.$model->priority_id.'/edit')." class='btn btn-info btn-xs' disabled='disabled'>Edit</a>&nbsp;<a href=".url('ticket/priority/'.$model->priority_id.'/destroy')." class='btn btn-warning btn-info btn-xs' disabled='disabled' > delete </a>";
} else {
return "<a href=" . url('ticket/priority/' . $model->priority_id . '/edit') . " class='btn btn-info btn-xs'>Edit</a>&nbsp;<a class='btn btn-danger btn-xs' onclick='confirmDelete(" . $model->priority_id . ")'>Delete </a>";
return '<a href='.url('ticket/priority/'.$model->priority_id.'/edit')." class='btn btn-info btn-xs'>Edit</a>&nbsp;<a class='btn btn-danger btn-xs' onclick='confirmDelete(".$model->priority_id.")'>Delete </a>";
}
})
->searchColumns('priority')
@@ -132,42 +108,45 @@ class PriorityController extends Controller {
}
/**
*
* @return type
*/
public function priorityCreate() {
public function priorityCreate()
{
return view('themes.default1.admin.helpdesk.manage.ticket_priority.create');
}
public function priorityCreate1(PriorityRequest $request) {
$tk_priority = new Ticket_Priority;
public function priorityCreate1(PriorityRequest $request)
{
$tk_priority = new Ticket_Priority();
$tk_priority->priority = $request->priority;
$tk_priority->status = $request->status;
$tk_priority->priority_desc = $request->priority_desc;
$tk_priority->priority_color = $request->priority_color;
$tk_priority->ispublic = $request->ispublic;
$tk_priority->save();
return \Redirect::route('priority.index')->with('success', Lang::get('lang.priority_successfully_created'));
}
/**
*
* @param type $priority_id
*
* @return type
*/
public function priorityEdit($priority_id) {
public function priorityEdit($priority_id)
{
$tk_priority = Ticket_Priority::wherepriority_id($priority_id)->first();
return view('themes.default1.admin.helpdesk.manage.ticket_priority.edit', compact('tk_priority'));
}
/**
*
* @param PriorityRequest $request
*
* @return type
*/
public function priorityEdit1(PriorityRequest $request) {
public function priorityEdit1(PriorityRequest $request)
{
$priority_id = $request->priority_id;
$tk_priority = Ticket_Priority::findOrFail($priority_id);
$tk_priority->priority = $request->priority;
@@ -182,16 +161,17 @@ class PriorityController extends Controller {
Ticket_Priority::where('priority_id', '=', $priority_id)
->update(['is_default' => 1]);
}
return \Redirect::route('priority.index')->with('success', (Lang::get('lang.priority_successfully_updated')));
}
/**
*
* @param type $priority_id
*
* @return type
*/
public function destroy($priority_id) {
public function destroy($priority_id)
{
$default_priority = Ticket_Priority::where('is_default', '>', '0')->first();
// dd($default_priority->is_default);
$topic = DB::table('help_topic')->where('priority', '=', $priority_id)->update(['priority' => $default_priority->is_default]);
@@ -212,5 +192,4 @@ class PriorityController extends Controller {
return \Redirect::route('priority.index')->with('success', (Lang::get('lang.delete_successfully')));
}
}

View File

@@ -7,10 +7,11 @@ use App\Http\Controllers\Controller;
// requests
use App\Http\Requests\helpdesk\CompanyRequest;
use App\Http\Requests\helpdesk\EmailRequest;
use App\Http\Requests\helpdesk\Job\TaskRequest;
use App\Http\Requests\helpdesk\RatingUpdateRequest;
use App\Http\Requests\helpdesk\StatusRequest;
use App\Http\Requests\helpdesk\SystemRequest;
// models
use App\Http\Requests\helpdesk\SystemRequest;
use App\Model\helpdesk\Agent\Department;
use App\Model\helpdesk\Email\Emails;
use App\Model\helpdesk\Email\Template;
@@ -19,9 +20,10 @@ use App\Model\helpdesk\Manage\Sla_plan;
use App\Model\helpdesk\Notification\UserNotification;
use App\Model\helpdesk\Ratings\Rating;
use App\Model\helpdesk\Settings\Alert;
use App\Model\helpdesk\Settings\CommonSettings;
use App\Model\helpdesk\Settings\Company;
use App\Model\helpdesk\Settings\Followup;
use App\Model\helpdesk\Settings\Email;
use App\Model\helpdesk\Settings\Followup;
use App\Model\helpdesk\Settings\Responder;
use App\Model\helpdesk\Settings\System;
use App\Model\helpdesk\Settings\Ticket;
@@ -31,30 +33,29 @@ use App\Model\helpdesk\Utility\Date_time_format;
use App\Model\helpdesk\Utility\Time_format;
use App\Model\helpdesk\Utility\Timezones;
use App\Model\helpdesk\Workflow\WorkflowClose;
use App\Model\helpdesk\Settings\CommonSettings;
use DateTime;
// classes
use DateTime;
use DB;
use Exception;
use File;
use Illuminate\Http\Request;
use Input;
use Lang;
use App\Http\Requests\helpdesk\Job\TaskRequest;
/**
* SettingsController.
*
* @author Ladybird <info@ladybirdweb.com>
*/
class SettingsController extends Controller {
class SettingsController extends Controller
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct() {
public function __construct()
{
// $this->smtp();
$this->middleware('auth');
$this->middleware('roles');
@@ -68,7 +69,8 @@ class SettingsController extends Controller {
*
* @return Response
*/
public function getcompany(Company $company) {
public function getcompany(Company $company)
{
try {
/* fetch the values of company from company table */
$companys = $company->whereId('1')->first();
@@ -88,7 +90,8 @@ class SettingsController extends Controller {
*
* @return Response
*/
public function postcompany($id, Company $company, CompanyRequest $request) {
public function postcompany($id, Company $company, CompanyRequest $request)
{
/* fetch the values of company request */
$companys = $company->whereId('1')->first();
if (Input::file('logo')) {
@@ -117,7 +120,8 @@ class SettingsController extends Controller {
*
* @return type string
*/
public function deleteLogo() {
public function deleteLogo()
{
$path = $_GET['data1']; //get file path of logo image
if (!unlink($path)) {
return 'false';
@@ -144,7 +148,8 @@ class SettingsController extends Controller {
*
* @return type Response
*/
public function getsystem(System $system, Department $department, Timezones $timezone, Date_format $date, Date_time_format $date_time, Time_format $time, CommonSettings $common_settings) {
public function getsystem(System $system, Department $department, Timezones $timezone, Date_format $date, Date_time_format $date_time, Time_format $time, CommonSettings $common_settings)
{
try {
/* fetch the values of system from system table */
$systems = $system->whereId('1')->first();
@@ -178,7 +183,8 @@ class SettingsController extends Controller {
*
* @return type Response
*/
public function postsystem($id, System $system, SystemRequest $request) {
public function postsystem($id, System $system, SystemRequest $request)
{
try {
/* fetch the values of system request */
$systems = $system->whereId('1')->first();
@@ -227,7 +233,8 @@ class SettingsController extends Controller {
*
* @return type Response
*/
public function getticket(Ticket $ticket, Sla_plan $sla, Help_topic $topic, Ticket_Priority $priority) {
public function getticket(Ticket $ticket, Sla_plan $sla, Help_topic $topic, Ticket_Priority $priority)
{
try {
/* fetch the values of ticket from ticket table */
$tickets = $ticket->whereId('1')->first();
@@ -251,7 +258,8 @@ class SettingsController extends Controller {
*
* @return type Response
*/
public function postticket($id, Ticket $ticket, Request $request) {
public function postticket($id, Ticket $ticket, Request $request)
{
try {
/* fetch the values of ticket request */
$tickets = $ticket->whereId('1')->first();
@@ -285,7 +293,8 @@ class SettingsController extends Controller {
*
* @return type Response
*/
public function getemail(Email $email, Template $template, Emails $email1) {
public function getemail(Email $email, Template $template, Emails $email1)
{
try {
/* fetch the values of email from Email table */
$emails = $email->whereId('1')->first();
@@ -309,7 +318,8 @@ class SettingsController extends Controller {
*
* @return type Response
*/
public function postemail($id, Email $email, EmailRequest $request) {
public function postemail($id, Email $email, EmailRequest $request)
{
try {
/* fetch the values of email request */
$emails = $email->whereId('1')->first();
@@ -341,7 +351,8 @@ class SettingsController extends Controller {
*
* @return type Response
*/
public function getSchedular(Email $email, Template $template, Emails $email1, WorkflowClose $workflow) {
public function getSchedular(Email $email, Template $template, Emails $email1, WorkflowClose $workflow)
{
// try {
/* fetch the values of email from Email table */
$emails = $email->whereId('1')->first();
@@ -354,7 +365,7 @@ class SettingsController extends Controller {
$cron_path = base_path('artisan');
$command = ":- <pre>***** php $cron_path schedule:run >> /dev/null 2>&1</pre>";
$shared = ":- <pre>/usr/bin/php-cli -q $cron_path schedule:run >> /dev/null 2>&1</pre>";
$warn = "";
$warn = '';
$condition = new \App\Model\MailJob\Condition();
$job = $condition->checkActiveJob();
$commands = [
@@ -382,13 +393,15 @@ class SettingsController extends Controller {
'monthly' => 'Monthly',
'yearly' => 'Yearly',
];
if (ini_get('register_argc_argv') == "") {
if (ini_get('register_argc_argv') == '') {
//$warn = "Please make 'register_argc_argv' flag as on. Or you can set all your job url in cron";
}
return view('themes.default1.admin.helpdesk.settings.cron.cron', compact('emails', 'templates', 'emails1', 'workflow', 'warn', 'command', 'commands', 'followupcommands', 'condition', 'shared'));
// } catch {
// }
}
/**
* Update the specified schedular in storage for cron job.
*
@@ -397,16 +410,14 @@ class SettingsController extends Controller {
*
* @return type Response
*/
public function postSchedular(Email $email, Template $template, Followup $followup, Emails $email1, TaskRequest $request, WorkflowClose $workflow) {
public function postSchedular(Email $email, Template $template, Followup $followup, Emails $email1, TaskRequest $request, WorkflowClose $workflow)
{
try {
$followup = $followup->whereId('1')->first();
$status = $request->followup_notification_cron;
if ($status = 'null') {
$followup->status = $request->followup_notification_cron;
}
if ($status = 1) {
$followup->status = $request->followup_notification_cron;
@@ -455,7 +466,8 @@ class SettingsController extends Controller {
*
* @return type Response
*/
public function getresponder(Responder $responder) {
public function getresponder(Responder $responder)
{
try {
/* fetch the values of responder from responder table */
$responders = $responder->whereId('1')->first();
@@ -474,7 +486,8 @@ class SettingsController extends Controller {
*
* @return type
*/
public function postresponder(Responder $responder, Request $request) {
public function postresponder(Responder $responder, Request $request)
{
try {
/* fetch the values of responder request */
$responders = $responder->whereId('1')->first();
@@ -502,7 +515,8 @@ class SettingsController extends Controller {
*
* @return type Response
*/
public function getalert(Alert $alert) {
public function getalert(Alert $alert)
{
try {
/* fetch the values of alert from alert table */
$alerts = $alert->whereId('1')->first();
@@ -522,7 +536,8 @@ class SettingsController extends Controller {
*
* @return type Response
*/
public function postalert($id, Alert $alert, Request $request) {
public function postalert($id, Alert $alert, Request $request)
{
try {
/* fetch the values of alert request */
$alerts = $alert->whereId('1')->first();
@@ -586,7 +601,8 @@ class SettingsController extends Controller {
*
* @return type json
*/
public function generateApiKey() {
public function generateApiKey()
{
$key = str_random(32);
return $key;
@@ -597,7 +613,8 @@ class SettingsController extends Controller {
*
* @return type view
*/
public function settings() {
public function settings()
{
return view('themes.default1.admin.helpdesk.setting');
}
@@ -609,7 +626,8 @@ class SettingsController extends Controller {
*
* @return Response
*/
public function getStatuses() {
public function getStatuses()
{
try {
/* fetch the values of company from company table */
$statuss = \DB::table('ticket_status')->get();
@@ -628,7 +646,8 @@ class SettingsController extends Controller {
*
* @return Response
*/
public function getEditStatuses($id) {
public function getEditStatuses($id)
{
try {
/* fetch the values of company from company table */
$status = \DB::table('ticket_status')->where('id', '=', $id)->first();
@@ -647,7 +666,8 @@ class SettingsController extends Controller {
*
* @return Response
*/
public function editStatuses($id, StatusRequest $request) {
public function editStatuses($id, StatusRequest $request)
{
try {
/* fetch the values of company from company table */
$statuss = \App\Model\helpdesk\Ticket\Ticket_Status::whereId($id)->first();
@@ -678,7 +698,8 @@ class SettingsController extends Controller {
*
* @return type redirect
*/
public function createStatuses(\App\Model\helpdesk\Ticket\Ticket_Status $statuss, StatusRequest $request) {
public function createStatuses(\App\Model\helpdesk\Ticket\Ticket_Status $statuss, StatusRequest $request)
{
try {
/* fetch the values of company from company table */
$statuss->name = $request->input('name');
@@ -707,7 +728,8 @@ class SettingsController extends Controller {
*
* @return type redirect
*/
public function deleteStatuses($id) {
public function deleteStatuses($id)
{
try {
if ($id > 5) {
/* fetch the values of company from company table */
@@ -727,7 +749,8 @@ class SettingsController extends Controller {
*
* @return type view
*/
public function notificationSettings() {
public function notificationSettings()
{
return view('themes.default1.admin.helpdesk.settings.notification');
}
@@ -736,7 +759,8 @@ class SettingsController extends Controller {
*
* @return type redirect
*/
public function deleteReadNoti() {
public function deleteReadNoti()
{
$markasread = UserNotification::where('is_read', '=', 1)->get();
foreach ($markasread as $mark) {
$mark->delete();
@@ -751,7 +775,8 @@ class SettingsController extends Controller {
*
* @return type redirect
*/
public function deleteNotificationLog() {
public function deleteNotificationLog()
{
$days = Input::get('no_of_days');
if ($days == null) {
return redirect()->back()->with('fails', 'Please enter valid no of days');
@@ -773,7 +798,8 @@ class SettingsController extends Controller {
*
* @return type View
*/
public function RatingSettings() {
public function RatingSettings()
{
try {
$ratings = Rating::orderBy('display_order', 'asc')->get();
@@ -790,7 +816,8 @@ class SettingsController extends Controller {
*
* @return type view
*/
public function editRatingSettings($id) {
public function editRatingSettings($id)
{
try {
$rating = Rating::whereId($id)->first();
@@ -805,7 +832,8 @@ class SettingsController extends Controller {
*
* @return type Redirect
*/
public function PostRatingSettings($id, Rating $ratings, RatingUpdateRequest $request) {
public function PostRatingSettings($id, Rating $ratings, RatingUpdateRequest $request)
{
try {
$rating = $ratings->whereId($id)->first();
$rating->name = $request->input('name');
@@ -827,7 +855,8 @@ class SettingsController extends Controller {
*
* @return type redirect
*/
public function createRating() {
public function createRating()
{
try {
return view('themes.default1.admin.helpdesk.settings.create-ratings');
} catch (Exception $ex) {
@@ -844,7 +873,8 @@ class SettingsController extends Controller {
*
* @return type redirect
*/
public function storeRating(Rating $rating, \App\Model\helpdesk\Ratings\RatingRef $ratingrefs, \App\Http\Requests\helpdesk\RatingRequest $request) {
public function storeRating(Rating $rating, \App\Model\helpdesk\Ratings\RatingRef $ratingrefs, \App\Http\Requests\helpdesk\RatingRequest $request)
{
$rating->name = $request->input('name');
$rating->display_order = $request->input('display_order');
$rating->allow_modification = $request->input('allow_modification');
@@ -863,13 +893,16 @@ class SettingsController extends Controller {
*
* @return type Redirect
*/
public function RatingDelete($slug, \App\Model\helpdesk\Ratings\RatingRef $ratingrefs) {
public function RatingDelete($slug, \App\Model\helpdesk\Ratings\RatingRef $ratingrefs)
{
$ratingrefs->where('rating_id', '=', $slug)->delete();
Rating::whereId($slug)->delete();
return redirect()->back()->with('success', Lang::get('lang.rating_deleted_successfully'));
}
public function saveConditions() {
public function saveConditions()
{
if (\Input::get('fetching-commands') && \Input::get('notification-commands')) {
$fetching_commands = \Input::get('fetching-commands');
$fetching_dailyAt = \Input::get('fetching-dailyAt');
@@ -885,16 +918,17 @@ class SettingsController extends Controller {
}
}
public function getCommand($command, $daily_at) {
public function getCommand($command, $daily_at)
{
if ($command == 'dailyAt') {
$command = "dailyAt,$daily_at";
}
return $command;
}
public function storeCommand($array=[]){
public function storeCommand($array = [])
{
$command = new \App\Model\MailJob\Condition();
$commands = $command->get();
if ($commands->count() > 0) {
@@ -910,10 +944,10 @@ class SettingsController extends Controller {
]);
}
}
}
public function getTicketNumber(Request $request) {
public function getTicketNumber(Request $request)
{
$this->validate($request, [
'format' => ['required', 'regex:/^(?=.*[$|-|#]).+$/'],
'type' => 'required',
@@ -922,20 +956,23 @@ class SettingsController extends Controller {
$format = $request->input('format');
$type = $request->input('type');
$number = $this->switchNumber($format, $type);
return $number;
}
public function switchNumber($format, $type) {
public function switchNumber($format, $type)
{
switch ($type) {
case "random":
case 'random':
return $this->createRandomNumber($format);
case "sequence":
case 'sequence':
return $this->createSequencialNumber($format);
}
}
public function createRandomNumber($format) {
$number = "";
public function createRandomNumber($format)
{
$number = '';
$array = str_split($format);
for ($i = 0; $i < count($array); $i++) {
if ($array[$i] === '$') {
@@ -948,11 +985,13 @@ class SettingsController extends Controller {
$number .= $array[$i];
}
}
return $number;
}
public function createSequencialNumber($format) {
$number = "";
public function createSequencialNumber($format)
{
$number = '';
$array_format = str_split($format);
$count = count($array_format);
for ($i = 0; $i < $count; $i++) {
@@ -965,16 +1004,17 @@ class SettingsController extends Controller {
$number .= '0';
}
if ($array_format[$i] !== '$' && $array_format[$i] !== '#') {
$number .= $array_format[$i];
}
}
return $number;
//return $this->nthTicketNumber($number);
}
public function checkCurrentFormat($current, $format) {
public function checkCurrentFormat($current, $format)
{
$check = true;
$array_current = str_split($current);
$array_format = str_split($format);
@@ -988,11 +1028,12 @@ class SettingsController extends Controller {
return false;
}
}
return $check;
}
public function nthTicketNumber($current, $type, $format, $force = false) {
public function nthTicketNumber($current, $type, $format, $force = false)
{
$check = $this->checkCurrentFormat($current, $format);
if ($check === false && $force === false) {
$current = $this->createSequencialNumber($format);
@@ -1016,12 +1057,13 @@ class SettingsController extends Controller {
return $number;
}
public function getRandomAlphebet() {
$alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
public function getRandomAlphebet()
{
$alpha = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
$shuffled = str_shuffle($alpha);
$shuffled_array = str_split($shuffled);
$char = $shuffled_array[0];
return $char;
}
}

View File

@@ -2,27 +2,31 @@
namespace App\Http\Controllers\Admin\helpdesk\SocialMedia;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Exception;
use App\Model\helpdesk\Settings\SocialMedia;
use Exception;
use Illuminate\Http\Request;
class SocialMediaController extends Controller {
public function __construct() {
class SocialMediaController extends Controller
{
public function __construct()
{
$this->middleware(['auth', 'roles'], ['except' => ['configService']]);
}
public function settings($provider) {
public function settings($provider)
{
try {
$social = new SocialMedia();
return view('themes.default1.admin.helpdesk.settings.social-media.settings', compact('social', 'provider'));
} catch (Exception $ex) {
return redirect()->back()->with('fails', $ex->getMessage());
}
}
public function postSettings($provider, Request $request) {
public function postSettings($provider, Request $request)
{
$this->validate($request, [
'client_id' => 'required',
'client_secret' => 'required',
@@ -31,14 +35,17 @@ class SocialMediaController extends Controller {
try {
$requests = $request->except('_token');
$this->insertProvider($provider, $requests);
return redirect()->back()->with('success', 'Updated');
} catch (Exception $ex) {
dd($ex);
return redirect()->back()->with('fails', $ex->getMessage());
}
}
public function deleteProvider($provider, $requests) {
public function deleteProvider($provider, $requests)
{
$social = new SocialMedia();
$socials = $social->where('provider', $provider)->get();
if ($socials->count() > 0) {
@@ -50,7 +57,8 @@ class SocialMediaController extends Controller {
}
}
public function insertProvider($provider, $requests = []) {
public function insertProvider($provider, $requests = [])
{
$this->deleteProvider($provider, $requests);
$social = new SocialMedia();
foreach ($requests as $key => $value) {
@@ -62,16 +70,19 @@ class SocialMediaController extends Controller {
}
}
public function index() {
public function index()
{
try {
$social = new SocialMedia();
return view('themes.default1.admin.helpdesk.settings.social-media.index', compact('social'));
} catch (Exception $ex) {
return redirect()->back()->with('fails', $ex->getMessage());
}
}
public function configService() {
public function configService()
{
$social = new SocialMedia();
$services = $this->services();
foreach ($services as $service) {
@@ -82,7 +93,8 @@ class SocialMediaController extends Controller {
// dd(\Config::get('services'));
}
public function services() {
public function services()
{
return [
'facebook',
'google',
@@ -92,5 +104,4 @@ class SocialMediaController extends Controller {
'bitbucket',
];
}
}

View File

@@ -9,9 +9,9 @@ use App\Http\Requests\helpdesk\TeamRequest;
use App\Http\Requests\helpdesk\TeamUpdate;
// models
use App\Model\helpdesk\Agent\Assign_team_agent;
use App\Model\helpdesk\Agent\Teams;
use App\Model\helpdesk\Agent\Department;
use App\Model\helpdesk\Agent\Groups;
use App\Model\helpdesk\Agent\Teams;
use App\User;
// classes
use DB;
@@ -102,6 +102,7 @@ class TeamController extends Controller
return redirect('teams')->with('fails', Lang::get('lang.teams_can_not_create').'<li>'.$e->getMessage().'</li>');
}
}
/**
* Show the form for editing the specified resource.
*
@@ -130,7 +131,8 @@ class TeamController extends Controller
}
}
public function getshow($id) {
public function getshow($id)
{
// dd($request);
// $id = $request->input('show_id');
@@ -146,36 +148,38 @@ $users = DB::table('team_assign_agent')->select('team_assign_agent.id','team_as
->showColumns('user_name')
->addColumn('first_name', function ($model) {
$full_name = ucfirst($model->first_name).' '.ucfirst($model->last_name);
return $full_name;
})
->addColumn('active', function ($model) {
if ($model->active == '1') {
$role = "<a class='btn btn-success btn-xs'>".'Active'."</a>";
$role = "<a class='btn btn-success btn-xs'>".'Active'.'</a>';
} elseif ($model->active == 'agent') {
$role = "<a class='btn btn-primary btn-xs'>".'Inactive'."</a>";
$role = "<a class='btn btn-primary btn-xs'>".'Inactive'.'</a>';
}
return $role;
})
->addColumn('assign_group', function ($model) {
$group = Groups::whereId($model->assign_group)->first();
return ($group->name);
return $group->name;
})
->addColumn('primary_dpt', function ($model) {
$dept = Department::whereId($model->primary_dpt)->first();
return $dept->name;
})
->addColumn('role', function ($model) {
if ($model->role == 'admin') {
$role = "<a class='btn btn-success btn-xs'>".$model->role."</a>";
$role = "<a class='btn btn-success btn-xs'>".$model->role.'</a>';
} elseif ($model->role == 'agent') {
$role = "<a class='btn btn-primary btn-xs'>".$model->role."</a>";
$role = "<a class='btn btn-primary btn-xs'>".$model->role.'</a>';
}
return $role;
})
@@ -183,14 +187,8 @@ $users = DB::table('team_assign_agent')->select('team_assign_agent.id','team_as
->searchColumns('first_name', 'last_name')
->orderColumns('first_name', 'last_name')
->make();
}
/**
* Show the form for editing the specified resource.
*

View File

@@ -13,26 +13,25 @@ use App\Http\Requests\helpdesk\TemplateUdate;
use App\Model\helpdesk\Email\Emails;
use App\Model\helpdesk\Email\Template;
use App\Model\helpdesk\Utility\Languages;
use App\Model\helpdesk\Settings\CommonSettings;
// classes
use Exception;
use Illuminate\Http\Request;
use Input;
use Lang;
/**
* TemplateController.
*
* @author Ladybird <info@ladybirdweb.com>
*/
class TemplateController extends Controller {
class TemplateController extends Controller
{
/**
* Create a new controller instance.
*
* @return type void
*/
public function __construct(PhpMailController $PhpMailController) {
public function __construct(PhpMailController $PhpMailController)
{
$this->PhpMailController = $PhpMailController;
$this->middleware('auth');
$this->middleware('roles');
@@ -45,7 +44,8 @@ class TemplateController extends Controller {
*
* @return type Response
*/
public function index(Template $template) {
public function index(Template $template)
{
try {
$templates = $template->get();
@@ -63,7 +63,8 @@ class TemplateController extends Controller {
*
* @return type Response
*/
public function create(Languages $language, Template $template) {
public function create(Languages $language, Template $template)
{
try {
$templates = $template->get();
$languages = $language->get();
@@ -82,7 +83,8 @@ class TemplateController extends Controller {
*
* @return type Response
*/
public function store(Template $template, TemplateRequest $request) {
public function store(Template $template, TemplateRequest $request)
{
try {
/* Check whether function success or not */
if ($template->fill($request->input())->save() == true) {
@@ -105,7 +107,8 @@ class TemplateController extends Controller {
*
* @return Response
*/
public function show($id) {
public function show($id)
{
//
}
@@ -118,7 +121,8 @@ class TemplateController extends Controller {
*
* @return type Response
*/
public function listdirectories() {
public function listdirectories()
{
$path = \Config::get('view.paths')[0].'/emails/';
$directories = scandir($path);
$directory = str_replace('/', '-', $path);
@@ -126,7 +130,8 @@ class TemplateController extends Controller {
return view('themes.default1.admin.helpdesk.emails.template.listdirectories', compact('directories', 'directory'));
}
public function listtemplates($template, $path) {
public function listtemplates($template, $path)
{
$paths = str_replace('-', '/', $path);
$directory2 = $paths.$template;
@@ -136,7 +141,8 @@ class TemplateController extends Controller {
return view('themes.default1.admin.helpdesk.emails.template.listtemplates', compact('templates', 'directory'));
}
public function readtemplate($template, $path) {
public function readtemplate($template, $path)
{
$directory = str_replace('-', '/', $path);
$handle = fopen($directory.$template, 'r');
$contents = fread($handle, filesize($directory.$template));
@@ -145,7 +151,8 @@ class TemplateController extends Controller {
return view('themes.default1.admin.helpdesk.emails.template.readtemplates', compact('contents', 'template', 'path'));
}
public function createtemplate() {
public function createtemplate()
{
$directory = '../resources/views/emails/';
$fname = Input::get('folder_name');
$filename = $directory.$fname;
@@ -177,7 +184,8 @@ class TemplateController extends Controller {
return \Redirect::back()->with('success', 'Successfully copied');
}
public function writetemplate($template, $path) {
public function writetemplate($template, $path)
{
$directory = str_replace('-', '/', $path);
$b = Input::get('templatedata');
@@ -186,7 +194,8 @@ class TemplateController extends Controller {
return \Redirect::back()->with('success', 'Successfully updated');
}
public function deletetemplate($template, $path) {
public function deletetemplate($template, $path)
{
$directory = str_replace('-', '/', $path);
$dir = $directory.$template;
$status = \DB::table('settings_email')->first();
@@ -208,13 +217,15 @@ class TemplateController extends Controller {
return \Redirect::back()->with('success', 'Successfully Deleted');
}
public function activateset($setname) {
public function activateset($setname)
{
\DB::table('settings_email')->update(['template' => $setname]);
return \Redirect::back()->with('success', 'You have Successfully Activated this Set');
}
public function edit($id, Template $template, Languages $language) {
public function edit($id, Template $template, Languages $language)
{
try {
$templates = $template->whereId($id)->first();
$languages = $language->get();
@@ -234,7 +245,8 @@ class TemplateController extends Controller {
*
* @return type Response
*/
public function update($id, Template $template, TemplateUdate $request) {
public function update($id, Template $template, TemplateUdate $request)
{
try {
//TODO validation
$templates = $template->whereId($id)->first();
@@ -260,7 +272,8 @@ class TemplateController extends Controller {
*
* @return type Response
*/
public function destroy($id, Template $template) {
public function destroy($id, Template $template)
{
try {
$templates = $template->whereId($id)->first();
/* Check whether function success or not */
@@ -284,7 +297,8 @@ class TemplateController extends Controller {
*
* @return type Response
*/
public function formDiagno(Emails $email) {
public function formDiagno(Emails $email)
{
try {
$emails = $email->get();
@@ -301,7 +315,8 @@ class TemplateController extends Controller {
*
* @return type
*/
public function postDiagno(DiagnosRequest $request) {
public function postDiagno(DiagnosRequest $request)
{
try {
$to = $request->input('to');
$subject = $request->input('subject');
@@ -314,11 +329,12 @@ class TemplateController extends Controller {
$controller = new PhpMailController();
$controller->setMailConfig($from_address);
$controller->laravelMail($to, '', $subject, $msg, [], null);
return redirect()->back()->with('success', 'Mail has send successfully');
} catch (Exception $e) {
dd($e);
return redirect()->back()->with('fails', $e->getMessage());
}
}
}

View File

@@ -2,17 +2,19 @@
namespace App\Http\Controllers\Admin\helpdesk;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Exception;
use Illuminate\Http\Request;
class UrlSettingController extends Controller {
public function __construct() {
class UrlSettingController extends Controller
{
public function __construct()
{
$this->middleware('auth');
}
public function settings(Request $request) {
public function settings(Request $request)
{
$url = $request->url();
$www = $this->checkWWW($url);
$https = $this->checkHTTP($url);
@@ -24,7 +26,8 @@ class UrlSettingController extends Controller {
}
}
public function postSettings(Request $request) {
public function postSettings(Request $request)
{
try {
$www = $request->input('www');
$ssl = $request->input('ssl');
@@ -32,58 +35,70 @@ class UrlSettingController extends Controller {
$sting_ssl = $this->ssl($ssl);
$string = $string_www.$sting_ssl;
$this->writeHtaccess($string);
return redirect()->back()->with('success', 'updated');
} catch (Exception $ex) {
dd($ex);
return redirect()->back()->with('fails', $ex->getMessage());
}
}
public function www($www) {
public function www($www)
{
switch ($www) {
case "yes":
case 'yes':
return $this->changeWww();
case "no":
case 'no':
return $this->changeNonwww();
}
}
public function changeWww() {
public function changeWww()
{
$string = "RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]\n";
return $string;
}
public function changeNonwww() {
public function changeNonwww()
{
$string = "RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]\n";
return $string;
}
public function ssl($ssl) {
public function ssl($ssl)
{
switch ($ssl) {
case "yes":
case 'yes':
return $this->changeHttps();
case "no":
case 'no':
return $this->changeHttp();
}
}
public function changeHttps() {
public function changeHttps()
{
$string = "RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]\n";
return $string;
}
public function changeHttp() {
public function changeHttp()
{
//$string = "RewriteCond %{HTTPS} off
//RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]\n";
$string = "";
$string = '';
return $string;
}
public function writeHtaccess($string) {
public function writeHtaccess($string)
{
//dd(public_path('.htaccess'),base_path('.htaccess'));
$file = public_path('.htaccess');
if (!\File::exists($file)) {
@@ -95,7 +110,8 @@ RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]\n";
$new_content = file_get_contents($file);
}
public function deleteCustom() {
public function deleteCustom()
{
$file = public_path('.htaccess');
if (!\File::exists($file)) {
$file = base_path('/../.htaccess');
@@ -108,23 +124,28 @@ RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]\n";
file_put_contents($file, $content);
}
public function checkWwwInUrl($url) {
public function checkWwwInUrl($url)
{
$check = false;
if (strpos($url, 'www') !== false) {
$check = true;
}
return $check;
}
public function checkHttpsInUrl($url) {
public function checkHttpsInUrl($url)
{
$check = false;
if (strpos($url, 'https') !== false) {
$check = true;
}
return $check;
}
public function checkWWW($url) {
public function checkWWW($url)
{
$check = $this->checkWwwInUrl($url);
$array['www'] = true;
$array['nonwww'] = false;
@@ -132,9 +153,12 @@ RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]\n";
$array['www'] = false;
$array['nonwww'] = true;
}
return $array;
}
public function checkHTTP($url) {
public function checkHTTP($url)
{
$check = $this->checkHttpsInUrl($url);
$array['https'] = true;
$array['http'] = false;
@@ -142,7 +166,7 @@ RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]\n";
$array['https'] = false;
$array['http'] = true;
}
return $array;
}
}

View File

@@ -2,27 +2,27 @@
namespace App\Http\Controllers\Agent\helpdesk\Filter;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\Model\helpdesk\Filters\Label;
use App\Model\helpdesk\Filters\Filter;
use App\Model\helpdesk\Ticket\Tickets;
use DB;
use Auth;
use App\Http\Controllers\Agent\helpdesk\TicketController;
use Datatables;
class FilterController extends Controller {
use App\Http\Controllers\Controller;
use App\Model\helpdesk\Filters\Filter;
use App\Model\helpdesk\Filters\Label;
use App\Model\helpdesk\Ticket\Tickets;
use Auth;
use DB;
use Illuminate\Http\Request;
class FilterController extends Controller
{
protected $request;
public function __construct(Request $req) {
public function __construct(Request $req)
{
$this->middleware(['auth', 'role.agent']);
$this->request = $req;
}
public function getFilter(Request $request) {
public function getFilter(Request $request)
{
$labels = $this->request->input('labels');
$tags = $this->request->input('tags');
if ($request->has('department')) {
@@ -48,7 +48,6 @@ class FilterController extends Controller {
->where('tag.key', '=', 'tag');
})
->whereIn('tag.value', $tags);
}
if ((is_array($tags) && count($tags) > 0) || (is_array($labels) && count($labels) > 0)) {
$render = true;
@@ -57,7 +56,8 @@ class FilterController extends Controller {
return \Ttable::getTable($table);
}
public function filterByKey($key,$labels = []) {
public function filterByKey($key, $labels = [])
{
$filter = new Filter();
$query = $filter->where('key', $key)
->where(function ($query) use ($labels) {
@@ -69,65 +69,67 @@ class FilterController extends Controller {
})
->lists('ticket_id')
->toArray();
return $query;
}
public function segments($segment){
if (strpos($segment, "user") !== false) {
public function segments($segment)
{
if (strpos($segment, 'user') !== false) {
return $this->formatUserTickets($segment);
}
$table = $this->table();
switch ($segment) {
case "/ticket/inbox":
case '/ticket/inbox':
if (Auth::user()->role == 'agent') {
$id = Auth::user()->primary_dpt;
$table = $table->where('tickets.dept_id', '=', $id)->orWhere('assigned_to', '=', Auth::user()->id);
}
return $table
->Join('ticket_status', function ($join) {
$join->on('ticket_status.id', '=', 'tickets.status')
->whereIn('ticket_status.id', [1, 7]);
});
case "/ticket/closed":
case '/ticket/closed':
if (Auth::user()->role == 'agent') {
$id = Auth::user()->primary_dpt;
$table = $table->where('tickets.dept_id', '=', $id);
}
return $table
->Join('ticket_status', function ($join) {
$join->on('ticket_status.id', '=', 'tickets.status')
->whereIn('ticket_status.state', ['closed']);
});
case "/ticket/myticket":
case '/ticket/myticket':
return $table
->leftJoin('ticket_status', function ($join) {
$join->on('ticket_status.id', '=', 'tickets.status');
})
->orWhere('tickets.assigned_to', '=', Auth::user()->id)
->where('tickets.status', '=', 1);
case "/unassigned":
case '/unassigned':
if (Auth::user()->role == 'agent') {
$id = Auth::user()->primary_dpt;
$table = $table->where('tickets.dept_id', '=', $id);
}
return $table
->leftJoin('ticket_status', function ($join) {
$join->on('ticket_status.id', '=', 'tickets.status');
})
->where('tickets.assigned_to', '=', null)
->where('tickets.status', '=', 1);
case "/ticket/overdue":
case '/ticket/overdue':
if (Auth::user()->role == 'agent') {
$id = Auth::user()->primary_dpt;
$table = $table->where('tickets.dept_id', '=', $id);
}
return $table
->leftJoin('ticket_status', function ($join) {
$join->on('ticket_status.id', '=', 'tickets.status');
})
->where('tickets.status', '=', 1)
// ->where('tickets.isanswered', '=', 0)
@@ -136,88 +138,89 @@ class FilterController extends Controller {
// ->where('duedate','>',\Carbon\Carbon::now());
->where('tickets.duedate', '<', \Carbon\Carbon::now());
case "/ticket/approval/closed":
case '/ticket/approval/closed':
if (Auth::user()->role == 'agent') {
$id = Auth::user()->primary_dpt;
$table = $table->where('tickets.dept_id', '=', $id);
}
return $table
->Join('ticket_status', function ($join) {
$join->on('ticket_status.id', '=', 'tickets.status')
->where('tickets.status', '=', 7);
});
case "/trash":
case '/trash':
if (Auth::user()->role == 'agent') {
$id = Auth::user()->primary_dpt;
$table = $table->where('tickets.dept_id', '=', $id);
}
return $table
->Join('ticket_status', function ($join) {
$join->on('ticket_status.id', '=', 'tickets.status')
->where('tickets.status', '=', 5);
});
case "/ticket/answered":
case '/ticket/answered':
if (Auth::user()->role == 'agent') {
$id = Auth::user()->primary_dpt;
$table = $table->where('tickets.dept_id', '=', $id);
}
return $table
->Join('ticket_status', function ($join) {
$join->on('ticket_status.id', '=', 'tickets.status')
->where('tickets.status', '=', 1)
->where('tickets.isanswered', '=', 1);
});
case "/ticket/assigned":
case '/ticket/assigned':
if (Auth::user()->role == 'agent') {
$id = Auth::user()->primary_dpt;
$table = $table->where('tickets.dept_id', '=', $id);
}
return $table
->leftJoin('ticket_status', function ($join) {
$join->on('ticket_status.id', '=', 'tickets.status');
})
->where('tickets.assigned_to', '>', 0)
->where('tickets.status', '=', 1);
case "/ticket/open":
case '/ticket/open':
if (Auth::user()->role == 'agent') {
$id = Auth::user()->primary_dpt;
$table = $table->where('tickets.dept_id', '=', $id);
}
return $table
->leftJoin('ticket_status', function ($join) {
$join->on('ticket_status.id', '=', 'tickets.status');
})
->where('tickets.status', '=', 1);
case "/duetoday":
case '/duetoday':
if (Auth::user()->role == 'agent') {
$id = Auth::user()->primary_dpt;
$table = $table->where('tickets.dept_id', '=', $id);
}
return $table
->leftJoin('ticket_status', function ($join) {
$join->on('ticket_status.id', '=', 'tickets.status');
})
->where('tickets.status', '=', 1)
->whereNotNull('tickets.duedate')
->whereDate('tickets.duedate', '=', \Carbon\Carbon::now()->format('Y-m-d'));
case "/ticket/followup":
case '/ticket/followup':
if (Auth::user()->role == 'agent') {
$id = Auth::user()->primary_dpt;
$table = $table->where('tickets.dept_id', '=', $id);
}
return $table
->leftJoin('ticket_status', function ($join) {
$join->on('ticket_status.id', '=', 'tickets.status');
})
->where('tickets.status', '=', 1)
// ->where('tickets.isanswered', '=', 0)
@@ -225,7 +228,8 @@ class FilterController extends Controller {
}
}
public function table(){
public function table()
{
// if (Auth::user()->role == 'admin') {
$ticket = new Tickets();
$tickets = $ticket
@@ -268,32 +272,38 @@ class FilterController extends Controller {
DB::raw('substring_index(group_concat(ticket_thread.title order by ticket_thread.id asc) , ",", 1) as ticket_title'),
'u.active as verified')
->groupby('tickets.id');
return $tickets;
}
public function filter($render,$ticket_id=[]){
public function filter($render, $ticket_id = [])
{
if (Auth::user()->role == 'admin') {
$tickets = Tickets::whereIn('status', array(1, 7));
$tickets = Tickets::whereIn('status', [1, 7]);
} else {
$dept = DB::table('department')->where('id', '=', Auth::user()->primary_dpt)->first();
$tickets = Tickets::whereIn('status', array(1, 7))->where('dept_id', '=', $dept->id);
$tickets = Tickets::whereIn('status', [1, 7])->where('dept_id', '=', $dept->id);
}
if ($render == true) {
$tickets = $tickets->whereIn('id', $ticket_id);
}
return $tickets;
}
public function ticketController(){
public function ticketController()
{
$PhpMailController = new \App\Http\Controllers\Common\PhpMailController();
$NotificationController = new \App\Http\Controllers\Common\NotificationController();
$ticket_controller = new TicketController($PhpMailController, $NotificationController);
return $ticket_controller;
}
public function departmentTickets($dept, $status)
{
$table = $this->table();
return $table->leftJoin('department as dep', 'tickets.dept_id', '=', 'dep.id')
->leftJoin('ticket_status', 'tickets.status', '=', 'ticket_status.id')
->where('dep.name', $dept)
@@ -302,12 +312,14 @@ class FilterController extends Controller {
/**
*@category function to format and return user tickets
*
*@param string $segment
*
*@return builder
*/
public function formatUserTickets($segment)
{
$convert_to_array = explode("/",$segment);
$convert_to_array = explode('/', $segment);
$user_id = $convert_to_array[2];
$user = \DB::table('users')->select('role', 'id')->where('id', '=', $user_id)->first();
$table = $this->table();
@@ -320,6 +332,7 @@ class FilterController extends Controller {
->where('tickets.assigned_to', '=', $user->id)
->where('ticket_status.name', $convert_to_array[3]);
}
return $table;
}
}

View File

@@ -4,10 +4,12 @@ namespace App\Http\Controllers\Agent\helpdesk;
use PhpImap\Mailbox;
class ImapMail extends Mailbox {
public function get_overview($mailId) {
class ImapMail extends Mailbox
{
public function get_overview($mailId)
{
$overview = imap_fetch_overview($this->getImapStream(), $mailId, FT_UID);
return $overview;
}
@@ -16,13 +18,14 @@ class ImapMail extends Mailbox {
* For example, to match all unanswered mails sent by Mom, you'd use: "UNANSWERED FROM mom".
*
* @param string $criteria See http://php.net/imap_search for a complete list of available criteria
*
* @return array mailsIds (or empty array)
*/
public function searchMailbox($criteria = 'ALL') {
public function searchMailbox($criteria = 'ALL')
{
//dd($this->getImapStream());
$mailsIds = imap_search($this->getImapStream(), $criteria, SE_UID);
//dd($mailsIds);
return $mailsIds ? $mailsIds : array();
return $mailsIds ? $mailsIds : [];
}
}

View File

@@ -3,6 +3,7 @@
namespace App\Http\Controllers\Agent\helpdesk;
// models
use App\Http\Controllers\Admin\MailFetch as Fetch;
use App\Http\Controllers\Controller;
use App\Model\helpdesk\Email\Emails;
use App\Model\helpdesk\Manage\Help_topic;
@@ -12,24 +13,24 @@ use App\Model\helpdesk\Settings\Ticket;
use App\Model\helpdesk\Ticket\Ticket_attachments;
use App\Model\helpdesk\Ticket\Ticket_source;
use App\Model\helpdesk\Ticket\Ticket_Thread;
use App\Model\helpdesk\Ticket\Tickets;
// classes
use App\Http\Controllers\Admin\MailFetch as Fetch;
use App\Model\helpdesk\Ticket\Tickets;
/**
* MailController.
*
* @author Ladybird <info@ladybirdweb.com>
*/
class MailController extends Controller {
class MailController extends Controller
{
/**
* constructor
* Create a new controller instance.
*
* @param type TicketController $TicketController
*/
public function __construct(TicketWorkflowController $TicketWorkflowController) {
public function __construct(TicketWorkflowController $TicketWorkflowController)
{
$this->middleware('board');
$this->TicketWorkflowController = $TicketWorkflowController;
}
@@ -39,7 +40,8 @@ class MailController extends Controller {
*
* @return type
*/
public function readmails(Emails $emails, Email $settings_email, System $system, Ticket $ticket) {
public function readmails(Emails $emails, Email $settings_email, System $system, Ticket $ticket)
{
//dd($emails);
if ($settings_email->first()->email_fetching == 1) {
if ($settings_email->first()->all_emails == 1) {
@@ -60,7 +62,8 @@ class MailController extends Controller {
*
* @return type string
*/
public function separate_reply($body) {
public function separate_reply($body)
{
$body2 = explode('---Reply above this line---', $body);
$body3 = $body2[0];
@@ -68,51 +71,64 @@ class MailController extends Controller {
}
/**
*
* @param object $email
* @return integer
*
* @return int
*/
public function priority($email) {
public function priority($email)
{
$priority = $email->priority;
if (!$priority) {
$priority = $this->ticketController()->getSystemDefaultPriority();
}
return $priority;
}
/**
* get department
* get department.
*
* @param object $email
* @return integer
*
* @return int
*/
public function department($email) {
public function department($email)
{
$department = $email->department;
if (!$department) {
$department = $this->ticketController()->getSystemDefaultDepartment();
}
return $department;
}
/**
* get help topic
* get help topic.
*
* @param object $email
* @return integer
*
* @return int
*/
public function helptopic($email) {
public function helptopic($email)
{
//dd($email);
$helptopic = $email->help_topic;
if (!$helptopic) {
$helptopic = $this->ticketController()->getSystemDefaultHelpTopic();
}
return $helptopic;
}
/**
* get sla
* get sla.
*
* @param object $email
* @return integer
*
* @return int
*/
public function sla($email) {
public function sla($email)
{
$helptopic = $this->helptopic($email);
$help = Help_topic::where('id', '=', $helptopic)->first();
if ($help) {
@@ -121,21 +137,26 @@ class MailController extends Controller {
if (!$sla) {
$sla = $this->ticketController()->getSystemDefaultSla();
}
return $sla;
}
/**
* get ticket controller
* get ticket controller.
*
* @return \App\Http\Controllers\Agent\helpdesk\TicketController
*/
public function ticketController() {
public function ticketController()
{
$PhpMailController = new \App\Http\Controllers\Common\PhpMailController();
$NotificationController = new \App\Http\Controllers\Common\NotificationController();
$controller = new TicketController($PhpMailController, $NotificationController);
return $controller;
}
public function fetch($email) {
public function fetch($email)
{
// dd($email);
if ($email) {
$username = $email->email_address;
@@ -146,18 +167,19 @@ class MailController extends Controller {
$encryption = $email->fetching_encryption;
$cert = $email->mailbox_protocol;
$server = new Fetch($host, $port, $service);
if ($encryption != null || $encryption != "") {
if ($encryption != null || $encryption != '') {
$server->setFlag($encryption);
}
$server->setFlag($cert);
$server->setAuthentication($username, $password);
$date = date("d M Y", strToTime("-1 days"));
$date = date('d M Y', strtotime('-1 days'));
$messages = $server->search("SINCE \"$date\" UNSEEN");
$this->message($messages, $email);
}
}
public function message($messages, $email) {
public function message($messages, $email)
{
if (count($messages) > 0) {
foreach ($messages as $message) {
$this->getMessageContent($message, $email);
@@ -165,7 +187,8 @@ class MailController extends Controller {
}
}
public function getMessageContent($message, $email) {
public function getMessageContent($message, $email)
{
$body = $message->getMessageBody(true);
if (!$body) {
$body = $message->getMessageBody();
@@ -182,7 +205,8 @@ class MailController extends Controller {
$this->workflow($address, $subject, $body, $collaborators, $attachments, $email);
}
public function workflow($address, $subject, $body, $collaborator, $attachments, $email) {
public function workflow($address, $subject, $body, $collaborator, $attachments, $email)
{
$fromaddress = checkArray('address', $address[0]);
$fromname = checkArray('name', $address[0]);
$helptopic = $this->helptopic($email);
@@ -203,7 +227,8 @@ class MailController extends Controller {
}
}
public function updateThread($ticket_number, $body, $attachments) {
public function updateThread($ticket_number, $body, $attachments)
{
$ticket_table = Tickets::where('ticket_number', '=', $ticket_number)->first();
$thread_id = Ticket_Thread::where('ticket_id', '=', $ticket_table->id)->max('id');
$thread = Ticket_Thread::where('id', '=', $thread_id)->first();
@@ -220,13 +245,13 @@ class MailController extends Controller {
loging('attachment', 'FaveoStorage not installed');
}
\Log::info("Ticket has created : ", ['id' => $thread->ticket_id]);
\Log::info('Ticket has created : ', ['id' => $thread->ticket_id]);
}
public function saveAttachments($thread_id, $attachments = []) {
public function saveAttachments($thread_id, $attachments = [])
{
if (is_array($attachments) && count($attachments) > 0) {
foreach ($attachments as $attachment) {
$structure = $attachment->getStructure();
$disposition = 'ATTACHMENT';
if (isset($structure->disposition)) {
@@ -245,7 +270,8 @@ class MailController extends Controller {
}
}
public function manageAttachment($data, $filename, $type, $size, $disposition, $thread_id) {
public function manageAttachment($data, $filename, $type, $size, $disposition, $thread_id)
{
$upload = new Ticket_attachments();
$upload->file = $data;
$upload->thread_id = $thread_id;
@@ -258,14 +284,15 @@ class MailController extends Controller {
}
}
public function updateBody($attachment, $thread_id, $filename) {
public function updateBody($attachment, $thread_id, $filename)
{
$structure = $attachment->getStructure();
$disposition = 'ATTACHMENT';
if (isset($structure->disposition)) {
$disposition = $structure->disposition;
}
if ($disposition == 'INLINE' || $disposition == 'inline') {
$id = str_replace(">", "", str_replace("<", "", $structure->id));
$id = str_replace('>', '', str_replace('<', '', $structure->id));
//$filename = $attachment->getFileName();
$threads = new Ticket_Thread();
$thread = $threads->find($thread_id);
@@ -276,7 +303,8 @@ class MailController extends Controller {
}
}
public function collaburators($message, $email) {
public function collaburators($message, $email)
{
$this_address = $email->email_address;
$collaborator_cc = $message->getAddresses('cc');
//dd($collaborator_cc);
@@ -311,6 +339,7 @@ class MailController extends Controller {
if (array_key_exists($this_address, $array)) {
unset($array[$this_address]);
}
return $array;
}
@@ -321,12 +350,14 @@ class MailController extends Controller {
*
* @return type file
*/
public function get_data($id) {
public function get_data($id)
{
$attachment = \App\Model\helpdesk\Ticket\Ticket_attachments::where('id', '=', $id)->first();
if (mime($attachment->type) == true) {
echo "<img src=data:$attachment->type;base64," . $attachment->file . ">";
echo "<img src=data:$attachment->type;base64,".$attachment->file.'>';
} else {
$file = base64_decode($attachment->file);
return response($file)
->header('Cache-Control', 'no-cache private')
->header('Content-Description', 'File Transfer')
@@ -344,12 +375,13 @@ class MailController extends Controller {
*
* @return type string
*/
public function separateReply($body) {
public function separateReply($body)
{
$body2 = explode('---Reply above this line---', $body);
if (is_array($body2) && array_key_exists(0, $body2)) {
$body = $body2[0];
}
return $body;
}
}

View File

@@ -22,16 +22,18 @@ use View;
*
* @author Ladybird <info@ladybirdweb.com>
*/
class NotificationController extends Controller {
public function __construct(PhpMailController $PhpMailController) {
class NotificationController extends Controller
{
public function __construct(PhpMailController $PhpMailController)
{
$this->PhpMailController = $PhpMailController;
}
/**
* This function is for sending daily report/notification about the system.
* */
public function send_notification() {
public function send_notification()
{
// dd('sdckjdsc');
//fetching email settings
$email = Email::where('id', '=', '1')->first();
@@ -61,6 +63,7 @@ class NotificationController extends Controller {
//}
Log_notification::create(['log' => 'NOT-1']);
}
return $send;
}
@@ -71,7 +74,8 @@ class NotificationController extends Controller {
*
* @return mail
* */
public function send_notification_to_admin($company) {
public function send_notification_to_admin($company)
{
// get all admin users
$users = User::where('role', '=', 'admin')->get();
foreach ($users as $user) {
@@ -83,12 +87,12 @@ class NotificationController extends Controller {
$from = $this->PhpMailController->mailfrom('1', '0');
$to = [
'name' => $user_name,
'email' => $email
'email' => $email,
];
$message = [
'subject' => 'Daily Report',
'scenario' => null,
'body' => $contents
'body' => $contents,
];
return $this->PhpMailController->sendEmail($from, $to, $message);
@@ -100,7 +104,8 @@ class NotificationController extends Controller {
*
* @return mail
* */
public function send_notification_to_manager($company) {
public function send_notification_to_manager($company)
{
// get all department managers
$depts = Department::all();
foreach ($depts as $dept) {
@@ -116,13 +121,14 @@ class NotificationController extends Controller {
$from = $this->PhpMailController->mailfrom('1', '0');
$to = [
'name' => $user_name,
'email' => $email
'email' => $email,
];
$message = [
'subject' => 'Daily Report',
'scenario' => null,
'body' => $contents
'body' => $contents,
];
return $this->PhpMailController->sendEmail($from, $to, $message);
}
}
@@ -134,7 +140,8 @@ class NotificationController extends Controller {
*
* @return mail
* */
public function send_notification_to_team_lead($company) {
public function send_notification_to_team_lead($company)
{
// get all Team leads
$teams = Teams::all();
foreach ($teams as $team) {
@@ -150,13 +157,14 @@ class NotificationController extends Controller {
$from = $this->PhpMailController->mailfrom('1', '0');
$to = [
'name' => $user_name,
'email' => $email
'email' => $email,
];
$message = [
'subject' => 'Daily Report',
'scenario' => null,
'body' => $contents
'body' => $contents,
];
return $this->PhpMailController->sendEmail($from, $to, $message);
}
}
@@ -168,7 +176,8 @@ class NotificationController extends Controller {
*
* @return mail
* */
public function send_notification_to_agent($company) {
public function send_notification_to_agent($company)
{
// get all agents users
$users = User::where('role', '=', 'agent')->get();
foreach ($users as $user) {
@@ -180,13 +189,14 @@ class NotificationController extends Controller {
$from = $this->PhpMailController->mailfrom('1', '0');
$to = [
'name' => $user_name,
'email' => $email
'email' => $email,
];
$message = [
'subject' => 'Daily Report',
'scenario' => null,
'body' => $contents
'body' => $contents,
];
return $this->PhpMailController->sendEmail($from, $to, $message);
}
}
@@ -196,7 +206,8 @@ class NotificationController extends Controller {
*
* @return type variable
*/
public function company() {
public function company()
{
// fetching comapny model
$company = Company::Where('id', '=', '1')->first();
// fetching company name
@@ -208,5 +219,4 @@ class NotificationController extends Controller {
return $company;
}
}

View File

@@ -16,8 +16,8 @@ use App\Model\helpdesk\Agent_panel\User_org;
use App\User;
// classes
use Exception;
use Lang;
use Illuminate\Http\Request;
use Lang;
/**
* OrganizationController
@@ -330,13 +330,15 @@ class OrganizationController extends Controller
return '['.$last.']';
}
public function getOrgAjax(Request $request){
public function getOrgAjax(Request $request)
{
$org = new Organization();
$q = $request->input('term');
$orgs = $org->where('name', 'LIKE', '%'.$q.'%')
->select('name as label', 'id as value')
->get()
->toJson();
return $orgs;
}

View File

@@ -6,9 +6,9 @@ namespace App\Http\Controllers\Agent\helpdesk;
use App\Http\Controllers\Controller;
use App\Model\helpdesk\Manage\Help_topic;
// request
use Illuminate\Http\Request;
// Model
use App\Model\helpdesk\Ticket\Tickets;
// Model
use Illuminate\Http\Request;
// classes
use PDF;
@@ -18,8 +18,8 @@ use PDF;
*
* @author Ladybird <info@ladybirdweb.com>
*/
class ReportController extends Controller {
class ReportController extends Controller
{
/**
* Create a new controller instance.
* constructor to check
@@ -29,7 +29,8 @@ class ReportController extends Controller {
*
* @return void
*/
public function __construct() {
public function __construct()
{
// checking for authentication
$this->middleware('auth');
// checking if the role is agent
@@ -38,23 +39,26 @@ class ReportController extends Controller {
/**
* Get the Report page.
*
* @return type view
*/
public function index() {
public function index()
{
try {
return view('themes.default1.agent.helpdesk.report.index');
} catch (Exception $e) {
}
}
/**
* function to get help_topic graph
* function to get help_topic graph.
*
* @param type $date111
* @param type $date122
* @param type $helptopic
*/
public function chartdataHelptopic(Request $request, $date111 = '', $date122 = '', $helptopic = '') {
public function chartdataHelptopic(Request $request, $date111 = '', $date122 = '', $helptopic = '')
{
$date11 = strtotime($date122);
$date12 = strtotime($date111);
$help_topic = $helptopic;
@@ -84,7 +88,6 @@ class ReportController extends Controller {
// $help_topic = Help_topic::where('status', '=', '1')->min('id');
}
$return = '';
$last = '';
$j = 0;
@@ -247,20 +250,19 @@ class ReportController extends Controller {
// if($reopened_array) {
// $value = array_merge($value,$reopened_array);
// }
}
$last = rtrim($return, ',');
return '['.$last.']';
}
public function helptopicPdf(Request $request){
public function helptopicPdf(Request $request)
{
$table_datas = json_decode($request->input('pdf_form'));
$table_help_topic = json_decode($request->input('pdf_form_help_topic'));
$html = view('themes.default1.agent.helpdesk.report.pdf', compact('table_datas', 'table_help_topic'))->render();
$html1 = mb_convert_encoding($html, 'HTML-ENTITIES', 'UTF-8');
return PDF::load($html1)->show();
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -352,6 +352,7 @@ class TicketWorkflowController extends Controller
$ticket_settings_details = $this->changeStatus($workflow_action, $ticket_settings_details);
}
}
return $ticket_settings_details;
}

View File

@@ -3,49 +3,44 @@
namespace App\Http\Controllers\Agent\helpdesk;
// controllers
use App\Http\Controllers\Controller;
use App\Http\Controllers\Common\PhpMailController;
use App\Http\Controllers\Controller;
// requests
/* Include Sys_user Model */
use App\Http\Requests\helpdesk\ProfilePassword;
/* For validation include Sys_userRequest in create */
use App\Http\Requests\helpdesk\ProfileRequest;
/* For validation include Sys_userUpdate in update */
use App\Http\Requests\helpdesk\Sys_userRequest;
/* include guest_note model */
use App\Http\Requests\helpdesk\Sys_userUpdate;
use App\Http\Requests\helpdesk\OtpVerifyRequest;
// change password request
use App\Http\Requests\helpdesk\ChangepasswordRequest;
/* For validation include Sys_userRequest in create */
use App\Http\Requests\helpdesk\OtpVerifyRequest;
/* For validation include Sys_userUpdate in update */
use App\Http\Requests\helpdesk\ProfilePassword;
/* include guest_note model */
use App\Http\Requests\helpdesk\ProfileRequest;
use App\Http\Requests\helpdesk\Sys_userRequest;
// change password request
use App\Http\Requests\helpdesk\Sys_userUpdate;
// models
use App\Model\helpdesk\Agent\Assign_team_agent;
use App\Model\helpdesk\Agent_panel\Organization;
use App\Model\helpdesk\Agent_panel\User_org;
use App\Model\helpdesk\Notification\Notification;
use App\Model\helpdesk\Notification\UserNotification;
use App\Model\helpdesk\Settings\CommonSettings;
use App\Model\helpdesk\Settings\Email;
use App\Model\helpdesk\Ticket\Ticket_Thread;
use App\Model\helpdesk\Ticket\Tickets;
use App\Model\helpdesk\Utility\CountryCode;
use App\Model\helpdesk\Utility\Otp;
use App\Model\helpdesk\Email\Emails;
use App\Model\helpdesk\Settings\Email;
use App\Model\helpdesk\Ticket\Tickets;
use App\Model\helpdesk\Agent\Assign_team_agent;
use App\Model\helpdesk\Ticket\Ticket_Thread;
use App\Model\helpdesk\Notification\UserNotification;
use App\Model\helpdesk\Notification\Notification;
use App\Model\helpdesk\Ticket\Ticket_Collaborator;
use App\Model\helpdesk\Agent\Teams;
use App\Model\helpdesk\Ticket\Ticket_attachments;
use App\User;
// classes
use Auth;
use DateTime;
use DB;
use Exception;
use GeoIP;
use Hash;
use Illuminate\Http\Request;
use Input;
use Lang;
use Redirect;
use Illuminate\Http\Request;
use DateTime;
use DB;
/**
* UserController
@@ -53,8 +48,8 @@ use DB;
*
* @author Ladybird <info@ladybirdweb.com>
*/
class UserController extends Controller {
class UserController extends Controller
{
/**
* Create a new controller instance.
* constructor to check
@@ -64,7 +59,8 @@ class UserController extends Controller {
*
* @return void
*/
public function __construct(PhpMailController $PhpMailController) {
public function __construct(PhpMailController $PhpMailController)
{
$this->PhpMailController = $PhpMailController;
// checking authentication
$this->middleware('auth');
@@ -79,7 +75,8 @@ class UserController extends Controller {
*
* @return type view
*/
public function index() {
public function index()
{
try {
/* get all values in Sys_user */
@@ -93,13 +90,15 @@ class UserController extends Controller {
Lang::get('lang.role'),
Lang::get('lang.action')) // these are the column headings to be shown
->noScript();
return view('themes.default1.agent.helpdesk.user.index', compact('table'));
} catch (Exception $e) {
return redirect()->back()->with('fails', $e->getMessage());
}
}
public function deletedUser() {
public function deletedUser()
{
try {
// dd('here');
/* get all values in Sys_user */
@@ -109,30 +108,20 @@ class UserController extends Controller {
}
}
/**
* This function is used to display the list of users using chumper datatables.
*
* @return datatable
*/
public function user_list(Request $request) {
public function user_list(Request $request)
{
$type = $request->input('profiletype');
if($type=="active"){
$users=User::where('role', "!=", "admin")->where('is_delete','=',0)->get();
if ($type == 'active') {
$users = User::where('role', '!=', 'admin')->where('is_delete', '=', 0)->get();
} else {
$users = User::where('role', '!=', 'admin')->where('is_delete', '=', 1)->get();
}
else{
$users=User::where('role', "!=", "admin")->where('is_delete','=',1)->get();
}
// displaying list of users with chumper datatables
// return \Datatable::collection(User::where('role', "!=", "admin")->get())
@@ -154,7 +143,8 @@ else{
} else {
$stringCut = $string;
}
return "<a href='" . route('user.show', $model->id) . "' title='".$string."''>".$stringCut."</a>";
return "<a href='".route('user.show', $model->id)."' title='".$string."''>".$stringCut.'</a>';
})
/* column email */
->addColumn('email', function ($model) {
@@ -207,16 +197,14 @@ else{
/* column Role */
->addColumn('role', function ($model) {
$role = $model->role;
return $role;
})
/* column actions */
->addColumn('Actions', function ($model) {
if ($model->is_delete == 0) {
return '<a href="'.route('user.edit', $model->id).'" class="btn btn-warning btn-xs">'.\Lang::get('lang.edit').'</a>&nbsp; <a href="'.route('user.show', $model->id).'" class="btn btn-primary btn-xs">'.\Lang::get('lang.view').'</a>';
}
else{
} else {
if (Auth::user()->role == 'admin') {
// @if(Auth::user()->role == 'admin')
@@ -225,14 +213,11 @@ else{
if (Auth::user()->role == 'agent') {
// @if(Auth::user()->role == 'admin')
if($model->role=="user"){
if ($model->role == 'user') {
return '<a href="'.route('user.show', $model->id).'" class="btn btn-primary btn-xs">'.\Lang::get('lang.view').'</a>';
}
}
}
})
->make();
}
@@ -246,6 +231,7 @@ else{
$users->active = 1;
$users->ban = 0;
$users->save();
return redirect('user')->with('success', Lang::get('lang.user_restore_successfully'));
}
@@ -254,13 +240,15 @@ else{
*
* @return type view
*/
public function create(CountryCode $code) {
public function create(CountryCode $code)
{
try {
$settings = CommonSettings::select('status')->where('option_name', '=', 'send_otp')->first();
$email_mandatory = CommonSettings::select('status')->where('option_name', '=', 'email_mandatory')->first();
$location = GeoIP::getLocation();
$phonecode = $code->where('iso', '=', $location->iso_code)->first();
$org = Organization::lists('name', 'id')->toArray();
return view('themes.default1.agent.helpdesk.user.create', compact('org', 'settings', 'email_mandatory'))->with('phonecode', $phonecode->phonecode);
} catch (Exception $e) {
return redirect()->back()->with('fails', $e->errorInfo[2]);
@@ -275,7 +263,8 @@ else{
*
* @return type redirect
*/
public function store(User $user, Sys_userRequest $request) {
public function store(User $user, Sys_userRequest $request)
{
/* insert the input request to sys_user table */
/* Check whether function success or not */
if ($request->input('email') != '') {
@@ -310,7 +299,7 @@ else{
}
// save user credentails
if ($user->save() == true) {
if ($request->input('org_id') != "") {
if ($request->input('org_id') != '') {
$orgid = $request->input('org_id');
$this->storeUserOrgRelation($user->id, $orgid);
}
@@ -332,6 +321,7 @@ else{
if (($request->input('active') == '0' || $request->input('active') == 0) || ($email_mandatory->status == '0') || $email_mandatory->status == 0) {
\Event::fire(new \App\Events\LoginEvent($request));
}
return redirect('user')->with('success', Lang::get('lang.User-Created-Successfully'));
}
// $user->save();
@@ -344,17 +334,18 @@ else{
}
/**
* Random Password Genetor for users
* Random Password Genetor for users.
*
* @param type int $id
* @param type User $user
*
* @return type view
*/
public function randomPassword() {
public function randomPassword()
{
try {
$alphabet = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890~!@#$%^&*(){}[]';
$pass = array(); //remember to declare $pass as an array
$pass = []; //remember to declare $pass as an array
$alphaLength = strlen($alphabet) - 1; //put the length -1 in cache
for ($i = 0; $i < 10; $i++) {
$n = rand(0, $alphaLength);
@@ -369,14 +360,15 @@ else{
}
/**
* Random Password Genetor for users
* Random Password Genetor for users.
*
* @param type int $id
* @param type User $user
*
* @return type view
*/
public function randomPostPassword($id, ChangepasswordRequest $request) {
public function randomPostPassword($id, ChangepasswordRequest $request)
{
try {
$changepassword = $request->change_password;
$user = User::whereId($id)->first();
@@ -391,24 +383,25 @@ else{
return redirect('user')->with('success', Lang::get('lang.password_change_successfully'));
} catch (Exception $e) {
return redirect('user')->with('fails', $e->getMessage());
}
}
/**
*
* @param type $id
* @param Request $request
*
* @return type
*/
public function changeRoleAdmin($id, Request $request) {
public function changeRoleAdmin($id, Request $request)
{
try {
$user = User::whereId($id)->first();
$user->role = 'admin';
$user->assign_group = $request->group;
$user->primary_dpt = $request->primary_department;
$user->save();
return redirect('user')->with('success', Lang::get('lang.role_change_successfully'));
} catch (Exception $e) {
/* redirect to Index page with Fails Message */
@@ -417,14 +410,14 @@ else{
}
/**
*
* @param type $id
* @param Request $request
*
* @return type
*/
public function changeRoleAgent($id, Request $request) {
public function changeRoleAgent($id, Request $request)
{
try {
$user = User::whereId($id)->first();
$user->role = 'agent';
$user->assign_group = $request->group;
@@ -439,22 +432,22 @@ else{
}
/**
*
* @param type $id
*
* @return type
*/
public function changeRoleUser($id) {
public function changeRoleUser($id)
{
try {
$ticket = Tickets::where('assigned_to', '=', $id)->where('status', '=', '1')->get();
if ($ticket) {
$ticket = Tickets::where('assigned_to', '=', $id)->update(array("assigned_to" => NULL));
$ticket = Tickets::where('assigned_to', '=', $id)->update(['assigned_to' => null]);
}
$user = User::whereId($id)->first();
$user->role = 'user';
$user->assign_group = NULL;
$user->primary_dpt = NULL;
$user->remember_token = NULL;
$user->assign_group = null;
$user->primary_dpt = null;
$user->remember_token = null;
$user->save();
return redirect('user')->with('success', Lang::get('lang.role_change_successfully'));
@@ -466,8 +459,8 @@ else{
}
/**
*
* @param type $id
*
* @return type
*/
public function deleteAgent($id)
@@ -475,12 +468,9 @@ else{
// try {
$delete_all = Input::get('delete_all');
$delete_all = Input::get('delete_all');
$users = User::where('id', '=', $id)->first();
if ($users->role == 'user') {
$users = User::where('id', '=', $id)->first();
$users->is_delete = 1;
$users->active = 0;
@@ -491,7 +481,6 @@ else{
}
// }
if ($users->role == 'agent') {
if ($delete_all == null) {
$UserEmail = Input::get('assign_to');
@@ -524,9 +513,8 @@ else{
// Assign_team_agent::where('agent_id', '=', $id)->update(['agent_id' => $assign_to[1]]);
$tickets = Tickets::where('assigned_to', '=', $id)->get();
foreach ($tickets as $ticket) {
# code...
// code...
$ticket->assigned_to = $assign_to[1];
$user_detail = User::where('id', '=', $assign_to[1])->first();
@@ -534,7 +522,6 @@ foreach ($tickets as $ticket ) {
$ticket_number = $ticket->ticket_number;
$ticket->save();
$thread = new Ticket_Thread();
$thread->ticket_id = $ticket->id;
$thread->user_id = Auth::user()->id;
@@ -548,11 +535,9 @@ foreach ($tickets as $ticket ) {
$users->ban = 1;
$users->save();
return redirect('user')->with('success', Lang::get('lang.agent_delete_successfully_and_ticket_assign_to_another_agent'));
}
// if (User_org::where('user_id', '=', $id)) {
// DB::table('user_assign_organization')->where('user_id', '=', $id)->delete();
// }
@@ -564,17 +549,15 @@ foreach ($tickets as $ticket ) {
return redirect('user')->with('success', Lang::get('lang.agent_delete_successfully'));
} elseif ($delete_all == 1) {
if ($delete_all) {
// dd('here');
$tickets = Tickets::where('assigned_to', '=', $id)->get();
// dd($tickets);
foreach ($tickets as $ticket) {
$ticket->assigned_to = NULL;
$ticket->assigned_to = null;
$ticket_number = $ticket->ticket_number;
$ticket->save();
$thread = new Ticket_Thread();
$thread->ticket_id = $ticket->id;
$thread->user_id = Auth::user()->id;
@@ -616,7 +599,8 @@ foreach ($tickets as $ticket ) {
*
* @return type view
*/
public function show($id) {
public function show($id)
{
try {
$users = User::where('id', '=', $id)->first();
if (count($users) > 0) {
@@ -637,10 +621,10 @@ foreach ($tickets as $ticket ) {
*
* @return type Response
*/
public function edit($id, CountryCode $code) {
public function edit($id, CountryCode $code)
{
try {
// dd('here');
$settings = CommonSettings::select('status')->where('option_name', '=', 'send_otp')->first();
$email_mandatory = CommonSettings::select('status')->where('option_name', '=', 'email_mandatory')->first();
@@ -672,8 +656,8 @@ foreach ($tickets as $ticket ) {
*
* @return type Response
*/
public function update($id, Sys_userUpdate $request) {
public function update($id, Sys_userUpdate $request)
{
$user = new User();
/* select the field where id = $id(request Id) */
$users = $user->whereId($id)->first();
@@ -693,7 +677,7 @@ foreach ($tickets as $ticket ) {
$users->mobile = ($request->input('mobile') == '') ? null : $request->input('mobile');
$users->fill($request->except('mobile'));
$users->save();
if ($request->input('org_id') != "") {
if ($request->input('org_id') != '') {
$orgid = $request->input('org_id');
$this->storeUserOrgRelation($id, $orgid);
@@ -711,7 +695,8 @@ foreach ($tickets as $ticket ) {
*
* @return type view
*/
public function getProfile() {
public function getProfile()
{
$user = Auth::user();
try {
return view('themes.default1.agent.helpdesk.user.profile', compact('user'));
@@ -725,7 +710,8 @@ foreach ($tickets as $ticket ) {
*
* @return type view
*/
public function getProfileedit(CountryCode $code) {
public function getProfileedit(CountryCode $code)
{
$user = Auth::user();
$location = GeoIP::getLocation();
$phonecode = $code->where('iso', '=', $location->iso_code)->first();
@@ -734,7 +720,7 @@ foreach ($tickets as $ticket ) {
try {
return view('themes.default1.agent.helpdesk.user.profile-edit', compact('user'))
->with(['phonecode' => $phonecode->phonecode,
'verify' => $status]);
'verify' => $status, ]);
} catch (Exception $e) {
return redirect()->back()->with('fails', $e->getMessage());
}
@@ -748,7 +734,8 @@ foreach ($tickets as $ticket ) {
*
* @return type Redirect
*/
public function postProfileedit(ProfileRequest $request) {
public function postProfileedit(ProfileRequest $request)
{
try {
// geet authenticated user details
$user = Auth::user();
@@ -786,7 +773,6 @@ foreach ($tickets as $ticket ) {
} else {
return Redirect::route('profile')->with('fails', Lang::get('lang.Profile-Updated-sucessfully'));
}
} catch (Exception $e) {
return Redirect::route('profile')->with('fails', $e->getMessage());
}
@@ -826,10 +812,10 @@ foreach ($tickets as $ticket ) {
*
* @return type boolean
*/
public function UserAssignOrg($id) {
public function UserAssignOrg($id)
{
$org_name = Input::get('org');
if ($org_name) {
$org = Organization::where('name', '=', $org_name)->lists('id')->first();
if ($org) {
@@ -868,7 +854,8 @@ if ($org_name) {
}
}
public function orgAssignUser($id) {
public function orgAssignUser($id)
{
$org = Input::get('org');
$user_org = new User_org();
$user_org->org_id = $id;
@@ -878,7 +865,8 @@ if ($org_name) {
return 1;
}
public function removeUserOrg($id) {
public function removeUserOrg($id)
{
$user_org = User_org::where('org_id', '=', $id)->first();
$user_org->delete();
@@ -892,7 +880,8 @@ if ($org_name) {
*
* @return type
*/
public function User_Create_Org($id) {
public function User_Create_Org($id)
{
// checking if the entered value for website is available in database
if (Input::get('website') != null) {
// checking website
@@ -935,7 +924,8 @@ if ($org_name) {
*
* @return string
*/
public function generateRandomString($length = 10) {
public function generateRandomString($length = 10)
{
// list of supported characters
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
// character length checked
@@ -950,7 +940,8 @@ if ($org_name) {
return $randomString;
}
public function storeUserOrgRelation($userid, $orgid) {
public function storeUserOrgRelation($userid, $orgid)
{
$org_relations = new User_org();
$org_relation = $org_relations->where('user_id', $userid)->first();
if ($org_relation) {
@@ -962,7 +953,8 @@ if ($org_name) {
]);
}
public function getExportUser() {
public function getExportUser()
{
try {
return view('themes.default1.agent.helpdesk.user.export');
} catch (Exception $ex) {
@@ -970,30 +962,34 @@ if ($org_name) {
}
}
public function exportUser(Request $request) {
public function exportUser(Request $request)
{
try {
$date = $request->input('date');
$date = str_replace(' ', '', $date);
$date_array = explode(':', $date);
$first = $date_array[0] . " 00:00:00";
$second = $date_array[1] . " 23:59:59";
$first = $date_array[0].' 00:00:00';
$second = $date_array[1].' 23:59:59';
$first_date = $this->convertDate($first);
$second_date = $this->convertDate($second);
$users = $this->getUsers($first_date, $second_date);
$excel_controller = new \App\Http\Controllers\Common\ExcelController();
$filename = "users" . $date;
$filename = 'users'.$date;
$excel_controller->export($filename, $users);
} catch (Exception $ex) {
return redirect()->back()->with('fails', $ex->getMessage());
}
}
public function convertDate($date) {
public function convertDate($date)
{
$converted_date = date('Y-m-d H:i:s', strtotime($date));
return $converted_date;
}
public function getUsers($first, $last) {
public function getUsers($first, $last)
{
$user = new User();
$users = $user->leftJoin('user_assign_organization', 'users.id', '=', 'user_assign_organization.user_id')
->leftJoin('organization', 'user_assign_organization.org_id', '=', 'organization.id')
@@ -1003,37 +999,42 @@ if ($org_name) {
->select('users.user_name as Username', 'users.email as Email', 'users.first_name as Fisrtname', 'users.last_name as Lastname', 'organization.name as Organization')
->get()
->toArray();
return $users;
}
public function resendOTP(OtpVerifyRequest $request) {
public function resendOTP(OtpVerifyRequest $request)
{
if (\Schema::hasTable('sms')) {
$sms = DB::table('sms')->get();
if (count($sms) > 0) {
\Event::fire(new \App\Events\LoginEvent($request));
return 1;
}
} else {
return "Plugin has not been setup successfully.";
return 'Plugin has not been setup successfully.';
}
}
public function verifyOTP() {
public function verifyOTP()
{
// dd(Input::all());
// $user = User::select('id', 'mobile', 'user_name')->where('email', '=', $request->input('email'))->first();
$otp = Otp::select('otp', 'updated_at')->where('user_id', '=', Input::get('u_id'))
->first();
if ($otp != null) {
$otp_length = strlen(Input::get('otp'));
if (($otp_length == 6 && !preg_match("/[a-z]/i", Input::get('otp')))) {
if (($otp_length == 6 && !preg_match('/[a-z]/i', Input::get('otp')))) {
$otp2 = Hash::make(Input::get('otp'));
$date1 = date_format($otp->updated_at, "Y-m-d h:i:sa");
$date2 = date("Y-m-d h:i:sa");
$date1 = date_format($otp->updated_at, 'Y-m-d h:i:sa');
$date2 = date('Y-m-d h:i:sa');
$time1 = new DateTime($date2);
$time2 = new DateTime($date1);
$interval = $time1->diff($time2);
if ($interval->i > 10 || $interval->h > 0) {
$message = Lang::get('lang.otp-expired');
return $message;
} else {
if (Hash::check(Input::get('otp'), $otp->otp)) {
@@ -1045,21 +1046,22 @@ if ($org_name) {
return 1;
} else {
$message = Lang::get('lang.otp-not-matched');
return $message;
}
}
} else {
$message = Lang::get('lang.otp-invalid');
return $message;
}
} else {
$message = Lang::get('lang.otp-not-matched');
return $message;
}
}
/**
*/
public function getAgentDetails()
{
$users = User::where('role', '<>', 'user')->where('active', '=', 1)->get();

View File

@@ -77,6 +77,7 @@ class CategoryController extends Controller
/* add column name */
->addColumn('name', function ($model) {
$string = strip_tags($model->name);
return str_limit($string, 20);
})
/* add column Created */
@@ -147,6 +148,7 @@ class CategoryController extends Controller
// send success message to index page
try {
$category->fill($request->input())->save();
return Redirect::back()->with('success', Lang::get('lang.category_inserted_successfully'));
} catch (Exception $e) {
return Redirect::back()->with('fails', Lang::get('lang.category_not_inserted').'<li>'.$e->getMessage().'</li>');
@@ -191,6 +193,7 @@ class CategoryController extends Controller
try {
$category->slug = $slug;
$category->fill($request->input())->save();
return redirect('category')->with('success', Lang::get('lang.category_updated_successfully'));
} catch (Exception $e) {
//redirect to index with fails message

View File

@@ -144,11 +144,13 @@ class SettingsController extends Controller
$name = "<p>$model->name</p><br>";
$email = "<p>$model->email</p><br>";
$website = "<p>$model->website</p><br>";
return $name.$email.$website;
})
->addColumn('comment', function ($model) {
$created = TicketController::usertimezone(date($model->created_at));
return $model->comment."<p>$created</p>";
})
->addColumn('status', function ($model) {

View File

@@ -2,9 +2,10 @@
namespace App\Http\Controllers\Api\v1;
use App\Http\Controllers\Agent\helpdesk\TicketController as CoreTicketController;
use App\Http\Controllers\Controller;
use App\Http\Requests\helpdesk\TicketRequest;
//use Illuminate\Support\Facades\Request as Value;
use App\Http\Requests\helpdesk\TicketRequest;
use App\Model\helpdesk\Agent\Department;
use App\Model\helpdesk\Agent\Teams;
use App\Model\helpdesk\Manage\Help_topic;
@@ -20,7 +21,6 @@ use Exception;
use Illuminate\Http\Request;
use Illuminate\Pagination\LengthAwarePaginator;
use Illuminate\Support\Collection;
use App\Http\Controllers\Agent\helpdesk\TicketController as CoreTicketController;
/**
* -----------------------------------------------------------------------------
@@ -34,8 +34,8 @@ use App\Http\Controllers\Agent\helpdesk\TicketController as CoreTicketController
*
* @version v1
*/
class ApiController extends Controller {
class ApiController extends Controller
{
public $user;
public $request;
public $ticket;
@@ -55,7 +55,8 @@ class ApiController extends Controller {
/**
* @param Request $request
*/
public function __construct(Request $request) {
public function __construct(Request $request)
{
$this->request = $request;
$this->middleware('jwt.auth');
@@ -64,9 +65,7 @@ class ApiController extends Controller {
$user = \JWTAuth::parseToken()->authenticate();
$this->user = $user;
} catch (\Tymon\JWTAuth\Exceptions\TokenExpiredException $e) {
} catch (\Tymon\JWTAuth\Exceptions\JWTException $e) {
}
$ticket = new TicketController();
@@ -121,7 +120,8 @@ class ApiController extends Controller {
*
* @return json
*/
public function createTicket(\App\Http\Requests\helpdesk\CreateTicketRequest $request, \App\Model\helpdesk\Utility\CountryCode $code) {
public function createTicket(\App\Http\Requests\helpdesk\CreateTicketRequest $request, \App\Model\helpdesk\Utility\CountryCode $code)
{
try {
$user_id = $this->request->input('user_id');
@@ -179,7 +179,8 @@ class ApiController extends Controller {
*
* @return json
*/
public function ticketReply() {
public function ticketReply()
{
//dd($this->request->all());
try {
$v = \Validator::make($this->request->all(), [
@@ -196,6 +197,7 @@ class ApiController extends Controller {
$result = $result->join('users', 'ticket_thread.user_id', '=', 'users.id')
->select('ticket_thread.*', 'users.first_name as first_name')
->first();
return response()->json(compact('result'));
} catch (\Exception $e) {
$error = $e->getMessage();
@@ -215,7 +217,8 @@ class ApiController extends Controller {
*
* @return json
*/
public function editTicket() {
public function editTicket()
{
try {
$v = \Validator::make($this->request->all(), [
'ticket_id' => 'required|exists:tickets,id',
@@ -252,7 +255,8 @@ class ApiController extends Controller {
*
* @return json
*/
public function deleteTicket() {
public function deleteTicket()
{
try {
$v = \Validator::make($this->request->all(), [
'ticket_id' => 'required|exists:tickets,id',
@@ -285,7 +289,8 @@ class ApiController extends Controller {
*
* @return json
*/
public function openedTickets() {
public function openedTickets()
{
try {
// $result = $this->model->where('status', '=', 1)->where('isanswered', '=', 0)->where('assigned_to', '=', null)->orderBy('id', 'DESC')->get();
// return response()->json(compact('result'));
@@ -329,7 +334,8 @@ class ApiController extends Controller {
*
* @return json
*/
public function unassignedTickets() {
public function unassignedTickets()
{
try {
//dd('sdhjbc');
// $result = $this->model->where('assigned_to', '=', null)->where('status', '1')->orderBy('id', 'DESC')->get();
@@ -379,7 +385,8 @@ class ApiController extends Controller {
*
* @return json
*/
public function closeTickets() {
public function closeTickets()
{
try {
// $result = $this->model->where('status', '>', 1)->where('status', '<', 4)->orderBy('id', 'DESC')->get();
// return response()->json(compact('result'));
@@ -428,7 +435,8 @@ class ApiController extends Controller {
*
* @return json
*/
public function getAgents() {
public function getAgents()
{
try {
$result = $this->faveoUser->where('role', 'agent')->orWhere('role', 'admin')->where('active', 1)->get();
@@ -451,7 +459,8 @@ class ApiController extends Controller {
*
* @return json
*/
public function getTeams() {
public function getTeams()
{
try {
$result = $this->team->get();
@@ -474,7 +483,8 @@ class ApiController extends Controller {
*
* @return json
*/
public function assignTicket() {
public function assignTicket()
{
try {
$v = \Validator::make($this->request->all(), [
'ticket_id' => 'required',
@@ -512,7 +522,8 @@ class ApiController extends Controller {
*
* @return json
*/
public function getCustomers() {
public function getCustomers()
{
try {
$v = \Validator::make($this->request->all(), [
'search' => 'required',
@@ -546,7 +557,8 @@ class ApiController extends Controller {
*
* @return json
*/
public function getCustomersWith() {
public function getCustomersWith()
{
try {
$users = $this->user
->leftJoin('user_assign_organization', 'user_assign_organization.user_id', '=', 'users.id')
@@ -577,7 +589,8 @@ class ApiController extends Controller {
*
* @return json
*/
public function getCustomer() {
public function getCustomer()
{
try {
$v = \Validator::make($this->request->all(), [
'user_id' => 'required',
@@ -609,7 +622,8 @@ class ApiController extends Controller {
*
* @return json
*/
public function searchTicket() {
public function searchTicket()
{
try {
$v = \Validator::make($this->request->all(), [
'search' => 'required',
@@ -641,7 +655,8 @@ class ApiController extends Controller {
*
* @return json
*/
public function ticketThreads() {
public function ticketThreads()
{
try {
$v = \Validator::make($this->request->all(), [
'id' => 'required',
@@ -678,7 +693,8 @@ class ApiController extends Controller {
*
* @return json
*/
public function checkUrl() {
public function checkUrl()
{
//dd($this->request);
try {
$v = \Validator::make($this->request->all(), [
@@ -715,7 +731,8 @@ class ApiController extends Controller {
*
* @return string
*/
public function urlResult() {
public function urlResult()
{
return 'success';
}
@@ -726,7 +743,8 @@ class ApiController extends Controller {
*
* @return type int|string|json
*/
public function callGetApi($url) {
public function callGetApi($url)
{
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_URL, $url);
@@ -750,7 +768,8 @@ class ApiController extends Controller {
*
* @return type int|string|json
*/
public function callPostApi($url, $data) {
public function callPostApi($url, $data)
{
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_URL, $url);
@@ -772,7 +791,8 @@ class ApiController extends Controller {
*
* @return type | json
*/
public function generateApiKey() {
public function generateApiKey()
{
try {
$set = $this->setting->where('id', '1')->first();
//dd($set);
@@ -806,7 +826,8 @@ class ApiController extends Controller {
*
* @return json
*/
public function getHelpTopic() {
public function getHelpTopic()
{
try {
$result = $this->helptopic->get();
@@ -829,7 +850,8 @@ class ApiController extends Controller {
*
* @return json
*/
public function getSlaPlan() {
public function getSlaPlan()
{
try {
$result = $this->slaPlan->get();
@@ -852,7 +874,8 @@ class ApiController extends Controller {
*
* @return json
*/
public function getPriority() {
public function getPriority()
{
try {
$result = $this->priority->get();
@@ -875,7 +898,8 @@ class ApiController extends Controller {
*
* @return json
*/
public function getDepartment() {
public function getDepartment()
{
try {
$result = $this->department->get();
@@ -898,7 +922,8 @@ class ApiController extends Controller {
*
* @return type json
*/
public function getTickets() {
public function getTickets()
{
try {
$tickets = $this->model->orderBy('created_at', 'desc')->paginate(10);
$tickets->toJson();
@@ -922,7 +947,8 @@ class ApiController extends Controller {
*
* @return type json
*/
public function inbox() {
public function inbox()
{
try {
$user = \JWTAuth::parseToken()->authenticate();
$inbox = $this->user->join('tickets', function ($join) {
@@ -949,6 +975,7 @@ class ApiController extends Controller {
->distinct()
->paginate(10)
->toJson();
return $inbox;
} catch (\Exception $ex) {
$error = $ex->getMessage();
@@ -968,7 +995,8 @@ class ApiController extends Controller {
*
* @return type json
*/
public function internalNote() {
public function internalNote()
{
try {
$v = \Validator::make($this->request->all(), [
'userid' => 'required|exists:users,id',
@@ -1000,7 +1028,8 @@ class ApiController extends Controller {
}
}
public function getTrash() {
public function getTrash()
{
try {
$user = \JWTAuth::parseToken()->authenticate();
$trash = $this->user->join('tickets', function ($join) {
@@ -1042,7 +1071,8 @@ class ApiController extends Controller {
}
}
public function getMyTicketsAgent() {
public function getMyTicketsAgent()
{
try {
$v = \Validator::make($this->request->all(), [
'user_id' => 'required|exists:users,id',
@@ -1100,7 +1130,8 @@ class ApiController extends Controller {
}
}
public function getMyTicketsUser() {
public function getMyTicketsUser()
{
try {
$v = \Validator::make($this->request->all(), [
'user_id' => 'required|exists:users,id',
@@ -1151,7 +1182,8 @@ class ApiController extends Controller {
}
}
public function getTicketById() {
public function getTicketById()
{
try {
$v = \Validator::make($this->request->all(), [
'id' => 'required|exists:tickets,id',
@@ -1172,9 +1204,8 @@ class ApiController extends Controller {
->where('tickets.id', '=', $id);
});
$response = $this->differenciateHelpTopic($query)
->leftJoin('department','tickets.dept_id','=',"department.id")
->leftJoin('department', 'tickets.dept_id', '=', 'department.id')
->leftJoin('ticket_priority', 'tickets.priority_id', '=', 'ticket_priority.priority_id')
->leftJoin('ticket_status', 'tickets.status', '=', 'ticket_status.id')
->leftJoin('sla_plan', 'tickets.sla', '=', 'sla_plan.id')
@@ -1225,7 +1256,8 @@ class ApiController extends Controller {
}
}
public function createPagination($array, $perPage) {
public function createPagination($array, $perPage)
{
try {
//Get current page form url e.g. &page=6
$currentPage = LengthAwarePaginator::resolveCurrentPage();
@@ -1253,7 +1285,8 @@ class ApiController extends Controller {
}
}
public function collaboratorSearch() {
public function collaboratorSearch()
{
$this->validate($this->request, ['term' => 'required']);
try {
$emails = $this->ticket->autosearch();
@@ -1280,7 +1313,8 @@ class ApiController extends Controller {
}
}
public function avatarUrl($email) {
public function avatarUrl($email)
{
try {
$user = new User();
$user = $user->where('email', $email)->first();
@@ -1297,7 +1331,8 @@ class ApiController extends Controller {
}
}
public function addCollaboratorForTicket() {
public function addCollaboratorForTicket()
{
try {
$v = \Validator::make(\Input::get(), [
'email' => 'required|email|unique:users',
@@ -1327,7 +1362,8 @@ class ApiController extends Controller {
}
}
public function getCollaboratorForTicket() {
public function getCollaboratorForTicket()
{
try {
$v = \Validator::make(\Input::get(), [
'ticket_id' => 'required',
@@ -1356,7 +1392,8 @@ class ApiController extends Controller {
}
}
public function deleteCollaborator() {
public function deleteCollaborator()
{
try {
$v = \Validator::make(\Input::get(), [
'ticketid' => 'required',
@@ -1380,7 +1417,8 @@ class ApiController extends Controller {
}
}
public function dependency() {
public function dependency()
{
try {
$department = $this->department->select('name', 'id')->get()->toArray();
$sla = $this->slaPlan->select('name', 'id')->get()->toArray();
@@ -1403,7 +1441,8 @@ class ApiController extends Controller {
}
}
public function differenciateHelpTopic($query) {
public function differenciateHelpTopic($query)
{
$ticket = $query->first();
$check = 'department';
if ($ticket) {
@@ -1417,10 +1456,12 @@ class ApiController extends Controller {
return $query->select('tickets.dept_id');
}
}
return $query;
}
public function getSystem($check, $query) {
public function getSystem($check, $query)
{
switch ($check) {
case 'department':
return $query->select('tickets.dept_id');
@@ -1438,7 +1479,8 @@ class ApiController extends Controller {
*
* @return type json
*/
public function register(Request $request) {
public function register(Request $request)
{
try {
$v = \Validator::make($request->all(), [
'email' => 'required|email|unique:users',
@@ -1455,7 +1497,7 @@ class ApiController extends Controller {
$password = \Hash::make($request->input('password'));
$role = $request->input('role');
if ($auth->role == 'agent') {
$role = "user";
$role = 'user';
}
$user = new User();
$user->password = $password;
@@ -1463,6 +1505,7 @@ class ApiController extends Controller {
$user->email = $email;
$user->role = $role;
$user->save();
return response()->json(compact('user'));
} catch (\Exception $e) {
$error = $e->getMessage();
@@ -1470,5 +1513,4 @@ class ApiController extends Controller {
return response()->json(compact('error'));
}
}
}

View File

@@ -3,31 +3,29 @@
namespace App\Http\Controllers\Auth;
// controllers
use App\Http\Controllers\Admin\helpdesk\SocialMedia\SocialMediaController;
use App\Http\Controllers\Common\PhpMailController;
use App\Http\Controllers\Common\SettingsController;
use App\Http\Controllers\Controller;
// requests
use App\Http\Controllers\Controller;
use App\Http\Requests\helpdesk\LoginRequest;
use App\Http\Requests\helpdesk\RegisterRequest;
use App\Http\Requests\helpdesk\OtpVerifyRequest;
use App\Model\helpdesk\Settings\Security;
use App\Http\Requests\helpdesk\RegisterRequest;
use App\Model\helpdesk\Settings\CommonSettings;
use App\Model\helpdesk\Ticket\Ticket_Thread;
use App\Model\helpdesk\Ticket\Tickets;
use App\Model\helpdesk\Settings\Plugin;
use App\Model\helpdesk\Settings\Security;
use App\Model\helpdesk\Ticket\Ticket_Thread;
// classes
use App\User;
use App\Model\helpdesk\Ticket\Tickets;
use App\Model\helpdesk\Utility\Otp;
use App\User;
use Auth;
use DateTime;
use DB;
use Hash;
use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers;
use Lang;
use DateTime;
use Input;
use Lang;
use Socialite;
use App\Http\Controllers\Admin\helpdesk\SocialMedia\SocialMediaController;
/**
* ---------------------------------------------------
@@ -39,8 +37,8 @@ use App\Http\Controllers\Admin\helpdesk\SocialMedia\SocialMediaController;
*
* @author Ladybird <info@ladybirdweb.com>
*/
class AuthController extends Controller {
class AuthController extends Controller
{
use AuthenticatesAndRegistersUsers;
/* to redirect after login */
@@ -61,14 +59,15 @@ class AuthController extends Controller {
*
* @return void
*/
public function __construct(PhpMailController $PhpMailController, SocialMediaController $social) {
public function __construct(PhpMailController $PhpMailController, SocialMediaController $social)
{
$this->PhpMailController = $PhpMailController;
$social->configService();
$this->middleware('guest', ['except' => ['getLogout', 'verifyOTP', 'redirectToProvider']]);
}
public function redirectToProvider($provider, $redirect = '') {
public function redirectToProvider($provider, $redirect = '')
{
if ($redirect !== '') {
$this->setSession($provider, $redirect);
}
@@ -78,7 +77,8 @@ class AuthController extends Controller {
return $s;
}
public function handleProviderCallback($provider) {
public function handleProviderCallback($provider)
{
try {
//notice we are not doing any validation, you should do it
$this->changeRedirect();
@@ -109,7 +109,6 @@ class AuthController extends Controller {
$user = User::firstOrCreate($data);
}
Auth::login($user);
}
//after login redirecting to home page
return redirect('/');
@@ -123,7 +122,8 @@ class AuthController extends Controller {
*
* @return type Response
*/
public function getRegister(CommonSettings $settings) {
public function getRegister(CommonSettings $settings)
{
// Event for login
$settings = $settings->select('status')->where('option_name', '=', 'send_otp')->first();
$email_mandatory = $settings->select('status')->where('option_name', '=', 'email_mandatory')->first();
@@ -148,7 +148,8 @@ class AuthController extends Controller {
*
* @return type Response
*/
public function postRegister(User $user, RegisterRequest $request) {
public function postRegister(User $user, RegisterRequest $request)
{
try {
$request_array = $request->input();
$password = Hash::make($request->input('password'));
@@ -198,6 +199,7 @@ class AuthController extends Controller {
} else {
$message12 = Lang::get('lang.activate_your_account_click_on_Link_that_send_to_your_mail');
}
return redirect('home')->with('success', $message12);
} catch (\Exception $e) {
return redirect()->back()->with('fails', $e->getMessage());
@@ -211,13 +213,15 @@ class AuthController extends Controller {
*
* @return type redirect
*/
public function accountActivate($token) {
public function accountActivate($token)
{
$user = User::where('remember_token', '=', $token)->first();
if ($user) {
$user->active = 1;
$user->remember_token = null;
$user->save();
$this->openTicketAfterVerification($user->id);
return redirect('/auth/login')->with('status', 'Acount activated. Login to start');
} else {
return redirect('/auth/login')->with('fails', 'Invalid Token');
@@ -232,7 +236,8 @@ class AuthController extends Controller {
*
* @return type Response
*/
public function getMail($token, User $user) {
public function getMail($token, User $user)
{
$user = $user->where('remember_token', $token)->where('active', 0)->first();
if ($user) {
$user->active = 1;
@@ -249,7 +254,8 @@ class AuthController extends Controller {
*
* @return type Response
*/
public function getLogin() {
public function getLogin()
{
$directory = base_path();
if (file_exists($directory.DIRECTORY_SEPARATOR.'.env')) {
if (Auth::user()) {
@@ -384,14 +390,15 @@ class AuthController extends Controller {
if ($request->input('referer')) {
return \Redirect::route($request->input('referer'));
}
return \Redirect::route('/');
} else {
return redirect()->intended($this->redirectPath());
}
}
}
}
}
}
return redirect()->back()
->withInput($request->only('email', 'remember'))
->withErrors([
@@ -409,7 +416,8 @@ class AuthController extends Controller {
*
* @return type Response
*/
public function addLoginAttempt($value, $field) {
public function addLoginAttempt($value, $field)
{
$result = DB::table('login_attempts')->where('IP', '=', $value)->first();
$data = $result;
$security = Security::whereId('1')->first();
@@ -418,14 +426,14 @@ class AuthController extends Controller {
$attempts = $data->Attempts + 1;
if ($attempts == $apt) {
// $result = DB::select('UPDATE login_attempts SET Attempts='.$attempts.", LastLogin=NOW() WHERE IP = '$value' OR User = '$field'");
$result = DB::table('login_attempts')->where('IP', '=', $value)->orWhere('User', '=', $field)->update(['Attempts' => $attempts, 'LastLogin' => Date('Y-m-d H:i:s')]);
$result = DB::table('login_attempts')->where('IP', '=', $value)->orWhere('User', '=', $field)->update(['Attempts' => $attempts, 'LastLogin' => date('Y-m-d H:i:s')]);
} else {
$result = DB::table('login_attempts')->where('IP', '=', $value)->orWhere('User', '=', $field)->update(['Attempts' => $attempts]);
// $result = DB::select("UPDATE login_attempts SET Attempts=".$attempts." WHERE IP = '$value' OR User = '$field'");
}
} else {
// $result = DB::select("INSERT INTO login_attempts (Attempts,User,IP,LastLogin) values (1,'$field','$value', NOW())");
$result = DB::table('login_attempts')->update(['Attempts' => 1, 'User' => $field, 'IP' => $value, 'LastLogin' => Date('Y-m-d H:i:s')]);
$result = DB::table('login_attempts')->update(['Attempts' => 1, 'User' => $field, 'IP' => $value, 'LastLogin' => date('Y-m-d H:i:s')]);
}
}
@@ -436,7 +444,8 @@ class AuthController extends Controller {
*
* @return type Response
*/
public function clearLoginAttempts($value, $field) {
public function clearLoginAttempts($value, $field)
{
$data = DB::table('login_attempts')->where('IP', '=', $value)->orWhere('User', '=', $field)->update(['attempts' => '0']);
return $data;
@@ -449,7 +458,8 @@ class AuthController extends Controller {
*
* @return type Response
*/
public function confirmIPAddress($value, $field) {
public function confirmIPAddress($value, $field)
{
$security = Security::whereId('1')->first();
$time = $security->lockout_period;
$max_attempts = $security->backlist_threshold;
@@ -466,6 +476,7 @@ class AuthController extends Controller {
return 1;
} else {
$this->clearLoginAttempts($value, $field);
return 0;
}
}
@@ -478,16 +489,20 @@ class AuthController extends Controller {
*
* @return type string
*/
protected function getFailedLoginMessage() {
protected function getFailedLoginMessage()
{
return Lang::get('lang.this_field_do_not_match_our_records');
}
/**
*@category function to show verify OTP page
*
*@param null
*
*@return response|view
*/
public function getVerifyOTP() {
public function getVerifyOTP()
{
if (\Session::has('values')) {
return view('auth.otp-verify');
} else {
@@ -497,10 +512,13 @@ class AuthController extends Controller {
/**
*@category function to verify OTP
*
*@param $request
*
*@return int|string
*/
public function verifyOTP(LoginRequest $request) {
public function verifyOTP(LoginRequest $request)
{
$user = User::select('id', 'mobile', 'user_name')->where('email', '=', $request->input('email'))
->orWhere('user_name', '=', $request->input('email'))->first();
$otp_length = strlen($request->input('otp'));
@@ -510,10 +528,10 @@ class AuthController extends Controller {
$otp = Otp::select('otp', 'updated_at')->where('user_id', '=', $user->id)
->first();
if ($otp != null) {
if (($otp_length == 6 && !preg_match("/[a-z]/i", $request->input('otp')))) {
if (($otp_length == 6 && !preg_match('/[a-z]/i', $request->input('otp')))) {
$otp2 = Hash::make($request->input('otp'));
$date1 = date_format($otp->updated_at, "Y-m-d h:i:sa");
$date2 = date("Y-m-d h:i:sa");
$date1 = date_format($otp->updated_at, 'Y-m-d h:i:sa');
$date2 = date('Y-m-d h:i:sa');
$time1 = new DateTime($date2);
$time2 = new DateTime($date1);
$interval = $time1->diff($time2);
@@ -526,6 +544,7 @@ class AuthController extends Controller {
User::where('id', '=', $user->id)
->update(['active' => 1]);
$this->openTicketAfterVerification($user->id);
return $this->postLogin($request);
} else {
$message = Lang::get('lang.otp-not-matched');
@@ -538,25 +557,30 @@ class AuthController extends Controller {
$message = Lang::get('lang.otp-not-matched');
}
}
return \Redirect::route('otp-verification')
->withInput($request->input())
->with(['values' => $request->input(),
'number' => $user->mobile,
'name' => $user->user_name,
'fails' => $message]);
'fails' => $message, ]);
}
public function resendOTP(OtpVerifyRequest $request) {
public function resendOTP(OtpVerifyRequest $request)
{
if (!\Schema::hasTable('user_verification') || !\Schema::hasTable('sms')) {
$message = Lang::get('lang.opt-can-not-be-verified');
return $message;
} else {
$sms = DB::table('sms')->get();
if (count($sms) > 0) {
\Event::fire(new \App\Events\LoginEvent($request));
return 1;
} else {
$message = Lang::get('lang.opt-can-not-be-verified');
return $message;
}
}
@@ -564,11 +588,15 @@ class AuthController extends Controller {
/**
* @category function to change ticket status when user verifies his account
*
* @param int $id => user_id
*
* @return null
*
* @author manish.verma@ladybirdweb.com
*/
public function openTicketAfterVerification($id) {
public function openTicketAfterVerification($id)
{
// dd($id);
$ticket = Tickets::select('id')
->where(['user_id' => $id, 'status' => 6])
@@ -579,23 +607,23 @@ class AuthController extends Controller {
foreach ($ticket as $value) {
$ticket_id = $value->id;
Ticket_Thread::where('ticket_id', '=', $ticket_id)
->update(["updated_at" => date('Y-m-d H:i:s')]);
->update(['updated_at' => date('Y-m-d H:i:s')]);
}
}
}
public function changeRedirect() {
public function changeRedirect()
{
$provider = \Session::get('provider');
$url = \Session::get($provider.'redirect');
\Config::set("services.$provider.redirect", $url);
}
public function setSession($provider, $redirect) {
public function setSession($provider, $redirect)
{
$url = url($redirect);
\Session::set('provider', $provider);
\Session::set($provider.'redirect', $url);
$this->changeRedirect();
}
}

View File

@@ -4,7 +4,6 @@ namespace App\Http\Controllers\Auth;
// controllers
use App\Http\Controllers\Common\PhpMailController;
use App\Http\Controllers\Common\SettingsController;
use App\Http\Controllers\Controller;
// request
use App\User;
@@ -54,7 +53,7 @@ class PasswordController extends Controller
try {
$date = date('Y-m-d H:i:s');
$this->validate($request, ['email' => 'required']);
\Event::fire('reset.password',array());
\Event::fire('reset.password', []);
$user = User::where('email', '=', $request->only('email'))->orWhere('mobile', '=', $request->only('email'))->first();
if (isset($user)) {
$user1 = $user->email;
@@ -79,9 +78,10 @@ class PasswordController extends Controller
'url' => url('password/reset/'.$code),
'name' => $name,
'mobile' => $user->mobile,
'code' => $user->country_code];
\Event::fire('reset.password2',array($value));
'code' => $user->country_code, ];
\Event::fire('reset.password2', [$value]);
}
return redirect()->back()->with('status', Lang::get('lang.we_have_e-mailed_your_password_reset_link'));
} else {
return redirect()->back()->with('fails', Lang::get("lang.we_can't_find_a_user_with_that_e-mail_address"));
@@ -95,11 +95,11 @@ class PasswordController extends Controller
* Reset the given user's password.
*
* @param \Illuminate\Http\Request $request
*
* @return \Illuminate\Http\Response
*/
public function reset(Request $request)
{
$this->validate(
$request,
$this->getResetValidationRules(),
@@ -111,7 +111,7 @@ class PasswordController extends Controller
$email = $credentials['email'];
$password = $credentials['password'];
$token = $credentials['token'];
$response = "fails";
$response = 'fails';
$password_tokens = \DB::table('password_resets')->where('email', '=', $email)->first();
if ($password_tokens) {
if ($password_tokens->token == $token) {
@@ -120,17 +120,16 @@ class PasswordController extends Controller
if ($user) {
$user->password = \Hash::make($password);
$user->save();
$response = "success";
$response = 'success';
} else {
$response = "fails";
$response = 'fails';
}
}
}
if ($response == "success") {
if ($response == 'success') {
return redirect('/auth/login')->with('status', Lang::get('lang.password-reset-successfully'));
} else {
return redirect('/home')->with('fails', Lang::get('lang.password-can-not-reset'));
}
}
}

View File

@@ -11,15 +11,14 @@ use App\Model\helpdesk\Agent\Department;
// models
use App\Model\helpdesk\Form\Fields;
use App\Model\helpdesk\Manage\Help_topic;
use App\Model\helpdesk\Settings\CommonSettings;
use App\Model\helpdesk\Settings\System;
use App\Model\helpdesk\Settings\Ticket;
use App\Model\helpdesk\Settings\CommonSettings;
use App\Model\helpdesk\Ticket\Ticket_attachments;
use App\Model\helpdesk\Ticket\Ticket_Priority;
use App\Model\helpdesk\Ticket\Ticket_source;
use App\Model\helpdesk\Ticket\Ticket_Thread;
use App\Model\helpdesk\Ticket\Tickets;
use App\Model\helpdesk\Ticket\Ticket_Priority;
use App\Model\helpdesk\Utility\CountryCode;
use App\User;
use Exception;
@@ -36,15 +35,16 @@ use Redirect;
*
* @author Ladybird <info@ladybirdweb.com>
*/
class FormController extends Controller {
class FormController extends Controller
{
/**
* Create a new controller instance.
* Constructor to check.
*
* @return void
*/
public function __construct(TicketWorkflowController $TicketWorkflowController) {
public function __construct(TicketWorkflowController $TicketWorkflowController)
{
$this->middleware('board');
// creating a TicketController instance
$this->TicketWorkflowController = $TicketWorkflowController;
@@ -57,7 +57,8 @@ class FormController extends Controller {
*
* @return type
*/
public function getForm(Help_topic $topic, CountryCode $code) {
public function getForm(Help_topic $topic, CountryCode $code)
{
if (\Config::get('database.install') == '%0%') {
return \Redirect::route('licence');
}
@@ -74,8 +75,9 @@ class FormController extends Controller {
if ($phonecode->phonecode) {
$phonecode = $phonecode->phonecode;
} else {
$phonecode = "";
$phonecode = '';
}
return view('themes.default1.client.helpdesk.form', compact('topics', 'codes', 'email_mandatory'))->with('phonecode', $phonecode);
} else {
return \Redirect::route('home');
@@ -90,35 +92,35 @@ class FormController extends Controller {
*
* @return type string
*/
public function postForm($id, Help_topic $topic) {
public function postForm($id, Help_topic $topic)
{
if ($id != 0) {
$helptopic = $topic->where('id', '=', $id)->first();
$custom_form = $helptopic->custom_form;
$values = Fields::where('forms_id', '=', $custom_form)->get();
if (!$values) {
}
if ($values) {
foreach ($values as $form_data) {
if ($form_data->type == "select") {
if ($form_data->type == 'select') {
$form_fields = explode(',', $form_data->value);
$var = "";
$var = '';
foreach ($form_fields as $form_field) {
$var .= '<option value="'.$form_field.'">'.$form_field.'</option>';
}
echo '<br/><label>'.ucfirst($form_data->label).'</label><select class="form-control" name="'.$form_data->name.'">'.$var.'</select>';
} elseif ($form_data->type == "radio") {
} elseif ($form_data->type == 'radio') {
$type2 = $form_data->value;
$vals = explode(',', $type2);
echo '<br/><label>'.ucfirst($form_data->label).'</label><br/>';
foreach ($vals as $val) {
echo '<input type="'.$form_data->type.'" name="'.$form_data->name.'"> '.$form_data->value.'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
}
echo "<br/>";
} elseif ($form_data->type == "textarea") {
echo '<br/>';
} elseif ($form_data->type == 'textarea') {
$type3 = $form_data->value;
echo '<br/><label>'.$form_data->label.'</label></br><textarea id="unique-textarea" name="'.$form_data->name.'" class="form-control" style="height:15%;"></textarea>';
} elseif ($form_data->type == "checkbox") {
} elseif ($form_data->type == 'checkbox') {
$type4 = $form_data->value;
$checks = explode(',', $type4);
echo '<br/><label>'.ucfirst($form_data->label).'</label><br/>';
@@ -142,7 +144,8 @@ class FormController extends Controller {
* @param type Request $request
* @param type User $user
*/
public function postedForm(User $user, ClientRequest $request, Ticket $ticket_settings, Ticket_source $ticket_source, Ticket_attachments $ta, CountryCode $code) {
public function postedForm(User $user, ClientRequest $request, Ticket $ticket_settings, Ticket_source $ticket_source, Ticket_attachments $ta, CountryCode $code)
{
$form_extras = $request->except('Name', 'Phone', 'Email', 'Subject', 'Details', 'helptopic', '_wysihtml5_mode', '_token', 'mobile', 'Code', 'priority');
$name = $request->input('Name');
$phone = $request->input('Phone');
@@ -244,8 +247,8 @@ class FormController extends Controller {
*
* @return type view
*/
public function post_ticket_reply($id, Request $request) {
public function post_ticket_reply($id, Request $request)
{
try {
if ($comment != null) {
$tickets = Tickets::where('id', '=', $id)->first();
@@ -285,13 +288,14 @@ class FormController extends Controller {
}
}
public function getCustomForm(Request $request) {
$html = "";
public function getCustomForm(Request $request)
{
$html = '';
$helptopic_id = $request->input('helptopic');
$helptopics = new Help_topic();
$helptopic = $helptopics->find($helptopic_id);
if (!$helptopic) {
throw new Exception("We can not find your request");
throw new Exception('We can not find your request');
}
$custom_form = $helptopic->custom_form;
if ($custom_form) {
@@ -300,7 +304,7 @@ class FormController extends Controller {
$form_controller = new \App\Http\Controllers\Admin\helpdesk\FormController($fields, $forms);
$html = $form_controller->renderForm($custom_form);
}
return $html;
}
}

View File

@@ -6,30 +6,30 @@ namespace App\Http\Controllers\Client\helpdesk;
use App\Http\Controllers\Common\PhpMailController;
use App\Http\Controllers\Controller;
// requests
use App\Http\Requests\helpdesk\OtpVerifyRequest;
use App\Http\Requests\helpdesk\ProfilePassword;
use App\Http\Requests\helpdesk\ProfileRequest;
use App\Http\Requests\helpdesk\TicketRequest;
use App\Model\helpdesk\Manage\Help_topic;
// models
use App\Model\helpdesk\Manage\Help_topic;
use App\Model\helpdesk\Settings\CommonSettings;
use App\Model\helpdesk\Settings\Company;
use App\Model\helpdesk\Settings\System;
use App\Model\helpdesk\Ticket\Ticket_Thread;
use App\Model\helpdesk\Ticket\Tickets;
use App\Model\helpdesk\Utility\CountryCode;
use App\Model\helpdesk\Settings\CommonSettings;
use App\Http\Requests\helpdesk\OtpVerifyRequest;
use App\Model\helpdesk\Utility\Otp;
use App\User;
use Auth;
// classes
use DateTime;
use DB;
use Exception;
use GeoIP;
use Hash;
use Illuminate\Http\Request;
use Input;
use Lang;
use DateTime;
use DB;
use Socialite;
/**
@@ -37,14 +37,15 @@ use Socialite;
*
* @author Ladybird <info@ladybirdweb.com>
*/
class GuestController extends Controller {
class GuestController extends Controller
{
/**
* Create a new controller instance.
*
* @return type void
*/
public function __construct(PhpMailController $PhpMailController) {
public function __construct(PhpMailController $PhpMailController)
{
$this->middleware('board');
$this->PhpMailController = $PhpMailController;
// checking authentication
@@ -56,15 +57,17 @@ class GuestController extends Controller {
*
* @return type Response
*/
public function getProfile(CountryCode $code) {
public function getProfile(CountryCode $code)
{
$user = Auth::user();
$location = GeoIP::getLocation();
$phonecode = $code->where('iso', '=', $location->iso_code)->first();
$settings = CommonSettings::select('status')->where('option_name', '=', 'send_otp')->first();
$status = $settings->status;
return view('themes.default1.client.helpdesk.profile', compact('user'))
->with(['phonecode' => $phonecode->phonecode,
'verify' => $status]);
'verify' => $status, ]);
}
/**
@@ -75,7 +78,8 @@ class GuestController extends Controller {
*
* @return type Response
*/
public function postProfile(ProfileRequest $request) {
public function postProfile(ProfileRequest $request)
{
try {
// geet authenticated user details
$user = Auth::user();
@@ -113,7 +117,6 @@ class GuestController extends Controller {
} else {
return redirect()->back()->route('profile')->with('fails', Lang::get('lang.Profile-Updated-sucessfully'));
}
} catch (Exception $e) {
return redirect()->back()->route('profile')->with('fails', $e->getMessage());
}
@@ -121,8 +124,10 @@ class GuestController extends Controller {
/**
*@category fucntion to check if mobile number is unqique or not
*
*@param string $mobile
*@return boolean true(if mobile exists in users table)/false (if mobile does not exist in user table)
*
*@return bool true(if mobile exists in users table)/false (if mobile does not exist in user table)
*/
public function checkMobile($mobile)
{
@@ -134,6 +139,7 @@ class GuestController extends Controller {
return true;
}
}
return false;
}
@@ -144,7 +150,8 @@ class GuestController extends Controller {
*
* @return type Response
*/
public function getTicket(Help_topic $topic) {
public function getTicket(Help_topic $topic)
{
$topics = $topic->get();
return view('themes.default1.client.helpdesk.tickets.form', compact('topics'));
@@ -157,7 +164,8 @@ class GuestController extends Controller {
*
* @return type
*/
public function getForm(Help_topic $topic) {
public function getForm(Help_topic $topic)
{
if (\Config::get('database.install') == '%0%') {
return \Redirect::route('licence');
}
@@ -179,7 +187,8 @@ class GuestController extends Controller {
*
* @return type Response
*/
public function getMyticket() {
public function getMyticket()
{
return view('themes.default1.client.helpdesk.mytickets');
}
@@ -192,7 +201,8 @@ class GuestController extends Controller {
*
* @return type Response
*/
public function thread(Ticket_Thread $thread, Tickets $tickets, User $user) {
public function thread(Ticket_Thread $thread, Tickets $tickets, User $user)
{
$user_id = Auth::user()->id;
//dd($user_id);
/* get the ticket's id == ticket_id of thread */
@@ -209,8 +219,8 @@ class GuestController extends Controller {
*
* @return
*/
public function ticketEdit() {
public function ticketEdit()
{
}
/**
@@ -221,7 +231,8 @@ class GuestController extends Controller {
*
* @return type Response
*/
public function postProfilePassword(ProfilePassword $request) {
public function postProfilePassword(ProfilePassword $request)
{
$user = Auth::user();
//echo $user->password;
if (Hash::check($request->input('old_password'), $user->getAuthPassword())) {
@@ -246,7 +257,8 @@ class GuestController extends Controller {
*
* @return type Response
*/
public function reply(Ticket_Thread $thread, TicketRequest $request) {
public function reply(Ticket_Thread $thread, TicketRequest $request)
{
$thread->ticket_id = $request->input('ticket_ID');
$thread->title = $request->input('To');
$thread->user_id = Auth::user()->id;
@@ -268,7 +280,8 @@ class GuestController extends Controller {
*
* @return type response
*/
public function getCheckTicket(Tickets $ticket, User $user) {
public function getCheckTicket(Tickets $ticket, User $user)
{
return view('themes.default1.client.helpdesk.guest-user.newticket', compact('ticket'));
}
@@ -282,7 +295,8 @@ class GuestController extends Controller {
*
* @return type Response
*/
public function PostCheckTicket(Request $request) {
public function PostCheckTicket(Request $request)
{
$validator = \Validator::make($request->all(), [
'email' => 'required|email',
'ticket_number' => 'required',
@@ -331,10 +345,12 @@ class GuestController extends Controller {
*
* @return type
*/
public function get_ticket_email($id, CommonSettings $common_settings) {
public function get_ticket_email($id, CommonSettings $common_settings)
{
$common_setting = $common_settings->select('status')
->where('option_name', '=', 'user_set_ticket_status')
->first();
return view('themes.default1.client.helpdesk.ckeckticket', compact('id', 'common_setting'));
}
@@ -345,7 +361,8 @@ class GuestController extends Controller {
*
* @return type
*/
public function getTicketStat(Tickets $ticket) {
public function getTicketStat(Tickets $ticket)
{
return view('themes.default1.client.helpdesk.ckeckticket', compact('ticket'));
}
@@ -354,7 +371,8 @@ class GuestController extends Controller {
*
* @return type
*/
public function company() {
public function company()
{
$company = Company::Where('id', '=', '1')->first();
if ($company->company_name == null) {
$company = 'Support Center';
@@ -371,10 +389,11 @@ class GuestController extends Controller {
$sms = DB::table('sms')->get();
if (count($sms) > 0) {
\Event::fire(new \App\Events\LoginEvent($request));
return 1;
}
} else {
return "Plugin has not been setup successfully.";
return 'Plugin has not been setup successfully.';
}
}
@@ -386,15 +405,16 @@ class GuestController extends Controller {
->first();
if ($otp != null) {
$otp_length = strlen(Input::get('otp'));
if(($otp_length == 6 && !preg_match("/[a-z]/i", Input::get('otp'))) ) {
if (($otp_length == 6 && !preg_match('/[a-z]/i', Input::get('otp')))) {
$otp2 = Hash::make(Input::get('otp'));
$date1 = date_format($otp->updated_at, "Y-m-d h:i:sa");
$date2 = date("Y-m-d h:i:sa");
$date1 = date_format($otp->updated_at, 'Y-m-d h:i:sa');
$date2 = date('Y-m-d h:i:sa');
$time1 = new DateTime($date2);
$time2 = new DateTime($date1);
$interval = $time1->diff($time2);
if ($interval->i > 10 || $interval->h > 0) {
$message = Lang::get('lang.otp-expired');
return $message;
} else {
if (Hash::check(Input::get('otp'), $otp->otp)) {
@@ -406,20 +426,24 @@ class GuestController extends Controller {
return 1;
} else {
$message = Lang::get('lang.otp-not-matched');
return $message;
}
}
} else {
$message = Lang::get('lang.otp-invalid');
return $message;
}
} else {
$message = Lang::get('lang.otp-not-matched');
return $message;
}
}
public function sync() {
public function sync()
{
try {
$provider = $this->getProvider();
$this->changeRedirect();
@@ -431,56 +455,67 @@ class GuestController extends Controller {
$user['email'] = $users->email;
$user['username'] = $users->nickname;
$user['avatar'] = $users->avatar;
return redirect('client-profile')->with('success', 'Additional informations fetched');
} catch (Exception $ex) {
dd($ex);
return redirect('client-profile')->with('fails', $ex->getMessage());
}
}
public function getProvider() {
public function getProvider()
{
$provider = \Session::get('provider');
return $provider;
}
public function changeRedirect() {
public function changeRedirect()
{
$provider = \Session::get('provider');
$url = \Session::get($provider.'redirect');
\Config::set("services.$provider.redirect", $url);
}
public function forgetSession() {
public function forgetSession()
{
$provider = $this->getProvider();
\Session::forget('provider');
\Session::forget($provider.'redirect');
}
public function checkArray($key, $array) {
$value = "";
public function checkArray($key, $array)
{
$value = '';
if (array_key_exists($key, $array)) {
$value = $array[$key];
}
return $value;
}
public function updateUser($user = []) {
public function updateUser($user = [])
{
$userid = \Auth::user()->id;
$useremail = \Auth::user()->email;
$email = $this->checkArray('email', $user); //$user['email'];
if ($email !== "" && $email !== $useremail) {
throw new Exception("Sorry! your current email and " . ucfirst($user['provider']) . " email is different so system can not sync");
if ($email !== '' && $email !== $useremail) {
throw new Exception('Sorry! your current email and '.ucfirst($user['provider']).' email is different so system can not sync');
}
$this->update($userid, $user);
}
public function update($userid, $user, $provider) {
public function update($userid, $user, $provider)
{
$email = $this->checkArray('email', $user);
$this->deleteUser($userid, $user, $provider);
$this->insertAdditional($userid, $provider, $user);
$this->changeEmail($email);
}
public function deleteUser($userid, $user, $provider) {
public function deleteUser($userid, $user, $provider)
{
$info = new \App\UserAdditionalInfo();
$infos = $info->where('owner', $userid)->where('service', $provider)->get();
if ($infos->count() > 0 && count($user) > 0) {
@@ -492,11 +527,11 @@ class GuestController extends Controller {
}
}
public function insertAdditional($id, $provider, $user = []) {
public function insertAdditional($id, $provider, $user = [])
{
$info = new \App\UserAdditionalInfo();
if (count($user) > 0) {
foreach ($user as $key => $value) {
$info->create([
'owner' => $id,
'service' => $provider,
@@ -507,12 +542,12 @@ class GuestController extends Controller {
}
}
public function changeEmail($email) {
public function changeEmail($email)
{
$user = \Auth::user();
if ($user && $email && !$user->email) {
$user->email = $email;
$user->save();
}
}
}

View File

@@ -9,9 +9,9 @@ use App\Http\Controllers\Controller;
use App\Model\helpdesk\Email\Emails;
// models
use App\Model\helpdesk\Settings\CommonSettings;
use App\Model\helpdesk\Settings\Followup;
use App\Model\helpdesk\Ticket\Ticket_Status;
use App\Model\helpdesk\Ticket\Ticket_Thread;
use App\Model\helpdesk\Settings\Followup;
use App\Model\helpdesk\Ticket\Tickets;
use App\Model\helpdesk\Ticket\TicketToken;
use App\User;
@@ -320,9 +320,10 @@ class UnAuthController extends Controller
/**
*@category function to change system's language
*@param string $lang //desired language's iso code
*@return response
*
*@param string $lang //desired language's iso code
*
*@return response
*/
public static function changeLanguage($lang)
{
@@ -342,6 +343,7 @@ class UnAuthController extends Controller
} else {
return false;
}
return true;
}
@@ -353,31 +355,31 @@ class UnAuthController extends Controller
// dd($condition);
switch ($condition) {
case "everyMinute":
case 'everyMinute':
$followup_set = ' + 1 minute';
break;
case "everyFiveMinutes":
case 'everyFiveMinutes':
$followup_set = ' + 5 minute';
break;
case "everyTenMinutes":
case 'everyTenMinutes':
$followup_set = ' + 10 minute';
break;
case "everyThirtyMinutes":
case 'everyThirtyMinutes':
$followup_set = ' + 30 minute';
break;
case "hourly":
case 'hourly':
$followup_set = ' + 1 hours';
break;
case "daily":
case 'daily':
$followup_set = ' + 1 day';
break;
case "weekly":
case 'weekly':
$followup_set = ' + 7 day';
break;
case "monthly":
case 'monthly':
$followup_set = ' + 30 day';
break;
case "yearly":
case 'yearly':
$followup_set = ' + 365 day';
break;
}
@@ -400,23 +402,16 @@ class UnAuthController extends Controller
// dd($ck);
$current_time = date('Y-m-d H:i:s');
if ($current_time > $ck) {
$ticket->follow_up = 1;
$ticket->save();
// Tickets::where('id', '=',$id)
// ->update(['follow_up' => 1]);
// }
}
// if($id=2)
// {dd($ticket);}
}
}
}
}

View File

@@ -24,9 +24,10 @@ use Lang;
use Mail;
use Redirect;
class UserController extends Controller {
public function __construct() {
class UserController extends Controller
{
public function __construct()
{
$this->middleware('board');
}
@@ -35,7 +36,8 @@ class UserController extends Controller {
*
* @return response
*/
public function getArticle(Article $article, Category $category, Settings $settings) {
public function getArticle(Article $article, Category $category, Settings $settings)
{
$setting = $settings->first();
$pagination = $setting->pagination;
if (!Auth::check() || \Auth::user()->role == 'user') {
@@ -47,6 +49,7 @@ class UserController extends Controller {
$article->setPath('article-list');
$categorys = $category->get();
return view('themes.default1.client.kb.article-list.articles', compact('time', 'categorys', 'article'));
}
@@ -59,7 +62,8 @@ class UserController extends Controller {
*
* @return string excerpt
*/
public static function getExcerpt($str, $startPos = 0, $maxLength = 50) {
public static function getExcerpt($str, $startPos = 0, $maxLength = 50)
{
if (strlen($str) > $maxLength) {
$excerpt = substr($str, $startPos, $maxLength - 3);
$lastSpace = strrpos($excerpt, ' ');
@@ -82,7 +86,8 @@ class UserController extends Controller {
*
* @return type view
*/
public function search(SearchRequest $request, Category $category, Article $article, Settings $settings) {
public function search(SearchRequest $request, Category $category, Article $article, Settings $settings)
{
$settings = $settings->first();
$pagination = $settings->pagination;
$search = $request->input('s');
@@ -101,7 +106,8 @@ class UserController extends Controller {
*
* @return response
*/
public function show($slug, Article $article, Category $category) {
public function show($slug, Article $article, Category $category)
{
//ArticleController::timezone();
$tz = \App\Model\helpdesk\Settings\System::where('id', '1')->first()->time_zone;
$tz = \App\Model\helpdesk\Utility\Timezones::where('id', $tz)->first()->name;
@@ -125,7 +131,8 @@ class UserController extends Controller {
}
}
public function getCategory($slug, Article $article, Category $category, Relationship $relation) {
public function getCategory($slug, Article $article, Category $category, Relationship $relation)
{
/* get the article_id where category_id == current category */
$catid = $category->where('slug', $slug)->first();
if (!$catid) {
@@ -141,7 +148,8 @@ class UserController extends Controller {
return view('themes.default1.client.kb.article-list.category', compact('all', 'id', 'categorys', 'article_id'));
}
public function home(Article $article, Category $category, Relationship $relation) {
public function home(Article $article, Category $category, Relationship $relation)
{
if (Config::get('database.install') == '%0%') {
return redirect('step1');
} else {
@@ -153,7 +161,8 @@ class UserController extends Controller {
}
}
public function Faq(Faq $faq, Category $category) {
public function Faq(Faq $faq, Category $category)
{
$faq = $faq->where('id', '1')->first();
$categorys = $category->get();
@@ -165,7 +174,8 @@ class UserController extends Controller {
*
* @return response
*/
public function contact(Category $category, Settings $settings) {
public function contact(Category $category, Settings $settings)
{
$settings = $settings->whereId('1')->first();
$categorys = $category->get();
@@ -177,7 +187,8 @@ class UserController extends Controller {
*
* @return response
*/
public function postContact(ContactRequest $request, Contact $contact) {
public function postContact(ContactRequest $request, Contact $contact)
{
$this->port();
$this->host();
$this->encryption();
@@ -204,7 +215,8 @@ class UserController extends Controller {
}
}
public function contactDetails() {
public function contactDetails()
{
return view('themes.default1.client.kb.article-list.contact-details');
}
@@ -218,7 +230,8 @@ class UserController extends Controller {
*
* @return type response
*/
public function postComment($slug, Article $article, CommentRequest $request, Comment $comment) {
public function postComment($slug, Article $article, CommentRequest $request, Comment $comment)
{
$article = $article->where('slug', $slug)->first();
if (!$article) {
return Redirect::back()->with('fails', Lang::get('lang.sorry_not_processed'));
@@ -232,7 +245,8 @@ class UserController extends Controller {
}
}
public function getPage($name, Page $page) {
public function getPage($name, Page $page)
{
$page = $page->where('slug', $name)->first();
if ($page) {
return view('themes.default1.client.kb.article-list.pages', compact('page'));
@@ -241,33 +255,39 @@ class UserController extends Controller {
}
}
public static function port() {
public static function port()
{
$setting = Settings::whereId('1')->first();
Config::set('mail.port', $setting->port);
}
public static function host() {
public static function host()
{
$setting = Settings::whereId('1')->first();
Config::set('mail.host', $setting->host);
}
public static function encryption() {
public static function encryption()
{
$setting = Settings::whereId('1')->first();
Config::set(['mail.encryption' => $setting->encryption, 'mail.username' => $setting->email]);
}
public static function email() {
public static function email()
{
$setting = Settings::whereId('1')->first();
Config::set(['mail.from' => ['address' => $setting->email, 'name' => 'asd']]);
//dd(Config::get('mail'));
}
public static function password() {
public static function password()
{
$setting = Settings::whereId('1')->first();
Config::set(['mail.password' => $setting->password, 'mail.sendmail' => $setting->email]);
}
public function getCategoryList(Article $article, Category $category, Relationship $relation) {
public function getCategoryList(Article $article, Category $category, Relationship $relation)
{
//$categorys = $category->get();
$categorys = $category->get();
// $categorys->setPath('home');
@@ -289,13 +309,15 @@ class UserController extends Controller {
// //return substr($date, 0, -6);
// }
public function clientProfile() {
public function clientProfile()
{
$user = Auth::user();
return view('themes.default1.client.kb.article-list.profile', compact('user'));
}
public function postClientProfile($id, ProfileRequest $request) {
public function postClientProfile($id, ProfileRequest $request)
{
$user = Auth::user();
$user->gender = $request->input('gender');
$user->save();
@@ -328,7 +350,8 @@ class UserController extends Controller {
}
}
public function postClientProfilePassword($id, ProfilePassword $request) {
public function postClientProfilePassword($id, ProfilePassword $request)
{
$user = Auth::user();
//echo $user->password;
if (Hash::check($request->input('old_password'), $user->getAuthPassword())) {
@@ -340,5 +363,4 @@ class UserController extends Controller {
return redirect()->back()->with('fails', Lang::get('lang.password_was_not_updated'));
}
}
}

View File

@@ -2,15 +2,14 @@
namespace App\Http\Controllers\Common;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use Excel;
use Exception;
class ExcelController extends Controller {
public function export($filename, $data) {
class ExcelController extends Controller
{
public function export($filename, $data)
{
if (count($data) == 0) {
throw new Exception('No data');
}
@@ -20,5 +19,4 @@ class ExcelController extends Controller {
});
})->export('xls');
}
}

View File

@@ -4,9 +4,10 @@ namespace App\Http\Controllers\Common;
use App\Http\Controllers\Controller;
class FileuploadController extends Controller {
public function __construct() {
class FileuploadController extends Controller
{
public function __construct()
{
// checking authentication
$this->middleware('auth');
// checking if role is agent
@@ -15,7 +16,8 @@ class FileuploadController extends Controller {
// Returns a file size limit in bytes based on the PHP upload_max_filesize
// and post_max_size
function file_upload_max_size() {
public function file_upload_max_size()
{
static $max_size = -1;
if ($max_size < 0) {
@@ -31,11 +33,13 @@ class FileuploadController extends Controller {
$max_size_in_actual = ini_get('upload_max_filesize');
}
}
return ['0' => $max_size_in_bytes, '1' => $max_size_in_actual];
// return $max_size_in_bytes;
}
function parse_size($size) {
public function parse_size($size)
{
$unit = preg_replace('/[^bkmgtpezy]/i', '', $size); // Remove the non-unit characters from the size.
$size = preg_replace('/[^0-9\.]/', '', $size); // Remove the non-numeric characters from the size.
if ($unit) {
@@ -45,5 +49,4 @@ class FileuploadController extends Controller {
return round($size);
}
}
}

View File

@@ -4,14 +4,13 @@ namespace App\Http\Controllers\Common;
use App\Http\Controllers\Controller;
use App\Model\helpdesk\Notification\Notification;
use App\Model\helpdesk\Notification\NotificationType;
use App\Model\helpdesk\Notification\UserNotification;
use App\Model\helpdesk\Ticket\Tickets;
use App\Model\helpdesk\Ticket\Ticket_Thread;
use App\User;
use App\Model\helpdesk\Notification\NotificationType;
class NotificationController extends Controller {
class NotificationController extends Controller
{
/**
* ********************************************
* Class Notification Controller
@@ -20,17 +19,17 @@ class NotificationController extends Controller {
* under the folling occurrence
* 1. Ticket Creation
* 2. Ticket Reply
* 3. User Creation
* 3. User Creation.
*
* @author Ladybird <info@ladybirdweb.com>
*/
public $user;
/**
* Constructor
* Constructor.
*/
public function __construct() {
public function __construct()
{
$user = new User();
$this->user = $user;
// checking authentication
@@ -41,6 +40,7 @@ class NotificationController extends Controller {
/**
* This function is used to create in app notifications.
*
* @param type $model_id
* @param type $userid_created
* @param type $type_id
@@ -68,49 +68,62 @@ class NotificationController extends Controller {
}
/**
* This function is to mark all ticket to read status
* This function is to mark all ticket to read status.
*
* @param type $id
*
* @return int
*/
public function markAllRead($id) {
public function markAllRead($id)
{
$markasread = UserNotification::where('user_id', '=', \Auth::user()->id)->where('is_read', '=', '0')->get();
foreach ($markasread as $mark) {
$mark->is_read = '1';
$mark->save();
}
return 1;
}
/**
* This function to mark read
* This function to mark read.
*
* @param type $id
*
* @return int
*/
public function markRead($id) {
public function markRead($id)
{
$markasread = UserNotification::where('notification_id', '=', $id)->where('user_id', '=', \Auth::user()->id)->where('is_read', '=', '0')->get();
foreach ($markasread as $mark) {
$mark->is_read = '1';
$mark->save();
}
return 1;
}
/**
* function to show all the notifications
* function to show all the notifications.
*
* @return type
*/
public function show() {
public function show()
{
$notifications = $this->getNotifications();
//dd($notifications);
return view('notifications-all', compact('notifications'));
}
/**
* function to delete notifications
* function to delete notifications.
*
* @param type $id
*
* @return int
*/
public function delete($id) {
public function delete($id)
{
$markasread = UserNotification::where('notification_id', '=', $id)->where('user_id', '=', \Auth::user()->id)->get();
foreach ($markasread as $mark) {
$mark->delete();
@@ -119,7 +132,8 @@ class NotificationController extends Controller {
return 1;
}
public function deleteAll() {
public function deleteAll()
{
try {
$notifications = new Notification();
if ($notifications->count() > 0) {
@@ -128,6 +142,7 @@ class NotificationController extends Controller {
}
}
$notifications->dummyDelete();
return redirect()->back()->with('success', 'deleted');
} catch (\Exception $ex) {
return redirect()->back()->with('fails', $ex->getMessage());
@@ -136,9 +151,11 @@ class NotificationController extends Controller {
/**
* get the page to list the notifications.
*
* @return response
*/
public static function getNotifications() {
public static function getNotifications()
{
$notifications = UserNotification::with([
'notification.type' => function ($query) {
$query->select('id', 'message', 'type');
@@ -148,7 +165,7 @@ class NotificationController extends Controller {
$query->select('id', 'ticket_number');
},
]);
return $notifications;
}
}

View File

@@ -10,14 +10,16 @@ use App\Model\helpdesk\Settings\Company;
use App\Model\helpdesk\Settings\Email;
use App\User;
use Auth;
use Mail;
use Exception;
use Lang;
use Mail;
class PhpMailController extends Controller {
public function fetch_smtp_details($id) {
class PhpMailController extends Controller
{
public function fetch_smtp_details($id)
{
$emails = Emails::where('id', '=', $id)->first();
return $emails;
}
@@ -26,7 +28,8 @@ class PhpMailController extends Controller {
*
* @return type
*/
public function company() {
public function company()
{
$company = Company::Where('id', '=', '1')->first();
if ($company->company_name == null) {
$company = 'Support Center';
@@ -45,8 +48,9 @@ class PhpMailController extends Controller {
*
* @return type integer
*/
public function mailfrom($reg, $dept_id) {
$email_id = "";
public function mailfrom($reg, $dept_id)
{
$email_id = '';
$emails = Emails::where('department', '=', $dept_id)->first();
$email = Email::find(1);
@@ -55,17 +59,19 @@ class PhpMailController extends Controller {
} else {
$email_id = $email->sys_email;
}
return $email_id;
}
public function sendmail($from, $to, $message, $template_variables) {
public function sendmail($from, $to, $message, $template_variables)
{
$this->setQueue();
$job = new \App\Jobs\SendEmail($from, $to, $message, $template_variables);
$this->dispatch($job);
}
public function sendEmail($from, $to, $message, $template_variables) {
public function sendEmail($from, $to, $message, $template_variables)
{
$from_address = $this->fetch_smtp_details($from);
if ($from_address == null) {
throw new Exception(Lang::get('lang.system-email-not-configured'));
@@ -96,11 +102,11 @@ class PhpMailController extends Controller {
$ticket_link_with_number = $this->checkElement('ticket_link_with_number', $template_variables);
$system_from = $this->checkElement('system_from', $template_variables);
if ($system_from === "") {
if ($system_from === '') {
$system_from = $this->company();
}
$system_link = $this->checkElement('system_link', $template_variables);
if ($system_link === "") {
if ($system_link === '') {
$system_link = \Config::get('app.url');
}
$ticket_link = $this->checkElement('ticket_link', $template_variables);
@@ -113,7 +119,6 @@ class PhpMailController extends Controller {
$email_address = $this->checkElement('email_address', $template_variables);
$user = $this->checkElement('user', $template_variables);
$status = \DB::table('settings_email')->first();
$template = TemplateType::where('name', '=', $template_type)->first();
@@ -140,7 +145,6 @@ class PhpMailController extends Controller {
$subject = null;
}
$variables = ['{!!$user!!}', '{!!$agent!!}', '{!!$ticket_number!!}', '{!!$content!!}', '{!!$from!!}', '{!!$ticket_agent_name!!}', '{!!$ticket_client_name!!}', '{!!$ticket_client_email!!}', '{!!$ticket_body!!}', '{!!$ticket_assigner!!}', '{!!$ticket_link_with_number!!}', '{!!$system_error!!}', '{!!$agent_sign!!}', '{!!$department_sign!!}', '{!!$password_reset_link!!}', '{!!$email_address!!}', '{!!$user_password!!}', '{!!$system_from!!}', '{!!$system_link!!}', '{!!$ticket_link!!}'];
$data = [$user, $agent, $ticket_number, $content, $from, $ticket_agent_name, $ticket_client_name, $ticket_client_email, $ticket_body, $ticket_assigner, $ticket_link_with_number, $system_error, $agent_sign, $department_sign, $password_reset_link, $email_address, $user_password, $system_from, $system_link, $ticket_link];
@@ -150,7 +154,6 @@ class PhpMailController extends Controller {
$contents = $messagebody;
}
if ($template_type == 'ticket-reply-agent') {
$line = '---Reply above this line--- <br/><br/>';
$content = $line.$messagebody;
@@ -159,11 +162,12 @@ class PhpMailController extends Controller {
}
}
$send = $this->laravelMail($recipants, $recipantname, $subject, $content, $cc, $attachment);
return $send;
}
public function setMailConfig($from_address) {
public function setMailConfig($from_address)
{
$username = $from_address->email_address;
$fromname = $from_address->email_name;
$password = $from_address->password;
@@ -181,7 +185,7 @@ class PhpMailController extends Controller {
}
$configs = [
'username' => $username,
'from' => ['address' => $username, 'name' => $fromname,],
'from' => ['address' => $username, 'name' => $fromname],
'password' => $password,
'encryption' => $smtpsecure,
'host' => $host,
@@ -199,24 +203,28 @@ class PhpMailController extends Controller {
}
}
public function setServices($emailid, $protocol) {
public function setServices($emailid, $protocol)
{
$service = new \App\Model\MailJob\FaveoMail();
$services = $service->where('email_id', $emailid)->lists('value', 'key')->toArray();
$controller = new \App\Http\Controllers\Admin\helpdesk\EmailsController();
$controller->setServiceConfig($protocol, $services);
}
public function checkElement($element, $array) {
$value = "";
public function checkElement($element, $array)
{
$value = '';
if (is_array($array)) {
if (key_exists($element, $array)) {
if (array_key_exists($element, $array)) {
$value = $array[$element];
}
}
return $value;
}
public function laravelMail($to, $toname, $subject, $data, $cc, $attach) {
public function laravelMail($to, $toname, $subject, $data, $cc, $attach)
{
//dd($to, $toname, $subject, $data, $cc, $attach);
//dd(\Config::get('mail'));
//dd($attach);
@@ -253,10 +261,12 @@ class PhpMailController extends Controller {
if (is_object($mail) || (is_object($mail) && $mail->getStatusCode() == 200)) {
$mail = 1;
}
return $mail;
}
public function setQueue() {
public function setQueue()
{
$short = 'database';
$field = [
'driver' => 'database',
@@ -274,18 +284,20 @@ class PhpMailController extends Controller {
$this->setQueueConfig($short, $field);
}
public function setQueueConfig($short, $field) {
public function setQueueConfig($short, $field)
{
\Config::set('queue.default', $short);
foreach ($field as $key => $value) {
\Config::set("queue.connections.$short.$key", $value);
}
}
public function attachmentMode($message, $file, $name, $mime, $mode) {
public function attachmentMode($message, $file, $name, $mime, $mode)
{
if ($mode == 'data') {
return $message->attachData(base64_decode($file, true), $name, ['mime' => $mime]);
}
return $message->attach($file, ['as' => $name, 'mime' => $mime]);
}
}

View File

@@ -11,7 +11,6 @@ use App\Model\helpdesk\Email\Smtp;
// models
use App\Model\helpdesk\Settings\Plugin;
use App\Model\helpdesk\Theme\Widgets;
use App\Model\helpdesk\Utility\Version_Check;
use Config;
// classes
use Crypt;
@@ -27,14 +26,15 @@ use Lang;
* ***************************
* Controller to keep smtp details and fetch where ever needed.
*/
class SettingsController extends Controller {
class SettingsController extends Controller
{
/**
* Create a new controller instance.
*
* @return type void
*/
public function __construct() {
public function __construct()
{
$this->middleware('auth');
$this->middleware('roles');
}
@@ -44,7 +44,8 @@ class SettingsController extends Controller {
*
* @return response
*/
public function widgets() {
public function widgets()
{
return view('themes.default1.admin.helpdesk.theme.widgets');
}
@@ -53,7 +54,8 @@ class SettingsController extends Controller {
*
* @return response
*/
public function list_widget() {
public function list_widget()
{
return \Datatable::collection(Widgets::where('id', '<', '7')->get())
->searchColumns('name')
->orderColumns('name', 'title', 'value')
@@ -112,12 +114,14 @@ class SettingsController extends Controller {
*
* @return type response
*/
public function edit_widget($id, Widgets $widgets, Request $request) {
public function edit_widget($id, Widgets $widgets, Request $request)
{
$widget = $widgets->where('id', '=', $id)->first();
$widget->title = $request->title;
$widget->value = $request->content;
try {
$widget->save();
return redirect()->back()->with('success', $widget->name.Lang::get('lang.saved_successfully'));
} catch (Exception $e) {
return redirect()->back()->with('fails', $e->getMessage());
@@ -129,7 +133,8 @@ class SettingsController extends Controller {
*
* @return response
*/
public function social_buttons() {
public function social_buttons()
{
return view('themes.default1.admin.helpdesk.theme.social');
}
@@ -138,7 +143,8 @@ class SettingsController extends Controller {
*
* @return response
*/
public function list_social_buttons() {
public function list_social_buttons()
{
return \Datatable::collection(Widgets::where('id', '>', '6')->get())
->searchColumns('name')
->orderColumns('name', 'value')
@@ -185,7 +191,8 @@ class SettingsController extends Controller {
*
* @return type response
*/
public function edit_social_buttons($id, Widgets $widgets, Request $request) {
public function edit_social_buttons($id, Widgets $widgets, Request $request)
{
$widget = $widgets->where('id', '=', $id)->first();
$widget->title = $request->title;
$widget->value = $request->content;
@@ -203,8 +210,10 @@ class SettingsController extends Controller {
*
* @return type view
*/
public function getsmtp() {
public function getsmtp()
{
$settings = Smtp::where('id', '=', '1')->first();
return view('themes.default1.admin.helpdesk.emails.smtp', compact('settings'));
}
@@ -213,7 +222,8 @@ class SettingsController extends Controller {
*
* @return type view
*/
public function postsmtp(SmtpRequest $request) {
public function postsmtp(SmtpRequest $request)
{
$data = Smtp::where('id', '=', 1)->first();
$data->driver = $request->input('driver');
$data->host = $request->input('host');
@@ -224,6 +234,7 @@ class SettingsController extends Controller {
$data->password = Crypt::encrypt($request->input('password'));
try {
$data->save();
return \Redirect::route('getsmtp')->with('success', 'success');
} catch (Exception $e) {
return \Redirect::route('getsmtp')->with('fails', $e->errorInfo[2]);
@@ -238,7 +249,8 @@ class SettingsController extends Controller {
*
* @return type view
*/
public function PostSettings(Settings $set, Request $request) {
public function PostSettings(Settings $set, Request $request)
{
$settings = $set->where('id', '1')->first();
$pass = $request->input('password');
$password = Crypt::encrypt($pass);
@@ -265,11 +277,13 @@ class SettingsController extends Controller {
}
}
public function Plugins() {
public function Plugins()
{
return view('themes.default1.admin.helpdesk.settings.plugins');
}
public function GetPlugin() {
public function GetPlugin()
{
$plugins = $this->fetchConfig();
return \Datatable::collection(new Collection($plugins))
@@ -330,7 +344,8 @@ class SettingsController extends Controller {
*
* @return type
*/
public function ReadPlugins() {
public function ReadPlugins()
{
$dir = app_path().DIRECTORY_SEPARATOR.'Plugins';
$plugins = array_diff(scandir($dir), ['.', '..']);
@@ -344,7 +359,8 @@ class SettingsController extends Controller {
*
* @return type
*/
public function PostPlugins(Request $request) {
public function PostPlugins(Request $request)
{
$this->validate($request, ['plugin' => 'required|mimes:application/zip,zip,Zip']);
try {
if (!extension_loaded('zip')) {
@@ -433,7 +449,8 @@ class SettingsController extends Controller {
*
* @return bool
*/
public function deleteDirectory($dir) {
public function deleteDirectory($dir)
{
if (!file_exists($dir)) {
return true;
}
@@ -454,7 +471,8 @@ class SettingsController extends Controller {
return rmdir($dir);
}
public function ReadConfigs() {
public function ReadConfigs()
{
$dir = app_path().DIRECTORY_SEPARATOR.'Plugins'.DIRECTORY_SEPARATOR;
$directories = scandir($dir);
$files = [];
@@ -495,7 +513,8 @@ class SettingsController extends Controller {
}
}
public function fetchConfig() {
public function fetchConfig()
{
$configs = $this->ReadConfigs();
//dd($configs);
$plugs = new Plugin();
@@ -531,7 +550,8 @@ class SettingsController extends Controller {
return $attributes;
}
public function DeletePlugin($slug) {
public function DeletePlugin($slug)
{
$dir = app_path().DIRECTORY_SEPARATOR.'Plugins'.DIRECTORY_SEPARATOR.$slug;
$this->deleteDirectory($dir);
/*
@@ -551,7 +571,8 @@ class SettingsController extends Controller {
return redirect()->back()->with('success', 'Deleted Successfully');
}
public function StatusPlugin($slug) {
public function StatusPlugin($slug)
{
$plugs = new Plugin();
$plug = $plugs->where('name', $slug)->first();
if (!$plug) {

View File

@@ -1,9 +1,9 @@
<?php
namespace App\Http\Controllers\Common;
use Socialite;
class Socialite extends Socialite{
class Socialite extends Socialite
{
}

View File

@@ -6,9 +6,9 @@ use App\Http\Controllers\Controller;
use App\Http\Requests\helpdesk\TemplateSetRequest;
use App\Model\Common\Template;
use App\Model\Common\TemplateSet;
use Exception;
use Illuminate\Http\Request;
use Lang;
use Exception;
class TemplateSetController extends Controller
{

View File

@@ -3,7 +3,7 @@
namespace App\Http\Controllers;
use App\Model\helpdesk\Ticket\Tickets;
use App\Http\Controllers\Controller;
class HomeController extends Controller
{
/*

View File

@@ -2,64 +2,70 @@
namespace App\Http\Controllers\Job;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use Exception;
use Form;
use Illuminate\Http\Request;
class MailController extends Controller
{
public function serviceForm(Request $request){
public function serviceForm(Request $request)
{
$serviceid = $request->input('service');
$short_name = "";
$short_name = '';
$mail_services = new \App\Model\MailJob\MailService();
$mail_service = $mail_services->find($serviceid);
if ($mail_service) {
$short_name = $mail_service->short_name;
}
$form = $this->getServiceForm($short_name);
return $form;
}
public function form($label,$name,$class){
public function form($label, $name, $class)
{
$mailid = \Input::get('emailid');
if ($mailid) {
$emails = new \App\Model\helpdesk\Email\Emails();
$email = $emails->find($mailid);
$form = "<div class='".$class."'>".Form::label($name, $label)."<span class='text-red'> *</span>".
Form::text($name, $email->getExtraField($name), ['class' => "form-control"])."</div>";
Form::text($name, $email->getExtraField($name), ['class' => 'form-control']).'</div>';
} else {
$form = "<div class='".$class."'>".Form::label($name, $label)."<span class='text-red'> *</span>".
Form::text($name, NULL, ['class' => "form-control"])."</div>";
Form::text($name, null, ['class' => 'form-control']).'</div>';
}
return $form;
}
public function getServiceForm($short_name){
$form = "";
public function getServiceForm($short_name)
{
$form = '';
try {
switch ($short_name) {
case "smtp":
case 'smtp':
return $form;
case "mail":
case 'mail':
return $form;
case "sendmail":
case 'sendmail':
return $form;
case "mailgun":
case 'mailgun':
$form .= "<div class='row'>".$this->form('Domain', 'domain', 'col-md-6 form-group');
$form .= $this->form('Secret Key', 'secret','col-md-6 form-group')."</div>";
$form .= $this->form('Secret Key', 'secret', 'col-md-6 form-group').'</div>';
return $form;
case "mandrill":
$form .= "<div class='row'>".$this->form('Secret Key', 'secret','col-md-6 form-group')."</div>";
case 'mandrill':
$form .= "<div class='row'>".$this->form('Secret Key', 'secret', 'col-md-6 form-group').'</div>';
return $form;
case "log":
case 'log':
return $form;
case "ses":
case 'ses':
$form .= "<div class='row'>".$this->form('Key', 'key', 'col-md-6 form-group');
$form .= $this->form('Secret Key', 'secret','col-md-6 form-group').$this->form('Region', 'region','col-md-6 form-group')."</div>";
$form .= $this->form('Secret Key', 'secret', 'col-md-6 form-group').$this->form('Region', 'region', 'col-md-6 form-group').'</div>';
return $form;
default:
return $form;

View File

@@ -2,47 +2,51 @@
namespace App\Http\Controllers\Job;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Model\MailJob\QueueService;
use App\Http\Requests\helpdesk\Queue\QueueRequest;
use App\Model\MailJob\FaveoQueue;
use App\Model\MailJob\QueueService;
use Exception;
use Form;
use App\Http\Requests\helpdesk\Queue\QueueRequest;
use Illuminate\Http\Request;
class QueueController extends Controller {
public function index() {
class QueueController extends Controller
{
public function index()
{
try {
$queue = new QueueService();
$queues = $queue->select('id', 'name', 'status')->get();
return view('themes.default1.admin.helpdesk.queue.index', compact('queues'));
} catch (Exception $ex) {
return redirect()->back()->with('fails', $ex->getMessage());
}
}
public function edit($id) {
public function edit($id)
{
try {
$queues = new QueueService();
$queue = $queues->find($id);
if (!$queue) {
throw new Exception("Sorry we can not find your request");
throw new Exception('Sorry we can not find your request');
}
return view('themes.default1.admin.helpdesk.queue.edit', compact('queue'));
} catch (Exception $ex) {
return redirect()->back()->with('fails', $ex->getMessage());
}
}
public function update($id, QueueRequest $request) {
public function update($id, QueueRequest $request)
{
try {
$values = $request->except('_token');
$queues = new QueueService();
$queue = $queues->find($id);
if (!$queue) {
throw new Exception("Sorry we can not find your request");
throw new Exception('Sorry we can not find your request');
}
$setting = new FaveoQueue();
$settings = $setting->where('service_id', $id)->get();
@@ -60,19 +64,21 @@ class QueueController extends Controller {
]);
}
}
return redirect()->back()->with('success', 'Updated');
} catch (Exception $ex) {
return redirect()->back()->with('fails', $ex->getMessage());
}
}
public function activate($id) {
public function activate($id)
{
try {
$queues = new QueueService();
$queue = $queues->find($id);
$active_queue = $queues->where('status', 1)->first();
if (!$queue) {
throw new Exception("Sorry we can not find your request");
throw new Exception('Sorry we can not find your request');
}
if ($queue->isActivate() == false && $id != 1 && $id != 2) {
throw new Exception("To activate $queue->name , Please configure it first");
@@ -83,89 +89,102 @@ class QueueController extends Controller {
}
$queue->status = 1;
$queue->save();
return redirect()->back()->with('success', 'Activated');
} catch (Exception $ex) {
return redirect()->back()->with('fails', $ex->getMessage());
}
}
public function getForm(Request $request){
public function getForm(Request $request)
{
$queueid = $request->input('queueid');
$form = $this->getFormById($queueid);
return $form;
}
public function getShortNameById($queueid) {
$short = "";
public function getShortNameById($queueid)
{
$short = '';
$queues = new QueueService();
$queue = $queues->find($queueid);
if ($queue) {
$short = $queue->short_name;
}
return $short;
}
public function getIdByShortName($short) {
$id = "";
public function getIdByShortName($short)
{
$id = '';
$queues = new QueueService();
$queue = $queues->where('short_name', $short)->first();
if ($queue) {
$id = $queue->id;
}
return $id;
}
public function getFormById($id) {
public function getFormById($id)
{
$short = $this->getShortNameById($id);
$form = "";
$form = '';
switch ($short) {
case "beanstalkd":
case 'beanstalkd':
$form .= "<div class='row'>";
$form .= $this->form($short, 'Driver', 'driver', 'col-md-6 form-group', 'beanstalkd');
$form .= $this->form($short, 'Host', 'host', 'col-md-6 form-group', 'localhost');
$form .= $this->form($short, 'Queue', 'queue', 'col-md-6 form-group', 'default');
$form .= "</div>";
$form .= '</div>';
return $form;
case "sqs":
case 'sqs':
$form .= "<div class='row'>";
$form .= $this->form($short, 'Driver', 'driver', 'col-md-6 form-group', 'sqs');
$form .= $this->form($short, 'Key', 'key', 'col-md-6 form-group', 'your-public-key');
$form .= $this->form($short, 'Secret', 'secret', 'col-md-6 form-group', 'your-queue-url');
$form .= $this->form($short, 'Region', 'region', 'col-md-6 form-group', 'us-east-1');
$form .= "</div>";
$form .= '</div>';
return $form;
case "iron":
case 'iron':
$form .= "<div class='row'>";
$form .= $this->form($short, 'Driver', 'driver', 'col-md-6 form-group', 'iron');
$form .= $this->form($short, 'Host', 'host', 'col-md-6 form-group', 'mq-aws-us-east-1.iron.io');
$form .= $this->form($short, 'Token', 'token', 'col-md-6 form-group', 'your-token');
$form .= $this->form($short, 'Project', 'project', 'col-md-6 form-group', 'your-project-id');
$form .= $this->form($short, 'Queue', 'queue', 'col-md-6 form-group', 'your-queue-name');
$form .= "</div>";
$form .= '</div>';
return $form;
case "redis":
case 'redis':
$form .= "<div class='row'>";
$form .= $this->form($short, 'Driver', 'driver', 'col-md-6 form-group', 'redis');
$form .= $this->form($short, 'Queue', 'queue', 'col-md-6 form-group', 'default');
$form .= "</div>";
$form .= '</div>';
return $form;
default:
return $form;
}
}
public function form($short, $label, $name, $class, $placeholder = '') {
public function form($short, $label, $name, $class, $placeholder = '')
{
$queueid = $this->getIdByShortName($short);
$queues = new QueueService();
$queue = $queues->find($queueid);
if ($queue) {
$form = "<div class='".$class."'>".Form::label($name, $label)."<span class='text-red'> *</span>".
Form::text($name, $queue->getExtraField($name), ['class' => "form-control", 'placeholder' => $placeholder]) . "</div>";
Form::text($name, $queue->getExtraField($name), ['class' => 'form-control', 'placeholder' => $placeholder]).'</div>';
} else {
$form = "<div class='".$class."'>".Form::label($name, $label)."<span class='text-red'> *</span>".
Form::text($name, NULL, ['class' => "form-control", 'placeholder' => $placeholder]) . "</div>";
}
return $form;
Form::text($name, null, ['class' => 'form-control', 'placeholder' => $placeholder]).'</div>';
}
return $form;
}
}

View File

@@ -9,16 +9,18 @@ use Artisan;
use Exception;
use Illuminate\Http\Request;
class UpgradeController extends Controller {
class UpgradeController extends Controller
{
public $dir;
public function __construct() {
public function __construct()
{
$dir = base_path();
$this->dir = $dir;
}
public function getLatestVersion() {
public function getLatestVersion()
{
try {
$name = \Config::get('app.name');
//dd($name);
@@ -38,7 +40,7 @@ class UpgradeController extends Controller {
$data = Utility::encryptByFaveoPublicKey(json_encode($data));
//dd($data);
$post_data = [
'data' => $data
'data' => $data,
];
$url = 'http://faveohelpdesk.com/billing/public/verification';
if (str_contains($url, ' ')) {
@@ -59,7 +61,8 @@ class UpgradeController extends Controller {
}
}
public function downloadLatestCode() {
public function downloadLatestCode()
{
$name = \Config::get('app.name');
$durl = 'http://www.faveohelpdesk.com/billing/public/download-url';
if (str_contains($durl, ' ')) {
@@ -75,7 +78,8 @@ class UpgradeController extends Controller {
return $download_url;
}
public function saveLatestCodeAtTemp($download_url) {
public function saveLatestCodeAtTemp($download_url)
{
echo '<p>Downloading New Update</p>';
$context = stream_context_create(
[
@@ -99,19 +103,22 @@ class UpgradeController extends Controller {
echo '<p>Update Downloaded And Saved</p>';
}
public function doUpdate() {
public function doUpdate()
{
try {
$memory_limit = ini_get('memory_limit');
if ($memory_limit < 256) {
echo '<ul class=list-unstyled>';
echo "<li style='color:red;'>Sorry we can not process your request because of limited memory! You have only $memory_limit. For this you need atleast 256 MB</li>";
echo '</ul>';
return 0;
}
if (!extension_loaded('zip')) {
echo '<ul class=list-unstyled>';
echo "<li style='color:red;'>Sorry we can not process your request because you don't have ZIP extension contact your system admin</li>";
echo '</ul>';
return 0;
}
//Artisan::call('down');
@@ -130,7 +137,6 @@ class UpgradeController extends Controller {
continue;
}
//Make the directory if we need to...
if (!is_dir($update.'/'.$thisFileDir.'/')) {
\File::makeDirectory($update.'/'.$thisFileDir, 0775, true, true);
@@ -166,12 +172,13 @@ class UpgradeController extends Controller {
return true;
} catch (Exception $ex) {
echo '<ul class=list-unstyled>';
echo "<li style='color:red;'>" . $ex->getMessage() . "</li>";
echo "<li style='color:red;'>".$ex->getMessage().'</li>';
echo '</ul>';
}
}
public function copyToActualDirectory($latest_version) {
public function copyToActualDirectory($latest_version)
{
try {
echo '<ul class=list-unstyled>';
$directory = "$this->dir/UPDATES";
@@ -190,17 +197,18 @@ class UpgradeController extends Controller {
$this->deleteBarNotification('new-version');
echo "<li style='color:green;'>&raquo; Faveo Updated to v" . Utility::getFileVersion() . "</li>";
echo "<li style='color:green;'>&raquo; Faveo Updated to v".Utility::getFileVersion().'</li>';
echo '</ul>';
} catch (Exception $ex) {
echo '<ul class=list-unstyled>';
echo "<li style='color:red;'>" . $ex->getMessage() . "</li>";
echo "<li style='color:red;'>".$ex->getMessage().'</li>';
echo '</ul>';
}
exit();
}
public function deleteBarNotification($key) {
public function deleteBarNotification($key)
{
try {
$noti = new BarNotification();
$notifications = $noti->where('key', $key)->get();
@@ -212,20 +220,24 @@ class UpgradeController extends Controller {
}
}
public function fileUpdate() {
public function fileUpdate()
{
try {
$latest_version = $this->getLatestVersion();
if (Utility::getFileVersion() < $latest_version) {
$url = url('file-upgrade');
return view('themes.default1.update.file', compact('url'));
}
return redirect('dashboard')->with('fails', 'Could not find latest realeases from repository.');
} catch (Exception $ex) {
return redirect()->back()->with('fails', $ex->getMessage());
}
}
public function fileUpgrading(Request $request) {
public function fileUpgrading(Request $request)
{
try {
//
$latest_version = $this->getLatestVersion();
@@ -233,12 +245,11 @@ class UpgradeController extends Controller {
$current_version = Utility::getFileVersion();
if ($latest_version != '') {
if (Utility::getFileVersion() < $latest_version) {
return view('themes.default1.update.update', compact('latest_version', 'current_version', 'request'));
}
}
return redirect('dashboard')->with('fails', 'Could not find latest realeases from repository.');
return redirect('dashboard')->with('fails', 'Could not find latest realeases from repository.');
// else {
// return redirect()->back();
@@ -248,7 +259,8 @@ class UpgradeController extends Controller {
}
}
public function testScroll() {
public function testScroll()
{
$ex = 1000;
echo '<ul style=list-unstyled>';
for ($i = 0; $i < $ex; $i++) {
@@ -257,7 +269,8 @@ class UpgradeController extends Controller {
echo '</ul>';
}
public function fileUpgrading1(Request $request) {
public function fileUpgrading1(Request $request)
{
if (Utility::getFileVersion() < Utility::getDatabaseVersion()) {
$latest_version = $this->getLatestVersion();
// dd($latest_version);
@@ -307,11 +320,12 @@ class UpgradeController extends Controller {
}
}
public function getCurl($url) {
public function getCurl($url)
{
try {
$curl = Utility::_isCurl();
if (!$curl) {
throw new Exception("Please enable your curl function to check latest update");
throw new Exception('Please enable your curl function to check latest update');
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
@@ -328,11 +342,12 @@ class UpgradeController extends Controller {
}
}
public function postDownloadCurl($url, $data) {
public function postDownloadCurl($url, $data)
{
try {
$curl = Utility::_isCurl();
if (!$curl) {
throw new Exception("Please enable your curl function to check latest update");
throw new Exception('Please enable your curl function to check latest update');
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, 1);
@@ -344,17 +359,19 @@ class UpgradeController extends Controller {
}
$data = curl_exec($ch);
curl_close($ch);
return json_decode($data, true);
} catch (Exception $ex) {
return redirect()->back()->with('fails', $ex->getMessage());
}
}
public function postCurl($url, $data) {
public function postCurl($url, $data)
{
try {
$curl = Utility::_isCurl();
if (!$curl) {
throw new Exception("Please enable your curl function to check latest update");
throw new Exception('Please enable your curl function to check latest update');
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, 1);
@@ -367,13 +384,15 @@ class UpgradeController extends Controller {
$data = curl_exec($ch);
curl_close($ch);
$data = Utility::decryptByFaveoPrivateKey($data);
return json_decode($data, true);
} catch (Exception $ex) {
return redirect()->back()->with('fails', $ex->getMessage());
}
}
public function databaseUpdate() {
public function databaseUpdate()
{
try {
if (Utility::getFileVersion() > Utility::getDatabaseVersion()) {
$url = url('database-upgrade');
@@ -387,7 +406,8 @@ class UpgradeController extends Controller {
}
}
public function databaseUpgrade() {
public function databaseUpgrade()
{
try {
if (Utility::getFileVersion() > Utility::getDatabaseVersion()) {
Artisan::call('migrate', ['--force' => true]);
@@ -400,5 +420,4 @@ class UpgradeController extends Controller {
return redirect()->back()->with('fails', $ex->getMessage());
}
}
}

View File

@@ -7,9 +7,10 @@ use Config;
use Exception;
use Schema;
class LibraryController extends Controller {
public static function getFileVersion() {
class LibraryController extends Controller
{
public static function getFileVersion()
{
try {
$app = Config::get('app.version');
if ($app) {
@@ -22,7 +23,8 @@ class LibraryController extends Controller {
}
}
public static function getDatabaseVersion() {
public static function getDatabaseVersion()
{
try {
$database = self::isDatabaseSetup();
if ($database == true) {
@@ -39,7 +41,8 @@ class LibraryController extends Controller {
}
}
public static function isDatabaseSetup() {
public static function isDatabaseSetup()
{
try {
if (Schema::hasTable('settings_system')) {
return true;
@@ -49,28 +52,30 @@ class LibraryController extends Controller {
}
}
public static function encryptByFaveoPublicKey($data) {
public static function encryptByFaveoPublicKey($data)
{
try {
$path = storage_path().DIRECTORY_SEPARATOR.'app'.DIRECTORY_SEPARATOR.'public.key';
//dd($path);
$key_content = file_get_contents($path);
$public_key = openssl_get_publickey($key_content);
$encrypted = $e = NULL;
openssl_seal($data, $encrypted, $e, array($public_key));
$encrypted = $e = null;
openssl_seal($data, $encrypted, $e, [$public_key]);
$sealed_data = base64_encode($encrypted);
$envelope = base64_encode($e[0]);
$result = ['seal' => $sealed_data, 'envelope' => $envelope];
return json_encode($result);
} catch (Exception $ex) {
throw new Exception($ex->getMessage());
}
}
public static function decryptByFaveoPrivateKey($encrypted) {
public static function decryptByFaveoPrivateKey($encrypted)
{
try {
$encrypted = json_decode($encrypted);
if ($encrypted) {
@@ -81,8 +86,9 @@ class LibraryController extends Controller {
$path = storage_path('app'.DIRECTORY_SEPARATOR.'private.key');
$key_content = file_get_contents($path);
$private_key = openssl_get_privatekey($key_content);
$plaintext = NULL;
$plaintext = null;
openssl_open($input, $plaintext, $einput, $private_key);
return $plaintext;
}
} catch (Exception $ex) {
@@ -90,8 +96,8 @@ class LibraryController extends Controller {
}
}
public static function _isCurl() {
public static function _isCurl()
{
return function_exists('curl_version');
}
}

View File

@@ -44,6 +44,7 @@ class Authenticate
if ($this->auth->guest()) {
if ($request->ajax()) {
$result = ['fails' => 'Unauthorized! Please login again'];
return response()->json(compact('result'));
} else {
return redirect()->guest('auth/login');

View File

@@ -1,9 +1,9 @@
<?php
namespace App\Http\Requests\helpdesk;
use App\Model\helpdesk\Settings\CommonSettings;
use App\Http\Requests\Request;
use App\Model\helpdesk\Settings\CommonSettings;
/**
* AgentRequest.
@@ -29,10 +29,11 @@ class AgentRequest extends Request
*/
public function rules()
{
$check = $this->check(new CommonSettings);
$check = $this->check(new CommonSettings());
if ($check != 0) {
return $check;
}
return [
'user_name' => 'required|unique:users|max:30',
'first_name' => 'required|max:30',
@@ -51,8 +52,11 @@ class AgentRequest extends Request
/**
*@category Funcion to set rule if send opt is enabled
*@param Object $settings (instance of Model common settings)
*
*@param object $settings (instance of Model common settings)
*
*@author manish.verma@ladybirdweb.com
*
*@return array|int
*/
public function check($settings)

View File

@@ -5,7 +5,6 @@ namespace App\Http\Requests\helpdesk;
use App\Http\Requests\Request;
use App\Model\helpdesk\Settings\CommonSettings;
/**
* CompanyRequest.
*
@@ -30,11 +29,12 @@ class ClientRequest extends Request
*/
public function rules()
{
$check = $this->check(new CommonSettings);
$check = $this->check(new CommonSettings());
if ($check != 0) {
return $check;
$custom_rule = $this->getCustomRule();
$rules = array_merge($check, $custom_rule);
return $rules;
}
$current_rule = [
@@ -45,69 +45,82 @@ class ClientRequest extends Request
];
$custom_rule = $this->getCustomRule();
$rules = array_merge($current_rule, $custom_rule);
return $rules;
return $rules;
}
public function getHelpTopic(){
public function getHelpTopic()
{
$help_topics = new \App\Model\helpdesk\Manage\Help_topic();
$topic = $this->input('helptopic');
$help_topic = $help_topics->where('id', $topic)->first();
return $help_topic;
}
public function getCustomRule(){
$custom_form = "";
public function getCustomRule()
{
$custom_form = '';
$help_topic = $this->getHelpTopic();
if ($help_topic) {
$custom_form = $help_topic->custom_form;
}
return $this->getForm($custom_form);
}
public function getForm($formid){
$id = "";
public function getForm($formid)
{
$id = '';
$forms = new \App\Model\helpdesk\Form\Forms();
$form = $forms->where('id', $formid)->first();
if ($form) {
$id = $form->id;
}
return $this->getFields($id);
}
public function getFields($formid){
public function getFields($formid)
{
$rules = [];
$field = new \App\Model\helpdesk\Form\Fields();
$fields = $field->where('forms_id', $formid)->get();
if ($fields->count() > 0) {
foreach ($fields as $fd) {
if ($fd->required === '1') {
$rules[str_replace(" ",'_',$fd->name)]="required";
$rules[str_replace(' ', '_', $fd->name)] = 'required';
}
$rules = array_merge($rules, $this->getChild($fd->id));
}
}
return $rules;
}
public function getChild($fieldid){
public function getChild($fieldid)
{
$children = new \App\Model\helpdesk\Form\FieldValue();
$childs = $children->where('field_id', $fieldid)->get();
$rules = [];
if ($childs->count() > 0) {
foreach ($childs as $child) {
$child_formid = $child->child_id;
return $this->getForm($child_formid);
}
}
return [];
}
/**
*@category Funcion to set rule if send opt is enabled
*@param Object $settings (instance of Model common settings)
*
*@param object $settings (instance of Model common settings)
*
*@author manish.verma@ladybirdweb.com
*
*@return array|int
*/
public function check($settings)

View File

@@ -1,7 +1,10 @@
<?php
namespace App\Http\Requests\helpdesk;
use App\Http\Requests\Request;
use App\Model\helpdesk\Settings\CommonSettings;
/**
* CreateTicketRequest.
*
@@ -24,8 +27,10 @@ class CreateTicketRequest extends Request
if (in_array('api', $this->segments())) {
return true;
}
return false;
}
/**
* Get the validation rules that apply to the request.
*
@@ -33,10 +38,11 @@ class CreateTicketRequest extends Request
*/
public function rules()
{
$check = $this->check(new CommonSettings);
$check = $this->check(new CommonSettings());
if ($check != 0) {
return $check;
}
return [
'email' => 'required|email|max:60',
'first_name' => 'required|min:3|max:40',
@@ -48,10 +54,14 @@ class CreateTicketRequest extends Request
'priority' => 'required',
];
}
/**
*@category Funcion to set rule if send opt is enabled
*@param Object $settings (instance of Model common settings)
*
*@param object $settings (instance of Model common settings)
*
*@author manish.verma@ladybirdweb.com
*
*@return array|int
*/
public function check($settings)
@@ -76,9 +86,11 @@ class CreateTicketRequest extends Request
return 0;
} elseif (($settings->status == '0' || $settings->status == 0) && ($email_mandatory->status == '0' || $email_mandatory->status == 0)) {
$rule = $this->onlyMobleRequired();
return $rule;
} elseif (($settings->status == '1' || $settings->status == 1) && ($email_mandatory->status == '0' || $email_mandatory->status == 0)) {
$rule = $this->onlyMobleRequired();
return $rule;
} else {
return 0;
@@ -87,7 +99,9 @@ class CreateTicketRequest extends Request
/**
*@category function to make only moble required rule
*
*@param null
*
*@return array
*/
public function onlyMobleRequired()

View File

@@ -4,14 +4,15 @@ namespace App\Http\Requests\helpdesk\Job;
use App\Http\Requests\Request;
class TaskRequest extends Request {
class TaskRequest extends Request
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize() {
public function authorize()
{
return true;
}
@@ -20,7 +21,8 @@ class TaskRequest extends Request {
*
* @return array
*/
public function rules() {
public function rules()
{
return [
'fetching-commands' => 'required_if:email_fetching,1',
'notification-commands' => 'required_if:notification_cron,1',
@@ -31,7 +33,8 @@ class TaskRequest extends Request {
];
}
public function messages() {
public function messages()
{
return [
'fetching-commands.required_if' => 'Please choose your Email Fetching timing',
'notification-commands.required_if'=> 'Please choose your Email Notification timing',
@@ -42,5 +45,4 @@ class TaskRequest extends Request {
];
}
}

View File

@@ -31,10 +31,11 @@ class LableUpdate extends Request
{
$label_data = \Request::segments();
$label = Label::find($label_data[1]);
return [
'title' => 'required|max:10|unique:labels,title,'.$label->id,
'color' => 'required|regex:/#([a-fA-F0-9]{3}){1,2}\b/',
'order' => 'required|integer'
'order' => 'required|integer',
];
}
}

View File

@@ -23,14 +23,12 @@ class MailRequest extends Request
*/
public function rules()
{
$id = $this->segment(2);
$email_address_rule = 'required|email|unique:emails';
if ($id) {
$email_address_rule = 'required|email|unique:emails,id,'.$id;
}
$rules = [
'email_address' => $email_address_rule,
'email_name' => 'required',
@@ -40,10 +38,12 @@ class MailRequest extends Request
$driver = $this->input('sending_protocol');
$driver_rules = $this->getDriver($driver);
$rules = array_merge($rules, $driver_rules);
return $rules;
}
public function getDriver($serviceid){
public function getDriver($serviceid)
{
$rules = [];
$mail_services = new \App\Model\MailJob\MailService();
$mail_service = $mail_services->find($serviceid);
@@ -51,22 +51,26 @@ class MailRequest extends Request
$short = $mail_service->short_name;
$rules = $this->getRules($short);
}
return $rules;
}
public function getRules($short){
public function getRules($short)
{
$rules = [];
switch ($short) {
case "mailgun":
case 'mailgun':
$rules = [
'domain'=> 'required',
'secret'=> 'required',
];
return $rules;
case "mandrill":
case 'mandrill':
$rules = [
'secret'=> 'required',
];
return $rules;
default:
return $rules;

View File

@@ -30,7 +30,6 @@ class PriorityRequest extends Request
{
return [
'priority' => 'required|max:10',
'status' => 'required',
'priority_desc' => 'required|max:255',
@@ -39,9 +38,6 @@ class PriorityRequest extends Request
'priority_successfully_updated' => 'priority successfully updated',
'priority_successfully_created!!!'=> 'priority successfully created',
];
}
}

View File

@@ -36,8 +36,8 @@ class ProfileRequest extends Request
}
/**
*Check the mobile number is unique or not.
*
*Check the mobile number is unique or not
*@return string
*/
public function checkMobile()

View File

@@ -25,16 +25,19 @@ class QueueRequest extends Request
{
$request = $this->except('_token');
$rules = $this->setRule($request);
return $rules;
}
public function setRule($request){
public function setRule($request)
{
$rules = [];
if (count($request) > 0) {
foreach ($request as $key=>$value) {
$rules[$key] = 'required';
}
}
return $rules;
}
}

View File

@@ -29,10 +29,11 @@ class RegisterRequest extends Request
*/
public function rules()
{
$check = $this->check(new CommonSettings);
$check = $this->check(new CommonSettings());
if ($check != 0) {
return $check;
}
return [
'email' => 'required|max:50|email|unique:users',
'full_name' => 'required',
@@ -43,8 +44,11 @@ class RegisterRequest extends Request
/**
*@category Funcion to set rule if send opt is enabled
*@param Object $settings (instance of Model common settings)
*
*@param object $settings (instance of Model common settings)
*
*@author manish.verma@ladybirdweb.com
*
*@return array|int
*/
public function check($settings)

View File

@@ -1,9 +1,9 @@
<?php
namespace App\Http\Requests\helpdesk;
use App\Model\helpdesk\Settings\CommonSettings;
use App\Http\Requests\Request;
use App\Model\helpdesk\Settings\CommonSettings;
/**
* Sys_userRequest.
@@ -29,10 +29,11 @@ class Sys_userRequest extends Request
*/
public function rules()
{
$check = $this->check(new CommonSettings);
$check = $this->check(new CommonSettings());
if ($check != 0) {
return $check;
}
return [
'first_name' => 'required',
'user_name' => 'required|min:3|unique:users,user_name',
@@ -43,8 +44,11 @@ class Sys_userRequest extends Request
/**
*@category Funcion to set rule if send opt is enabled
*@param Object $settings (instance of Model common settings)
*
*@param object $settings (instance of Model common settings)
*
*@author manish.verma@ladybirdweb.com
*
*@return array|int
*/
public function check($settings)
@@ -63,9 +67,11 @@ class Sys_userRequest extends Request
return 0;
} elseif (($settings->status == '0' || $settings->status == 0) && ($email_mandatory->status == '0' || $email_mandatory->status == 0)) {
$rule = $this->onlyMobleRequired();
return $rule;
} elseif (($settings->status == '1' || $settings->status == 1) && ($email_mandatory->status == '0' || $email_mandatory->status == 0)) {
$rule = $this->onlyMobleRequired();
return $rule;
} else {
return 0;
@@ -74,7 +80,9 @@ class Sys_userRequest extends Request
/**
*@category function to make only moble required rule
*
*@param null
*
*@return array
*/
public function onlyMobleRequired()

View File

@@ -3,6 +3,7 @@
namespace App\Http\Requests\helpdesk;
use App\Http\Requests\Request;
//use Illuminate\Http\Request as Req;
/**
* Sys_userUpdate.

View File

@@ -9,14 +9,15 @@ use App\Http\Requests\Request;
*
* @author Ladybird <info@ladybirdweb.com>
*/
class TicketRequest extends Request {
class TicketRequest extends Request
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize() {
public function authorize()
{
return true;
}
@@ -25,12 +26,13 @@ class TicketRequest extends Request {
*
* @return array
*/
public function rules() {
$error = "";
public function rules()
{
$error = '';
try {
$size = $this->size();
if ($size > 800 || $size == 0) {
throw new \Exception("File size exceeded", 422);
throw new \Exception('File size exceeded', 422);
}
} catch (\Exception $ex) {
dd($ex);
@@ -41,10 +43,11 @@ class TicketRequest extends Request {
// ];
}
public function size() {
public function size()
{
$files = $this->file('attachment');
if (!$files) {
throw new \Exception("exceeded", 422);
throw new \Exception('exceeded', 422);
}
$size = 0;
if (count($files) > 0) {
@@ -52,12 +55,13 @@ class TicketRequest extends Request {
$size += $file->getSize();
}
}
return $size;
}
public function error($e) {
public function error($e)
{
if ($this->ajax() || $this->wantsJson()) {
$message = $e->getMessage();
if (is_object($message)) {
$message = $message->toArray();
@@ -66,5 +70,4 @@ class TicketRequest extends Request {
return $message;
}
}
}

View File

@@ -24,6 +24,7 @@ class CategoryRequest extends Request
public function rules()
{
$id = $this->segment(2);
return [
'name' => 'required|max:250|unique:kb_category,name,'.$id,
'description' => 'required',

View File

@@ -24,8 +24,9 @@ class PageRequest extends Request
public function rules()
{
$slug = $this->segment(2);
return [
'name' => 'required|unique:kb_pages,slug,'.$slug
'name' => 'required|unique:kb_pages,slug,'.$slug,
];
}
}

View File

@@ -2,15 +2,15 @@
namespace App\Http\ViewComposers;
use Illuminate\View\View;
use App\Model\helpdesk\Settings\Company;
use Auth;
use App\User;
use App\Model\helpdesk\Ticket\Tickets;
use App\Model\helpdesk\Agent\Department;
use App\Model\helpdesk\Settings\Company;
use App\Model\helpdesk\Ticket\Tickets;
use App\User;
use Auth;
use Illuminate\View\View;
class AgentLayout {
class AgentLayout
{
/**
* The user repository implementation.
*
@@ -25,9 +25,11 @@ class AgentLayout {
* Create a new profile composer.
*
* @param
*
* @return void
*/
public function __construct(Company $company, User $users, Tickets $tickets, Department $department) {
public function __construct(Company $company, User $users, Tickets $tickets, Department $department)
{
$this->company = $company;
$this->auth = Auth::user();
$this->users = $users;
@@ -39,9 +41,11 @@ class AgentLayout {
* Bind data to the view.
*
* @param View $view
*
* @return void
*/
public function compose(View $view) {
public function compose(View $view)
{
$notifications = \App\Http\Controllers\Common\NotificationController::getNotifications();
$view->with([
'company' => $this->company,
@@ -57,15 +61,18 @@ class AgentLayout {
]);
}
public function users() {
public function users()
{
return $this->users->select('id', 'profile_pic');
}
public function tickets() {
public function tickets()
{
return $this->tickets->select('id', 'ticket_number');
}
public function departments() {
public function departments()
{
$array = [];
$tickets = $this->tickets;
if (\Auth::user()->role == 'agent') {
@@ -82,10 +89,12 @@ class AgentLayout {
foreach ($grouped as $key => $group) {
$status[$key] = $group->keyBy('status');
}
return collect($status);
}
public function myTicket() {
public function myTicket()
{
$ticket = $this->tickets();
if ($this->auth->role == 'admin') {
return $ticket->where('assigned_to', $this->auth->id)
@@ -96,7 +105,8 @@ class AgentLayout {
}
}
public function unassigned() {
public function unassigned()
{
$ticket = $this->tickets();
if ($this->auth->role == 'admin') {
return $ticket->where('assigned_to', '=', null)
@@ -110,7 +120,8 @@ class AgentLayout {
}
}
public function followupTicket() {
public function followupTicket()
{
$ticket = $this->tickets();
if ($this->auth->role == 'admin') {
return $ticket->where('status', '1')->where('follow_up', '1')->select('id');
@@ -119,8 +130,8 @@ class AgentLayout {
}
}
public function deleted() {
public function deleted()
{
$ticket = $this->tickets();
if ($this->auth->role == 'admin') {
return $ticket->where('status', '5')->select('id');
@@ -130,19 +141,21 @@ class AgentLayout {
}
}
public function inbox() {
public function inbox()
{
$ticket = $this->tickets();
if ($this->auth->role == 'admin') {
return $ticket->whereIn('status', array(1, 7))->select('id');
return $ticket->whereIn('status', [1, 7])->select('id');
} elseif ($this->auth->role == 'agent') {
return $ticket->whereIn('status', array(1, 7))
return $ticket->whereIn('status', [1, 7])
->where('dept_id', '=', $this->auth->primary_dpt)
->orWhere('assigned_to', '=', Auth::user()->id)
->select('id');
}
}
public function overdues() {
public function overdues()
{
$ticket = $this->tickets();
if ($this->auth->role == 'admin') {
return $ticket->where('status', '=', 1)
@@ -162,7 +175,6 @@ class AgentLayout {
}
}
public function getDueToday()
{
$ticket = $this->tickets();
@@ -180,6 +192,5 @@ class AgentLayout {
->where('dept_id', '=', $this->auth->primary_dpt)
->whereRaw('date(duedate) = ?', [date('Y-m-d')]);
}
}
}

View File

@@ -2,18 +2,20 @@
namespace App\Http\ViewComposers;
use Illuminate\View\View;
use Auth;
use Illuminate\View\View;
class AuthUser {
class AuthUser
{
protected $user;
public function __construct() {
public function __construct()
{
$this->user = Auth::user();
}
public function compose(View $view) {
public function compose(View $view)
{
$view->with([
'auth_user_role' => $this->user->role,
'auth_user_id' => $this->user->id,
@@ -24,5 +26,4 @@ class AuthUser {
'auth_user_assign_group'=> $this->user->assign_group,
]);
}
}

View File

@@ -2,20 +2,19 @@
namespace App\Http\ViewComposers;
use Illuminate\View\View;
use App\Model\Update\BarNotification;
use Illuminate\View\View;
class UpdateNotification {
public function __construct() {
class UpdateNotification
{
public function __construct()
{
}
public function compose(View $view) {
public function compose(View $view)
{
$notification = new BarNotification();
$notice = $notification->where('value', '!=', '')->select('value')->get();
$view->with(['notification' => $notice]);
}
}

View File

@@ -325,7 +325,7 @@ Breadcrumbs::register('user.show', function ($breadcrumbs) {
Breadcrumbs::register('user.export', function ($breadcrumbs) {
$breadcrumbs->parent('user.index');
$breadcrumbs->push("Export", url('user-export'));
$breadcrumbs->push('Export', url('user-export'));
});
Breadcrumbs::register('organizations.index', function ($breadcrumbs) {

View File

@@ -1,19 +1,22 @@
<?php
function loging($context, $message, $level = 'error', $array = []) {
\Log::$level($message . ":-:-:-" . $context, $array);
function loging($context, $message, $level = 'error', $array = [])
{
\Log::$level($message.':-:-:-'.$context, $array);
}
function checkArray($key, $array) {
$value = "";
function checkArray($key, $array)
{
$value = '';
if (array_key_exists($key, $array)) {
$value = $array[$key];
}
return $value;
}
function mime($type) {
function mime($type)
{
if ($type == 'jpg' ||
$type == 'png' ||
$type == 'PNG' ||
@@ -26,36 +29,43 @@ function mime($type) {
$type == 'image/jpg' ||
$type == 'image/gif' ||
// $type == "application/octet-stream" ||
$type == "image/png" ||
$type == 'image/png' ||
starts_with($type, 'image')) {
return "image";
return 'image';
}
}
function removeUnderscore($string) {
function removeUnderscore($string)
{
if (str_contains($string, '_') === true) {
$string = str_replace('_', ' ', $string);
}
return ucfirst($string);
}
function isItil() {
function isItil()
{
$check = false;
if (\Schema::hasTable('sd_releases') && \Schema::hasTable('sd_changes') && \Schema::hasTable('sd_problem')) {
$check = true;
}
return $check;
}
function isAsset() {
function isAsset()
{
$check = false;
if (\Schema::hasTable('sd_assets')) {
$check = true;
}
return $check;
}
function itilEnabled() {
function itilEnabled()
{
$check = false;
if (\Schema::hasTable('common_settings')) {
$settings = \DB::table('common_settings')->where('option_name', 'itil')->first();
@@ -63,10 +73,12 @@ function itilEnabled() {
$check = true;
}
}
return $check;
}
function isBill() {
function isBill()
{
$check = false;
if (\Schema::hasTable('common_settings')) {
$settings = \DB::table('common_settings')->where('option_name', 'bill')->first();
@@ -74,14 +86,17 @@ function isBill() {
$check = true;
}
}
return $check;
}
function deletePopUp($id, $url, $title = "Delete", $class = "btn btn-sm btn-danger", $btn_name = "Delete", $button_check = true) {
$button = "";
function deletePopUp($id, $url, $title = 'Delete', $class = 'btn btn-sm btn-danger', $btn_name = 'Delete', $button_check = true)
{
$button = '';
if ($button_check == true) {
$button = '<a href="#delete" class="'.$class.'" data-toggle="modal" data-target="#delete'.$id.'">'.$btn_name.'</a>';
}
return $button.'<div class="modal fade" id="delete'.$id.'">
<div class="modal-dialog">
<div class="modal-content">
@@ -105,16 +120,19 @@ function deletePopUp($id, $url, $title = "Delete", $class = "btn btn-sm btn-dang
</div>';
}
function isInstall() {
function isInstall()
{
$check = false;
$env = base_path('.env');
if (\File::exists($env) && env('DB_INSTALL') == 1) {
$check = true;
}
return $check;
}
function faveotime($date, $hour = 0, $min = 0, $sec = 0) {
function faveotime($date, $hour = 0, $min = 0, $sec = 0)
{
if (is_bool($hour) && $hour == true) {
$hour = $date->hour;
}
@@ -125,5 +143,6 @@ function faveotime($date, $hour = 0, $min = 0, $sec = 0) {
$sec = $date->second;
}
$date1 = \Carbon\Carbon::create($date->year, $date->month, $date->day, $hour, $min, $sec);
return $date1->hour($hour)->minute($min)->second($sec);
}

View File

@@ -11,7 +11,6 @@
|
*/
Route::group(['middleware' => ['web']], function () {
Route::group(['middleware' => 'update', 'middleware' => 'install'], function () {
Route::controllers([
'auth' => 'Auth\AuthController',
@@ -36,7 +35,6 @@ Route::group(['middleware' => ['web']], function () {
$breadcrumbs->push('Forgot Password', url('password/email'));
});
// register page
Route::get('auth/register/{one?}/{two?}/{three?}/{four?}/{five?}', ['as' => 'auth.register', 'uses' => 'Auth\AuthController@getRegister']);
Breadcrumbs::register('auth.register', function ($breadcrumbs) {
@@ -45,28 +43,14 @@ Route::group(['middleware' => ['web']], function () {
$breadcrumbs->push('Create Account', url('auth/register'));
});
// Auth login
Route::get('auth/login/{one?}/{two?}/{three?}/{four?}/{five?}', ['as' => 'auth.login', 'uses' => 'Auth\AuthController@getLogin']);
Breadcrumbs::register('auth.login', function ($breadcrumbs) {
$breadcrumbs->parent('/');
$breadcrumbs->push('Create Account', url('auth/register'));
$breadcrumbs->push('Login', url('auth/login'));
});
Route::get('account/activate/{token}', ['as' => 'account.activate', 'uses' => 'Auth\AuthController@accountActivate']);
Route::get('getmail/{token}', 'Auth\AuthController@getMail');
Route::get('verify-otp', ['as' => 'otp-verification', 'uses' => 'Auth\AuthController@getVerifyOTP']);
@@ -286,14 +270,13 @@ Route::get('getshow/{id}', ['as' => 'teams.getshow.list', 'uses' => 'Admin\helpd
Route::get('/ticket/get-approval', ['as' => 'get.approval.ticket', 'uses' => 'Agent\helpdesk\TicketController@getApproval']); /* Get tickets in datatable */
Route::get('/ticket/close/get-approval/{id}', ['as' => 'get.close.approval.ticket', 'uses' => 'Agent\helpdesk\TicketController@getCloseapproval']); /* Get tickets in datatable */
/**
/*
* Labels
*/
Route::resource('labels', 'Admin\helpdesk\Label\LabelController');
Route::get('labels-ajax', ['as'=>'labels.ajax', 'uses'=>'Admin\helpdesk\Label\LabelController@ajaxTable']);
Route::get('labels/delete/{id}', ['as' => 'labels.destroy', 'uses' => 'Admin\helpdesk\Label\LabelController@destroy']);
});
/*
|------------------------------------------------------------------
@@ -315,9 +298,6 @@ Route::get('getshow/{id}', ['as' => 'teams.getshow.list', 'uses' => 'Admin\helpd
Route::get('user-export', ['as' => 'user.export', 'uses' => 'Agent\helpdesk\UserController@getExportUser']); /* User router is used to control the CRUD of user */
Route::post('user-export', ['as' => 'user.export.post', 'uses' => 'Agent\helpdesk\UserController@exportUser']); /* User router is used to control the CRUD of user */
Route::get('user-list', ['as' => 'user.list', 'uses' => 'Agent\helpdesk\UserController@user_list']);
// Route::get('user/delete/{id}', ['as' => 'user.delete' , 'uses' => 'Agent\helpdesk\UserController@destroy']);
@@ -334,7 +314,6 @@ Route::get('getshow/{id}', ['as' => 'teams.getshow.list', 'uses' => 'Admin\helpd
Route::get('profile-edit', ['as' => 'agent-profile-edit', 'uses' => 'Agent\helpdesk\UserController@getProfileedit']); /* User profile edit get */
Route::post('verify-number', ['as' => 'agent-verify-number', 'uses' => 'Agent\helpdesk\UserController@resendOTP']);
Route::post('verify-number2', ['as' => 'post-agent-verify-number', 'uses' => 'Agent\helpdesk\UserController@verifyOTP']);
@@ -452,20 +431,19 @@ Route::get('getshow/{id}', ['as' => 'teams.getshow.list', 'uses' => 'Admin\helpd
// Route to get details of agents
Route::post('get-agents', ['as' => 'get-agents', 'uses' => 'Agent\helpdesk\UserController@getAgentDetails']);
/**
/*
* Label
*/
Route::get('labels-ticket', ['as'=>'labels.ticket', 'uses'=>'Admin\helpdesk\Label\LabelController@attachTicket']);
Route::get('json-labels', ['as'=>'labels.json', 'uses'=>'Admin\helpdesk\Label\LabelController@getLabel']);
Route::get('filter', ['as'=>'filter', 'uses'=>'Agent\helpdesk\Filter\FilterController@getFilter']);
/**
/*
* Tags
*/
Route::get('add-tag', ['as'=>'tag.add', 'uses'=>'Agent\helpdesk\Filter\TagController@addToFilter']);
Route::get('get-tag', ['as'=>'tag.get', 'uses'=>'Agent\helpdesk\Filter\TagController@getTag']);
});
/*
@@ -532,7 +510,6 @@ Route::get('getshow/{id}', ['as' => 'teams.getshow.list', 'uses' => 'Admin\helpd
Route::post('verify-client-number', ['as' => 'client-verify-number', 'uses' => 'Client\helpdesk\GuestController@resendOTP']);
Route::post('verify-client-number2', ['as' => 'post-client-verify-number', 'uses' => 'Client\helpdesk\GuestController@verifyOTP']);
});
//====================================================================================
Route::get('checkticket', 'Client\helpdesk\ClientTicketController@getCheckTicket'); /* Check your Ticket */
@@ -614,18 +591,14 @@ Route::get('getshow/{id}', ['as' => 'teams.getshow.list', 'uses' => 'Admin\helpd
return view('errors.404');
}]);
Route::get('error-in-database-connection', ['as' => 'errordb', function () {
return view('errors.db');
}]);
Route::get('unauthorized', ['as' => 'unauth', function () {
return view('errors.unauth');
}]);
Route::get('board-offline', ['as' => 'board.offline', function () {
return view('errors.offline');
}]);
@@ -674,7 +647,6 @@ Route::get('getshow/{id}', ['as' => 'teams.getshow.list', 'uses' => 'Admin\helpd
Route::get('delete-background/{id}', ['as' => 'delete-background', 'uses' => 'Agent\kb\SettingsController@deleteBackground']);
Route::resource('page', 'Agent\kb\PageController');
Route::get('get-pages', ['as' => 'api.page', 'uses' => 'Agent\kb\PageController@getData']);
Route::get('page/delete/{id}', ['as' => 'pagedelete', 'uses' => 'Agent\kb\PageController@destroy']);
Route::get('comment/delete/{id}', ['as' => 'commentdelete', 'uses' => 'Agent\kb\SettingsController@delete']);
@@ -802,12 +774,10 @@ Route::get('getshow/{id}', ['as' => 'teams.getshow.list', 'uses' => 'Admin\helpd
$api_control->ticketDetailEvent($details);
});
Route::get('test', ['as' => 'test', 'uses' => 'Common\PushNotificationController@response']);
Route::get('mail/config/service', ['as' => 'mail.config.service', 'uses' => 'Job\MailController@serviceForm']);
/**
/*
* Queue
*/
@@ -820,14 +790,14 @@ Route::get('getshow/{id}', ['as' => 'teams.getshow.list', 'uses' => 'Admin\helpd
Route::get('get-ticket-number', ['as' => 'get.ticket.number', 'uses' => 'Admin\helpdesk\SettingsController@getTicketNumber']);
Route::get('genereate-pdf/{threadid}', ['as' => 'thread.pdf', 'uses' => 'Agent\helpdesk\TicketController@pdfThread']);
/**
/*
* Url Settings
*/
Route::get('url/settings', ['as' => 'url.settings', 'uses' => 'Admin\helpdesk\UrlSettingController@settings']);
Route::patch('url/settings', ['as' => 'url.settings.post', 'uses' => 'Admin\helpdesk\UrlSettingController@postSettings']);
/**
/*
* Social media settings
*/
@@ -869,4 +839,3 @@ Route::get('getshow/{id}', ['as' => 'teams.getshow.list', 'uses' => 'Admin\helpd
// $breadcrumbs->push(Lang::get('lang.tickets') . '&nbsp; > &nbsp;' . Lang::get('lang.open'), route('open.ticket'));
// });
});

View File

@@ -2,22 +2,21 @@
namespace App\Jobs;
use App\Jobs\Job;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Contracts\Bus\SelfHandling;
use App\Http\Controllers\Common\PhpMailController;
use Illuminate\Contracts\Bus\SelfHandling;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
class SendEmail extends Job implements SelfHandling, ShouldQueue
{
use InteractsWithQueue,SerializesModels;
protected $from;
protected $to;
protected $message;
protected $template;
/**
* Create a new job instance.
*
@@ -39,9 +38,7 @@ class SendEmail extends Job implements SelfHandling,ShouldQueue
public function handle(PhpMailController $PhpMailController)
{
$p = $PhpMailController->sendEmail($this->from, $this->to, $this->message, $this->template);
return $p;
}
}

View File

@@ -4,12 +4,13 @@ namespace App\Model\MailJob;
use Illuminate\Database\Eloquent\Model;
class Condition extends Model {
protected $table = "conditions";
class Condition extends Model
{
protected $table = 'conditions';
protected $fillable = ['job', 'value'];
public function getConditionValue($job) {
public function getConditionValue($job)
{
$value = ['condition' => '', 'at' => ''];
$condition = $this->where('job', $job)->first();
if ($condition) {
@@ -19,21 +20,24 @@ class Condition extends Model {
$value = ['condition' => $this->checkArray(0, $condition_value), 'at' => $this->checkArray(1, $condition_value)];
}
}
return $value;
}
public function checkArray($key,$array){
$value = "";
public function checkArray($key, $array)
{
$value = '';
if (is_array($array)) {
if (array_key_exists($key, $array)) {
$value = $array[$key];
}
}
return $value;
return $value;
}
public function checkActiveJob() {
public function checkActiveJob()
{
$result = ['fetching' => '', 'notification' => '', 'work' => '', 'message' => '', 'remind' => ''];
$emails = new \App\Model\helpdesk\Settings\Email();
$email = $emails->find(1);
@@ -53,7 +57,7 @@ class Condition extends Model {
$result['work'] = true;
}
}
return $result;
}
}

View File

@@ -4,9 +4,8 @@ namespace App\Model\MailJob;
use Illuminate\Database\Eloquent\Model;
class FaveoMail extends Model {
protected $table = "faveo_mails";
protected $fillable = ["drive", "key", "value","email_id"];
class FaveoMail extends Model
{
protected $table = 'faveo_mails';
protected $fillable = ['drive', 'key', 'value', 'email_id'];
}

View File

@@ -4,9 +4,8 @@ namespace App\Model\MailJob;
use Illuminate\Database\Eloquent\Model;
class FaveoQueue extends Model {
protected $table = "faveo_queues";
protected $fillable = ["key", "value","service_id"];
class FaveoQueue extends Model
{
protected $table = 'faveo_queues';
protected $fillable = ['key', 'value', 'service_id'];
}

View File

@@ -6,6 +6,6 @@ use Illuminate\Database\Eloquent\Model;
class MailService extends Model
{
protected $table = "mail_services";
protected $fillable = ["name","short_name"];
protected $table = 'mail_services';
protected $fillable = ['name', 'short_name'];
}

View File

@@ -7,55 +7,67 @@ use Lang;
class QueueService extends Model
{
protected $table = "queue_services";
protected $fillable = ["name","short_name","status"];
protected $table = 'queue_services';
protected $fillable = ['name', 'short_name', 'status'];
public function extraFieldRelation(){
public function extraFieldRelation()
{
$related = "App\Model\MailJob\FaveoQueue";
return $this->hasMany($related, 'service_id');
}
public function getExtraField($key){
$value = "";
public function getExtraField($key)
{
$value = '';
$setting = $this->extraFieldRelation()->where('key', $key)->first();
if ($setting) {
$value = $setting->value;
}
return $value;
}
public function getName(){
public function getName()
{
$name = $this->attributes['name'];
$id = $this->attributes['id'];
$html = "<a href=".url('queue/'.$id).">".$name."</a>";
$html = '<a href='.url('queue/'.$id).'>'.$name.'</a>';
return $html;
}
public function getStatus(){
public function getStatus()
{
$status = $this->attributes['status'];
$html = "<span style='color:red'>".Lang::get('lang.inactive')."</span>";
$html = "<span style='color:red'>".Lang::get('lang.inactive').'</span>';
if ($status == 1) {
$html = "<span style='color:green'>".Lang::get('lang.active')."</span>";
$html = "<span style='color:green'>".Lang::get('lang.active').'</span>';
}
return $html;
}
public function getAction(){
public function getAction()
{
$id = $this->attributes['id'];
$status = $this->attributes['status'];
$html = "<a href=".url('queue/'.$id.'/activate')." class='btn btn-primary'>".Lang::get('lang.activate')."</a>";
$html = '<a href='.url('queue/'.$id.'/activate')." class='btn btn-primary'>".Lang::get('lang.activate').'</a>';
if ($status == 1) {
$html = "<a href='#' class='btn btn-primary' disabled>".Lang::get('lang.activate')."</a>";
$html = "<a href='#' class='btn btn-primary' disabled>".Lang::get('lang.activate').'</a>';
}
return $html;
}
public function isActivate(){
public function isActivate()
{
$check = true;
$settings = $this->extraFieldRelation()->get();
if ($settings->count() == 0) {
$check = false;
}
return $check;
}
}

View File

@@ -13,21 +13,26 @@ class Organization extends BaseModel
/* Define the fillable fields */
protected $fillable = ['id', 'name', 'phone', 'website', 'address', 'head', 'internal_notes'];
public function userRelation(){
public function userRelation()
{
$related = "App\Model\helpdesk\Agent_panel\User_org";
return $this->hasMany($related, 'org_id');
}
public function getUserIds(){
public function getUserIds()
{
$user_relations = $this->userRelation()->lists('user_id')->toArray();
return $user_relations;
}
public function users(){
public function users()
{
$user = new \App\User();
$user_ids = $this->getUserIds();
$users = $user->whereIn('id', $user_ids);
return $users;
}
}

View File

@@ -13,8 +13,9 @@ class User_org extends BaseModel
/* define fillable fields */
protected $fillable = ['id', 'org_id', 'user_id'];
public function setOrgIdAttribute($value){
if($value==""){
public function setOrgIdAttribute($value)
{
if ($value == '') {
$this->attributes['org_id'] = null;
} else {
$this->attributes['org_id'] = $value;

View File

@@ -15,36 +15,41 @@ class Emails extends BaseModel
'sending_status', 'authentication', 'header_spoofing', 'imap_config',
];
public function getCurrentDrive(){
public function getCurrentDrive()
{
$drive = $this->attributes['sending_protocol'];
$mailServices = new \App\Model\MailJob\MailService();
$id = "";
$id = '';
$mailService = $mailServices->where('short_name', $drive)->first();
if ($mailService) {
$id = $mailService->id;
}
return $id;
return $id;
}
public function getExtraField($key){
$value = "";
public function getExtraField($key)
{
$value = '';
$id = $this->attributes['id'];
$services = new \App\Model\MailJob\FaveoMail();
$service = $services->where('email_id', $id)->where('key', $key)->first();
if ($service) {
$value = $service->value;
}
return $value;
return $value;
}
public function extraFieldRelation(){
public function extraFieldRelation()
{
$related = "App\Model\MailJob\FaveoMail";
return $this->hasMany($related, 'email_id');
}
public function deleteExtraFields(){
public function deleteExtraFields()
{
$fields = $this->extraFieldRelation()->get();
if ($fields->count() > 0) {
foreach ($fields as $field) {
@@ -53,14 +58,17 @@ class Emails extends BaseModel
}
}
public function getPasswordAttribute($value){
public function getPasswordAttribute($value)
{
if ($value) {
return \Crypt::decrypt($value);
}
return $value;
}
public function delete() {
public function delete()
{
$this->deleteExtraFields();
parent::delete();
}

View File

@@ -9,7 +9,8 @@ class Filter extends Model
protected $table = 'filters';
protected $fillable = ['ticket_id', 'key', 'value'];
public function getLabelTitle($ticketid){
public function getLabelTitle($ticketid)
{
$filter = $this->where('ticket_id', $ticketid)->where('key', 'label')->first();
$output = [];
if ($filter && $filter->value) {
@@ -22,13 +23,14 @@ class Filter extends Model
}
}
}
return $output;
}
public function getTagsByTicketId($ticketid){
public function getTagsByTicketId($ticketid)
{
$filter = $this->where('key', 'tag')->where('ticket_id', $ticketid)->lists('value')->toArray();
return $filter;
}
}

View File

@@ -5,33 +5,37 @@ namespace App\Model\helpdesk\Filters;
use Illuminate\Database\Eloquent\Model;
use Lang;
class Label extends Model {
class Label extends Model
{
protected $table = 'labels';
protected $fillable = ['title', 'color', 'order', 'status'];
public function titleWithColor() {
public function titleWithColor()
{
$title = $this->title;
$color = $this->color;
if ($title && $color) {
return "<span class='label' style='background-color:" . $color . "; color: #FFF;'>" . $title . "</span>";
return "<span class='label' style='background-color:".$color."; color: #FFF;'>".$title.'</span>';
} else {
return "--";
return '--';
}
}
public function status() {
public function status()
{
$status = $this->status;
$output = Lang::get('lang.disabled');
if ($status == 1) {
$output = Lang::get('lang.enabled');
}
return $output;
}
public function isChecked($ticketid) {
public function isChecked($ticketid)
{
$title = $this->attributes['title'];
$output = "";
$output = '';
$filters = new Filter();
$filter = $filters
->where('ticket_id', $ticketid)
@@ -39,24 +43,26 @@ class Label extends Model {
->where('value', $title)
->first();
if ($filter && $filter->value) {
$output = "checked";
$output = 'checked';
}
return $output;
}
public function assignedLabels($ticketid) {
$output = "";
public function assignedLabels($ticketid)
{
$output = '';
$filters = new Filter();
$filter = $filters->where('ticket_id', $ticketid)->where('key', 'label')->select('value')->get();
if (count($filter) > 0) {
foreach ($filter as $fil) {
$label = $this->where('title', $fil->value)->select('title', 'color')->first();
if ($label) {
$output .="&nbsp;&nbsp;".$label->titleWithColor()."&nbsp;&nbsp;";
$output .= '&nbsp;&nbsp;'.$label->titleWithColor().'&nbsp;&nbsp;';
}
}
}
return $output;
}
return $output;
}
}

View File

@@ -8,6 +8,4 @@ class Tag extends Model
{
protected $table = 'tags';
protected $fillable = ['name', 'description'];
}

View File

@@ -6,22 +6,17 @@ use Illuminate\Database\Eloquent\Model;
class FieldValue extends Model
{
protected $table = "field_values";
protected $table = 'field_values';
protected $fillable = ['field_id', 'child_id', 'field_key', 'field_value'];
public function childId(){
$childid = "";
public function childId()
{
$childid = '';
$child = $this->attributes['child_id'];
if ($child) {
$childid = $this->attributes['child_id'];
}
return $childid;
}
}

View File

@@ -4,8 +4,8 @@ namespace App\Model\helpdesk\Form;
use App\BaseModel;
class Fields extends BaseModel {
class Fields extends BaseModel
{
protected $table = 'custom_form_fields';
/**
@@ -15,44 +15,55 @@ class Fields extends BaseModel {
*/
protected $fillable = ['forms_id', 'label', 'name', 'type', 'value', 'required'];
public function valueRelation() {
public function valueRelation()
{
$related = "App\Model\helpdesk\Form\FieldValue";
return $this->hasMany($related, 'field_id');
}
public function values() {
public function values()
{
$value = $this->valueRelation();
return $value;
}
public function valuesAsString(){
$string = "";
public function valuesAsString()
{
$string = '';
$values = $this->values()->lists('field_value')->toArray();
if (count($values) > 0) {
$string = implode(',', $values);
}
return $string;
return $string;
}
public function requiredFieldForCheck(){
public function requiredFieldForCheck()
{
$check = false;
$required = $this->attributes['required'];
if ($required === '1') {
$check = true;
}
return $check;
}
public function nonRequiredFieldForCheck(){
public function nonRequiredFieldForCheck()
{
$check = false;
$required = $this->attributes['required'];
if ($required !== '1') {
$check = true;
}
return $check;
}
public function deleteValues() {
public function deleteValues()
{
$values = $this->values()->get();
if ($values->count() > 0) {
foreach ($values as $value) {
@@ -61,9 +72,9 @@ class Fields extends BaseModel {
}
}
public function delete() {
public function delete()
{
$this->deleteValues();
parent::delete();
}
}

View File

@@ -15,18 +15,22 @@ class Forms extends BaseModel
*/
protected $fillable = ['formname'];
public function fieldRelation(){
public function fieldRelation()
{
$related = "App\Model\helpdesk\Form\Fields";
return $this->hasMany($related);
}
public function fields(){
public function fields()
{
$relation = $this->fieldRelation()->get();
return $relation;
}
public function fieldsDelete(){
public function fieldsDelete()
{
$fields = $this->fields();
if ($fields->count() > 0) {
foreach ($fields as $field) {
@@ -35,29 +39,34 @@ class Forms extends BaseModel
}
}
public function formValueRelation(){
public function formValueRelation()
{
$related = "App\Model\helpdesk\Form\FieldValue";
return $this->hasMany($related, 'child_id');
}
public function formValueChild(){
public function formValueChild()
{
$childs = $this->formValueRelation()->get();
return $childs;
}
public function deleteFormChild(){
public function deleteFormChild()
{
$childs = $this->formValueChild();
if ($childs->count() > 0) {
foreach ($childs as $child) {
$child->child_id = NULL;
$child->child_id = null;
$child->save();
}
}
}
public function delete() {
public function delete()
{
$this->fieldsDelete();
parent::delete();
}
}

View File

@@ -13,9 +13,11 @@ class Help_topic extends BaseModel
'auto_response',
];
public function department(){
public function department()
{
$related = 'App\Model\helpdesk\Agent\Department';
$foreignKey = 'department';
return $this->belongsTo($related, $foreignKey);
}
}

View File

@@ -12,25 +12,32 @@ class Notification extends BaseModel
'model_id', 'userid_created', 'type_id',
];
public function type(){
public function type()
{
$related = 'App\Model\helpdesk\Notification\NotificationType';
$id = 'type_id';
return $this->belongsTo($related, $id);
}
public function model(){
public function model()
{
$related = 'App\Model\helpdesk\Ticket\Tickets';
$id = 'model_id';
return $this->belongsTo($related, $id);
}
public function userNotification(){
public function userNotification()
{
$related = 'App\Model\helpdesk\Notification\UserNotification';
$foreignKey = 'notification_id';
return $this->hasMany($related, $foreignKey);
}
public function deleteUserNotification(){
public function deleteUserNotification()
{
$user_notifications = $this->userNotification;
if (count($user_notifications) > 0) {
foreach ($user_notifications as $noti) {
@@ -39,7 +46,8 @@ class Notification extends BaseModel
}
}
public function dummyDelete(){
public function dummyDelete()
{
$user_notifications = UserNotification::get();
if (count($user_notifications) > 0) {
foreach ($user_notifications as $noti) {
@@ -48,7 +56,8 @@ class Notification extends BaseModel
}
}
public function delete() {
public function delete()
{
$this->deleteUserNotification();
// $this->dummyDelete();
parent::delete();

View File

@@ -12,15 +12,19 @@ class UserNotification extends BaseModel
'notification_id', 'user_id', 'is_read',
];
public function notification(){
public function notification()
{
$related = 'App\Model\helpdesk\Notification\Notification';
$id = 'notification_id';
return $this->belongsTo($related, $id);
}
public function users(){
public function users()
{
$related = 'App\User';
$id = 'user_id';
return $this->belongsTo($related, $id);
}

Some files were not shown because too many files have changed in this diff Show More