refactor: replace custom CRM with Monica fork
Some checks failed
Build & Push Monica Image to Gitea Registry / build-and-push (push) Failing after 9s
Some checks failed
Build & Push Monica Image to Gitea Registry / build-and-push (push) Failing after 9s
This commit is contained in:
81
resources/views/settings/_sidebar.blade.php
Normal file
81
resources/views/settings/_sidebar.blade.php
Normal file
@@ -0,0 +1,81 @@
|
||||
<div class="col-12 col-sm-3 sidebar-menu">
|
||||
<ul class="mb4">
|
||||
|
||||
@component('components.sidebar', [
|
||||
'route' => 'settings.index',
|
||||
'icon' => 'fa fa-cog',
|
||||
'title' => 'settings.sidebar_settings'])
|
||||
@endcomponent
|
||||
|
||||
@component('components.sidebar', [
|
||||
'route' => 'settings.personalization.index',
|
||||
'icon' => 'fa fa-handshake-o',
|
||||
'title' => 'settings.sidebar_personalization'])
|
||||
@endcomponent
|
||||
|
||||
@component('components.sidebar', [
|
||||
'route' => 'settings.storage.index',
|
||||
'icon' => 'fa fa-cube',
|
||||
'title' => 'settings.sidebar_settings_storage'])
|
||||
@endcomponent
|
||||
|
||||
@component('components.sidebar', [
|
||||
'route' => 'settings.export.index',
|
||||
'icon' => 'fa fa-cloud-download',
|
||||
'title' => 'settings.sidebar_settings_export'])
|
||||
@endcomponent
|
||||
|
||||
@component('components.sidebar', [
|
||||
'route' => 'settings.import',
|
||||
'icon' => 'fa fa-cloud-upload',
|
||||
'title' => 'settings.sidebar_settings_import'])
|
||||
@endcomponent
|
||||
|
||||
@component('components.sidebar', [
|
||||
'route' => 'settings.users.index',
|
||||
'icon' => 'fa fa-user-circle-o',
|
||||
'title' => 'settings.sidebar_settings_users'])
|
||||
@endcomponent
|
||||
|
||||
@if (config('monica.requires_subscription') && ! auth()->user()->account->has_access_to_paid_version_for_free)
|
||||
@component('components.sidebar', [
|
||||
'route' => 'settings.subscriptions.index',
|
||||
'icon' => 'fa fa-money',
|
||||
'title' => 'settings.sidebar_settings_subscriptions'])
|
||||
@endcomponent
|
||||
@endif
|
||||
|
||||
@component('components.sidebar', [
|
||||
'route' => 'settings.tags.index',
|
||||
'icon' => 'fa fa-tags',
|
||||
'title' => 'settings.sidebar_settings_tags'])
|
||||
@endcomponent
|
||||
|
||||
@component('components.sidebar', [
|
||||
'route' => 'settings.api',
|
||||
'icon' => 'fa fa-random',
|
||||
'title' => 'settings.sidebar_settings_api'])
|
||||
@endcomponent
|
||||
|
||||
@if (config('laravelsabre.enabled') && ! $accountHasLimitations)
|
||||
@component('components.sidebar', [
|
||||
'route' => 'settings.dav',
|
||||
'icon' => 'fa fa-calendar',
|
||||
'title' => 'settings.sidebar_settings_dav'])
|
||||
@endcomponent
|
||||
@endif
|
||||
|
||||
@component('components.sidebar', [
|
||||
'route' => 'settings.auditlog.index',
|
||||
'icon' => 'fa fa-id-card-o',
|
||||
'title' => 'settings.sidebar_settings_auditlogs'])
|
||||
@endcomponent
|
||||
|
||||
@component('components.sidebar', [
|
||||
'route' => 'settings.security.index',
|
||||
'icon' => 'fa fa-shield',
|
||||
'title' => 'settings.sidebar_settings_security'])
|
||||
@endcomponent
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
63
resources/views/settings/api/index.blade.php
Normal file
63
resources/views/settings/api/index.blade.php
Normal file
@@ -0,0 +1,63 @@
|
||||
@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_api') }}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="{{ Auth::user()->getFluidLayout() }}">
|
||||
<div class="row">
|
||||
|
||||
@include('settings._sidebar')
|
||||
|
||||
<div class="col-12 col-sm-9">
|
||||
|
||||
<div class="mb3">
|
||||
<h2 class="f3 fw5">{{ trans('settings.api_title') }}</h2 >
|
||||
<p>{{ trans('settings.api_description') }}</p>
|
||||
<p>{!! trans('settings.api_help', ['url' => config('api.help')]) !!}</p>
|
||||
<p>
|
||||
{{ trans('settings.api_endpoint') }}
|
||||
<input value="{{ route('api') }}" class="url form-control" type="text" readonly />
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="br3 ba b--gray-monica bg-white mb4">
|
||||
<div class="pa3 bb b--gray-monica">
|
||||
<passport-personal-access-tokens></passport-personal-access-tokens>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="br3 ba b--gray-monica bg-white mb4">
|
||||
<div class="pa3 bb b--gray-monica">
|
||||
<passport-clients></passport-clients>
|
||||
<passport-authorized-clients class="mt4"></passport-authorized-clients>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
88
resources/views/settings/auditlog/index.blade.php
Normal file
88
resources/views/settings/auditlog/index.blade.php
Normal file
@@ -0,0 +1,88 @@
|
||||
@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>
|
||||
{{ trans('settings.logs_title') }}
|
||||
</h3>
|
||||
<ul class="table">
|
||||
<li class="table-row">
|
||||
<div class="table-cell table-header">
|
||||
{{ trans('settings.logs_actor') }}
|
||||
</div>
|
||||
<div class="table-cell table-header date">
|
||||
{{ trans('settings.logs_timestamp') }}
|
||||
</div>
|
||||
<div class="table-cell table-header">
|
||||
{{ trans('settings.logs_description') }}
|
||||
</div>
|
||||
<div class="table-cell table-header">
|
||||
{{ trans('settings.logs_subject') }}
|
||||
</div>
|
||||
</li>
|
||||
@foreach ($logsCollection as $log)
|
||||
<li class="table-row">
|
||||
<div class="table-cell audit-log-cell">
|
||||
{{ $log['author_name'] }}
|
||||
</div>
|
||||
<div class="table-cell audit-log-cell date">
|
||||
{{ \App\Helpers\DateHelper::getShortDateWithTime($log['audited_at']) }}
|
||||
</div>
|
||||
<div class="table-cell audit-log-cell">
|
||||
{{ $log['description'] }}
|
||||
</div>
|
||||
<div class="table-cell audit-log-cell">
|
||||
@if($log['link'])
|
||||
<a href="{{ $log['link'] }}">{{ $log['object'] }}</a>
|
||||
@else
|
||||
{{ $log['object'] }}
|
||||
@endif
|
||||
</div>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
|
||||
<div class="tc center">
|
||||
{{ $logsPagination->links() }}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
51
resources/views/settings/dav/index.blade.php
Normal file
51
resources/views/settings/dav/index.blade.php
Normal file
@@ -0,0 +1,51 @@
|
||||
@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_dav') }}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="{{ auth()->user()->getFluidLayout() }}">
|
||||
<div class="row">
|
||||
|
||||
@include('settings._sidebar')
|
||||
|
||||
<div class="col-12 col-md-9">
|
||||
<div class="br3 ba b--gray-monica bg-white mb4">
|
||||
<div class="pa3 bb b--gray-monica">
|
||||
|
||||
<dav-resources
|
||||
:dav-route="'{{ $davRoute }}'"
|
||||
:card-dav-route="'{{ $cardDavRoute }}'"
|
||||
:cal-dav-birthdays-route="'{{ $calDavBirthdaysRoute }}'"
|
||||
:cal-dav-tasks-route="'{{ $calDavTasksRoute }}'"
|
||||
></dav-resources>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
123
resources/views/settings/export.blade.php
Normal file
123
resources/views/settings/export.blade.php
Normal file
@@ -0,0 +1,123 @@
|
||||
@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_export') }}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="{{ Auth::user()->getFluidLayout() }}">
|
||||
<div class="row">
|
||||
|
||||
@include('settings._sidebar')
|
||||
|
||||
<div class="col-12 col-sm-9">
|
||||
|
||||
<div class="br3 ba b--gray-monica bg-white mb4">
|
||||
<div class="pa3 bb b--gray-monica">
|
||||
|
||||
@include ('partials.errors')
|
||||
|
||||
@if (session('status'))
|
||||
<div class="alert alert-success">
|
||||
{{ session('status') }}
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<h3>{{ trans('settings.export_title') }}</h3>
|
||||
<h4>{{ trans('settings.export_title_sql') }}</h4>
|
||||
<p>{{ trans('settings.export_sql_explanation') }}</p>
|
||||
<p>{{ trans('settings.export_be_patient') }}</p>
|
||||
<form action="{{ route('settings.export.store.sql') }}" method="POST">
|
||||
@csrf
|
||||
<p>
|
||||
<button type="submit" class="btn">{{ trans('settings.export_sql_cta') }}</button>
|
||||
</p>
|
||||
</form>
|
||||
<p>{!! trans('settings.export_sql_link_instructions', ['url' => 'https://github.com/monicahq/monica/blob/main/docs/installation/update.md#importing-sql-from-the-exporter-feature']) !!}</p>
|
||||
|
||||
<h4>{{ trans('settings.export_title_json') }}</h4>
|
||||
<p>{{ trans('settings.export_json_explanation') }}</p>
|
||||
<div class="alert alert-success">
|
||||
{{ trans('settings.export_json_beta') }}
|
||||
<a href="https://github.com/monicahq/monica/discussions/5824" target="_blank" rel="noopener noreferrer">https://github.com/monicahq/monica/discussions/5824</a>
|
||||
</div>
|
||||
<form method="POST" action="{{ route('settings.export.store.json') }}">
|
||||
@csrf
|
||||
<p><button type="submit" class="btn">{{ trans('settings.export_json_cta') }}</button></p>
|
||||
</form>
|
||||
|
||||
<h4>{{ trans('settings.export_last_title') }}</h4>
|
||||
@if ($exports->count() === 0)
|
||||
<em>{{ trans('settings.export_empty_title') }}</em>
|
||||
@else
|
||||
<ul class="table">
|
||||
<li class="table-row">
|
||||
<div class="table-cell table-header">
|
||||
{{ trans('settings.export_header_type') }}
|
||||
</div>
|
||||
<div class="table-cell table-header date">
|
||||
{{ trans('settings.export_header_timestamp') }}
|
||||
</div>
|
||||
<div class="table-cell table-header">
|
||||
{{ trans('settings.export_header_status') }}
|
||||
</div>
|
||||
<div class="table-cell table-header">
|
||||
{{ trans('settings.export_header_actions') }}
|
||||
</div>
|
||||
</li>
|
||||
@foreach ($exports as $export)
|
||||
<li class="table-row">
|
||||
<div class="table-cell">
|
||||
{{ trans("settings.export_type_{$export['type']}") }}
|
||||
</div>
|
||||
<div class="table-cell date">
|
||||
{{ \App\Helpers\DateHelper::getShortDateWithTime($export['created_at']) }}
|
||||
</div>
|
||||
<div class="table-cell">
|
||||
{{ trans("settings.export_status_{$export['status']}") }}
|
||||
</div>
|
||||
<div class="table-cell actions">
|
||||
@if ($export['status'] === \App\Models\Account\ExportJob::EXPORT_DONE)
|
||||
<form method="POST" action="{{ route('settings.export.download', ['uuid' => $export['uuid']]) }}">
|
||||
@csrf
|
||||
<a href="#" onclick="this.parentNode.submit(); return false">
|
||||
{{ trans('app.download') }}
|
||||
</a>
|
||||
</form>
|
||||
|
||||
@endif
|
||||
</div>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
@endif
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
59
resources/views/settings/imports/blank.blade.php
Normal file
59
resources/views/settings/imports/blank.blade.php
Normal file
@@ -0,0 +1,59 @@
|
||||
@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_import') }}
|
||||
</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/imports/import.svg">
|
||||
|
||||
<h2>{{ trans('settings.import_blank_title') }}</h2>
|
||||
|
||||
<h3>{{ trans('settings.import_blank_question') }}</h3>
|
||||
|
||||
<p>{{ trans('settings.import_blank_description') }}</p>
|
||||
|
||||
<p class="cta"><a href="{{ route('settings.upload') }}" class="btn">{{ trans('settings.import_blank_cta') }}</a></p>
|
||||
|
||||
@if (config('monica.requires_subscription') && $accountHasLimitations)
|
||||
<p class="requires-subscription">{{ trans('settings.import_need_subscription') }}</p>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
83
resources/views/settings/imports/index.blade.php
Normal file
83
resources/views/settings/imports/index.blade.php
Normal file
@@ -0,0 +1,83 @@
|
||||
@extends('layouts.skeleton')
|
||||
|
||||
@section('content')
|
||||
|
||||
<div class="settings import">
|
||||
|
||||
{{-- 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_import') }}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="{{ Auth::user()->getFluidLayout() }}">
|
||||
<div class="row">
|
||||
|
||||
@include('settings._sidebar')
|
||||
|
||||
<div class="col-12 col-sm-9">
|
||||
|
||||
<h3 class="with-actions">
|
||||
{{ trans('settings.import_title') }}
|
||||
<a href="{{ route('settings.upload') }}" class="btn">{{ trans('settings.import_cta') }}</a>
|
||||
</h3>
|
||||
|
||||
<p>{{ trans('settings.import_stat', ['number' => auth()->user()->account->importjobs->count()]) }}</p>
|
||||
|
||||
<ul class="table">
|
||||
@foreach (auth()->user()->account->importjobs as $importJob)
|
||||
<li class="table-row">
|
||||
<div class="table-cell">
|
||||
@if (! is_null($importJob->ended_at))
|
||||
@if ($importJob->failed)
|
||||
<i class="fa fa-exclamation-triangle danger"></i>
|
||||
@elseif ($importJob->contacts_found != $importJob->contacts_imported)
|
||||
<i class="fa fa-check-circle warning"></i>
|
||||
@else
|
||||
<i class="fa fa-check-circle success"></i>
|
||||
@endif
|
||||
@else
|
||||
<i class="fa fa-refresh"></i>
|
||||
@endif
|
||||
<span class="date">{{ \App\Helpers\DateHelper::getShortDateWithTime($importJob->created_at) }}</span>
|
||||
</div>
|
||||
<div class="table-cell">
|
||||
@if (is_null($importJob->ended_at))
|
||||
{{ trans('settings.import_in_progress') }}
|
||||
@endif
|
||||
@if($importJob->failed_reason)
|
||||
{{ $importJob->failed_reason }}
|
||||
@elseif (! is_null($importJob->ended_at))
|
||||
{{ trans_choice('settings.import_result_stat', $importJob->contacts_found, ['total_contacts' => $importJob->contacts_found, 'total_imported' => $importJob->contacts_imported, 'total_skipped' => $importJob->contacts_skipped]) }}
|
||||
@endif
|
||||
</div>
|
||||
<div class="table-cell">
|
||||
@if (! is_null($importJob->ended_at))
|
||||
<a href="{{ route('settings.report', $importJob) }}">{{ trans('settings.import_view_report') }}</a>
|
||||
@endif
|
||||
</div>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
80
resources/views/settings/imports/report.blade.php
Normal file
80
resources/views/settings/imports/report.blade.php
Normal 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.import') }}">{{ trans('app.breadcrumb_settings_import') }}</a>
|
||||
</li>
|
||||
<li>
|
||||
{{ trans('app.breadcrumb_settings_import_report') }}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Page content -->
|
||||
<div class="main-content central-form report">
|
||||
<div class="{{ Auth::user()->getFluidLayout() }}">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
|
||||
<h2>{{ trans('settings.import_report_title') }}</h2>
|
||||
|
||||
<ul class="report-summary">
|
||||
<li>{{ trans('settings.import_report_date') }}: <span>{{ \App\Helpers\DateHelper::getShortDate($importJob->created_at) }}</span></li>
|
||||
<li>{{ trans('settings.import_report_type') }}: <span>{{ $importJob->type }}</span></li>
|
||||
<li>{{ trans('settings.import_report_number_contacts') }}: <span>{{ $importJob->contacts_found }}</span></li>
|
||||
<li>{{ trans('settings.import_report_number_contacts_imported') }}: <span>{{ $importJob->contacts_imported }}</span></li>
|
||||
<li>{{ trans('settings.import_report_number_contacts_skipped') }}: <span>{{ $importJob->contacts_skipped }}</span></li>
|
||||
</ul>
|
||||
|
||||
<ul class="table">
|
||||
|
||||
@foreach ($importJob->importJobReports as $importJobReport)
|
||||
<li class="table-row">
|
||||
<div class="table-cell status">
|
||||
@if ($importJobReport->skipped == 0)
|
||||
<span class="badge badge-success">{{ trans('settings.import_report_status_imported') }}</span>
|
||||
@else
|
||||
<span class="badge badge-danger">{{ trans('settings.import_report_status_skipped') }}</span>
|
||||
@endif
|
||||
</div>
|
||||
<div class="table-cell">
|
||||
{{ $importJobReport->contact_information }}
|
||||
</div>
|
||||
<div class="table-cell reason">
|
||||
@if (! is_null($importJobReport->skip_reason))
|
||||
{{--
|
||||
settings.import_vcard_contact_exist
|
||||
settings.import_vcard_contact_no_firstname
|
||||
--}}
|
||||
{{ trans('settings.'.$importJobReport->skip_reason) }}
|
||||
@endif
|
||||
</div>
|
||||
</li>
|
||||
@endforeach
|
||||
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@endsection
|
||||
89
resources/views/settings/imports/upload.blade.php
Normal file
89
resources/views/settings/imports/upload.blade.php
Normal file
@@ -0,0 +1,89 @@
|
||||
@extends('layouts.skeleton')
|
||||
|
||||
@section('content')
|
||||
|
||||
<div class="settings upload">
|
||||
|
||||
{{-- 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.import') }}">{{ trans('app.breadcrumb_settings_import') }}</a>
|
||||
</li>
|
||||
<li>
|
||||
{{ trans('app.breadcrumb_settings_import_upload') }}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<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">
|
||||
<h2>{{ trans('settings.import_upload_title') }}</h2>
|
||||
|
||||
<div class="warning-zone">
|
||||
<p>{{ trans('settings.import_upload_rules_desc') }}</p>
|
||||
<ul>
|
||||
<li>{!! trans('settings.import_upload_rule_format') !!}</li>
|
||||
<li>{{ trans('settings.import_upload_rule_vcard') }}</li>
|
||||
<li>{!! trans('settings.import_upload_rule_instructions', [
|
||||
'url1' => 'http://osxdaily.com/2015/07/14/export-contacts-mac-os-x/',
|
||||
'url2' => 'http://www.akruto.com/backup-phone-contacts-calendar/how-to-export-google-contacts-to-csv-or-vcard/'
|
||||
]) !!}</li>
|
||||
<li>{{ trans('settings.import_upload_rule_multiple') }}</li>
|
||||
<li>{{ trans('settings.import_upload_rule_limit') }}</li>
|
||||
<li>{{ trans('settings.import_upload_rule_time') }}</li>
|
||||
<li>{{ trans('settings.import_upload_rule_cant_revert') }}</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@include('partials.errors')
|
||||
|
||||
<form action="{{ route('settings.storeImport') }}" method="POST" enctype="multipart/form-data">
|
||||
@csrf
|
||||
|
||||
<div class="form-group">
|
||||
<label for="vcard">{!! trans('settings.import_upload_form_file') !!}</label>
|
||||
<input type="file" class="form-control-file" name="vcard" id="vcard">
|
||||
<small id="fileHelp" class="form-text text-muted">{{ trans('people.information_edit_max_size', ['size' => config('monica.max_upload_size')]) }}</small>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="behaviour">{{ trans('settings.import_upload_behaviour') }}</label>
|
||||
<select class="form-control" name="behaviour" id="behaviour">
|
||||
<option value="{{ \App\Services\VCard\ImportVCard::BEHAVIOUR_ADD }}" selected>{{ trans('settings.import_upload_behaviour_add') }}</option>
|
||||
<option value="{{ \App\Services\VCard\ImportVCard::BEHAVIOUR_REPLACE }}">{{ trans('settings.import_upload_behaviour_replace') }}</option>
|
||||
</select>
|
||||
<small id="behaviourHelp" class="form-text text-muted">{{ trans('settings.import_upload_behaviour_help') }}</small>
|
||||
</div>
|
||||
|
||||
<div class="form-group actions">
|
||||
<button id="upload" type="submit" class="btn btn-primary">{{ trans('app.upload') }}</button>
|
||||
<a href="{{ route('settings.import') }}" class="btn btn-secondary">{{ trans('app.cancel') }}</a>
|
||||
</div> <!-- .form-group -->
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
172
resources/views/settings/index.blade.php
Normal file
172
resources/views/settings/index.blade.php
Normal file
@@ -0,0 +1,172 @@
|
||||
@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>
|
||||
{{ trans('app.breadcrumb_settings') }}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="{{ auth()->user()->getFluidLayout() }} mb4">
|
||||
<div class="row">
|
||||
|
||||
@include('settings._sidebar')
|
||||
|
||||
<div class="col-12 col-md-9">
|
||||
<div class="br3 ba b--gray-monica bg-white mb4">
|
||||
<div class="pa3 bb b--gray-monica">
|
||||
|
||||
@include('partials.errors')
|
||||
|
||||
@if (session('status'))
|
||||
<div class="alert alert-success">
|
||||
{{ session('status') }}
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<form action="{{ route('settings.save') }}" method="POST">
|
||||
@csrf
|
||||
|
||||
{{-- id --}}
|
||||
<input type="hidden" name="id" value="{{ auth()->user()->id }}" />
|
||||
|
||||
<h2>@lang('settings.title_general')</h2>
|
||||
<div class="pa2">
|
||||
{{-- names --}}
|
||||
<div class="form-group">
|
||||
<label for="first_name" class="mb2 b">{{ trans('settings.firstname') }}</label>
|
||||
<input type="text" class="form-control" name="first_name" id="first_name" required value="{{ auth()->user()->first_name }}">
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="last_name" class="mb2 b">{{ trans('settings.lastname') }}</label>
|
||||
<input type="text" class="form-control" name="last_name" id="last_name" required value="{{ auth()->user()->last_name }}">
|
||||
</div>
|
||||
|
||||
{{-- email address --}}
|
||||
<div class="form-group">
|
||||
<label for="email" class="mb2 b">{{ trans('settings.email') }}</label>
|
||||
<input type="email" class="form-control" name="email" id="email" placeholder="{{ trans('settings.email_placeholder') }}" required value="{{ auth()->user()->email }}">
|
||||
<small id="emailHelp" class="form-text text-muted">{{ trans('settings.email_help') }}</small>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="mb2 b">@lang('settings.me_title')</label>
|
||||
<me-contact
|
||||
:existing-contacts="{{ \Safe\json_encode($existingContacts) }}"
|
||||
:contact="{{ \Safe\json_encode($meContact) }}"
|
||||
:limited="{{ \Safe\json_encode($accountHasLimitations) }}"
|
||||
/>
|
||||
<small class="form-text text-muted">@lang('settings.me_help')</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h2 class="pt3">@lang('settings.title_i18n')</h2>
|
||||
<div class="pa2">
|
||||
{{-- Locale --}}
|
||||
<div class="form-group">
|
||||
<label for="locale" class="mb2 b">{{ trans('settings.locale') }}</label>
|
||||
<select class="form-control" name="locale" id="locale">
|
||||
@foreach($locales as $locale)
|
||||
<option value="{{ $locale['lang'] }}" {{ (auth()->user()->locale === $locale['lang'])?'selected':'' }}>
|
||||
{{ $locale['name-orig'] }}
|
||||
@if (auth()->user()->locale !== $locale['lang'] && $locale['name-orig'] !== $locale['name'])
|
||||
— {{ $locale['name'] }}
|
||||
@endif
|
||||
</option>
|
||||
@endforeach
|
||||
</select>
|
||||
<small class="form-text text-muted">{!! trans('settings.locale_help', ['url' => 'https://github.com/monicahq/monica/blob/main/docs/contribute/translate.md']) !!}</small>
|
||||
</div>
|
||||
|
||||
{{-- currency for user --}}
|
||||
<div class="form-group">
|
||||
<label for="currency_id" class="mb2 b">{{ trans('settings.currency') }}</label>
|
||||
@include('partials.components.currency-select', ['selectionID' => auth()->user()->currency_id ])
|
||||
</div>
|
||||
|
||||
{{-- Temperature scale --}}
|
||||
<div class="form-group">
|
||||
<label for="temperature_scale" class="mb2 b">{{ trans('settings.temperature_scale') }}</label>
|
||||
<select class="form-control" name="temperature_scale" id="temperature_scale">
|
||||
<option value="fahrenheit" {{ (auth()->user()->temperature_scale == 'fahrenheit')?'selected':'' }}>{{ trans('settings.temperature_scale_fahrenheit') }}</option>
|
||||
<option value="celsius" {{ (auth()->user()->temperature_scale == 'celsius')?'selected':'' }}>{{ trans('settings.temperature_scale_celsius') }}</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
{{-- Reminder --}}
|
||||
<div class="form-group">
|
||||
<reminder-time
|
||||
:reminder="'{{ auth()->user()->account->default_time_reminder_is_sent }}'"
|
||||
:timezone="'{{ $selectedTimezone }}'"
|
||||
:timezones="{{ \Safe\json_encode($timezones) }}"
|
||||
:hours="{{ \Safe\json_encode($hours) }}">
|
||||
</reminder-time>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h2 class="pt3">@lang('settings.title_layout')</h2>
|
||||
<div class="pa2">
|
||||
{{-- Way of displaying names --}}
|
||||
<div class="form-group">
|
||||
<label for="name_order" class="mb2 b">{{ trans('settings.name_order') }}</label>
|
||||
<select id="name_order" name="name_order" class="form-control">
|
||||
@foreach ($namesOrder as $nameOrder)
|
||||
<option value="{{ $nameOrder }}" {{ (auth()->user()->name_order == $nameOrder) ? 'selected':'' }}>{{ trans('settings.name_order_'.$nameOrder) }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
|
||||
{{-- Layout --}}
|
||||
<div class="form-group">
|
||||
<label for="fluid_container" class="mb2 b">{{ trans('settings.layout') }}</label>
|
||||
<select class="form-control" name="fluid_container" id="fluid_container">
|
||||
<option value='0' {{ auth()->user()->fluid_container ? '' : 'selected' }}>{{ trans('settings.layout_small') }}</option>
|
||||
<option value='1' {{ auth()->user()->fluid_container ? 'selected' : '' }}>{{ trans('settings.layout_big') }}</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<button type="submit" class="btn btn-primary">{{ trans('settings.save') }}</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<form method="POST" action="{{ route('settings.reset') }}" class="settings-reset bg-washed-yellow" onsubmit="return confirm('{{ trans('settings.reset_notice') }}')">
|
||||
@csrf
|
||||
|
||||
<h2>{{ trans('settings.reset_title') }}</h2>
|
||||
<p>{{ trans('settings.reset_desc') }}</p>
|
||||
<button type="submit" class="btn btn-warning">{{ trans('settings.reset_cta') }}</button>
|
||||
</form>
|
||||
|
||||
<form method="POST" action="{{ route('settings.delete') }}" class="settings-delete bg-pale-red" onsubmit="return confirm('{{ trans('settings.delete_notice') }}')">
|
||||
@csrf
|
||||
|
||||
<h2>{{ trans('settings.delete_title') }}</h2>
|
||||
<p>{{ trans('settings.delete_desc') }}</p>
|
||||
<p>{{ trans('settings.delete_other_desc') }}</p>
|
||||
<button type="submit" class="btn btn-danger">{{ trans('settings.delete_cta') }}</button>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
81
resources/views/settings/personalization/index.blade.php
Normal file
81
resources/views/settings/personalization/index.blade.php
Normal file
@@ -0,0 +1,81 @@
|
||||
@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_personalization') }}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="{{ Auth::user()->getFluidLayout() }}">
|
||||
<div class="row">
|
||||
|
||||
@include('settings._sidebar')
|
||||
|
||||
<div class="col-12 col-sm-9">
|
||||
|
||||
<div class="mb3">
|
||||
<h3 class="f3 fw5">{{ trans('settings.personalization_tab_title') }}</h3>
|
||||
<p>{{ trans('settings.personalization_title') }}</p>
|
||||
</div>
|
||||
|
||||
<div class="br3 ba b--gray-monica bg-white mb4">
|
||||
<div class="pa3 bb b--gray-monica">
|
||||
<genders></genders>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="br3 ba b--gray-monica bg-white mb4">
|
||||
<div class="pa3 bb b--gray-monica">
|
||||
<reminder-rules></reminder-rules>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="br3 ba b--gray-monica bg-white mb4">
|
||||
<div class="pa3 bb b--gray-monica">
|
||||
<contact-field-types></contact-field-types>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="br3 ba b--gray-monica bg-white mb4">
|
||||
<div class="pa3 bb b--gray-monica">
|
||||
<activity-types :limited="{{ \Safe\json_encode($accountHasLimitations) }}"></activity-types>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="br3 ba b--gray-monica bg-white mb4">
|
||||
<div class="pa3 bb b--gray-monica">
|
||||
<life-event-types :limited="{{ \Safe\json_encode($accountHasLimitations) }}"></life-event-types>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="br3 ba b--gray-monica bg-white mb4">
|
||||
<div class="pa3 bb b--gray-monica">
|
||||
<modules :limited="{{ \Safe\json_encode($accountHasLimitations) }}"></modules>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
101
resources/views/settings/security/index.blade.php
Normal file
101
resources/views/settings/security/index.blade.php
Normal 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_security') }}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="{{ auth()->user()->getFluidLayout() }}">
|
||||
<div class="row">
|
||||
|
||||
@include('settings._sidebar')
|
||||
|
||||
<div class="col-12 col-md-9">
|
||||
|
||||
<div class="br3 ba b--gray-monica bg-white mb4">
|
||||
<div class="pa3 bb b--gray-monica">
|
||||
@include('partials.errors')
|
||||
|
||||
@if (session('status'))
|
||||
<div class="alert alert-success">
|
||||
{{ session('status') }}
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<h3 class="with-actions">{{ trans('settings.security_title') }}</h3>
|
||||
<p>{{ trans('settings.security_help') }}</p>
|
||||
|
||||
<form method="POST" action="{{ route('settings.security.passwordChange') }}" class="settings-reset">
|
||||
@csrf
|
||||
|
||||
<h2>{{ trans('settings.password_change') }}</h2>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="password_current">{{ trans('settings.password_current') }}</label>
|
||||
<input type="password" class="form-control" name="password_current" id="password_current" placeholder="{{ trans('settings.password_current_placeholder') }}" required />
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="password">{{ trans('settings.password_new1') }}</label>
|
||||
<input type="password" class="form-control" name="password" id="password" placeholder="{{ trans('settings.password_new1_placeholder') }}" required />
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="password_confirmation">{{ trans('settings.password_new2') }}</label>
|
||||
<input type="password" class="form-control" name="password_confirmation" id="password_confirmation" placeholder="{{ trans('settings.password_new2_placeholder') }}" required />
|
||||
</div>
|
||||
|
||||
<button type="submit" class="btn">{{ trans('settings.password_btn') }}</button>
|
||||
</form>
|
||||
|
||||
@if (config('google2fa.enabled')===true)
|
||||
<form class="settings-reset">
|
||||
<h2>{{ trans('settings.2fa_title') }}</h2>
|
||||
|
||||
<recovery-codes></recovery-codes>
|
||||
|
||||
@if (config('google2fa.enabled')===true)
|
||||
<mfa-activate
|
||||
:activated="{{ \Safe\json_encode($is2FAActivated) }}"
|
||||
>
|
||||
</mfa-activate>
|
||||
@endif
|
||||
|
||||
@if (config('webauthn.enable')===true)
|
||||
<webauthn-connector
|
||||
:method="'register-modal'"
|
||||
:keys="{{ \Safe\json_encode($webauthnKeys) }}"
|
||||
:timezone="{{ \Safe\json_encode(auth()->user()->timezone) }}"
|
||||
>
|
||||
</webauthn-connector>
|
||||
@endif
|
||||
|
||||
</form>
|
||||
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
89
resources/views/settings/storage/index.blade.php
Normal file
89
resources/views/settings/storage/index.blade.php
Normal file
@@ -0,0 +1,89 @@
|
||||
@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>{{ trans('settings.storage_title') }}</h3>
|
||||
|
||||
<p>{{ trans('settings.storage_account_info', ['accountLimit' => $accountLimit, 'currentAccountSize' => $currentAccountSize, 'percentUsage' => $percentUsage,]) }}</p>
|
||||
|
||||
<p>{{ trans('settings.storage_description') }}</p>
|
||||
|
||||
<ul class="table">
|
||||
<li class="table-row">
|
||||
<div class="table-cell table-header">
|
||||
{{ trans('settings.logs_timestamp') }}
|
||||
</div>
|
||||
<div class="table-cell table-header">
|
||||
{{ trans('settings.logs_object') }}
|
||||
</div>
|
||||
<div class="table-cell table-header">
|
||||
{{ trans('settings.logs_size') }}
|
||||
</div>
|
||||
<div class="table-cell table-header">
|
||||
{{ trans('settings.logs_subject') }}
|
||||
</div>
|
||||
</li>
|
||||
@foreach($elements as $element)
|
||||
<li class="table-row">
|
||||
<div class="table-cell audit-log-cell">
|
||||
{{ \App\Helpers\DateHelper::getShortDateWithTime($element->created_at) }}
|
||||
</div>
|
||||
<div class="table-cell audit-log-cell">
|
||||
{{ $element->original_filename }}
|
||||
</div>
|
||||
<div class="table-cell audit-log-cell">
|
||||
{{ round($element->filesize / 1000) }}
|
||||
</div>
|
||||
<div class="table-cell audit-log-cell">
|
||||
@if ($element->contact())
|
||||
@if ($element instanceof \App\Models\Contact\Document)
|
||||
<a href="{{ route('people.show', ['contact' => $element->contact])}}">{{ $element->contact->name }}</a>
|
||||
@else
|
||||
<a href="{{ route('people.show', ['contact' => $element->contact()])}}">{{ $element->contact()->name }}</a>
|
||||
@endif
|
||||
@endif
|
||||
</div>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
123
resources/views/settings/subscriptions/account.blade.php
Normal file
123
resources/views/settings/subscriptions/account.blade.php
Normal file
@@ -0,0 +1,123 @@
|
||||
@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_subscriptions') }}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="{{ Auth::user()->getFluidLayout() }}">
|
||||
<div class="row">
|
||||
|
||||
@include('settings._sidebar')
|
||||
|
||||
<div class="col-12 col-sm-9 subscriptions">
|
||||
|
||||
<div class="br3 ba b--gray-monica bg-white mb4">
|
||||
<div class="pa3 bb b--gray-monica">
|
||||
|
||||
<h3>{{ trans('settings.subscriptions_account_current_plan') }}</h3>
|
||||
|
||||
<p>{{ trans('settings.subscriptions_account_current_paid_plan', ['name' => $planInformation['name']]) }}</p>
|
||||
|
||||
@include('partials.subscription')
|
||||
|
||||
<div class="dt dt--fixed w-100 collapse br--top br--bottom">
|
||||
<div class="dt-row">
|
||||
<div class="dtc">
|
||||
<div class="pa2 b">
|
||||
{{ trans('settings.subscriptions_account_next_billing_title') }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="dtc w-60">
|
||||
<div class="ph2">
|
||||
{!! trans('settings.subscriptions_account_next_billing', ['date' => $planInformation['nextBillingDate']]) !!}
|
||||
</div>
|
||||
<div class="ph2 pb2">
|
||||
{!! trans('settings.subscriptions_account_bill_' . $planInformation['type'], ['price' => $planInformation['friendlyPrice']]) !!}
|
||||
</div>
|
||||
</div>
|
||||
<div class="dtc {{ htmldir() == 'ltr' ? 'tr' : 'tl' }}">
|
||||
<div class="pa2">
|
||||
<a href="{{ route('settings.subscriptions.update') }}">{{ trans('settings.subscriptions_account_change') }}</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="dt-row">
|
||||
<div class="dtc">
|
||||
<div class="pa2 b">
|
||||
{{ trans('settings.subscriptions_account_cancel_title') }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="dtc">
|
||||
<div class="pa2">
|
||||
{{ trans('settings.subscriptions_account_cancel') }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="dtc {{ htmldir() == 'ltr' ? 'tr' : 'tl' }}">
|
||||
<div class="pa2">
|
||||
<a href="{{ route('settings.subscriptions.downgrade') }}">
|
||||
{{ trans('settings.subscriptions_account_cancel_action') }}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
{{-- Only display invoices if the subscription exists or existed --}}
|
||||
@if ($hasInvoices)
|
||||
<div class="invoices pt4">
|
||||
<h3>{{ trans('settings.subscriptions_account_invoices') }}</h3>
|
||||
<ul class="table">
|
||||
@foreach ($invoices as $invoice)
|
||||
<li class="table-row" title="{{
|
||||
trans('settings.subscriptions_account_invoices_subscription', [
|
||||
'startDate' => \App\Helpers\DateHelper::getFullDate(Arr::first($invoice->subscriptions())->startDateAsCarbon()),
|
||||
'endDate' => \App\Helpers\DateHelper::getFullDate(Arr::first($invoice->subscriptions())->endDateAsCarbon())
|
||||
])
|
||||
}}">
|
||||
<div class="table-cell date">
|
||||
{{ \App\Helpers\DateHelper::getFullDate($invoice->date()) }}
|
||||
</div>
|
||||
<div class="table-cell">
|
||||
{{ $invoice->total() }}
|
||||
</div>
|
||||
<div class="table-cell">
|
||||
<a href="{{ route('settings.subscriptions.invoice', $invoice->id) }}">{{ trans('settings.subscriptions_account_invoices_download') }}</a>
|
||||
</div>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
53
resources/views/settings/subscriptions/archive.blade.php
Normal file
53
resources/views/settings/subscriptions/archive.blade.php
Normal file
@@ -0,0 +1,53 @@
|
||||
@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_subscriptions') }}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="main-content central-form subscriptions">
|
||||
<div class="{{ Auth::user()->getFluidLayout() }}">
|
||||
<div class="row">
|
||||
<div class="col-12 col-sm-6 offset-sm-3 offset-sm-3-right downgrade">
|
||||
@include('partials.errors')
|
||||
|
||||
<div class="br3 ba b--gray-monica bg-white mb4">
|
||||
<div class="pa3 bb b--gray-monica">
|
||||
<h2>{{ trans('settings.archive_title') }}</h2>
|
||||
|
||||
<p class="tc">{{ trans('settings.archive_desc') }}</p>
|
||||
|
||||
<form method="POST" action="{{ route('settings.subscriptions.archive') }}">
|
||||
@csrf
|
||||
|
||||
<p class="mb4 tc"><button type="submit" class="btn btn-primary">{{ trans('settings.archive_cta') }}</button></p>
|
||||
|
||||
</form>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
114
resources/views/settings/subscriptions/blank.blade.php
Normal file
114
resources/views/settings/subscriptions/blank.blade.php
Normal file
@@ -0,0 +1,114 @@
|
||||
@extends('layouts.skeleton')
|
||||
|
||||
@section('content')
|
||||
|
||||
<div>
|
||||
|
||||
{{-- 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_subscriptions') }}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="main-content">
|
||||
<div class="{{ Auth::user()->getFluidLayout() }}">
|
||||
<div class="row">
|
||||
<div class="col-12 col-sm-8 offset-sm-2">
|
||||
|
||||
<h2 class="tc mt4 fw4">{{ trans('settings.subscriptions_account_upgrade_title') }}</h2>
|
||||
<p class="tc mb4">{{ trans('settings.subscriptions_account_upgrade_choice', ['customers' => $numberOfCustomers]) }}</p>
|
||||
|
||||
<div class="br3 ba b--gray-monica bg-white mb4">
|
||||
<div class="pa4 bb b--gray-monica">
|
||||
|
||||
<h3 class="tc">{{ trans('settings.subscriptions_account_payment') }}</h3>
|
||||
<div class="cf mb4">
|
||||
<div class="{{ htmldir() == 'ltr' ? 'fl' : 'fr' }} w-50-ns w-100 pa3 mt0-ns mt4">
|
||||
<div class="b--purple ba pt3 br3 bw1 relative">
|
||||
<img src="img/settings/subscription/best_value.png" class="absolute" style="top: -30px; left: -20px;">
|
||||
<h3 class="tc mb3 pt3">{{ trans('settings.subscriptions_plan_year_title') }}</h3>
|
||||
<p class="tc">
|
||||
<a href="{{ route('settings.subscriptions.upgrade') }}?plan=annual" class="btn btn-primary pv3">{{ trans('settings.subscriptions_plan_choose') }}</a>
|
||||
</p>
|
||||
<p class="tc mt2">
|
||||
{{ trans('settings.subscriptions_plan_frequency_year', ['amount' => \App\Helpers\InstanceHelper::getPlanInformationFromConfig('annual')['friendlyPrice']]) }}
|
||||
</p>
|
||||
<ul class="mb4 center ph4">
|
||||
<li class="mb3 relative ml4">
|
||||
<svg class="absolute" style="left: -30px; top: -3px;" width="26px" height="26px" viewBox="0 0 26 26" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<defs></defs>
|
||||
<g id="App" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="Group-7">
|
||||
<circle id="Oval-14" fill="#836BC8" cx="13" cy="13" r="13"></circle>
|
||||
<polyline id="Path-16" stroke="#FFFFFF" stroke-width="2" points="6.95703125 13.2783203 11.5048828 17.7226562 21.0205078 7.75"></polyline>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
{{ trans('settings.subscriptions_plan_year_bonus') }}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="{{ htmldir() == 'ltr' ? 'fl' : 'fr' }} w-50-ns w-100 pa3">
|
||||
<div class="b--gray-monica ba pt3 br3 bw1">
|
||||
<h3 class="tc mb3 pt3">{{ trans('settings.subscriptions_plan_month_title') }}</h3>
|
||||
<p class="tc">
|
||||
<a href="{{ route('settings.subscriptions.upgrade') }}?plan=monthly" class="btn btn-primary pv3">{{ trans('settings.subscriptions_plan_choose') }}</a>
|
||||
</p>
|
||||
<p class="tc mt2">
|
||||
{{ trans('settings.subscriptions_plan_frequency_month', ['amount' => \App\Helpers\InstanceHelper::getPlanInformationFromConfig('monthly')['friendlyPrice']]) }}
|
||||
</p>
|
||||
<ul class="mb4 center ph4">
|
||||
<li class="mb3 relative ml4">
|
||||
<svg class="absolute" style="left: -30px; top: -3px;" width="26px" height="26px" viewBox="0 0 26 26" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<defs></defs>
|
||||
<g id="App" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="Group-7">
|
||||
<circle id="Oval-14" fill="#836BC8" cx="13" cy="13" r="13"></circle>
|
||||
<polyline id="Path-16" stroke="#FFFFFF" stroke-width="2" points="6.95703125 13.2783203 11.5048828 17.7226562 21.0205078 7.75"></polyline>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
{{ trans('settings.subscriptions_plan_month_bonus') }}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p class="mb1 tc">{{ trans('settings.subscriptions_plan_include1') }}</p>
|
||||
<p class="mb1 tc">{{ trans('settings.subscriptions_plan_include2') }}</p>
|
||||
<p class="mb1 tc">{{ trans('settings.subscriptions_plan_include3') }}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h3 class="tc mb4 mt3">{{ trans('settings.subscriptions_help_title') }}</h3>
|
||||
<h4>{{ trans('settings.subscriptions_help_opensource_title') }}</h4>
|
||||
<p class="mb4">{{ trans('settings.subscriptions_help_opensource_desc') }}</p>
|
||||
|
||||
<h4>{{ trans('settings.subscriptions_help_limits_title') }}</h4>
|
||||
<p class="mb4">{{ trans('settings.subscriptions_help_limits_plan', ['number' => config('monica.number_of_allowed_contacts_free_account')]) }}</p>
|
||||
|
||||
<h4>{{ trans('settings.subscriptions_help_change_title') }}</h4>
|
||||
<p class="mb4">{{ trans('settings.subscriptions_help_change_desc') }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
36
resources/views/settings/subscriptions/confirm.blade.php
Normal file
36
resources/views/settings/subscriptions/confirm.blade.php
Normal file
@@ -0,0 +1,36 @@
|
||||
@extends('layouts.skeleton')
|
||||
|
||||
@section('content')
|
||||
|
||||
<div>
|
||||
|
||||
<div class="mt4 mw6 center mb4 pa2 pa0-ns">
|
||||
<div class="br3 ba b--gray-monica bg-white pa4">
|
||||
@if (! $payment->isSucceeded() && ! $payment->isCancelled())
|
||||
<h2 class="tc mt2 fw4">{{ trans('settings.subscriptions_payment_confirm_title', ['amount' => $payment->amount()]) }}</h2>
|
||||
<p class="tc mb4">{{ trans('settings.subscriptions_payment_confirm_information') }}</p>
|
||||
@endif
|
||||
|
||||
@include('partials.errors')
|
||||
<stripe-subscription
|
||||
:name="'{{ auth()->user()->name }}'"
|
||||
:stripe-key="'{{ config('cashier.key') }}'"
|
||||
:client-secret="'{{ $payment->clientSecret() }}'"
|
||||
:amount="'{{ $payment->amount() }}'"
|
||||
:confirm="true"
|
||||
:payment-succeeded="{{ \Safe\json_encode($payment->isSucceeded()) }}"
|
||||
:payment-cancelled="{{ \Safe\json_encode($payment->isCancelled()) }}"
|
||||
:callback="'{{ $redirect }}'"
|
||||
:token="'{{ csrf_token() }}'"
|
||||
></stripe-subscription>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
|
||||
@push('scripts')
|
||||
<script src="https://js.stripe.com/v3/"></script>
|
||||
<script src="{{ asset(mix('js/stripe.js')) }}"></script>
|
||||
@endpush
|
||||
@@ -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>
|
||||
{{ trans('app.breadcrumb_settings_subscriptions') }}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="main-content central-form subscriptions">
|
||||
<div class="{{ Auth::user()->getFluidLayout() }}">
|
||||
<div class="row">
|
||||
<div class="col-12 col-sm-6 offset-sm-3 offset-sm-3-right downgrade">
|
||||
@include('partials.errors')
|
||||
|
||||
<h2>{{ trans('settings.subscriptions_downgrade_title') }}</h2>
|
||||
|
||||
<p>{{ trans('settings.subscriptions_downgrade_limitations') }}</p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li class="{{ ($numberOfUsers > 1)?'fail':'success' }}">
|
||||
<span class="icon"></span>
|
||||
<span class="rule-title">{{ trans('settings.subscriptions_downgrade_rule_users') }}</span>
|
||||
<span class="rule-to-succeed">{!! trans_choice('settings.subscriptions_downgrade_rule_users_constraint', $numberOfUsers, ['url' => route('settings.users.index'), 'count' => $numberOfUsers]) !!}</span>
|
||||
</li>
|
||||
|
||||
<li class="{{ ($numberOfPendingInvitations > 0)?'fail':'success' }}">
|
||||
<span class="icon"></span>
|
||||
<span class="rule-title">{{ trans('settings.subscriptions_downgrade_rule_invitations') }}</span>
|
||||
<span class="rule-to-succeed">{!! trans_choice('settings.subscriptions_downgrade_rule_invitations_constraint', $numberOfPendingInvitations, ['url' => route('settings.users.index'), 'count' => $numberOfPendingInvitations]) !!}</span>
|
||||
</li>
|
||||
|
||||
<li class="{{ $hasReachedContactLimit ? 'fail' : 'success' }}">
|
||||
<span class="icon"></span>
|
||||
<span class="rule-title">{{ trans('settings.subscriptions_downgrade_rule_contacts', ['number' => config('monica.number_of_allowed_contacts_free_account')]) }}</span>
|
||||
<span class="rule-to-succeed">{!! trans_choice('settings.subscriptions_downgrade_rule_contacts_constraint', $numberOfActiveContacts, ['url' => '/people', 'count' => $numberOfActiveContacts]) !!}</span>
|
||||
@if ($hasReachedContactLimit)
|
||||
<span class="rule-to-succeed">{!! trans('settings.subscriptions_downgrade_rule_contacts_archive', ['url' => route('settings.subscriptions.archive')]) !!}</span>
|
||||
@endif
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<form method="POST" action="{{ route('settings.subscriptions.downgrade') }}">
|
||||
@csrf
|
||||
|
||||
@if ($canDowngrade)
|
||||
<p class="mb4"><button href="" class="btn btn-primary">{{ trans('settings.subscriptions_downgrade_cta') }}</button></p>
|
||||
@else
|
||||
<p class="mb4"><button class="btn btn-primary" disabled="disabled">{{ trans('settings.subscriptions_downgrade_cta') }}</button></p>
|
||||
@endif
|
||||
|
||||
</form>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
@@ -0,0 +1,70 @@
|
||||
@extends('layouts.skeleton')
|
||||
|
||||
@section('content')
|
||||
|
||||
<div>
|
||||
|
||||
{{-- 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_subscriptions') }}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mt4 mw6 center mb4 pa2 pa0-ns">
|
||||
<div class="b--gray-monica br3 ba bg-white pa4">
|
||||
<div class="tc">
|
||||
<svg width="160px" height="117px" viewBox="0 0 160 117" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="App" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="Artboard-5" transform="translate(-82.000000, -237.000000)">
|
||||
<g id="Imported-Layers" transform="translate(82.000000, 237.000000)">
|
||||
<path d="M23.0442667,71.4666667 C16.6883556,67.6387556 15.0933333,76.2759111 15.4823111,79.9160889 C16.1464889,86.1276444 18.4739556,87.0144 12.4380444,91.3784889 C9.42791111,93.5559111 4.53902222,94.1937778 2.82666667,97.9498667 C0.416,103.236978 5.19253333,108.538311 9.29848889,111.024356 C33.3980444,125.6192 51.8272,93.2700444 76.0796444,97.9591111 C86.9205333,100.055467 90.2464,110.883556 101.635556,111.561244 C113.425067,112.2624 127.620978,107.712 137.706667,101.784178 C145.4208,97.2501333 154.365156,87.9004444 156.790044,78.8529778 C160.5888,64.6741333 146.343822,51.3621333 132.7744,52.5632" id="Fill-1" fill="#CAF4FF"></path>
|
||||
<path d="M22.2563556,116.984889 C17.7514667,116.984889 13.0851556,115.811556 8.19342222,112.849067 C2.71928889,109.533867 -1.90293333,103.181511 0.885333333,97.0652444 C2.34168889,93.8709333 5.34471111,92.5169778 7.99431111,91.3237333 C9.19466667,90.7825778 10.3281778,90.2712889 11.1879111,89.6497778 C14.6801778,87.1246222 14.6040889,86.7662222 14.0096,83.9701333 C13.7955556,82.9639111 13.5288889,81.7109333 13.3617778,80.1429333 C13.0339556,77.0787556 13.7884444,71.4040889 17.2081778,69.2238222 C18.5927111,68.3420444 20.9194667,67.6970667 24.1443556,69.6391111 L21.9427556,73.2942222 C20.8568889,72.6392889 20.0348444,72.4821333 19.5015111,72.8213333 C18.1368889,73.6917333 17.3475556,77.2906667 17.6035556,79.6885333 C17.7486222,81.0389333 17.9790222,82.1240889 18.1824,83.0826667 C19.0698667,87.2547556 18.912,89.3304889 13.6881778,93.1072 C12.4771556,93.9832889 11.0890667,94.6083556 9.7472,95.2135111 C7.59253333,96.1841778 5.55804444,97.1015111 4.76728889,98.8344889 C2.94542222,102.831644 7.13955556,107.222756 10.4028444,109.199644 C22.7164444,116.657778 33.5843556,110.727111 45.0908444,104.449422 C54.8416,99.1303111 64.9251556,93.6277333 76.4842667,95.8648889 C82.1361778,96.9571556 85.8282667,100.093867 89.3980444,103.127467 C93.1797333,106.340267 96.4451556,109.115022 101.762133,109.431467 C112.091733,110.050844 125.774933,106.322489 136.625778,99.9452444 C143.704889,95.7838222 152.455822,86.784 154.728533,78.3004444 C156.176356,72.9002667 154.776889,67.3109333 150.788978,62.5635556 C146.299022,57.2181333 139.304533,54.1240889 132.962844,54.688 L132.585956,50.4384 C140.384711,49.7472 148.615111,53.3418667 154.055822,59.8186667 C158.894222,65.5793778 160.642133,72.7182222 158.850133,79.4048 C156.255289,89.0872889 146.793244,98.9169778 138.787556,103.623111 C127.256889,110.4 112.622222,114.346667 101.508978,113.691022 C94.7690667,113.289956 90.6339556,109.776356 86.6353778,106.379378 C83.3400889,103.578311 80.2268444,100.933689 75.6743111,100.053333 C65.6227556,98.1091556 56.6414222,103.008711 47.1338667,108.194844 C39.1687111,112.540444 31.0215111,116.983467 22.2563556,116.984889" id="Fill-2" fill="#52B9DD"></path>
|
||||
<path d="M134.1632,81.3034667 L29.3923556,81.3034667 C26.6545778,81.3034667 24.4145778,79.0634667 24.4145778,76.3256889 L24.4145778,7.58542222 C24.4145778,4.84764444 26.6545778,2.60764444 29.3923556,2.60764444 L134.1632,2.60764444 C136.900978,2.60764444 139.140978,4.84764444 139.140978,7.58542222 L139.140978,76.3256889 C139.140978,79.0634667 136.900978,81.3034667 134.1632,81.3034667" id="Fill-3" fill="#F2F2F2"></path>
|
||||
<path d="M134.1632,83.4368 L29.3930667,83.4368 C25.4712889,83.4368 22.2819556,80.2467556 22.2819556,76.3256889 L22.2819556,7.58542222 C22.2819556,3.66435556 25.4712889,0.474311111 29.3930667,0.474311111 L134.1632,0.474311111 C138.084267,0.474311111 141.274311,3.66435556 141.274311,7.58542222 L141.274311,76.3256889 C141.274311,80.2467556 138.084267,83.4368 134.1632,83.4368 L134.1632,83.4368 Z M29.3930667,4.74097778 C27.8243556,4.74097778 26.5486222,6.01671111 26.5486222,7.58542222 L26.5486222,76.3256889 C26.5486222,77.8944 27.8243556,79.1701333 29.3930667,79.1701333 L134.1632,79.1701333 C135.7312,79.1701333 137.007644,77.8944 137.007644,76.3256889 L137.007644,7.58542222 C137.007644,6.01671111 135.7312,4.74097778 134.1632,4.74097778 L29.3930667,4.74097778 L29.3930667,4.74097778 Z" id="Fill-4" fill="#CCCCCC"></path>
|
||||
<polyline id="Fill-5" fill="#E6E6E6" points="26.6666667 79.1701333 82.4888889 11.6145778 137.634844 79.1701333"></polyline>
|
||||
<path d="M137.635556,81.3034667 C137.016889,81.3034667 136.4032,81.0360889 135.981511,80.5198222 L82.4789333,14.976 L28.3114667,80.5290667 C27.5598222,81.4371556 26.2151111,81.5637333 25.3077333,80.8149333 C24.3996444,80.064 24.2716444,78.7192889 25.0225778,77.8112 L80.8448,10.1368889 C81.2494222,9.64693333 81.8524444,9.24444444 82.4888889,9.24444444 L82.4952889,9.24444444 C83.1338667,9.24444444 83.7376,9.65262222 84.1415111,10.1468444 L139.287467,77.7614222 C140.032,78.6744889 139.896178,80.0483556 138.983111,80.7936 C138.587733,81.1164444 138.109867,81.3034667 137.635556,81.3034667" id="Fill-6" fill="#CCCCCC"></path>
|
||||
<path d="M139.022222,8.05902222 C139.022222,39.5434667 115.367111,67.2 83.5555556,67.2 C51.744,67.2 24.5333333,39.5434667 24.5333333,8.05902222" id="Fill-7" fill="#E6E6E6"></path>
|
||||
<path d="M83.5555556,69.3333333 C67.8712889,69.3333333 52.2147556,62.6289778 40.6016,50.9397333 C29.0346667,39.2967111 22.4,23.6672 22.4,8.05902222 C22.4,6.88071111 23.3550222,5.92568889 24.5333333,5.92568889 C25.7116444,5.92568889 26.6666667,6.88071111 26.6666667,8.05902222 C26.6666667,38.4277333 53.2501333,65.0666667 83.5555556,65.0666667 C98.0828444,65.0666667 111.608889,59.0058667 121.641956,47.9992889 C131.473778,37.2131556 136.888889,23.0286222 136.888889,8.05902222 C136.888889,6.88071111 137.843911,5.92568889 139.022222,5.92568889 C140.200533,5.92568889 141.155556,6.88071111 141.155556,8.05902222 C141.155556,24.0945778 135.345067,39.2995556 124.795022,50.8736 C113.943467,62.7776 99.2974222,69.3333333 83.5555556,69.3333333" id="Fill-8" fill="#CCCCCC"></path>
|
||||
<path d="M67.5555556,22.0444444 C67.5555556,24.2048 65.8048,25.9555556 63.6444444,25.9555556 C61.4840889,25.9555556 59.7333333,24.2048 59.7333333,22.0444444 C59.7333333,19.8840889 61.4840889,18.1333333 63.6444444,18.1333333 C65.8048,18.1333333 67.5555556,19.8840889 67.5555556,22.0444444" id="Fill-9" fill="#B3B3B3"></path>
|
||||
<path d="M103.822222,22.0444444 C103.822222,24.2048 102.071467,25.9555556 99.9111111,25.9555556 C97.7507556,25.9555556 96,24.2048 96,22.0444444 C96,19.8840889 97.7507556,18.1333333 99.9111111,18.1333333 C102.071467,18.1333333 103.822222,19.8840889 103.822222,22.0444444" id="Fill-10" fill="#B3B3B3"></path>
|
||||
<path d="M75.7333333,48.3555556 C75.7333333,44.8 79.0762667,40.8888889 83.2,40.8888889 C87.3237333,40.8888889 90.6666667,44.8 90.6666667,48.3555556 L75.7333333,48.3555556" id="Fill-11" fill="#B3B3B3"></path>
|
||||
<path d="M90.6666667,50.4888889 L75.7333333,50.4888889 C74.5550222,50.4888889 73.6,49.5338667 73.6,48.3555556 C73.6,43.8236444 77.7052444,38.7555556 83.2,38.7555556 C88.6947556,38.7555556 92.8,43.8236444 92.8,48.3555556 C92.8,49.5338667 91.8449778,50.4888889 90.6666667,50.4888889 L90.6666667,50.4888889 Z M78.4348444,46.2222222 L87.9651556,46.2222222 C87.0748444,44.5034667 85.2416,43.0222222 83.2,43.0222222 C81.1584,43.0222222 79.3251556,44.5034667 78.4348444,46.2222222 L78.4348444,46.2222222 Z" id="Fill-12" fill="#B3B3B3"></path>
|
||||
<path d="M66.3089778,34.3914667 C66.3089778,35.8627556 65.1164444,37.056 63.6444444,37.056 C62.1724444,37.056 60.9799111,35.8627556 60.9799111,34.3914667 C60.9799111,32.9194667 62.1724444,29.7884444 63.6444444,29.7884444 C65.1164444,29.7884444 66.3089778,32.9194667 66.3089778,34.3914667" id="Fill-13" fill="#A1EDFF"></path>
|
||||
<path d="M63.6444444,38.4782222 C61.3909333,38.4782222 59.5576889,36.6449778 59.5576889,34.3907556 C59.5576889,32.5888 60.9479111,28.3662222 63.6444444,28.3662222 C66.3409778,28.3662222 67.7312,32.5888 67.7312,34.3907556 C67.7312,36.6449778 65.8979556,38.4782222 63.6444444,38.4782222 L63.6444444,38.4782222 Z M63.6444444,31.2661333 C63.1459556,31.6871111 62.4021333,33.3852444 62.4021333,34.3907556 C62.4021333,35.0762667 62.9596444,35.6337778 63.6444444,35.6337778 C64.3292444,35.6337778 64.8867556,35.0762667 64.8867556,34.3907556 C64.8867556,33.3852444 64.1429333,31.6871111 63.6444444,31.2661333 L63.6444444,31.2661333 Z" id="Fill-14" fill="#52B9DD"></path>
|
||||
<path d="M102.575644,39.3692444 C102.575644,40.8405333 101.383111,42.0337778 99.9111111,42.0337778 C98.4391111,42.0337778 97.2465778,40.8405333 97.2465778,39.3692444 C97.2465778,37.8972444 98.4391111,34.7662222 99.9111111,34.7662222 C101.383111,34.7662222 102.575644,37.8972444 102.575644,39.3692444" id="Fill-15" fill="#A1EDFF"></path>
|
||||
<path d="M99.9111111,43.456 C97.6576,43.456 95.8243556,41.6227556 95.8243556,39.3685333 C95.8243556,37.5665778 97.2145778,33.344 99.9111111,33.344 C102.607644,33.344 103.997867,37.5665778 103.997867,39.3685333 C103.997867,41.6227556 102.164622,43.456 99.9111111,43.456 L99.9111111,43.456 Z M99.9111111,36.2439111 C99.4126222,36.6648889 98.6688,38.3630222 98.6688,39.3685333 C98.6688,40.0540444 99.2263111,40.6115556 99.9111111,40.6115556 C100.595911,40.6115556 101.153422,40.0540444 101.153422,39.3685333 C101.153422,38.3630222 100.4096,36.6648889 99.9111111,36.2439111 L99.9111111,36.2439111 Z" id="Fill-16" fill="#52B9DD"></path>
|
||||
<path d="M67.1786667,48.2183111 C67.1786667,50.1703111 65.5964444,51.7525333 63.6444444,51.7525333 C61.6924444,51.7525333 60.1102222,50.1703111 60.1102222,48.2183111 C60.1102222,46.2663111 61.6924444,42.1141333 63.6444444,42.1141333 C65.5964444,42.1141333 67.1786667,46.2663111 67.1786667,48.2183111" id="Fill-17" fill="#A1EDFF"></path>
|
||||
<path d="M63.6444444,53.1740444 C60.9116444,53.1740444 58.688,50.9504 58.688,48.2183111 C58.688,46.0337778 60.4252444,40.6926222 63.6444444,40.6926222 C66.8636444,40.6926222 68.6008889,46.0337778 68.6008889,48.2183111 C68.6008889,50.9504 66.3772444,53.1740444 63.6444444,53.1740444 L63.6444444,53.1740444 Z M63.6408889,43.5370667 C63.0016,43.6167111 61.5324444,46.3665778 61.5324444,48.2183111 C61.5324444,49.3824 62.4796444,50.3296 63.6444444,50.3296 C64.8092444,50.3296 65.7564444,49.3824 65.7564444,48.2183111 C65.7564444,46.3665778 64.2872889,43.6167111 63.6408889,43.5370667 L63.6408889,43.5370667 Z" id="Fill-18" fill="#52B9DD"></path>
|
||||
<path d="M104.156444,81.6405333 C104.156444,83.5925333 102.574222,85.1747556 100.622222,85.1747556 C98.6702222,85.1747556 97.0887111,83.5925333 97.0887111,81.6405333 C97.0887111,79.6885333 98.6702222,75.5363556 100.622222,75.5363556 C102.574222,75.5363556 104.156444,79.6885333 104.156444,81.6405333" id="Fill-19" fill="#A1EDFF"></path>
|
||||
<path d="M100.622222,86.5962667 C97.8894222,86.5962667 95.6657778,84.3726222 95.6657778,81.6405333 C95.6657778,79.456 97.4030222,74.1148444 100.622222,74.1148444 C103.841422,74.1148444 105.578667,79.456 105.578667,81.6405333 C105.578667,84.3726222 103.355022,86.5962667 100.622222,86.5962667 L100.622222,86.5962667 Z M100.618667,76.9592889 C99.9793778,77.0389333 98.5102222,79.7888 98.5102222,81.6405333 C98.5102222,82.8046222 99.4574222,83.7518222 100.622222,83.7518222 C101.787022,83.7518222 102.734222,82.8046222 102.734222,81.6405333 C102.734222,79.7888 101.265067,77.0389333 100.618667,76.9592889 L100.618667,76.9592889 Z" id="Fill-20" fill="#52B9DD"></path>
|
||||
<path d="M68.3377778,70.6844444 C68.3377778,73.2764444 66.2364444,75.3777778 63.6444444,75.3777778 C61.0524444,75.3777778 58.9511111,73.2764444 58.9511111,70.6844444 C58.9511111,68.0924444 61.0524444,62.5777778 63.6444444,62.5777778 C66.2364444,62.5777778 68.3377778,68.0924444 68.3377778,70.6844444" id="Fill-21" fill="#A1EDFF"></path>
|
||||
<path d="M63.6444444,76.8 C60.2723556,76.8 57.5288889,74.0572444 57.5288889,70.6844444 C57.5288889,67.7745778 59.8392889,61.1555556 63.6444444,61.1555556 C67.4496,61.1555556 69.76,67.7745778 69.76,70.6844444 C69.76,74.0572444 67.0165333,76.8 63.6444444,76.8 L63.6444444,76.8 Z M63.6444444,64 C62.4213333,64 60.3733333,68.1856 60.3733333,70.6844444 C60.3733333,72.4878222 61.8403556,73.9555556 63.6444444,73.9555556 C65.4485333,73.9555556 66.9155556,72.4878222 66.9155556,70.6844444 C66.9155556,68.1856 64.8675556,64 63.6444444,64 L63.6444444,64 Z" id="Fill-22" fill="#52B9DD"></path>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
</div>
|
||||
|
||||
<h2 class="tc mt2 fw4">{{ trans('settings.subscriptions_downgrade_success') }}</h2>
|
||||
<p class="tc mb4">{{ trans('settings.subscriptions_downgrade_thanks') }}</p>
|
||||
<p class="tc"><a href="settings/subscriptions" class="btn btn-primary">{{trans('settings.subscriptions_back') }}</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
67
resources/views/settings/subscriptions/success.blade.php
Normal file
67
resources/views/settings/subscriptions/success.blade.php
Normal file
@@ -0,0 +1,67 @@
|
||||
@extends('layouts.skeleton')
|
||||
|
||||
@section('content')
|
||||
|
||||
<div>
|
||||
|
||||
{{-- 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_subscriptions') }}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mt4 mw6 center mb4 pa2 pa0-ns">
|
||||
<div class="b--gray-monica br3 ba bg-white pa4">
|
||||
<div class="tc">
|
||||
<svg width="124px" height="114px" viewBox="0 0 124 114" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<defs></defs>
|
||||
<g id="App" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="Artboard-5" transform="translate(-310.000000, -181.000000)">
|
||||
<g id="Imported-Layers" transform="translate(310.000000, 181.000000)">
|
||||
<path d="M26.7867319,23.4678522 L32.066953,34.3611715 C32.4444118,35.1404424 33.1727181,35.6797724 34.0144722,35.802966 L45.7815219,37.5298246 C47.899913,37.8406735 48.7507709,40.5022275 47.2206273,42.0328359 L38.7225526,50.5353406 C38.1146969,51.1434298 37.8387809,52.0179608 37.9837418,52.8745859 L40.0145961,64.8544438 C40.3801499,67.0117637 38.1686196,68.6612682 36.2715216,67.6456376 L25.7397915,62.0073832 C24.9869748,61.6041392 24.0877966,61.6055717 23.3363805,62.0116807 L12.8235584,67.6886121 C10.9306621,68.7106889 8.71352952,67.069063 9.07138005,64.9110269 L11.0602166,52.9232903 C11.2023764,52.0666653 10.9236592,51.1928505 10.3137026,50.58691 L1.78621559,42.1159199 C0.25046959,40.5903252 1.09152337,37.9259062 3.20991446,37.6071787 L14.9706615,35.8373456 C15.8117153,35.711287 16.5379208,35.1690921 16.9125784,34.3891049 L22.1549836,23.4764471 C23.0989807,21.5117962 25.8364322,21.5067825 26.7867319,23.4678522" id="Fill-1" fill="#FFF3B6"></path>
|
||||
<path d="M12.9126394,71 C11.934032,71 10.9611142,70.6931249 10.1290134,70.0907667 C8.65114562,69.0206197 7.92216847,67.2370415 8.22727208,65.437087 L10.2470722,53.519509 C10.2740977,53.3607314 10.2214691,53.1983937 10.1062551,53.0866086 L1.44600658,44.6656983 C0.137403691,43.3926293 -0.327008094,41.5228982 0.234126513,39.7848884 C0.794549923,38.0483026 2.26388338,36.8037138 4.06747953,36.5388471 L16.0113257,34.7794771 C16.1706338,34.7559809 16.3086061,34.6548758 16.3797258,34.5103383 L21.703037,23.6621953 C22.5074011,22.0238665 24.1395987,21.00356 25.9638196,21 L25.9723539,21 C27.7930188,21 29.4252164,22.0138984 30.2331365,23.6472431 L35.5962747,34.476162 C35.6681056,34.6206995 35.8046555,34.7203805 35.9639637,34.7431647 L47.915633,36.4598143 C49.7213627,36.720409 51.1949634,37.9593017 51.7610764,39.6944634 C52.3279005,41.4303372 51.8691783,43.3014924 50.5655538,44.5781214 L41.9358868,53.029648 C41.8206728,53.1421451 41.7680442,53.3051948 41.7957809,53.4639724 L43.8582528,65.3722944 C44.1697572,67.1715368 43.447892,68.9579631 41.9735802,70.0338061 C40.5006908,71.1096491 38.5818807,71.2534746 36.9653294,70.4040499 L26.2689232,64.7998405 C26.1266837,64.7250797 25.9567076,64.7265038 25.8130458,64.8005525 L15.1379755,70.4439223 C14.4346014,70.8155901 13.6714868,71 12.9126394,71 L12.9126394,71 Z M25.9723539,25.2720437 L25.9709315,25.2720437 C25.7696627,25.2727558 25.6217337,25.3646047 25.5328341,25.5461666 L20.2095229,36.3950216 C19.5189504,37.801236 18.1811884,38.777398 16.6322008,39.0059524 L4.68835471,40.7646104 C4.48850829,40.7945147 4.3562256,40.9070118 4.29435145,41.0985418 C4.23247729,41.2914958 4.27443792,41.4602415 4.41952216,41.601219 L13.0783483,50.0214172 C14.2020399,51.1143484 14.7162355,52.6885965 14.4545149,54.2343643 L12.4347148,66.1512303 C12.4005774,66.3498804 12.4667187,66.510794 12.6310053,66.6296992 C12.7931582,66.7464684 12.9659792,66.7599966 13.1452009,66.6660116 L23.8216935,61.0219298 C25.2063945,60.2899863 26.8613505,60.2878503 28.2488962,61.0155218 L38.9453024,66.6197311 C39.1216793,66.7137161 39.2966339,66.7009 39.459498,66.5819948 C39.6230734,66.4630895 39.6877923,66.3021759 39.6536549,66.1021018 L37.5911829,54.1937799 C37.324484,52.6494361 37.83299,51.073764 38.9502808,49.9772727 L47.5820815,41.5243222 C47.7264545,41.3833447 47.767704,41.213887 47.7051186,41.022357 C47.6425333,40.8294031 47.5095394,40.7176179 47.3089818,40.6891376 L35.3587349,38.972488 C33.8097473,38.7503418 32.4684293,37.7784518 31.7728785,36.3729494 L26.4111626,25.5440305 C26.3208406,25.3638927 26.1736227,25.2720437 25.9723539,25.2720437 L25.9723539,25.2720437 Z" id="Fill-2" fill="#FFDC0D"></path>
|
||||
<path d="M69.7454224,37.7860069 L72.1723717,52.7766803 C72.3465311,53.8483276 73.0495144,54.768554 74.0521646,55.2365824 L88.0793957,61.7827851 C90.6050588,62.9618036 90.64948,66.456186 88.1548413,67.6957729 L74.2996542,74.5819844 C73.3089907,75.0747908 72.6299807,76.0115358 72.4840253,77.0873128 L70.4399445,92.1323601 C70.0718831,94.8414184 66.6817691,95.9626217 64.7025574,94.0299398 L53.7114807,83.2948832 C52.9260009,82.5274543 51.8034839,82.1860689 50.709876,82.3829161 L35.4198133,85.1353359 C32.6664034,85.6308954 30.5264292,82.8296079 31.798427,80.3944838 L38.8606944,66.8739701 C39.365545,65.9076292 39.3507379,64.7602714 38.821914,63.8056312 L31.4155585,50.4613164 C30.081512,48.0585414 32.1495661,45.2056331 34.9149627,45.6344297 L50.2705996,48.0131151 C51.3684381,48.1831195 52.4817888,47.8148913 53.2482309,47.0281907 L63.9607937,36.0288357 C65.8899434,34.0479744 69.3082613,35.0865844 69.7454224,37.7860069" id="Fill-3" fill="#FFE876"></path>
|
||||
<path d="M67.0517206,97 C65.6283775,97 64.243674,96.4532363 63.1954865,95.427024 L52.2443156,84.7143022 C51.951357,84.4271826 51.5333466,84.3028557 51.1265768,84.3736053 L35.8927309,87.1204746 C33.8272676,87.495516 31.7674246,86.7021592 30.5119882,85.056373 C29.2572543,83.4119606 29.0710816,81.254442 30.0237239,79.4266302 L37.0610525,65.9340684 C37.2486303,65.5727647 37.24301,65.1448328 37.0462992,64.7890243 L29.6668343,51.4716192 C28.6671219,49.6678485 28.7991992,47.5062086 30.0110782,45.8315731 C31.2236597,44.1562507 33.2666418,43.3148115 35.3370229,43.6376494 L50.6362049,46.011538 C51.0436772,46.073358 51.4609851,45.9366671 51.7462158,45.6433655 L62.4191814,34.6668783 C63.8664108,33.1804503 66.0098559,32.6364342 68.0120908,33.2450179 C70.0157307,33.8536016 71.4643652,35.491832 71.7917482,37.5181548 L74.2105884,52.4785985 C74.2759245,52.8790549 74.5372688,53.2218125 74.9110193,53.3962823 L88.8866186,59.9292842 C90.7806626,60.8146842 91.9728705,62.6397484 91.9995669,64.6907992 C92.0255609,66.7425368 90.8797205,68.5957635 89.0095629,69.5264982 L75.205383,76.3988232 C74.8358477,76.5822226 74.5829338,76.9318492 74.5281358,77.3336793 L72.4921791,92.3483873 C72.216784,94.3829527 70.8103018,96.0548407 68.8221177,96.7128804 C68.2397133,96.9058962 67.6425555,97 67.0517206,97 L67.0517206,97 Z M51.3549018,80.2316642 C52.7937007,80.2316642 54.1903474,80.7873575 55.2258892,81.8012057 L66.1770601,92.5139275 C66.676565,93.0029925 67.2484314,92.882787 67.469731,92.8092898 C67.6924357,92.7357927 68.2207447,92.4905733 68.3141823,91.8064318 L70.3494365,76.7910369 C70.5868945,75.044278 71.6870699,73.5248794 73.2923705,72.7260274 L87.0965504,65.8530155 C87.7260249,65.5397941 87.7871458,64.9717368 87.7843356,64.7423159 C87.7815255,64.512208 87.7063539,63.9462114 87.0684489,63.6481016 L73.0928495,57.1144128 C71.4671753,56.3547135 70.3290629,54.8621036 70.0480475,53.1215267 L67.6285047,38.1624567 C67.5182062,37.4810627 66.9842769,37.2482074 66.7594645,37.1795184 C66.5353547,37.1128902 65.9599757,37.0064224 65.473819,37.5071645 L54.8008534,48.4836517 C53.5594678,49.7605785 51.7588615,50.358172 49.9758186,50.0813557 L34.6766367,47.7074671 C33.9790159,47.6003124 33.5869994,48.024123 33.452112,48.2123306 C33.3165221,48.3998513 33.0369117,48.9019672 33.3734277,49.5084902 L40.75219,62.8258954 C41.6106921,64.3748302 41.6345785,66.2362996 40.816121,67.8051542 L33.779495,81.2990898 C33.4584348,81.9138555 33.7506909,82.4091025 33.8911986,82.5938757 C34.0317063,82.7772751 34.4349634,83.1935298 35.128369,83.0678291 L50.3622148,80.3209598 C50.6931105,80.2612004 51.0254112,80.2316642 51.3549018,80.2316642 L51.3549018,80.2316642 Z" id="Fill-4" fill="#FFDC0D"></path>
|
||||
<path d="M101.357833,23.5324969 L102.633381,31.7771256 C102.724691,32.3668417 103.094112,32.872516 103.621059,33.1303387 L110.990658,36.7305977 C112.317786,37.3787156 112.341484,39.3009904 111.030388,39.9825824 L103.750705,43.7701546 C103.230031,44.0407972 102.873156,44.5557304 102.796484,45.1475831 L101.723072,53.4228372 C101.5293,54.912796 99.7477155,55.5295763 98.7084577,54.4662357 L92.9336418,48.5619533 C92.5203085,48.1396084 91.9306291,47.9522952 91.3562841,48.0605523 L83.3224242,49.5740143 C81.8761064,49.8467935 80.7511151,48.3062673 81.4195579,46.9665863 L85.1304958,39.5303244 C85.3960606,38.9990102 85.3883934,38.3679855 85.1095852,37.8430813 L81.218119,30.5036809 C80.5176132,29.1818054 81.6042684,27.6135027 83.0568594,27.8485344 L91.1255702,29.1568778 C91.7020063,29.2501783 92.2875036,29.0479085 92.6896845,28.6155926 L98.3181262,22.5660179 C99.3315942,21.4763252 101.127816,22.0475236 101.357833,23.5324969" id="Fill-5" fill="#FFF3B6"></path>
|
||||
<path d="M98.9353231,59 C97.934043,59 96.9611925,58.588308 96.224794,57.8164762 L90.5971004,51.9206396 L82.7678387,53.4323553 C81.3186174,53.7133515 79.8687028,53.117233 78.9873821,51.8792526 C78.1060615,50.6419982 77.9743141,49.0177388 78.6441455,47.6425276 L82.260958,40.2160971 L78.4687135,32.8855101 C77.7662919,31.5284512 77.8585151,29.9012874 78.7107126,28.6415243 C79.5615234,27.3810351 80.9968765,26.7493383 82.4530318,26.9903996 L90.315577,28.2966324 L95.8011221,22.254126 C96.8169638,21.135224 98.3230444,20.7264363 99.7313547,21.184598 C101.139665,21.6427597 102.156893,22.8763836 102.386411,24.4011689 L103.62969,32.6350097 L110.812697,36.2313248 C112.143345,36.8964216 112.980981,38.2694545 112.999703,39.8138442 C113.017732,41.3575078 112.213379,42.7523233 110.899372,43.4522724 L103.803736,47.2351921 L102.757384,55.4995286 C102.563923,57.0308487 101.576511,58.2891596 100.178602,58.7843518 C99.7694921,58.9295694 99.3499806,59 98.9353231,59 L98.9353231,59 Z M90.7038851,47.5372448 C91.7134861,47.5372448 92.6946575,47.9554717 93.4227351,48.7178643 L98.7168998,54.2651785 L99.7015381,46.4909517 C99.8686493,45.1752798 100.641798,44.0316908 101.770665,43.4312158 L108.443324,39.8741095 L101.686763,36.4905383 C100.544028,35.9183807 99.7445294,34.7965744 99.5469083,33.4867112 L98.3771302,25.7400757 L93.2167932,31.4238945 C92.3451802,32.3845092 91.0741646,32.8339578 89.8281117,32.6262966 L82.4308427,31.3977553 L85.9977298,38.2926893 C86.6009942,39.4580609 86.617636,40.8594112 86.0428013,42.0400307 L82.6402517,49.0264518 L90.005624,47.6047711 C90.2379154,47.5597536 90.4715937,47.5372448 90.7038851,47.5372448 L90.7038851,47.5372448 Z" id="Fill-6" fill="#FFDC0D"></path>
|
||||
<path d="M122,14 L114,22" id="Fill-7" fill="#E6E6E6"></path>
|
||||
<path d="M113.291602,26 C112.724675,26 112.157749,25.7984216 111.713834,25.3915728 C110.796208,24.5490783 110.758005,23.1476281 111.629789,22.2600923 L120.045057,13.6904242 C120.915312,12.8036267 122.366247,12.7652308 123.286166,13.6092021 C124.203792,14.4516966 124.241995,15.8531467 123.370211,16.7406826 L114.954179,25.3103507 C114.504152,25.7688863 113.899023,26 113.291602,26" id="Fill-8" fill="#CCCCCC"></path>
|
||||
<path d="M12,18 L6,8" id="Fill-9" fill="#F2F2F2"></path>
|
||||
<path d="M11.8348569,20 C11.0486827,20 10.2892196,19.6088786 9.9066004,18.9283537 L4.23878243,8.86616548 C3.69300859,7.89820568 4.11461166,6.71171665 5.17944818,6.21690873 C6.24139701,5.72144456 7.5495216,6.10337853 8.09385159,7.07133833 L13.7616696,17.1335265 C14.3067215,18.1014863 13.8851184,19.2879753 12.8210038,19.7827833 C12.5048015,19.9304381 12.1676634,20 11.8348569,20" id="Fill-10" fill="#E6E6E6"></path>
|
||||
<path d="M38,21 L42,8" id="Fill-11" fill="#E6E6E6"></path>
|
||||
<path d="M37.1328408,23 C36.9168312,23 36.6972688,22.9643401 36.4812592,22.8899854 C35.3607095,22.5068311 34.7432348,21.2253507 35.1020665,20.0280884 L38.8381796,7.58126411 C39.1963007,6.3847605 40.3985646,5.72543162 41.5191143,6.10934464 C42.6396641,6.49249893 43.2571388,7.77397934 42.8975965,8.97124168 L39.1614834,21.4180659 C38.8722864,22.3831595 38.0338281,23 37.1328408,23" id="Fill-12" fill="#CCCCCC"></path>
|
||||
<path d="M53,101 L47,111" id="Fill-13" fill="#F2F2F2"></path>
|
||||
<path d="M48.1642056,114 C47.8321126,114 47.4949661,113.930441 47.1794778,113.782791 C46.1146145,113.287345 45.6930009,112.101556 46.2387884,111.133632 L51.9067487,101.071816 C52.4518143,100.103892 53.7585278,99.7213157 54.8212253,100.216762 C55.8853666,100.712207 56.3069802,101.898653 55.7611927,102.86592 L50.0939544,112.928393 C49.7113255,113.608893 48.9518434,114 48.1642056,114" id="Fill-14" fill="#E6E6E6"></path>
|
||||
<path d="M78,97 L84,107" id="Fill-15" fill="#E6E6E6"></path>
|
||||
<path d="M85.1217455,110 C84.5327077,110 83.9524427,109.692173 83.5858607,109.116307 L77.3458196,99.3049408 C76.746129,98.361218 76.9460259,97.054525 77.7932377,96.385822 C78.6404495,95.716421 79.8135121,95.9404854 80.414456,96.8842081 L86.6538705,106.694876 C87.2541877,107.638599 87.0536642,108.94599 86.207079,109.614693 C85.8768418,109.875054 85.4977271,110 85.1217455,110" id="Fill-16" fill="#CCCCCC"></path>
|
||||
<path d="M90,11 L89,1" id="Fill-17" fill="#F2F2F2"></path>
|
||||
<path d="M89.8606051,14 C88.8223244,14 87.9115143,13.3232358 87.7512858,12.3780557 L86.0243785,2.19478943 C85.8477711,1.15292871 86.6496258,0.180398161 87.8168015,0.0226561234 C88.9839771,-0.138902254 90.0721068,0.581113822 90.2487142,1.62297454 L91.9756215,11.8062408 C92.1522289,12.8481015 91.3503742,13.820632 90.1831985,13.9783741 C90.0749553,13.9936394 89.966712,14 89.8606051,14" id="Fill-18" fill="#E6E6E6"></path>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
</div>
|
||||
|
||||
<h2 class="tc mt2 fw4">{{ trans('settings.subscriptions_upgrade_success') }}</h2>
|
||||
<p class="tc mb4">{{ trans('settings.subscriptions_upgrade_thanks') }}</p>
|
||||
<p class="tc"><a href="settings/subscriptions" class="btn btn-primary">{{ trans('settings.subscriptions_back') }}</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
73
resources/views/settings/subscriptions/update.blade.php
Normal file
73
resources/views/settings/subscriptions/update.blade.php
Normal file
@@ -0,0 +1,73 @@
|
||||
@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_subscriptions') }}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="main-content">
|
||||
<div class="{{ Auth::user()->getFluidLayout() }}">
|
||||
<div class="row">
|
||||
<div class="col-12 col-sm-8 offset-sm-2">
|
||||
|
||||
<h2 class="tc mt4 fw4">{{ trans('settings.subscriptions_account_update_title') }}</h2>
|
||||
|
||||
<p class="tc mb4">{{ trans('settings.subscriptions_account_update_description') }}</p>
|
||||
|
||||
@if ($legacyPlan)
|
||||
<div>
|
||||
<input type="radio" class="mr1" id="frequencycurrent" name="frequency" checked disabled>
|
||||
<label for="frequencycurrent" class="pointer">
|
||||
{{ trans('settings.subscriptions_account_current_legacy') }}
|
||||
{{ $legacyPlan['name'] }} – {{ $legacyPlan['friendlyPrice'] }}
|
||||
</label>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<form action="{{ route('settings.subscriptions.update') }}" method="POST">
|
||||
@csrf
|
||||
|
||||
@foreach ($plans as $plan)
|
||||
<div>
|
||||
<input type="radio" class="mr1" id="frequency{{ $plan['id'] }}" name="frequency" value="{{ $plan['type'] }}" @if($planInformation['id'] === $plan['id']) checked @endif>
|
||||
<label for="frequency{{ $plan['id'] }}" class="pointer">
|
||||
{{ $plan['name'] }} – {{ $plan['friendlyPrice'] }}
|
||||
</label>
|
||||
</div>
|
||||
@endforeach
|
||||
|
||||
<p class="ma3 alert alert-success">{{ trans('settings.subscriptions_account_update_information') }}</p>
|
||||
|
||||
<div class="tc">
|
||||
<button type="submit" class="btn btn-primary">{{ trans('app.confirm') }}</button>
|
||||
<a href="{{ route('settings.subscriptions.index') }}" class="btn btn-secondary">{{ trans('app.cancel') }}</a>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
55
resources/views/settings/subscriptions/upgrade.blade.php
Normal file
55
resources/views/settings/subscriptions/upgrade.blade.php
Normal file
@@ -0,0 +1,55 @@
|
||||
@extends('layouts.skeleton')
|
||||
|
||||
@section('content')
|
||||
|
||||
<div>
|
||||
|
||||
{{-- 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_subscriptions') }}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mt4 mw6 center mb4 pa2 pa0-ns">
|
||||
<div class="br3 ba b--gray-monica bg-white pa4">
|
||||
<h2 class="tc mt2 fw4">{{ trans('settings.subscriptions_upgrade_choose', ['plan' => $planInformation['type']]) }}</h2>
|
||||
<p class="tc mb4">{{ trans('settings.subscriptions_upgrade_infos') }}</p>
|
||||
|
||||
@include('partials.errors')
|
||||
<stripe-subscription
|
||||
:name="'{{ auth()->user()->name }}'"
|
||||
:stripe-key="'{{ config('cashier.key') }}'"
|
||||
:client-secret="'{{ $intent->client_secret }}'"
|
||||
:plan="'{{ $planInformation['type'] }}'"
|
||||
:amount="'{{ $planInformation['friendlyPrice'] }}'"
|
||||
:callback="'{{ route('settings.subscriptions.payment') }}'"
|
||||
:token="'{{ csrf_token() }}'"
|
||||
></stripe-subscription>
|
||||
|
||||
<p>{{ trans('settings.subscriptions_upgrade_charge', ['price' => $planInformation['friendlyPrice'], 'date' => $nextTheoriticalBillingDate]) }}</p>
|
||||
<p>{!! trans('settings.subscriptions_upgrade_charge_handled', ['url' => 'https://stripe.com']) !!}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
|
||||
@push('scripts')
|
||||
<script src="https://js.stripe.com/v3/"></script>
|
||||
<script src="{{ asset(mix('js/stripe.js')) }}"></script>
|
||||
@endpush
|
||||
119
resources/views/settings/tags.blade.php
Normal file
119
resources/views/settings/tags.blade.php
Normal file
@@ -0,0 +1,119 @@
|
||||
@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_tags') }}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="{{ Auth::user()->getFluidLayout() }}">
|
||||
<div class="row">
|
||||
|
||||
@include('settings._sidebar')
|
||||
|
||||
<div class="col-12 col-sm-9 tags-list">
|
||||
<div class="br3 ba b--gray-monica bg-white mb4">
|
||||
<div class="pa3 bb b--gray-monica">
|
||||
@if (auth()->user()->account->tags->count() == 0)
|
||||
|
||||
<div class="col-12 col-sm-9 blank-screen">
|
||||
|
||||
<img src="img/settings/tags/tags.png">
|
||||
|
||||
<h2>{{ trans('settings.tags_blank_title') }}</h2>
|
||||
|
||||
<p>{{ trans('settings.tags_blank_description') }}</p>
|
||||
|
||||
</div>
|
||||
|
||||
@else
|
||||
|
||||
<h3 class="with-actions">
|
||||
{{ trans('settings.tags_list_title') }}
|
||||
</h3>
|
||||
|
||||
<p>{{ trans('settings.tags_list_description') }}</p>
|
||||
|
||||
@if (session('success'))
|
||||
<div class="alert alert-success">
|
||||
{{ session('success') }}
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<ul class="table">
|
||||
@foreach (auth()->user()->account->tags as $tag)
|
||||
<li class="table-row" data-tag-id="{{ $tag->id }}">
|
||||
<div class="table-cell fl">
|
||||
<form method="POST" action="{{ route('settings.tags.update', $tag) }}" class="fl edit-tag-form hidden">
|
||||
@method('PUT')
|
||||
@csrf
|
||||
<input name="name" value="{{ $tag->name }}" class="di br2 f5 ba b--black-40 pa2 outline-0 edit-tag-input" />
|
||||
<a class="pointer" html="" onclick="this.parentNode.submit(); return false;">{{ trans('app.save') }}</a>
|
||||
<a class="pointer" html="" onclick="toggleEditInput(this); return false;">{{ trans('app.close') }}</a>
|
||||
</form>
|
||||
<div class="tag-content">
|
||||
<span class="tag-name">{{ $tag->name }}</span>
|
||||
<span class="tags-list-contact-number">({{ trans_choice('settings.tags_list_contact_number', $tag->contacts()->count(), ['count' => $tag->contacts()->count()]) }})</span>
|
||||
<ul>
|
||||
@foreach($tag->contacts as $contact)
|
||||
<li class="di mr1"><a href="people/{{ $contact->hashID() }}">{{ $contact->name }}</a></li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="table-cell actions">
|
||||
<span class="fl edit-icon-btn" onclick="toggleEditInput(this)">
|
||||
<i class="fa fa-pencil pointer" aria-hidden="true"></i>
|
||||
</span>
|
||||
|
||||
<form method="POST" action="{{ route('settings.tags.delete', $tag) }}" class="fl">
|
||||
@method('DELETE')
|
||||
@csrf
|
||||
<confirm message="{{ trans('settings.tags_list_delete_confirmation') }}">
|
||||
<i class="fa fa-trash-o pointer" aria-hidden="true"></i>
|
||||
</confirm>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
<script>
|
||||
function toggleEditInput(editIcon) {
|
||||
let tableRow = editIcon.closest('.table-row');
|
||||
let tagContent = tableRow.querySelector('.tag-content');
|
||||
let editInput = tableRow.querySelector('.edit-tag-form');
|
||||
|
||||
tagContent.classList.toggle('hidden');
|
||||
editInput.classList.toggle('hidden');
|
||||
}
|
||||
</script>
|
||||
75
resources/views/settings/users/accept.blade.php
Normal file
75
resources/views/settings/users/accept.blade.php
Normal 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
|
||||
80
resources/views/settings/users/add.blade.php
Normal file
80
resources/views/settings/users/add.blade.php
Normal 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
|
||||
58
resources/views/settings/users/blank.blade.php
Normal file
58
resources/views/settings/users/blank.blade.php
Normal 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
|
||||
101
resources/views/settings/users/index.blade.php
Normal file
101
resources/views/settings/users/index.blade.php
Normal 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
|
||||
Reference in New Issue
Block a user