Chaos-Events und Voranmeldungen
This commit is contained in:
@@ -25,7 +25,7 @@ class BlogController extends Controller
|
||||
$blog->save();
|
||||
return ['messageStatus' => 'success', 'errorMessage' => ''];
|
||||
} catch (\Illuminate\Database\QueryException $e) {
|
||||
return ['messageStatus' => 'danger', 'errorMessage' => $e->getMessage()];
|
||||
return ['messageStatus' => 'danger', 'errorMessage' => __("controller_messages.BlogController.error_occurred", ["error" => $e->getMessage()])];
|
||||
}
|
||||
}
|
||||
abort(404);
|
||||
@@ -43,7 +43,7 @@ class BlogController extends Controller
|
||||
$blog->save();
|
||||
return ['messageStatus' => 'success', 'errorMessage' => ''];
|
||||
} catch (\Illuminate\Database\QueryException $e) {
|
||||
return ['messageStatus' => 'failure', 'errorMessage' => $e->getMessage()];
|
||||
return ['messageStatus' => 'failure', 'errorMessage' => __("controller_messages.BlogController.error_occurred", ["error" => $e->getMessage()])];
|
||||
}
|
||||
}
|
||||
abort(404);
|
||||
@@ -58,7 +58,7 @@ class BlogController extends Controller
|
||||
}
|
||||
return ['messageStatus' => 'success', 'errorMessage' => ''];
|
||||
} catch(\Exception $e){
|
||||
return ['messageStatus' => 'failure', 'errorMessage' => $e->getMessage()];
|
||||
return ['messageStatus' => 'failure', 'errorMessage' => __("controller_messages.BlogController.error_occurred", ["error" => $e->getMessage()])];
|
||||
}
|
||||
}
|
||||
abort(404);
|
||||
|
||||
@@ -16,7 +16,7 @@ class LoginController extends Controller
|
||||
// messageStatus success|failure|not permitted
|
||||
|
||||
|
||||
$json = ["messageStatus" => "failure", "errorMessage" => "idk"];
|
||||
$json = ["messageStatus" => "failure", "errorMessage" => __("controller_messages.LoginController.unknown_error")];
|
||||
|
||||
$mail = $request->input('mail');
|
||||
$username = $request->input('username');
|
||||
@@ -24,14 +24,14 @@ class LoginController extends Controller
|
||||
$token = $request->input('token');
|
||||
|
||||
if(preg_match('/@c3gov\.de$/', $mail) != 1){
|
||||
return ["messageStatus" => "not permitted", "errorMessage" => ""];
|
||||
return ["messageStatus" => "not permitted", "errorMessage" => __("controller_messages.LoginController.not_permitted")];
|
||||
}
|
||||
|
||||
$rt = RegisterToken::where('token', $token)->first();
|
||||
if($rt) {
|
||||
$u = User::whereEmail($mail)->first();
|
||||
if($u) {
|
||||
return ["messageStatus" => "failure", "errorMessage" => "Diese elektronische Postadresse wird bereits verwendet."];
|
||||
return ["messageStatus" => "failure", "errorMessage" => __("controller_messages.LoginController.email_in_use")];
|
||||
}
|
||||
try {
|
||||
$u = new User();
|
||||
@@ -43,10 +43,10 @@ class LoginController extends Controller
|
||||
|
||||
$rt->delete();
|
||||
} catch (\Exception $e) {
|
||||
return ["messageStatus" => "failure", "errorMessage" => $e->getMessage()];
|
||||
return ["messageStatus" => "failure", "errorMessage" => __("controller_messages.LoginController.unknown_error_with_details", ["error" => $e->getMessage()])];
|
||||
}
|
||||
} else {
|
||||
return ["messageStatus" => "failure", "errorMessage" => "Machen Sie die Musik aus."];
|
||||
return ["messageStatus" => "failure", "errorMessage" => __("controller_messages.LoginController.invalid_token")];
|
||||
}
|
||||
|
||||
return ["messageStatus" => "success", "errorMessage" => ""];
|
||||
@@ -64,10 +64,10 @@ class LoginController extends Controller
|
||||
Auth::login($u);
|
||||
return ["messageStatus" => "success", "errorMessage" => ""];
|
||||
} else {
|
||||
return ["messageStatus" => "failure", "errorMessage" => "Falsch. Einfach nur falsch."];
|
||||
return ["messageStatus" => "failure", "errorMessage" => __("controller_messages.LoginController.wrong_credentials")];
|
||||
}
|
||||
} else {
|
||||
return ["messageStatus" => "failure", "errorMessage" => "Falsch. Einfach nur falsch."];
|
||||
return ["messageStatus" => "failure", "errorMessage" => __("controller_messages.LoginController.wrong_credentials")];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
86
app/Http/Controllers/PreApplicationController.php
Normal file
86
app/Http/Controllers/PreApplicationController.php
Normal file
@@ -0,0 +1,86 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App;
|
||||
use App\Mail\PreApplicationMail;
|
||||
use App\Models\ChaosEvents;
|
||||
use App\Models\PreApplications;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Mail;
|
||||
use Log;
|
||||
use Nette\Utils\Random;
|
||||
|
||||
class PreApplicationController extends Controller
|
||||
{
|
||||
public function send(Request $request){
|
||||
$event = $request->input('event');
|
||||
|
||||
$ce = ChaosEvents::where('id', $event)->where('to_date', '>=', now())->first();
|
||||
if($ce){
|
||||
|
||||
$passport_type = $request->input('passport_type');
|
||||
if(!in_array($passport_type, ['d', 'k'])){
|
||||
return ["messageStatus" => "failure", "errorMessage" => __("controller_messages.PreApplicationController.wrong_passport_type")];
|
||||
}
|
||||
|
||||
$first_name = $request->input('first_name');
|
||||
$last_name = $request->input('last_name');
|
||||
$location = $request->input('location');
|
||||
|
||||
$email = $request->input('mail');
|
||||
|
||||
if(!filter_var($email, FILTER_VALIDATE_EMAIL)){
|
||||
return ["messageStatus" => "failure", "errorMessage" => __("controller_messages.PreApplicationController.invalid_email_format")];
|
||||
}
|
||||
|
||||
switch($passport_type){
|
||||
case 'd':
|
||||
$max_characters = 17;
|
||||
break;
|
||||
case 'k':
|
||||
$max_characters = 25;
|
||||
break;
|
||||
default:
|
||||
$max_characters = 0;
|
||||
}
|
||||
|
||||
$fn = preg_match('/^[a-zA-Z0-9\s]{1,' . $max_characters . '}$/', $first_name);
|
||||
$ln = preg_match('/^[a-zA-Z0-9\s]{,' . $max_characters . '}$/', $last_name);
|
||||
$loc = preg_match('/^[a-zA-Z0-9\s]{,' . $max_characters . '}$/', $location);
|
||||
|
||||
//Log::debug('fn: ' . var_export($fn, true) . ' ln: ' . var_export($ln, true) . ' loc: ' . var_export($loc, true) . '');
|
||||
|
||||
if($fn && $ln && $loc){
|
||||
|
||||
$free_reference_number = false;
|
||||
while(!$free_reference_number){
|
||||
$reference_number = $ce->shortname . '-' . strtoupper($passport_type) . '-' . Random::generate(4, "0-9") . '-' . Random::generate(4, "0-9") . '-' . Random::generate(4, "0-9");
|
||||
$free_reference_number = !PreApplications::where('reference_number', $reference_number)->exists();
|
||||
}
|
||||
|
||||
try{
|
||||
$pa = new PreApplications();
|
||||
$pa->first_name = $first_name;
|
||||
$pa->last_name = $last_name;
|
||||
$pa->location = $location;
|
||||
$pa->passport_type = $passport_type;
|
||||
$pa->reference_number = $reference_number;
|
||||
$pa->event_id = $event;
|
||||
$pa->email = $email;
|
||||
$pa->save();
|
||||
} catch(\Exception $e){
|
||||
return ["messageStatus" => "failure", "errorMessage" => __("controller_messages.PreApplicationController.already_submitted")];
|
||||
}
|
||||
|
||||
Mail::to($email)
|
||||
->send(new PreApplicationMail($pa, App::getLocale()));
|
||||
|
||||
return ["messageStatus" => "success", "errorMessage" => __('controller_messages.PreApplicationController.success')];
|
||||
} else {
|
||||
return ["messageStatus" => "failure", "errorMessage" => __("controller_messages.PreApplicationController.invalid_characters")];
|
||||
}
|
||||
}
|
||||
return ["messageStatus" => "failure", "errorMessage" => __("controller_messages.PreApplicationController.event_not_found")];
|
||||
}
|
||||
}
|
||||
@@ -19,7 +19,7 @@ class TickerController extends Controller
|
||||
}
|
||||
return ["messageStatus" => "success", "errorMessage" => ""];
|
||||
} catch(\Exception $e){
|
||||
return ["messageStatus" => "failure", "errorMessage" => $e->getMessage()];
|
||||
return ["messageStatus" => "failure", "errorMessage" => __("controller_messages.TickerController.error_occurred", ["error" => $e->getMessage()])];
|
||||
}
|
||||
|
||||
}
|
||||
@@ -38,7 +38,7 @@ class TickerController extends Controller
|
||||
$ticker->save();
|
||||
return ["messageStatus" => "success", "errorMessage" => ""];
|
||||
} catch(\Exception $e){
|
||||
return ["messageStatus" => "failure", "errorMessage" => $e->getMessage()];
|
||||
return ["messageStatus" => "failure", "errorMessage" => __("controller_messages.TickerController.error_occurred", ["error" => $e->getMessage()])];
|
||||
}
|
||||
}
|
||||
abort(404);
|
||||
|
||||
66
app/Mail/PreApplicationMail.php
Normal file
66
app/Mail/PreApplicationMail.php
Normal file
@@ -0,0 +1,66 @@
|
||||
<?php
|
||||
|
||||
namespace App\Mail;
|
||||
|
||||
use AllowDynamicProperties;
|
||||
use App;
|
||||
use Illuminate\Bus\Queueable;
|
||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
use Illuminate\Mail\Mailable;
|
||||
use Illuminate\Mail\Mailables\Attachment;
|
||||
use Illuminate\Mail\Mailables\Content;
|
||||
use Illuminate\Mail\Mailables\Envelope;
|
||||
use Illuminate\Queue\SerializesModels;
|
||||
|
||||
class PreApplicationMail extends Mailable
|
||||
{
|
||||
use Queueable, SerializesModels;
|
||||
|
||||
/**
|
||||
* Create a new message instance.
|
||||
*/
|
||||
public function __construct(protected App\Models\PreApplications $pa, protected string $lang = 'de')
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the message envelope.
|
||||
*/
|
||||
public function envelope(): Envelope
|
||||
{
|
||||
return new Envelope(
|
||||
subject: __('mail.preapplication.subject'),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the message content definition.
|
||||
*/
|
||||
public function content(): Content
|
||||
{
|
||||
App::setLocale($this->lang);
|
||||
return new Content(
|
||||
view: 'mail.preapplication',
|
||||
with: ['pa' => $this->pa],
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the attachments for the message.
|
||||
*
|
||||
* @return array<int, Attachment>
|
||||
*/
|
||||
public function attachments(): array
|
||||
{
|
||||
$lang = match (App::getLocale()) {
|
||||
'de' => 'dk',
|
||||
'en' => 'ek',
|
||||
default => 'dk',
|
||||
};
|
||||
return [
|
||||
Attachment::fromPath(public_path('Dokumente/c3gov_fb5' . $lang . '.pdf'))
|
||||
->withMime('application/pdf'),
|
||||
];
|
||||
}
|
||||
}
|
||||
18
app/Models/ChaosEvents.php
Normal file
18
app/Models/ChaosEvents.php
Normal file
@@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class ChaosEvents extends Model
|
||||
{
|
||||
protected $table = 'chaos_events';
|
||||
|
||||
public function preApplications() {
|
||||
return $this->hasMany('App\Models\PreApplications', 'event_id');
|
||||
}
|
||||
|
||||
public static function getActiveEvents(){
|
||||
return self::where('to_date', '>=', now())->where('from_date', '<=', now())->get();
|
||||
}
|
||||
}
|
||||
15
app/Models/PreApplications.php
Normal file
15
app/Models/PreApplications.php
Normal file
@@ -0,0 +1,15 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class PreApplications extends Model
|
||||
{
|
||||
protected $table = 'pre_applications';
|
||||
|
||||
public function event(): \Illuminate\Database\Eloquent\Relations\BelongsTo
|
||||
{
|
||||
return $this->belongsTo('App\Models\ChaosEvents','event_id');
|
||||
}
|
||||
}
|
||||
@@ -65,7 +65,7 @@ return [
|
||||
|
|
||||
*/
|
||||
|
||||
'timezone' => 'UTC',
|
||||
'timezone' => 'Europe/Berlin',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::create('chaos_events', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->string('name');
|
||||
$table->string('shortname');
|
||||
$table->date('from_date');
|
||||
$table->date('to_date');
|
||||
$table->boolean('active')->default(false);
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::dropIfExists('chaos_events');
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,35 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::create('pre_applications', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->string('reference_number')->unique();
|
||||
$table->string('email')->unique();
|
||||
$table->string('passport_type');
|
||||
$table->bigInteger('event_id')->unsigned();
|
||||
$table->foreign('event_id')->references('id')->on('chaos_events')->onDelete('cascade');
|
||||
$table->string('first_name');
|
||||
$table->string('last_name')->nullable();
|
||||
$table->string('location')->nullable();
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::dropIfExists('pre_applications');
|
||||
}
|
||||
};
|
||||
@@ -65,5 +65,21 @@ return [
|
||||
'title' => 'Kontakt',
|
||||
'content' => 'Schreiben Sie uns im <a href="https://chaos.social/@c3gov">Fediversum</a>
|
||||
<br />oder per elektronischer Post an: <a href="mailto:Dezernat7Zustaendigkeit@C3Gov.De">Dezernat7Zustaendigkeit@C3Gov.De</a>'
|
||||
]
|
||||
],
|
||||
'preapplication' => [
|
||||
'title' => 'Vorantrag auf Reisepass gem. § 5 C3GovVerwV',
|
||||
'content' => 'Bitte wählen Sie eine temporäre Bezirksregion aus, um Ihren Vorantrag auf einen Reisepass zu stellen.
|
||||
<br />Nachdem Sie den Vorantrag abgeschickt haben, erhalten Sie eine Bestätigung via elektronischer Post.',
|
||||
'noevent' => 'Es sind derzeit keine temporäre Bezirksregionen verfügbar.',
|
||||
'passport_type' => 'Pass-Typ',
|
||||
'passport' => [
|
||||
'standard' => 'Hacker*innen-Reisepass',
|
||||
'kid' => 'Junghackerpass',
|
||||
],
|
||||
'mail' => 'Elektronische Postadresse',
|
||||
'firstname' => 'Vorname (Nick)',
|
||||
'lastname' => 'Nachname (optional)',
|
||||
'location' => 'Hackspace / Ort (optional)',
|
||||
'apply' => 'Vorantrag abschicken'
|
||||
]
|
||||
];
|
||||
|
||||
27
lang/de/controller_messages.php
Normal file
27
lang/de/controller_messages.php
Normal file
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'LoginController' => [
|
||||
'not_permitted' => 'Diese Aktion ist nicht zugelassen.',
|
||||
'email_in_use' => 'Diese elektronische Postadresse wird bereits verwendet.',
|
||||
'invalid_token' => 'Machen Sie die Musik aus.',
|
||||
'wrong_credentials' => 'Falsch. Einfach nur falsch.',
|
||||
'unknown_error' => 'Ein unbekannter Fehler ist aufgetreten.',
|
||||
'unknown_error_with_details' => 'Ein unbekannter Fehler ist aufgetreten: :error',
|
||||
],
|
||||
'PreApplicationController' => [
|
||||
'success' => 'Voranmeldung erfolgreich abgeschickt. Bitte überprüfen Sie Ihr elektronisches Postfach.',
|
||||
'already_submitted' => 'Sie haben bereits einen Vorantrag abgeschickt.',
|
||||
'wrong_passport_type' => 'Falscher Passtyp',
|
||||
'invalid_email_format' => 'Ungültiges E-Mail-Format',
|
||||
'failed_to_process' => 'Fehler beim Verarbeiten der Voranmeldung: :error',
|
||||
'invalid_characters' => 'Ungültige Zeichen im Namen oder Ort',
|
||||
'event_not_found' => 'Chaos-Event nicht gefunden',
|
||||
],
|
||||
'BlogController' => [
|
||||
'error_occurred' => 'Ein Fehler ist beim Verarbeiten des Blogs aufgetreten: :error',
|
||||
],
|
||||
'TickerController' => [
|
||||
'error_occurred' => 'Ein Fehler ist beim Verarbeiten des Tickers aufgetreten: :error',
|
||||
],
|
||||
];
|
||||
11
lang/de/mail.php
Normal file
11
lang/de/mail.php
Normal file
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'preapplication' => [
|
||||
'subject' => 'Ihr Vorantrag auf einen Reisepass',
|
||||
'body1' => "Hallo,<br /><br />Ihr Vorantrag wurde erfolgreich eingereicht.<br />Ihre Bearbeitungsnummer lautet: ",
|
||||
'body2' => "<br /><br />Folgende Daten wurden übermittelt:<br />",
|
||||
'body3' => "<br /><br />Bitte heben Sie diese E-Mail unbedingt auf.<br />Wenn möglich, drucken Sie das Formblatt 5, welches sich im E-Mail-Anhang befindet, aus. Tragen Sie Ihre Bearbeitungsnummer ein und bringen Sie es bei Abholung mit.",
|
||||
'signature' => "Mit freundlichen Grüßen,<br /><br /><br />Ihr C3Gov - Ihr Amt in der Bezirksregion CCC"
|
||||
]
|
||||
];
|
||||
@@ -65,5 +65,21 @@ return [
|
||||
'title' => 'Contact',
|
||||
'content' => 'Write us over in the <a href="https://chaos.social/@c3gov">fediverse</a>
|
||||
<br />or via email to: <a href="mailto:Dezernat7Zustaendigkeit@C3Gov.De">Dezernat7Zustaendigkeit@C3Gov.De</a>'
|
||||
]
|
||||
],
|
||||
'preapplication' => [
|
||||
'title' => 'Pre-application for Passport according to § 5 C3GovVerwV',
|
||||
'content' => 'Please select a temporary district region to submit your pre-application for a passport.
|
||||
<br />After you have submitted the pre-application, you will receive a confirmation by e-mail.',
|
||||
'noevent' => 'There are currently no temporary district regions available.',
|
||||
'passport_type' => 'Passport type',
|
||||
'passport' => [
|
||||
'standard' => 'Hacker Passport',
|
||||
'kid' => 'Junghackerpass [German only]',
|
||||
],
|
||||
'mail' => 'E-mail address',
|
||||
'firstname' => 'First name (Nickname)',
|
||||
'lastname' => 'Last name (optional)',
|
||||
'location' => 'Hackspace / Location (optional)',
|
||||
'apply' => 'Submit pre-application'
|
||||
]
|
||||
];
|
||||
|
||||
27
lang/en/controller_messages.php
Normal file
27
lang/en/controller_messages.php
Normal file
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'LoginController' => [
|
||||
'not_permitted' => 'This action is not permitted.',
|
||||
'email_in_use' => 'This email address is already in use.',
|
||||
'invalid_token' => 'Invalid token.',
|
||||
'wrong_credentials' => 'Wrong credentials.',
|
||||
'unknown_error' => 'An unknown error occurred.',
|
||||
'unknown_error_with_details' => 'An unknown error occurred: :error',
|
||||
],
|
||||
'PreApplicationController' => [
|
||||
'success' => 'Preapplication submitted successfully. Please check your email inbox.',
|
||||
'already_submitted' => 'You have already submitted a preapplication.',
|
||||
'wrong_passport_type' => 'Wrong passport type',
|
||||
'invalid_email_format' => 'Invalid email format',
|
||||
'failed_to_process' => 'Failed to process preapplication: :error',
|
||||
'invalid_characters' => 'Invalid characters in name or location',
|
||||
'event_not_found' => 'Chaos event not found',
|
||||
],
|
||||
'BlogController' => [
|
||||
'error_occurred' => 'An error occurred while processing the blog: :error',
|
||||
],
|
||||
'TickerController' => [
|
||||
'error_occurred' => 'An error occurred while processing the ticker: :error',
|
||||
],
|
||||
];
|
||||
11
lang/en/mail.php
Normal file
11
lang/en/mail.php
Normal file
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'preapplication' => [
|
||||
'subject' => 'Your pre-applicaction for issuing a hacker passport',
|
||||
'body1' => "Hello,<br /><br />Your preliminary application has been successfully submitted.<br />Your reference number is:",
|
||||
'body2' => "<br /><br />The following data has been submitted:<br />",
|
||||
'body3' => "<br /><br />Please keep this email for your records. <br />If possible, print out form 5, which is attached to the email. Fill in your reference number and bring it with you when you pick up your hacker passport.",
|
||||
'signature' => "Sincerely,<br /><br /><br />Your C3Gov – Your office in the CCC district region"
|
||||
]
|
||||
];
|
||||
Submodule public/Dokumente updated: 8a14d91484...95ab7f9b4e
43
public/js/preapplication/preapplication.js
Normal file
43
public/js/preapplication/preapplication.js
Normal file
@@ -0,0 +1,43 @@
|
||||
$(function() {
|
||||
$('select[autocomplete="off"]').each(function() {
|
||||
let selectedValue = $(this).find('option[selected]').val();
|
||||
if (selectedValue) {
|
||||
$(this).val(selectedValue);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
function vorantragAbschicken(){
|
||||
|
||||
let data = {};
|
||||
data.event = $('#eventSelect').val();
|
||||
data.passport_type = $('#passport_type').val();
|
||||
data.mail = $('#mail').val();
|
||||
data.first_name = $('#firstname').val();
|
||||
data.last_name = $('#lastname').val();
|
||||
data.location = $('#location').val();
|
||||
|
||||
console.log(data);
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/vorbeantragen/absenden",
|
||||
data: data,
|
||||
dataType: "json",
|
||||
success:function(r){
|
||||
if(r.messageStatus === "success"){
|
||||
$('#mail').val("");
|
||||
$('#firstname').val("");
|
||||
$('#lastname').val("");
|
||||
$('#location').val("");
|
||||
alert(r.errorMessage);
|
||||
} else {
|
||||
alert(r.errorMessage);
|
||||
}
|
||||
},
|
||||
error:function(r, a, e){
|
||||
alert(e);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
@@ -1,7 +1,46 @@
|
||||
@php use App\Models\ChaosEvents; @endphp
|
||||
@extends('layout.app')
|
||||
@section('scripts')
|
||||
<script src="{{ asset('/js/preapplication/preapplication.js') }}"></script>
|
||||
@endsection
|
||||
|
||||
@section('content')
|
||||
<h1>{{ __('app.preapplication.title') }}</h1>
|
||||
|
||||
<p>{!! __('app.preapplication.content') !!}</p>
|
||||
|
||||
@forelse (ChaosEvents::getActiveEvents() as $event)
|
||||
<div class="eingabemaske">
|
||||
<select name="event" id="eventSelect">
|
||||
<option value="{{ $event->id }}">{{ $event->name }}</option>
|
||||
</select>
|
||||
<br/>
|
||||
|
||||
<label for="passport_type">{{ __('app.preapplication.passport_type') }}</label>
|
||||
<select name="passport_type" id="passport_type">
|
||||
<option value="d">{{ __('app.preapplication.passport.standard') }}</option>
|
||||
<option value="k">{{ __('app.preapplication.passport.kid') }}</option>
|
||||
</select>
|
||||
<br/>
|
||||
|
||||
<label for="mail">{{ __('app.preapplication.mail') }}:</label>
|
||||
<input type="text" id="mail" name="mail" placeholder="{{ __('app.preapplication.mail') }}" required>
|
||||
<br/>
|
||||
<label for="firstname">{{ __('app.preapplication.firstname') }}:</label>
|
||||
<input type="text" id="firstname" name="firstname" placeholder="{{ __('app.preapplication.firstname') }}"
|
||||
required>
|
||||
<br/>
|
||||
<label for="lastname">{{ __('app.preapplication.lastname') }}:</label>
|
||||
<input type="text" id="lastname" name="lastname" placeholder="{{ __('app.preapplication.lastname') }}">
|
||||
<br/>
|
||||
<label for="location">{{ __('app.preapplication.location') }}:</label>
|
||||
<input type="text" id="location" name="location" placeholder="{{ __('app.preapplication.location') }}">
|
||||
<br /><br />
|
||||
<button id="apply" onclick="vorantragAbschicken()">{{ __('app.preapplication.apply') }}</button>
|
||||
</div>
|
||||
|
||||
@empty
|
||||
<p><b>{{ __('app.preapplication.noevent') }}</b></p>
|
||||
@endforelse
|
||||
|
||||
@endsection
|
||||
|
||||
@@ -26,8 +26,8 @@
|
||||
</div>
|
||||
<div class="language-area">
|
||||
<div class="language">
|
||||
<img alt="{{ __('app.language.de') }}" onclick="setLanguage('de')" src="{{ asset("Bilder/deutsch.gif") }}">
|
||||
<img alt="{{ __('app.language.en') }}" onclick="setLanguage('en')" src="{{ asset("Bilder/englisch.gif") }}">
|
||||
<img alt="{{ __('app.language.de') }}" onclick="setLanguage('de')" src="{{ asset("Bilder/deutschloop.gif") }}">
|
||||
<img alt="{{ __('app.language.en') }}" onclick="setLanguage('en')" src="{{ asset("Bilder/englischloop.gif") }}">
|
||||
</div>
|
||||
<br />
|
||||
<div class="login-status">{{ __('app.signed_in_as') }} {{Auth::user()->name ?? __("app.guest")}}</div>
|
||||
|
||||
8
resources/views/mail/preapplication.blade.php
Normal file
8
resources/views/mail/preapplication.blade.php
Normal file
@@ -0,0 +1,8 @@
|
||||
{!! __('mail.preapplication.body1') !!}
|
||||
{{ $pa->reference_number }}
|
||||
{!! __('mail.preapplication.body2') !!}
|
||||
{{ __('app.preapplication.firstname') }}: {{ $pa->first_name }}<br />
|
||||
{{ __('app.preapplication.lastname') }}: {{ $pa->last_name }}<br />
|
||||
{{ __('app.preapplication.location') }}: {{ $pa->location }}<br />
|
||||
{!! __('mail.preapplication.body3') !!}<br /><br />
|
||||
{!! __('mail.preapplication.signature') !!}
|
||||
@@ -1,3 +1,4 @@
|
||||
@php use App\Models\TickerMessages; @endphp
|
||||
@extends('layout.app')
|
||||
@section('scripts')
|
||||
<link rel="stylesheet" href="{{ asset("css/ticker/ticker.css") }}">
|
||||
@@ -10,39 +11,37 @@
|
||||
<div id="fehlermeldung">Hier kann der Ticker verändert werden.</div>
|
||||
<div class="split-left">
|
||||
<h2>Deutsch</h2>
|
||||
<label for="ticker_de">Aktive Tickernachrichten:</label><br /><br />
|
||||
<label for="ticker_de">Aktive Tickernachrichten:</label><br/><br/>
|
||||
<select name="ticker_de" id="ticker_de" multiple>
|
||||
@foreach(\App\Models\TickerMessages::where('language', 'de')->orderBy('updated_at', 'desc')->get() as $tm)
|
||||
@foreach(TickerMessages::where('language', 'de')->orderBy('updated_at', 'desc')->get() as $tm)
|
||||
<option value="{{$tm->id}}">{{$tm->message}}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
<br /><br />
|
||||
<br/><br/>
|
||||
<button onclick="remove('de')">Ausgewählte Tickernachricht löschen</button>
|
||||
<br /><br /><br />
|
||||
<br/><br/><br/>
|
||||
|
||||
<label for="insert_de">Tickernachricht erstellen: </label><br />
|
||||
<label for="insert_de">Tickernachricht erstellen: </label><br/>
|
||||
<input size="32" type="text" id="insert_de">
|
||||
<br /><br />
|
||||
<br/><br/>
|
||||
<button onclick="insert('de')">Tickernachricht hinzufügen</button>
|
||||
</div>
|
||||
<div class="split-right">
|
||||
<h2>Englisch</h2>
|
||||
<label for="ticker_en">Aktive Tickernachrichten:</label><br /><br />
|
||||
<label for="ticker_en">Aktive Tickernachrichten:</label><br/><br/>
|
||||
<select name="ticker_en" id="ticker_en" multiple>
|
||||
@foreach(\App\Models\TickerMessages::where('language', 'en')->orderBy('updated_at', 'desc')->get() as $tm)
|
||||
@foreach(TickerMessages::where('language', 'en')->orderBy('updated_at', 'desc')->get() as $tm)
|
||||
<option value="{{$tm->id}}">{{$tm->message}}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
<br /><br />
|
||||
<br/><br/>
|
||||
<button onclick="remove('en')">Ausgewählte Tickernachricht löschen</button>
|
||||
<br /><br /><br />
|
||||
<br/><br/><br/>
|
||||
|
||||
<label for="insert_de">Tickernachricht erstellen: </label><br />
|
||||
<label for="insert_de">Tickernachricht erstellen: </label><br/>
|
||||
<input size="32" type="text" id="insert_en">
|
||||
<br /><br />
|
||||
<br/><br/>
|
||||
<button onclick="insert('en')">Tickernachricht hinzufügen</button>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
@endsection
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
use App\Http\Controllers\BlogController;
|
||||
use App\Http\Controllers\LoginController;
|
||||
use App\Http\Controllers\PreApplicationController;
|
||||
use App\Http\Controllers\WebsiteController;
|
||||
use App\Http\Controllers\TickerController;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
@@ -14,7 +15,9 @@ Route::get('/kontakt', [WebsiteController::class, 'contact'])->name('contact');
|
||||
Route::get('/impressum', [WebsiteController::class, 'imprint'])->name('imprint');
|
||||
Route::get('/services', [WebsiteController::class, 'services'])->name('services');
|
||||
Route::get('/neuigkeiten', [WebsiteController::class, 'news'])->name('news');
|
||||
Route::get('/beantragen', [WebsiteController::class, 'apply'])->name('apply');
|
||||
|
||||
Route::get('/vorbeantragen', [WebsiteController::class, 'apply'])->name('apply');
|
||||
Route::post('/vorbeantragen/absenden', [PreApplicationController::class, 'send']);
|
||||
|
||||
Route::get('/intern/registrieren', [WebsiteController::class, 'showRegister']);
|
||||
Route::post('/intern/registrieren/abschicken', [LoginController::class, 'register']);
|
||||
|
||||
Reference in New Issue
Block a user