DashboardController.php 8.45 KB
<?php namespace App\Http\Controllers;

use App\Http\Controllers\Controller;

use DB;
use Auth;
use Config;
use Input;
use Response;
use App\Models\User;
use App\Models\Communitie;
use App\Jobs\KFileLib;
use App\Jobs\KAuthLib;
use App\Jobs\KHRMSLib;

class DashboardController extends Controller {

	public function __construct()
	{
		$this->middleware('auth');
		$this->middleware('module_access');
	}

	public function index()
	{
		$data=array();

		$user=Auth::user();
		$data["data"]=$user->data();
		$data["meta"]=$user->meta();
		if(Input::has("tz"))
		{
			$user->timezone=Input::get("tz");
			$data["meta"]['ncnt']=0;$user->meta=json_encode($data["meta"]);
			$user->save();
		}
		return view('layout.module.dashboard.index',$data);
	}

	public function create()
	{
	}

	public function store()
	{
	}

	public function show($id)
	{
		if($id=="s")
		{
			$kfile=new KFileLib();$kfile->folderSpaceUse(Auth::user()->id.'/');
			return Response::make("",200);
		}
		if($id=="r")
		{
            $umeta=Auth::user()->meta();
            $kauthlib=new KAuthLib();
            
            if(!isset($umeta['kautherror']))$umeta['kautherror']=0;
            if(isset($umeta['kauthlibuser'])&&isset($umeta['kauthlibcred']))
            {
            if(Config::get("app.extAuth")=="owa")
            {
                $authparams=explode(",",Config::get("app.extAuthParams"));if(!isset($authparams[0]))$authparams[0]="";if(!isset($authparams[1]))$authparams[1]="";
                if(!$kauthlib->owaAuthCheck($authparams[0],$authparams[1],$umeta['kauthlibuser'],$umeta['kauthlibcred'],""))
                {
                    $umeta['kautherror']++;
                    if($umeta['kautherror']>5)Auth::user()->status='Disabled';
                    Auth::user()->meta=json_encode($umeta);
                    Auth::user()->save();
                    if($umeta['kautherror']>5)return Response::make("document.location='logout';",200);
                }
                else
                {
                    $umeta['kautherror']=0;
                    Auth::user()->meta=json_encode($umeta);
                    Auth::user()->save();
                    return Response::make("",200);
                }
            }
            if(Config::get("app.extAuth")=="smtp")
            {
                $authparams=explode(",",Config::get("app.extAuthParams"));if(!isset($authparams[0]))$authparams[0]="";if(!isset($authparams[1]))$authparams[1]="";if(!isset($authparams[2]))$authparams[2]="";
                if(!$kauthlib->smtpLoginCheck($authparams[0],$authparams[1],$authparams[2],$umeta['kauthlibuser'],$umeta['kauthlibcred']))
                {
                    $umeta['kautherror']++;
                    if($umeta['kautherror']>5)Auth::user()->status='Disabled';
                    Auth::user()->meta=json_encode($umeta);
                    Auth::user()->save();
                    if($umeta['kautherror']>5)return Response::make("document.location='logout';",200);
                }
                else
                {
                    $umeta['kautherror']=0;
                    Auth::user()->meta=json_encode($umeta);
                    Auth::user()->save();
                    return Response::make("",200);
                }
            }
            }
	  }
	  if($id=="dpart")
	  {
	    $page=Input::get("page");
	    $data=array();

	    $user=Auth::user();
	    $data["data"]=$user->data();
	    $data["meta"]=$user->meta();
	    if(Input::has("tz"))
	    {
	      $user->timezone=Input::get("tz");
	      $data["meta"]['ncnt']=0;$user->meta=json_encode($data["meta"]);
	      $user->save();
	    }
	    
	    return view('layout.module.dashboard.'.$page,$data);
	  }
	  if($id=="search")
	  {
	    $data=array();
	    $data['stype']=Input::get('stype');
	    $data['strarr']=explode(" ",Input::get('str'));
	    $data['listdata']=array();
	    //hashtag imgurl title subtitle bubbles()
	    $groupacl=Auth::user()->getAccessList("group",true,false,false);
	    
	    if($data['stype']=="User")
	    {
	      $users0=User::whereIn("group",$groupacl)->where('status','=','Active');$orderby='';
                $users2=User::whereIn("group",$groupacl);
                $users3=User::whereIn("group",$groupacl);
	      foreach($data['strarr'] as $searchkey)
	      {
		$searchkey=trim($searchkey);
		if($searchkey!='')
		{
		  if($searchkey=='Learner'||$searchkey=='Trainer'||$searchkey=='Organization')$users0=$users0->where('usertype','=',$searchkey);
		  else if($searchkey=='MaxEdupoints')$orderby='Edupoints';
		  else $users0=$users0->where('data','like',"%$searchkey%");
		  
                    $users2=$users2->where('fullname','like',"%$searchkey%");
                    $users3=$users3->where('email','like',"%$searchkey%");
		}
	      }
	      //if($orderby=='Edupoints')$users0=$users0->orderBy()
	      $users=array();
	      $users0=$users0->orderBy(DB::raw('RAND()'))->take(30)->get();
	      $users2=$users2->orderBy(DB::raw('RAND()'))->take(20)->get();
              $users3=$users3->orderBy(DB::raw('RAND()'))->take(20)->get();
              foreach($users0 as $user)$users[]=$user;
                foreach($users2 as $user)$users[]=$user;
                foreach($users3 as $user)$users[]=$user;
                $users=array_unique($users);
	      if(!empty($users))
	      {
		foreach($users as $user)
		{
		  $tuserdata=array();
		  $tuserdata['id']=$user->id;
		  $tuserdata['type']='user';
		  $tuserdata['hashtag']="p-".$user->id;
		  $tuserdata['imgurl']=$user->fetchphotothumb();
		  $tuserdata['title']=$user->dispname();
		  $tuserdata['subtitle']=$user->dataval2('personal','gender')." ".$user->dataval2('personal','location')." - ".$user->dataval2('personal','country');
		  $tuserdata['bubbles']=array($user->dataval2('personal','level'),$user->dataval2('personal','function'));
		  
		
		  $data['listdata'][]=$tuserdata;
		}
	      }
	      
	      
	    }
	    if($data['stype']=="Community")
	    {
	      $commuity1=Communitie::whereIn("group",$groupacl)->where('status','=','Active');
	      $commuity2=Communitie::whereIn("group",$groupacl)->where('status','=','Active');
	      $commuity3=Communitie::whereIn("group",$groupacl)->where('status','=','Active');
	      
	      $commuity1=$commuity1->where(function ($query) use($data) {
		foreach($data['strarr'] as $searchkey)
		{
		  $searchkey=trim($searchkey);
		  if($searchkey!='')
		  {
		    $query->where('description','like',"%$searchkey%");
		  }
		}
	      });
	      $commuity2=$commuity2->where(function ($query) use($data) {
		foreach($data['strarr'] as $searchkey)
		{
		  $searchkey=trim($searchkey);
		  if($searchkey!='')
		  {
		    $query->orWhere('category','like',"%$searchkey%");
		  }
		}
	      });
	      $commuity3=$commuity3->where(function ($query) use($data) {
		foreach($data['strarr'] as $searchkey)
		{
		  $searchkey=trim($searchkey);
		  if($searchkey!='')
		  {
		    $query->orWhere('name','like',"%$searchkey%");
		  }
		}
	      });
	      
	      $commuity1=$commuity1->orderBy(DB::raw('RAND()'))->take(20)->get();
	      $commuity2=$commuity2->orderBy(DB::raw('RAND()'))->take(20)->get();
	      $commuity3=$commuity3->orderBy(DB::raw('RAND()'))->take(20)->get();
	      $community=array();
	      if(!empty($commuity1))foreach($commuity1 as $comm)$community[$comm->id]=$comm;
	      if(!empty($commuity2))foreach($commuity2 as $comm)$community[$comm->id]=$comm;
	      if(!empty($commuity3))foreach($commuity3 as $comm)$community[$comm->id]=$comm;
	      
	      if(!empty($community))
	      {
		foreach($community as $tcomm)
		{
		  $tuserdata=array();
		  $tuserdata['id']=$tcomm->id;
		  $tuserdata['type']='community';
		  $tuserdata['hashtag']="g-".$tcomm->id;
		  $tuserdata['imgurl']="assets/images/community.jpg";
		  $tuserdata['title']=$tcomm->name;
		  $tuserdata['subtitle']=" Community ";
		  $tuserdata['bubbles']=array_unique(array_filter(explode(",",$tcomm->category)));
		  
		
		  $data['listdata'][]=$tuserdata;
		}
	      }
	    }
			return view('layout.module.dashboard.search',$data);
		}

		if($id=="dashlet")
		{
			$module=strtolower(Input::get("module"));
			$client=Input::get("client");

			if($client=="")$client = Auth::user()->sel_campaign;

			$data['client'] = $client;

			if($module!=""&&view()->exists("layout.module.dashboard.$module"))
			{
				return view("layout.module.dashboard.$module", $data);
			}
		}
	}
	public function edit($id)
	{
		//
	}
	public function update($id)
	{
		//
	}
	public function destroy($id)
	{
		//
	}


	public function dashboard()
	{
		$data["id"]="Dashboard";
		
		return view('layout.module.dashboard.dashboard',$data);
	}
}