From 61006e34b7a86388bf775994a0d7e1af2856f26b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Abra=C3=A3o=20Barbosa?= Date: Thu, 24 Mar 2022 20:12:04 -0300 Subject: [PATCH] alteracao na estrutura de carregamento de views --- app/Http/Controllers/DashboardController.php | 3 +- app/Http/Controllers/PADController.php | 116 ++++++++++++ app/Models/Curso.php | 2 +- app/Models/PAD.php | 34 ++++ app/Queries/PADQuery.php | 19 ++ .../2022_02_02_014310_create_curso_table.php | 2 +- ...2022_03_20_233337_create_p_a_d_s_table.php | 10 +- ...345_create_ref_planejamento_ches_table.php | 2 +- database/seeders/CursoSeeder.php | 3 +- public/css/forms.css | 52 ++++++ public/js/forms.js | 85 +++++++++ resources/views/layouts/app.blade.php | 5 +- resources/views/layouts/main.blade.php | 85 +++++++-- resources/views/layouts/navigation.blade.php | 4 +- resources/views/layouts/pad/create.blade.php | 17 -- resources/views/layouts/pad/index.blade.php | 33 ---- .../navigation_teacher.blade.php | 38 ++-- resources/views/pad/components/list.blade.php | 25 +++ resources/views/pad/create.blade.php | 59 ++++++ resources/views/pad/index.blade.php | 173 ++++++++++++++++++ .../views/{layouts => }/pad/update.blade.php | 2 +- resources/views/unidade/index.blade.php | 26 ++- routes/web.php | 26 +-- 23 files changed, 704 insertions(+), 117 deletions(-) create mode 100644 app/Http/Controllers/PADController.php create mode 100644 app/Queries/PADQuery.php create mode 100644 public/css/forms.css create mode 100644 public/js/forms.js delete mode 100644 resources/views/layouts/pad/create.blade.php delete mode 100644 resources/views/layouts/pad/index.blade.php create mode 100644 resources/views/pad/components/list.blade.php create mode 100644 resources/views/pad/create.blade.php create mode 100644 resources/views/pad/index.blade.php rename resources/views/{layouts => }/pad/update.blade.php (92%) diff --git a/app/Http/Controllers/DashboardController.php b/app/Http/Controllers/DashboardController.php index 86adb3d..4a0edaa 100644 --- a/app/Http/Controllers/DashboardController.php +++ b/app/Http/Controllers/DashboardController.php @@ -2,6 +2,7 @@ namespace App\Http\Controllers; +use App\Models\PAD; use App\Queries\UnidadeQuery; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; @@ -20,7 +21,7 @@ class DashboardController extends Controller if($user->isTypeTeacher()) { - return view('dashboard'); + return view('dashboard', ['PADs' => PAD::all(), 'menu_index'=> 0]); } } diff --git a/app/Http/Controllers/PADController.php b/app/Http/Controllers/PADController.php new file mode 100644 index 0000000..a3cf726 --- /dev/null +++ b/app/Http/Controllers/PADController.php @@ -0,0 +1,116 @@ +id); + return view('pad.index', ["PADs" => $PADs, 'index_menu' => 1 ]); + } + + /** + * Show the form for creating a new resource. + * + * @return \Illuminate\Http\Response + */ + public function create() + { + return view('pad.create', ['index_menu' => 1 ]); + } + + /** + * Store a newly created resource in storage. + * + * @param \Illuminate\Http\Request $request + * @return \Illuminate\Http\Response + */ + public function store(Request $request) + { + $rules = [ + 'first_name' => 'required|string|min:3|max:255', + 'city_name' => 'required|string|min:3|max:255', + 'email' => 'required|string|email|max:255' + ]; + $validator = Validator::make($request->all(),$rules); + if ($validator->fails()) { + return redirect('insert') + ->withInput() + ->withErrors($validator); + } + else{ + $data = $request->input(); + try{ + $student = new StudInsert; + $student->first_name = $data['first_name']; + $student->last_name = $data['last_name']; + $student->city_name = $data['city_name']; + $student->email = $data['email']; + $student->save(); + return redirect('insert')->with('status',"Insert successfully"); + } + catch(Exception $e){ + return redirect('insert')->with('failed',"operation failed"); + } + } + + return redirect('/dashboard'); + } + + /** + * Show the form for editing the specified resource. + * + * @param int $id + * @return \Illuminate\Http\Response + */ + public function edit($id) + { + $model = PAD::find($id); + return view('pad.update', ['pad' => $model]); + } + + /** + * Update the specified resource in storage. + * + * @param \Illuminate\Http\Request $request + * @param int $id + * @return \Illuminate\Http\Response + */ + public function update(Request $request, $id) + { + $model = PAD::find($id); + $model->name = $request->name; + $model->save(); + + return redirect('/pad/index'); + } + + /** + * Remove the specified resource from storage. + * + * @param int $id + * @return \Illuminate\Http\Response + */ + public function destroy($id) + { + $model = PAD::find($id); + $model->delete(); + + return redirect('/pad/index'); + } +} \ No newline at end of file diff --git a/app/Models/Curso.php b/app/Models/Curso.php index 7731d51..8c9aab2 100644 --- a/app/Models/Curso.php +++ b/app/Models/Curso.php @@ -14,7 +14,7 @@ class Curso extends Model * * @var string */ - protected $table = 'curso'; + protected $table = 'cursos'; /** * The attributes that are mass assignable. diff --git a/app/Models/PAD.php b/app/Models/PAD.php index ab6daca..3f3920e 100644 --- a/app/Models/PAD.php +++ b/app/Models/PAD.php @@ -8,4 +8,38 @@ use Illuminate\Database\Eloquent\Model; class PAD extends Model { use HasFactory; + + /** + * References table PADs + * + * @var string + */ + protected $table = 'PADs'; + + /** + * The attributes that are mass assignable. + * + * @var array + */ + protected $fillable = ['ano', 'semestre', 'carga_horaria', 'categoria', 'afastamento_total', 'afastamento_parcial', 'exerce_funcao_admin', 'exerce_funcao_sindical', 'licenca_de_acor_legais', 'outras_observacoes', 'professor_id', 'curso_id']; + + /** + * Get User with user.id = user.campus_id + * + * @return User + */ + public function professor() + { + return $this->belongsTo(User::class); + } + + /** + * Get Curso with curso.id = curso.curso_id + * + * @return Curso + */ + public function curso() + { + return $this->belongsTo(Curso::class); + } } diff --git a/app/Queries/PADQuery.php b/app/Queries/PADQuery.php new file mode 100644 index 0000000..402e0b7 --- /dev/null +++ b/app/Queries/PADQuery.php @@ -0,0 +1,19 @@ +id(); $table->string('name'); $table->foreignId('campus_id'); diff --git a/database/migrations/2022_03_20_233337_create_p_a_d_s_table.php b/database/migrations/2022_03_20_233337_create_p_a_d_s_table.php index 2d8b96e..d2bc1d7 100644 --- a/database/migrations/2022_03_20_233337_create_p_a_d_s_table.php +++ b/database/migrations/2022_03_20_233337_create_p_a_d_s_table.php @@ -13,7 +13,7 @@ class CreatePADSTable extends Migration */ public function up() { - Schema::create('p_a_d_s', function (Blueprint $table) { + Schema::create('PADs', function (Blueprint $table) { $table->id(); $table->timestamps(); $table->integer('ano'); @@ -26,6 +26,12 @@ class CreatePADSTable extends Migration $table->boolean('exerce_funcao_sindical')->default(false); $table->string('licenca_de_acor_legais', 50)->default(null); $table->string('outras_observacoes', 200)->nullable(true); + + $table->unsignedBigInteger('professor_id'); + $table->foreign('professor_id')->references('id')->on('users'); + + $table->unsignedBigInteger('curso_id'); + $table->foreign('curso_id')->references('id')->on('cursos'); }); } @@ -36,6 +42,6 @@ class CreatePADSTable extends Migration */ public function down() { - Schema::dropIfExists('p_a_d_s'); + Schema::dropIfExists('PADs'); } } diff --git a/database/migrations/2022_03_20_233345_create_ref_planejamento_ches_table.php b/database/migrations/2022_03_20_233345_create_ref_planejamento_ches_table.php index 8d1ddbe..b575942 100644 --- a/database/migrations/2022_03_20_233345_create_ref_planejamento_ches_table.php +++ b/database/migrations/2022_03_20_233345_create_ref_planejamento_ches_table.php @@ -19,7 +19,7 @@ class CreateRefPlanejamentoChesTable extends Migration $table->string("descricao_atividade", 50); $table->float("ch_semanal", 5, 2); $table->float("ch_maxima", 5, 2); - $table->foreignId('p_a_d_s_id') + $table->foreignId('PAD_id') ->constrained() ->onUpdate('cascade') ->onDelete('cascade'); diff --git a/database/seeders/CursoSeeder.php b/database/seeders/CursoSeeder.php index f9d09cd..8f3b517 100644 --- a/database/seeders/CursoSeeder.php +++ b/database/seeders/CursoSeeder.php @@ -5,7 +5,7 @@ namespace Database\Seeders; use App\Models\Campus; use App\Models\Curso; use Illuminate\Database\Seeder; -use Illuminate\Support\Facades\DB; + class CursoSeeder extends Seeder { @@ -29,6 +29,5 @@ class CursoSeeder extends Seeder ]); } } - } } diff --git a/public/css/forms.css b/public/css/forms.css new file mode 100644 index 0000000..670797c --- /dev/null +++ b/public/css/forms.css @@ -0,0 +1,52 @@ +/* content que contem o corpo da pagina */ +.content { + position: relative; + top: 0px; + width: 100%; +} + +.titulo { + font-size: 32px; + color: #000000; + font-family: Arial, sans-serif; + font-weight: bold; + text-align: center; +} + +#bordcab { + + margin: 0 0 0 0; + background: #e6e7e8; + + width: 100%; + height: 100%; + border-radius: 0px 0px 20px 20px; +} + +hr { + margin-top: 0px; + background-color: rgb(105, 105, 105); + border-top: 1px solid; +} + +#bord { + border-width: 1px; + border-style: solid; + border-color: rgb(105, 105, 105); + background-color: #e6e7e8; + width: 100%; + height: 100%; + border-radius: 20px; + padding: 1em; + margin: 20px; +} + +#compbord { + padding: 20px; + margin: 0px; +} + +#addrow { + padding: 20px; + margin: 0px; +} diff --git a/public/js/forms.js b/public/js/forms.js new file mode 100644 index 0000000..c349e1f --- /dev/null +++ b/public/js/forms.js @@ -0,0 +1,85 @@ +$(document).ready(function() { + $("#add_row").on("click", function() { + // Dynamic Rows Code + + // Get max row id and set new id + var newid = 0; + $.each($("#tab_logic tr"), function() { + if (parseInt($(this).data("id")) > newid) { + newid = parseInt($(this).data("id")); + } + }); + newid++; + + var tr = $("", { + id: "addr"+newid, + "data-id": newid + }); + + // loop through each td and create new elements with name of newid + $.each($("#tab_logic tbody tr:nth(0) td"), function() { + var td; + var cur_td = $(this); + + var children = cur_td.children(); + + // add new td and element if it has a nane + if ($(this).data("name") !== undefined) { + td = $("", { + "data-name": $(cur_td).data("name") + }); + + var c = $(cur_td).find($(children[0]).prop('tagName')).clone().val(""); + c.attr("name", $(cur_td).data("name") + newid); + c.appendTo($(td)); + td.appendTo($(tr)); + } else { + td = $("", { + 'text': $('#tab_logic tr').length + }).appendTo($(tr)); + } + }); + + // add delete button and td + /* + $("").append( + $("") + .click(function() { + $(this).closest("tr").remove(); + }) + ).appendTo($(tr)); + */ + + // add the new row + $(tr).appendTo($('#tab_logic')); + + $(tr).find("td button.row-remove").on("click", function() { + $(this).closest("tr").remove(); + }); +}); + + + + + // Sortable Code + var fixHelperModified = function(e, tr) { + var $originals = tr.children(); + var $helper = tr.clone(); + + $helper.children().each(function(index) { + $(this).width($originals.eq(index).width()) + }); + + return $helper; + }; + + $(".table-sortable tbody").sortable({ + helper: fixHelperModified + }).disableSelection(); + + $(".table-sortable thead").disableSelection(); + + + + $("#add_row").trigger("click"); +}); \ No newline at end of file diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php index baf7ffc..6b80a64 100644 --- a/resources/views/layouts/app.blade.php +++ b/resources/views/layouts/app.blade.php @@ -20,6 +20,7 @@ + @@ -32,7 +33,7 @@
@include('layouts.navigation') - +
{{ $main }}
@@ -69,6 +70,8 @@ @if(Auth::user()->isTypeCoordinator()) @include('layouts.user-jquery.jquery_coordinator') @endif + + diff --git a/resources/views/layouts/main.blade.php b/resources/views/layouts/main.blade.php index c9a938c..dec9008 100644 --- a/resources/views/layouts/main.blade.php +++ b/resources/views/layouts/main.blade.php @@ -1,31 +1,80 @@ + - - - + + + + + {{ config('app.name', 'Laravel') }} + + + - - + + - + - @yield('title') + + + + - - @section('body') +
+ + + @section('header') + @show + +
+
+ + @section('nav') + @show + +
+ @section('body') + @show +
+
+
+
+ +
+ Copyright ©2022. Universidade de Pernambuco - Todos os direitos reservados +
+ + + + + + + + @if (Auth::user()->isTypeAdmin()) + @include('layouts.user-jquery.jquery_admin') + @endif + + @if (Auth::user()->isTypeTeacher()) + @include('layouts.user-jquery.jquery_teacher') + @endif - @show + @if (Auth::user()->isTypeMenager()) + @include('layouts.user-jquery.jquery_menager') + @endif - @section('script') - - @show + @if (Auth::user()->isTypeCoordinator()) + @include('layouts.user-jquery.jquery_coordinator') + @endif - - - - + - \ No newline at end of file + diff --git a/resources/views/layouts/navigation.blade.php b/resources/views/layouts/navigation.blade.php index a4e2e1d..0a4dd1b 100644 --- a/resources/views/layouts/navigation.blade.php +++ b/resources/views/layouts/navigation.blade.php @@ -24,7 +24,9 @@ @if (Auth::user()->isTypeTeacher()) - @include('layouts.user-navigation.navigation_teacher') + @include('layouts.user-navigation.navigation_teacher', [ + 'index_menu' => (!empty($index_menu) ? $index_menu : 0), + ]) @endif diff --git a/resources/views/layouts/pad/create.blade.php b/resources/views/layouts/pad/create.blade.php deleted file mode 100644 index 4603409..0000000 --- a/resources/views/layouts/pad/create.blade.php +++ /dev/null @@ -1,17 +0,0 @@ - -@extends('dashboard') - -@section('form-unidade-create') -
-
- @method('POST') - @csrf -
- - -
- - -
-
-@endsection diff --git a/resources/views/layouts/pad/index.blade.php b/resources/views/layouts/pad/index.blade.php deleted file mode 100644 index bcc4d41..0000000 --- a/resources/views/layouts/pad/index.blade.php +++ /dev/null @@ -1,33 +0,0 @@ - -@extends('layouts.main') - -@section('title', 'Unidade') - -@section('body') - -
- @include('components.devcomponents.btn-create', ['route' => route('unidade_create')]) -
- - - - - - - - - - - @foreach($unidades as $unidade) - - - - - - @endforeach - -
#NameOpções
{{ $unidade->id}}{{ $unidade->name }} - @include('components.devcomponents.btn-edit', ['route' => route('unidade_edit', ['id' => $unidade->id])]) - @include('components.devcomponents.btn-delete', ['route' => route('unidade_delete', ['id' => $unidade->id])]) -
-@endsection diff --git a/resources/views/layouts/user-navigation/navigation_teacher.blade.php b/resources/views/layouts/user-navigation/navigation_teacher.blade.php index f7ecd70..7919840 100644 --- a/resources/views/layouts/user-navigation/navigation_teacher.blade.php +++ b/resources/views/layouts/user-navigation/navigation_teacher.blade.php @@ -1,27 +1,35 @@ \ No newline at end of file + diff --git a/resources/views/pad/components/list.blade.php b/resources/views/pad/components/list.blade.php new file mode 100644 index 0000000..743c84f --- /dev/null +++ b/resources/views/pad/components/list.blade.php @@ -0,0 +1,25 @@ + + + + + + + + + + @foreach ($PADs as $pad) + + + + + + @endforeach + +
#SemestreOpções
{{ $pad->id }}{{ $pad->semestre }} + @include('components.devcomponents.btn-edit', [ + 'route' => route('pad_edit', ['id' => $pad->id]), + ]) + @include('components.devcomponents.btn-delete', [ + 'route' => route('pad_delete', ['id' => $pad->id]), + ]) +
diff --git a/resources/views/pad/create.blade.php b/resources/views/pad/create.blade.php new file mode 100644 index 0000000..07072b5 --- /dev/null +++ b/resources/views/pad/create.blade.php @@ -0,0 +1,59 @@ +@extends('layouts.main') + +@section('title', 'Unidade') +@section('header') + @include('layouts.header', [ + 'user' => Auth::user(), + ]) +@endsection +@section('nav') + @include('layouts.navigation', [ + 'index_menu' => $index_menu, + ]) +@endsection +@section('body') +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+ + +
+
+
+ +
+
+@endsection diff --git a/resources/views/pad/index.blade.php b/resources/views/pad/index.blade.php new file mode 100644 index 0000000..622310d --- /dev/null +++ b/resources/views/pad/index.blade.php @@ -0,0 +1,173 @@ +@extends('layouts.main') + +@section('title', 'Unidade') +@section('header') + @include('layouts.header', [ + 'user' => Auth::user(), + ]) +@endsection +@section('nav') + @include('layouts.navigation', [ + 'index_menu' => $index_menu, + ]) +@endsection +@section('body') +
+
+

PLANO DE ATIVIDADES DOCENTES (PAD)

+

ANEXO B

+

+ Insira os dados correspondentes nos campos exibidos abaixo +

+
+ +
+
+
+ + +
+
+ + +
+
+
+
+ + +
+
+
+ + +
+
+
+
+ + +
+
+
+
+
+ + +
+
+ + +
+ +
+ + +
+
+ + +
+
+ + +
+
+ +
+
+

AFASTAMENTO TOTAL?

+
+ + +
+
+ + +
+
+ +
+ PORTARIA DE AFASTAMENTO: +
+ + +
+
+ +
+

AFASTAMENTO PARCIAL?

+
+ + +
+
+ + +
+
+ +
+ PORTARIA DE AFASTAMENTO: +
+ + +
+
+
+
+
+
+ +
+
+ +
+
+ +
+@endsection diff --git a/resources/views/layouts/pad/update.blade.php b/resources/views/pad/update.blade.php similarity index 92% rename from resources/views/layouts/pad/update.blade.php rename to resources/views/pad/update.blade.php index f1c0f08..245f4d9 100644 --- a/resources/views/layouts/pad/update.blade.php +++ b/resources/views/pad/update.blade.php @@ -1,7 +1,7 @@ @extends('layouts.main') -@section('title', 'Unidade - Update') +@section('title', 'PAD - Edição') @section('body')
diff --git a/resources/views/unidade/index.blade.php b/resources/views/unidade/index.blade.php index b0ddabe..6004a09 100644 --- a/resources/views/unidade/index.blade.php +++ b/resources/views/unidade/index.blade.php @@ -1,4 +1,3 @@ - @extends('layouts.main') @section('title', 'Unidade') @@ -9,6 +8,25 @@ @include('components.devcomponents.btn-create', ['route' => route('unidade_create')]) -@include('unidade.components.list') - -@endsection + + + + + + + + + + @foreach($unidades as $unidade) + + + + + + @endforeach + +
#NameOpções
{{ $unidade->id}}{{ $unidade->name }} + @include('components.devcomponents.btn-edit', ['route' => route('unidade_edit', ['id' => $unidade->id])]) + @include('components.devcomponents.btn-delete', ['route' => route('unidade_delete', ['id' => $unidade->id])]) +
+@endsection \ No newline at end of file diff --git a/routes/web.php b/routes/web.php index 8a15f15..d60feb4 100644 --- a/routes/web.php +++ b/routes/web.php @@ -4,6 +4,7 @@ use App\Http\Controllers\CampusController; use App\Http\Controllers\CursoController; use App\Http\Controllers\DashboardController; use App\Http\Controllers\UnidadeController; +use App\Http\Controllers\PADController; use Illuminate\Support\Facades\Route; /* @@ -43,26 +44,13 @@ Route::get('/ensino/edit/{id}', [EnsinoController::class, 'edit'])->name('ensino Route::post('/ensino/update/{id}', [EnsinoController::class, 'update'])->name('ensino_update'); Route::delete('/ensino/delete/{id}', [EnsinoController::class, 'destroy'])->name('ensino_delete'); -Route::get('/extensao/index', [ExtensaoController::class, 'index'])->name('extensao_index'); -Route::get('/extensao/create', [ExtensaoController::class, 'create'])->name('extensao_create'); -Route::post('/extensao/store', [ExtensaoController::class, 'store'])->name('extensao_store'); -Route::get('/extensao/edit/{id}', [ExtensaoController::class, 'edit'])->name('extensao_edit'); -Route::post('/extensao/update/{id}', [ExtensaoController::class, 'update'])->name('extensao_update'); -Route::delete('/extensao/delete/{id}', [ExtensaoController::class, 'destroy'])->name('extensao_delete'); +Route::get('/pad/index', [PADController::class, 'index'])->name('pad_index'); +Route::get('/pad/create', [PADController::class, 'create'])->name('pad_create'); +Route::post('/pad/store', [PADController::class, 'store'])->name('pad_store'); +Route::get('/pad/edit/{id}', [PADController::class, 'edit'])->name('pad_edit'); +Route::post('/pad/update/{id}', [PADController::class, 'update'])->name('pad_update'); +Route::delete('/pad/delete/{id}', [PADController::class, 'destroy'])->name('pad_delete'); -Route::get('/gestao/index', [GestaoController::class, 'index'])->name('gestao_index'); -Route::get('/gestao/create', [GestaoController::class, 'create'])->name('gestao_create'); -Route::post('/gestao/store', [GestaoController::class, 'store'])->name('gestao_store'); -Route::get('/gestao/edit/{id}', [GestaoController::class, 'edit'])->name('gestao_edit'); -Route::post('/gestao/update/{id}', [GestaoController::class, 'update'])->name('gestao_update'); -Route::delete('/gestao/delete/{id}', [GestaoController::class, 'destroy'])->name('gestao_delete'); - -Route::get('/pesquisa/index', [PesquisaController::class, 'index'])->name('pesquisa_index'); -Route::get('/pesquisa/create', [PesquisaController::class, 'create'])->name('pesquisa_create'); -Route::post('/pesquisa/store', [PesquisaController::class, 'store'])->name('pesquisa_store'); -Route::get('/pesquisa/edit/{id}', [PesquisaController::class, 'edit'])->name('pesquisa_edit'); -Route::post('/pesquisa/update/{id}', [PesquisaController::class, 'update'])->name('pesquisa_update'); -Route::delete('/pesquisa/delete/{id}', [PesquisaController::class, 'destroy'])->name('pesquisa_delete'); Route::get('/curso/index', [CursoController::class, 'index'])->name('curso_index'); Route::get('/curso/create', [CursoController::class, 'create'])->name('curso_create'); -- GitLab