Merge branch 'Update-project-style' into Project-update-after-test-in-sines

This commit is contained in:
ygbanzato 2023-10-31 16:18:48 +00:00
commit 4027763c80
21 changed files with 672 additions and 802 deletions

View File

@ -1,21 +0,0 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class LanguageController extends Controller
{
public function switchLanguage(Request $request)
{
$locale = $request->input('locale');
if (!in_array($locale, ['en', 'pt'])) {
abort(400);
}
session(['locale' => $locale]);
return redirect()->back();
}
}

View File

@ -16,8 +16,7 @@
class WorkstationsJobsController extends Controller
{
public function receiveAnswersEquipment(Request $request)
{
{
// Primeiro ele deve criar a associação entre id atual do control + perguntas e respostas
$receiveAnswersElementalTasks = new workstationsTaskAnswers;
$receiveAnswersElementalTasks->control_equipment_workstation_id = $request->control_equipment_workstationid;
@ -54,8 +53,7 @@ public function receiveAnswersEquipment(Request $request)
// update departure_date value
$receiveDataControlWs = ControlEquipmentWorkstation::find($request->control_equipment_workstationid);
$receiveDataControlWs->departure_date = now();
$receiveDataControlWs->save();
//FINALIZOU A TAREFA ANTERIOR COM DEPARTURE
@ -86,6 +84,7 @@ public function receiveAnswersEquipment(Request $request)
$receiveDataElementalTask = ElementalTasks::find($recebeDataControlId->elemental_tasks_id);
$receiveDataEquipment = Equipment::find($recebeDataControlId->equipment_id);
if ($next_todo < 25) {
$elemental_tasks_id = $next_todo;
$further_tasks_id = null;
@ -93,86 +92,30 @@ public function receiveAnswersEquipment(Request $request)
$elemental_tasks_id = null;
$further_tasks_id = $next_todo;
}
// dd($recebeDataControlId->id_workstations );
// Para criar a divisao do equipamento em entre compo e Obturador
if ($receiveDataControlWs->elemental_tasks_id == 5 || $receiveDataControlWs->elemental_tasks_id == 6) {
$nextEquipmentTask1 = DB::select("
INSERT INTO control_equipment_workstation
(equipment_id, id_workstations, elemental_tasks_id, further_tasks_id, equipment_comments_id, entry_date, departure_date)
VALUES
(:equipment_id,NULL,8,:further_tasks_id,NULL,NULL,NULL)
", [
'equipment_id' => $receiveDataEquipment->equipment_id,
'further_tasks_id' => $further_tasks_id
]);
if ($request->stateEquipment == "cancel") {
$deleteDataControlWhereRefreashPage = ControlEquipmentWorkstation::where('id_workstations', $receiveDataControlWs->id_workstations)
->where('equipment_id', $receiveDataEquipment->equipment_id)
->whereNotNull('entry_date')
->whereNull('departure_date')
->first();
$nextEquipmentTask2 = DB::select("
INSERT INTO control_equipment_workstation
(equipment_id, id_workstations, elemental_tasks_id, further_tasks_id, equipment_comments_id, entry_date, departure_date)
VALUES
(:equipment_id,NULL,9,:further_tasks_id,NULL,NULL,NULL)
", [
'equipment_id' => $receiveDataEquipment->equipment_id,
'further_tasks_id' => $further_tasks_id
]);
// Equipamento separado em 2 corpo/ Obturador
return redirect()->route('enterWorkstation');
if ($deleteDataControlWhereRefreashPage) {
$deleteDataControlWhereRefreashPage->id_workstations = null;
$deleteDataControlWhereRefreashPage->entry_date = null;
$deleteDataControlWhereRefreashPage->departure_date = null;
$deleteDataControlWhereRefreashPage->save();
}
return redirect()->route('enterWorkstation');
// Quando concluir as tarefas 8 e 9 ele apenas deve
else if ($receiveDataControlWs->elemental_tasks_id == 8 || $receiveDataControlWs->elemental_tasks_id == 9) {
// Verifique se já existem registros na tabela control_equipment_workstation
$existingRecords = DB::table('control_equipment_workstation')
->where('equipment_id', $receiveDataControlWs->equipment_id)
->whereIn('elemental_tasks_id', [8, 9])
->whereNotNull('departure_date')
->get();
} if ($request->stateEquipment == "finish") {
// Verifique se há pelo menos dois registros que atendem às condições
if ($existingRecords->count() >= 2) {
// Crie um novo registro com elemental_tasks_id igual a 10
$nextEquipmentTask3 = DB::table('control_equipment_workstation')->insertGetId([
'equipment_id' => $receiveDataControlWs->equipment_id,
'id_workstations' => NULL,
'elemental_tasks_id' => 10,
'further_tasks_id' => $further_tasks_id,
'equipment_comments_id' => NULL,
'entry_date' => NULL,
'departure_date' => NULL,
]);
}
$receiveDataControlWs->departure_date = now();
$receiveDataControlWs->save();
return redirect()->route('enterWorkstation');
}
//Se a proxima WS for igual a atual deve criar dados para a ws
else if ($recebeDataControlId->id_workstations == $next_workstation) {
$nextEquipmentTask = DB::select("
INSERT INTO control_equipment_workstation
(equipment_id, id_workstations, elemental_tasks_id, further_tasks_id, equipment_comments_id, entry_date, departure_date)
VALUES
(:equipment_id,:next_workstation,:elemental_tasks_id,:further_tasks_id,NULL,CURRENT_TIMESTAMP,NULL)
", [
'equipment_id' => $receiveDataEquipment->equipment_id,
'next_workstation' => $next_workstation,
'elemental_tasks_id' => $elemental_tasks_id,
'further_tasks_id' => $further_tasks_id
]);
$lastInsertedId = DB::getPdo()->lastInsertId();
return view('workstations.workstations', [
'receiveDataElementalTask' => $receiveDataElementalTask,
'receiveDataEquipment' => $receiveDataEquipment,
'control_ew_id' => $lastInsertedId,
'task_todo' => $next_todo
]);
// Se verificar que a proxima tarefa e Null ele deve apenas voltar ao start
} else if ($next_todo == null) {
return redirect()->route('enterWorkstation');
} else {
$nextEquipmentTask = DB::select("
$nextEquipmentTaskStateEquipmentFinish = DB::select("
INSERT INTO control_equipment_workstation
(equipment_id, id_workstations, elemental_tasks_id, further_tasks_id, equipment_comments_id, entry_date, departure_date)
VALUES
@ -182,8 +125,115 @@ public function receiveAnswersEquipment(Request $request)
'elemental_tasks_id' => $elemental_tasks_id,
'further_tasks_id' => $further_tasks_id
]);
return redirect()->route('enterWorkstation');
}
if ($request->stateEquipment == 'next') {
$receiveDataControlWs->departure_date = now();
$receiveDataControlWs->save();
// Para criar a divisao do equipamento em entre compo e Obturador
if ($receiveDataControlWs->elemental_tasks_id == 5 && $receiveDataEquipment->equipment_type_id == 3) {
$nextEquipmentTask1 = DB::select("
INSERT INTO control_equipment_workstation
(equipment_id, id_workstations, elemental_tasks_id, further_tasks_id, equipment_comments_id, entry_date, departure_date)
VALUES
(:equipment_id,NULL,8,:further_tasks_id,NULL,NULL,NULL)
", [
'equipment_id' => $receiveDataEquipment->equipment_id,
'further_tasks_id' => $further_tasks_id
]);
$nextEquipmentTask2 = DB::select("
INSERT INTO control_equipment_workstation
(equipment_id, id_workstations, elemental_tasks_id, further_tasks_id, equipment_comments_id, entry_date, departure_date)
VALUES
(:equipment_id,NULL,9,:further_tasks_id,NULL,NULL,NULL)
", [
'equipment_id' => $receiveDataEquipment->equipment_id,
'further_tasks_id' => $further_tasks_id
]);
// Equipamento separado em 2 corpo/ Obturador
return redirect()->route('enterWorkstation');
}
// Quando concluir as tarefas 8 e 9
if ($receiveDataEquipment->equipment_type_id == 3 && ($receiveDataControlWs->elemental_tasks_id == 8 || $receiveDataControlWs->elemental_tasks_id == 9)) {
// dd('recebe if Quando concluir as tarefas 8 e 9 ');
// Verifique se já existem registros na tabela control_equipment_workstation
$existingRecords = DB::table('control_equipment_workstation')
->where('equipment_id', $receiveDataControlWs->equipment_id)
->whereIn('elemental_tasks_id', [8, 9])
->whereNotNull('departure_date')
->get();
// Verifique se há pelo menos dois registros que atendem às condições
if ($existingRecords->count() >= 2) {
// Crie um novo registro com elemental_tasks_id igual a 10
$nextEquipmentTask3 = DB::table('control_equipment_workstation')->insertGetId([
'equipment_id' => $receiveDataControlWs->equipment_id,
'id_workstations' => NULL,
'elemental_tasks_id' => 10,
'further_tasks_id' => $further_tasks_id,
'equipment_comments_id' => NULL,
'entry_date' => NULL,
'departure_date' => NULL,
]);
}
return redirect()->route('enterWorkstation');
}
//Se a proxima WS for igual a atual deve criar dados para a ws
if ($recebeDataControlId->id_workstations == $next_workstation) {
$nextEquipmentTask = DB::select("
INSERT INTO control_equipment_workstation
(equipment_id, id_workstations, elemental_tasks_id, further_tasks_id, equipment_comments_id, entry_date, departure_date)
VALUES
(:equipment_id,:next_workstation,:elemental_tasks_id,:further_tasks_id,NULL,CURRENT_TIMESTAMP,NULL)
", [
'equipment_id' => $receiveDataEquipment->equipment_id,
'next_workstation' => $next_workstation,
'elemental_tasks_id' => $elemental_tasks_id,
'further_tasks_id' => $further_tasks_id
]);
$lastInsertedId = DB::getPdo()->lastInsertId();
$receiveDataNewElementalTask = ElementalTasks::find($elemental_tasks_id);
return view('workstations.workstations', [
'receiveDataElementalTask' => $receiveDataNewElementalTask,
'receiveDataEquipment' => $receiveDataEquipment,
'control_ew_id' => $lastInsertedId,
'task_todo' => $next_todo
]);
// Se verificar que a proxima tarefa e Null ele deve apenas voltar ao start
} else if ($next_workstation == null) {
$nextEquipmentTask = DB::select("
INSERT INTO control_equipment_workstation
(equipment_id, id_workstations, elemental_tasks_id, further_tasks_id, equipment_comments_id, entry_date, departure_date)
VALUES
(:equipment_id,NULL,:elemental_tasks_id,:further_tasks_id,NULL,NULL,NULL)
", [
'equipment_id' => $receiveDataEquipment->equipment_id,
'elemental_tasks_id' => $elemental_tasks_id,
'further_tasks_id' => $further_tasks_id
]);
return redirect()->route('enterWorkstation');
}
}
}
@ -273,8 +323,8 @@ public function getEquipmentData($equipment_id)
->whereNotNull('entry_date')
->whereNull('departure_date')
->first();
// dd($deleteDataControlWhereRefreashPage);
// dd($deleteDataControlWhereRefreashPage);
if ($deleteDataControlWhereRefreashPage) {
$deleteDataControlWhereRefreashPage->id_workstations = null;
$deleteDataControlWhereRefreashPage->entry_date = null;
@ -282,7 +332,6 @@ public function getEquipmentData($equipment_id)
$deleteDataControlWhereRefreashPage->save();
}
return redirect()->route('enterWorkstation');
} else
$receiveDataElementalTask = ElementalTasks::find($recebeDataControlId->elemental_tasks_id);

View File

@ -36,7 +36,6 @@ class Kernel extends HttpKernel
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
\App\Http\Middleware\Language::class,
],
'api' => [

View File

@ -1,25 +0,0 @@
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;
class Language
{
/**
* Handle an incoming request.
*
* @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next
*/
public function handle(Request $request, Closure $next): Response
{
// return $next($request);
if (session('locale')) {
app()->setLocale(session('locale'));
}
return $next($request);
}
}

View File

@ -83,7 +83,9 @@
|
*/
'locale' => 'en',
// 'locale' => 'en',
'locale' => 'pt',
/*
|--------------------------------------------------------------------------

View File

@ -1,140 +0,0 @@
<?php
return [
// Tudo relacionado ao dashboard, tanto a pagina como o navbarMenu
'dashboard' => [
//navbarMenu
'dashboard' => 'Dashboard',
'planning' => [
'description' => 'In planning',
'text' => 'In planning for 2023'
],
'prepared' => [
'description' => 'Prepared',
'text' => 'Waiting for the work to start.'
],
'on_going' => [
'description' => 'On going',
'text' => 'Work in progress.'
],
'finished' => [
'description' => 'Finished.',
'text' => 'Last projects 2023.'
],
],
//alterar na view Portfolio
'portfolio' => [
'top_view_part' => [
'management_assets' => 'Management assets',
'portfolio' => 'portfolio',
'managing_assets' => 'Managing Assets',
],
'change_buttons' => [
'create_assets' => 'Create assets',
'asset_table' => 'Asset table',
],
'asset_table' => [
''=> '',
],
'users_table' => [
'id' => 'ID',
'name' => 'Name',
'email' => 'Email',
'user_type' => 'User type',
'actions' => [
'actions' => 'Actions',
'details' => 'Details',
'edit'=> 'Edit',
'delete' => 'Delete'
],
],
],
'users_listUsers' => [
//Navbar
'users' => 'Users',
'companies' => 'Companies',
'create_users' => 'Create users',
'top_view_part' => [
'companies' => 'Companies',
'administration' => 'Administration',
'users_table' => 'Users table',
'companies_table' => 'Companies Table',
],
],
// View : Create Users
'pendingUsers' => [
'create_users' => 'Create Users',
'administration' => 'Administration',
'submit_form' => 'Submit Form',
'pending_users' => 'Pending Users',
'submit' => 'Submit',
'table_pending_user' => [
'name' => 'Name',
'email' => 'Email',
'verify' => 'Verify'
],
],
// View : createProject
'createProject' => [
//NavbarMenu
"create_project"=> "Create a project",
'project_work_details' => 'Project Work Details',
'project_identification' => 'Project identification',
'ispt_project_number' => 'ISPT Project Number',
'ispt_project_manager' => 'ISPT Project Manager',
'compan_project_manager' => 'Company Project Manager',
//Selecionar uma empresa.
'select_company' => [
'contracting_company' => 'Contracting Company',
'select_company' => 'Select a contracting Company',
],
//Selecionar ou criar uma instalacao
'select_plant' => [
'plant' => 'Select Plant',
'create_new_plant' => 'Create a new plant',
'new_plant' => 'New plant',
'plant_address' => 'Plant address',
'select_plant' => 'Select Plant',
],
'company_project_number' => 'Company Project Number',
'project_start_date' => 'Project Start Date',
],
'profile' => [
'show_profile' => [
'profile' => 'Profile',
'full_name' => 'Full Name',
'nif' => 'Nif',
'email_address' => 'Email address',
'user_type' => 'User type',
'mobile_phone' => 'Mobile phone',
'account_creation_date' => 'account_creation_date'
],
'edit_profile' => [
'edit_profile'=> 'Edit profile',
'update_your_logo' => 'Update your logo',
'image' => 'Image',
'full_name'=> 'Full name',
'nif' => 'Nif',
'email_address' => 'Email address',
'mobile_phone' => 'mobile_phone',
],
],
//Botoes gerais ISPT4.0
'buttons' => [
'save' => 'save',
],
'welcome' => 'Welcome to our application!',
];

View File

@ -1,136 +0,0 @@
<?php
return [
'dashboard' => [
//navbarMenu
'dashboard' => 'Dashboard',
'planning' => [
'description' => 'Em planeamento',
'text' => 'Em planeamento de 2023'
],
'prepared' => [
'description' => 'Preparadas',
'text' => 'Aguarda o início da obra.'
],
'on_going' => [
'description' => 'Em execução',
'text' => 'Obra em curso.'
],
'finished' => [
'description' => 'Concluídas',
'text' => 'Últimas obras de 2023.'
],
],
'portfolio' => [
'top_view_part' => [
'management_assets' => 'Gestão de ativos',
'portfolio' => 'Portefólio',
'managing_assets' => 'Gerir ativos',
],
'change_buttons' => [
'create_assets' => 'Criar ativos',
'asset_table' => 'Tabela de ativos',
],
'users_table' => [
'id' => 'ID',
'name' => 'Nome',
'email' => 'Email',
'user_type' => 'Tipo de Utilizador',
'actions' => [
'actions' => 'Ações',
'details' => 'Detalhes',
'edit' => 'Editar',
'delete' => 'Excluir'
],
],
],
'users_listUsers' => [
//Navbar
'users' => 'Utilizadores',
'companies' => 'Clientes',
'create_users' => 'Criar Utilizadores',
'top_view_part' => [
'companies' => 'Empresas',
'administration' => 'Administração',
'users_table' => 'Tabela Utilizadores',
'companies_table' => 'Tabela Empresas',
],
],
// View : Create Users
'pendingUsers' => [
'create_users' => 'Criar Utilizadores',
'administration' => 'Administração',
'submit_form' => 'Enviar Formulário',
'pending_users' => 'Utilizadores Pendentes',
'submit' => 'Enviar',
'table_pending_user' => [
'name' => 'Nome',
'email' => 'Email',
'verify' => 'Verificar'
],
],
// View : createProject
'createProject' => [
//NavbarMenu
"create_project" => "Criar obra",
'project_work_details' => 'Detalhes Técnicos do Projeto',
'project_identification' => 'Identificação do projecto',
'ispt_project_number' => 'Número do Projeto ISPT',
'ispt_project_manager' => 'Gestor de Projeto ISPT',
'compan_project_manager' => 'Gestor de Projeto da Empresa',
//Selecionar uma empresa.
'select_company' => [
'contracting_company' => 'Empresa Contratante',
'select_company' => 'Selecionar uma Empresa',
],
//Selecionar ou criar uma instalacao
'select_plant' => [
'plant' => 'Instalação',
'create_new_plant' => 'Criar uma nova Instalacao',
'new_plant' => 'Nova Instalação',
'plant_address' => 'Morada Instalação',
'select_plant' => 'Selecione uma Instalação',
],
'company_project_number' => 'Número do Projeto da Empresa',
'project_start_date' => 'Data de Início do Projeto',
],
//view: usersProfiles
'profile' => [
'show_profile' => [
'profile' => 'Perfil',
'full_name' => 'Nome e Apelido',
'nif' => 'Nif',
'email_address' => 'Email',
'user_type' => 'Tipo de utilizador',
'mobile_phone' => 'Telemóvel',
'account_creation_date' => 'Conta Criada em'
],
'edit_profile' => [
'update_your_logo' => 'Actualizar o seu logótipo',
'image' => 'Imagem',
'full_name'=> 'Nome e Apelido',
'nif' => 'Nif',
'email_address' => 'Email',
'mobile_phone' => 'Telemóvel',
],
],
'buttons' => [
'save' => 'Guardar',
],
'welcome' => 'Bem-vindo à nossa aplicação!',
// outras traduções
];

View File

@ -11,12 +11,12 @@
<div class="container-fluid">
<div class="row mb-2">
<div class="col-sm-6">
<h1 class="text-light">{{__('messages.users_listUsers.top_view_part.companies')}}</h1>
<h1 class="text-light">Empresas</h1>
</div>
<div class="col-sm-6">
<ol class="breadcrumb float-sm-right">
<li class="breadcrumb-item active">{{__('messages.users_listUsers.top_view_part.administration')}}</li>
<li class="breadcrumb-item active">{{__('messages.users_listUsers.top_view_part.companies')}}</li>
<li class="breadcrumb-item active">Administração</li>
<li class="breadcrumb-item active">Empresas</li>
</ol>
</div>
</div>
@ -27,7 +27,7 @@
<div class="container-fluid">
<div class="card-light">
<div class="card-header">
<h3 class="card-title">{{__('messages.users_listUsers.top_view_part.companies_table')}}</h3>
<h3 class="card-title">Tabela Empresas</h3>
</div>
{{-- ./card-header --}}
<div class="card-body">

View File

@ -11,12 +11,12 @@
<div class="container-fluid">
<div class="row mb-2">
<div class="col-sm-6">
<h1 class="text-light">{{__('messages.users_listUsers.top_view_part.companies')}}</h1>
<h1 class="text-light">Empresas</h1>
</div>
<div class="col-sm-6">
<ol class="breadcrumb float-sm-right">
<li class="breadcrumb-item active">{{__('messages.users_listUsers.top_view_part.administration')}}</li>
<li class="breadcrumb-item active">{{__('messages.users_listUsers.top_view_part.companies')}}</li>
<li class="breadcrumb-item active">Administração</li>
<li class="breadcrumb-item active">Empresas</li>
</ol>
</div>
</div>
@ -27,7 +27,7 @@
<div class="container-fluid">
<div class="card-light">
<div class="card-header">
<h3 class="card-title">{{__('messages.users_listUsers.top_view_part.users_table')}}</h3>
<h3 class="card-title">Tabela Utilizadores</h3>
</div>
<!-- /.card-header -->
<div class="card-body">
@ -35,12 +35,12 @@
<table class="table table-hover text-nowrap" id="TableReceiveAllUsers">
<thead>
<tr>
<th>{{__('messages.portfolio.users_table.id')}}</th>
<th>{{__('messages.portfolio.users_table.name')}}</th>
<th>{{__('messages.portfolio.users_table.email')}}</th>
<th>{{__('messages.portfolio.users_table.user_type')}}</th>
<th>{{__('messages.portfolio.users_table.actions.actions')}}</th>
</tr>
<th>ID</th>
<th>Nome</th>
<th>Email</th>
<th>Tipo de Utilizador</th>
<th>Ações</th>
</tr>Empresas
</thead>
<tbody>
@foreach ($users as $user)
@ -59,12 +59,12 @@ class="actions-btn btn btn-light circle ">
<a href="{{ route('users.Show', ['id' => $user->user_id]) }}"
class="dropdown-item text-light">
<i class="fa-solid fa-eye text-light"></i>
{{__('messages.portfolio.users_table.actions.details')}}
Detalhes
</a>
<a href="{{ route('users.edit', ['id' => $user->user_id]) }}"
class="dropdown-item text-light">
<i class="fa-solid fa-edit text-light"></i>
{{__('messages.portfolio.users_table.actions.edit')}}
Editar
</a>
<form action="{{ route('users.destroy', $user) }}" method="POST"
onsubmit="return confirm('Are you sure you want to delete this user?');"
@ -73,7 +73,7 @@ class="dropdown-item text-light">
@method('DELETE')
<button type="submit" class="dropdown-item text-danger">
<i class="fa-solid fa-trash-alt text-danger"></i>
{{__('messages.portfolio.users_table.actions.delete')}}
Excluir
</button>
</form>
</div>

View File

@ -6,14 +6,12 @@
<div class="container-fluid">
<div class="row mb-2">
<div class="col-sm-6">
<h1 class="text-light">{{ __('messages.portfolio.top_view_part.management_assets') }}</h1>
{{-- {{__('messages.dashboard.text')}} --}}
<h1 class="text-light">Gestão de ativos</h1>
</div>
<div class="col-sm-6">
<ol class="breadcrumb float-sm-right">
<li class="breadcrumb-item active">{{ __('messages.portfolio.top_view_part.portfolio') }}</li>
<li class="breadcrumb-item active">{{ __('messages.portfolio.top_view_part.managing_assets') }}</li>
<li class="breadcrumb-item active">Portefólio</li>
<li class="breadcrumb-item active">Gerir ativos</li>
</ol>
</div><!-- /.col -->
</div>
@ -30,10 +28,13 @@
<form>
<div class="row">
<div class="col-sm-6" id="buttonCreateAssets">
<a href="#" type="button" class="btn btn-block bg-gradient-primary btn-lg">{{ __('messages.portfolio.change_buttons.create_assets') }}</a>
<a href="#" type="button" class="btn btn-block bg-gradient-primary btn-lg">Criar
ativos</a>
</div>
<div class="col-sm-6" id="buttonAssetsTable">
<a href="#" type="button" class="btn btn-block bg-gradient-primary btn-lg">{{ __('messages.portfolio.change_buttons.asset_table') }}</a>
<a href="#" type="button" class="btn btn-block bg-gradient-primary btn-lg">Tabela de
Ativos</a>
</div>
</div>
</form>
@ -42,10 +43,10 @@
<div class="card-light" id="cardAssetsTable">
<div class="card-header">
<h3 class="card-title">{{ __('messages.portfolio.change_buttons.asset_table') }}</h3>
<h3 class="card-title">Tabela de Ativos</h3>
</div>
<!-- /.card-header -->
{{-- <div class="card-body">
<div class="card-body">
<div class="table-responsive">
<table class="table table-hover text-nowrap" id="assetsTable">
<thead>
@ -72,7 +73,7 @@
</table>
</div>
<!-- /.card -->
</div> --}}
</div>
<!-- /.card-body -->
</div>
@ -88,7 +89,7 @@
@endsection
@section('scriptsTemplateAdmin')
{{-- <script>
<script>
$(function() {
$("#assetsTable").DataTable({
"responsive": true,
@ -97,7 +98,7 @@
"buttons": ["copy", "csv", "excel", "pdf", "print", "colvis"]
}).buttons().container().appendTo('#assetsTable_wrapper .col-md-6:eq(0)');
});
</script> --}}
</script>
{{--
<script type="text/javascript">

View File

@ -32,11 +32,11 @@
<div class="card-header info-box bg-secondary">
<span class="info-box-icon"><i class="fas fa-file-edit"></i></span>
<div class="info-box-content">
<span class="info-box-text">{{__('messages.dashboard.planning.description')}}</span>
<span class="info-box-text">Em planeamento</span>
<span
class="info-box-number">{{ $CompanyProject->where('order_project', 1)->count() }}</span>
<span class="progress-description">
{{__('messages.dashboard.planning.text')}}
Em planeamento de 2023
</span>
</div>
<!-- /.info-box-content -->
@ -71,13 +71,12 @@ class="btn btn-tool">
<span class="info-box-icon"><i class="fas fa-file"></i></span>
<div class="info-box-content">
<span class="info-box-text">{{__('messages.dashboard.prepared.description')}}</span>
<span class="info-box-text">Preparadas</span>
<span
class="info-box-number">{{ $CompanyProject->where('order_project', 2)->count() }}</span>
<span class="progress-description">
{{__('messages.dashboard.prepared.text')}}
Aguardam o início da obra.
</span>
</div>
<!-- /.info-box-content -->
@ -112,11 +111,11 @@ class="btn btn-tool">
<span class="info-box-icon"><i class="fas fa-file-alt"></i></span>
<div class="info-box-content">
<span class="info-box-text">{{__('messages.dashboard.on_going.description')}}</span>
<span class="info-box-text">Em execução</span>
<span
class="info-box-number">{{ $CompanyProject->where('order_project', 3)->count() }}</span>
<span class="progress-description">
{{__('messages.dashboard.on_going.text')}}
Obras em curso.
</span>
</div>
<!-- /.info-box-content -->
@ -151,11 +150,11 @@ class="btn btn-tool">
<span class="info-box-icon"><i class="fas fa-check-circle"></i></span>
<div class="info-box-content">
<span class="info-box-text">{{__('messages.dashboard.finished.description')}}</span>
<span class="info-box-text">Concluídas</span>
<span
class="info-box-number">{{ $CompanyProject->where('order_project', 4)->count() }}</span>
<span class="progress-description">
{{__('messages.dashboard.finished.text')}}
Últimas obras de 2023
</span>
</div>
<!-- /.info-box-content -->

View File

@ -69,13 +69,12 @@
<li class="nav-item">
<button class="nav-link active" data-bs-toggle="tab"
data-bs-target="#profile-overview">{{ __('messages.profile.show_profile.profile') }}</button>
data-bs-target="#profile-overview">Perfil</button>
</li>
<li class="nav-item">
<button class="nav-link" data-bs-toggle="tab"
data-bs-target="#profile-edit">{{ __('messages.profile.edit_profile.edit_profile') }}
</button>
data-bs-target="#profile-edit">Editar Perfil</button>
</li>
</ul>
@ -86,39 +85,32 @@
<div class="row">
<div class="col-lg-3 col-md-4 label ">
{{ __('messages.profile.show_profile.full_name') }} </div>
<div class="col-lg-3 col-md-4 label ">Nome e Apelido </div>
<div class="col-lg-9 col-md-8">{{ $user->user_name }}</div>
</div>
<div class="row">
<div class="col-lg-3 col-md-4 label">
{{ __('messages.profile.show_profile.nif') }} </div>
<div class="col-lg-3 col-md-4 label">Nif </div>
<div class="col-lg-9 col-md-8">{{ $user->user_nif }}</div>
</div>
<div class="row">
<div class="col-lg-3 col-md-4 label">
{{ __('messages.profile.show_profile.email_address') }} </div>
<div class="col-lg-3 col-md-4 label">Email </div>
<div class="col-lg-9 col-md-8">{{ $user->email }}</div>
</div>
<div class="row">
<div class="col-lg-3 col-md-4 label">
{{ __('messages.profile.show_profile.user_type') }} </div>
<div class="col-lg-3 col-md-4 label">Tipo de utilizador </div>
<div class="col-lg-9 col-md-8">{{ $user->type_users }}</div>
</div>
<div class="row">
<div class="col-lg-3 col-md-4 label">
{{ __('messages.profile.show_profile.mobile_phone') }} </div>
<div class="col-lg-3 col-md-4 label">Telemóvel </div>
<div class="col-lg-9 col-md-8">{{ $user->user_phone }}</div>
</div>
<div class="row">
<div class="col-lg-3 col-md-4 label">
{{ __('messages.profile.show_profile.account_creation_date') }}
</div>
<div class="col-lg-3 col-md-4 label">Conta Criada em </div>
<div class="col-lg-9 col-md-8">{{ $user->created_at }}</div>
</div>
</div>
@ -132,21 +124,19 @@
<input type="hidden" name="userID" value="{{ $user->user_id }}">
<div class="row mb-3">
<label for="user_logo" class="col-md-4 col-lg-3 form-label">
{{ __('messages.profile.edit_profile.update_your_logo') }}
<label for="user_logo"
class="col-md-4 col-lg-3 form-label">Actualizar o seu logótipo.
:</label>
<div class="custom-file col-md-8 col-lg-9">
<input type="file" class="custom-file-input" id="user_logo"
name="user_logo" accept="image/*">
<label class="custom-file-label" for="customFile">
{{ __('messages.profile.edit_profile.image') }} :
(200/250px)x(200/250px)</label>
<label class="custom-file-label" for="customFile">Imagem : (200/250px)x(200/250px)</label>
</div>
</div>
<div class="row mb-3">
<label for="fullName" class="col-md-4 col-lg-3 col-form-label">
{{ __('messages.profile.edit_profile.full_name') }}</label>
<label for="fullName" class="col-md-4 col-lg-3 col-form-label">Nome
e Apelido</label>
<div class="col-md-8 col-lg-9">
<input type="text" class="form-control" id="fullName"
name="fullName" value="{{ $user->user_name }}" required>
@ -154,8 +144,8 @@
</div>
<div class="row mb-3">
<label for="about" class="col-md-4 col-lg-3 col-form-label">
{{ __('messages.profile.edit_profile.nif') }}</label>
<label for="about"
class="col-md-4 col-lg-3 col-form-label">Nif</label>
<div class="col-md-8 col-lg-9">
<input type="text" class="form-control" id="nif"
name="nif" value="{{ $user->user_nif }}" required>
@ -163,17 +153,18 @@
</div>
<div class="row mb-3">
<label for="company" class="col-md-4 col-lg-3 col-form-label">
{{ __('messages.profile.edit_profile.email_address') }}</label>
<label for="company"
class="col-md-4 col-lg-3 col-form-label">Email</label>
<div class="col-md-8 col-lg-9">
<input type="text" class="form-control" id="email"
name="email" value="{{ $user->email }}" required>
</div>
</div>
<div class="row mb-3">
<label for="Country" class="col-md-4 col-lg-3 col-form-label">
{{ __('messages.profile.edit_profile.mobile_phone') }}</label>
<label for="Country"
class="col-md-4 col-lg-3 col-form-label">Telemóvel</label>
<div class="col-md-8 col-lg-9">
<input type="text" class="form-control" id="phone"
name="phone" value="{{ $user->user_phone }}">
@ -182,7 +173,7 @@
<div class="float-right">
<button type="submit" class="btn btn-primary">{{ __('messages.buttons.save') }}</button>
<button type="submit" class="btn btn-primary">Guardar</button>
</div>
</form><!-- End Profile Edit Form -->

View File

@ -17,14 +17,6 @@
{{-- <link rel="stylesheet" href="{{ asset('plugins/fontawesome-611/css/all.min.css') }}"> --}}
<link rel="stylesheet" href="{{ asset('assets/plugins/fontawesome-6.4.2/css/all.css') }}">
{{-- Para Adicionar bandeiras ao select --}}
<!-- Inclua o CSS do Select2 no cabeçalho da sua página -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.13/css/select2.min.css" />
<!-- Inclua o JavaScript do Select2 antes do fechamento da sua tag </body> -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.13/js/select2.min.js"></script>
<!-- Ionicons -->
<link rel="stylesheet" href="https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css">
@ -219,32 +211,7 @@ class="fas fa-bars"></i></a>
</ul>
<!-- Right navbar links -->
{{-- <ul class="navbar-nav ml-auto">
<form id="language-form" action="{{ route('language.switch') }}" method="post">
@csrf
<select class="form-grop" name="locale" onchange="this.form.submit()">
<option value="en" {{ app()->getLocale() == 'en' ? 'selected' : '' }}>English</option>
<option value="pt" {{ app()->getLocale() == 'pt' ? 'selected' : '' }}>Português</option>
</select>
</form>
<li class="nav-item">
<a class="nav-link" data-widget="fullscreen" href="#" role="button">
<i class="fas fa-expand-arrows-alt"></i>
</a>
</li>
</ul> --}}
<ul class="navbar-nav ml-auto align-items-center">
<li class="nav-item my-2">
<form id="language-form" action="{{ route('language.switch') }}" method="post"
class="form-inline">
@csrf
<select class="custom-select" name="locale" onchange="this.form.submit()">
<option value="en" {{ app()->getLocale() == 'en' ? 'selected' : '' }}>English</option>
<option value="pt" {{ app()->getLocale() == 'pt' ? 'selected' : '' }}>Português
</option>
</select>
</form>
</li>
<ul class="navbar-nav ml-auto">
<li class="nav-item">
<a class="nav-link" data-widget="fullscreen" href="#" role="button">
<i class="fas fa-expand-arrows-alt"></i>
@ -252,7 +219,6 @@ class="form-inline">
</li>
</ul>
</nav>
<!-- /.navbar -->
@ -292,13 +258,13 @@ class="d-block">{{ Auth::user()->userType?->type_user }}</a>
<li class="nav-item">
<a href="{{ route('home') }}" class="nav-link active">
<i class="nav-icon fas fa-tachometer-alt"></i>
<p> {{ __('messages.dashboard.dashboard') }} </p>
<p> Dashboard </p>
</a>
</li>
<li class="nav-item">
<a href="{{ route('createProject') }}" class="nav-link">
<i class="nav-icon fas fa-helmet-safety"></i>
<p> {{ __('messages.createProject.create_project') }} </p>
<p> Criar obra </p>
</a>
</li>
@ -316,7 +282,7 @@ class="d-block">{{ Auth::user()->userType?->type_user }}</a>
<li class="nav-item">
<a href="#" class="nav-link">
<i class="nav-icon fas fa-briefcase"></i>
<p> {{ __('messages.portfolio.top_view_part.portfolio') }}
<p> Portefólio
<i class="fas fa-angle-left right"></i>
</p>
</a>
@ -324,7 +290,7 @@ class="d-block">{{ Auth::user()->userType?->type_user }}</a>
<li class="nav-item">
<a href="{{ route('manageAssets') }}" class="nav-link">
<i class="fa-solid fa-file-edit"></i>
<p> {{ __('messages.portfolio.top_view_part.management_assets') }}</p>
<p> Gerir Ativos</p>
</a>
</li>
</ul>
@ -334,7 +300,7 @@ class="d-block">{{ Auth::user()->userType?->type_user }}</a>
<li class="nav-item">
<a href="#" class="nav-link">
<i class="nav-icon fas fa-gear"></i>
<p> {{ __('messages.users_listUsers.top_view_part.administration') }}
<p> Administração
<i class="fas fa-angle-left right"></i>
</p>
</a>
@ -342,19 +308,19 @@ class="d-block">{{ Auth::user()->userType?->type_user }}</a>
<li class="nav-item">
<a href="{{ route('users.list') }}" class="nav-link">
<i class="fa-solid fa-users"></i>
<p>{{ __('messages.users_listUsers.users') }}</p>
<p>Utilizadores</p>
</a>
</li>
<li class="nav-item">
<a href="{{ route('users.company') }}" class="nav-link">
<i class="fa-solid fa-house-user"></i>
<p>{{ __('messages.users_listUsers.companies') }}</p>
<p>Clientes</p>
</a>
</li>
<li class="nav-item">
<a href="{{ route('CreateUsers') }}" class="nav-link">
<i class="nav-icon fas fa-gear"></i>
<p>{{ __('messages.users_listUsers.create_users') }}</p>
<p> Criar Utilizadores </p>
</a>
</li>
</ul>
@ -472,27 +438,4 @@ class="d-block">{{ Auth::user()->userType?->type_user }}</a>
<script src="{{ asset('assets/plugins/datatables-buttons/js/buttons.print.min.js') }}"></script>
<script src="{{ asset('assets/plugins/datatables-buttons/js/buttons.colVis.min.js') }}"></script>
{{-- Script para as bandeiras --}}
<script>
$(document).ready(function () {
function formatState(state) {
if (!state.id) {
return state.text;
}
var $state = $(
'<span><img src="' + $(state.element).data('image-url') + '" class="img-flag" /> ' + state.text + '</span>'
);
return $state;
};
$('#language-selector').select2({
templateResult: formatState,
templateSelection: formatState,
width: 'auto'
});
});
</script>
</html>

View File

@ -31,19 +31,19 @@
<!-- summernote -->
<link rel="stylesheet" href="{{ URL::asset('assets/plugins/summernote/summernote-bs4.min.css') }}">
<style>
[class*=sidebar-dark] .btn-sidebar2,
[class*=sidebar-dark] .form-control-sidebar2 {
background-color: #3f474e;
border: 1px solid #56606a;
color: #fff;
}
</style>
<style>
[class*=sidebar-dark] .btn-sidebar2,
[class*=sidebar-dark] .form-control-sidebar2 {
background-color: #3f474e;
border: 1px solid #56606a;
color: #fff;
}
</style>
</head>
<body class="hold-transition sidebar-mini layout-fixed">
<div class="wrapper">
<div class="wrapper">
<!-- Navbar -->
<nav class="main-header navbar navbar-expand navbar-white navbar-light" style="background-color: #00B0EA">
@ -122,7 +122,7 @@ class="brand-image img-circle elevation-3" style="opacity: .8">
<!-- SidebarSearch Form -->
<div class="form-inline">
<div class="input-group" data-widget="sidebar-search">
<input id="qrtext" class="form-control form-control-sidebar text-white" type="search"
<input id="qrtextleft" class="form-control form-control-sidebar text-white" type="search"
placeholder="Procurar" aria-label="Search">
<div class="input-group-append">
<button class="btn btn-sidebar">
@ -142,7 +142,7 @@ class="brand-image img-circle elevation-3" style="opacity: .8">
<a href="#" class="nav-link text-white" style="background-color: #007BFF;">
<i class="nav-icon fas fa-play"></i>
<p>
{{ $equipmentsTodoCount }} a inicia
{{ $equipmentsTodoCount }} a iniciar
<i class="right fas fa-angle-left"></i>
</p>
</a>
@ -162,8 +162,7 @@ class="nav-link text-white">
<li class="nav-item menu-closed">
<a href="#" class="nav-link text-white" style="background-color: #ba9420;">
<i class="nav-icon fas fa-undo"></i>
<p>
{{ $equipmentsReturnedCount }} retornadas
<p>{{ $equipmentsReturnedCount }} retornadas
<i class="right fas fa-angle-left"></i>
</p>
</a>
@ -213,8 +212,8 @@ class="nav-link text-white">
</div>
<!-- /.content-wrapper -->
<footer class="main-footer" style="background-color: #00B0EA">
<strong>Copyright &copy; 2017-{{ date('Y') }} <a href="https://www.isptgroup.com"
target="_blank">ISPT - Industrial Services,
<strong>Copyright © 2017-{{ date('Y') }} <a href="https://www.isptgroup.com" target="_blank">ISPT -
Industrial Services,
SA</a>.</strong>
Todos os direitos reservados.
<div class="float-right d-none d-sm-inline-block">
@ -223,7 +222,7 @@ class="nav-link text-white">
</footer>
{{-- <footer class="main-footer">
<strong>Copyright &copy; 2017-2022 <a href="#">ISPT - Industrial Services, SA</a>.</strong>
<strong>Copyright © 2017-2022 <a href="#">ISPT - Industrial Services, SA</a>.</strong>
Todos os direitos reservados.
<div class="float-right d-none d-sm-inline-block">
<b>Versão</b> 1.0
@ -231,14 +230,15 @@ class="nav-link text-white">
</footer> --}}
<!-- Control Sidebar -->
<aside class="control-sidebar control-sidebar-dark" style="background-color: #09255C">
<aside class="control-sidebar control-sidebar-dark" data-widget="control-treeview"
style="background-color: #09255C">
<!-- Control sidebar content goes here -->
<div class="p-3 control-sidebar-content">
<!-- SidebarSearch Form -->
<div class="form-inline">
<div class="input-group" data-widget="sidebar-search">
<input class="form-control form-control-sidebar text-white" type="search"
<input id="qrtextright" class="form-control form-control-sidebar text-white" type="search"
placeholder="Procurar" aria-label="Search">
<div class="input-group-append">
<button class="btn btn-sidebar">
@ -320,12 +320,34 @@ class="nav-link text-white">
<script src="{{ URL::asset('assets/dist/js/pages/dashboard.js') }}"></script>
<!-- HTML5 QRCode-->
<script src="{{ URL::asset('assets/plugins/html5-qrcode/html5-qrcode.min.js') }}"></script>
<script>
function searchForValueAndNavigate(value, itemsSelector, containerSelector) {
var searchQuery = value.toLowerCase();
var found = false; // Variable to track if any item is found
$(itemsSelector).each(function() {
var itemText = $(this).text().toLowerCase();
if (itemText.includes(searchQuery)) {
found = true;
window.location.href = $(this).attr('href');
return false; // Exit the .each loop after attempting navigation
}
});
// If no item is found, change the class of <li> elements
if (!found) {
$(containerSelector + ' .nav-item.menu-open').each(function() {
$(this).removeClass('menu-open').addClass('menu-closed');
});
}
}
let scanner = new Html5Qrcode("reader");
let startScan = document.getElementById("startScan");
let reader = document.getElementById("reader");
let qrtext = document.getElementById("qrtext");
let qrtextleft = document.getElementById("qrtextleft");
let qrtextright = document.getElementById("qrtextright");
startScan.addEventListener('click', function() {
// Hiding the startScan button and showing the reader
@ -343,10 +365,23 @@ class="nav-link text-white">
},
function(qrCodeMessage) {
// This is called when a QR Code is scanned
// Suppress every text in front of "@" including it
qrCodeMessage = qrCodeMessage.split('@')[0];
scanner.stop().then(() => {
qrtext.value = qrCodeMessage;
qrtextleft.value = qrCodeMessage;
qrtextright.value = qrCodeMessage;
reader.style.display = "none";
startScan.style.display = "block";
// Trigger the search functionality for both sidebars
searchForValueAndNavigate(qrCodeMessage,
'.main-sidebar .nav.nav-pills.nav-sidebar.flex-column li a',
'.main-sidebar');
searchForValueAndNavigate(qrCodeMessage,
'.control-sidebar .nav.nav-pills.nav-sidebar.flex-column li a',
'.control-sidebar');
});
},
function(errorMessage) {
@ -362,27 +397,70 @@ function(errorMessage) {
<script>
$(document).ready(function() {
// Initially hide the nav-treeview
$('.control-sidebar-treeview .nav-treeview').hide();
$('.control-sidebar-treeview .nav-item > a').on('click', function(event) {
// Clone the behavior of treeview to control-treeview
$(document).on('click', '[data-widget="control-treeview"] .nav-link', function(event) {
event.preventDefault();
var checkElement = $(this).next();
var parentLi = $(this).parent();
var childUl = parentLi.find('ul.nav-treeview');
if ((checkElement.is('.nav-treeview')) && (checkElement.is(':visible'))) {
checkElement.slideUp('normal', function() {
checkElement.removeClass('menu-open');
});
checkElement.parent("li").removeClass("menu-open");
} else if ((checkElement.is('.nav-treeview')) && (!checkElement.is(':visible'))) {
var parent = $(this).parents('ul').first();
var ul = parent.find('ul:visible').slideUp('normal');
ul.removeClass('menu-open');
var parent_li = $(this).parent("li");
// Check if the childUl is visible
if (childUl.is(':visible')) {
// If it's visible, hide it
childUl.slideUp('slow');
} else {
// If it's not visible, show it
childUl.slideDown('slow');
checkElement.slideDown('normal', function() {
checkElement.addClass('menu-open');
parent.find('.menu-open').not(checkElement).removeClass('menu-open');
});
}
if (checkElement.is('.nav-treeview')) {
event.preventDefault();
}
});
});
</script>
<script>
function handleSearch(inputSelector, itemsSelector, containerSelector) {
$(inputSelector).on('keyup', function() {
var searchQuery = $(this).val().toLowerCase();
var found = false; // Variable to track if any item is found
$(itemsSelector).each(function() {
var itemText = $(this).text().toLowerCase();
if (itemText.includes(searchQuery)) {
$(this).show();
found = true;
} else {
$(this).hide();
}
});
// If any item is found, change the class of <li> elements
if (found) {
$(containerSelector + ' .nav-item.menu-closed').each(function() {
$(this).removeClass('menu-closed').addClass('menu-open');
});
} else {
$(containerSelector + ' .nav-item.menu-open').each(function() {
$(this).removeClass('menu-open').addClass('menu-closed');
});
}
});
}
// Apply the search functionality for the main sidebar
handleSearch('#qrtextleft', '.main-sidebar .nav.nav-pills.nav-sidebar.flex-column li', '.main-sidebar');
// Apply the search functionality for the control sidebar
handleSearch('#qrtextright', '.control-sidebar .nav.nav-pills.nav-sidebar.flex-column li', '.control-sidebar');
</script>
</body>
</html>

View File

@ -113,7 +113,7 @@
</div>
<div class="input-group mb-3">
<input type="password" name="password" class="form-control" id="password"
placeholder="password">
placeholder="Palavra-passe">
<div class="input-group-append">
<div class="input-group-text">
<span class="fas fa-lock" style="color:#00B0EA"></span>

View File

@ -11,12 +11,13 @@
<div class="container-fluid">
<div class="row mb-2">
<div class="col-sm-6">
<h1 class="text-light">{{__('messages.pendingUsers.create_users')}}</h1>
<h1 class="text-light">Criar Utilizadores</h1>
</div>
<div class="col-sm-6">
<ol class="breadcrumb float-sm-right">
<li class="breadcrumb-item active">{{__('messages.pendingUsers.administration')}}</li>
<li class="breadcrumb-item active"><a href="{{ route('CreateUsers') }}">{{__('messages.pendingUsers.create_users')}}</a></li>
<li class="breadcrumb-item active">Administração
</li>
<li class="breadcrumb-item active"><a href="{{ route('CreateUsers') }}">Criar Utilizadores</a></li>
</ol>
</div>
</div>
@ -29,13 +30,9 @@
<div class="card-light">
<div class="card-header">
<h3 class="card-title mb-0">{{__('messages.pendingUsers.submit_form')}}</h3>
<h3 class="card-title mb-0">Enviar Formulário:</h3>
</div>
{{-- <h1>{{ __('messages.welcome') }}</h1> --}}
<div class="card-body">
<form action="{{ route('enviar.formulario') }}" method="post">
@csrf
@ -46,15 +43,15 @@
<i class="fa-sharp fa-solid fa-tag" style="color: #00B0EA;"></i>
</span>
<div class="has-float-label">
<input type="text" name="email" class="form-control card_inputs" id="email"
placeholder="Digite o email..." aria-label="Tag Equipment"
<input type="text" name="email" class="form-control card_inputs"
id="email" placeholder="Digite o email..." aria-label="Tag Equipment"
aria-describedby="form-tagEquipment">
{{-- <label>Email </label> --}}
</div>
</div>
</div>
<div class="col-sm-4 text-center">
<button type="submit" class="btn btn-light">{{__('messages.pendingUsers.submit')}}</button>
<button type="submit" class="btn btn-light">Enviar</button>
</div>
</div>
</form>
@ -65,7 +62,7 @@
<div class="card-light">
<div class="card-header">
<h2 class="card-title">{{__('messages.pendingUsers.pending_users')}}:</h2>
<h2 class="card-title">Utilizadores Pendentes :</h2>
</div>
<div class="card-body">
<div class="table-responsive">
@ -73,9 +70,9 @@
id="tableReceiveAllPendingUsers">
<thead class="text-center">
<tr>
<th>{{__('messages.pendingUsers.table_pending_user.name')}}</th>
<th>{{__('messages.pendingUsers.table_pending_user.email')}}</th>
<th>{{__('messages.pendingUsers.table_pending_user.verify')}}</th>
<th>Nome</th>
<th>Email</th>
<th>Verificar</th>
</tr>
</thead>
<tbody class="text-center">

View File

@ -1221,8 +1221,7 @@ class="btn btn-info">Baixar Template</a>
{{-- ./table-responsive --}}
@foreach ($listEquipmentsProjects as $listEquipmentsProject)
<div class="modal fade" id="modal-showEquipment-{{ $listEquipmentsProject->equipment_id }}">
<div class="modal-dialog modal-xl">
<div class="modal-content">
<div class="modal-header bg-light">

View File

@ -30,7 +30,7 @@
<div class="container-fluid">
<div class="card card-primary" id="CardDetalhes">
<div class="card-header bg-primary text-white">
<h3 class="card-title mb-0">{{ __('messages.createProject.project_work_details') }}</h3>
<h3 class="card-title mb-0">Detalhes da Obra</h3>
</div>
<div class="card-body">
@ -41,39 +41,34 @@
<div class="row">
<div class="form-group col-sm-6">
<label>{{ __('messages.createProject.project_identification') }}<b
style="color:red">*</b></label>
<label>Descrição da obra <b style="color:red">*</b></label>
<input type="text" name="description_project" class="form-control"
placeholder="{{ __('messages.createProject.project_identification') }}&hellip;" required>
placeholder="Descrição da obra;" required>
</div>
<div class="form-group col-sm-6">
<label>{{ __('messages.createProject.ispt_project_number') }}<b
style="color:red">*</b></label>
<label>. obra ISPT <b style="color:red">*</b></label>
<input type="number" name="n_project_ispt" class="form-control"
placeholder="{{ __('messages.createProject.ispt_project_number') }}&hellip;" required>
placeholder="Nº. obra ISPT&hellip;" required>
</div>
</div>
<div class="row">
<div class="form-group col-sm-6">
<label>{{ __('messages.createProject.ispt_project_manager') }} <b
style="color:red">*</b></label>
<label>Responsável obra ISPT <b style="color:red">*</b></label>
<input type="text" name="responsible_project_ispt" class="form-control"
placeholder="{{ __('messages.createProject.ispt_project_manager') }}&hellip;" required>
placeholder="Responsável obra ISPT&hellip;" required>
</div>
<div class="form-group col-sm-6">
<label>{{ __('messages.createProject.compan_project_manager') }} <b
style="color:red">*</b></label>
<label>Responsável obra Empresa <b style="color:red">*</b></label>
<input type="text" name="responsible_project_company" class="form-control"
placeholder="{{ __('messages.createProject.compan_project_manager') }}&hellip;" required>
placeholder="Responsável obra cliente&hellip;" required>
</div>
</div>
<div class="row">
<div class="form-group col-sm-6" id="companyField">
<label>{{ __('messages.createProject.select_company.contracting_company') }} <b
style="color:red">*</b></label>
<label>Empresa <b style="color:red">*</b></label>
<select class="form-control" name="user_id" id="company_select" required>
<option>{{ __('messages.createProject.select_plant.plant') }} ...</option>
<option value="">Selecione uma Empresa...</option>
@foreach ($companies as $company)
<option value="{{ $company->user_id }}">{{ $company->user_name }}</option>
@endforeach
@ -81,8 +76,7 @@
</div>
<div class="form-group col-sm-6" id="installationField" hidden>
<label>{{ __('messages.createProject.select_plant.plant') }} <b
style="color:red">*</b></label>
<label>Instalação <b style="color:red">*</b></label>
<select class="form-control" name="installation_id" id="installationSelect">
<!-- As opções de instalação serão preenchidas dinamicamente -->
@ -94,37 +88,35 @@
<div class="row" id="new_company_div">
<div class="form-group col-sm-6">
<label>{{ __('messages.createProject.select_plant.new_plant') }} :</label>
<label>Nova Instalação :</label>
<input type="text" id="new_company_name" class="form-control"
name="new_company_name" placeholder="{{ __('messages.createProject.select_plant.new_plant') }}&hellip;">
name="new_company_name" placeholder="Digite o nome da nova empresa">
</div>
<div class="form-group col-sm-6">
<label>{{ __('messages.createProject.select_plant.plant_address') }}</label>
<label>Morada Instalação</label>
<input type="text" class="form-control" name="new_company_address"
placeholder="{{ __('messages.createProject.select_plant.plant_address') }}&hellip;">
placeholder="Localização...">
</div>
</div>
{{-- <div class="form-group" id="localization_installation_client">
<div class="form-group" id="localization_installation_client">
<label>Morada Instalação</label>
<input type="text" class="form-control" placeholder="Localização" readonly>
</div> --}}
</div>
<div class="row">
<div class="form-group col-sm-6">
<label>{{ __('messages.createProject.company_project_number') }}<b
style="color:red">*</b></label>
<label>. de obra Empresa <b style="color:red">*</b></label>
<input type="number" name="project_company_number" class="form-control"
placeholder="{{ __('messages.createProject.company_project_number') }}&hellip;" required>
placeholder="Nº. de obra cliente&hellip;" required>
</div>
<!-- Date -->
<div class="form-group col-sm-6">
<label>{{ __('messages.createProject.project_start_date') }} : <b
style="color:red">*</b></label>
<label>Datas: <b style="color:red">*</b></label>
<div class="input-group">
{{-- <div class="input-group-prepend">
<span class="input-group-text">
@ -142,8 +134,7 @@ class="form-control float-right" required>
<div class="card-footer">
<div class="float-right">
<button type="submit"
class="btn btn-primary">{{ __('messages.buttons.save') }}</button>
<button type="submit" class="btn btn-primary">Guardar</button>
</div>
</div>
</form>
@ -183,19 +174,13 @@ class="btn btn-primary">{{ __('messages.buttons.save') }}</button>
var select = $('#installationSelect');
select.empty();
var translations = {
selectInstallation: @json(__('messages.createProject.select_plant.select_plant')),
createNewInstallation: @json(__('messages.createProject.select_plant.new_plant'))
};
// Adicione as opções fixas aqui
select.append('<option value="#">Selecione uma instalação...</option>');
select.append(
'<option value="new_install">Criar uma nova Instalação ?</option>');
var select = $('#installationSelect');
select.empty();
select.append('<option value="#">' + translations.selectInstallation +
'&hellip;</option>');
select.append('<option value="new_install">' + translations
.createNewInstallation + '</option>');
// Agora você pode adicionar suas opções dinâmicas.
$.each(data, function(index, installation) {
select.append('<option value="' + installation.plant_id +
@ -272,4 +257,5 @@ function addBeforeUnload() {
});
}
</script>
@endsection

View File

@ -26,7 +26,8 @@
</div>
</div>
<form action="{{ route('receiveAnswersEquipment') }}" method="POST" id="form1" class="monitored-form">
<form action="{{ route('receiveAnswersEquipment') }}" method="POST" id="form1"
class="monitored-form">
@csrf
<input type="hidden" name="control_equipment_workstationid" value="{{ $control_ew_id }}">
@ -53,10 +54,10 @@
<select id="existing-joint" name="existing_joint-select"
class="form-control select2" style="width: 100%;" required>
<option selected="selected" disabled hidden value=""></option>
<option value="Tipo 1">Tipo 1</option>
<option value="Tipo 2">Tipo 2</option>
<option value="Tipo 3">Tipo 3</option>
<option value="Tipo 4">Tipo 4</option>
<option value="316L OR">316L OR</option>
<option value="316L IR/OR">316L IR/OR</option>
<option value="Monel IR/OR">Monel IR/OR</option>
<option value="Monel OR C/Gorotex">Monel OR C/Gorotex</option>
</select>
</div>
</div>
@ -71,10 +72,8 @@ class="form-control select2" style="width: 100%;" required>
<select id="facing-type" name="facing_type-select" class="form-control select2"
style="width: 100%;" required>
<option selected="selected" disabled hidden value=""></option>
<option value="Opção 1">Opção 1</option>
<option value="Opção 2">Opção 2</option>
<option value="Opção 3">Opção 3</option>
<option value="Opção 4">Opção 4</option>
<option value="RF">RF</option>
<option value="RTJ">RTJ</option>
</select>
</div>
</div>
@ -153,12 +152,20 @@ class="form-control" placeholder="">
</div> <!-- End of single form-group -->
</div>
<div class="card-footer d-flex justify-content-between">
<!-- Left-aligned button -->
<!-- Center-aligned button (using `mx-auto` to push it to the center) -->
{{-- <button type="button" class="btn btn-primary">Cancelar</button> --}}
<!-- Right-aligned button -->
<button type="submit" class="btn btn-primary">Seguinte</button>
<!-- Botão alinhado à esquerda -->
<button type="submit" data-action="cancel" value="cancel" name="stateEquipment"
class="btn btn-danger">Cancelar</button>
<!-- Botão centralizado -->
<button type="submit" data-action="finish" value="finish" name="stateEquipment"
class="btn btn-success mx-auto">Finalizar</button>
<!-- Botão alinhado à direita -->
<button type="submit"data-action="next" value="next" name="stateEquipment"
class="btn btn-primary">Seguinte</button>
</div>
</form>
</div>
@ -186,7 +193,8 @@ class="form-control" placeholder="">
<span>{{ $receiveDataEquipment->equipment_tag }}</span>
</div>
</div>
<form id="form2" class="monitored-form" action="{{ route('receiveAnswersEquipment') }}" method="POST">
<form id="form2" class="monitored-form" action="{{ route('receiveAnswersEquipment') }}"
method="POST">
@csrf
<input type="hidden" name="control_equipment_workstationid" value="{{ $control_ew_id }}">
@ -226,14 +234,20 @@ class="form-control" placeholder="">
</div> <!-- End of single form-group -->
</div>
<div class="card-footer d-flex justify-content-between">
<!-- Left-aligned button -->
{{-- {{-- <button type="button" class="btn btn-primary">Voltar</button> --}}
<!-- Center-aligned button (using `mx-auto` to push it to the center) -->
{{-- <button type="button" class="btn btn-primary mx-auto">Devolver</button> --}}
<!-- Botão alinhado à esquerda -->
<button type="submit" data-action="cancel" value="cancel" name="stateEquipment"
class="btn btn-danger">Cancelar</button>
<!-- Botão centralizado -->
<button type="submit" data-action="finish" value="finish" name="stateEquipment"
class="btn btn-success mx-auto">Finalizar</button>
<!-- Botão alinhado à direita -->
<button type="submit"data-action="next" value="next" name="stateEquipment"
class="btn btn-primary">Seguinte</button>
<!-- Right-aligned button -->
<button type="submit" class="btn btn-primary">Seguinte</button>
</div>
</form>
</div>
@ -261,7 +275,8 @@ class="form-control" placeholder="">
<span>{{ $receiveDataEquipment->equipment_tag }}</span>
</div>
</div>
<form action="{{ route('receiveAnswersEquipment') }}" method="POST" id="form3" class="monitored-form" >
<form action="{{ route('receiveAnswersEquipment') }}" method="POST" id="form3"
class="monitored-form">
@csrf
<input type="hidden" name="control_equipment_workstationid" value="{{ $control_ew_id }}">
@ -659,14 +674,20 @@ class="form-control datetimepicker-input"
</div> <!-- End of single form-group -->
</div>
<div class="card-footer d-flex justify-content-between">
<!-- Left-aligned button -->
{{-- {{-- <button type="button" class="btn btn-primary">Voltar</button> --}}
<!-- Center-aligned button (using `mx-auto` to push it to the center) -->
{{-- <button type="button" class="btn btn-primary mx-auto">Devolver</button> --}}
<!-- Botão alinhado à esquerda -->
<button type="submit" data-action="cancel" value="cancel" name="stateEquipment"
class="btn btn-danger">Cancelar</button>
<!-- Botão centralizado -->
<button type="submit" data-action="finish" value="finish" name="stateEquipment"
class="btn btn-success mx-auto">Finalizar</button>
<!-- Botão alinhado à direita -->
<button type="submit"data-action="next" value="next" name="stateEquipment"
class="btn btn-primary">Seguinte</button>
<!-- Right-aligned button -->
<button type="submit" class="btn btn-primary">Seguinte</button>
</div>
</form>
</div>
@ -695,7 +716,8 @@ class="form-control datetimepicker-input"
</div>
</div>
<form id="form4" class="monitored-form" action="{{ route('receiveAnswersEquipment') }}" method="POST">
<form id="form4" class="monitored-form" action="{{ route('receiveAnswersEquipment') }}"
method="POST">
@csrf
<input type="hidden" name="control_equipment_workstationid" value="{{ $control_ew_id }}">
@ -1091,14 +1113,20 @@ class="form-control datetimepicker-input"
</div> <!-- End of single form-group -->
</div>
<div class="card-footer d-flex justify-content-between">
<!-- Left-aligned button -->
{{-- {{-- <button type="button" class="btn btn-primary">Voltar</button> --}}
<!-- Center-aligned button (using `mx-auto` to push it to the center) -->
{{-- <button type="button" class="btn btn-primary mx-auto">Devolver</button> --}}
<!-- Botão alinhado à esquerda -->
<button type="submit" data-action="cancel" value="cancel" name="stateEquipment"
class="btn btn-danger">Cancelar</button>
<!-- Botão centralizado -->
<button type="submit" data-action="finish" value="finish" name="stateEquipment"
class="btn btn-success mx-auto">Finalizar</button>
<!-- Botão alinhado à direita -->
<button type="submit"data-action="next" value="next" name="stateEquipment"
class="btn btn-primary">Seguinte</button>
<!-- Right-aligned button -->
<button type="submit" class="btn btn-primary">Seguinte</button>
</div>
</form>
</div>
@ -1128,7 +1156,7 @@ class="form-control datetimepicker-input"
<span>{{ $receiveDataEquipment->equipment_tag }}</span>
</div>
</div>
<form action="{{ route('receiveAnswersEquipment') }}" method="POST" id="idDoFormulario">
<form action="{{ route('receiveAnswersEquipment') }}" method="POST" id="form5">
@csrf
<input type="hidden" name="control_equipment_workstationid" value="{{ $control_ew_id }}">
@ -1449,14 +1477,20 @@ class="form-control select2" style="width: 100%;" required>
</div> <!-- End of single form-group -->
</div>
<div class="card-footer d-flex justify-content-between">
<!-- Left-aligned button -->
{{-- {{-- <button type="button" class="btn btn-primary">Voltar</button> --}}
<!-- Center-aligned button (using `mx-auto` to push it to the center) -->
{{-- <button type="button" class="btn btn-primary mx-auto">Devolver</button> --}}
<!-- Botão alinhado à esquerda -->
<button type="submit" data-action="cancel" value="cancel" name="stateEquipment"
class="btn btn-danger">Cancelar</button>
<!-- Botão centralizado -->
<button type="submit" data-action="finish" value="finish" name="stateEquipment"
class="btn btn-success mx-auto">Finalizar</button>
<!-- Botão alinhado à direita -->
<button type="submit"data-action="next" value="next" name="stateEquipment"
class="btn btn-primary">Seguinte</button>
<!-- Right-aligned button -->
<button type="submit" class="btn btn-primary">Seguinte</button>
</div>
</form>
</div>
@ -1486,7 +1520,7 @@ class="form-control select2" style="width: 100%;" required>
<span>{{ $receiveDataEquipment->equipment_tag }}</span>
</div>
</div>
<form action="{{ route('receiveAnswersEquipment') }}" method="POST">
<form action="{{ route('receiveAnswersEquipment') }}" method="POST" id="form6">
@csrf
<div class="card-body">
<div class="form-group"> <!-- Single form-group for all content -->
@ -1877,14 +1911,20 @@ class="form-control select2" style="width: 100%;" required>
</div> <!-- End of single form-group -->
</div>
<div class="card-footer d-flex justify-content-between">
<!-- Left-aligned button -->
{{-- {{-- <button type="button" class="btn btn-primary">Voltar</button> --}}
<!-- Center-aligned button (using `mx-auto` to push it to the center) -->
{{-- <button type="button" class="btn btn-primary mx-auto">Devolver</button> --}}
<!-- Botão alinhado à esquerda -->
<button type="submit" data-action="cancel" value="cancel" name="stateEquipment"
class="btn btn-danger">Cancelar</button>
<!-- Botão centralizado -->
<button type="submit" data-action="finish" value="finish" name="stateEquipment"
class="btn btn-success mx-auto">Finalizar</button>
<!-- Botão alinhado à direita -->
<button type="submit"data-action="next" value="next" name="stateEquipment"
class="btn btn-primary">Seguinte</button>
<!-- Right-aligned button -->
<button type="submit" class="btn btn-primary">Seguinte</button>
</div>
</form>
</div>
@ -1914,7 +1954,7 @@ class="form-control select2" style="width: 100%;" required>
<span>{{ $receiveDataEquipment->equipment_tag }}</span>
</div>
</div>
<form action="{{ route('receiveAnswersEquipment') }}" method="POST">
<form action="{{ route('receiveAnswersEquipment') }}" method="POST" id="form7">
@csrf
<input type="hidden" name="control_equipment_workstationid"
value="{{ $control_ew_id }}">
@ -2144,14 +2184,20 @@ class="form-control select2" style="width: 100%;" required>
</div> <!-- End of single form-group -->
</div>
<div class="card-footer d-flex justify-content-between">
<!-- Left-aligned button -->
{{-- {{-- <button type="button" class="btn btn-primary">Voltar</button> --}}
<!-- Center-aligned button (using `mx-auto` to push it to the center) -->
{{-- <button type="button" class="btn btn-primary mx-auto">Devolver</button> --}}
<!-- Botão alinhado à esquerda -->
<button type="submit" data-action="cancel" value="cancel" name="stateEquipment"
class="btn btn-danger">Cancelar</button>
<!-- Botão centralizado -->
<button type="submit" data-action="finish" value="finish" name="stateEquipment"
class="btn btn-success mx-auto">Finalizar</button>
<!-- Botão alinhado à direita -->
<button type="submit"data-action="next" value="next" name="stateEquipment"
class="btn btn-primary">Seguinte</button>
<!-- Right-aligned button -->
<button type="submit" class="btn btn-primary">Seguinte</button>
</div>
</form>
</div>
@ -2179,12 +2225,12 @@ class="form-control select2" style="width: 100%;" required>
<span>{{ $receiveDataEquipment->equipment_tag }}</span>
</div>
</div>
<form action="{{ route('receiveAnswersEquipment') }}" method="POST">
<form action="{{ route('receiveAnswersEquipment') }}" method="POST" id="form8">
@csrf
<input type="hidden" name="control_equipment_workstationid"
value="{{ $control_ew_id }}">
<input type="hidden" name="elemental_tasks_id"
<input type="hidden" name="elemental_tasks_id"
value="{{ $receiveDataElementalTask->elemental_tasks_id }}">
<div class="card-body">
@ -2213,14 +2259,19 @@ class="form-control select2" style="width: 100%;" required>
</div> <!-- End of single form-group -->
</div>
<div class="card-footer d-flex justify-content-between">
<!-- Left-aligned button -->
{{-- {{-- <button type="button" class="btn btn-primary">Voltar</button> --}}
<!-- Center-aligned button (using `mx-auto` to push it to the center) -->
{{-- <button type="button" class="btn btn-primary mx-auto">Devolver</button> --}}
<!-- Botão alinhado à esquerda -->
<button type="submit" data-action="cancel" value="cancel" name="stateEquipment"
class="btn btn-danger">Cancelar</button>
<!-- Right-aligned button -->
<button type="submit" class="btn btn-primary">Seguinte</button>
<!-- Botão centralizado -->
<button type="submit" data-action="finish" value="finish" name="stateEquipment"
class="btn btn-success mx-auto">Finalizar</button>
<!-- Botão alinhado à direita -->
<button type="submit"data-action="next" value="next" name="stateEquipment"
class="btn btn-primary">Seguinte</button>
</div>
</form>
</div>
@ -2248,12 +2299,12 @@ class="form-control select2" style="width: 100%;" required>
<span>{{ $receiveDataEquipment->equipment_tag }}</span>
</div>
</div>
<form action="{{ route('receiveAnswersEquipment') }}" method="POST">
<form action="{{ route('receiveAnswersEquipment') }}" method="POST" id='form9'>
@csrf
<input type="hidden" name="control_equipment_workstationid"
value="{{ $control_ew_id }}">
<input type="hidden" name="elemental_tasks_code"
<input type="hidden" name="elemental_tasks_code"
value="{{ $receiveDataElementalTask->elemental_tasks_code }}">
<div class="card-body">
@ -2309,14 +2360,19 @@ class="form-control select2" style="width: 100%;" required>
</div> <!-- End of single form-group -->
</div>
<div class="card-footer d-flex justify-content-between">
<!-- Left-aligned button -->
{{-- <button type="button" class="btn btn-primary">Voltar</button> --}}
<!-- Center-aligned button (using `mx-auto` to push it to the center) -->
<button type="button" class="btn btn-primary mx-auto">Devolver</button>
<!-- Botão alinhado à esquerda -->
<button type="submit" data-action="cancel" value="cancel" name="stateEquipment"
class="btn btn-danger">Cancelar</button>
<!-- Right-aligned button -->
<button type="submit" class="btn btn-primary">Seguinte</button>
<!-- Botão centralizado -->
<button type="submit" data-action="finish" value="finish" name="stateEquipment"
class="btn btn-success mx-auto">Finalizar</button>
<!-- Botão alinhado à direita -->
<button type="submit"data-action="next" value="next" name="stateEquipment"
class="btn btn-primary">Seguinte</button>
</div>
</form>
</div>
@ -2345,7 +2401,7 @@ class="form-control select2" style="width: 100%;" required>
<span>{{ $receiveDataEquipment->equipment_tag }}</span>
</div>
</div>
<form action="{{ route('receiveAnswersEquipment') }}" method="POST">
<form action="{{ route('receiveAnswersEquipment') }}" method="POST" id="form10">
@csrf
<input type="hidden" name="control_equipment_workstationid"
value="{{ $control_ew_id }}">
@ -2546,14 +2602,19 @@ class="form-control select2" style="width: 100%;" required>
</div> <!-- End of single form-group -->
</div>
<div class="card-footer d-flex justify-content-between">
<!-- Left-aligned button -->
{{-- <button type="button" class="btn btn-primary">Voltar</button> --}}
<!-- Center-aligned button (using `mx-auto` to push it to the center) -->
{{-- <button type="button" class="btn btn-primary mx-auto">Devolver</button> --}}
<!-- Botão alinhado à esquerda -->
<button type="submit" data-action="cancel" value="cancel" name="stateEquipment"
class="btn btn-danger">Cancelar</button>
<!-- Right-aligned button -->
<button type="submit" class="btn btn-primary">Seguinte</button>
<!-- Botão centralizado -->
<button type="submit" data-action="finish" value="finish" name="stateEquipment"
class="btn btn-success mx-auto">Finalizar</button>
<!-- Botão alinhado à direita -->
<button type="submit"data-action="next" value="next" name="stateEquipment"
class="btn btn-primary">Seguinte</button>
</div>
</form>
</div>
@ -2581,7 +2642,7 @@ class="form-control select2" style="width: 100%;" required>
<span>{{ $receiveDataEquipment->equipment_tag }}</span>
</div>
</div>
<form action="{{ route('receiveAnswersEquipment') }}" method="POST">
<form action="{{ route('receiveAnswersEquipment') }}" method="POST" id="form11">
@csrf
<input type="hidden" name="control_equipment_workstationid"
value="{{ $control_ew_id }}">
@ -3173,14 +3234,19 @@ class="form-control" placeholder="" required>
</div> <!-- End of single form-group -->
</div>
<div class="card-footer d-flex justify-content-between">
<!-- Left-aligned button -->
{{-- <button type="button" class="btn btn-primary">Voltar</button> --}}
<!-- Center-aligned button (using `mx-auto` to push it to the center) -->
{{-- <button type="button" class="btn btn-primary mx-auto">Devolver</button> --}}
<!-- Botão alinhado à esquerda -->
<button type="submit" data-action="cancel" value="cancel" name="stateEquipment"
class="btn btn-danger">Cancelar</button>
<!-- Right-aligned button -->
<button type="submit" class="btn btn-primary">Seguinte</button>
<!-- Botão centralizado -->
<button type="submit" data-action="finish" value="finish" name="stateEquipment"
class="btn btn-success mx-auto">Finalizar</button>
<!-- Botão alinhado à direita -->
<button type="submit"data-action="next" value="next" name="stateEquipment"
class="btn btn-primary">Seguinte</button>
</div>
</form>
</div>
@ -3209,7 +3275,7 @@ class="form-control" placeholder="" required>
<span>{{ $receiveDataEquipment->equipment_tag }}</span>
</div>
</div>
<form action="{{ route('receiveAnswersEquipment') }}" method="POST">
<form action="{{ route('receiveAnswersEquipment') }}" method="POST" id="form12">
@csrf
<input type="hidden" name="control_equipment_workstationid"
value="{{ $control_ew_id }}">
@ -3589,14 +3655,19 @@ class="form-control" placeholder="" required>
</div> <!-- End of single form-group -->
</div>
<div class="card-footer d-flex justify-content-between">
<!-- Left-aligned button -->
{{-- <button type="button" class="btn btn-primary">Voltar</button> --}}
<!-- Center-aligned button (using `mx-auto` to push it to the center) -->
{{-- <button type="button" class="btn btn-primary mx-auto">Devolver</button> --}}
<!-- Botão alinhado à esquerda -->
<button type="submit" data-action="cancel" value="cancel" name="stateEquipment"
class="btn btn-danger">Cancelar</button>
<!-- Right-aligned button -->
<button type="submit" class="btn btn-primary">Seguinte</button>
<!-- Botão centralizado -->
<button type="submit" data-action="finish" value="finish" name="stateEquipment"
class="btn btn-success mx-auto">Finalizar</button>
<!-- Botão alinhado à direita -->
<button type="submit"data-action="next" value="next" name="stateEquipment"
class="btn btn-primary">Seguinte</button>
</div>
</form>
</div>
@ -3624,7 +3695,7 @@ class="form-control" placeholder="" required>
<span>{{ $receiveDataEquipment->equipment_tag }}</span>
</div>
</div>
<form action="{{ route('receiveAnswersEquipment') }}" method="POST">
<form action="{{ route('receiveAnswersEquipment') }}" method="POST" id="form13">
@csrf
<input type="hidden" name="control_equipment_workstationid"
value="{{ $control_ew_id }}">
@ -3790,14 +3861,19 @@ class="form-control" style="width: 100%;" placeholder="">
</div> <!-- End of single form-group -->
</div>
<div class="card-footer d-flex justify-content-between">
<!-- Left-aligned button -->
{{-- <button type="button" class="btn btn-primary">Voltar</button> --}}
<!-- Center-aligned button (using `mx-auto` to push it to the center) -->
{{-- <button type="button" class="btn btn-primary mx-auto">Devolver</button> --}}
<!-- Botão alinhado à esquerda -->
<button type="submit" data-action="cancel" value="cancel" name="stateEquipment"
class="btn btn-danger">Cancelar</button>
<!-- Right-aligned button -->
<button type="submit" class="btn btn-primary">Seguinte</button>
<!-- Botão centralizado -->
<button type="submit" data-action="finish" value="finish" name="stateEquipment"
class="btn btn-success mx-auto">Finalizar</button>
<!-- Botão alinhado à direita -->
<button type="submit"data-action="next" value="next" name="stateEquipment"
class="btn btn-primary">Seguinte</button>
</div>
</form>
</div>
@ -3825,7 +3901,7 @@ class="form-control" style="width: 100%;" placeholder="">
<span>{{ $receiveDataEquipment->equipment_tag }}</span>
</div>
</div>
<form action="{{ route('receiveAnswersEquipment') }}" method="POST">
<form action="{{ route('receiveAnswersEquipment') }}" method="POST" id="form14">
@csrf
<input type="hidden" name="control_equipment_workstationid"
value="{{ $control_ew_id }}">
@ -3856,14 +3932,19 @@ class="form-control" style="width: 100%;" placeholder="">
</div> <!-- End of single form-group -->
</div>
<div class="card-footer d-flex justify-content-between">
<!-- Left-aligned button -->
{{-- <button type="button" class="btn btn-primary">Voltar</button> --}}
<!-- Center-aligned button (using `mx-auto` to push it to the center) -->
{{-- <button type="button" class="btn btn-primary mx-auto">Devolver</button> --}}
<!-- Botão alinhado à esquerda -->
<button type="submit" data-action="cancel" value="cancel" name="stateEquipment"
class="btn btn-danger">Cancelar</button>
<!-- Right-aligned button -->
<button type="submit" class="btn btn-primary">Seguinte</button>
<!-- Botão centralizado -->
<button type="submit" data-action="finish" value="finish" name="stateEquipment"
class="btn btn-success mx-auto">Finalizar</button>
<!-- Botão alinhado à direita -->
<button type="submit"data-action="next" value="next" name="stateEquipment"
class="btn btn-primary">Seguinte</button>
</div>
</form>
</div>
@ -3891,7 +3972,7 @@ class="form-control" style="width: 100%;" placeholder="">
<span>{{ $receiveDataEquipment->equipment_tag }}</span>
</div>
</div>
<form action="{{ route('receiveAnswersEquipment') }}" method="POST">
<form action="{{ route('receiveAnswersEquipment') }}" method="POST" id="form15">
@csrf
<input type="hidden" name="control_equipment_workstationid"
value="{{ $control_ew_id }}">
@ -3918,9 +3999,10 @@ class="form-control" style="width: 100%;" placeholder="">
<select id="gasket-type" name="gasket_type-select"
class="form-control select2" style="width: 100%;" required>
<option selected="selected" disabled hidden value=""></option>
<option value="Tipo 1">Tipo 1</option>
<option value="Tipo 2">Tipo 2</option>
<option value="Tipo 3">Tipo 3</option>
<option value="316L OR">316L OR</option>
<option value="316L IR/OR">316L IR/OR</option>
<option value="Monel IR/OR">Monel IR/OR</option>
<option value="Monel OR C/Gorotex">Monel OR C/Gorotex</option>
</select>
</div>
</div>
@ -3929,14 +4011,19 @@ class="form-control select2" style="width: 100%;" required>
</div> <!-- End of single form-group -->
</div>
<div class="card-footer d-flex justify-content-between">
<!-- Left-aligned button -->
{{-- <button type="button" class="btn btn-primary">Voltar</button> --}}
<!-- Center-aligned button (using `mx-auto` to push it to the center) -->
{{-- <button type="button" class="btn btn-primary mx-auto">Devolver</button> --}}
<!-- Botão alinhado à esquerda -->
<button type="submit" data-action="cancel" value="cancel" name="stateEquipment"
class="btn btn-danger">Cancelar</button>
<!-- Right-aligned button -->
<button type="submit" class="btn btn-primary">Seguinte</button>
<!-- Botão centralizado -->
<button type="submit" data-action="finish" value="finish" name="stateEquipment"
class="btn btn-success mx-auto">Finalizar</button>
<!-- Botão alinhado à direita -->
<button type="submit"data-action="next" value="next" name="stateEquipment"
class="btn btn-primary">Seguinte</button>
</div>
</form>
</div>
@ -3965,7 +4052,7 @@ class="form-control select2" style="width: 100%;" required>
</div>
</div>
<form action="{{ route('receiveAnswersEquipment') }}" method="POST">
<form action="{{ route('receiveAnswersEquipment') }}" method="POST" id="16">
@csrf
<input type="hidden" name="control_equipment_workstationid"
value="{{ $control_ew_id }}">
@ -3992,9 +4079,10 @@ class="form-control select2" style="width: 100%;" required>
<select id="gasket-type" name="gasket_type-select"
class="form-control select2" style="width: 100%;" required>
<option selected="selected" disabled hidden value=""></option>
<option value="Tipo 1">Tipo 1</option>
<option value="Tipo 2">Tipo 2</option>
<option value="Tipo 3">Tipo 3</option>
<option value="316L OR">316L OR</option>
<option value="316L IR/OR">316L IR/OR</option>
<option value="Monel IR/OR">Monel IR/OR</option>
<option value="Monel OR C/Gorotex">Monel OR C/Gorotex</option>
</select>
</div>
</div>
@ -4003,14 +4091,19 @@ class="form-control select2" style="width: 100%;" required>
</div> <!-- End of single form-group -->
</div>
<div class="card-footer d-flex justify-content-between">
<!-- Left-aligned button -->
{{-- <button type="button" class="btn btn-primary">Voltar</button> --}}
<!-- Center-aligned button (using `mx-auto` to push it to the center) -->
{{-- <button type="button" class="btn btn-primary mx-auto">Devolver</button> --}}
<!-- Botão alinhado à esquerda -->
<button type="submit" data-action="cancel" value="cancel" name="stateEquipment"
class="btn btn-danger">Cancelar</button>
<!-- Right-aligned button -->
<button type="submit" class="btn btn-primary">Seguinte</button>
<!-- Botão centralizado -->
<button type="submit" data-action="finish" value="finish" name="stateEquipment"
class="btn btn-success mx-auto">Finalizar</button>
<!-- Botão alinhado à direita -->
<button type="submit"data-action="next" value="next" name="stateEquipment"
class="btn btn-primary">Seguinte</button>
</div>
</form>
</div>
@ -4038,7 +4131,7 @@ class="form-control select2" style="width: 100%;" required>
<span>{{ $receiveDataEquipment->equipment_tag }}</span>
</div>
</div>
<form action="{{ route('receiveAnswersEquipment') }}" method="POST">
<form action="{{ route('receiveAnswersEquipment') }}" method="POST" id="form17">
@csrf
<input type="hidden" name="control_equipment_workstationid"
value="{{ $control_ew_id }}">
@ -4072,14 +4165,19 @@ class="form-control select2" style="width: 100%;" required>
</div> <!-- End of single form-group -->
</div>
<div class="card-footer d-flex justify-content-between">
<!-- Left-aligned button -->
{{-- <button type="button" class="btn btn-primary">Voltar</button> --}}
<!-- Center-aligned button (using `mx-auto` to push it to the center) -->
{{-- <button type="button" class="btn btn-primary mx-auto">Devolver</button> --}}
<!-- Botão alinhado à esquerda -->
<button type="submit" data-action="cancel" value="cancel" name="stateEquipment"
class="btn btn-danger">Cancelar</button>
<!-- Right-aligned button -->
<button type="submit" class="btn btn-primary">Seguinte</button>
<!-- Botão centralizado -->
<button type="submit" data-action="finish" value="finish" name="stateEquipment"
class="btn btn-success mx-auto">Finalizar</button>
<!-- Botão alinhado à direita -->
<button type="submit"data-action="next" value="next" name="stateEquipment"
class="btn btn-primary">Seguinte</button>
</div>
</form>
</div>
@ -4107,7 +4205,7 @@ class="form-control select2" style="width: 100%;" required>
<span>{{ $receiveDataEquipment->equipment_tag }}</span>
</div>
</div>
<form action="{{ route('receiveAnswersEquipment') }}" method="POST">
<form action="{{ route('receiveAnswersEquipment') }}" method="POST" id="form18">
@csrf
<input type="hidden" name="control_equipment_workstationid"
value="{{ $control_ew_id }}">
@ -4274,14 +4372,19 @@ class="form-control select2" style="width: 100%;" required>
</div> <!-- End of single form-group -->
</div>
<div class="card-footer d-flex justify-content-between">
<!-- Left-aligned button -->
{{-- <button type="button" class="btn btn-primary">Voltar</button> --}}
<!-- Center-aligned button (using `mx-auto` to push it to the center) -->
{{-- <button type="button" class="btn btn-primary mx-auto">Devolver</button> --}}
<!-- Botão alinhado à esquerda -->
<button type="submit" data-action="cancel" value="cancel" name="stateEquipment"
class="btn btn-danger">Cancelar</button>
<!-- Right-aligned button -->
<button type="submit" class="btn btn-primary">Seguinte</button>
<!-- Botão centralizado -->
<button type="submit" data-action="finish" value="finish" name="stateEquipment"
class="btn btn-success mx-auto">Finalizar</button>
<!-- Botão alinhado à direita -->
<button type="submit"data-action="next" value="next" name="stateEquipment"
class="btn btn-primary">Seguinte</button>
</div>
</form>
</div>
@ -4310,7 +4413,7 @@ class="form-control select2" style="width: 100%;" required>
<span>{{ $receiveDataEquipment->equipment_tag }}</span>
</div>
</div>
<form action="{{ route('receiveAnswersEquipment') }}" method="POST">
<form action="{{ route('receiveAnswersEquipment') }}" method="POST" id="form19">
@csrf
<input type="hidden" name="control_equipment_workstationid"
value="{{ $control_ew_id }}">
@ -4609,9 +4712,9 @@ class="form-control" placeholder="">
class="form-control select2" style="width: 100%;" required>
<option selected="selected" disabled hidden value="">
</option>
<option value="Opção 1">Opção 1</option>
<option value="Opção 2">Opção 2</option>
<option value="Opção 3">Opção 3</option>
<option value="Mala 1">Mala 1</option>
<option value="Mala 2">Mala 2</option>
<option value="Mala 3">Mala 3</option>
</select>
</div>
</div>
@ -4690,14 +4793,19 @@ class="form-control select2" style="width: 100%;" required>
</div> <!-- End of single form-group -->
</div>
<div class="card-footer d-flex justify-content-between">
<!-- Left-aligned button -->
{{-- <button type="button" class="btn btn-primary">Voltar</button> --}}
<!-- Center-aligned button (using `mx-auto` to push it to the center) -->
{{-- <button type="button" class="btn btn-primary mx-auto">Devolver</button> --}}
<!-- Botão alinhado à esquerda -->
<button type="submit" data-action="cancel" value="cancel" name="stateEquipment"
class="btn btn-danger">Cancelar</button>
<!-- Right-aligned button -->
<button type="submit" class="btn btn-primary">Seguinte</button>
<!-- Botão centralizado -->
<button type="submit" data-action="finish" value="finish" name="stateEquipment"
class="btn btn-success mx-auto">Finalizar</button>
<!-- Botão alinhado à direita -->
<button type="submit"data-action="next" value="next" name="stateEquipment"
class="btn btn-primary">Seguinte</button>
</div>
</form>
</div>
@ -4727,7 +4835,7 @@ class="form-control select2" style="width: 100%;" required>
</div>
</div>
</div>
<form action="{{ route('receiveAnswersEquipment') }}" method="POST">
<form action="{{ route('receiveAnswersEquipment') }}" method="POST" id="form20">
@csrf
<input type="hidden" name="control_equipment_workstationid" value="{{ $control_ew_id }}">
<div class="card-body">
@ -4839,14 +4947,19 @@ class="form-control select2" style="width: 100%;" required>
</div> <!-- End of single form-group -->
</div>
<div class="card-footer d-flex justify-content-between">
<!-- Left-aligned button -->
{{-- <button type="button" class="btn btn-primary">Voltar</button> --}}
<!-- Center-aligned button (using `mx-auto` to push it to the center) -->
{{-- <button type="button" class="btn btn-primary mx-auto">Devolver</button> --}}
<!-- Botão alinhado à esquerda -->
<button type="submit" data-action="cancel" value="cancel" name="stateEquipment"
class="btn btn-danger">Cancelar</button>
<!-- Right-aligned button -->
<button type="submit" class="btn btn-primary">Seguinte</button>
<!-- Botão centralizado -->
<button type="submit" data-action="finish" value="finish" name="stateEquipment"
class="btn btn-success mx-auto">Finalizar</button>
<!-- Botão alinhado à direita -->
<button type="submit"data-action="next" value="next" name="stateEquipment"
class="btn btn-primary">Seguinte</button>
</div>
</form>
</div>
@ -4874,10 +4987,11 @@ class="form-control select2" style="width: 100%;" required>
<span>{{ $receiveDataEquipment->equipment_tag }}</span>
</div>
</div>
<form action="{{ route('receiveAnswersEquipment') }}" method="POST">
<form action="{{ route('receiveAnswersEquipment') }}" method="POST" id="form21">
@csrf
<input type="hidden" name="control_equipment_workstationid" value="{{ $control_ew_id }}">
<input type="hidden" name="control_equipment_workstationid"
value="{{ $control_ew_id }}">
<div class="card-body">
<div class="form-group"> <!-- Single form-group for all content -->
@ -4909,8 +5023,9 @@ class="form-control select2" style="width: 100%;" required>
<label>Marca <span style="color: red;">*</span></label>
</div>
<div class="col-md-6 d-flex align-items-center">
<input id="seal-brand" name="seal_brand-label" type="text" maxlength="50"
class="form-control" style="width: 100%;" placeholder="" required>
<input id="seal-brand" name="seal_brand-label" type="text"
maxlength="50" class="form-control" style="width: 100%;"
placeholder="" required>
</div>
</div>
<!-- ./ Marca -->
@ -4921,8 +5036,9 @@ class="form-control" style="width: 100%;" placeholder="" required>
<label>Tipo <span style="color: red;">*</span></label>
</div>
<div class="col-md-6 d-flex align-items-center">
<input id="seal-type" name="seal_type-label" type="text" maxlength="50"
class="form-control" style="width: 100%;" placeholder="" required>
<input id="seal-type" name="seal_type-label" type="text"
maxlength="50" class="form-control" style="width: 100%;"
placeholder="" required>
</div>
</div>
<!-- ./ Tipo -->
@ -4991,14 +5107,19 @@ class="form-control" placeholder="" required>
</div> <!-- End of single form-group -->
</div>
<div class="card-footer d-flex justify-content-between">
<!-- Left-aligned button -->
{{-- <button type="button" class="btn btn-primary">Voltar</button> --}}
<!-- Center-aligned button (using `mx-auto` to push it to the center) -->
{{-- <button type="button" class="btn btn-primary mx-auto">Devolver</button> --}}
<!-- Botão alinhado à esquerda -->
<button type="submit" data-action="cancel" value="cancel" name="stateEquipment"
class="btn btn-danger">Cancelar</button>
<!-- Right-aligned button -->
<button type="submit" class="btn btn-primary">Seguinte</button>
<!-- Botão centralizado -->
<button type="submit" data-action="finish" value="finish" name="stateEquipment"
class="btn btn-success mx-auto">Finalizar</button>
<!-- Botão alinhado à direita -->
<button type="submit"data-action="next" value="next" name="stateEquipment"
class="btn btn-primary">Seguinte</button>
</div>
</form>
</div>
@ -5026,7 +5147,7 @@ class="form-control" placeholder="" required>
<span>{{ $receiveDataEquipment->equipment_tag }}</span>
</div>
</div>
<form action="{{ route('receiveAnswersEquipment') }}" method="POST">
<form action="{{ route('receiveAnswersEquipment') }}" method="POST" id="form24">
@csrf
<input type="hidden" name="control_equipment_workstationid"
value="{{ $control_ew_id }}">
@ -5057,14 +5178,19 @@ class="form-control" placeholder="" required>
</div> <!-- End of single form-group -->
</div>
<div class="card-footer d-flex justify-content-between">
<!-- Left-aligned button -->
{{-- <button type="button" class="btn btn-primary">Voltar</button> --}}
<!-- Center-aligned button (using `mx-auto` to push it to the center) -->
{{-- <button type="button" class="btn btn-primary mx-auto">Devolver</button> --}}
<!-- Botão alinhado à esquerda -->
<button type="submit" data-action="cancel" value="cancel" name="stateEquipment"
class="btn btn-danger">Cancelar</button>
<!-- Right-aligned button -->
<button type="submit" class="btn btn-primary">Seguinte</button>
<!-- Botão centralizado -->
<button type="submit" data-action="finish" value="finish" name="stateEquipment"
class="btn btn-success mx-auto">Finalizar</button>
<!-- Botão alinhado à direita -->
<button type="submit"data-action="next" value="next" name="stateEquipment"
class="btn btn-primary">Seguinte</button>
</div>
</form>
</div>
@ -5075,10 +5201,15 @@ class="form-control" placeholder="" required>
</section>
@endif
{{-- <div class="row content">
<div class="col-sm-6"><button class="btn btn-danger float-left">Voltar</button></div>
<div class="col-sm-6"><button class="btn btn-success float-right">Avançar -> Tarefa :: {{}}</button></div>
</div> --}}
<script type="text/javascript">
let formSubmitted = false;
document.addEventListener('DOMContentLoaded', (event) => {
const forms = document.querySelectorAll('.monitored-form');
forms.forEach(form => {
@ -5086,14 +5217,14 @@ class="form-control" placeholder="" required>
form.addEventListener('submit', function() {
formSubmitted = true;
});
form.addEventListener('input', function() {
addBeforeUnload();
});
}
});
});
function addBeforeUnload() {
window.addEventListener('beforeunload', function(e) {
if (!formSubmitted) {
@ -5104,10 +5235,32 @@ function addBeforeUnload() {
});
}
</script>
<script>
$(document).ready(function() {
// Seletor para todos os botões dentro de qualquer formulário com ID form1 até form23
$('form[id^="form"] button').on('click', function(e) {
var action = $(this).data('action');
if (action === 'cancel') {
// Previne a validação padrão do formulário
e.preventDefault();
// Determina a qual formulário este botão pertence
var form = $(this).closest('form');
// Adiciona um campo input oculto com o valor "cancel" ao formulário específico
$('<input>').attr({
type: 'hidden',
name: 'stateEquipment',
value: 'cancel'
}).appendTo(form);
// Envia o formulário específico manualmente
form.off('submit').submit();
}
});
});
</script>
@endsection

View File

@ -28,7 +28,6 @@
use App\Http\Controllers\PreparedProjectController;
use App\Http\Controllers\ExecutionProjectController;
use App\Http\Controllers\WorkstationsJobsController;
use App\Http\Controllers\LanguageController;
// Esta rota so pode aceder quem tiver o link atravez do email
@ -36,10 +35,6 @@
return view('email/FormAdmin');
})->name('formulario');
Route::post('language/switch', [LanguageController::class, 'switchLanguage'])->name('language.switch');
// Email
Route::get('/your-verification-route/{id}/{hash}', [UserController::class, 'yourVerificationMethod'])
->middleware(['auth', 'signed', 'throttle:6,1'])