Primer commit proyecto Laravel
This commit is contained in:
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user