diff --git a/.env.example b/.env.example index 7af9f33..be239e6 100644 --- a/.env.example +++ b/.env.example @@ -1,9 +1,10 @@ APP_NAME=Laravel -APP_ENV=local +APP_ENV=production APP_KEY= APP_DEBUG=true APP_URL=http://localhost APP_LOCALE=de +APP_HTTPS=true LOG_CHANNEL=stack LOG_LEVEL=debug @@ -54,3 +55,4 @@ SERVERCOW_API_URL=https://api.servercow.de/dns/v1/domains/ SERVERCOW_API_USER= SERVERCOW_API_PASS= RECORD_FETCH_LIMIT_MINUTES=20 +FETCH_RECORDS_AFTER_CHANGE=true diff --git a/app/Http/Controllers/RecordController.php b/app/Http/Controllers/RecordController.php index 9e05610..745a506 100644 --- a/app/Http/Controllers/RecordController.php +++ b/app/Http/Controllers/RecordController.php @@ -97,8 +97,6 @@ class RecordController extends Controller $aReturn = $request->json(); - dd($aReturn); - if (array_key_exists("error", $aReturn)) { return ReturnController::returnWithError(__("messages.error_saving_record", ["error" => $aReturn["error"]])); } @@ -106,7 +104,9 @@ class RecordController extends Controller return ReturnController::returnWithError(__("messages.error_saving_record", ["error" => $e->getMessage()])); } - $this->getNewRecordsForDomain($sDomainName, $aData["domain"]); + if (env('FETCH_RECORDS_AFTER_CHANGE')) { + $this->getNewRecordsForDomain($sDomainName, $aData["domain"]); + } return ReturnController::returnWithSuccess(__("messages.suc_saving_record")); } @@ -140,7 +140,9 @@ class RecordController extends Controller return ReturnController::returnWithError(__("messages.error_deleting_record", ["error" => $e->getMessage()])); } - $this->getNewRecordsForDomain($aData["domain_name"], $aData["domain_id"]); + if (env('FETCH_RECORDS_AFTER_CHANGE')) { + $this->getNewRecordsForDomain($aData["domain_name"], $aData["domain_id"]); + } return ReturnController::returnWithSuccess(__("messages.suc_deleting_record", ["record" => $aData["name"]])); } @@ -176,7 +178,9 @@ class RecordController extends Controller return ReturnController::returnWithError(__("messages.error_editing_record", ["error" => $e->getMessage()])); } - $this->getNewRecordsForDomain($oRecord->domain->name, $oRecord->domain->id); + if (env('FETCH_RECORDS_AFTER_CHANGE')) { + $this->getNewRecordsForDomain($oRecord->domain->name, $oRecord->domain->id); + } return ReturnController::returnWithSuccess(__("messages.suc_editing_record")); } @@ -186,10 +190,10 @@ class RecordController extends Controller try { $this->getNewRecordsForDomain($sDomainName, $iDomainId); } catch (\Exception $e) { - return ReturnController::returnWithError(__("messages.error_fetching_records", ["error" => $e->getMessage()])); + return ReturnController::returnWithError(__("messages.error_fetching_records", ["error" => $e->getMessage()]), "", false, $iDomainId); } - return ReturnController::returnWithSuccess(__("messages.suc_fetching_records", ["domain" => $sDomainName])); + return ReturnController::returnWithSuccess(__("messages.suc_fetching_records", ["domain" => $sDomainName]), "", false, $iDomainId); } public function getNewRecordsForDomain($sDomainName, $iDomainId) diff --git a/app/Http/Controllers/ReturnController.php b/app/Http/Controllers/ReturnController.php index fffa8e4..7301ae5 100644 --- a/app/Http/Controllers/ReturnController.php +++ b/app/Http/Controllers/ReturnController.php @@ -6,7 +6,7 @@ use Illuminate\Support\Facades\Session; class ReturnController extends Controller { - public static function returnWithSuccess($message, $target = "", $to_route = false) + public static function returnWithSuccess($message, $target = "", $to_route = false, $iHashId = null) { Session::flash('Success_Message', $message); @@ -14,6 +14,10 @@ class ReturnController extends Controller return redirect("/" . $_POST["hash"]); } + if ($iHashId) { + return redirect("/" . "#domain-" . $iHashId); + } + if ($target == "") { return redirect()->back(); } else { @@ -28,7 +32,7 @@ class ReturnController extends Controller } } - public static function returnWithError($error, $target = "", $with_input = false) + public static function returnWithError($error, $target = "", $with_input = false, $iHashId = null) { Session::flash('Error_Message', $error); @@ -36,6 +40,10 @@ class ReturnController extends Controller return redirect("/" . $_POST["hash"]); } + if ($iHashId) { + return redirect("/" . "#domain-" . $iHashId); + } + if ($target == "") { switch ($with_input) { case false: diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index ee8ca5b..345317a 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -23,6 +23,8 @@ class AppServiceProvider extends ServiceProvider */ public function boot() { - // + if (env('APP_HTTPS') == "true") { + \URL::forceScheme('https'); + } } } diff --git a/public/js/main.js b/public/js/main.js index 41d268c..d87fd7c 100644 --- a/public/js/main.js +++ b/public/js/main.js @@ -6,6 +6,26 @@ $(() => { langName = "german"; } + let hash = document.location.hash; + let prefix = "#domain-"; + let panelPrefix = "#domain-panel-"; + let hashID = hash.replace(prefix, ""); + + if (hash) { + $("#select_domain").val(hashID); + $("[id^=record-hash]").val(prefix + hashID); + + $(".domain-panel").each(function () { + $(this).removeClass("is-active"); + $(this).addClass("is-hidden"); + }); + + $(panelPrefix + hashID).addClass("is-active"); + $(panelPrefix + hashID).removeClass("is-hidden"); + + $("#form-add-record #domain").val(hashID); + } + $("#mainBurger").on("click", function () { let burgerIcon = $(this); let menu = $("#mainNavbar"); @@ -83,6 +103,7 @@ $(() => { $("#select_domain").on("change", function () { let domainId = $(this).val(); + window.location.hash = prefix + domainId; $(".domain-panel").each(function () { if ($(this).hasClass("domain-panel-" + domainId)) { diff --git a/resources/views/home.blade.php b/resources/views/home.blade.php index 8c3023f..c0261a3 100644 --- a/resources/views/home.blade.php +++ b/resources/views/home.blade.php @@ -25,7 +25,7 @@
@foreach($domains as $domain) -