refactor: replace custom CRM with Monica fork
Some checks failed
Build & Push Monica Image to Gitea Registry / build-and-push (push) Failing after 9s

This commit is contained in:
Kroonk
2026-05-22 16:19:55 +02:00
parent 38cc4c09ca
commit a213a1dba0
2215 changed files with 242567 additions and 6015 deletions

View File

@@ -0,0 +1,75 @@
@extends('marketing.skeleton')
@section('content')
<body class="marketing register">
<div class="container">
<div class="row">
<div class="col-12 col-md-6 offset-md-3 offset-md-3-right">
<div class="signup-box">
<div class="dt w-100">
<div class="dtc tc">
<img src="img/monica.svg" width="97" height="88" alt="">
</div>
</div>
<h2>{{ trans('settings.users_accept_title') }}</h2>
@include ('partials.errors')
<form action="{{ route('invitations.send', $key) }}" method="post">
@csrf
<div class="form-group">
<label for="email">{{ trans('auth.register_email') }}</label>
<input type="email" class="form-control" id="email" name="email" placeholder="{{ trans('auth.register_email_example') }}" value="{{ $email ?? old('email') }}" required autocomplete="email" autofocus>
</div>
<div class="row">
<div class="col-12 col-sm-6">
<div class="form-group">
<label for="first_name">{{ trans('auth.register_firstname') }}</label>
<input type="text" class="form-control" id="first_name" name="first_name" placeholder="{{ trans('auth.register_firstname_example') }}" value="{{ old('first_name') }}" required autocomplete="given-name">
</div>
</div>
<div class="col-12 col-sm-6">
<div class="form-group">
<label for="last_name">{{ trans('auth.register_lastname') }}</label>
<input type="text" class="form-control" id="last_name" name="last_name" placeholder="{{ trans('auth.register_lastname_example') }}" value="{{ old('last_name') }}" required autocomplete="family-name">
</div>
</div>
</div>
<div class="form-group">
<label for="password">{{ trans('auth.register_password') }}</label>
<input type="password" class="form-control" id="password" name="password" placeholder="{{ trans('auth.register_password_example') }}" required autocomplete="password">
</div>
<div class="form-group">
<label for="password_confirmation">{{ trans('auth.register_password_confirmation') }}</label>
<input type="password" class="form-control" id="password_confirmation" name="password_confirmation" required autocomplete="password">
</div>
<div class="form-group">
<label for="email_security">{{ trans('auth.register_invitation_email') }}</label>
<input type="email" class="form-control" id="email_security" name="email_security" required>
</div>
<!-- Policy acceptance check -->
<div class="form-check">
<label class="form-check-label">
<input class="form-check-input" id="policy" name="policy" type="checkbox" value="policy" required>
{!! trans('auth.register_policy', ['url' => 'https://monicahq.com/privacy', 'urlterm' => 'https://monicahq.com/terms', 'hreflang' => 'en', ]) !!}
</label>
</div>
<div class="form-group actions">
<button type="submit" class="btn btn-primary">{{ trans('auth.register_action') }}</button>
</div>
</form>
</div>
</div>
</div>
</div>
</body>
@endsection

View File

@@ -0,0 +1,80 @@
@extends('layouts.skeleton')
@section('content')
<div class="settings">
{{-- Breadcrumb --}}
<div class="breadcrumb">
<div class="{{ Auth::user()->getFluidLayout() }}">
<div class="row">
<div class="col-12">
<ul class="horizontal">
<li>
<a href="{{ route('dashboard.index') }}">{{ trans('app.breadcrumb_dashboard') }}</a>
</li>
<li>
<a href="{{ route('settings.index') }}">{{ trans('app.breadcrumb_settings') }}</a>
</li>
<li>
<a href="{{ route('settings.users.index') }}">{{ trans('app.breadcrumb_settings_users') }}</a>
</li>
<li>
{{ trans('app.breadcrumb_settings_users_add') }}
</li>
</ul>
</div>
</div>
</div>
</div>
<!-- Page content -->
<div class="main-content central-form">
<div class="{{ Auth::user()->getFluidLayout() }}">
<div class="row">
<div class="col-12 col-sm-6 offset-sm-3 offset-sm-3-right">
<div class="br3 ba b--gray-monica bg-white mb4">
<div class="pa3 bb b--gray-monica">
<form method="POST" action="{{ route('settings.users.store') }}">
@csrf
<h2>{{ trans('settings.users_add_title') }}</h2>
<p>{{ trans('settings.users_add_description') }}</p>
@include('partials.errors')
{{-- Email --}}
<fieldset class="form-group">
<div class="form-group">
<label for="email">{{ trans('settings.users_add_email_field') }}</label>
<input type="email" class="form-control" name="email" value="{{ old('email') }}" required autofocus>
</div>
</fieldset>
{{-- Explicit confirmation --}}
<div class="warning-zone">
<form-checkbox
:name="'confirmation'"
:value="'1'"
v-model="accept_invite_user"
:iclass="'form-check-input'"
:dclass="'form-check-label'"
>
{{ trans('settings.users_add_confirmation') }}
</form-checkbox>
</div>
<div class="form-group actions">
<button type="submit" class="btn btn-primary" :disabled="!accept_invite_user">{{ trans('settings.users_add_cta') }}</button>
<a href="{{ route('settings.users.index') }}" class="btn btn-secondary">{{ trans('app.cancel') }}</a>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
@endsection

