public function duplicate($sitemap_id)
 {
     $action = DB::transaction(function () use($sitemap_id) {
         try {
             /*start duplicate*/
             $orginalSitemap = Sitemap::findOrFail($sitemap_id);
             $template = Template::findOrFail($orginalSitemap->template_id);
             //dc($template->slug);
             //return "view";
             $clone = $orginalSitemap->replicate();
             $clone->push();
             //push
             $orginalSitemap->load('translations');
             $orginalSitemap->load('translations.defaultpage');
             // ?? kan weg, verkeerde translation template (tmp_page_location bijv)
             $orginalSitemap->load('references');
             //$clone->setRelation('translations',$orginalSitemap->translations);
             foreach ($orginalSitemap->translations as $translation) {
                 //dc(str_slug($translation->name));
                 $newName = $translation->name . ' copy ' . $clone->id;
                 $newSlug = str_slug($newName);
                 $translation->setAttribute('sitemap_id', $clone->id);
                 $translation->setAttribute('name', $newName);
                 $translation->setAttribute('slug', $newSlug);
                 $created_translation = $clone->translations()->create($translation->getAttributes());
                 $translation->{$template->slug}->setAttribute('id', $created_translation->id);
                 $created_translation->{$template->slug}()->create($translation->{$template->slug}->getAttributes());
             }
             //dc($orginalSitemap->references->first()->pivot);
             foreach ($orginalSitemap->references as $reference) {
                 $testArray[] = ['sitemap_id' => $clone->id, 'reference_id' => $reference->pivot->reference_id, 'component_id' => $reference->pivot->component_id, 'order_by_number' => $reference->pivot->order_by_number];
                 //dc($testArray);
                 //dc($reference->getAttributes());
                 $clone->references()->sync([]);
                 //pivot 3 key
                 $clone->references()->attach($testArray);
             }
             /*end duplicate*/
             if (request()->ajax()) {
                 $data = ['status' => 'succes', 'statusText' => 'Ok', 'responseText' => 'Dupliceren is gelukt'];
                 return response()->json($data, 200);
             }
             Flash::success('Your Sitemap translation has been duplicated!');
         } catch (\Exception $e) {
             if (request()->ajax()) {
                 $data = ['status' => 'succes', 'statusText' => 'Fail', 'responseText' => '' . $e->getMessage() . ''];
                 return response()->json($data, 400);
             }
             //dc($e);
             Flash::error('Dupliceren is mislukt!<br>' . $e->getMessage() . '');
         }
     });
     if (request()->ajax()) {
         return $action;
     }
     //return "view";
     return redirect()->back();
 }