Skip to content
Permalink
Browse files

Παρακολούθηση ενεργών χρηστών κατά την καταχώριση νέου Πρωτοκόλλου

	τροποποίηση:     .env
	τροποποίηση:     app/Http/Controllers/KeepvalueController.php
	τροποποίηση:     app/Http/Controllers/ProtocolController.php
	τροποποίηση:     composer.json
	τροποποίηση:     config/app.php
	νέο αρχείο:      database/migrations/2019_03_17_102513_create_sessions_table.php
	τροποποίηση:     resources/views/config.blade.php
	τροποποίηση:     resources/views/printedAttachments.blade.php
	τροποποίηση:     resources/views/protocol.blade.php
	τροποποίηση:     resources/views/protocolList.blade.php
Τα δεδομένα της session καταχωρούνται στη βάση δεδομένων. Έτσι
παρακολουθούμε αν υπάρχουν και πόσοι ενεργοί χρήστες. Αν είναι ενεργοί
πάνω από 2 χρήστες εμφανίζονται στο κάτω μέρος της φόρμας εισαγωγής Νέου
Πρωτοκόλλου.
Αν είναι ενεργοί 2 χρήστες με δικαίωμα εγγραφής Πρωτοκόλλου (Συγγραφέας,
Διαχειριστής) τότε ο Νέος Αρ. Πρωτοκόλλου εμφανίζεται μετά την
καταχώριση.
Τροποποιήθηκαν επίσης οι εκτυπώσεις Πρωτοκόλλων. Αν δεν υπάρχουν
εγγραφές που να ικανοποιούν τα κριτήρια εμφανίζεται ωραίο μήνυμα.

ΠΡΟΣΟΧΗ
Όσοι έχουν Πρωτόκολλο σε χρήση πρέπει για να δημιουργηθεί
το table sessions στη βάση δεδομένων να
ακολουθήσουν τις οδηγίες στον ακόλουθο υπερσύνδεσμο:
https://github.com/joshrainwater/active-users#setup
Ειδικότερα τις εντολές:
php artisan session:table
php artisan migrate

ΚΡΑΤΗΣΤΕ BACKUP ΤΗΣ ΒΔ ΚΑΙ ΤΩΝ ΑΡΧΕΙΩΝ ΠΡΙΝ ΚΑΝΕΤΕ ΟΤΙΔΗΠΟΤΕ
  • Loading branch information...
g-theodoroy committed Mar 25, 2019
1 parent 5249da1 commit 01505fb588f1fe867a38c3bc1bfde9a83f475f04
4 .env
@@ -13,7 +13,7 @@ DB_PASSWORD=p@ssw@rd

BROADCAST_DRIVER=log
CACHE_DRIVER=file
SESSION_DRIVER=file
SESSION_DRIVER=database
QUEUE_DRIVER=sync

REDIS_HOST=127.0.0.1
@@ -29,4 +29,4 @@ MAIL_ENCRYPTION=tls

