diff --git a/.env b/.env index 9928224..07403ca 100755 --- a/.env +++ b/.env @@ -45,18 +45,32 @@ MAIL_FEWO_EMPLOYEE=kevin@adametz.media #MAIL_BBC=kontakt@stern-tours.de,thomas.stern@stern-tours.de MAIL_DRIVER=smtp -MAIL_FROM_NAME="Reisebüro STERN TOURS" +MAIL_FROM_NAME="DEV Reisebüro STERN TOURS" +#MAIL_FROM_ADDRESS=dev@adametz.media +#MAIL_HOST=w017e534.kasserver.com +#MAIL_PORT=587 +#MAIL_USERNAME=m0496c96 +#MAIL_PASSWORD=mZtVp7WQcs6DC3hf +#MAIL_ENCRYPTION=null + + +MAIL_FROM_ADDRESS=stern@sterntours.de +MAIL_HOST=zimbra.managedemail.de +MAIL_PORT=587 +MAIL_USERNAME=stern@stern-tours.de +MAIL_PASSWORD=13C!NlecB!Phil4beAxKl +MAIL_ENCRYPTION=TLS + + #MAIL_FROM_ADDRESS=stern@sterntours.de #MAIL_HOST=zimbra.managedemail.de #MAIL_USERNAME=stern@stern-tours.de #MAIL_PASSWORD=13C!NlecB!Phil4beAxKl -MAIL_PORT=587 -MAIL_ENCRYPTION=TLS -MAIL_FROM_ADDRESS=info@mein.sterntours.de -MAIL_HOST=mail.your-server.de -MAIL_USERNAME=info@mein.sterntours.de -MAIL_PASSWORD=B7f8Ojt98v6tMz8W +#MAIL_FROM_ADDRESS=info@mein.sterntours.de +#MAIL_HOST=mail.your-server.de +#MAIL_USERNAME=info@mein.sterntours.de +#MAIL_PASSWORD=B7f8Ojt98v6tMz8W #MAIL_FROM_ADDRESS=stern@stern-tours.de #MAIL_HOST=zimbra.managedemail.de diff --git a/app/Http/Controllers/API/BookingController.php b/app/Http/Controllers/API/BookingController.php index a6e111b..e47cd07 100755 --- a/app/Http/Controllers/API/BookingController.php +++ b/app/Http/Controllers/API/BookingController.php @@ -3,15 +3,8 @@ namespace App\Http\Controllers\API; use App\Http\Controllers\Controller; -use App\Models\Arrangement; -use App\Models\Booking; -use App\Models\BookingServiceItem; -use App\Models\Customer; -use App\Models\Lead; -use App\Models\Participant; use App\Models\TravelBooking; -use App\Repositories\DraftRepository; - +use App\Services\BookingImport; class BookingController extends Controller { @@ -20,9 +13,9 @@ class BookingController extends Controller protected $draftRepo; - public function __construct(DraftRepository $draftRepo) + public function __construct() { - $this->draftRepo = $draftRepo; + } public function import() @@ -40,158 +33,12 @@ class BookingController extends Controller return response()->json(['error' => 'no-booking-found'], $this->successStatus); } - // ---- createCustomer - $data = [ - 'salutation_id' => $travel_booking->salutation_id, - 'name' => $travel_booking->last_name, - 'firstname' => $travel_booking->first_name, - 'street' => $travel_booking->street, - 'zip' => $travel_booking->zipcode, - 'city' => $travel_booking->city, - 'country_id' => $travel_booking->country_id, - 'phone' => $travel_booking->phone, - 'phonemobile' => $travel_booking->mobile, - 'email' => $travel_booking->email - ]; - $customer = Customer::create($data); + $booking = BookingImport::importFrom($travel_booking); - // ---- createLead - $data = [ - 'customer_id' => $customer->id, - 'request_date' => $travel_booking->created, - 'travelperiod_start' => $travel_booking->selected_start_date, - 'travelperiod_end' => $travel_booking->selected_end_date, - 'remarks' => $travel_booking->comments, - 'sf_guard_user_id' => 15, - 'is_closed' => true, - 'initialcontacttype_id' => 14, - 'status_id' => 7, - 'website_id' => 1, - ]; - $lead = Lead::create($data); - $lead->updateNextDueDate(); - - $comfort = false; - if(isset($travel_booking->drafts['comfort']) && $travel_booking->drafts['comfort']){ - $comfort = true; - } - $data = [ - 'booking_date' => $travel_booking->created->format('Y-m-d'), - 'customer_id' => $customer->id, - 'lead_id' => $lead->id, - 'new_drafts' => $travel_booking->drafts === null ? 0 : 1, - 'sf_guard_user_id' => 15, - 'branch_id' => 4, - 'pax' => $travel_booking->selected_adults, - 'title' => isset($travel_booking->selected_travel['travel_title']) ? $travel_booking->selected_travel['travel_title'] : "", - 'comfort' => $comfort, - 'start_date' => $travel_booking->selected_start_date->format('Y-m-d'), - 'end_date' => $travel_booking->selected_end_date->format('Y-m-d'), - 'website_id' => 1, - 'travel_number' => isset($travel_booking->selected_travel['travel_number']) ? $travel_booking->selected_travel['travel_number'] : null, - /*'participant_name' => isset($travel_booking->participants[0]['last_name']) ? $travel_booking->participants[0]['last_name'] : null, - 'participant_firstname' => isset($travel_booking->participants[0]['first_name']) ? $travel_booking->participants[0]['first_name'] : null, - 'participant_birthdate' => isset($travel_booking->participants[0]['birthday']) ? date( "Y-m-d", strtotime($travel_booking->participants[0]['birthday'])) : null, - 'participant_salutation_id' => isset($travel_booking->participants[0]['gender']) ? $travel_booking->participants[0]['gender'] : null, - 'nationality_id' => isset($travel_booking->participants[0]['nationality']) ? $travel_booking->participants[0]['nationality'] : null,*/ - 'participant_name' => null, - 'participant_firstname' => null, - 'participant_birthdate' => null, - 'participant_salutation_id' => null, - 'nationality_id' => null, - 'price' => $travel_booking->price, - 'price_total' => $travel_booking->price_total, - 'deposit_total' => $travel_booking->deposit_total, - 'final_payment' => $travel_booking->final_payment, - 'final_payment_date' => $travel_booking->final_payment_date->format('Y-m-d'), - 'travel_country_id' => isset($travel_booking->selected_travel['travel_country_id'][0]) ? $travel_booking->selected_travel['travel_country_id'][0] : null, - 'travel_category_id' => isset($travel_booking->selected_travel['travel_category_id']) ? $travel_booking->selected_travel['travel_category_id'] : null, - 'travelagenda_id' => isset($travel_booking->selected_travel['travelagenda_id']) ? $travel_booking->selected_travel['travelagenda_id'] : null, - 'travel_company_id' => isset($travel_booking->selected_travel['travel_company_id']) ? $travel_booking->selected_travel['travel_company_id'] : 4, - ]; - - //createBooking - $booking = Booking::create($data); - - //createTraveler - if($travel_booking->participants){ - foreach ($travel_booking->participants as $key => $participant){ - Participant::create([ - 'booking_id' => $booking->id, - 'participant_name' => $participant['last_name'], - 'participant_firstname' => $participant['first_name'], - 'participant_birthdate' => date( "Y-m-d", strtotime($participant['birthday'])), - 'participant_salutation_id' => $participant['gender'], - 'participant_child' => $participant['child'], - 'nationality_id' =>$participant['nationality'], - ]); - - } - } - - //createServiceItem //service_items - if($travel_booking->service_items){ - foreach ($travel_booking->service_items as $key => $service_item){ - BookingServiceItem::create([ - 'booking_id' => $booking->id, - 'travel_company_id' => $service_item['travel_company_id'], - 'service_price' => $service_item['service_price'], - 'service_price_refund' => 0, - 'commission' => $service_item['commission'], - 'travel_date' => $service_item['travel_date'], - 'name' => $service_item['name'], - 'is_commission_locked' => 0, - ]); - } - } - - //createServiceItem //insurances - if($travel_booking->insurances){ - foreach ($travel_booking->insurances as $key => $service_item){ - BookingServiceItem::create([ - 'booking_id' => $booking->id, - 'travel_company_id' => $service_item['travel_company_id'], - 'service_price' => $service_item['price'], - 'service_price_refund' => 0, - 'commission' => $service_item['commission'], - 'travel_date' => $service_item['travel_date'], - 'name' => $service_item['name'], - 'is_commission_locked' => 0, - ]); - } - } - - - - //createArrangement - if($travel_booking->arrangements) { - foreach ($travel_booking->arrangements as $key => $arrangement){ - Arrangement::create([ - 'state' => isset($arrangement['state']) ? $arrangement['state'] : null, - 'begin' => isset($arrangement['end']) ? $arrangement['end'] : null, - 'end' => isset($arrangement['end']) ? $arrangement['end'] : null, - 'type_s' => isset($arrangement['type_s']) ? $arrangement['type_s'] : null, - 'data_s' => isset($arrangement['data_s']) ? $arrangement['data_s'] : null, - 'view_position' => isset($arrangement['view_position']) ? $arrangement['view_position'] : null, - 'booking_id' => $booking->id, - 'type_id' => $arrangement['type_id'], - 'in_pdf' => isset($arrangement['in_pdf']) ? $arrangement['in_pdf'] : null, - ]); - } - } - - //createDrafts - - if($travel_booking->drafts) { - $this->draftRepo->create_drafts_from_booking($booking->id, $travel_booking->drafts); - } - - $travel_booking->crm_booking_id = $booking->id; - $travel_booking->save(); $ret= [ 'url_v1' => make_old_url('/index.php/booking/'.$booking->id.'/edit'), 'url_v3' => route('booking_detail', $booking->id), - 'lead_id' => $lead->id + 'lead_id' => $booking->lead_id ]; return response()->json(['success' => "import", "ret" => $ret], $this->successStatus); //return response()->json(['error' => 'no-node'], $this->successStatus); diff --git a/app/Http/Controllers/SyS/ContentLinkController.php b/app/Http/Controllers/SyS/ContentLinkController.php new file mode 100755 index 0000000..393fd61 --- /dev/null +++ b/app/Http/Controllers/SyS/ContentLinkController.php @@ -0,0 +1,102 @@ +middleware(['sysadmin', '2fa']); + } + + public function filterHTML(){ + + } + //content_links + public function calcu() + { + + /*$query = Booking::with('booking_draft_items')->select('booking.*')->where('new_drafts', true); + + $query->whereHas('booking_draft_items', function ($q) { + $q->where('comfort', true); + }); + $bookings = $query->get(); + foreach ($bookings as $booking){ + $booking->comfort = true; + $booking->save(); + } +*/ + + $bookings = Booking::orderBy('id', 'DESC')->offset(0)->limit(1000)->get(); + + + + + // dd("nothing"); + $val = []; + $text = ""; + + $data = [ + 'text' => $text, + 'bookings' => $bookings, + ]; + return view('sys.tools.links', $data); + + } + + /* + clean code + $travelGuides = TravelGuide::all(); + foreach ($travelGuides as $travelGuide){ + if(strpos($travelGuide->full_text, "


") !== false){ + $val[$travelGuide->id] = "


"; + } + } + + foreach ($travelGuides as $travelGuide){ + if(strpos($travelGuide->full_text, "id] = "full_text; + + // $new_text = preg_replace('/]*>([\s\S]*?)<\/h1[^>]*>/', '', $TravelGuide->full_text); + +*/ + + public function calcuStore() + { + return redirect()->back(); + } + + + + + +} diff --git a/app/Http/Controllers/SyS/SysController.php b/app/Http/Controllers/SyS/SysController.php new file mode 100644 index 0000000..f8773b3 --- /dev/null +++ b/app/Http/Controllers/SyS/SysController.php @@ -0,0 +1,65 @@ +middleware(['sysadmin', '2fa']); + } + + public function index() + { + return view('sys.index'); + } + + public function tool($serve) + { + switch ($serve) { + case 'reimport': + return ReImport::show(); + break; + case 'calcu': + dd('check App\Services\SyS\ReCalcu'); + break; + case 'tree': + dd('check App\Services\SyS\Import'); + break; + case 'clean_tree_code': + dd('check App\Services\SyS\Import'); + break; + case 'media_insert': + dd('check App\Services\SyS\Import'); + break; + case 'import': + dd('check App\Services\SyS\Import'); + break; + } + abort(403, 'not found tool'); + } + + + public function store($serve) + { + switch ($serve) { + case 'reimport': + return ReImport::store(); + break; + + } + abort(403, 'not found tool'); + } + + + + + + +} diff --git a/app/Http/Controllers/SyS/Tools/ContentLinkController.php b/app/Http/Controllers/SyS/Tools/ContentLinkController.php deleted file mode 100755 index 1185fa7..0000000 --- a/app/Http/Controllers/SyS/Tools/ContentLinkController.php +++ /dev/null @@ -1,742 +0,0 @@ -middleware(['sysadmin', '2fa']); - } - - public function filterHTML(){ - - } - //content_links - public function index() - { - - /*$query = Booking::with('booking_draft_items')->select('booking.*')->where('new_drafts', true); - - $query->whereHas('booking_draft_items', function ($q) { - $q->where('comfort', true); - }); - $bookings = $query->get(); - foreach ($bookings as $booking){ - $booking->comfort = true; - $booking->save(); - } -*/ - - $bookings = Booking::orderBy('id', 'DESC')->offset(0)->limit(1000)->get(); - - - - - // dd("nothing"); - $val = []; - $text = ""; - - $data = [ - 'text' => $text, - 'bookings' => $bookings, - ]; - return view('sys.tools.links', $data); - - } - - /* - clean code - $travelGuides = TravelGuide::all(); - foreach ($travelGuides as $travelGuide){ - if(strpos($travelGuide->full_text, "


") !== false){ - $val[$travelGuide->id] = "


