Merge branch 'develop' into trunk

This commit is contained in:
Vincent BRIDIER 2021-08-10 09:10:13 +02:00
commit 8d655e6eb2
14 changed files with 416 additions and 50 deletions

View file

@ -0,0 +1,97 @@
<?php
namespace App\Http\Controllers;
use App\Http\Requests\GitReposStoreRequest;
use App\Http\Requests\GitReposUpdateRequest;
use App\Models\GitRepos;
class GitReposController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$repos = GitRepos::all();
return view('git-repos.index', compact('repos'));
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
return view('git-repos.create');
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\GitReposStoreRequest $request
* @return \Illuminate\Http\Response
*/
public function store(GitReposStoreRequest $request)
{
$datas = $request->validated();
$git_repo = new GitRepos();
$git_repo->fill($datas);
$git_repo->save();
return redirect()->route('git-repos.edit', ['git_repo' => $git_repo])->with('status', __('Dépôt Git créé.'));
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
abort('404');
}
/**
* Show the form for editing the specified resource.
*
* @param GitRepos $git_repo
* @return \Illuminate\Http\Response
*/
public function edit(GitRepos $git_repo)
{
return view('git-repos.edit', compact('git_repo'));
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\GitReposUpdateRequest $request
* @param GitRepos $git_repo
* @return \Illuminate\Http\Response
*/
public function update(GitReposUpdateRequest $request, GitRepos $git_repo)
{
$datas = $request->validated();
$git_repo->fill($datas);
$git_repo->save();
return redirect()->route('git-repos.edit', ['git_repo' => $git_repo])->with('status', __('Dépôt Git mis à jour.'));
}
/**
* Remove the specified resource from storage.
*
* @param GitRepos $git_repo
* @return \Illuminate\Http\Response
*/
public function destroy(GitRepos $git_repo)
{
$git_repo->delete();
return redirect()->route('git-repos.index')->with('status', __('Dépôt Git supprimé.'));
}
}

View file

@ -121,9 +121,6 @@ class ProjectsController extends Controller
$php = $request->php;
$type = $request->type;
$https = $request->https;
$git_repo = $request->git_repo;
$git_user = $request->git_user;
$git_pwd = $request->git_pwd;
$prod_url = $request->prod_url;
$dev_url = $request->dev_url;
$prod_certificats = $request->prod_certificats;
@ -168,9 +165,6 @@ class ProjectsController extends Controller
$project->php = $php;
$project->type = $type;
$project->https = $https;
$project->git_repo = $git_repo;
$project->git_user = $git_user;
$project->git_pwd = $git_pwd;
$project->prod_url = $prod_url;
$project->dev_url = $dev_url;
$project->prod_certificats = $prod_certificats;

View file

@ -0,0 +1,46 @@
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\Auth;
use Illuminate\Validation\Rule;
class GitReposStoreRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return Auth::check();
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'name' => [
'string',
'required',
Rule::unique('git_repos', 'name'),
],
'login' => [
Rule::requiredIf(function () {
return !is_null($this->password);
})
],
'password' => [
Rule::requiredIf(function () {
return !is_null($this->login);
})
],
];
}
}

View file

@ -0,0 +1,46 @@
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\Auth;
use Illuminate\Validation\Rule;
class GitReposUpdateRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return Auth::check();
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'name' => [
'string',
'required',
Rule::unique('git_repos', 'name')->ignore($this->git_repo->id),
],
'login' => [
Rule::requiredIf(function () {
return !is_null($this->password);
})
],
'password' => [
Rule::requiredIf(function () {
return !is_null($this->login);
})
],
];
}
}

10
app/Models/GitRepos.php Normal file
View file

@ -0,0 +1,10 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class GitRepos extends Model
{
protected $fillable = ['name', 'login', 'password'];
}

View file

@ -0,0 +1,34 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateGitReposTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('git_repos', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name')->unique();
$table->string('login')->nullable();
$table->string('password')->nullable();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('git_repos');
}
}

View file

@ -0,0 +1,66 @@
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row justify-content-center">
<div class="col-md-12">
<div class="card">
<div class="card-header">{{ __("Ajout d'un dépôt Git") }}</div>
<div class="card-body">
@if (session('status'))
<div class="alert alert-success" role="alert">
{{ session('status') }}
</div>
@endif
@if (session('error'))
<div class="alert alert-danger" role="alert">
{{ session('error') }}
</div>
@endif
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<form action="{{route('git-repos.store')}}" method="POST">
@csrf
<div class="row">
<div class="col-md-4">
<div class="form-group">
<label><b>{{ __('Nom') }} :</b></label>
<input type="text" class="form-control" name="name"
placeholder="{{ __('Nom') }}" value="{{ old('name') }}" required>
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label><b>{{ __('Identifiant') }} :</b></label>
<input type="text" class="form-control" name="login"
placeholder="{{ __('Identifiant') }}" value="{{ old('login') }}">
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label><b>{{ __('Mot de passe') }} :</b></label>
<input type="text" class="form-control" name="password"
placeholder="{{ __('Mot de passe') }}" value="{{ old('password') }}">
</div>
</div>
</div>
<div class="row">
<div class="col-md-12 text-center">
<input type="submit" value="Enregistrer" class="btn btn-primary">
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
@endsection

View file

