Skip to content
Snippets Groups Projects
Commit 9c92eeb2 authored by Aria Givi's avatar Aria Givi
Browse files

Weiterleitung zur nächsten Datei implementiert

parent a8438db8
No related branches found
No related tags found
1 merge request!1365Resolve "Filter Options for MetaGer"
...@@ -200,15 +200,20 @@ class LanguageController extends Controller ...@@ -200,15 +200,20 @@ class LanguageController extends Controller
#Wähle die erste Datei aus, welche nicht ausgeschlossen worden ist #Wähle die erste Datei aus, welche nicht ausgeschlossen worden ist
foreach($languageObjects as $folder => $languageObject) { foreach($languageObjects as $folder => $languageObject) {
foreach($languageObject->stringMap as $languageFileName => $languageFile) { foreach($languageObject->stringMap as $languageFileName => $languageFile) {
if(isset($ex[$languageFileName])) { foreach($ex['files'] as $file) {
continue 2; if($file === $languageFileName) {
} else { continue 2;
$fn = $languageFileName; }
break 2; }
} $fn = $languageFileName;
break 2;
} }
} }
if($fn === "") {
//Alles bearbeitet -> zeige entsprechende Nachricht
}
$snippets = []; $snippets = [];
#Speichere den Inhalt der ausgewählten Datei in allen Sprachen in $snippets ab #Speichere den Inhalt der ausgewählten Datei in allen Sprachen in $snippets ab
......
...@@ -204,11 +204,11 @@ class MailController extends Controller ...@@ -204,11 +204,11 @@ class MailController extends Controller
if ($new > 0) { if ($new > 0) {
if($emailAddress !== "") { if($emailAddress !== "") {
Mail::to("dev@suma-ev.de") Mail::to("aria@suma-ev.de")
->send(new Sprachdatei($message, $output, basename($filename), $emailAddress)); ->send(new Sprachdatei($message, $output, basename($filename), $emailAddress));
} }
else { else {
Mail::to("dev@suma-ev.de") Mail::to("aria@suma-ev.de")
->send(new Sprachdatei($message, $output, basename($filename))); ->send(new Sprachdatei($message, $output, basename($filename)));
} }
} }
...@@ -216,4 +216,91 @@ class MailController extends Controller ...@@ -216,4 +216,91 @@ class MailController extends Controller
return redirect(url('languages/edit', ['from' => $from, 'to' => $to, 'exclude' => $ex, 'email' => $emailAddress])); return redirect(url('languages/edit', ['from' => $from, 'to' => $to, 'exclude' => $ex, 'email' => $emailAddress]));
} }
public function downloadModifiedLanguagefiles(Request $request, $exclude = "") {
$filename = $request->input('filename');
# Wir erstellen nun zunächst den Inhalt der Datei:
$data = [];
$new = 0;
$emailAddress = "";
$editedKeys = "";
foreach ($request->all() as $key => $value) {
if ($key === "filename" || $value === "") {
continue;
}
if($key === "email") {
$emailAddress = $value;
continue;
}
$key = base64_decode($key);
if (strpos($key, "_new_") === 0 && $value !== "") {
$new++;
$key = substr($key, strpos($key, "_new_") + 5);
$editedKeys = $editedKeys."\n".$key;
}
else if ($this->isEdited($key, $value, $filename)) {
$new++;
$editedKeys = $editedKeys."\n".$key;
}
$key = trim($key);
if (!strpos($key, "#")) {
$data[$key] = $value;
} else {
$ref = &$data;
do {
$ref = &$ref[substr($key, 0, strpos($key, "#"))];
$key = substr($key, strpos($key, "#") + 1);
} while (strpos($key, "#"));
$ref = &$ref[$key];
$ref = $value;
}
}
$output = json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
$output = preg_replace("/\{/si", "[", $output);
$output = preg_replace("/\}/si", "]", $output);
$output = preg_replace("/\": ([\"\[])/si", "\"\t=>\t$1", $output);
$output = "<?php\n\nreturn $output;\n";
$message = "Moin moin,\n\nein Benutzer hat eine Sprachdatei aktualisiert.\nBearbeitet wurden die Einträge: $editedKeys\n\nSollten die Texte so in Ordnung sein, ersetzt, oder erstellt die Datei aus dem Anhang in folgendem Pfad:\n$filename\n\nFolgend zusätzlich der Inhalt der Datei:\n\n$output";
# Wir haben nun eine Mail an uns geschickt, welche die entsprechende Datei beinhaltet.
# Nun müssen wir den Nutzer eigentlich nur noch zurück leiten und die Letzte bearbeitete Datei ausschließen:
$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["new"] += $new;
if ($new > 0) {
}
// var_dump($ex);
//die();
$ex = base64_encode(serialize($ex));
return redirect(url('synoptic', ['exclude' => $ex]));
}
} }
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
namespace App\Models; namespace App\Models;
/* /*
* Beinhaltet zu je einer Sprache Angaben zum Pfad der jeweiligen Datei, sowie die vorhandenen Übersetzungen * Hilfsklasse, welche zu je einer Sprache Angaben zum Pfad der jeweiligen Datei, sowie die vorhandenen Übersetzungen enthält
*/ */
class LanguageObject class LanguageObject
{ {
......
...@@ -31,21 +31,27 @@ ...@@ -31,21 +31,27 @@
<tr> <!--Key --> <tr> <!--Key -->
<td class="name language-name">{{preg_replace("/(\s*).*#(.*)$/si", "$1$2", $key)}}</td> <td class="name language-name">{{preg_replace("/(\s*).*#(.*)$/si", "$1$2", $key)}}</td>
@foreach($language as $lang => $languageValue) @foreach($language as $lang => $languageValue)
<td> @if($lang === "de")
<textarea class="language-text-area" rows="1" cols="50" form="submit" name="{{base64_encode("_new_" . $key)}}">{{ $languageValue }} </textarea> <td>
</td> <textarea class="language-text-area" rows="1" readonly cols="20" form="submit" name="{{base64_encode("_new_".$lang."_".$key)}}">{{ $languageValue }} </textarea>
</td>
@else
<td>
<textarea class="language-text-area" rows="1" cols="20" form="submit" name="{{base64_encode("_new_".$lang."_".$key)}}">{{ $languageValue }} </textarea>
</td>
@endif
@endforeach @endforeach
</tr> </tr>
@endforeach @endforeach
</tbody> </tbody>
</table> </table>
<!-- <!--
<p>{{ trans('languages.hinweis.1') }}</p> <p>{{ trans('languages.hinweis.1') }}</p>
<p>{!! trans('languages.hinweis.2') !!}</p> <p>{!! trans('languages.hinweis.2') !!}</p>
<p>{!! trans('languages.hinweis.3') !!}</p> <p>{!! trans('languages.hinweis.3') !!}</p>
<p>{!! trans('languages.email') !!}</p> <p>{!! trans('languages.email') !!}</p>
--> -->
<button class="btn btn-success" type="submit" form="submit">Daten übermitteln</button> <button class="btn btn-success" type="submit" form="submit">Daten übermitteln</button>
<script type="text/javascript" src="{{ elixir('js/lib.js') }}"></script> <script type="text/javascript" src="{{ elixir('js/lib.js') }}"></script>
<script type="text/javascript" src="{{ elixir('js/editLanguage.js') }}"></script> <script type="text/javascript" src="{{ elixir('js/editLanguage.js') }}"></script>
......
...@@ -159,6 +159,7 @@ Route::group( ...@@ -159,6 +159,7 @@ Route::group(
}); });
Route::get('languages', 'LanguageController@createOverview'); Route::get('languages', 'LanguageController@createOverview');
Route::get('synoptic/{exclude?}', 'LanguageController@createSynopticEditPage'); Route::get('synoptic/{exclude?}', 'LanguageController@createSynopticEditPage');
Route::post('synoptic/{exclude?}', 'MailController@downloadModifiedLanguagefiles');
Route::get('languages/edit/{from}/{to}/{exclude?}/{email?}', 'LanguageController@createEditPage'); Route::get('languages/edit/{from}/{to}/{exclude?}/{email?}', 'LanguageController@createEditPage');
Route::post('languages/edit/{from}/{to}/{exclude?}/{email?}', 'MailController@sendLanguageFile'); Route::post('languages/edit/{from}/{to}/{exclude?}/{email?}', 'MailController@sendLanguageFile');
Route::get('berlin', 'StartpageController@berlin'); Route::get('berlin', 'StartpageController@berlin');
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment