Primer commit proyecto Laravel

This commit is contained in:
2026-02-05 11:10:09 -06:00
commit e4559106d4
2153 changed files with 210301 additions and 0 deletions
@@ -0,0 +1,47 @@
@extends('layouts.landing')
@section('title',"Crear")
@section('content')
<div class="container-fluid">
<div class="card shadow mb-4">
<div class="card-header py-3">
<div class="d-sm-flex align-items-center justify-content-between">
<h6 class="m-0 font-weight-bold text-primary">Crear carrera</h6>
<a href="{{route('carrera.index')}}" class="d-sm-inline-block btn btn-sm btn-primary shadow-sm"><i class="fas fa-download fa-sm text-white-50"></i> Regresar</a>
</div>
</div>
<div class="card-body">
<form action="{{route('carrera.store')}}" method="POST">
@csrf
<div class="mb-3">
<label class="small mb-1">Nombre</label>
<input class="form-control" name="name">
</div>
<div class="mb-3">
<label for="status">Seleccionar nivel</label>
<select class="form-control" name="nivel" id="nivel">
@foreach ($nivels as $nivel)
<option value="{{ $nivel->id }}">{{ $nivel->name }}</option>
@endforeach
</select>
</div>
<div class="mb-3">
<label for="status">Seleccionar status</label>
<select class="form-control" name="status" id="status">
<option value="1">Activo</option>
<option value="0">Inactivo</option>
</select>
</div>
<input class="btn btn-primary" type="submit" value="Crear">
</form>
</div>
</div>
</div>
@endsection
+129
View File
@@ -0,0 +1,129 @@
@extends('layouts.landing')
@section('head')
@include('layouts._partials.tablaStyle')
@endsection
@section('title',"Edit")
@section('content')
<div class="container-fluid">
<div class="card shadow mb-4">
<div class="card-header py-3">
<div class="d-sm-flex align-items-center justify-content-between">
<h6 class="m-0 font-weight-bold text-primary">Editar carrera</h6>
<a href="{{route('carrera.index')}}" class="d-sm-inline-block btn btn-sm btn-primary shadow-sm"><i class="fas fa-download fa-sm text-white-50"></i> Regresar</a>
</div>
</div>
<div class="card-body">
@if (session('info'))
<div class="alert alert-success">
<strong>{{session('info')}}</strong>
</div>
@endif
<form action="{{route('carrera.update',$carrera->id)}}" method="POST">
@method('PUT')
@csrf
<div class="mb-3">
<label class="small mb-1">Nombre</label>
<input class="form-control" name="name" value="{{$carrera->name}}">
</div>
<div class="mb-3">
<label for="status">Seleccionar nivel</label>
<select class="form-control" name="status" id="status">
@foreach ($nivels as $nivel)
<option value="{{ $nivel->id }}"{{ $carrera->nivel== $nivel->id ? 'selected' : '' }} >{{ $nivel->name }}</option>
@endforeach
</select>
</div>
<div class="mb-3">
<label for="status">Seleccionar status</label>
<select class="form-control" name="status" id="status" value="{{ $carrera->status }}">
<option value="1" {{ $carrera->status=='1' ? 'selected' : '' }}>Activo</option>
<option value="0" {{ $carrera->status=='0' ? 'selected' : '' }}>Inactivo</option>
</select>
</div>
<input class="btn btn-primary" type="submit" value="Actualizar">
</form>
</div>
</div>
{{-- contenedor de materias --}}
<div class="card shadow mb-4">
<div class="card-header py-3">
<div class="d-sm-flex align-items-center justify-content-between">
<h6 class="m-0 font-weight-bold text-primary">Materiales</h6>
@can('material.create')
<button data-toggle="modal" data-target="#exampleModal"class="d-sm-inline-block btn btn-sm btn-success shadow-sm"><i class="fas fa-download fa-sm text-white-50"></i> Agregar</button>
@endcan
</div>
</div>
<div class="card-body">
@if (session('infoMaterial'))
<div class="alert alert-success">
<strong>{{session('infoMaterial')}}</strong>
</div>
@endif
<div class="container-fluid">
<table id="tcont" class="table table-striped table-bordered nowrap table-hover" style="width:100%;">
<thead>
<tr>
<th>Id</th>
<th>Nombre</th>
<th>Opciones</th>
</tr>
</thead>
<tbody>
@forelse ($carrera->carreraMaterial as $material)
<tr style="width:100%">
<td>{{$material->id}}</td>
<td>{{$material->name}}</td>
<td class="row mx-auto">
@can('material.edit')
<div class="col-sm-6 col-md-6"><a class="btn btn-primary" href="{{route('material.edit',$material->id)}}">Edit</a></div>
@endcan
@can('material.destroy')
<div class="col-sm-6 col-md-6">
<form class="delete-form" action="{{route('material.destroy',$material->id)}}" method="POST">
@csrf
@method('DELETE')
<input class="d-none" name="carrera" value="{{$carrera->id}}">
<input type="submit" value="DELETE" class="btn btn-danger">
</form>
</div>
@endcan
</td>
</tr>
@empty
<p>Sin materiales.</p>
@endforelse
</tbody>
</table>
</div>
<livewire:modal-materias :carrera="$carrera"/>
</div>
</div>
</div>
@endsection
@section('scripts')
@include('layouts._partials.tablaScript')
@include('layouts._partials.delete')
@endsection
+121
View File
@@ -0,0 +1,121 @@
@extends('layouts.landing')
@section('head')
@include('layouts._partials.tablaStyle')
@endsection
@section('title',"Inicio")
@section('content')
<div class="container-fluid">
<div class="card shadow mb-4">
<div class="card-header py-3">
<div class="d-sm-flex align-items-center justify-content-between">
<h6 class="m-0 font-weight-bold text-primary">Prospectos</h6>
@can('prospecto.create')
<button onclick="Livewire.dispatch('create-prospecto')" class="d-sm-inline-block btn btn-sm btn-primary shadow-sm"><i class="fas fa-download fa-sm text-white-50"></i> Agregar</button>
@endcan
</div>
</div>
<div class="card-body row">
<div class="col-sm-2 overflow-auto" style="height: 70vh">
<div class="list-group">
@forelse ($prospectos as $prospecto)
@foreach ($prospecto->prospectos as $prospect)
<a data-prospect-id="{{ $prospect->id }}"
class="list-group-item list-group-item-action"
onclick="Livewire.dispatch('edit-prospecto', { id: {{ $prospect->id }},user: {{ $prospecto->id }}})">
<div class="d-flex w-100 justify-content-between">
<h5 class="mb-1">{{ $prospecto->name }}</h5>
<div class="p-3">
<i class="fa-duotone fa-regular fa-circle-user fa-2xl"></i>
</div>
</div>
<small>And some small print.</small>
</a>
@endforeach
@empty
<a href="#" class="list-group-item list-group-item-action">
<div class="d-flex w-100 justify-content-between">
<h5 class="mb-1">Sin elementos</h5>
<div class="p-3"><i class="fa-duotone fa-solid fa-brake-warning fa-beat-fade fa-2xl" style="--fa-primary-color: #872222; --fa-secondary-color: #f00000;"></i></div>
</div>
<p class="mb-1"></p>
<small>Agrega un prospecto...</small>
</a>
@endforelse
</div>
</div>
<div class="col-sm-10 overflow-auto" style="height: 70vh">
@livewire('data-prospecto')
</div>
@livewire('modal-prospecto')
</div>
</div>
</div>
@endsection
@section('scripts')
@include('layouts._partials.tablaScript')
@include('layouts._partials.delete')
<script>
document.addEventListener('livewire:init', () => {
Livewire.on('swal', data => {
if (!data?.text) {
console.warn('SweetAlert disparado sin datos', data);
return;
}
Swal.fire({
icon: data.icon ?? 'info',
title: data.title ?? 'Aviso',
text: data.text,
timer: data.timer ?? null,
showConfirmButton: data.confirm ?? true,
});
if (data.reload) {
setTimeout(() => location.reload(), data.reload);
}
if (data.closeModal) {
$('#exampleModal').modal('hide');
}
});
Livewire.on('open-prospecto-modal', () => {
$('#exampleModal').modal('show');
});
Livewire.on('mark-active-prospect', ({ id }) => {
document.querySelectorAll('.list-group-item')
.forEach(item => item.classList.remove('active'));
const activeItem = document.querySelector(
`[data-prospect-id="${id}"]`
);
if (activeItem) {
activeItem.classList.add('active');
}
});
});
</script>
@endsection
+23
View File
@@ -0,0 +1,23 @@
@extends('layouts.landing')
@section('title',"show")
@section('content')
<div class="container-fluid">
<div class="card shadow mb-4">
<div class="card-header py-3">
<div class="d-sm-flex align-items-center justify-content-between">
<h6 class="m-0 font-weight-bold text-primary">Datos prospecto</h6>
<a href="{{route('prospecto.index')}}" class="d-sm-inline-block btn btn-sm btn-primary shadow-sm"><i class="fas fa-download fa-sm text-white-50"></i> Regresar</a>
</div>
</div>
<div class="card-body">
<h1>{{$prospecto->name}}</h1>
</div>
</div>
</div>
@endsection