From dae6cd149c316c1b566f56db4b7ff3d69d463ada Mon Sep 17 00:00:00 2001 From: Aria <aria@suma-ev.de> Date: Tue, 22 Aug 2017 11:56:48 +0200 Subject: [PATCH] Auswahl ueber Dropdown funktioniert noch nicht richtig --- app/Http/Controllers/LanguageController.php | 70 +++++++++++--------- resources/views/languages/synoptic.blade.php | 2 +- routes/web.php | 2 +- 3 files changed, 40 insertions(+), 34 deletions(-) diff --git a/app/Http/Controllers/LanguageController.php b/app/Http/Controllers/LanguageController.php index e4bf28995..c78451607 100644 --- a/app/Http/Controllers/LanguageController.php +++ b/app/Http/Controllers/LanguageController.php @@ -143,7 +143,7 @@ class LanguageController extends Controller ->with('email', $email); //Email-Adresse des Benutzers } - public function createSynopticEditPage(Request $request, $exclude = "") + public function createSynopticEditPage(Request $request, $exclude = "", $chosenFile = "") { $languageFolders = scandir($this->languageFilePath); @@ -188,13 +188,16 @@ class LanguageController extends Controller $fn = ""; # Wähle die erste, unbearbeitete Datei aus - foreach($languageObjects as $folder => $languageObject) { - foreach($languageObject->stringMap as $languageFileName => $languageFile) { - $fn = $languageFileName; - break 2; + if($chosenFile !== "") { + $fn = $chosenFile; + } else { + foreach($languageObjects as $folder => $languageObject) { + foreach($languageObject->stringMap as $languageFileName => $languageFile) { + $fn = $languageFileName; + break 2; + } } } - $snippets = []; $changeTime = 0; $recentlyChangedFiles = []; @@ -255,32 +258,8 @@ class LanguageController extends Controller $filename = $request->input('filename'); # Identifizieren des gedrückten Buttons - if(isset($request['nextpage'])) { - - # Leite weiter zur nächsten Seite - $ex = []; - - if ($exclude !== "") { - try { - $ex = unserialize(base64_decode($exclude)); - } catch (\ErrorException $e) { - $ex = []; - } - - if (!isset($ex["files"])) { - $ex["files"] = []; - } - } - if (!isset($ex["new"])) { - $ex["new"] = 0; - } - $ex['files'][] = basename($filename); - $ex = base64_encode(serialize($ex)); - - return redirect(url('synoptic', ['exclude' => $ex])); - - } elseif(isset($request['download'])) { - # Andernfalls auslesen, zippen und herunterladen der veränderten Dateien + if(isset($request['download'])) { + # Auslesen, zippen und herunterladen der veränderten Dateien $data = []; $new = 0; @@ -365,6 +344,33 @@ class LanguageController extends Controller } catch(ErrorException $e) { echo("Failed to write ".$filename); } + # Andernfalls weiterleiten zur nächsten Seite + } else { + + $ex = []; + + if ($exclude !== "") { + try { + $ex = unserialize(base64_decode($exclude)); + } catch (\ErrorException $e) { + $ex = []; + } + + if (!isset($ex["files"])) { + $ex["files"] = []; + } + } + if (!isset($ex["new"])) { + $ex["new"] = 0; + } + $ex['files'][] = basename($filename); + $ex = base64_encode(serialize($ex)); + + if(isset($request['nextpage'])) { + return redirect(url('synoptic', ['exclude' => $ex])); + } elseif(isset($request['chosenFile'])) { + return redirect(url('synoptic', ['exclude' => $ex], ['chosenFile' => $request['chosenFile']])); + } } } diff --git a/resources/views/languages/synoptic.blade.php b/resources/views/languages/synoptic.blade.php index 7658718db..8a8ddd283 100644 --- a/resources/views/languages/synoptic.blade.php +++ b/resources/views/languages/synoptic.blade.php @@ -18,7 +18,7 @@ <input type="hidden" name="filename" value="{{$filename}}" /> </form> <p style="display: inline;"> Andere Datei auswählen: </p> - <select name="chooseFile" form="submit" type="submit"> + <select name="chosenFile" form="submit" onchange="this.form.submit()" type="submit"> @foreach($otherFiles as $otherFile) <option value={{$otherFile}}>{{ $otherFile }}</option> @endforeach diff --git a/routes/web.php b/routes/web.php index a351d702d..279e6a879 100644 --- a/routes/web.php +++ b/routes/web.php @@ -164,7 +164,7 @@ Route::group( return redirect('https://metager.de/klassik/databund'); }); Route::get('languages', 'LanguageController@createOverview'); - Route::get('synoptic/{exclude?}', 'LanguageController@createSynopticEditPage'); + Route::get('synoptic/{exclude?}/{chosenFile?}', 'LanguageController@createSynopticEditPage'); Route::post('synoptic/{exclude?}', 'LanguageController@processSynopticPageInput'); Route::get('languages/edit/{from}/{to}/{exclude?}/{email?}', 'LanguageController@createEditPage'); Route::post('languages/edit/{from}/{to}/{exclude?}/{email?}', 'MailController@sendLanguageFile'); -- GitLab