/** * Process datatables ajax request. * Used by 'admin.sitemap.menuIndex' via 'this.getMenuIndex()' * @return \Illuminate\Http\JsonResponse */ public function indexAllData(Request $request, $sitemap_parent_id = 0) { /* * get sitemap with urlpath etc * */ /*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); $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); }