"; - } - } - - foreach ($travelGuides as $travelGuide){ - if(strpos($travelGuide->full_text, "id] = "full_text; - - // $new_text = preg_replace('/]*>([\s\S]*?)<\/h1[^>]*>/', '', $TravelGuide->full_text); - -*/ - - public function store() - { - return redirect()->back(); - } - - //tree - public function tree() - { - $text = ""; - $val = []; - $trees = IQContentTree::all(); - foreach ($trees as $tree){ - foreach ($tree->iq_content_tree_nodes as $tree_node){ - - $text .= $tree_node->id." -- ".$tree_node->title."\n"; - foreach ($tree_node->iq_content_sites as $site){ - if($site->travel_guide && $site->identifier === null){ - $identifier = $site->travel_guide->scope === 1 ? 'long' : 'short'; - //$site->identifier = $site->travel_guide->scope === 1 ? 'long' : 'short'; - $text .= "-- ".$site->id." -- ".$identifier."\n"; - } - } - } - } - $data = [ - 'text' => $text, - 'values' => $val, - ]; - return view('sys.tools.trees', $data); - } - - public function treeStore() - { - $trees = IQContentTree::all(); - foreach ($trees as $tree){ - foreach ($tree->iq_content_tree_nodes as $tree_node){ - - foreach ($tree_node->iq_content_sites as $site){ - if($site->travel_guide){ - $site->identifier = $site->travel_guide->scope === 1 ? 'long' : 'short'; - $site->save(); - } - } - } - } - return redirect()->back(); - } - - - //clean_tree_code - public function cleanTreeCode(){ - $val = []; - $text = ""; - - $travelGuide = TravelGuide::find(166); - $text = $travelGuide->full_text; - - $data = [ - 'new_text' => \App\Services\Util::cleanHTML($text), - 'full_text' => $travelGuide->full_text, - 'values' => $val, - ]; - return view('sys.tools.clean', $data); - } - - public function cleanTreeCodeStore(){ - $this->cleanTextTravelGuide(); - return redirect()->back(); - } - - public function cleanTextTravelGuide() - { - $TravelGuides = TravelGuide::all(); - foreach ($TravelGuides as $travelGuide){ - $new_text = \App\Services\Util::cleanHTML($travelGuide->full_text); - if(strcmp($travelGuide->full_text, $new_text) != 0){ - $travelGuide->full_text = $new_text; - $travelGuide->save(); - var_dump($travelGuide->id); - echo "
"; - } - } - die("done"); - } - - //media_insert - public function mediaInsert(){ - $val = []; - $text = ""; - $data = [ - 'text' => $text, - 'values' => $val, - ]; - return view('sys.tools.insert', $data); - } - - public function mediaInsertStore(){ - $val = []; - - $data = Request::all(); - $text = $data['text']; - - if($data['action'] === 'insert'){ - $lines = explode(PHP_EOL, $text); - $FolderC = new FolderController(); - $FileC = new FileController(); - - foreach ($lines as $line){ - $sep = explode(';', $line); - if(isset($sep[0]) && isset($sep[1]) && isset($sep[2])){ - //youtube //main dir - $working_dir = "/shares/youtube/".$sep[0]; - $folder_name = $sep[1]; - - $folder = $FolderC->makeFolder($working_dir, $folder_name); - $working_dir = $working_dir."/".$folder_name; - $file = $FileC->makeYoutube($working_dir, $sep[2]); - $val[] = $file.' - '.$sep[2]." | ".$working_dir; - } - } - } - if($data['action'] === 'youtube_ids'){ - $TravelGuides = TravelGuide::all(); - foreach ($TravelGuides as $travelGuide){ - $this->findYoutubeLinks($val, $travelGuide); - - /* */ - } - } - if($data['action'] === 'replace_youtube_links') { - $TravelGuides = TravelGuide::all(); - foreach ($TravelGuides as $travelGuide){ - $this->replaceYoutubeLinks($val, $travelGuide); - - /* */ - } - } - - if($data['action'] === 'replace_youtube_div') { - $this->replaceYoutubeDiv($val, TravelGuide::find(335)); - $TravelGuides = TravelGuide::all(); - foreach ($TravelGuides as $travelGuide){ - $this->replaceYoutubeDiv($val, $travelGuide); - - /* */ - } - } - - - $data = [ - 'text' => $text, - 'values' => $val, - ]; - return view('sys.tools.insert', $data); - - } - -//import - public function import() - { - $text = ""; - $val = []; - - $data = [ - 'text' => $text, - 'values' => $val, - ]; - return view('sys.tools.import', $data); - } - - public function importStore() - { - - $data = Request::all(); - - $lines = explode(PHP_EOL, $data['text']); - - if($data['action'] === 'import_TN'){ - foreach ($lines as $line){ - $ex = explode(';', $line); - $t_n = TravelNationality::whereName(trim($ex[1]))->first(); - if($t_n){ - $t_n->nat = $ex[0]; - $t_n->save(); - }else{ - TravelNationality::create([ - 'name' => trim($ex[1]), - 'nat' => $ex[0], - 'active' => false, - ] - ); - } - } - } - - if($data['action'] === 'import_CT') { - foreach ($lines as $line){ - $ex = explode(';', $line); - $t_c = TravelCountry::whereName(trim($ex[1]))->first(); - if($t_c){ - dump($t_c->name); - $t_c->destco = $ex[0]; - $t_c->save(); - - $tc = \App\Models\Sym\TravelCountry::find($t_c->crm_id); - $tc->destco = $ex[0]; - $tc->save(); - } - } - dd(""); - } - - return redirect()->back(); - } - - - private function replaceYoutubeDiv(&$val, $travelGuide) - { - $ret = []; - $dom = new \DOMDocument('1.0', 'utf-8'); - @$dom->loadHTML(mb_convert_encoding($travelGuide->full_text, 'HTML-ENTITIES', 'UTF-8')); - $links = $dom->getElementsByTagName('iframe'); - foreach ($links as $link) { - if($link->parentNode->parentNode->nodeName === 'div'){ - if($link->parentNode->parentNode->getAttribute('itemprop') === 'video'){ - if($link->parentNode->parentNode->getAttribute('class') === 'mediaA'){ - if($link->parentNode->parentNode->parentNode->getAttribute('itemprop') === 'video'){ - - $need = $link->parentNode->parentNode; - $replace = $link->parentNode->parentNode->parentNode; - $replace->parentNode->insertBefore($dom->importNode($need, true), $replace->nextSibling); - $replace->parentNode->removeChild($replace); - $html = $dom->saveHTML(); - - $travelGuide->full_text = $html; - $travelGuide->save(); - $val[] = 'replace - '.$travelGuide->id; - - }else{ - // dump("notfound itemprop over class mediaA".$travelGuide->id); - $val[] = 'notfound - itemprop over class mediaA - '.$travelGuide->id; - - //in - - foreach ($link->parentNode->parentNode->childNodes as $node){ - if($node->nodeName === 'h2'){ - - if($node->firstChild->nodeName === '#text'){ - - $span = $dom->createElement('span', htmlspecialchars($node->nodeValue)); - - $span->setAttribute('itemprop', 'name'); - $h2 = $dom->createElement('h2'); - $h2->appendChild($span); - - $node->parentNode->replaceChild($h2, $node); - $html = $dom->saveHTML(); - - $travelGuide->full_text = $html; - $travelGuide->save(); - $val[] = 'replace h2 - '.$travelGuide->id; - - - } - - - - - - - } - } - // - - } - //dump("found M div ".$travelGuide->id); - }else{ - // dump("notfound class mediaA".$travelGuide->id); - $val[] = 'notfound - class mediaA - '.$travelGuide->id; - } - }else{ - // dump("notfound div ".$travelGuide->id); - $val[] = 'notfound - video - '.$travelGuide->id; - - - } - // dump($travelGuide->id); - }else{ - //dump("notfound".$travelGuide->id); - $val[] = 'notfound - div - '.$travelGuide->id; - } - } - - - return $ret; - } - - private function replaceYoutubeLinks(&$val, $travelGuide) - { - $ret = []; - $dom = new \DOMDocument('1.0', 'utf-8'); - @$dom->loadHTML(mb_convert_encoding($travelGuide->full_text, 'HTML-ENTITIES', 'UTF-8')); - $links = $dom->getElementsByTagName('iframe'); - foreach ($links as $link) { - - $src = $link->getAttribute('src'); - - - // - $replace = false; - $reLink = false; - if($link->parentNode->nodeName === 'div'){ - if($link->parentNode->getAttribute('class') === 'video-container'){ - if($link->parentNode->parentNode->getAttribute('class') === 'mediaA' && $link->parentNode->parentNode->getAttribute('itemprop') !== 'video'){ - $replace = $link->parentNode->parentNode; - $reLink = $link->parentNode; - }else{ - $val[] = 'found - manual - '.$travelGuide->id; - } - }else{ - $val[] = 'first div - manual - '.$travelGuide->id; - - } - - }elseif ($link->parentNode->nodeName === 'p'){ - if($link->parentNode->parentNode->nodeName === 'div'){ - if($link->parentNode->parentNode->getAttribute('itemprop') === 'video'){ - //replace div - $replace = $link->parentNode->parentNode; - $reLink = $link->parentNode; - }else{ - //replace p - $replace = $link->parentNode; - $reLink = $link; - } - }else{ - $replace = $link->parentNode; - $reLink = $link; - } - - }else{ - $val[] = 'else div - manual - '.$travelGuide->id; - } - if($replace){ - - $id = preg_replace('/http.*?embed\//i', '', $src); - $videoID = preg_replace('#[&\?].+$#', '', $id); - $identifier = Str::slug(pre_slug($videoID), '-'); - $IQContentFile = IQContentFile::whereIdentifier($identifier)->first(); - if($IQContentFile) { - - $video = new \DOMDocument('1.0', 'utf-8'); - $makeText = '
'; - $makeText .= '

' . $IQContentFile->content['title'] . '

'; - $makeText .= ''; - $makeText .= ''; - $makeText .= ''; - $makeText .= ''; - $makeText .= '
'; - $makeText .= '

'.$IQContentFile->content['description'].'

'; - $makeText = str_replace('&', '&', $makeText); - $video->loadHTML($makeText); - $replace->insertBefore($dom->importNode($video->documentElement, true), $reLink->nextSibling); - $replace->removeChild($reLink); - $html = $dom->saveHTML(); - - $travelGuide->full_text = $html; - $travelGuide->save(); - - $val[] = 'replace - '.$travelGuide->id; - } - - - } - } - - - return $ret; - } - - private function findYoutubeLinks(&$val, $travelGuide) - { - $ret = []; - $dom = new \DOMDocument('1.0', 'utf-8'); - @$dom->loadHTML(mb_convert_encoding($travelGuide->full_text, 'HTML-ENTITIES', 'UTF-8')); - - $links = $dom->getElementsByTagName('iframe'); - foreach ($links as $link) { - - $src = $link->getAttribute('src'); - - $id = preg_replace('/http.*?embed\//i', '', $src); - $videoID = preg_replace('#[&\?].+$#', '', $id); - - $identifier = Str::slug(pre_slug($videoID), '-'); - $count = IQContentFile::whereIdentifier($identifier)->count(); - - if($count === 0){ - $ret[$videoID] = $count; - $val[] = "weitere;Travel-Guide;".$videoID.";"; - } - } - return $ret; - } - //private? - public function h1ToTitleTravelGuide() - { - $TravelGuides = TravelGuide::all(); - foreach ($TravelGuides as $travelGuide){ - if(strpos($travelGuide->full_text,'