@ -0,0 +1,73 @@
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row justify-content-center">
<div class="col-md-12">
<div class="card">
<div class="card-header">{{ __('Détails du dépôt Git') }}
<form action="{{route('git-repos.destroy', ['git_repo' => $git_repo->id])}}" method="POST" class="float-right">
@csrf
@method('DELETE')
<button type="submit" class="btn btn-sm btn-danger" onclick="return confirm('{{ __('Êtes-vous sûr ?') }}');">{{ __('Supprimer') }}</button>
</form>
</div>
<div class="card-body">
@if (session('status'))
<div class="alert alert-success" role="alert">
{{ session('status') }}
</div>
@endif
@if (session('error'))
<div class="alert alert-danger" role="alert">
{{ session('error') }}
</div>
@endif
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<form action="{{route('git-repos.update', ['git_repo' => $git_repo->id])}}" method="POST">
@csrf
@method('PUT')
<div class="row">
<div class="col-md-4">
<div class="form-group">
<label><b>{{ __('Nom') }} :</b></label>
<input type="text" class="form-control" name="name"
placeholder="{{ __('Nom') }}" value="{{$git_repo->name}}" required>
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label><b>{{ __('Identifiant') }} :</b></label>
<input type="text" class="form-control" name="login"
placeholder="{{ __('Identifiant') }}" value="{{$git_repo->login}}">
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label><b>{{ __('Mot de passe') }} :</b></label>
<input type="text" class="form-control" name="password"
placeholder="{{ __('Mot de passe') }}" value="{{$git_repo->password}}">
</div>
</div>
</div>
<div class="row">
<div class="col-md-12 text-center">
<input type="submit" value="{{ __('Enregistrer') }}" class="btn btn-primary">
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
@endsection

View file

@ -0,0 +1,37 @@
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row justify-content-center">
<div class="col-md-12">
<div class="card">
<div class="card-header">{{ __('Gestion des dépôts Git') }} <a href="{{route('git-repos.create')}}" class="btn btn-sm btn-primary float-right">{{ __('Ajouter') }}</a></div>
<div class="card-body">
@if (session('status'))
<div class="alert alert-success" role="alert">
{{ session('status') }}
</div>
@endif
<table class="table text-center">
<thead class="thead-dark">
<tr>
<th scope="col">{{ __('Nom') }}</th>
<th scope="col"></th>
</tr>
</thead>
<tbody>
@foreach($repos as $repo)
<tr>
<td>{{$repo->name}}</td>
<td><a href="{{route('git-repos.edit', ['git_repo' => $repo->id])}}" class="btn btn-sm btn-primary">{{ __('Détails') }}</a></td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
@endsection

View file

@ -47,6 +47,10 @@
<i class="fas fa-network-wired"></i><br>
Réseau LDC
</a>
<a href="{{route('git-repos.index')}}" class="btn btn-lg btn-primary">
<i class="fas fa-code-branch"></i><br>
Dépôts Git
</a>
</div>
</div>
</div>

View file

@ -55,6 +55,7 @@
<a class="dropdown-item" href="/domain-names" class="nav-link">Noms de domaine</a>
<a class="dropdown-item" href="{{route('email-addresses.index')}}" class="nav-link">Adresses email</a>
<a class="dropdown-item" href="{{route('ldc-networks.index')}}" class="nav-link">Réseau LDC</a>
<a class="dropdown-item" href="{{route('git-repos.index')}}" class="nav-link">Dépôts GIT</a>
</div>
</li>
<li class="nav-item">

View file

@ -31,14 +31,6 @@
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="form-group">
<label><b>Dépôt GIT :</b></label>
<input type="text" name="git_repo" class="form-control" placeholder="Dépôt GIT">
</div>
</div>
</div>
</div>
<div class="col-md-6">
<div class="row">
@ -73,20 +65,6 @@
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label><b>GIT User :</b></label>
<input type="text" name="git_user" class="form-control" placeholder="GIT User">
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label><b>GIT Password :</b></label>
<input type="text" name="git_pwd" class="form-control" placeholder="GIT Password">
</div>
</div>
</div>
</div>
</div>
@if (Auth::user()->role === 1)

View file

@ -36,14 +36,6 @@
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="form-group">
<label><b>Dépôt GIT :</b></label>
<input type="text" name="git_repo" class="form-control" placeholder="Dépôt GIT" value="{{$project->git_repo}}">
</div>
</div>
</div>
</div>
<div class="col-md-6">
<div class="row">
@ -78,20 +70,6 @@
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label><b>GIT User :</b></label>
<input type="text" name="git_user" class="form-control" placeholder="GIT User" value="{{$project->git_user}}">
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label><b>GIT Password :</b></label>
<input type="text" name="git_pwd" class="form-control" placeholder="GIT Password" value="{{$project->git_pwd}}">
</div>
</div>
</div>
</div>
</div>
@if (Auth::user()->role === 1)

View file

@ -71,4 +71,6 @@ Route::group(['middleware' => ['auth']], function () {
Route::post('/ldc-networks/{id}/update', 'LDCNetworkController@update')->name('ldc-networks.update');
Route::get('/ldc-networks/{id}/delete', 'LDCNetworkController@delete')->name('ldc-networks.delete');
Route::post('/ldc-networks/{id}/force-delete', 'LDCNetworkController@forceDelete')->name('ldc-networks.force-delete');
/* GIT REPOS */
Route::resource('git-repos', 'GitReposController');
});