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

Weiterleitung zur nächsten Datei implementiert

parent 1adee46e
No related branches found
No related tags found
2 merge requests!912Development,!904Resolve "Arbeit am Übersetzungstool"
......@@ -200,15 +200,20 @@ class LanguageController extends Controller
#Wähle die erste Datei aus, welche nicht ausgeschlossen worden ist
foreach($languageObjects as $folder => $languageObject) {
foreach($languageObject->stringMap as $languageFileName => $languageFile) {
if(isset($ex[$languageFileName])) {
continue 2;
} else {
$fn = $languageFileName;
break 2;
}
foreach($ex['files'] as $file) {
if($file === $languageFileName) {
continue 2;
}
}
$fn = $languageFileName;
break 2;
}
}
if($fn === "") {
//Alles bearbeitet -> zeige entsprechende Nachricht
}
$snippets = [];
#Speichere den Inhalt der ausgewählten Datei in allen Sprachen in $snippets ab
......
......@@ -204,11 +204,11 @@ class MailController extends Controller
if ($new > 0) {
if($emailAddress !== "") {
Mail::to("dev@suma-ev.de")
Mail::to("aria@suma-ev.de")
->send(new Sprachdatei($message, $output, basename($filename), $emailAddress));
}
else {
Mail::to("dev@suma-ev.de")
Mail::to("aria@suma-ev.de")
->send(new Sprachdatei($message, $output, basename($filename)));
}
}
......@@ -216,4 +216,91 @@ class MailController extends Controller
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 @@
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
{
......
......@@ -31,21 +31,27 @@
<tr> <!--Key -->
<td class="name language-name">{{preg_replace("/(\s*).*#(.*)$/si", "$1$2", $key)}}</td>
@foreach($language as $lang => $languageValue)
<td>
<textarea class="language-text-area" rows="1" cols="50" form="submit" name="{{base64_encode("_new_" . $key)}}">{{ $languageValue }} </textarea>
</td>
@if($lang === "de")
<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
</tr>
@endforeach
</tbody>
</table>
<!--
<!--
<p>{{ trans('languages.hinweis.1') }}</p>
<p>{!! trans('languages.hinweis.2') !!}</p>
<p>{!! trans('languages.hinweis.3') !!}</p>
<p>{!! trans('languages.email') !!}</p>
-->
-->
<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/editLanguage.js') }}"></script>
......
......@@ -159,6 +159,7 @@ Route::group(
});
Route::get('languages', 'LanguageController@createOverview');
Route::get('synoptic/{exclude?}', 'LanguageController@createSynopticEditPage');
Route::post('synoptic/{exclude?}', 'MailController@downloadModifiedLanguagefiles');
Route::get('languages/edit/{from}/{to}/{exclude?}/{email?}', 'LanguageController@createEditPage');
Route::post('languages/edit/{from}/{to}/{exclude?}/{email?}', 'MailController@sendLanguageFile');
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