Aufgabe 1 ca 80%

This commit is contained in:
Robert
2024-01-19 03:15:12 +01:00
parent 800d84bd41
commit 5756f2b7d5
12 changed files with 1392 additions and 1094 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -1,2 +1,2 @@
#n:emensawerbeseite
!<md> [1705498483000, 0, null, null, -2147483648, -2147483648]
!<md> [1705632330000, 0, null, null, -2147483648, -2147483648]

67
.idea/workspace.xml generated
View File

@@ -4,8 +4,19 @@
<option name="autoReloadType" value="SELECTIVE" />
</component>
<component name="ChangeListManager">
<list default="true" id="6dcbe3e4-9d68-41d8-8c39-5cfbe5cd4a21" name="Changes" comment="Anmeldung läuft">
<list default="true" id="6dcbe3e4-9d68-41d8-8c39-5cfbe5cd4a21" name="Changes" comment="Abmeldung gefixt">
<change afterPath="$PROJECT_DIR$/M6/emensamobile/resources/views/main/bewertung.blade.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/dataSources/a1d1df29-b94a-4ad6-bd6f-a458b97a6c0c.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/dataSources/a1d1df29-b94a-4ad6-bd6f-a458b97a6c0c.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/dataSources/a1d1df29-b94a-4ad6-bd6f-a458b97a6c0c/storage_v2/_src_/schema/emensawerbeseite.YLWk-w.meta" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/dataSources/a1d1df29-b94a-4ad6-bd6f-a458b97a6c0c/storage_v2/_src_/schema/emensawerbeseite.YLWk-w.meta" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/M6/emensamobile/app/Http/Controllers/AnmeldungController.php" beforeDir="false" afterPath="$PROJECT_DIR$/M6/emensamobile/app/Http/Controllers/AnmeldungController.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/M6/emensamobile/app/Http/Controllers/MainController.php" beforeDir="false" afterPath="$PROJECT_DIR$/M6/emensamobile/app/Http/Controllers/MainController.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/M6/emensamobile/app/Models/Gerichte.php" beforeDir="false" afterPath="$PROJECT_DIR$/M6/emensamobile/app/Models/Gerichte.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/M6/emensamobile/app/Models/benutzer.php" beforeDir="false" afterPath="$PROJECT_DIR$/M6/emensamobile/app/Models/benutzer.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/M6/emensamobile/public/css/style.css" beforeDir="false" afterPath="$PROJECT_DIR$/M6/emensamobile/public/css/style.css" afterDir="false" />
<change beforePath="$PROJECT_DIR$/M6/emensamobile/resources/views/m5_a1/anmeldung_verifizieren.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/M6/emensamobile/resources/views/m5_a1/anmeldung_verifizieren.blade.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/M6/emensamobile/resources/views/main/index.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/M6/emensamobile/resources/views/main/index.blade.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/M6/emensamobile/routes/web.php" beforeDir="false" afterPath="$PROJECT_DIR$/M6/emensamobile/routes/web.php" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -55,28 +66,28 @@
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent"><![CDATA[{
"keyToString": {
"RunOnceActivity.OpenProjectViewOnStart": "true",
"RunOnceActivity.ShowReadmeOnStart": "true",
"WebServerToolWindowFactoryState": "false",
"database.data.extractors.current.export.id": "Comma-separated (CSV)_id",
"git-widget-placeholder": "dev/m6__robert",
"last_opened_file_path": "C:/Users/rober/Documents/GitHub/DBWT-Praktika/M6/emensamobile/public",
"node.js.detected.package.eslint": "true",
"node.js.detected.package.tslint": "true",
"node.js.selected.package.eslint": "(autodetect)",
"node.js.selected.package.tslint": "(autodetect)",
"nodejs_package_manager_path": "npm",
"settings.editor.selected.configurable": "preferences.pluginManager",
"vue.rearranger.settings.migration": "true"
<component name="PropertiesComponent">{
&quot;keyToString&quot;: {
&quot;RunOnceActivity.OpenProjectViewOnStart&quot;: &quot;true&quot;,
&quot;RunOnceActivity.ShowReadmeOnStart&quot;: &quot;true&quot;,
&quot;WebServerToolWindowFactoryState&quot;: &quot;false&quot;,
&quot;database.data.extractors.current.export.id&quot;: &quot;Comma-separated (CSV)_id&quot;,
&quot;git-widget-placeholder&quot;: &quot;dev/m6__robert&quot;,
&quot;last_opened_file_path&quot;: &quot;C:/Users/rober/Documents/GitHub/DBWT-Praktika/M6/emensamobile/public&quot;,
&quot;node.js.detected.package.eslint&quot;: &quot;true&quot;,
&quot;node.js.detected.package.tslint&quot;: &quot;true&quot;,
&quot;node.js.selected.package.eslint&quot;: &quot;(autodetect)&quot;,
&quot;node.js.selected.package.tslint&quot;: &quot;(autodetect)&quot;,
&quot;nodejs_package_manager_path&quot;: &quot;npm&quot;,
&quot;settings.editor.selected.configurable&quot;: &quot;preferences.pluginManager&quot;,
&quot;vue.rearranger.settings.migration&quot;: &quot;true&quot;
},
"keyToStringList": {
"DatabaseDriversLRU": [
"mariadb"
&quot;keyToStringList&quot;: {
&quot;DatabaseDriversLRU&quot;: [
&quot;mariadb&quot;
]
}
}]]></component>
}</component>
<component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS">
<recent name="C:\Users\rober\Documents\GitHub\DBWT-Praktika\M6\emensamobile\public" />
@@ -108,7 +119,8 @@
<workItem from="1705414744237" duration="1967000" />
<workItem from="1705488930166" duration="3342000" />
<workItem from="1705492444098" duration="553000" />
<workItem from="1705493014644" duration="7005000" />
<workItem from="1705493014644" duration="21207000" />
<workItem from="1705627589042" duration="2719000" />
</task>
<task id="LOCAL-00001" summary="Webseite ohne Anmeldung läuft auf laravel">
<option name="closed" value="true" />
@@ -134,7 +146,15 @@
<option name="project" value="LOCAL" />
<updated>1705501430071</updated>
</task>
<option name="localTasksCounter" value="4" />
<task id="LOCAL-00004" summary="Abmeldung gefixt">
<option name="closed" value="true" />
<created>1705501770457</created>
<option name="number" value="00004" />
<option name="presentableId" value="LOCAL-00004" />
<option name="project" value="LOCAL" />
<updated>1705501770457</updated>
</task>
<option name="localTasksCounter" value="5" />
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">
@@ -143,6 +163,7 @@
<component name="VcsManagerConfiguration">
<MESSAGE value="Webseite ohne Anmeldung läuft auf laravel" />
<MESSAGE value="Anmeldung läuft" />
<option name="LAST_COMMIT_MESSAGE" value="Anmeldung läuft" />
<MESSAGE value="Abmeldung gefixt" />
<option name="LAST_COMMIT_MESSAGE" value="Abmeldung gefixt" />
</component>
</project>