' )){ - $dom = new \DOMDocument('1.0', 'utf-8'); - @$dom->loadHTML(mb_convert_encoding($travelGuide->full_text, 'HTML-ENTITIES', 'UTF-8')); - $elements = $dom->getElementsByTagName('h1'); - - foreach ($elements as $element) { - if($element->nodeValue != ""){ - var_dump($travelGuide->id); - var_dump($element->nodeValue); - echo "
"; - var_dump($travelGuide->name); - echo "
"; - echo "--"; - echo "
"; - - $new_text = preg_replace('/]*>([\s\S]*?)<\/h1[^>]*>/', '', $travelGuide->full_text); - - $travelGuide->name = $element->nodeValue; - $travelGuide->full_text = $new_text; - $travelGuide->save(); - } - } - } - } - die("done"); - } - - public function readNodeAndSaveToTree(){ - $input = Request::all(); - $ret = []; - if(isset($input['text'])){ - $out = $this->ul_to_array($input['text']); - $this->array_to_nodes($out); - } - die("done"); - $data = [ - 'text' => $input['text'], - 'values' => $ret, - ]; - return view('iq.tools.links', $data); - } - - public function array_to_nodes($array, $lvl = 1, $parent_id = 1, $pos=100){ - - - if(is_array($array)){ - foreach ($array as $node){ - if(isset($node['slug'])){ - - $slug = substr($node['slug'], 0, 80); - // $slug = substr($node['slug'], 0, strrpos($slug, " ")); - - $name = substr($node['name'], 0, 255); - // $name = substr($node['name'], 0, strrpos($name, " ")); - - - $data = [ - 'tree_id' => 1, - 'parent_id' => $parent_id, - 'lvl' => $lvl, - 'name' => $name, - 'identifier' => $slug, - 'active' => false, - 'pos' => $pos++, - ]; - $tree_node = IQContentTreeNode::create($data); - - - $travel_guides = TravelGuide::whereSlug($node['slug'])->get(); - foreach ($travel_guides as $travel_guide){ - if(IQContentSite::whereTreeNodeId($tree_node->id)->whereTravelGuideId($travel_guide->id)->count() == 0) { - IQContentSite::create(['tree_node_id' => $tree_node->id, 'travel_guide_id' => $travel_guide->id]); - } - } - - - } - if(isset($node['children']) && is_array($node['children'])){ - $this->array_to_nodes($node['children'], $lvl + 1, $tree_node->id, $pos); - } - } - } - - } - - public function ul_to_array($ol){ - if(is_string($ol)){ - if(!$ol = simplexml_load_string($ol)) { - trigger_error("Syntax error in UL/LI structure"); - return FALSE; - } - return $this->ul_to_array($ol); - } else if(is_object($ol)){ - $output = array(); - foreach($ol->li as $li){ - - $tmp = false; - if(isset($li->ol)){ - $tmp = $this->ul_to_array($li->ol); - } - - if($li->count()){ - - $str = (string) $li; - - $a = new \SimpleXMLElement($li->children()->asXML()); - $str = (string) $a[0]." ".$str; - $str = str_replace("\n", "", $str); - $str = str_replace("\r", "", $str); - $str = str_replace("\t", "", $str); - $str = preg_replace(array('/\s{2,}/', '/[\t\n]/'), ' ', $str); - - if(trim($str) !== "" && $str !== null){ - $slug = (string) $a['href']; - $link = explode("/", $slug); - - $link1 = array_pop($link); - $link1 = str_replace('.htm', '',$link1); - $output[] = ['slug'=> $link1, 'name'=>$str, 'children'=>$tmp]; - } - }else{ - $str = (string) $li; - $str = str_replace("\n", "", $str); - $str = str_replace("\r", "", $str); - $str = str_replace("\t", "", $str); - if(trim($str) !== "" && $str !== null){ - - $output[] = ['slug'=>'', 'name'=>$str, 'children'=>$tmp]; - } - } - - } - return $output; - } else { - return FALSE; - } - } - - public function rindex() - { - $data = [ - 'text' => "", - 'values' => [], - ]; - return view('iq.content.tools.redirects', $data); - } - - public function rstore() - { - - $iqContentTree = IQContentTree::find(2); - $this->makeTree($iqContentTree); - $input = Request::all(); - $ret = []; - - if(isset($input['text'])){ - - - $dom = new \DOMDocument('1.0', 'utf-8'); - @$dom->loadHTML(mb_convert_encoding($input['text'], 'HTML-ENTITIES', 'UTF-8')); - - $tags = ['ol']; - foreach ($tags as $tag){ - $domElements = []; - $elements = $dom->getElementsByTagName($tag)->item(0); - - foreach($elements as $node){ - foreach($node->childNodes as $child) { - $ret[] = array($child->nodeName => $child->nodeValue); - } - } - } - - /* $tags = ['a']; foreach ($tags as $tag){ - $domElements = []; - $elements = $dom->getElementsByTagName($tag); - foreach ($elements as $element) { - $domElements[] = $element; - - } - foreach ($domElements as $domElement) { - $r = "-----"; - $href = $domElement->getAttribute('href'); - $link = explode("/", $href); - - $link1 = array_pop($link); - $link1 = str_replace('.html', '',$link1); - $link1 = str_replace('-', '',$link1); - if(isset($this->tree[$link1])){ - $r = $this->tree[$link1]; - }else{ - $link1 = array_pop($link); - $link1 = str_replace('.html', '',$link1); - $link1 = str_replace('-', '',$link1); - if(isset($this->tree[$link1])){ - $r = $this->tree[$link1]; - } - } - - $ret[] = "Redirect 301 /".$href." ".$r; - - } - }*/ - - } - $data = [ - 'text' => $input['text'], - 'values' => $ret, - ]; - - return view('iq.content.tools.redirects', $data); - - } - - public function makeTree(IQContentTree $iq_content_tree, $lvl = 0, $parent_id = false, $url = "") - { - - if ($parent_id) { - //where('active', true) - $tree_nodes = IQContentTreeNode::where('tree_id', $iq_content_tree->id)->where('lvl', $lvl)->where('active', true)->where('parent_id', $parent_id)->orderBy('pos', 'ASC')->get(); - } else { - - $url = "/" . $iq_content_tree->identifier . "/"; - $tree_nodes = IQContentTreeNode::where('tree_id', $iq_content_tree->id)->where('lvl', $lvl)->where('active', true)->orderBy('pos', 'ASC')->get(); - } - - foreach ($tree_nodes as $node) { - $children = IQContentTreeNode::where('tree_id', $iq_content_tree->id)->where('lvl', $lvl + 1)->where('active', true)->where('parent_id', $node->id)->count(); - $this->tree[str_replace('-', '', $node->identifier)] = url($url . $node->identifier); - - if ($children) { - $this->makeTree($iq_content_tree, $lvl + 1, $node->id, $url . $node->identifier . "/"); - - } - } - return true; - } - - - -} diff --git a/app/Models/TravelBooking.php b/app/Models/TravelBooking.php index 3f04f46..d98d3b6 100644 --- a/app/Models/TravelBooking.php +++ b/app/Models/TravelBooking.php @@ -9,103 +9,6 @@ namespace App\Models; use Carbon\Carbon; use Illuminate\Database\Eloquent\Model; -/** - * Class TravelBooking - * - * @property int $id - * @property int $salutation_id - * @property string $first_name - * @property string $last_name - * @property string $street - * @property string $zipcode - * @property string $city - * @property int $country_id - * @property string $fax - * @property string $phone - * @property string $mobile - * @property string $comments - * @property string $email - * @property Carbon $created - * @property Carbon $selected_start_date - * @property Carbon $selected_end_date - * @property string $program_name - * @property string $selected_travel - * @property string $selected_departure - * @property int $program_id - * @property int $period_id - * @property string $class - * @property int $selected_adults - * @property int $selected_childs - * @property int $participants_total - * @property string $participants - * @property string $drafts - * @property string $service_items - * @property string $arrangements - * @property string $rooms - * @property float $price - * @property float $price_total - * @property float $deposit_total - * @property float $final_payment - * @property Carbon $final_payment_date - * @property string $insurance_name - * @property string $insurances - * @property int $travel_cancellation - * @property string $options - * @property string $class_options - * @property string $extra_category - * @property bool $accept_legal_rights - * @property string $ip - * @package App\Models - * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelBooking newModelQuery() - * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelBooking newQuery() - * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelBooking query() - * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelBooking whereAcceptLegalRights($value) - * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelBooking whereArrangements($value) - * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelBooking whereCity($value) - * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelBooking whereClass($value) - * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelBooking whereClassOptions($value) - * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelBooking whereComments($value) - * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelBooking whereCountryId($value) - * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelBooking whereCreated($value) - * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelBooking whereDepositTotal($value) - * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelBooking whereDrafts($value) - * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelBooking whereEmail($value) - * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelBooking whereExtraCategory($value) - * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelBooking whereFax($value) - * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelBooking whereFinalPayment($value) - * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelBooking whereFinalPaymentDate($value) - * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelBooking whereFirstName($value) - * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelBooking whereId($value) - * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelBooking whereInsuranceName($value) - * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelBooking whereInsurances($value) - * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelBooking whereIp($value) - * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelBooking whereLastName($value) - * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelBooking whereMobile($value) - * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelBooking whereOptions($value) - * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelBooking whereParticipants($value) - * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelBooking whereParticipantsTotal($value) - * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelBooking wherePeriodId($value) - * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelBooking wherePhone($value) - * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelBooking wherePrice($value) - * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelBooking wherePriceTotal($value) - * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelBooking whereProgramId($value) - * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelBooking whereProgramName($value) - * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelBooking whereRooms($value) - * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelBooking whereSalutationId($value) - * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelBooking whereSelectedAdults($value) - * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelBooking whereSelectedChilds($value) - * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelBooking whereSelectedDeparture($value) - * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelBooking whereSelectedEndDate($value) - * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelBooking whereSelectedStartDate($value) - * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelBooking whereSelectedTravel($value) - * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelBooking whereServiceItems($value) - * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelBooking whereStreet($value) - * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelBooking whereTravelCancellation($value) - * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelBooking whereZipcode($value) - * @mixin \Eloquent - * @property int|null $crm_booking_id - * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelBooking whereCrmBookingId($value) - */ class TravelBooking extends Model { protected $connection = 'mysql_stern'; diff --git a/app/Models/TravelClass.php b/app/Models/TravelClass.php index b0b0539..7946136 100644 --- a/app/Models/TravelClass.php +++ b/app/Models/TravelClass.php @@ -53,4 +53,5 @@ class TravelClass extends Model { return $this->hasMany('App\Models\TravelProgramDraft', 'travel_class_id', 'id'); } + } diff --git a/app/Models/TravelProgram.php b/app/Models/TravelProgram.php index 01874c4..166682e 100644 --- a/app/Models/TravelProgram.php +++ b/app/Models/TravelProgram.php @@ -12,7 +12,7 @@ use Illuminate\Database\Eloquent\Model; /** * Class TravelProgram - * + * * @property int $id * @property float|null $profit_margin * @property int|null $category_id @@ -58,7 +58,6 @@ use Illuminate\Database\Eloquent\Model; * @property int|null $discount_is_percent_value * @property Carbon|null $created_at * @property Carbon|null $updated_at - * * @property TravelArrivalPoint|null $travel_arrival_point * @property TravelOrganizer|null $travel_organizer * @property TravelInsurance|null $travel_insurance @@ -73,8 +72,62 @@ use Illuminate\Database\Eloquent\Model; * @property Collection|TravelProgramImage[] $travel_program_images * @property TravelProgramOption $travel_program_option * @property TravelProgramRelated $travel_program_related - * * @package App\Models + * @property int|null $travel_company + * @property-read Collection|\App\Models\TravelClass[] $classes + * @property-read int|null $classes_count + * @property-read int|null $travel_classes_count + * @property-read int|null $travel_program_drafts_count + * @method static \Illuminate\Database\Eloquent\Builder|TravelProgram newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|TravelProgram newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|TravelProgram query() + * @method static \Illuminate\Database\Eloquent\Builder|TravelProgram whereAdvices($value) + * @method static \Illuminate\Database\Eloquent\Builder|TravelProgram whereCategoryId($value) + * @method static \Illuminate\Database\Eloquent\Builder|TravelProgram whereClassDescription($value) + * @method static \Illuminate\Database\Eloquent\Builder|TravelProgram whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|TravelProgram whereDefaultFlightPrice($value) + * @method static \Illuminate\Database\Eloquent\Builder|TravelProgram whereDepositPercent($value) + * @method static \Illuminate\Database\Eloquent\Builder|TravelProgram whereDiscount($value) + * @method static \Illuminate\Database\Eloquent\Builder|TravelProgram whereDiscountIsPercentValue($value) + * @method static \Illuminate\Database\Eloquent\Builder|TravelProgram whereExcluded($value) + * @method static \Illuminate\Database\Eloquent\Builder|TravelProgram whereGeneralnote($value) + * @method static \Illuminate\Database\Eloquent\Builder|TravelProgram whereHtmlDescription($value) + * @method static \Illuminate\Database\Eloquent\Builder|TravelProgram whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|TravelProgram whereInSlider($value) + * @method static \Illuminate\Database\Eloquent\Builder|TravelProgram whereIncluded($value) + * @method static \Illuminate\Database\Eloquent\Builder|TravelProgram whereInsurance1($value) + * @method static \Illuminate\Database\Eloquent\Builder|TravelProgram whereInsurance2($value) + * @method static \Illuminate\Database\Eloquent\Builder|TravelProgram whereInsurance3($value) + * @method static \Illuminate\Database\Eloquent\Builder|TravelProgram whereInsurance4($value) + * @method static \Illuminate\Database\Eloquent\Builder|TravelProgram whereIsSeasonal($value) + * @method static \Illuminate\Database\Eloquent\Builder|TravelProgram whereMapHtml($value) + * @method static \Illuminate\Database\Eloquent\Builder|TravelProgram whereMapImage($value) + * @method static \Illuminate\Database\Eloquent\Builder|TravelProgram whereMapImageExt($value) + * @method static \Illuminate\Database\Eloquent\Builder|TravelProgram whereMaxAgeForChildren($value) + * @method static \Illuminate\Database\Eloquent\Builder|TravelProgram whereNettoPricesInEuro($value) + * @method static \Illuminate\Database\Eloquent\Builder|TravelProgram whereNotes($value) + * @method static \Illuminate\Database\Eloquent\Builder|TravelProgram whereOrganizer($value) + * @method static \Illuminate\Database\Eloquent\Builder|TravelProgram wherePosition($value) + * @method static \Illuminate\Database\Eloquent\Builder|TravelProgram whereProfitMargin($value) + * @method static \Illuminate\Database\Eloquent\Builder|TravelProgram whereProgramCode($value) + * @method static \Illuminate\Database\Eloquent\Builder|TravelProgram whereProgramDuration($value) + * @method static \Illuminate\Database\Eloquent\Builder|TravelProgram whereProgramType($value) + * @method static \Illuminate\Database\Eloquent\Builder|TravelProgram whereShowMap($value) + * @method static \Illuminate\Database\Eloquent\Builder|TravelProgram whereSliderInfo($value) + * @method static \Illuminate\Database\Eloquent\Builder|TravelProgram whereStatus($value) + * @method static \Illuminate\Database\Eloquent\Builder|TravelProgram whereSubtitle($value) + * @method static \Illuminate\Database\Eloquent\Builder|TravelProgram whereTextRight($value) + * @method static \Illuminate\Database\Eloquent\Builder|TravelProgram whereTitle($value) + * @method static \Illuminate\Database\Eloquent\Builder|TravelProgram whereTravelAgenda($value) + * @method static \Illuminate\Database\Eloquent\Builder|TravelProgram whereTravelArrivalPointId($value) + * @method static \Illuminate\Database\Eloquent\Builder|TravelProgram whereTravelCategory($value) + * @method static \Illuminate\Database\Eloquent\Builder|TravelProgram whereTravelCompany($value) + * @method static \Illuminate\Database\Eloquent\Builder|TravelProgram whereTravelCountry($value) + * @method static \Illuminate\Database\Eloquent\Builder|TravelProgram whereUpdatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|TravelProgram whereUrl($value) + * @method static \Illuminate\Database\Eloquent\Builder|TravelProgram whereWeekdays($value) + * @method static \Illuminate\Database\Eloquent\Builder|TravelProgram whereYouth($value) + * @mixin \Eloquent */ class TravelProgram extends Model { @@ -134,6 +187,7 @@ class TravelProgram extends Model 'url', 'max_age_for_children', 'html_description', + 'payment_conditions', 'insurance_1', 'insurance_2', 'insurance_3', @@ -191,9 +245,9 @@ class TravelProgram extends Model return $this->belongsTo(TravelInsurance::class, 'insurance_3'); } - public function travel_category() + public function travel_program_category() { - return $this->belongsTo(TravelCategory::class, 'category_id'); + return $this->belongsTo(TravelProgramCategory::class, 'category_id'); } public function travel_general_note() diff --git a/app/Models/TravelProgramCategory.php b/app/Models/TravelProgramCategory.php new file mode 100644 index 0000000..93781e4 --- /dev/null +++ b/app/Models/TravelProgramCategory.php @@ -0,0 +1,29 @@ +hasMany(TravelProgram::class, 'category_id'); + } +} diff --git a/app/Models/TravelProgramDraft.php b/app/Models/TravelProgramDraft.php index 1610260..354d1c5 100644 --- a/app/Models/TravelProgramDraft.php +++ b/app/Models/TravelProgramDraft.php @@ -58,4 +58,10 @@ class TravelProgramDraft extends Model { return $this->belongsTo(Draft::class, 'draft_id', 'id'); } + + public function getWeekdaysOrAll() + { + return ($this->weekdays !== NULL && $this->weekdays[0] !== null) ? $this->weekdays : [0 => "0", 1 => "1", 2 => "2", 3 => "3", 4 => "4", 5 => "5", 6 => "6"]; + } + } diff --git a/app/Models/TravelProgrammCategory.php b/app/Models/TravelProgrammCategory.php new file mode 100644 index 0000000..93781e4 --- /dev/null +++ b/app/Models/TravelProgrammCategory.php @@ -0,0 +1,29 @@ +hasMany(TravelProgram::class, 'category_id'); + } +} diff --git a/app/Repositories/DraftRepository.php b/app/Repositories/DraftRepository.php index 8feb359..c6ccdfe 100644 --- a/app/Repositories/DraftRepository.php +++ b/app/Repositories/DraftRepository.php @@ -493,7 +493,10 @@ class DraftRepository extends BaseRepository { foreach ($travel_program->travel_program_drafts as $travel_program_draft) { //this need an realation to travel class by booking and price - if(in_array($weekday, $travel_program_draft->weekdays)){ + if(in_array($weekday, $travel_program_draft->getWeekdaysOrAll())){ + if(!$travel_program_draft->travel_class){ + return $travel_program_draft->draft; + } if($data['comfort'] == false && strpos(strtolower($travel_program_draft->travel_class->name), 'standard') !== false){ return $travel_program_draft->draft; } diff --git a/app/Repositories/TravelProgramRepository.php b/app/Repositories/TravelProgramRepository.php index c628180..89e28f6 100644 --- a/app/Repositories/TravelProgramRepository.php +++ b/app/Repositories/TravelProgramRepository.php @@ -75,6 +75,7 @@ class TravelProgramRepository extends BaseRepository { 'max_age_for_children' => $data['max_age_for_children'] ? $data['max_age_for_children'] : null, 'url' => $data['url'] ? $data['url'] : null, 'generalnote' => $data['generalnote'] ? $data['generalnote'] : null, + 'payment_conditions' => $data['payment_conditions'] ? $data['payment_conditions'] : null, ]; $this->model->fill($fill); $this->model->save(); @@ -153,7 +154,7 @@ class TravelProgramRepository extends BaseRepository { } public function updateDraft($data) - { + { if(isset($data['weekdays']) && count($data['weekdays']) > 1 && in_array(NULL, $data['weekdays'])){ $data['weekdays'] = array_filter($data['weekdays'], 'is_numeric'); sort($data['weekdays']); @@ -163,13 +164,13 @@ class TravelProgramRepository extends BaseRepository { 'travel_program_id' => $data['travel_program_id'], 'travel_class_id' => $data['travel_class_id'], 'draft_id' => $data['draft_id'], - 'weekdays' => isset($data['weekdays']) ? $data['weekdays'] : null, + 'weekdays' => isset($data['weekdays']) ? $data['weekdays'] : NULL, ]); }else{ $travel_program_draft = TravelProgramDraft::findOrFail($data['id']); $travel_program_draft->draft_id = $data['draft_id']; $travel_program_draft->travel_class_id = $data['travel_class_id']; - $travel_program_draft->weekdays = isset($data['weekdays']) ? $data['weekdays'] : null; + $travel_program_draft->weekdays = isset($data['weekdays']) ? $data['weekdays'] : NULL; $travel_program_draft->save(); } return $travel_program_draft; diff --git a/app/Services/BookingImport.php b/app/Services/BookingImport.php new file mode 100644 index 0000000..9bf98d1 --- /dev/null +++ b/app/Services/BookingImport.php @@ -0,0 +1,171 @@ + $travel_booking->salutation_id, + 'name' => $travel_booking->last_name, + 'firstname' => $travel_booking->first_name, + 'street' => $travel_booking->street, + 'zip' => $travel_booking->zipcode, + 'city' => $travel_booking->city, + 'country_id' => $travel_booking->country_id, + 'phone' => $travel_booking->phone, + 'phonemobile' => $travel_booking->mobile, + 'email' => $travel_booking->email + ]; + $customer = Customer::create($data); + + // ---- createLead + $data = [ + 'customer_id' => $customer->id, + 'request_date' => $travel_booking->created, + 'travelperiod_start' => $travel_booking->selected_start_date, + 'travelperiod_end' => $travel_booking->selected_end_date, + 'remarks' => $travel_booking->comments, + 'sf_guard_user_id' => 15, + 'is_closed' => true, + 'initialcontacttype_id' => 14, + 'status_id' => 7, + 'website_id' => 1, + ]; + $lead = Lead::create($data); + $lead->updateNextDueDate(); + + $comfort = false; + if(isset($travel_booking->drafts['comfort']) && $travel_booking->drafts['comfort']){ + $comfort = true; + } + $data = [ + 'booking_date' => $travel_booking->created->format('Y-m-d'), + 'customer_id' => $customer->id, + 'lead_id' => $lead->id, + 'new_drafts' => $travel_booking->drafts === null ? 0 : 1, + 'sf_guard_user_id' => 15, + 'branch_id' => 4, + 'pax' => $travel_booking->selected_adults, + 'title' => isset($travel_booking->selected_travel['travel_title']) ? $travel_booking->selected_travel['travel_title'] : "", + 'comfort' => $comfort, + 'start_date' => $travel_booking->selected_start_date->format('Y-m-d'), + 'end_date' => $travel_booking->selected_end_date->format('Y-m-d'), + 'website_id' => 1, + 'travel_number' => isset($travel_booking->selected_travel['travel_number']) ? $travel_booking->selected_travel['travel_number'] : null, + /*'participant_name' => isset($travel_booking->participants[0]['last_name']) ? $travel_booking->participants[0]['last_name'] : null, + 'participant_firstname' => isset($travel_booking->participants[0]['first_name']) ? $travel_booking->participants[0]['first_name'] : null, + 'participant_birthdate' => isset($travel_booking->participants[0]['birthday']) ? date( "Y-m-d", strtotime($travel_booking->participants[0]['birthday'])) : null, + 'participant_salutation_id' => isset($travel_booking->participants[0]['gender']) ? $travel_booking->participants[0]['gender'] : null, + 'nationality_id' => isset($travel_booking->participants[0]['nationality']) ? $travel_booking->participants[0]['nationality'] : null,*/ + 'participant_name' => null, + 'participant_firstname' => null, + 'participant_birthdate' => null, + 'participant_salutation_id' => null, + 'nationality_id' => null, + 'price' => $travel_booking->price, + 'price_total' => $travel_booking->price_total, + 'deposit_total' => $travel_booking->deposit_total, + 'final_payment' => $travel_booking->final_payment, + 'final_payment_date' => $travel_booking->final_payment_date->format('Y-m-d'), + 'travel_country_id' => isset($travel_booking->selected_travel['travel_country_id'][0]) ? $travel_booking->selected_travel['travel_country_id'][0] : null, + 'travel_category_id' => isset($travel_booking->selected_travel['travel_category_id']) ? $travel_booking->selected_travel['travel_category_id'] : null, + 'travelagenda_id' => isset($travel_booking->selected_travel['travelagenda_id']) ? $travel_booking->selected_travel['travelagenda_id'] : null, + 'travel_company_id' => isset($travel_booking->selected_travel['travel_company_id']) ? $travel_booking->selected_travel['travel_company_id'] : 4, + ]; + + //createBooking + $booking = Booking::create($data); + + //createTraveler + if($travel_booking->participants){ + foreach ($travel_booking->participants as $key => $participant){ + Participant::create([ + 'booking_id' => $booking->id, + 'participant_name' => $participant['last_name'], + 'participant_firstname' => $participant['first_name'], + 'participant_birthdate' => date( "Y-m-d", strtotime($participant['birthday'])), + 'participant_salutation_id' => $participant['gender'], + 'participant_child' => $participant['child'], + 'nationality_id' =>$participant['nationality'], + ]); + + } + } + + //createServiceItem //service_items + if($travel_booking->service_items){ + foreach ($travel_booking->service_items as $key => $service_item){ + BookingServiceItem::create([ + 'booking_id' => $booking->id, + 'travel_company_id' => $service_item['travel_company_id'], + 'service_price' => $service_item['service_price'], + 'service_price_refund' => 0, + 'commission' => $service_item['commission'], + 'travel_date' => $service_item['travel_date'], + 'name' => $service_item['name'], + 'is_commission_locked' => 0, + ]); + } + } + + //createServiceItem //insurances + if($travel_booking->insurances){ + foreach ($travel_booking->insurances as $service_item){ + BookingServiceItem::create([ + 'booking_id' => $booking->id, + 'travel_company_id' => $service_item['travel_company_id'], + 'service_price' => $service_item['price'], + 'service_price_refund' => 0, + 'commission' => $service_item['commission'], + 'travel_date' => $service_item['travel_date'], + 'name' => $service_item['name'], + 'is_commission_locked' => 0, + ]); + } + } + + + + //createArrangement + if($travel_booking->arrangements) { + foreach ($travel_booking->arrangements as $key => $arrangement){ + Arrangement::create([ + 'state' => isset($arrangement['state']) ? $arrangement['state'] : null, + 'begin' => isset($arrangement['end']) ? $arrangement['end'] : null, + 'end' => isset($arrangement['end']) ? $arrangement['end'] : null, + 'type_s' => isset($arrangement['type_s']) ? $arrangement['type_s'] : null, + 'data_s' => isset($arrangement['data_s']) ? $arrangement['data_s'] : null, + 'view_position' => isset($arrangement['view_position']) ? $arrangement['view_position'] : null, + 'booking_id' => $booking->id, + 'type_id' => $arrangement['type_id'], + 'in_pdf' => isset($arrangement['in_pdf']) ? $arrangement['in_pdf'] : null, + ]); + } + } + + //createDrafts + + if($travel_booking->drafts) { + $draftRepo = new DraftRepository($booking); + $draftRepo->create_drafts_from_booking($booking->id, $travel_booking->drafts); + } + + $travel_booking->crm_booking_id = $booking->id; + $travel_booking->save(); + + return $booking; + + } +} \ No newline at end of file diff --git a/app/Services/HTMLHelper.php b/app/Services/HTMLHelper.php index 88efd3d..9976b7a 100644 --- a/app/Services/HTMLHelper.php +++ b/app/Services/HTMLHelper.php @@ -52,6 +52,16 @@ class HTMLHelper 6 => 'Samstag', ]; + private static $shortDays = [ + 0 => 'So', + 1 => 'Mo', + 2 => 'Di', + 3 => 'Mi', + 4 => 'Do', + 5 => 'Fr', + 6 => 'Sa', + ]; + public static $de_days = [ 1 => 'Montag', 2 => 'Dienstag', @@ -89,6 +99,10 @@ class HTMLHelper return self::$days[$i]; } + public static function getShortDay($i){ + return self::$shortDays[$i]; + } + public static function getDeDays(){ return self::$de_days; } @@ -409,13 +423,18 @@ class HTMLHelper return $ret; } - public static function getWeekdaysString($weekdays = []){ + public static function getWeekdaysString($weekdays = [], $short = false){ $ret = ""; if(is_array($weekdays) && count($weekdays)){ foreach($weekdays as $weekday){ if($weekday !== NULL){ - $ret .= self::getDay($weekday).', '; + if($short){ + $ret .= self::getShortDay($weekday).', '; + }else{ + $ret .= self::getDay($weekday).', '; + + } } } if($ret != ""){ diff --git a/app/Services/SyS/Import.php b/app/Services/SyS/Import.php new file mode 100644 index 0000000..3ca8142 --- /dev/null +++ b/app/Services/SyS/Import.php @@ -0,0 +1,652 @@ +iq_content_tree_nodes as $tree_node){ + + $text .= $tree_node->id." -- ".$tree_node->title."\n"; + foreach ($tree_node->iq_content_sites as $site){ + if($site->travel_guide && $site->identifier === null){ + $identifier = $site->travel_guide->scope === 1 ? 'long' : 'short'; + //$site->identifier = $site->travel_guide->scope === 1 ? 'long' : 'short'; + $text .= "-- ".$site->id." -- ".$identifier."\n"; + } + } + } + } + $data = [ + 'text' => $text, + 'values' => $val, + ]; + return view('sys.tools.trees', $data); + } + + public function treeStore() + { + $trees = IQContentTree::all(); + foreach ($trees as $tree){ + foreach ($tree->iq_content_tree_nodes as $tree_node){ + + foreach ($tree_node->iq_content_sites as $site){ + if($site->travel_guide){ + $site->identifier = $site->travel_guide->scope === 1 ? 'long' : 'short'; + $site->save(); + } + } + } + } + return redirect()->back(); + } + + + //clean_tree_code + public function cleanTreeCode(){ + $val = []; + $text = ""; + + $travelGuide = TravelGuide::find(166); + $text = $travelGuide->full_text; + + $data = [ + 'new_text' => \App\Services\Util::cleanHTML($text), + 'full_text' => $travelGuide->full_text, + 'values' => $val, + ]; + return view('sys.tools.clean', $data); + } + + public function cleanTreeCodeStore(){ + $this->cleanTextTravelGuide(); + return redirect()->back(); + } + + public function cleanTextTravelGuide() + { + $TravelGuides = TravelGuide::all(); + foreach ($TravelGuides as $travelGuide){ + $new_text = \App\Services\Util::cleanHTML($travelGuide->full_text); + if(strcmp($travelGuide->full_text, $new_text) != 0){ + $travelGuide->full_text = $new_text; + $travelGuide->save(); + var_dump($travelGuide->id); + echo "
"; + } + } + die("done"); + } + + //media_insert + public function mediaInsert(){ + $val = []; + $text = ""; + $data = [ + 'text' => $text, + 'values' => $val, + ]; + return view('sys.tools.insert', $data); + } + + public function mediaInsertStore(){ + $val = []; + + $data = Request::all(); + $text = $data['text']; + + if($data['action'] === 'insert'){ + $lines = explode(PHP_EOL, $text); + $FolderC = new FolderController(); + $FileC = new FileController(); + + foreach ($lines as $line){ + $sep = explode(';', $line); + if(isset($sep[0]) && isset($sep[1]) && isset($sep[2])){ + //youtube //main dir + $working_dir = "/shares/youtube/".$sep[0]; + $folder_name = $sep[1]; + + $folder = $FolderC->makeFolder($working_dir, $folder_name); + $working_dir = $working_dir."/".$folder_name; + $file = $FileC->makeYoutube($working_dir, $sep[2]); + $val[] = $file.' - '.$sep[2]." | ".$working_dir; + } + } + } + if($data['action'] === 'youtube_ids'){ + $TravelGuides = TravelGuide::all(); + foreach ($TravelGuides as $travelGuide){ + $this->findYoutubeLinks($val, $travelGuide); + + /* */ + } + } + if($data['action'] === 'replace_youtube_links') { + $TravelGuides = TravelGuide::all(); + foreach ($TravelGuides as $travelGuide){ + $this->replaceYoutubeLinks($val, $travelGuide); + + /* */ + } + } + + if($data['action'] === 'replace_youtube_div') { + $this->replaceYoutubeDiv($val, TravelGuide::find(335)); + $TravelGuides = TravelGuide::all(); + foreach ($TravelGuides as $travelGuide){ + $this->replaceYoutubeDiv($val, $travelGuide); + + /* */ + } + } + + + $data = [ + 'text' => $text, + 'values' => $val, + ]; + return view('sys.tools.insert', $data); + + } + +//import + public function import() + { + $text = ""; + $val = []; + + $data = [ + 'text' => $text, + 'values' => $val, + ]; + return view('sys.tools.import', $data); + } + + public function importStore() + { + + $data = Request::all(); + + $lines = explode(PHP_EOL, $data['text']); + + if($data['action'] === 'import_TN'){ + foreach ($lines as $line){ + $ex = explode(';', $line); + $t_n = TravelNationality::whereName(trim($ex[1]))->first(); + if($t_n){ + $t_n->nat = $ex[0]; + $t_n->save(); + }else{ + TravelNationality::create([ + 'name' => trim($ex[1]), + 'nat' => $ex[0], + 'active' => false, + ] + ); + } + } + } + + if($data['action'] === 'import_CT') { + foreach ($lines as $line){ + $ex = explode(';', $line); + $t_c = TravelCountry::whereName(trim($ex[1]))->first(); + if($t_c){ + dump($t_c->name); + $t_c->destco = $ex[0]; + $t_c->save(); + + $tc = \App\Models\Sym\TravelCountry::find($t_c->crm_id); + $tc->destco = $ex[0]; + $tc->save(); + } + } + dd(""); + } + + return redirect()->back(); + } + + + private function replaceYoutubeDiv(&$val, $travelGuide) + { + $ret = []; + $dom = new \DOMDocument('1.0', 'utf-8'); + @$dom->loadHTML(mb_convert_encoding($travelGuide->full_text, 'HTML-ENTITIES', 'UTF-8')); + $links = $dom->getElementsByTagName('iframe'); + foreach ($links as $link) { + if($link->parentNode->parentNode->nodeName === 'div'){ + if($link->parentNode->parentNode->getAttribute('itemprop') === 'video'){ + if($link->parentNode->parentNode->getAttribute('class') === 'mediaA'){ + if($link->parentNode->parentNode->parentNode->getAttribute('itemprop') === 'video'){ + + $need = $link->parentNode->parentNode; + $replace = $link->parentNode->parentNode->parentNode; + $replace->parentNode->insertBefore($dom->importNode($need, true), $replace->nextSibling); + $replace->parentNode->removeChild($replace); + $html = $dom->saveHTML(); + + $travelGuide->full_text = $html; + $travelGuide->save(); + $val[] = 'replace - '.$travelGuide->id; + + }else{ + // dump("notfound itemprop over class mediaA".$travelGuide->id); + $val[] = 'notfound - itemprop over class mediaA - '.$travelGuide->id; + + //in + + foreach ($link->parentNode->parentNode->childNodes as $node){ + if($node->nodeName === 'h2'){ + + if($node->firstChild->nodeName === '#text'){ + + $span = $dom->createElement('span', htmlspecialchars($node->nodeValue)); + + $span->setAttribute('itemprop', 'name'); + $h2 = $dom->createElement('h2'); + $h2->appendChild($span); + + $node->parentNode->replaceChild($h2, $node); + $html = $dom->saveHTML(); + + $travelGuide->full_text = $html; + $travelGuide->save(); + $val[] = 'replace h2 - '.$travelGuide->id; + + + } + + + + + + + } + } + // + + } + //dump("found M div ".$travelGuide->id); + }else{ + // dump("notfound class mediaA".$travelGuide->id); + $val[] = 'notfound - class mediaA - '.$travelGuide->id; + } + }else{ + // dump("notfound div ".$travelGuide->id); + $val[] = 'notfound - video - '.$travelGuide->id; + + + } + // dump($travelGuide->id); + }else{ + //dump("notfound".$travelGuide->id); + $val[] = 'notfound - div - '.$travelGuide->id; + } + } + + + return $ret; + } + + private function replaceYoutubeLinks(&$val, $travelGuide) + { + $ret = []; + $dom = new \DOMDocument('1.0', 'utf-8'); + @$dom->loadHTML(mb_convert_encoding($travelGuide->full_text, 'HTML-ENTITIES', 'UTF-8')); + $links = $dom->getElementsByTagName('iframe'); + foreach ($links as $link) { + + $src = $link->getAttribute('src'); + + + // + $replace = false; + $reLink = false; + if($link->parentNode->nodeName === 'div'){ + if($link->parentNode->getAttribute('class') === 'video-container'){ + if($link->parentNode->parentNode->getAttribute('class') === 'mediaA' && $link->parentNode->parentNode->getAttribute('itemprop') !== 'video'){ + $replace = $link->parentNode->parentNode; + $reLink = $link->parentNode; + }else{ + $val[] = 'found - manual - '.$travelGuide->id; + } + }else{ + $val[] = 'first div - manual - '.$travelGuide->id; + + } + + }elseif ($link->parentNode->nodeName === 'p'){ + if($link->parentNode->parentNode->nodeName === 'div'){ + if($link->parentNode->parentNode->getAttribute('itemprop') === 'video'){ + //replace div + $replace = $link->parentNode->parentNode; + $reLink = $link->parentNode; + }else{ + //replace p + $replace = $link->parentNode; + $reLink = $link; + } + }else{ + $replace = $link->parentNode; + $reLink = $link; + } + + }else{ + $val[] = 'else div - manual - '.$travelGuide->id; + } + if($replace){ + + $id = preg_replace('/http.*?embed\//i', '', $src); + $videoID = preg_replace('#[&\?].+$#', '', $id); + $identifier = Str::slug(pre_slug($videoID), '-'); + $IQContentFile = IQContentFile::whereIdentifier($identifier)->first(); + if($IQContentFile) { + + $video = new \DOMDocument('1.0', 'utf-8'); + $makeText = '
'; + $makeText .= '

