/** * Process datatables ajax request. * Used by 'admin.sitemap.menuIndex' via 'this.getMenuIndex()' * @return \Illuminate\Http\JsonResponse */ public function allIndexData(Request $request, $sitemap_parent_id = 0) { /* * get sitemap with urlpath etc * */ //dc($request->all()); //$charts = Chart::with('company')->get(); //$users = User::with('roles','locale','company')->get(); $users = User::leftJoin('role_user', 'role_user.user_id', '=', 'users.id')->leftJoin('roles', 'roles.id', '=', 'role_user.role_id')->leftJoin('companies', 'companies.id', '=', 'users.company_id')->leftJoin('usertypes', 'usertypes.id', '=', 'users.usertype_id'); //->leftJoin('sitemaps as sctest', 'sc.sitemap_category_id','=','sctest.id') //->leftJoin('sitemaptranslations as sctest_st','sctest.id','=','sctest_st.sitemap_id') $users->select(['users.id', 'users.name as user_name', 'companies.name as company_name', 'usertypes.name as usertype_name', 'users.updated_at', DB::raw("GROUP_CONCAT(roles.name SEPARATOR ', ') as roles_name")]); //$users->where('users.id',44); $users->groupBy('users.id'); //$users = $users->get(); //dc($users[0]); //$users = User::with('roles'); //dc($users); //return "view"; //pluck('name') //dd($users[0]->roles->implode('label',',')); //dd($users[0]->roles->pluck('label')->all()); //dd($users[0]->roles[0]->label); $datatable = Datatables::of($users); //dd($datatable); $datatable->addColumn('action', function ($users) { //<input class="btn btn-cons btn-awesome btn btn-cons btn-awesome btn btn-danger" value="Delete" type="submit"> $r = "<table><tr><td style='border:none'>"; $r .= '<a href="' . route('admin::user.edit', ['id' => $users->id]) . '" class="btn btn-success btn-labeled fa fa-pencil mar-rgt">Wijzigen</a>'; $r .= '</td><td>'; $r .= "<a class=\"btn btn-danger btn-labeled fa fa-trash-o\" onclick=\"wiDeleteUser(" . $users->id . ")\">Verwijderen</a>"; $r .= '</td></td></table>'; return $r; }); $var = ''; /* $datatable->editColumn('xstatus', function ($test) use ($var) { return "asdf"; $statusValue = $test->status; $labelValue = 'label-'.$test->status.''; //label-concept //label-pending_review if ($test->status == 'pending_review'){ $statusValue = 'pending'; } if ($test->status == 'public'){ //$statusValue = 'pun'; $labelValue = 'label-success'; } if ($test->status == 'blueprint'){ //$statusValue = 'pun'; $labelValue = 'label-info'; } return "<span class=\"labelx badge label-table ".$labelValue."\">".$statusValue."</span>"; }); $datatable->editColumn('xroles.name', function ($user) use ($var) { //dc($user); return ""; return $user->roles->implode('label',', '); }); */ $datatable->editColumn('users.updated_at', function ($user) use($var) { //dd($user->updated_at); //return 'test'; //$retval = $user->user_updated_at ? with(new Carbon($user->user_updated_at))->diffForHumans() : ''; //dd($retval); //dd($user); $retval = $user->updated_at ? with(new Carbon($user->updated_at))->diffForHumans() : ''; $retval .= "<div class=\"extraDataxUIT\" style='display:none;'>"; $retval .= "<br><date><i class=\"fa fa-clock-o\" aria-hidden=\"true\"></i> "; $retval .= $user->updated_at->formatLocalized('%a %d %B'); $retval .= $user->updated_at->format(', h:i'); $retval .= "</date>"; $retval .= "</div>"; //dc($user->updated_at); //dc($user->updated_at); return $retval; return $user->roles->implode('label', ','); }); $datatable->editColumn('status', function ($test) use($sitemap_parent_id) { $statusValue = $test->status; if ($test->status == 'pending_review') { $statusValue = 'pending'; } return "<span class=\"labelx badge label-table label-" . $test->status . "\">" . $statusValue . "</span>"; }); //$datatable->filter(function ($query) use ($request) { /* if ($request->has('name')) { $query->where('name', 'like', "%{$request->get('name')}%"); } if ($request->has('email')) { $query->where('email', 'like', "%{$request->get('email')}%"); }*/ //}); // Global search function //if ($keyword = $request->get('search')['value']) { //dc($keyword); // override users.name global search //$datatable->filterColumn('name', 'where', 'like', "$keyword%"); //$datatable->filterColumn('users_name', 'where', 'like', "%TEST%"); // override users.id global search - demo for concat //$datatable->filterColumn('users.id', 'whereRaw', "CONCAT(users.id,'-',users.id) like ? ", ["%$keyword%"]); //} return $datatable->make(true); dd('asdf'); //dc($datatable); $test = $datatable->make(true); //return "view"; return $test; /*sitemap_category*/ $sitemaps = Sitemap::leftJoin('sitemap_category as sc', 'sc.sitemap_id', '=', 'sitemaps.id')->leftJoin('sitemaps as sctest', 'sc.sitemap_category_id', '=', 'sctest.id')->leftJoin('sitemaptranslations as sctest_st', 'sctest.id', '=', 'sctest_st.sitemap_id')->join('sitemaptranslations as st', 'st.sitemap_id', '= ', 'sitemaps.id')->join('templates as t', 't.id', '=', 'sitemaps.template_id')->join('users as u', 'u.id', '=', 'sitemaps.updated_by_user_id')->leftJoin('sitemaps as down1', 'down1.id', '=', 'sitemaps.parent_id')->leftJoin('sitemaptranslations as st1', 'st1.sitemap_id', '=', 'down1.id')->leftJoin('sitemaps as down2', 'down2.id', '=', 'down1.parent_id')->leftJoin('sitemaptranslations as st2', 'st2.sitemap_id', '=', 'down2.id')->leftJoin('sitemaps as down3', 'down3.id', '=', 'down2.parent_id')->leftJoin('sitemaptranslations as st3', 'st3.sitemap_id', '=', 'down3.id'); /**Locale*/ $sitemaps->where('st.locale_id', 1)->whereRaw('(st1.locale_id = 1 OR st1.locale_id IS NULL)')->whereRaw('(st2.locale_id = 1 OR st2.locale_id IS NULL)')->whereRaw('(st3.locale_id = 1 OR st3.locale_id IS NULL)')->whereRaw('(sctest_st.locale_id = 1 OR sctest_st.locale_id IS null)'); #AND t.type != 'post' $sitemaps->groupBy('sitemaps.id'); if ($sitemap_parent_id != 0) { $sitemaps->where('sitemaps.parent_id', $sitemap_parent_id); } /*order by*/ //$sitemaps->orderBy('path'); //uit if ($path = $request->get('path')) { //app('debugbar')->warning($locaties); //$sitemaps->orderBy('ABS(path)'); // additional users.name search } $sitemaps->select(['sitemaps.id', DB::raw('CONCAT(\'{"id":\',sitemaps.id,\',\',\'"order_by_number":\',sitemaps.order_by_number,\'}\') as reorderData_id_AND_order_by_number'), 'sitemaps.created_at', 'sitemaps.updated_at', 'sitemaps.status', 'sitemaps.order_by_number', 't.name as templateName', 'u.name as usersname', 'sitemaps.depth', DB::raw('GROUP_CONCAT(DISTINCT(`st`.`name`)) as `testname` , GROUP_CONCAT(`sctest_st`.`name`) as `tName` , GROUP_CONCAT(`sctest_st`.`slug`) as `tSlug`'), DB::raw('CONCAT(\'0\', IF (down3.order_by_number IS NULL,\'\',CONCAT(\'.\',down3.order_by_number)), IF (down2.order_by_number IS NULL,\'\',CONCAT(\'.\',down2.order_by_number)), IF (down1.order_by_number IS NULL,\'\',CONCAT(\'.\',down1.order_by_number)), IF (sitemaps.order_by_number IS NULL,\'\',CONCAT(\'.\',sitemaps.order_by_number)) ) as path'), DB::raw("CONCAT('0',\n IF (down3.order_by_number IS NOT NULL AND down3.order_by_number < 10 ,CONCAT('.',down3.order_by_number),''),\n IF (down3.order_by_number IS NOT NULL AND down3.order_by_number > 9 ,CONCAT('.9.',down3.order_by_number),''),\n\n IF (down2.order_by_number IS NOT NULL AND down2.order_by_number < 10 ,CONCAT('.',down2.order_by_number),''),\n IF (down2.order_by_number IS NOT NULL AND down2.order_by_number > 9 ,CONCAT('.9.',down2.order_by_number),''),\n\n IF (down1.order_by_number IS NOT NULL AND down1.order_by_number < 10 ,CONCAT('.',down1.order_by_number),''),\n IF (down1.order_by_number IS NOT NULL AND down1.order_by_number > 9 ,CONCAT('.9.',down1.order_by_number),''),\n\n IF (sitemaps.order_by_number IS NOT NULL AND sitemaps.order_by_number < 10 ,CONCAT('.',sitemaps.order_by_number),''),\n IF (sitemaps.order_by_number IS NOT NULL AND sitemaps.order_by_number > 9 ,CONCAT('.9.',sitemaps.order_by_number),'')\n ) as path1\n "), DB::raw('CONCAT( IF (st3.slug IS NULL OR st3.slug = \'\' ,\'\',CONCAT(\'/\',st3.slug,\'\')), IF (st2.slug IS NULL OR st2.slug = \'\',\'\',CONCAT(\'/\',st2.slug,\'\')), IF (st1.slug IS NULL OR st1.slug = \'\',\'\',CONCAT(\'/\',st1.slug,\'\')), IF (t.name = \'Nieuwsbericht\', IF (sitemaps.depth = 2 AND sctest_st.slug IS NOT NULL,CONCAT(\'/\',sctest_st.slug),\'\') , \'\'), IF (st.slug IS NULL OR st.slug = \'\',\'/\',CONCAT(\'/\',st.slug,\'\')) ) as urlPath')]); //dc($sitemaps->get()); //return "view"; //dc($sitemaps->get()); //dc($sitemaps->pluck('testname')->all()); //return "view"; $datatable = Datatables::of($sitemaps); return $datatable->make(true); $datatable->setRowId('sortable_' . '{{$id}}'); //$datatable->orderColumn('path'); // $datatable->orderColumn('path', 'email $1'); //kanweg $datatable->addColumn('action', function ($sitemap) { $r = "<a class=\"btn btn-success btn-labeled-x\" href=\"" . route('admin::sitemap.edit', ['id' => $sitemap->id]) . "\" >\n <i class=\"fa fa-pencil fa-1x\"></i> editxxx</a> <br>"; $r .= "<a class=\"btn btn-primary btn-labeled-x setTable\" onclick=\"wiLoad(" . $sitemap->id . ")\">\n <i class=\"fa fa-level-down fa-1x\"></i> sub pagins's</a> <br>"; $r .= "<a class=\"btn btn-warning btn-labeled-x setTable\" onclick=\"wiDuplicate(" . $sitemap->id . ")\">\n <i class=\"fa fa-copy fa-1x\"></i> copy</a> <br>"; $r .= "<a class=\"btn btn-danger btn-labeled-x setTable\" onclick=\"wiDelete(" . $sitemap->id . ")\">\n <i class=\"fa fa-trash fa-1x\"></i> delete</a> <br>"; $r .= "<a class=\"btn btn-default btn-md btn-labeled-x\" href=\"" . $sitemap->urlPath . "\" target=\"_blank\">\n <i class=\"fa fa-search fa-1x\"></i> preview</a>"; return $r; }); /*$datatable->editColumn('path', function ($test) { return $test->path; }); */ $datatable->editColumn('testname', function ($test) { $r = "<div class=\"extraData\" style='display:none;'>"; //$r .= "<span class='pulxl-right'>".$test->urlPath."</span><br>"; $r .= "<a class=\"btn btn-success btn-labeled-x\" href=\"" . route('admin::sitemap.edit', ['id' => $test->id]) . "\" >\n <i class=\"fa fa-pencil fa-1x\"></i> edit</a> "; $r .= "<a class=\"btn btn-primary btn-labeled-x setTable\" onclick=\"wiLoad(" . $test->id . ")\">\n <i class=\"fa fa-level-down fa-1x\"></i> sub pagins's</a> "; $r .= "<a class=\"btn btn-warning btn-labeled-x setTable\" onclick=\"wiDuplicate(" . $test->id . ")\">\n <i class=\"fa fa-copy fa-1x\"></i> copy</a> "; $r .= "<a class=\"btn btn-danger btn-labeled-x setTable\" onclick=\"wiDeleteSitemap(" . $test->id . ")\">\n <i class=\"fa fa-trash fa-1x\"></i> deleteX</a> "; $r .= "<a class=\"btn btn-default btn-md btn-labeled-x\" href=\"" . $test->urlPath . "\" target=\"_blank\">\n <i class=\"fa fa-search fa-1x\"></i> preview</a> "; //$r .= "<a class=\"btn btn-default btn-md btn-labeled-x\" href=\"".$test->urlPath."\" target=\"_blank\" // data-placement=\"right\" data-toggle=\"tooltip\" data-original-title=\"".$test->urlPath."\"> // <i class=\"fa fa-info fa-1x\"></i> info</a> "; $r .= "</div>"; /* $urlString = str_replace('/',' » ',$test->urlPath); $urlString = htmlentities($urlString, ENT_QUOTES); $pos = strrpos($urlString, "»"); if ($pos === false) { // note: three equal signs // not found... $pos1 = 'asdf'; } else{ $pos1 = ($pos+1); //$pos++; $urlString = substr_replace($urlString, '<strong>', ($pos1), 0); } //unset($pos); */ $urlStringStart = str_replace('/', ' » ', str_limit($test->urlPath, strrpos($test->urlPath, "/"), ' » ')); return "" . $urlStringStart . "<strong>" . $test->testname . "</strong><br><br>" . $r . " "; }); $datatable->editColumn('status', function ($test) use($sitemap_parent_id) { $statusValue = $test->status; if ($test->status == 'pending_review') { $statusValue = 'pending'; } return "<span class=\"labelx badge label-table label-" . $test->status . "\">" . $statusValue . "</span>"; }); $datatable->editColumn('created_at', function ($test) { //$retval .= $test->created_at ? with(new Carbon($test->created_at))->format('l jS \\of F Y h:i:s A') : ''; //Carbon::setLocale('fr'); //$retval .= $test->created_at->formatLocalized('%l %jS \\of %F %Y h:i:s %A')."<br>"; $retval = $test->created_at ? with(new Carbon($test->created_at))->diffForHumans() : ''; $retval .= "<div class=\"extraData\" style='display:none;'>"; $retval .= "<br><date><i class=\"fa fa-clock-o\" aria-hidden=\"true\"></i> "; $retval .= $test->created_at->formatLocalized('%a %d %B'); $retval .= $test->created_at->format(', h:i'); $retval .= "</date>"; $retval .= "</div>"; return $retval; }); $datatable->editColumn('updated_at', function ($test) { $retval = $test->updated_at ? with(new Carbon($test->updated_at))->diffForHumans() : ''; $retval .= "<div class=\"extraData\" style='display:none;'>"; $retval .= "<br><date><i class=\"fa fa-clock-o\" aria-hidden=\"true\"></i> "; $retval .= $test->updated_at->formatLocalized('%a %d %B'); $retval .= $test->updated_at->format(', h:i'); $retval .= "</date>"; $retval .= "</div>"; return $retval; }); if ($status = $request->get('status')) { app('debugbar')->warning($status); //console.info('zoeke status'); //$datatable->where('sitemaps.status', 'like', "%{$status}%"); // additional users.name search } if ($status = $request->get('pathxx')) { //app('debugbar')->warning($locaties); //$datatable->orderBy('ABS(path)'); // additional users.name search } $datatable->orderColumn('path', 'path1 $1'); //$datatable->orderColumn(); return $datatable->make(true); }