View File

@@ -74,6 +74,9 @@ class AnmeldungController extends BaseController
session()->pull("name");
session()->pull("uid");
session()->pull("email");
session()->pull("bewertung");
session()->regenerate();
Log::info('Abmeldung erfolgreich!');

View File

@@ -1,6 +1,7 @@
<?php
namespace App\Http\Controllers;
use App\Models\bewertungen;
use Illuminate\Routing\Controller as BaseController;
use App\Models\Gerichte;
use Illuminate\Http\Request;
@@ -26,5 +27,56 @@ class MainController extends BaseController
]);
}
public function bewertung(Request $rd) {
/*
Wenn Sie hier landen:
bearbeiten Sie diese Action,
so dass Sie die Aufgabe löst
*/
if(session("start",0)== 0){
session(["bewertung" => 1]);
return view('m5_a1.anmeldung', [
'url' => 'http' . (isset($_SERVER['HTTPS']) ? 's' : '') . '://' . "{$_SERVER['HTTP_HOST']}"
]);
}
if($rd->isMethod("get")){
$data = $rd;
$gericht = new Gerichte();
$g = $gericht->db_gericht_bewertung($data["gerichtid"]);
return view('main.bewertung', [
"gericht" => $g,
"data" => $data,
'url' => 'http' . (isset($_SERVER['HTTPS']) ? 's' : '') . '://' . "{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}"
]);
}
return view('main.bewertung', [
'url' => 'http' . (isset($_SERVER['HTTPS']) ? 's' : '') . '://' . "{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}"
]);
}
public function bewertung_abschicken(Request $rd) {
if($rd->isMethod("post")){
$data = $rd;}
$id = $data["gericht_id"] ?? NULL;
$sterne = $data["sterne"] ?? NULL;
$bemerkung = $data["bemerkung"] ?? NULL;
$benutzer = session("benutzer_id",0);
$b = new bewertungen();
$check = $b->bewerten($benutzer,$id,$sterne, $bemerkung);
return view('main.bewertung', [
'url' => 'http' . (isset($_SERVER['HTTPS']) ? 's' : '') . '://' . "{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}"
]);
}
}