' . $IQContentFile->content['title'] . '

'; + $makeText .= ''; + $makeText .= ''; + $makeText .= ''; + $makeText .= ''; + $makeText .= '
'; + $makeText .= '

'.$IQContentFile->content['description'].'

'; + $makeText = str_replace('&', '&', $makeText); + $video->loadHTML($makeText); + $replace->insertBefore($dom->importNode($video->documentElement, true), $reLink->nextSibling); + $replace->removeChild($reLink); + $html = $dom->saveHTML(); + + $travelGuide->full_text = $html; + $travelGuide->save(); + + $val[] = 'replace - '.$travelGuide->id; + } + + + } + } + + + return $ret; + } + + private function findYoutubeLinks(&$val, $travelGuide) + { + $ret = []; + $dom = new \DOMDocument('1.0', 'utf-8'); + @$dom->loadHTML(mb_convert_encoding($travelGuide->full_text, 'HTML-ENTITIES', 'UTF-8')); + + $links = $dom->getElementsByTagName('iframe'); + foreach ($links as $link) { + + $src = $link->getAttribute('src'); + + $id = preg_replace('/http.*?embed\//i', '', $src); + $videoID = preg_replace('#[&\?].+$#', '', $id); + + $identifier = Str::slug(pre_slug($videoID), '-'); + $count = IQContentFile::whereIdentifier($identifier)->count(); + + if($count === 0){ + $ret[$videoID] = $count; + $val[] = "weitere;Travel-Guide;".$videoID.";"; + } + } + return $ret; + } + //private? + public function h1ToTitleTravelGuide() + { + $TravelGuides = TravelGuide::all(); + foreach ($TravelGuides as $travelGuide){ + if(strpos($travelGuide->full_text,'

' )){ + $dom = new \DOMDocument('1.0', 'utf-8'); + @$dom->loadHTML(mb_convert_encoding($travelGuide->full_text, 'HTML-ENTITIES', 'UTF-8')); + $elements = $dom->getElementsByTagName('h1'); + + foreach ($elements as $element) { + if($element->nodeValue != ""){ + var_dump($travelGuide->id); + var_dump($element->nodeValue); + echo "
"; + var_dump($travelGuide->name); + echo "
"; + echo "--"; + echo "
"; + + $new_text = preg_replace('/]*>([\s\S]*?)<\/h1[^>]*>/', '', $travelGuide->full_text); + + $travelGuide->name = $element->nodeValue; + $travelGuide->full_text = $new_text; + $travelGuide->save(); + } + } + } + } + die("done"); + } + + public function readNodeAndSaveToTree(){ + $input = Request::all(); + $ret = []; + if(isset($input['text'])){ + $out = $this->ul_to_array($input['text']); + $this->array_to_nodes($out); + } + die("done"); + $data = [ + 'text' => $input['text'], + 'values' => $ret, + ]; + return view('iq.tools.links', $data); + } + + public function array_to_nodes($array, $lvl = 1, $parent_id = 1, $pos=100){ + + + if(is_array($array)){ + foreach ($array as $node){ + if(isset($node['slug'])){ + + $slug = substr($node['slug'], 0, 80); + // $slug = substr($node['slug'], 0, strrpos($slug, " ")); + + $name = substr($node['name'], 0, 255); + // $name = substr($node['name'], 0, strrpos($name, " ")); + + + $data = [ + 'tree_id' => 1, + 'parent_id' => $parent_id, + 'lvl' => $lvl, + 'name' => $name, + 'identifier' => $slug, + 'active' => false, + 'pos' => $pos++, + ]; + $tree_node = IQContentTreeNode::create($data); + + + $travel_guides = TravelGuide::whereSlug($node['slug'])->get(); + foreach ($travel_guides as $travel_guide){ + if(IQContentSite::whereTreeNodeId($tree_node->id)->whereTravelGuideId($travel_guide->id)->count() == 0) { + IQContentSite::create(['tree_node_id' => $tree_node->id, 'travel_guide_id' => $travel_guide->id]); + } + } + + + } + if(isset($node['children']) && is_array($node['children'])){ + $this->array_to_nodes($node['children'], $lvl + 1, $tree_node->id, $pos); + } + } + } + + } + + public function ul_to_array($ol){ + if(is_string($ol)){ + if(!$ol = simplexml_load_string($ol)) { + trigger_error("Syntax error in UL/LI structure"); + return FALSE; + } + return $this->ul_to_array($ol); + } else if(is_object($ol)){ + $output = array(); + foreach($ol->li as $li){ + + $tmp = false; + if(isset($li->ol)){ + $tmp = $this->ul_to_array($li->ol); + } + + if($li->count()){ + + $str = (string) $li; + + $a = new \SimpleXMLElement($li->children()->asXML()); + $str = (string) $a[0]." ".$str; + $str = str_replace("\n", "", $str); + $str = str_replace("\r", "", $str); + $str = str_replace("\t", "", $str); + $str = preg_replace(array('/\s{2,}/', '/[\t\n]/'), ' ', $str); + + if(trim($str) !== "" && $str !== null){ + $slug = (string) $a['href']; + $link = explode("/", $slug); + + $link1 = array_pop($link); + $link1 = str_replace('.htm', '',$link1); + $output[] = ['slug'=> $link1, 'name'=>$str, 'children'=>$tmp]; + } + }else{ + $str = (string) $li; + $str = str_replace("\n", "", $str); + $str = str_replace("\r", "", $str); + $str = str_replace("\t", "", $str); + if(trim($str) !== "" && $str !== null){ + + $output[] = ['slug'=>'', 'name'=>$str, 'children'=>$tmp]; + } + } + + } + return $output; + } else { + return FALSE; + } + } + + public function rindex() + { + $data = [ + 'text' => "", + 'values' => [], + ]; + return view('iq.content.tools.redirects', $data); + } + + public function rstore() + { + + $iqContentTree = IQContentTree::find(2); + $this->makeTree($iqContentTree); + $input = Request::all(); + $ret = []; + + if(isset($input['text'])){ + + + $dom = new \DOMDocument('1.0', 'utf-8'); + @$dom->loadHTML(mb_convert_encoding($input['text'], 'HTML-ENTITIES', 'UTF-8')); + + $tags = ['ol']; + foreach ($tags as $tag){ + $domElements = []; + $elements = $dom->getElementsByTagName($tag)->item(0); + + foreach($elements as $node){ + foreach($node->childNodes as $child) { + $ret[] = array($child->nodeName => $child->nodeValue); + } + } + } + + /* $tags = ['a']; foreach ($tags as $tag){ + $domElements = []; + $elements = $dom->getElementsByTagName($tag); + foreach ($elements as $element) { + $domElements[] = $element; + + } + foreach ($domElements as $domElement) { + $r = "-----"; + $href = $domElement->getAttribute('href'); + $link = explode("/", $href); + + $link1 = array_pop($link); + $link1 = str_replace('.html', '',$link1); + $link1 = str_replace('-', '',$link1); + if(isset($this->tree[$link1])){ + $r = $this->tree[$link1]; + }else{ + $link1 = array_pop($link); + $link1 = str_replace('.html', '',$link1); + $link1 = str_replace('-', '',$link1); + if(isset($this->tree[$link1])){ + $r = $this->tree[$link1]; + } + } + + $ret[] = "Redirect 301 /".$href." ".$r; + + } + }*/ + + } + $data = [ + 'text' => $input['text'], + 'values' => $ret, + ]; + + return view('iq.content.tools.redirects', $data); + + } + + public function makeTree(IQContentTree $iq_content_tree, $lvl = 0, $parent_id = false, $url = "") + { + + if ($parent_id) { + //where('active', true) + $tree_nodes = IQContentTreeNode::where('tree_id', $iq_content_tree->id)->where('lvl', $lvl)->where('active', true)->where('parent_id', $parent_id)->orderBy('pos', 'ASC')->get(); + } else { + + $url = "/" . $iq_content_tree->identifier . "/"; + $tree_nodes = IQContentTreeNode::where('tree_id', $iq_content_tree->id)->where('lvl', $lvl)->where('active', true)->orderBy('pos', 'ASC')->get(); + } + + foreach ($tree_nodes as $node) { + $children = IQContentTreeNode::where('tree_id', $iq_content_tree->id)->where('lvl', $lvl + 1)->where('active', true)->where('parent_id', $node->id)->count(); + $this->tree[str_replace('-', '', $node->identifier)] = url($url . $node->identifier); + + if ($children) { + $this->makeTree($iq_content_tree, $lvl + 1, $node->id, $url . $node->identifier . "/"); + + } + } + return true; + } +} diff --git a/app/Services/SyS/ReCalcu.php b/app/Services/SyS/ReCalcu.php new file mode 100644 index 0000000..30317c8 --- /dev/null +++ b/app/Services/SyS/ReCalcu.php @@ -0,0 +1,71 @@ +select('booking.*')->where('new_drafts', true); + + $query->whereHas('booking_draft_items', function ($q) { + $q->where('comfort', true); + }); + $bookings = $query->get(); + foreach ($bookings as $booking){ + $booking->comfort = true; + $booking->save(); + } +*/ + + $bookings = Booking::orderBy('id', 'DESC')->offset(0)->limit(1000)->get(); + + + + + // dd("nothing"); + $val = []; + $text = ""; + + $data = [ + 'text' => $text, + 'bookings' => $bookings, + ]; + return view('sys.tools.links', $data); + + } + + /* + clean code + $travelGuides = TravelGuide::all(); + foreach ($travelGuides as $travelGuide){ + if(strpos($travelGuide->full_text, "