PUSHER_APP_ID=
PUSHER_KEY=
PUSHER_SECRET=
PUSHER_SECRET=
@@ -40,7 +40,7 @@ public function getTitleColorStyle(){
public function index(Keepvalue $keepvalue)
{
$config = new Config;
$keepvalues = Keepvalue::orderBy(DB::raw("MID(`fakelos`,LOCATE('.',`fakelos`)+1,LENGTH(`fakelos`)-(LOCATE('.',`fakelos`)+1))+0<>0 DESC, MID(`fakelos`,LOCATE('.',`fakelos`)+1,LENGTH(`fakelos`)-(LOCATE('.',`fakelos`)+1))+0, `fakelos`"))->paginate($config->getConfigValueOf('showRowsInPage'));
$keepvalues = Keepvalue::orderBy(DB::raw("SUBSTR(`fakelos`,3,LENGTH(`fakelos`)-(3))+0<>0 DESC, SUBSTR(`fakelos`,3,LENGTH(`fakelos`)-(3))+0, `fakelos`"))->paginate($config->getConfigValueOf('showRowsInPage'));
$ipiresiasName = $config->getConfigValueOf('ipiresiasName');
$titleColorStyle = $this->getTitleColorStyle() ;
@@ -85,13 +85,13 @@ public function store()
]);
$notification = array(
'message' => 'Επιτυχημένη καταχώριση.',
'message' => 'Επιτυχημένη καταχώριση.',
'alert-type' => 'success'
);
session()->flash('notification',$notification);
return back();
}
public function update($id)
@@ -105,7 +105,7 @@ public function update($id)
$validatevalues =[
'fakelos' => "required|max:255|unique:keepvalues,fakelos,$id,id",
'keep' => 'nullable|integer',
]; // 'describe' => 'required',
]; // 'describe' => 'required',
// 'keep' => 'nullable|integer|required_without:keep_alt',
// 'keep_alt' => 'nullable|max:255|required_without:keep',
@@ -126,13 +126,13 @@ public function update($id)
Keepvalue::whereId($id)->update($updatevalues);
$notification = array(
'message' => 'Επιτυχημένη ενημέρωση.',
'message' => 'Επιτυχημένη ενημέρωση.',
'alert-type' => 'success'
);
session()->flash('notification',$notification);
return back();
}
@@ -14,6 +14,7 @@
use Illuminate\Validation\Rule;
use Validator;
use DB;
use Active;
/*
@@ -42,7 +43,7 @@
*/
class ProtocolController extends Controller
class ProtocolController extends Controller
{
protected $protocolfields = [
@@ -88,7 +89,7 @@ public function getTitleColorStyle(){
public function index( Protocol $protocol){
$fakeloi= Keepvalue::orderBy(DB::raw("MID(`fakelos`,LOCATE('.',`fakelos`)+1,LENGTH(`fakelos`)-(LOCATE('.',`fakelos`)+1))+0<>0 DESC, MID(`fakelos`,LOCATE('.',`fakelos`)+1,LENGTH(`fakelos`)-(LOCATE('.',`fakelos`)+1))+0, `fakelos`"))->select('fakelos', 'describe')->get();
$fakeloi= Keepvalue::orderBy(DB::raw("SUBSTR(`fakelos`,3,LENGTH(`fakelos`)-3)+0<>0 DESC, SUBSTR(`fakelos`,3,LENGTH(`fakelos`)-(3))+0, `fakelos`"))->select('fakelos', 'describe')->get();
$config = new Config;
$newetos = $config->getConfigValueOf('yearInUse')?$config->getConfigValueOf('yearInUse'):Carbon::now()->format('Y');
@@ -108,6 +109,19 @@ public function index( Protocol $protocol){
$newprotocolnum = 1;
}
}
// βρίσκω τους όλους ενεργούς χρήστες
$activeusers = Active::users()->mostRecent()->get();
$activeusers2show = [];
foreach($activeusers as $actuser){
$activeusers2show[] = $actuser['user']['name'];
}
// μετράω μόνο τους Διαχειριστές και Συγγραφείς που έχουν δικαίωμα να γράψουν
$activeuserscount = Active::users()->whereHas('user', function($q) {
$q->where('role_id', 1)->orWhere('role_id', 2) ;
})->count();
// αν είναι πάνω από ένας δεν εμφανίζω τον επόμενο Αρ.Πρωτ.
if ($activeuserscount > 1) $newprotocolnum = '';
$newprotocoldate = Carbon::now()->format('d/m/Y');
$class = 'bg-info';
$protocoltitle = 'Νέο Πρωτόκολλο';
@@ -153,7 +167,7 @@ public function index( Protocol $protocol){
$years = Keepvalue::whereNotNull('keep')->select('keep')->distinct()->orderby('keep', 'asc')->get();
$words = Keepvalue::whereNotNull('keep_alt')->select('keep_alt')->distinct()->orderby('keep_alt', 'asc')->get();
return view('protocol', compact('fakeloi', 'protocol', 'newetos', 'newprotocolnum', 'newprotocoldate', 'in_date', 'out_date', 'diekp_date', 'class', 'protocoltitle', 'protocolArrowStep', 'submitVisible','delVisible', 'ipiresiasName', 'readonly', 'years', 'words', 'keepval', 'allowUserChangeKeepSelect', 'titleColorStyle'));
return view('protocol', compact('fakeloi', 'protocol', 'newetos', 'newprotocolnum', 'newprotocoldate', 'in_date', 'out_date', 'diekp_date', 'class', 'protocoltitle', 'protocolArrowStep', 'submitVisible','delVisible', 'ipiresiasName', 'readonly', 'years', 'words', 'keepval', 'allowUserChangeKeepSelect', 'titleColorStyle', 'activeusers2show'));
}
public function chkForUpdates(){
@@ -773,6 +787,11 @@ public function printprotocols(){
}
public function printed(){
$config = new Config;
$ipiresiasName = $config->getConfigValueOf('ipiresiasName');
$etos = $config->getConfigValueOf('yearInUse');
$datetime = Carbon::now()->format('d/m/Y H:m:s');
$wherevalues = [];
if(request('aponum')){
@@ -783,6 +802,7 @@ public function printed(){
}
if(request('etosForMany')){
$wherevalues[] = ['etos', request('etosForMany')];
$etos = request('etosForMany');
}
if(request('apoProtocolDate')){
$wherevalues[] = ['protocoldate', '>=', Carbon::createFromFormat('d/m/Y', request('apoProtocolDate'))->format('Ymd')];
@@ -803,10 +823,6 @@ public function printed(){
if($protocol->out_date) $protocol->out_date = Carbon::createFromFormat('Ymd', $protocol->out_date)->format('d/m/Y');
if($protocol->diekp_date) $protocol->diekp_date = Carbon::createFromFormat('Ymd', $protocol->diekp_date)->format('d/m/Y');
}
$config = new Config;
$ipiresiasName = $config->getConfigValueOf('ipiresiasName');
$etos = $config->getConfigValueOf('yearInUse');
$datetime = Carbon::now()->format('d/m/Y H:m:s');
return view('printed', compact('protocols', 'ipiresiasName' , 'etos', 'datetime'));
}
@@ -841,6 +857,11 @@ public function printAttachments(){
}
public function printedAttachments(){
$config = new Config;
$ipiresiasName = $config->getConfigValueOf('ipiresiasName');
$etos = $config->getConfigValueOf('yearInUse');
$datetime = Carbon::now()->format('d/m/Y H:m:s');
$wherevalues = [];
if(request('aponum')){
@@ -851,29 +872,26 @@ public function printedAttachments(){
}
if(request('etosForMany')){
$wherevalues[] = ['etos', request('etosForMany')];
}
$etos = request('etosForMany');
}
if(request('apoProtocolDate')){
$wherevalues[] = ['protocoldate', '>=', Carbon::createFromFormat('d/m/Y', request('apoProtocolDate'))->format('Ymd')];
}
if(request('eosProtocolDate')){
$wherevalues[] = ['protocoldate', '<=', Carbon::createFromFormat('d/m/Y', request('eosProtocolDate'))->format('Ymd')];
}
$foundProtocolsCount = null;
if (! $wherevalues){
return back();
}else{
$foundProtocolsCount = Protocol::where($wherevalues)->count();
$protocols = Protocol::where($wherevalues)->orderby('protocolnum','asc')->get();
$protocols = Protocol::has('attachments')->where($wherevalues)->orderby('protocolnum','asc')->get();
}
foreach($protocols as $protocol){
if($protocol->protocoldate) $protocol->protocoldate = Carbon::createFromFormat('Ymd', $protocol->protocoldate)->format('d/m/Y');
if($protocol->in_date) $protocol->in_date = Carbon::createFromFormat('Ymd', $protocol->in_date)->format('d/m/Y');
if($protocol->out_date) $protocol->out_date = Carbon::createFromFormat('Ymd', $protocol->out_date)->format('d/m/Y');
}
$config = new Config;
$ipiresiasName = $config->getConfigValueOf('ipiresiasName');
$etos = $config->getConfigValueOf('yearInUse');
$datetime = Carbon::now()->format('d/m/Y H:m:s');
return view('printedAttachments', compact('protocols', 'ipiresiasName' , 'etos', 'datetime'));
}
@@ -7,6 +7,7 @@
"require": {
"php": ">=5.6.4",
"laravel/framework": "5.3.*",
"joshrainwater/active-users": "^1.0",
"barryvdh/laravel-ide-helper": "^2.2",
"doctrine/dbal": "^2.5"
},
@@ -164,6 +164,7 @@
Illuminate\View\ViewServiceProvider::class,
Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class,
Rainwater\Active\ActiveServiceProvider::class,
/*
* Package Service Providers...
@@ -228,6 +229,7 @@
'URL' => Illuminate\Support\Facades\URL::class,
'Validator' => Illuminate\Support\Facades\Validator::class,
'View' => Illuminate\Support\Facades\View::class,
'Active' => Rainwater\Active\ActiveFacade::class,
],
@@ -0,0 +1,35 @@
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateSessionsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('sessions', function (Blueprint $table) {
$table->string('id')->unique();
$table->unsignedInteger('user_id')->nullable();
$table->string('ip_address', 45)->nullable();
$table->text('user_agent')->nullable();
$table->text('payload');
$table->integer('last_activity');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('sessions');
}
}
@@ -218,7 +218,8 @@
</div>
</div>

<div class="panel panel-default col-md-12 col-sm-12 ">
@if (env('DB_CONNECTION') !== 'sqlite')
<div class="panel panel-default col-md-12 col-sm-12 ">
<div class="row bg-warning">
<div class="form-control-static h4 text-center">Ρυθμίσεις αντιγράφων ασφαλείας</div>
</div>
@@ -231,7 +232,7 @@
</div>
</div>
</div>

@endif

<div class="row">
<div class="col-md-2 col-sm-2 col-md-offset-4 col-sm-offset-4 text-center">
@@ -47,7 +47,7 @@
<tr>
<th colspan=9>
<div class="col-md-3">{{$ipiresiasName}}</div>
<div class="col-md-6 text-center">Εκτύπωση Πρωτοκόλλων με Συνημμένα Αρχεία</div>
<div class="col-md-6 text-center">Εκτύπωση Πρωτοκόλλων με Συνημμένα Αρχεία έτους {{$etos}}</div>
</th>
</tr>
<tr >
@@ -69,10 +69,7 @@
</tr>
</thead>
<tbody>
@php($foundattacments = false)
@foreach($protocols as $protocol)
@if($protocol->attachments()->get()->count())
@php($foundattacments = true)
<tr>
<td class="small middle">
<strong>{{$protocol->protocolnum}}</strong><br>
@@ -121,16 +118,12 @@
<td class="small middle"><span class='small'>
<ul class='list-unstyled'>
@foreach ($protocol->attachments()->get() as $attachment)
@if($attachment->name)
<li>
{{$attachment->name}}
</li>
@endif
@if($attachment->ada)
<li>
{{$attachment->ada}}
</li>
@endif
@if($attachment->name)
<li>{{$attachment->name}}</li>
@endif
@if($attachment->ada)
<li>{{$attachment->ada}}</li>
@endif
@endforeach
</ul>
</span>
@@ -155,10 +148,9 @@
@endforeach
</span>
</td>
</tr>
@endif
</tr>
@endforeach
@if(! $foundattacments)
@if(! count($protocols))
<tr>
<td class="small" colspan=12 >Δεν υπάρχουν Πρωτόκολλα με συνημμένα αρχεία τα οποία ικανοποιούν τα κριτήρια που θέσατε.</td>
</tr>
@@ -389,6 +389,14 @@ function periigisi(id){
</div>
</form>
</div>
@if(count($activeusers2show)>1)
<div class="col-md-2 col-sm-2 small text-right">Ενεργοί χρήστες: {{count($activeusers2show)}}</div>
<div class="col-md-10 col-sm-10 small text-left">
@foreach($activeusers2show as $user2show)
{{$user2show}}@if(! $loop->last), @endif
@endforeach
</div>
@endif
</div>
</div>
</div>

0 comments on commit 01505fb

Please sign in to comment.
You can’t perform that action at this time.