View File

@@ -79,4 +79,16 @@ class Gerichte extends Model
}
function db_gericht_bewertung(int $id){
$sql_gerichte = "SELECT gericht.name, gericht.bildname FROM gericht WHERE id =". $id;
$result_sql_gerichte = DB::select($sql_gerichte);
return $result_sql_gerichte;
}
function db_gericht_name(int $id){
$sql_gerichte = "SELECT gericht.name FROM gericht WHERE id =". $id;
$result_sql_gerichte = DB::select($sql_gerichte);
return $result_sql_gerichte;
}
}

View File

@@ -40,6 +40,7 @@ class Benutzer extends Model
session(["login" => 1]);
session(["name" => $row->name]);
session(["email" => $row->email]);
session(["benutzer_id"=> $row->id]);
return 1;
} else {

View File

@@ -7,6 +7,12 @@
grid-template-columns: 200px auto 200px;
}
.grid_bewertung {
display: grid;
grid-template-columns: 200px 300px auto 200px;
}
img {
width: 100%;
height: auto;
@@ -94,3 +100,11 @@ footer {
padding-left: 20px;
padding-right: 20px;
}
.bewertung{
width: 300px;
height: 300px;
}

View File

@@ -2,9 +2,17 @@
@section("main")
@if($anmeldung == 1)
@if($anmeldung == 1){
<meta http-equiv="refresh" content="/"/>
<form id="form_ok" action="/"></form>
<?php if(session("bewertung",0)==0){
echo "<form id=\"form_ok\" action=\"/\"></form>";
}else{
echo "<form id=\"form_ok\" action=\"/bewertung\"></form>";
session(["bewertung" => 0]);
}
?>
<script type="text/javascript">
@@ -19,7 +27,7 @@
window.onload = formAutoSubmit;
</script>
</script>}
@else
<form method="post" id="auto_form" action="/anmeldung_fehler">

View File

@@ -0,0 +1,106 @@
@extends("layouts.main_layout", ['title' => "E-Mensa"])
<?php use Illuminate\Support\Facades\Session; ?>
@section("header")
<link rel="stylesheet" href="/css/style.css">
@endsection
@section("nav")
<div class="grid">
<div>
<img src="/img/fh-logo.jpg" alt="FH-Logo">
</div>
<div>
<a href="#ankündigung">Ankündigung</a>
<a href="#speisen">Speisen</a>
<a href="#zahlen">Zahlen</a>
<a href="#kontakt">Kontakt</a>
<a href="#wichtig">Wichtig für uns</a>
</div>
<div>
@if(session("start",0)== 0)
<a href="/anmeldung">Anmelden</a>
@else
Angemeldet als:<br>
<div>{{ session("name")}}</div>
<a href="/abmeldung">Abmelden</a>
@endif
</div>
</div>
@endsection
@section("text")
@if(isset($data))
{{$id = $data["gerichtid"]}}
@endif
@if(isset($gericht))
<?php
$gericht = $gericht[0];
$bildname = $gericht->bildname;
if ($bildname == Null) {
$bildname = "00_image_missing.jpg";
}
$bildname = "/img/gerichte/" . $bildname;
?>
<div class="grid_bewertung">
<div>
</div>
<div>
<img class="bewertung" src="{{$bildname}}" alt="Bild vom Gericht" width= "10" height="10">
</div>
<div>
<h1>{{$gericht->name}}</h1>
<form action="/bewertung_abschicken" method="post">
@method("post")
@csrf <!-- {{ csrf_field() }} -->
<label for="sterne">Sterne 1-4</label>
<input id="sterne" name="sterne" type="number" placeholder="1-4" required maxlength="4">
<label for="Bemerkung">Bemerkung</label>
<input id="bemerkung" name="bemerkung" type="text" placeholder="Bemerkung" required maxlength="200">
<input type="hidden" name="gericht_id" value={{ $id}}>
<button type="submit" >Bewerten</button>
</form>
</div>
<div>
</div>
</div>
@else
@endif
@endsection
@section("gerichte")
@endsection
@section("footer")
<tr>
<td>(c) E-Mensa GmbH</td>
<td>Şafak Hazinedar & Robert Joel</td>
<td><a href="">Impressum</a></td>
</tr>
@endsection

View File

@@ -64,7 +64,14 @@
$verwendete_allergene_string = $data["allergene"];
$allergene = $data["allergene1"];
$tabelle = "<table class=\"speisen\"><tr class=\"speisen\"> <td>Gerichte</td><td>Preis intern</td><td>Preis extern</td><td>Bild</td></tr>";
$tabelle = "<table class=\"speisen\"><tr class=\"speisen\"> <td>Gerichte</td><td>Preis intern</td><td>Preis extern</td><td>Bild</td>";
if(session("start",0)== 1){
$tabelle .= "<td>Bewerten</td></tr>";
}
else{
$tabelle .= "</tr>";
}
foreach ($result_sql_gerichte as $row_gerichte) {
@@ -80,8 +87,14 @@
$bildname = "/img/gerichte/" . $bildname;
$tabelle .= "<tr class=\"speisen\"><td>" . htmlspecialchars($row_gerichte->name) . " <sup>" . htmlspecialchars($allergene) . "</sup></td><td>" . htmlspecialchars($preisintern) . "€</td><td>" . htmlspecialchars($preisextern) . "€</td><td> <img src=\"" . $bildname . "\" alt =\"Bild vom Gericht\" width= \"10\" height=\"10\"> </td></tr>";
$tabelle .= "<tr class=\"speisen\"><td>" . htmlspecialchars($row_gerichte->name) . " <sup>" . htmlspecialchars($allergene) . "</sup></td><td>" . htmlspecialchars($preisintern) . "€</td><td>" . htmlspecialchars($preisextern) . "€</td><td> <img src=\"" . $bildname . "\" alt =\"Bild vom Gericht\" width= \"10\" height=\"10\"> </td>";
if(session("start",0)== 1){
$tabelle .= "<td><a href=\"/bewertung?gerichtid=".$row_gerichte->id ."\">Bewerten</a></td></tr>";
}
else{
$tabelle .= "</tr>";
}
}
$tabelle .= "</table>";

View File

@@ -17,6 +17,8 @@ use Illuminate\Http\Request;
//Main Controller
Route::get('/', [MainController::class, 'index' ]);
Route::get('/bewertung', [MainController::class, 'bewertung' ]);
Route::post("/bewertung_abschicken",[MainController::class, 'bewertung_abschicken' ]);
//Anmeldungs Controller
Route::get('/anmeldung', [AnmeldungController::class, 'start']);