View File

@@ -0,0 +1,58 @@
@extends('layouts.skeleton')
@section('content')
<div class="settings">
{{-- Breadcrumb --}}
<div class="breadcrumb">
<div class="{{ Auth::user()->getFluidLayout() }}">
<div class="row">
<div class="col-12">
<ul class="horizontal">
<li>
<a href="{{ route('dashboard.index') }}">{{ trans('app.breadcrumb_dashboard') }}</a>
</li>
<li>
<a href="{{ route('settings.index') }}">{{ trans('app.breadcrumb_settings') }}</a>
</li>
<li>
{{ trans('app.breadcrumb_settings_users') }}
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="{{ Auth::user()->getFluidLayout() }}">
<div class="row">
@include('settings._sidebar')
<div class="col-12 col-sm-9 blank-screen">
<div class="br3 ba b--gray-monica bg-white mb4">
<div class="pa3 bb b--gray-monica">
<img src="img/settings/users/blank.svg">
<h2>{{ trans('settings.users_blank_title') }}</h2>
<h3>{{ trans('settings.users_blank_add_title') }}</h3>
<p>{{ trans('settings.users_blank_description') }}</p>
<p class="cta"><a href="{{ route('settings.users.create') }}" class="btn">{{ trans('settings.users_blank_cta') }}</a></p>
@if (config('monica.requires_subscription') && $accountHasLimitations)
<p class="requires-subscription">{{ trans('settings.users_invitation_need_subscription') }}</p>
@endif
</div>
</div>
</div>
</div>
</div>
</div>
@endsection

View File

@@ -0,0 +1,101 @@
@extends('layouts.skeleton')
@section('content')
<div class="settings">
{{-- Breadcrumb --}}
<div class="breadcrumb">
<div class="{{ Auth::user()->getFluidLayout() }}">
<div class="row">
<div class="col-12">
<ul class="horizontal">
<li>
<a href="{{ route('dashboard.index') }}">{{ trans('app.breadcrumb_dashboard') }}</a>
</li>
<li>
<a href="{{ route('settings.index') }}">{{ trans('app.breadcrumb_settings') }}</a>
</li>
<li>
{{ trans('app.breadcrumb_settings_users') }}
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="{{ Auth::user()->getFluidLayout() }}">
<div class="row">
@include('settings._sidebar')
<div class="col-12 col-sm-9 users-list">
<div class="br3 ba b--gray-monica bg-white mb4">
<div class="pa3 bb b--gray-monica">
<h3 class="with-actions">
{{ trans('settings.users_list_title') }}
<a href="{{ route('settings.users.create') }}" class="btn">{{ trans('settings.users_list_add_user') }}</a>
</h3>
<ul class="table">
@foreach ($users as $user)
<li class="table-row">
<div class="table-cell">
{{ $user->name }} ({{ $user->email }})
</div>
<div class="table-cell actions">
@if ($user->id == auth()->user()->id)
{{ trans('settings.users_list_you') }}
@else
<form method="POST" action="{{ route('settings.users.destroy', $user) }}">
@method('DELETE')
@csrf
<confirm message="{{ trans('settings.users_list_delete_confirmation') }}">
<i class="fa fa-trash-o" aria-hidden="true"></i>
</confirm>
</form>
@endif
</div>
</li>
@endforeach
</ul>
@if (auth()->user()->account->invitations()->count() != 0)
<h3>{{ trans('settings.users_list_invitations_title') }}</h3>
<p>{{ trans('settings.users_list_invitations_explanation') }}</p>
<ul class="table">
@foreach (auth()->user()->account->invitations as $invitation)
<li class="table-row">
<div class="table-cell">
{{ $invitation->email }}
</div>
<div class="table-cell">
{{ trans('settings.users_list_invitations_invited_by', ['name' => $invitation->invitedBy->name]) }}
</div>
<div class="table-cell">
{{ trans('settings.users_list_invitations_sent_date', ['date' => \App\Helpers\DateHelper::getShortDate($invitation->created_at)]) }}
</div>
<div class="table-cell actions">
<form method="POST" action="{{ route('settings.users.invitation.delete', $invitation) }}">
@method('DELETE')
@csrf
<confirm message="{{ trans('settings.users_invitations_delete_confirmation') }}">
<i class="fa fa-trash-o" aria-hidden="true"></i>
</confirm>
</form>
</div>
</li>
@endforeach
</ul>
@endif
</div>
</div>
</div>
</div>
</div>
</div>
@endsection