") !== false){ + $val[$travelGuide->id] = "


"; + } + } + + foreach ($travelGuides as $travelGuide){ + if(strpos($travelGuide->full_text, "id] = "full_text; + + // $new_text = preg_replace('/]*>([\s\S]*?)<\/h1[^>]*>/', '', $TravelGuide->full_text); + +*/ + + public function calcuStore() + { + return redirect()->back(); + } +} diff --git a/app/Services/SyS/ReImport.php b/app/Services/SyS/ReImport.php new file mode 100644 index 0000000..5431723 --- /dev/null +++ b/app/Services/SyS/ReImport.php @@ -0,0 +1,41 @@ +limit(200)->get(); + $data = [ + 'values' => $TravelBooking, + 'text' => '', + ]; + + return view('sys.tools.reimport', $data); + + } + + public static function store() + { + $data = Request::all(); + $ret = ""; + if(strpos($data['action'], 'checkOne_') !== false){ + $id = (int) str_replace('checkOne_', '', $data['action']); + $travel_booking = TravelBooking::findOrFail($id); + + $booking = BookingImport::importFrom($travel_booking); + + dd($booking); + } + \Session()->flash('alert-success', $ret); + return back(); + } +} diff --git a/public/fonts/nunito.css b/public/fonts/nunito.css new file mode 100644 index 0000000..d1667dd --- /dev/null +++ b/public/fonts/nunito.css @@ -0,0 +1,208 @@ +/* nunito-200 - latin */ +@font-face { + font-family: 'Nunito'; + font-style: normal; + font-weight: 200; + src: url('./nunito/nunito-v25-latin-200.eot'); /* IE9 Compat Modes */ + src: local(''), + url('./nunito/nunito-v25-latin-200.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('./nunito/nunito-v25-latin-200.woff2') format('woff2'), /* Super Modern Browsers */ + url('./nunito/nunito-v25-latin-200.woff') format('woff'), /* Modern Browsers */ + url('./nunito/nunito-v25-latin-200.ttf') format('truetype'), /* Safari, Android, iOS */ + url('./nunito/nunito-v25-latin-200.svg#Nunito') format('svg'); /* Legacy iOS */ +} +/* nunito-300 - latin */ +@font-face { + font-family: 'Nunito'; + font-style: normal; + font-weight: 300; + src: url('./nunito/nunito-v25-latin-300.eot'); /* IE9 Compat Modes */ + src: local(''), + url('./nunito/nunito-v25-latin-300.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('./nunito/nunito-v25-latin-300.woff2') format('woff2'), /* Super Modern Browsers */ + url('./nunito/nunito-v25-latin-300.woff') format('woff'), /* Modern Browsers */ + url('./nunito/nunito-v25-latin-300.ttf') format('truetype'), /* Safari, Android, iOS */ + url('./nunito/nunito-v25-latin-300.svg#Nunito') format('svg'); /* Legacy iOS */ +} +/* nunito-regular - latin */ +@font-face { + font-family: 'Nunito'; + font-style: normal; + font-weight: 400; + src: url('./nunito/nunito-v25-latin-regular.eot'); /* IE9 Compat Modes */ + src: local(''), + url('./nunito/nunito-v25-latin-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('./nunito/nunito-v25-latin-regular.woff2') format('woff2'), /* Super Modern Browsers */ + url('./nunito/nunito-v25-latin-regular.woff') format('woff'), /* Modern Browsers */ + url('./nunito/nunito-v25-latin-regular.ttf') format('truetype'), /* Safari, Android, iOS */ + url('./nunito/nunito-v25-latin-regular.svg#Nunito') format('svg'); /* Legacy iOS */ +} +/* nunito-500 - latin */ +@font-face { + font-family: 'Nunito'; + font-style: normal; + font-weight: 500; + src: url('./nunito/nunito-v25-latin-500.eot'); /* IE9 Compat Modes */ + src: local(''), + url('./nunito/nunito-v25-latin-500.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('./nunito/nunito-v25-latin-500.woff2') format('woff2'), /* Super Modern Browsers */ + url('./nunito/nunito-v25-latin-500.woff') format('woff'), /* Modern Browsers */ + url('./nunito/nunito-v25-latin-500.ttf') format('truetype'), /* Safari, Android, iOS */ + url('./nunito/nunito-v25-latin-500.svg#Nunito') format('svg'); /* Legacy iOS */ +} +/* nunito-600 - latin */ +@font-face { + font-family: 'Nunito'; + font-style: normal; + font-weight: 600; + src: url('./nunito/nunito-v25-latin-600.eot'); /* IE9 Compat Modes */ + src: local(''), + url('./nunito/nunito-v25-latin-600.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('./nunito/nunito-v25-latin-600.woff2') format('woff2'), /* Super Modern Browsers */ + url('./nunito/nunito-v25-latin-600.woff') format('woff'), /* Modern Browsers */ + url('./nunito/nunito-v25-latin-600.ttf') format('truetype'), /* Safari, Android, iOS */ + url('./nunito/nunito-v25-latin-600.svg#Nunito') format('svg'); /* Legacy iOS */ +} +/* nunito-700 - latin */ +@font-face { + font-family: 'Nunito'; + font-style: normal; + font-weight: 700; + src: url('./nunito/nunito-v25-latin-700.eot'); /* IE9 Compat Modes */ + src: local(''), + url('./nunito/nunito-v25-latin-700.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('./nunito/nunito-v25-latin-700.woff2') format('woff2'), /* Super Modern Browsers */ + url('./nunito/nunito-v25-latin-700.woff') format('woff'), /* Modern Browsers */ + url('./nunito/nunito-v25-latin-700.ttf') format('truetype'), /* Safari, Android, iOS */ + url('./nunito/nunito-v25-latin-700.svg#Nunito') format('svg'); /* Legacy iOS */ +} +/* nunito-800 - latin */ +@font-face { + font-family: 'Nunito'; + font-style: normal; + font-weight: 800; + src: url('./nunito/nunito-v25-latin-800.eot'); /* IE9 Compat Modes */ + src: local(''), + url('./nunito/nunito-v25-latin-800.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('./nunito/nunito-v25-latin-800.woff2') format('woff2'), /* Super Modern Browsers */ + url('./nunito/nunito-v25-latin-800.woff') format('woff'), /* Modern Browsers */ + url('./nunito/nunito-v25-latin-800.ttf') format('truetype'), /* Safari, Android, iOS */ + url('./nunito/nunito-v25-latin-800.svg#Nunito') format('svg'); /* Legacy iOS */ +} +/* nunito-900 - latin */ +@font-face { + font-family: 'Nunito'; + font-style: normal; + font-weight: 900; + src: url('./nunito/nunito-v25-latin-900.eot'); /* IE9 Compat Modes */ + src: local(''), + url('./nunito/nunito-v25-latin-900.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('./nunito/nunito-v25-latin-900.woff2') format('woff2'), /* Super Modern Browsers */ + url('./nunito/nunito-v25-latin-900.woff') format('woff'), /* Modern Browsers */ + url('./nunito/nunito-v25-latin-900.ttf') format('truetype'), /* Safari, Android, iOS */ + url('./nunito/nunito-v25-latin-900.svg#Nunito') format('svg'); /* Legacy iOS */ +} +/* nunito-200italic - latin */ +@font-face { + font-family: 'Nunito'; + font-style: italic; + font-weight: 200; + src: url('./nunito/nunito-v25-latin-200italic.eot'); /* IE9 Compat Modes */ + src: local(''), + url('./nunito/nunito-v25-latin-200italic.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('./nunito/nunito-v25-latin-200italic.woff2') format('woff2'), /* Super Modern Browsers */ + url('./nunito/nunito-v25-latin-200italic.woff') format('woff'), /* Modern Browsers */ + url('./nunito/nunito-v25-latin-200italic.ttf') format('truetype'), /* Safari, Android, iOS */ + url('./nunito/nunito-v25-latin-200italic.svg#Nunito') format('svg'); /* Legacy iOS */ +} +/* nunito-300italic - latin */ +@font-face { + font-family: 'Nunito'; + font-style: italic; + font-weight: 300; + src: url('./nunito/nunito-v25-latin-300italic.eot'); /* IE9 Compat Modes */ + src: local(''), + url('./nunito/nunito-v25-latin-300italic.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('./nunito/nunito-v25-latin-300italic.woff2') format('woff2'), /* Super Modern Browsers */ + url('./nunito/nunito-v25-latin-300italic.woff') format('woff'), /* Modern Browsers */ + url('./nunito/nunito-v25-latin-300italic.ttf') format('truetype'), /* Safari, Android, iOS */ + url('./nunito/nunito-v25-latin-300italic.svg#Nunito') format('svg'); /* Legacy iOS */ +} +/* nunito-italic - latin */ +@font-face { + font-family: 'Nunito'; + font-style: italic; + font-weight: 400; + src: url('./nunito/nunito-v25-latin-italic.eot'); /* IE9 Compat Modes */ + src: local(''), + url('./nunito/nunito-v25-latin-italic.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('./nunito/nunito-v25-latin-italic.woff2') format('woff2'), /* Super Modern Browsers */ + url('./nunito/nunito-v25-latin-italic.woff') format('woff'), /* Modern Browsers */ + url('./nunito/nunito-v25-latin-italic.ttf') format('truetype'), /* Safari, Android, iOS */ + url('./nunito/nunito-v25-latin-italic.svg#Nunito') format('svg'); /* Legacy iOS */ +} +/* nunito-500italic - latin */ +@font-face { + font-family: 'Nunito'; + font-style: italic; + font-weight: 500; + src: url('./nunito/nunito-v25-latin-500italic.eot'); /* IE9 Compat Modes */ + src: local(''), + url('./nunito/nunito-v25-latin-500italic.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('./nunito/nunito-v25-latin-500italic.woff2') format('woff2'), /* Super Modern Browsers */ + url('./nunito/nunito-v25-latin-500italic.woff') format('woff'), /* Modern Browsers */ + url('./nunito/nunito-v25-latin-500italic.ttf') format('truetype'), /* Safari, Android, iOS */ + url('./nunito/nunito-v25-latin-500italic.svg#Nunito') format('svg'); /* Legacy iOS */ +} +/* nunito-600italic - latin */ +@font-face { + font-family: 'Nunito'; + font-style: italic; + font-weight: 600; + src: url('./nunito/nunito-v25-latin-600italic.eot'); /* IE9 Compat Modes */ + src: local(''), + url('./nunito/nunito-v25-latin-600italic.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('./nunito/nunito-v25-latin-600italic.woff2') format('woff2'), /* Super Modern Browsers */ + url('./nunito/nunito-v25-latin-600italic.woff') format('woff'), /* Modern Browsers */ + url('./nunito/nunito-v25-latin-600italic.ttf') format('truetype'), /* Safari, Android, iOS */ + url('./nunito/nunito-v25-latin-600italic.svg#Nunito') format('svg'); /* Legacy iOS */ +} +/* nunito-700italic - latin */ +@font-face { + font-family: 'Nunito'; + font-style: italic; + font-weight: 700; + src: url('./nunito/nunito-v25-latin-700italic.eot'); /* IE9 Compat Modes */ + src: local(''), + url('./nunito/nunito-v25-latin-700italic.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('./nunito/nunito-v25-latin-700italic.woff2') format('woff2'), /* Super Modern Browsers */ + url('./nunito/nunito-v25-latin-700italic.woff') format('woff'), /* Modern Browsers */ + url('./nunito/nunito-v25-latin-700italic.ttf') format('truetype'), /* Safari, Android, iOS */ + url('./nunito/nunito-v25-latin-700italic.svg#Nunito') format('svg'); /* Legacy iOS */ +} +/* nunito-800italic - latin */ +@font-face { + font-family: 'Nunito'; + font-style: italic; + font-weight: 800; + src: url('./nunito/nunito-v25-latin-800italic.eot'); /* IE9 Compat Modes */ + src: local(''), + url('./nunito/nunito-v25-latin-800italic.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('./nunito/nunito-v25-latin-800italic.woff2') format('woff2'), /* Super Modern Browsers */ + url('./nunito/nunito-v25-latin-800italic.woff') format('woff'), /* Modern Browsers */ + url('./nunito/nunito-v25-latin-800italic.ttf') format('truetype'), /* Safari, Android, iOS */ + url('./nunito/nunito-v25-latin-800italic.svg#Nunito') format('svg'); /* Legacy iOS */ +} +/* nunito-900italic - latin */ +@font-face { + font-family: 'Nunito'; + font-style: italic; + font-weight: 900; + src: url('./nunito/nunito-v25-latin-900italic.eot'); /* IE9 Compat Modes */ + src: local(''), + url('./nunito/nunito-v25-latin-900italic.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('./nunito/nunito-v25-latin-900italic.woff2') format('woff2'), /* Super Modern Browsers */ + url('./nunito/nunito-v25-latin-900italic.woff') format('woff'), /* Modern Browsers */ + url('./nunito/nunito-v25-latin-900italic.ttf') format('truetype'), /* Safari, Android, iOS */ + url('./nunito/nunito-v25-latin-900italic.svg#Nunito') format('svg'); /* Legacy iOS */ +} \ No newline at end of file diff --git a/public/fonts/nunito/nunito-v25-latin-200.eot b/public/fonts/nunito/nunito-v25-latin-200.eot new file mode 100644 index 0000000..4058019 Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-200.eot differ diff --git a/public/fonts/nunito/nunito-v25-latin-200.svg b/public/fonts/nunito/nunito-v25-latin-200.svg new file mode 100644 index 0000000..d910c48 --- /dev/null +++ b/public/fonts/nunito/nunito-v25-latin-200.svg @@ -0,0 +1,411 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/fonts/nunito/nunito-v25-latin-200.ttf b/public/fonts/nunito/nunito-v25-latin-200.ttf new file mode 100644 index 0000000..03afdd9 Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-200.ttf differ diff --git a/public/fonts/nunito/nunito-v25-latin-200.woff b/public/fonts/nunito/nunito-v25-latin-200.woff new file mode 100644 index 0000000..4d444eb Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-200.woff differ diff --git a/public/fonts/nunito/nunito-v25-latin-200.woff2 b/public/fonts/nunito/nunito-v25-latin-200.woff2 new file mode 100644 index 0000000..af85fe6 Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-200.woff2 differ diff --git a/public/fonts/nunito/nunito-v25-latin-200italic.eot b/public/fonts/nunito/nunito-v25-latin-200italic.eot new file mode 100644 index 0000000..d9ceb61 Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-200italic.eot differ diff --git a/public/fonts/nunito/nunito-v25-latin-200italic.svg b/public/fonts/nunito/nunito-v25-latin-200italic.svg new file mode 100644 index 0000000..4eb4928 --- /dev/null +++ b/public/fonts/nunito/nunito-v25-latin-200italic.svg @@ -0,0 +1,420 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/fonts/nunito/nunito-v25-latin-200italic.ttf b/public/fonts/nunito/nunito-v25-latin-200italic.ttf new file mode 100644 index 0000000..0c4fe74 Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-200italic.ttf differ diff --git a/public/fonts/nunito/nunito-v25-latin-200italic.woff b/public/fonts/nunito/nunito-v25-latin-200italic.woff new file mode 100644 index 0000000..41f444c Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-200italic.woff differ diff --git a/public/fonts/nunito/nunito-v25-latin-200italic.woff2 b/public/fonts/nunito/nunito-v25-latin-200italic.woff2 new file mode 100644 index 0000000..0647a00 Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-200italic.woff2 differ diff --git a/public/fonts/nunito/nunito-v25-latin-300.eot b/public/fonts/nunito/nunito-v25-latin-300.eot new file mode 100644 index 0000000..4521824 Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-300.eot differ diff --git a/public/fonts/nunito/nunito-v25-latin-300.svg b/public/fonts/nunito/nunito-v25-latin-300.svg new file mode 100644 index 0000000..b475681 --- /dev/null +++ b/public/fonts/nunito/nunito-v25-latin-300.svg @@ -0,0 +1,412 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/fonts/nunito/nunito-v25-latin-300.ttf b/public/fonts/nunito/nunito-v25-latin-300.ttf new file mode 100644 index 0000000..d632423 Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-300.ttf differ diff --git a/public/fonts/nunito/nunito-v25-latin-300.woff b/public/fonts/nunito/nunito-v25-latin-300.woff new file mode 100644 index 0000000..ddb18a9 Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-300.woff differ diff --git a/public/fonts/nunito/nunito-v25-latin-300.woff2 b/public/fonts/nunito/nunito-v25-latin-300.woff2 new file mode 100644 index 0000000..04548e2 Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-300.woff2 differ diff --git a/public/fonts/nunito/nunito-v25-latin-300italic.eot b/public/fonts/nunito/nunito-v25-latin-300italic.eot new file mode 100644 index 0000000..3fdb81a Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-300italic.eot differ diff --git a/public/fonts/nunito/nunito-v25-latin-300italic.svg b/public/fonts/nunito/nunito-v25-latin-300italic.svg new file mode 100644 index 0000000..b6b34ad --- /dev/null +++ b/public/fonts/nunito/nunito-v25-latin-300italic.svg @@ -0,0 +1,424 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/fonts/nunito/nunito-v25-latin-300italic.ttf b/public/fonts/nunito/nunito-v25-latin-300italic.ttf new file mode 100644 index 0000000..793559b Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-300italic.ttf differ diff --git a/public/fonts/nunito/nunito-v25-latin-300italic.woff b/public/fonts/nunito/nunito-v25-latin-300italic.woff new file mode 100644 index 0000000..d98cec9 Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-300italic.woff differ diff --git a/public/fonts/nunito/nunito-v25-latin-300italic.woff2 b/public/fonts/nunito/nunito-v25-latin-300italic.woff2 new file mode 100644 index 0000000..0b43eef Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-300italic.woff2 differ diff --git a/public/fonts/nunito/nunito-v25-latin-500.eot b/public/fonts/nunito/nunito-v25-latin-500.eot new file mode 100644 index 0000000..19f6529 Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-500.eot differ diff --git a/public/fonts/nunito/nunito-v25-latin-500.svg b/public/fonts/nunito/nunito-v25-latin-500.svg new file mode 100644 index 0000000..0787083 --- /dev/null +++ b/public/fonts/nunito/nunito-v25-latin-500.svg @@ -0,0 +1,412 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/fonts/nunito/nunito-v25-latin-500.ttf b/public/fonts/nunito/nunito-v25-latin-500.ttf new file mode 100644 index 0000000..43f9a6e Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-500.ttf differ diff --git a/public/fonts/nunito/nunito-v25-latin-500.woff b/public/fonts/nunito/nunito-v25-latin-500.woff new file mode 100644 index 0000000..ea98a9c Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-500.woff differ diff --git a/public/fonts/nunito/nunito-v25-latin-500.woff2 b/public/fonts/nunito/nunito-v25-latin-500.woff2 new file mode 100644 index 0000000..96f3121 Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-500.woff2 differ diff --git a/public/fonts/nunito/nunito-v25-latin-500italic.eot b/public/fonts/nunito/nunito-v25-latin-500italic.eot new file mode 100644 index 0000000..2900924 Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-500italic.eot differ diff --git a/public/fonts/nunito/nunito-v25-latin-500italic.svg b/public/fonts/nunito/nunito-v25-latin-500italic.svg new file mode 100644 index 0000000..5d9b33a --- /dev/null +++ b/public/fonts/nunito/nunito-v25-latin-500italic.svg @@ -0,0 +1,423 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/fonts/nunito/nunito-v25-latin-500italic.ttf b/public/fonts/nunito/nunito-v25-latin-500italic.ttf new file mode 100644 index 0000000..b26e3ec Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-500italic.ttf differ diff --git a/public/fonts/nunito/nunito-v25-latin-500italic.woff b/public/fonts/nunito/nunito-v25-latin-500italic.woff new file mode 100644 index 0000000..c5dbc30 Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-500italic.woff differ diff --git a/public/fonts/nunito/nunito-v25-latin-500italic.woff2 b/public/fonts/nunito/nunito-v25-latin-500italic.woff2 new file mode 100644 index 0000000..16ec315 Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-500italic.woff2 differ diff --git a/public/fonts/nunito/nunito-v25-latin-600.eot b/public/fonts/nunito/nunito-v25-latin-600.eot new file mode 100644 index 0000000..ef722a5 Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-600.eot differ diff --git a/public/fonts/nunito/nunito-v25-latin-600.svg b/public/fonts/nunito/nunito-v25-latin-600.svg new file mode 100644 index 0000000..9b5274d --- /dev/null +++ b/public/fonts/nunito/nunito-v25-latin-600.svg @@ -0,0 +1,412 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/fonts/nunito/nunito-v25-latin-600.ttf b/public/fonts/nunito/nunito-v25-latin-600.ttf new file mode 100644 index 0000000..742de57 Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-600.ttf differ diff --git a/public/fonts/nunito/nunito-v25-latin-600.woff b/public/fonts/nunito/nunito-v25-latin-600.woff new file mode 100644 index 0000000..aa4b811 Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-600.woff differ diff --git a/public/fonts/nunito/nunito-v25-latin-600.woff2 b/public/fonts/nunito/nunito-v25-latin-600.woff2 new file mode 100644 index 0000000..5ed5e51 Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-600.woff2 differ diff --git a/public/fonts/nunito/nunito-v25-latin-600italic.eot b/public/fonts/nunito/nunito-v25-latin-600italic.eot new file mode 100644 index 0000000..8ddbc55 Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-600italic.eot differ diff --git a/public/fonts/nunito/nunito-v25-latin-600italic.svg b/public/fonts/nunito/nunito-v25-latin-600italic.svg new file mode 100644 index 0000000..1c6e8a7 --- /dev/null +++ b/public/fonts/nunito/nunito-v25-latin-600italic.svg @@ -0,0 +1,423 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/fonts/nunito/nunito-v25-latin-600italic.ttf b/public/fonts/nunito/nunito-v25-latin-600italic.ttf new file mode 100644 index 0000000..843d25d Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-600italic.ttf differ diff --git a/public/fonts/nunito/nunito-v25-latin-600italic.woff b/public/fonts/nunito/nunito-v25-latin-600italic.woff new file mode 100644 index 0000000..930a141 Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-600italic.woff differ diff --git a/public/fonts/nunito/nunito-v25-latin-600italic.woff2 b/public/fonts/nunito/nunito-v25-latin-600italic.woff2 new file mode 100644 index 0000000..2cf160d Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-600italic.woff2 differ diff --git a/public/fonts/nunito/nunito-v25-latin-700.eot b/public/fonts/nunito/nunito-v25-latin-700.eot new file mode 100644 index 0000000..c52964b Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-700.eot differ diff --git a/public/fonts/nunito/nunito-v25-latin-700.svg b/public/fonts/nunito/nunito-v25-latin-700.svg new file mode 100644 index 0000000..436a18e --- /dev/null +++ b/public/fonts/nunito/nunito-v25-latin-700.svg @@ -0,0 +1,414 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/fonts/nunito/nunito-v25-latin-700.ttf b/public/fonts/nunito/nunito-v25-latin-700.ttf new file mode 100644 index 0000000..04eb0d6 Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-700.ttf differ diff --git a/public/fonts/nunito/nunito-v25-latin-700.woff b/public/fonts/nunito/nunito-v25-latin-700.woff new file mode 100644 index 0000000..6048b67 Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-700.woff differ diff --git a/public/fonts/nunito/nunito-v25-latin-700.woff2 b/public/fonts/nunito/nunito-v25-latin-700.woff2 new file mode 100644 index 0000000..d0a5677 Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-700.woff2 differ diff --git a/public/fonts/nunito/nunito-v25-latin-700italic.eot b/public/fonts/nunito/nunito-v25-latin-700italic.eot new file mode 100644 index 0000000..4720926 Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-700italic.eot differ diff --git a/public/fonts/nunito/nunito-v25-latin-700italic.svg b/public/fonts/nunito/nunito-v25-latin-700italic.svg new file mode 100644 index 0000000..bd4a282 --- /dev/null +++ b/public/fonts/nunito/nunito-v25-latin-700italic.svg @@ -0,0 +1,426 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/fonts/nunito/nunito-v25-latin-700italic.ttf b/public/fonts/nunito/nunito-v25-latin-700italic.ttf new file mode 100644 index 0000000..36f29f1 Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-700italic.ttf differ diff --git a/public/fonts/nunito/nunito-v25-latin-700italic.woff b/public/fonts/nunito/nunito-v25-latin-700italic.woff new file mode 100644 index 0000000..036fa0b Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-700italic.woff differ diff --git a/public/fonts/nunito/nunito-v25-latin-700italic.woff2 b/public/fonts/nunito/nunito-v25-latin-700italic.woff2 new file mode 100644 index 0000000..d8bce57 Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-700italic.woff2 differ diff --git a/public/fonts/nunito/nunito-v25-latin-800.eot b/public/fonts/nunito/nunito-v25-latin-800.eot new file mode 100644 index 0000000..f6707fe Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-800.eot differ diff --git a/public/fonts/nunito/nunito-v25-latin-800.svg b/public/fonts/nunito/nunito-v25-latin-800.svg new file mode 100644 index 0000000..061c19f --- /dev/null +++ b/public/fonts/nunito/nunito-v25-latin-800.svg @@ -0,0 +1,416 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/fonts/nunito/nunito-v25-latin-800.ttf b/public/fonts/nunito/nunito-v25-latin-800.ttf new file mode 100644 index 0000000..73461a1 Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-800.ttf differ diff --git a/public/fonts/nunito/nunito-v25-latin-800.woff b/public/fonts/nunito/nunito-v25-latin-800.woff new file mode 100644 index 0000000..e82ecc7 Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-800.woff differ diff --git a/public/fonts/nunito/nunito-v25-latin-800.woff2 b/public/fonts/nunito/nunito-v25-latin-800.woff2 new file mode 100644 index 0000000..63fe567 Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-800.woff2 differ diff --git a/public/fonts/nunito/nunito-v25-latin-800italic.eot b/public/fonts/nunito/nunito-v25-latin-800italic.eot new file mode 100644 index 0000000..faa3dce Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-800italic.eot differ diff --git a/public/fonts/nunito/nunito-v25-latin-800italic.svg b/public/fonts/nunito/nunito-v25-latin-800italic.svg new file mode 100644 index 0000000..5973d8f --- /dev/null +++ b/public/fonts/nunito/nunito-v25-latin-800italic.svg @@ -0,0 +1,427 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/fonts/nunito/nunito-v25-latin-800italic.ttf b/public/fonts/nunito/nunito-v25-latin-800italic.ttf new file mode 100644 index 0000000..fc1d9c0 Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-800italic.ttf differ diff --git a/public/fonts/nunito/nunito-v25-latin-800italic.woff b/public/fonts/nunito/nunito-v25-latin-800italic.woff new file mode 100644 index 0000000..5116260 Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-800italic.woff differ diff --git a/public/fonts/nunito/nunito-v25-latin-800italic.woff2 b/public/fonts/nunito/nunito-v25-latin-800italic.woff2 new file mode 100644 index 0000000..4ce205d Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-800italic.woff2 differ diff --git a/public/fonts/nunito/nunito-v25-latin-900.eot b/public/fonts/nunito/nunito-v25-latin-900.eot new file mode 100644 index 0000000..a27136c Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-900.eot differ diff --git a/public/fonts/nunito/nunito-v25-latin-900.svg b/public/fonts/nunito/nunito-v25-latin-900.svg new file mode 100644 index 0000000..9fb30a1 --- /dev/null +++ b/public/fonts/nunito/nunito-v25-latin-900.svg @@ -0,0 +1,413 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/fonts/nunito/nunito-v25-latin-900.ttf b/public/fonts/nunito/nunito-v25-latin-900.ttf new file mode 100644 index 0000000..08769bc Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-900.ttf differ diff --git a/public/fonts/nunito/nunito-v25-latin-900.woff b/public/fonts/nunito/nunito-v25-latin-900.woff new file mode 100644 index 0000000..20724ad Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-900.woff differ diff --git a/public/fonts/nunito/nunito-v25-latin-900.woff2 b/public/fonts/nunito/nunito-v25-latin-900.woff2 new file mode 100644 index 0000000..0fbfe77 Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-900.woff2 differ diff --git a/public/fonts/nunito/nunito-v25-latin-900italic.eot b/public/fonts/nunito/nunito-v25-latin-900italic.eot new file mode 100644 index 0000000..639a3e2 Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-900italic.eot differ diff --git a/public/fonts/nunito/nunito-v25-latin-900italic.svg b/public/fonts/nunito/nunito-v25-latin-900italic.svg new file mode 100644 index 0000000..9520e26 --- /dev/null +++ b/public/fonts/nunito/nunito-v25-latin-900italic.svg @@ -0,0 +1,428 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/fonts/nunito/nunito-v25-latin-900italic.ttf b/public/fonts/nunito/nunito-v25-latin-900italic.ttf new file mode 100644 index 0000000..9ff98a8 Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-900italic.ttf differ diff --git a/public/fonts/nunito/nunito-v25-latin-900italic.woff b/public/fonts/nunito/nunito-v25-latin-900italic.woff new file mode 100644 index 0000000..3977342 Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-900italic.woff differ diff --git a/public/fonts/nunito/nunito-v25-latin-900italic.woff2 b/public/fonts/nunito/nunito-v25-latin-900italic.woff2 new file mode 100644 index 0000000..33edc2f Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-900italic.woff2 differ diff --git a/public/fonts/nunito/nunito-v25-latin-italic.eot b/public/fonts/nunito/nunito-v25-latin-italic.eot new file mode 100644 index 0000000..484f5a3 Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-italic.eot differ diff --git a/public/fonts/nunito/nunito-v25-latin-italic.svg b/public/fonts/nunito/nunito-v25-latin-italic.svg new file mode 100644 index 0000000..473eddd --- /dev/null +++ b/public/fonts/nunito/nunito-v25-latin-italic.svg @@ -0,0 +1,423 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/fonts/nunito/nunito-v25-latin-italic.ttf b/public/fonts/nunito/nunito-v25-latin-italic.ttf new file mode 100644 index 0000000..e3ab9c3 Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-italic.ttf differ diff --git a/public/fonts/nunito/nunito-v25-latin-italic.woff b/public/fonts/nunito/nunito-v25-latin-italic.woff new file mode 100644 index 0000000..e3d10e3 Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-italic.woff differ diff --git a/public/fonts/nunito/nunito-v25-latin-italic.woff2 b/public/fonts/nunito/nunito-v25-latin-italic.woff2 new file mode 100644 index 0000000..0017722 Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-italic.woff2 differ diff --git a/public/fonts/nunito/nunito-v25-latin-regular.eot b/public/fonts/nunito/nunito-v25-latin-regular.eot new file mode 100644 index 0000000..5db896b Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-regular.eot differ diff --git a/public/fonts/nunito/nunito-v25-latin-regular.svg b/public/fonts/nunito/nunito-v25-latin-regular.svg new file mode 100644 index 0000000..442a61b --- /dev/null +++ b/public/fonts/nunito/nunito-v25-latin-regular.svg @@ -0,0 +1,410 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/fonts/nunito/nunito-v25-latin-regular.ttf b/public/fonts/nunito/nunito-v25-latin-regular.ttf new file mode 100644 index 0000000..f9a7f72 Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-regular.ttf differ diff --git a/public/fonts/nunito/nunito-v25-latin-regular.woff b/public/fonts/nunito/nunito-v25-latin-regular.woff new file mode 100644 index 0000000..2df129c Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-regular.woff differ diff --git a/public/fonts/nunito/nunito-v25-latin-regular.woff2 b/public/fonts/nunito/nunito-v25-latin-regular.woff2 new file mode 100644 index 0000000..8b85e17 Binary files /dev/null and b/public/fonts/nunito/nunito-v25-latin-regular.woff2 differ diff --git a/public/fonts/roboto.css b/public/fonts/roboto.css new file mode 100644 index 0000000..0b6ecc8 --- /dev/null +++ b/public/fonts/roboto.css @@ -0,0 +1,156 @@ +/* roboto-100 - latin */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 100; + src: url('./roboto/roboto-v30-latin-100.eot'); /* IE9 Compat Modes */ + src: local(''), + url('./roboto/roboto-v30-latin-100.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('./roboto/roboto-v30-latin-100.woff2') format('woff2'), /* Super Modern Browsers */ + url('./roboto/roboto-v30-latin-100.woff') format('woff'), /* Modern Browsers */ + url('./roboto/roboto-v30-latin-100.ttf') format('truetype'), /* Safari, Android, iOS */ + url('./roboto/roboto-v30-latin-100.svg#Roboto') format('svg'); /* Legacy iOS */ +} +/* roboto-100italic - latin */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 100; + src: url('./roboto/roboto-v30-latin-100italic.eot'); /* IE9 Compat Modes */ + src: local(''), + url('./roboto/roboto-v30-latin-100italic.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('./roboto/roboto-v30-latin-100italic.woff2') format('woff2'), /* Super Modern Browsers */ + url('./roboto/roboto-v30-latin-100italic.woff') format('woff'), /* Modern Browsers */ + url('./roboto/roboto-v30-latin-100italic.ttf') format('truetype'), /* Safari, Android, iOS */ + url('./roboto/roboto-v30-latin-100italic.svg#Roboto') format('svg'); /* Legacy iOS */ +} +/* roboto-300 - latin */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + src: url('./roboto/roboto-v30-latin-300.eot'); /* IE9 Compat Modes */ + src: local(''), + url('./roboto/roboto-v30-latin-300.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('./roboto/roboto-v30-latin-300.woff2') format('woff2'), /* Super Modern Browsers */ + url('./roboto/roboto-v30-latin-300.woff') format('woff'), /* Modern Browsers */ + url('./roboto/roboto-v30-latin-300.ttf') format('truetype'), /* Safari, Android, iOS */ + url('./roboto/roboto-v30-latin-300.svg#Roboto') format('svg'); /* Legacy iOS */ +} +/* roboto-300italic - latin */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 300; + src: url('./roboto/roboto-v30-latin-300italic.eot'); /* IE9 Compat Modes */ + src: local(''), + url('./roboto/roboto-v30-latin-300italic.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('./roboto/roboto-v30-latin-300italic.woff2') format('woff2'), /* Super Modern Browsers */ + url('./roboto/roboto-v30-latin-300italic.woff') format('woff'), /* Modern Browsers */ + url('./roboto/roboto-v30-latin-300italic.ttf') format('truetype'), /* Safari, Android, iOS */ + url('./roboto/roboto-v30-latin-300italic.svg#Roboto') format('svg'); /* Legacy iOS */ +} +/* roboto-regular - latin */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: url('./roboto/roboto-v30-latin-regular.eot'); /* IE9 Compat Modes */ + src: local(''), + url('./roboto/roboto-v30-latin-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('./roboto/roboto-v30-latin-regular.woff2') format('woff2'), /* Super Modern Browsers */ + url('./roboto/roboto-v30-latin-regular.woff') format('woff'), /* Modern Browsers */ + url('./roboto/roboto-v30-latin-regular.ttf') format('truetype'), /* Safari, Android, iOS */ + url('./roboto/roboto-v30-latin-regular.svg#Roboto') format('svg'); /* Legacy iOS */ +} +/* roboto-italic - latin */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + src: url('./roboto/roboto-v30-latin-italic.eot'); /* IE9 Compat Modes */ + src: local(''), + url('./roboto/roboto-v30-latin-italic.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('./roboto/roboto-v30-latin-italic.woff2') format('woff2'), /* Super Modern Browsers */ + url('./roboto/roboto-v30-latin-italic.woff') format('woff'), /* Modern Browsers */ + url('./roboto/roboto-v30-latin-italic.ttf') format('truetype'), /* Safari, Android, iOS */ + url('./roboto/roboto-v30-latin-italic.svg#Roboto') format('svg'); /* Legacy iOS */ +} +/* roboto-500 - latin */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 500; + src: url('./roboto/roboto-v30-latin-500.eot'); /* IE9 Compat Modes */ + src: local(''), + url('./roboto/roboto-v30-latin-500.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('./roboto/roboto-v30-latin-500.woff2') format('woff2'), /* Super Modern Browsers */ + url('./roboto/roboto-v30-latin-500.woff') format('woff'), /* Modern Browsers */ + url('./roboto/roboto-v30-latin-500.ttf') format('truetype'), /* Safari, Android, iOS */ + url('./roboto/roboto-v30-latin-500.svg#Roboto') format('svg'); /* Legacy iOS */ +} +/* roboto-500italic - latin */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 500; + src: url('./roboto/roboto-v30-latin-500italic.eot'); /* IE9 Compat Modes */ + src: local(''), + url('./roboto/roboto-v30-latin-500italic.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('./roboto/roboto-v30-latin-500italic.woff2') format('woff2'), /* Super Modern Browsers */ + url('./roboto/roboto-v30-latin-500italic.woff') format('woff'), /* Modern Browsers */ + url('./roboto/roboto-v30-latin-500italic.ttf') format('truetype'), /* Safari, Android, iOS */ + url('./roboto/roboto-v30-latin-500italic.svg#Roboto') format('svg'); /* Legacy iOS */ +} +/* roboto-700 - latin */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + src: url('./roboto/roboto-v30-latin-700.eot'); /* IE9 Compat Modes */ + src: local(''), + url('./roboto/roboto-v30-latin-700.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('./roboto/roboto-v30-latin-700.woff2') format('woff2'), /* Super Modern Browsers */ + url('./roboto/roboto-v30-latin-700.woff') format('woff'), /* Modern Browsers */ + url('./roboto/roboto-v30-latin-700.ttf') format('truetype'), /* Safari, Android, iOS */ + url('./roboto/roboto-v30-latin-700.svg#Roboto') format('svg'); /* Legacy iOS */ +} +/* roboto-700italic - latin */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + src: url('./roboto/roboto-v30-latin-700italic.eot'); /* IE9 Compat Modes */ + src: local(''), + url('./roboto/roboto-v30-latin-700italic.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('./roboto/roboto-v30-latin-700italic.woff2') format('woff2'), /* Super Modern Browsers */ + url('./roboto/roboto-v30-latin-700italic.woff') format('woff'), /* Modern Browsers */ + url('./roboto/roboto-v30-latin-700italic.ttf') format('truetype'), /* Safari, Android, iOS */ + url('./roboto/roboto-v30-latin-700italic.svg#Roboto') format('svg'); /* Legacy iOS */ +} +/* roboto-900 - latin */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 900; + src: url('./roboto/roboto-v30-latin-900.eot'); /* IE9 Compat Modes */ + src: local(''), + url('./roboto/roboto-v30-latin-900.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('./roboto/roboto-v30-latin-900.woff2') format('woff2'), /* Super Modern Browsers */ + url('./roboto/roboto-v30-latin-900.woff') format('woff'), /* Modern Browsers */ + url('./roboto/roboto-v30-latin-900.ttf') format('truetype'), /* Safari, Android, iOS */ + url('./roboto/roboto-v30-latin-900.svg#Roboto') format('svg'); /* Legacy iOS */ +} +/* roboto-900italic - latin */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 900; + src: url('./roboto/roboto-v30-latin-900italic.eot'); /* IE9 Compat Modes */ + src: local(''), + url('./roboto/roboto-v30-latin-900italic.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('./roboto/roboto-v30-latin-900italic.woff2') format('woff2'), /* Super Modern Browsers */ + url('./roboto/roboto-v30-latin-900italic.woff') format('woff'), /* Modern Browsers */ + url('./roboto/roboto-v30-latin-900italic.ttf') format('truetype'), /* Safari, Android, iOS */ + url('./roboto/roboto-v30-latin-900italic.svg#Roboto') format('svg'); /* Legacy iOS */ +} \ No newline at end of file diff --git a/public/fonts/roboto/roboto-v30-latin-100.eot b/public/fonts/roboto/roboto-v30-latin-100.eot new file mode 100644 index 0000000..094a755 Binary files /dev/null and b/public/fonts/roboto/roboto-v30-latin-100.eot differ diff --git a/public/fonts/roboto/roboto-v30-latin-100.svg b/public/fonts/roboto/roboto-v30-latin-100.svg new file mode 100644 index 0000000..e8c8fc8 --- /dev/null +++ b/public/fonts/roboto/roboto-v30-latin-100.svg @@ -0,0 +1,313 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/fonts/roboto/roboto-v30-latin-100.ttf b/public/fonts/roboto/roboto-v30-latin-100.ttf new file mode 100644 index 0000000..7e9d45d Binary files /dev/null and b/public/fonts/roboto/roboto-v30-latin-100.ttf differ diff --git a/public/fonts/roboto/roboto-v30-latin-100.woff b/public/fonts/roboto/roboto-v30-latin-100.woff new file mode 100644 index 0000000..a815cf8 Binary files /dev/null and b/public/fonts/roboto/roboto-v30-latin-100.woff differ diff --git a/public/fonts/roboto/roboto-v30-latin-100.woff2 b/public/fonts/roboto/roboto-v30-latin-100.woff2 new file mode 100644 index 0000000..71c9bb7 Binary files /dev/null and b/public/fonts/roboto/roboto-v30-latin-100.woff2 differ diff --git a/public/fonts/roboto/roboto-v30-latin-100italic.eot b/public/fonts/roboto/roboto-v30-latin-100italic.eot new file mode 100644 index 0000000..6353d2c Binary files /dev/null and b/public/fonts/roboto/roboto-v30-latin-100italic.eot differ diff --git a/public/fonts/roboto/roboto-v30-latin-100italic.svg b/public/fonts/roboto/roboto-v30-latin-100italic.svg new file mode 100644 index 0000000..c51ce87 --- /dev/null +++ b/public/fonts/roboto/roboto-v30-latin-100italic.svg @@ -0,0 +1,332 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/fonts/roboto/roboto-v30-latin-100italic.ttf b/public/fonts/roboto/roboto-v30-latin-100italic.ttf new file mode 100644 index 0000000..9b185aa Binary files /dev/null and b/public/fonts/roboto/roboto-v30-latin-100italic.ttf differ diff --git a/public/fonts/roboto/roboto-v30-latin-100italic.woff b/public/fonts/roboto/roboto-v30-latin-100italic.woff new file mode 100644 index 0000000..5c0c285 Binary files /dev/null and b/public/fonts/roboto/roboto-v30-latin-100italic.woff differ diff --git a/public/fonts/roboto/roboto-v30-latin-100italic.woff2 b/public/fonts/roboto/roboto-v30-latin-100italic.woff2 new file mode 100644 index 0000000..4ccadd1 Binary files /dev/null and b/public/fonts/roboto/roboto-v30-latin-100italic.woff2 differ diff --git a/public/fonts/roboto/roboto-v30-latin-300.eot b/public/fonts/roboto/roboto-v30-latin-300.eot new file mode 100644 index 0000000..052b15c Binary files /dev/null and b/public/fonts/roboto/roboto-v30-latin-300.eot differ diff --git a/public/fonts/roboto/roboto-v30-latin-300.svg b/public/fonts/roboto/roboto-v30-latin-300.svg new file mode 100644 index 0000000..4ded944 --- /dev/null +++ b/public/fonts/roboto/roboto-v30-latin-300.svg @@ -0,0 +1,312 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/fonts/roboto/roboto-v30-latin-300.ttf b/public/fonts/roboto/roboto-v30-latin-300.ttf new file mode 100644 index 0000000..0ddede8 Binary files /dev/null and b/public/fonts/roboto/roboto-v30-latin-300.ttf differ diff --git a/public/fonts/roboto/roboto-v30-latin-300.woff b/public/fonts/roboto/roboto-v30-latin-300.woff new file mode 100644 index 0000000..36979ae Binary files /dev/null and b/public/fonts/roboto/roboto-v30-latin-300.woff differ diff --git a/public/fonts/roboto/roboto-v30-latin-300.woff2 b/public/fonts/roboto/roboto-v30-latin-300.woff2 new file mode 100644 index 0000000..6068138 Binary files /dev/null and b/public/fonts/roboto/roboto-v30-latin-300.woff2 differ diff --git a/public/fonts/roboto/roboto-v30-latin-300italic.eot b/public/fonts/roboto/roboto-v30-latin-300italic.eot new file mode 100644 index 0000000..bad3b49 Binary files /dev/null and b/public/fonts/roboto/roboto-v30-latin-300italic.eot differ diff --git a/public/fonts/roboto/roboto-v30-latin-300italic.svg b/public/fonts/roboto/roboto-v30-latin-300italic.svg new file mode 100644 index 0000000..758402b --- /dev/null +++ b/public/fonts/roboto/roboto-v30-latin-300italic.svg @@ -0,0 +1,329 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/fonts/roboto/roboto-v30-latin-300italic.ttf b/public/fonts/roboto/roboto-v30-latin-300italic.ttf new file mode 100644 index 0000000..a0423bc Binary files /dev/null and b/public/fonts/roboto/roboto-v30-latin-300italic.ttf differ diff --git a/public/fonts/roboto/roboto-v30-latin-300italic.woff b/public/fonts/roboto/roboto-v30-latin-300italic.woff new file mode 100644 index 0000000..f52f767 Binary files /dev/null and b/public/fonts/roboto/roboto-v30-latin-300italic.woff differ diff --git a/public/fonts/roboto/roboto-v30-latin-300italic.woff2 b/public/fonts/roboto/roboto-v30-latin-300italic.woff2 new file mode 100644 index 0000000..22c57b0 Binary files /dev/null and b/public/fonts/roboto/roboto-v30-latin-300italic.woff2 differ diff --git a/public/fonts/roboto/roboto-v30-latin-500.eot b/public/fonts/roboto/roboto-v30-latin-500.eot new file mode 100644 index 0000000..fec0361 Binary files /dev/null and b/public/fonts/roboto/roboto-v30-latin-500.eot differ diff --git a/public/fonts/roboto/roboto-v30-latin-500.svg b/public/fonts/roboto/roboto-v30-latin-500.svg new file mode 100644 index 0000000..67eecf4 --- /dev/null +++ b/public/fonts/roboto/roboto-v30-latin-500.svg @@ -0,0 +1,305 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/fonts/roboto/roboto-v30-latin-500.ttf b/public/fonts/roboto/roboto-v30-latin-500.ttf new file mode 100644 index 0000000..4f515e2 Binary files /dev/null and b/public/fonts/roboto/roboto-v30-latin-500.ttf differ diff --git a/public/fonts/roboto/roboto-v30-latin-500.woff b/public/fonts/roboto/roboto-v30-latin-500.woff new file mode 100644 index 0000000..d39bb52 Binary files /dev/null and b/public/fonts/roboto/roboto-v30-latin-500.woff differ diff --git a/public/fonts/roboto/roboto-v30-latin-500.woff2 b/public/fonts/roboto/roboto-v30-latin-500.woff2 new file mode 100644 index 0000000..29342a8 Binary files /dev/null and b/public/fonts/roboto/roboto-v30-latin-500.woff2 differ diff --git a/public/fonts/roboto/roboto-v30-latin-500italic.eot b/public/fonts/roboto/roboto-v30-latin-500italic.eot new file mode 100644 index 0000000..8eb31ad Binary files /dev/null and b/public/fonts/roboto/roboto-v30-latin-500italic.eot differ diff --git a/public/fonts/roboto/roboto-v30-latin-500italic.svg b/public/fonts/roboto/roboto-v30-latin-500italic.svg new file mode 100644 index 0000000..bed50dc --- /dev/null +++ b/public/fonts/roboto/roboto-v30-latin-500italic.svg @@ -0,0 +1,326 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/fonts/roboto/roboto-v30-latin-500italic.ttf b/public/fonts/roboto/roboto-v30-latin-500italic.ttf new file mode 100644 index 0000000..18e0f3c Binary files /dev/null and b/public/fonts/roboto/roboto-v30-latin-500italic.ttf differ diff --git a/public/fonts/roboto/roboto-v30-latin-500italic.woff b/public/fonts/roboto/roboto-v30-latin-500italic.woff new file mode 100644 index 0000000..b6ad1c5 Binary files /dev/null and b/public/fonts/roboto/roboto-v30-latin-500italic.woff differ diff --git a/public/fonts/roboto/roboto-v30-latin-500italic.woff2 b/public/fonts/roboto/roboto-v30-latin-500italic.woff2 new file mode 100644 index 0000000..ae1933f Binary files /dev/null and b/public/fonts/roboto/roboto-v30-latin-500italic.woff2 differ diff --git a/public/fonts/roboto/roboto-v30-latin-700.eot b/public/fonts/roboto/roboto-v30-latin-700.eot new file mode 100644 index 0000000..701f742 Binary files /dev/null and b/public/fonts/roboto/roboto-v30-latin-700.eot differ diff --git a/public/fonts/roboto/roboto-v30-latin-700.svg b/public/fonts/roboto/roboto-v30-latin-700.svg new file mode 100644 index 0000000..11db87d --- /dev/null +++ b/public/fonts/roboto/roboto-v30-latin-700.svg @@ -0,0 +1,309 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/fonts/roboto/roboto-v30-latin-700.ttf b/public/fonts/roboto/roboto-v30-latin-700.ttf new file mode 100644 index 0000000..59830da Binary files /dev/null and b/public/fonts/roboto/roboto-v30-latin-700.ttf differ diff --git a/public/fonts/roboto/roboto-v30-latin-700.woff b/public/fonts/roboto/roboto-v30-latin-700.woff new file mode 100644 index 0000000..db0012d Binary files /dev/null and b/public/fonts/roboto/roboto-v30-latin-700.woff differ diff --git a/public/fonts/roboto/roboto-v30-latin-700.woff2 b/public/fonts/roboto/roboto-v30-latin-700.woff2 new file mode 100644 index 0000000..771fbec Binary files /dev/null and b/public/fonts/roboto/roboto-v30-latin-700.woff2 differ diff --git a/public/fonts/roboto/roboto-v30-latin-700italic.eot b/public/fonts/roboto/roboto-v30-latin-700italic.eot new file mode 100644 index 0000000..eb39518 Binary files /dev/null and b/public/fonts/roboto/roboto-v30-latin-700italic.eot differ diff --git a/public/fonts/roboto/roboto-v30-latin-700italic.svg b/public/fonts/roboto/roboto-v30-latin-700italic.svg new file mode 100644 index 0000000..050bee0 --- /dev/null +++ b/public/fonts/roboto/roboto-v30-latin-700italic.svg @@ -0,0 +1,325 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/fonts/roboto/roboto-v30-latin-700italic.ttf b/public/fonts/roboto/roboto-v30-latin-700italic.ttf new file mode 100644 index 0000000..9552181 Binary files /dev/null and b/public/fonts/roboto/roboto-v30-latin-700italic.ttf differ diff --git a/public/fonts/roboto/roboto-v30-latin-700italic.woff b/public/fonts/roboto/roboto-v30-latin-700italic.woff new file mode 100644 index 0000000..17efecc Binary files /dev/null and b/public/fonts/roboto/roboto-v30-latin-700italic.woff differ diff --git a/public/fonts/roboto/roboto-v30-latin-700italic.woff2 b/public/fonts/roboto/roboto-v30-latin-700italic.woff2 new file mode 100644 index 0000000..a56a6ed Binary files /dev/null and b/public/fonts/roboto/roboto-v30-latin-700italic.woff2 differ diff --git a/public/fonts/roboto/roboto-v30-latin-900.eot b/public/fonts/roboto/roboto-v30-latin-900.eot new file mode 100644 index 0000000..99a3f75 Binary files /dev/null and b/public/fonts/roboto/roboto-v30-latin-900.eot differ diff --git a/public/fonts/roboto/roboto-v30-latin-900.svg b/public/fonts/roboto/roboto-v30-latin-900.svg new file mode 100644 index 0000000..9efdf4e --- /dev/null +++ b/public/fonts/roboto/roboto-v30-latin-900.svg @@ -0,0 +1,302 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/fonts/roboto/roboto-v30-latin-900.ttf b/public/fonts/roboto/roboto-v30-latin-900.ttf new file mode 100644 index 0000000..bc31a87 Binary files /dev/null and b/public/fonts/roboto/roboto-v30-latin-900.ttf differ diff --git a/public/fonts/roboto/roboto-v30-latin-900.woff b/public/fonts/roboto/roboto-v30-latin-900.woff new file mode 100644 index 0000000..04cbe94 Binary files /dev/null and b/public/fonts/roboto/roboto-v30-latin-900.woff differ diff --git a/public/fonts/roboto/roboto-v30-latin-900.woff2 b/public/fonts/roboto/roboto-v30-latin-900.woff2 new file mode 100644 index 0000000..067cb32 Binary files /dev/null and b/public/fonts/roboto/roboto-v30-latin-900.woff2 differ diff --git a/public/fonts/roboto/roboto-v30-latin-900italic.eot b/public/fonts/roboto/roboto-v30-latin-900italic.eot new file mode 100644 index 0000000..a5893d1 Binary files /dev/null and b/public/fonts/roboto/roboto-v30-latin-900italic.eot differ diff --git a/public/fonts/roboto/roboto-v30-latin-900italic.svg b/public/fonts/roboto/roboto-v30-latin-900italic.svg new file mode 100644 index 0000000..f8f5ab3 --- /dev/null +++ b/public/fonts/roboto/roboto-v30-latin-900italic.svg @@ -0,0 +1,324 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/fonts/roboto/roboto-v30-latin-900italic.ttf b/public/fonts/roboto/roboto-v30-latin-900italic.ttf new file mode 100644 index 0000000..46ff742 Binary files /dev/null and b/public/fonts/roboto/roboto-v30-latin-900italic.ttf differ diff --git a/public/fonts/roboto/roboto-v30-latin-900italic.woff b/public/fonts/roboto/roboto-v30-latin-900italic.woff new file mode 100644 index 0000000..4d7794b Binary files /dev/null and b/public/fonts/roboto/roboto-v30-latin-900italic.woff differ diff --git a/public/fonts/roboto/roboto-v30-latin-900italic.woff2 b/public/fonts/roboto/roboto-v30-latin-900italic.woff2 new file mode 100644 index 0000000..59cab0f Binary files /dev/null and b/public/fonts/roboto/roboto-v30-latin-900italic.woff2 differ diff --git a/public/fonts/roboto/roboto-v30-latin-italic.eot b/public/fonts/roboto/roboto-v30-latin-italic.eot new file mode 100644 index 0000000..ee2f1ef Binary files /dev/null and b/public/fonts/roboto/roboto-v30-latin-italic.eot differ diff --git a/public/fonts/roboto/roboto-v30-latin-italic.svg b/public/fonts/roboto/roboto-v30-latin-italic.svg new file mode 100644 index 0000000..4d59797 --- /dev/null +++ b/public/fonts/roboto/roboto-v30-latin-italic.svg @@ -0,0 +1,323 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/fonts/roboto/roboto-v30-latin-italic.ttf b/public/fonts/roboto/roboto-v30-latin-italic.ttf new file mode 100644 index 0000000..add4a6e Binary files /dev/null and b/public/fonts/roboto/roboto-v30-latin-italic.ttf differ diff --git a/public/fonts/roboto/roboto-v30-latin-italic.woff b/public/fonts/roboto/roboto-v30-latin-italic.woff new file mode 100644 index 0000000..ebee16b Binary files /dev/null and b/public/fonts/roboto/roboto-v30-latin-italic.woff differ diff --git a/public/fonts/roboto/roboto-v30-latin-italic.woff2 b/public/fonts/roboto/roboto-v30-latin-italic.woff2 new file mode 100644 index 0000000..e1b7a79 Binary files /dev/null and b/public/fonts/roboto/roboto-v30-latin-italic.woff2 differ diff --git a/public/fonts/roboto/roboto-v30-latin-regular.eot b/public/fonts/roboto/roboto-v30-latin-regular.eot new file mode 100644 index 0000000..c244b08 Binary files /dev/null and b/public/fonts/roboto/roboto-v30-latin-regular.eot differ diff --git a/public/fonts/roboto/roboto-v30-latin-regular.svg b/public/fonts/roboto/roboto-v30-latin-regular.svg new file mode 100644 index 0000000..627f5a3 --- /dev/null +++ b/public/fonts/roboto/roboto-v30-latin-regular.svg @@ -0,0 +1,308 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/fonts/roboto/roboto-v30-latin-regular.ttf b/public/fonts/roboto/roboto-v30-latin-regular.ttf new file mode 100644 index 0000000..d0e6325 Binary files /dev/null and b/public/fonts/roboto/roboto-v30-latin-regular.ttf differ diff --git a/public/fonts/roboto/roboto-v30-latin-regular.woff b/public/fonts/roboto/roboto-v30-latin-regular.woff new file mode 100644 index 0000000..9eaa94f Binary files /dev/null and b/public/fonts/roboto/roboto-v30-latin-regular.woff differ diff --git a/public/fonts/roboto/roboto-v30-latin-regular.woff2 b/public/fonts/roboto/roboto-v30-latin-regular.woff2 new file mode 100644 index 0000000..020729e Binary files /dev/null and b/public/fonts/roboto/roboto-v30-latin-regular.woff2 differ diff --git a/resources/views/admin/modal/company-service.blade.php b/resources/views/admin/modal/company-service.blade.php index 058334f..9257b52 100755 --- a/resources/views/admin/modal/company-service.blade.php +++ b/resources/views/admin/modal/company-service.blade.php @@ -17,7 +17,7 @@
- {{ Form::textarea('description', $value->description, array('Beschreibung'=>__('Beschreibung'), 'class'=>'form-control', 'rows'=>2)) }} + {{ Form::textarea('description', $value->description, array('placeholder'=>__('Beschreibung'), 'class'=>'form-control', 'rows'=>2)) }}
diff --git a/resources/views/admin/modal/country-service.blade.php b/resources/views/admin/modal/country-service.blade.php index 10ed8e5..21c6cdd 100755 --- a/resources/views/admin/modal/country-service.blade.php +++ b/resources/views/admin/modal/country-service.blade.php @@ -17,7 +17,7 @@
- {{ Form::textarea('description', $value->description, array('Beschreibung'=>__('Beschreibung'), 'class'=>'form-control', 'rows'=>2)) }} + {{ Form::textarea('description', $value->description, array('placeholder'=>__('Beschreibung'), 'class'=>'form-control', 'rows'=>2)) }}
diff --git a/resources/views/admin/modal/provider-service.blade.php b/resources/views/admin/modal/provider-service.blade.php index e9bc2da..29aa948 100755 --- a/resources/views/admin/modal/provider-service.blade.php +++ b/resources/views/admin/modal/provider-service.blade.php @@ -17,7 +17,7 @@
- {{ Form::textarea('description', $value->description, array('Beschreibung'=>__('Beschreibung'), 'class'=>'form-control', 'rows'=>2)) }} + {{ Form::textarea('description', $value->description, array('placeholder'=>__('Beschreibung'), 'class'=>'form-control', 'rows'=>2)) }}
diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php index 6dba26c..ce2d4aa 100644 --- a/resources/views/layouts/app.blade.php +++ b/resources/views/layouts/app.blade.php @@ -14,8 +14,8 @@ - - + + diff --git a/resources/views/layouts/application.blade.php b/resources/views/layouts/application.blade.php index 01724fc..231281b 100755 --- a/resources/views/layouts/application.blade.php +++ b/resources/views/layouts/application.blade.php @@ -11,7 +11,7 @@ {{ config('app.name') }} - + diff --git a/resources/views/layouts/auth.blade.php b/resources/views/layouts/auth.blade.php index 47be305..d2015e9 100755 --- a/resources/views/layouts/auth.blade.php +++ b/resources/views/layouts/auth.blade.php @@ -12,7 +12,7 @@ - + diff --git a/resources/views/layouts/includes/layout-sidenav.blade.php b/resources/views/layouts/includes/layout-sidenav.blade.php index 66ac1b2..bb834e3 100755 --- a/resources/views/layouts/includes/layout-sidenav.blade.php +++ b/resources/views/layouts/includes/layout-sidenav.blade.php @@ -414,30 +414,8 @@ @if(Auth::user()->isSySAdmin())
  • SYSADMIN
  • - -
  • - - -
    {{ __('Tools') }}
    -
    - - +
  • +
    Tools
  • @endif diff --git a/resources/views/sys/index.blade.php b/resources/views/sys/index.blade.php new file mode 100644 index 0000000..6f4989f --- /dev/null +++ b/resources/views/sys/index.blade.php @@ -0,0 +1,19 @@ +@extends('layouts.layout-2') + +@section('content') + + + +@endsection \ No newline at end of file diff --git a/resources/views/sys/tools/reimport b/resources/views/sys/tools/reimport new file mode 100644 index 0000000..1a97ede --- /dev/null +++ b/resources/views/sys/tools/reimport @@ -0,0 +1,75 @@ +@extends('layouts.layout-2') + +@section('content') + + @if ($errors->any()) +
    +
    +
    +
      + @foreach ($errors->all() as $error) +
    • {{ $error }}
    • + @endforeach +
    +
    +
    +
    + @endif + + +

    + SysAdmin Kundenhoheit prüfen +

    + + {!! Form::open(['url' => route('sysadmin_tool_store', ['customers']), 'class' => '']) !!} +
    + + {{--
    + + + + + + + + +
    --}} + + @if(count($values)>0) +
    + +
    + + + + + + + + + + + + + @foreach($values as $shopping_user) + + + + + + + + + @endforeach + +
    ID{{__('Mail')}}{{__('is like')}}{{__('OrderID')}}{{__('txaction')}}{{__('Action')}}
    {{$shopping_user->id}}{{$shopping_user->billing_email}}{{$shopping_user->is_like}}@if($shopping_user->shopping_order){{$shopping_user->shopping_order->id}}@endif@if($shopping_user->shopping_order){{$shopping_user->shopping_order->txaction}}@endif
    + +
    +
    + @endif + +
    + {!! Form::close() !!} + +@endsection + diff --git a/resources/views/sys/tools/reimport.blade.php b/resources/views/sys/tools/reimport.blade.php new file mode 100644 index 0000000..014104d --- /dev/null +++ b/resources/views/sys/tools/reimport.blade.php @@ -0,0 +1,71 @@ +@extends('layouts.layout-2') + +@section('content') + + @if ($errors->any()) +
    +
    +
    +
      + @foreach ($errors->all() as $error) +
    • {{ $error }}
    • + @endforeach +
    +
    +
    +
    + @endif + + +

    + SysAdmin ReImport TravelBooking +

    + + {!! Form::open(['url' => route('sysadmin_tool_store', ['reimport']), 'class' => '']) !!} +
    + + {{--
    + + + + + + + + +
    --}} + + @if(count($values)>0) +
    +
    + + + + + + + + + + + + @foreach($values as $value) + + + + + + + + @endforeach + +
    IDcrm_booking_idfirst_namelast_nameAction
    {{$value->id}}{{$value->crm_booking_id}}{{$value->first_name}}{{$value->last_name}}
    +
    +
    + @endif + +
    + {!! Form::close() !!} + +@endsection + diff --git a/resources/views/travel/program/_details.blade.php b/resources/views/travel/program/_details.blade.php index b921ae4..6ad6786 100644 --- a/resources/views/travel/program/_details.blade.php +++ b/resources/views/travel/program/_details.blade.php @@ -12,7 +12,7 @@
    {{ Form::text('deposit_percent', $program->deposit_percent, array('class'=>'form-control', 'id'=>'deposit_percent')) }}
    @@ -43,12 +43,21 @@ -
    +
    {{ Form::select('generalnote', \App\Services\Model::getTravelGerneralNotesArray(true) , $program->generalnote, array('class'=>'custom-select', 'id'=>'generalnote')) }}
    - - + +
    +
    + + {{ Form::textarea('payment_conditions', $program->payment_conditions, array('placeholder'=>__('Anzahlungsbedingungen'), 'class'=>'form-control autoExpand', 'rows'=>1)) }} +

    Default Text unter: Admin -> Inhalte -> Allgemein (anzahlungsbedingungen)

    + {{ App\Models\CMSContent::getContentBySlug('anzahlungsbedingungen') }} +
    +
      diff --git a/resources/views/travel/program/index.blade.php b/resources/views/travel/program/index.blade.php index da2c4f6..ec159a7 100755 --- a/resources/views/travel/program/index.blade.php +++ b/resources/views/travel/program/index.blade.php @@ -15,7 +15,10 @@   {{__('Programm')}} {{__('Code')}} - {{-- {{__('Keywords')}} --}} + {{__('Reiseland')}} + {{__('Dauer')}} + {{__('Wochentage')}} + {{__('Saison')}} {{__('Vorlage')}} {{__('Status')}} @@ -32,17 +35,31 @@ {{ $value->program_code }} - {{-- - {{ $value->program_code }} + @if($value->category_id) + {{ $value->travel_program_category->name }} + @endif - --}} - + + {{ $value->program_duration }} + + + {{ HTMLHelper::getWeekdaysString($value->getWeekdaysArray(), true) }} + + + @if($value->is_seasonal) + + @else + + @endif + + @if($value->hasTravelProgramDrafts()) @else @endif + @if($value->status) diff --git a/routes/web.php b/routes/web.php index 8f9fffe..9f5b1ba 100755 --- a/routes/web.php +++ b/routes/web.php @@ -492,21 +492,9 @@ Route::group(['middleware' => ['superadmin', '2fa']], function() { //login pages for sysadmin Route::group(['middleware' => ['sysadmin', '2fa']], function() { - Route::get('/sysadmin/tools/content_links', 'SyS\Tools\ContentLinkController@index')->name('sysadmin_tools_content_links'); - Route::post('/sysadmin/tools/content_links', 'SyS\Tools\ContentLinkController@store')->name('sysadmin_tools_content_links'); - - Route::get('/sysadmin/tools/tree', 'SyS\Tools\ContentLinkController@tree')->name('sysadmin_tools_tree'); - Route::post('/sysadmin/tools/tree', 'SyS\Tools\ContentLinkController@treeStore')->name('sysadmin_tools_tree'); - - Route::get('/sysadmin/tools/clean_tree_code', 'SyS\Tools\ContentLinkController@cleanTreeCode')->name('sysadmin_tools_clean_tree_code'); - Route::post('/sysadmin/tools/clean_tree_code', 'SyS\Tools\ContentLinkController@cleanTreeCodeStore')->name('sysadmin_tools_clean_tree_code'); - - Route::get('/sysadmin/tools/media_insert', 'SyS\Tools\ContentLinkController@mediaInsert')->name('sysadmin_tools_media_insert'); - Route::post('/sysadmin/tools/media_insert', 'SyS\Tools\ContentLinkController@mediaInsertStore')->name('sysadmin_tools_media_insert'); - - Route::get('/sysadmin/tools/import', 'SyS\Tools\ContentLinkController@import')->name('sysadmin_tools_import'); - Route::post('/sysadmin/tools/import', 'SyS\Tools\ContentLinkController@importStore')->name('sysadmin_tools_import'); - + Route::get('/sysadmin/tools', 'SyS\SysController@index')->name('sysadmin_tools'); + Route::get('/sysadmin/tool/{tool}', 'SyS\SysController@tool')->name('sysadmin_tool'); + Route::post('/sysadmin/tool/store/{tool}', 'SyS\SysController@store')->name('sysadmin_tool_store'); });