Final Roundmail system, show users with missing tips/jokers in playerlist as well.
This commit is contained in:
parent
6d7ee1a47c
commit
70e28110cb
19 changed files with 3700 additions and 66 deletions
231
pfosten/app/Http/Controllers/RoundmailController.php
Normal file
231
pfosten/app/Http/Controllers/RoundmailController.php
Normal file
|
|
@ -0,0 +1,231 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Roundmail;
|
||||
use App\User;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
use App\Mail\RoundmailMailer;
|
||||
use Auth;
|
||||
use DB;
|
||||
use Log;
|
||||
use Carbon;
|
||||
|
||||
class RoundmailController extends Controller
|
||||
{
|
||||
|
||||
public function index()
|
||||
{
|
||||
if (Auth::guest()) { return redirect("/"); }
|
||||
if (!Auth::user()->admin) { return redirect("/"); }
|
||||
|
||||
$mails_db = Roundmail::all();
|
||||
$mails=array();
|
||||
foreach($mails_db as $mail_db) {
|
||||
$fields=array();
|
||||
$fields['id'] = $mail_db->id;
|
||||
$fields['send_date'] = $mail_db->send_date;
|
||||
$fields['topic'] = $mail_db->topic;
|
||||
|
||||
$sender = User::where('id','=',$mail_db->user_id)->first();
|
||||
$sender_name="(Gelöschter Anwender)";
|
||||
if ($sender) { $sender_name=$sender->name; }
|
||||
$fields['sender'] = $sender_name;
|
||||
|
||||
array_push($mails,$fields);
|
||||
}
|
||||
$mails=array_reverse($mails);
|
||||
|
||||
return view('roundmails.index',compact('mails'));
|
||||
}
|
||||
|
||||
public function show($mail_id) {
|
||||
if (Auth::guest()) { return redirect("/"); }
|
||||
if (!Auth::user()->admin) { return redirect("/"); }
|
||||
|
||||
$user_id=Auth::user()->id;
|
||||
|
||||
$users = DB::table('users')->where('deleted',null)->orderBy('lastname')->get();
|
||||
|
||||
$active_users=array();
|
||||
$activeMailList=array();
|
||||
|
||||
|
||||
$inactive_users=array();
|
||||
$inactiveMailList=array();
|
||||
|
||||
|
||||
$missingTippMailList=array();
|
||||
$missingJokerMailList=array();
|
||||
|
||||
$adminMailList=array();
|
||||
|
||||
$topic="";
|
||||
//TODO: umrüsten für Anzeige von Bestandsmails
|
||||
$send_date = date("d.m.Y h:i:s", time());
|
||||
|
||||
|
||||
Log::info("Users to check for missing tipps:" . sizeof($users));
|
||||
foreach($users as $user) {
|
||||
if (User::is_season_paid($user->id)) {
|
||||
array_push($active_users,$user);
|
||||
array_push($activeMailList,$user->email);
|
||||
} else {
|
||||
array_push($inactive_users, $user);
|
||||
array_push($inactiveMailList,$user->email);
|
||||
}
|
||||
|
||||
//Log::info("user-id=".$user->id.", ".$user->name);
|
||||
//Log::info("Tipp: ".User::hasMissingTipp($user->id));
|
||||
|
||||
if (User::hasMissingTipp($user->id)) {
|
||||
array_push($missingTippMailList,$user->email);
|
||||
}
|
||||
|
||||
if (User::hasMissingJoker($user->id) ) {
|
||||
array_push($missingJokerMailList,$user->email);
|
||||
}
|
||||
|
||||
if ($user->admin==true) {
|
||||
array_push($adminMailList,$user->email);
|
||||
}
|
||||
}
|
||||
|
||||
Log::info("Size of missingMailist=".sizeof($missingTippMailList));
|
||||
|
||||
$activeMailList = implode(",",$activeMailList);
|
||||
$inactiveMailList = implode(",",$inactiveMailList);
|
||||
$missingTippMailList = implode(",",$missingTippMailList);
|
||||
$missingJokerMailList = implode(",",$missingJokerMailList);
|
||||
$adminMailList = implode(",",$adminMailList);
|
||||
|
||||
|
||||
|
||||
$topic="";
|
||||
$mail_message="";
|
||||
$sender_name=Auth::user()->name;
|
||||
$recipients="";
|
||||
$viewmode=false;
|
||||
if ($mail_id>-1) {
|
||||
$viewmode=true;
|
||||
$mail = Roundmail::where('id','=',$mail_id)->first();
|
||||
$send_date = $mail->send_date;
|
||||
$topic = $mail->topic;
|
||||
$mail_message = str_replace('<br/>','\n',$mail->message);
|
||||
$recipients = $mail->recipients;
|
||||
$sender = User::where('id','=',$mail->user_id)->first();
|
||||
$sender_name = $sender->name;
|
||||
}
|
||||
|
||||
|
||||
|
||||
return view('roundmails.show',compact('mail_id','activeMailList','inactiveMailList','missingTippMailList','missingJokerMailList','adminMailList','send_date','user_id','topic', 'mail_message', 'recipients', 'sender_name','viewmode'));
|
||||
|
||||
}
|
||||
|
||||
public function send() {
|
||||
if (Auth::guest()) { return redirect("/"); }
|
||||
if (!Auth::user()->admin) { return redirect("/"); }
|
||||
|
||||
|
||||
// Validate form
|
||||
$this->validate(request(), [
|
||||
'user_id' => 'required',
|
||||
'send_date' => 'required',
|
||||
'topic' => 'required',
|
||||
'message' => 'required',
|
||||
'recipients'=> 'required'
|
||||
]);
|
||||
|
||||
Log::info("Preparing to send from user_id ".request('user_id'));
|
||||
|
||||
/*
|
||||
foreach($users as $user) {
|
||||
|
||||
Log::info("Sending RoundmailMailer to: ".$user->name);
|
||||
\Mail::to($user)->send(new RoundmailMailer);
|
||||
}
|
||||
*/
|
||||
|
||||
$u = new User(['email'=>'magus@zauberturm.de','name'=>'Torsten der Schneider']);
|
||||
|
||||
|
||||
|
||||
$r = new RoundmailMailer();
|
||||
$r->user_id = Auth::user()->id;
|
||||
$r->send_date = Carbon\Carbon::now();
|
||||
$r->recipients = request('recipients');
|
||||
$r->topic = request('topic');
|
||||
$r->mail_message = str_replace("\n","<br/>", request('message'));
|
||||
|
||||
// Die hier ist nur für die DB
|
||||
$rm = new RoundMail();
|
||||
$rm->send_date=$r->send_date;
|
||||
$rm->recipients=$r->recipients;
|
||||
$rm->user_id=$r->user_id;
|
||||
$rm->topic=$r->topic;
|
||||
$rm->message=$r->mail_message;
|
||||
$rm->save();
|
||||
|
||||
\Mail::to(explode(",",$r->recipients))->send($r);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// COPY/PAST, please replace !
|
||||
|
||||
|
||||
$user_id=Auth::user()->id;
|
||||
|
||||
$users = DB::table('users')->where('deleted',null)->orderBy('lastname')->get();
|
||||
$active_users=array();
|
||||
$activeMailList=array();
|
||||
|
||||
|
||||
$inactive_users=array();
|
||||
$inactiveMailList=array();
|
||||
|
||||
$users_with_missing_tips=array(); // $users_with_missing_tips (or jokers)
|
||||
$missingMailList=array();
|
||||
|
||||
$adminMailList=array();
|
||||
|
||||
$topic="";
|
||||
//TODO: umrüsten für Anzeige von Bestandsmails
|
||||
$maildate = date("d.m.Y h:i:s", time());
|
||||
|
||||
foreach($users as $user) {
|
||||
if (User::is_season_paid($user->id)) {
|
||||
array_push($active_users,$user);
|
||||
array_push($activeMailList,$user->email);
|
||||
} else {
|
||||
array_push($inactive_users, $user);
|
||||
array_push($inactiveMailList,$user->email);
|
||||
}
|
||||
|
||||
if (User::hasMissingJoker($user->id) || User::hasMissingTipp($user->id)) {
|
||||
array_push($users_with_missing_tips,$user);
|
||||
array_push($missingMailList,$user->email);
|
||||
}
|
||||
|
||||
if ($user->admin) {
|
||||
array_push($adminMailList,$user->email);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$activeMailList = implode(",",$activeMailList);
|
||||
$inactiveMailList = implode(",",$inactiveMailList);
|
||||
$missingMailList = implode(",",$missingMailList);
|
||||
$adminMailList = implode(",",$adminMailList);
|
||||
|
||||
|
||||
$round_id=-1;
|
||||
return view('roundmails.show',compact('round_id','activeMailList','inactiveMailList','missingMailList','adminMailList','maildate','user_id','topic'));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue