Proje dosyaları eklendi
This commit is contained in:
@@ -0,0 +1,4 @@
|
||||
@csrf @if(($method??'POST')!=='POST') @method($method) @endif
|
||||
<div class="mb-3"><label class="form-label" for="name">{{__('projects.project_name')}}</label><input class="form-control @error('name') is-invalid @enderror" id="name" name="name" maxlength="150" required value="{{old('name',$project->name??'')}}">@error('name')<div class="invalid-feedback">{{$message}}</div>@enderror</div>
|
||||
<div class="mb-4"><label class="form-label" for="website_url">{{__('projects.website_url')}}</label><input class="form-control @error('website_url') is-invalid @enderror" id="website_url" name="website_url" maxlength="2048" required placeholder="https://example.com" value="{{old('website_url',$project->url??'')}}"><div class="form-text">{{__('projects.url_help')}}</div>@error('website_url')<div class="invalid-feedback">{{$message}}</div>@enderror</div>
|
||||
<button class="btn btn-primary" type="submit">{{$submit}}</button><a class="btn btn-link" href="{{route('projects.index')}}">{{__('projects.cancel')}}</a>
|
||||
@@ -0,0 +1 @@
|
||||
<x-layouts.app :title="__('projects.new').' — TrafficPumper'"><x-customer-shell><nav aria-label="{{__('projects.breadcrumb')}}"><ol class="breadcrumb"><li class="breadcrumb-item"><a href="{{route('projects.index')}}">{{__('customer.projects')}}</a></li><li class="breadcrumb-item active">{{__('projects.new')}}</li></ol></nav><header class="tp-page-header"><div><p>{{__('customer.rank_tracking')}}</p><h1>{{__('projects.new')}}</h1></div></header><section class="tp-panel tp-form-panel"><form method="POST" action="{{route('projects.store')}}">@include('projects._form',['submit'=>__('projects.create')])</form></section></x-customer-shell></x-layouts.app>
|
||||
@@ -0,0 +1 @@
|
||||
<x-layouts.app :title="__('projects.edit').' — TrafficPumper'"><x-customer-shell><nav aria-label="{{__('projects.breadcrumb')}}"><ol class="breadcrumb"><li class="breadcrumb-item"><a href="{{route('projects.index')}}">{{__('customer.projects')}}</a></li><li class="breadcrumb-item"><a href="{{route('projects.show',$project)}}">{{$project->name}}</a></li><li class="breadcrumb-item active">{{__('projects.edit')}}</li></ol></nav><header class="tp-page-header"><div><p>{{__('customer.rank_tracking')}}</p><h1>{{__('projects.edit')}}</h1></div></header><section class="tp-panel tp-form-panel"><form method="POST" action="{{route('projects.update',$project)}}">@include('projects._form',['submit'=>__('projects.save'),'method'=>'PUT'])</form></section></x-customer-shell></x-layouts.app>
|
||||
@@ -0,0 +1,2 @@
|
||||
<x-layouts.app :title="__('customer.projects').' — TrafficPumper'"><div class="tp-customer-shell"><x-customer-sidebar/><main class="tp-customer-main"><header class="tp-page-header"><div><p>{{ __('customer.rank_tracking') }}</p><h1>{{ __('customer.projects') }}</h1><span>{{ __('projects.intro') }}</span></div><a class="btn btn-primary" href="{{ route('projects.create') }}">+ {{ __('projects.new') }}</a></header>
|
||||
<div class="tp-panel"><ul class="nav nav-pills mb-3"><li class="nav-item"><a class="nav-link {{!$archived?'active':''}}" href="{{route('projects.index')}}">{{__('states.active')}}</a></li><li class="nav-item"><a class="nav-link {{$archived?'active':''}}" href="{{route('projects.index',['filter'=>'archived'])}}">{{__('states.archived')}}</a></li></ul><div class="table-responsive"><table class="table tp-data-table"><thead><tr><th>{{__('projects.name')}}</th><th>{{__('projects.domain')}}</th><th>{{__('customer.tracked_keywords')}}</th><th>{{__('roles.fields.status')}}</th><th class="text-end">{{__('projects.actions')}}</th></tr></thead><tbody>@forelse($projects as $project)<tr><td><a class="fw-semibold" href="{{route('projects.show',$project)}}">{{$project->name}}</a></td><td>{{$project->domain}}</td><td>{{$project->keywords_count}}</td><td><span class="badge text-bg-{{$archived?'secondary':'success'}}">{{$project->status->label()}}</span></td><td class="text-end">@if($archived)<form class="d-inline" method="POST" action="{{route('projects.restore',$project)}}">@csrf<button class="btn btn-sm btn-outline-primary">{{__('projects.restore')}}</button></form>@else<a class="btn btn-sm btn-outline-secondary" href="{{route('projects.edit',$project)}}">{{__('projects.edit')}}</a> <form class="d-inline" method="POST" action="{{route('projects.archive',$project)}}" onsubmit="return confirm('{{__('projects.archive_confirm')}}')">@csrf<button class="btn btn-sm btn-outline-danger">{{__('projects.archive')}}</button></form>@endif</td></tr>@empty<tr><td colspan="5"><x-empty-state :title="__('projects.empty')" :description="__('projects.empty_hint')"/></td></tr>@endforelse</tbody></table></div></div><div>{{$projects->links()}}</div></main></div></x-layouts.app>
|
||||
@@ -0,0 +1,7 @@
|
||||
<x-layouts.app :title="$project->name.' — TrafficPumper'"><x-customer-shell class="tp-project-detail">
|
||||
<nav aria-label="{{ __('projects.breadcrumb') }}"><ol class="breadcrumb"><li class="breadcrumb-item"><a href="{{ route('projects.index') }}">{{ __('customer.projects') }}</a></li><li class="breadcrumb-item active">{{ $project->name }}</li></ol></nav>
|
||||
<header class="tp-page-header"><div><p>{{ __('customer.rank_tracking') }}</p><h1>{{ $project->name }}</h1><span>{{ $project->domain }}</span></div><div class="d-flex flex-wrap gap-2"><span class="badge align-self-center text-bg-{{ $project->status===\App\Enums\ProjectStatus::Active?'success':'secondary' }}">{{ $project->status->label() }}</span>@if($project->status===\App\Enums\ProjectStatus::Active)<a class="btn btn-outline-secondary" href="{{route('projects.edit',$project)}}">{{__('projects.edit')}}</a><form method="POST" action="{{route('projects.archive',$project)}}" onsubmit="return confirm('{{__('projects.archive_confirm')}}')">@csrf<button class="btn btn-outline-danger">{{__('projects.archive')}}</button></form>@else<form method="POST" action="{{route('projects.restore',$project)}}">@csrf<button class="btn btn-primary">{{__('projects.restore')}}</button></form>@endif</div></header>
|
||||
<section class="tp-metric-grid tp-project-metrics"><x-metric-card :label="__('customer.tracked_keywords')" :value="$summary['keywords']" icon="⌕"/><x-metric-card :label="__('projects.last_serp_check')" :value="$summary['last_check']?->diffForHumans()" icon="◷"/><x-metric-card :label="__('customer.average_rank')" :value="$summary['average']" icon="◎"/><x-metric-card :label="__('customer.top10')" :value="$summary['top10']" icon="↗"/><x-metric-card :label="__('customer.rising')" :value="$summary['winners']" icon="↑"/><x-metric-card :label="__('customer.falling')" :value="$summary['losers']" icon="↓"/></section>
|
||||
<div class="tp-two-columns"><section class="tp-panel"><div class="tp-panel-heading"><h2>{{__('projects.details')}}</h2></div><dl class="tp-detail-list"><div><dt>{{__('projects.root_url')}}</dt><dd><a href="{{$project->url}}" rel="noopener noreferrer">{{$project->url}}</a></dd></div><div><dt>{{__('roles.fields.status')}}</dt><dd>{{$project->status->label()}}</dd></div><div><dt>{{__('projects.created')}}</dt><dd>{{$project->created_at->translatedFormat('d M Y H:i')}}</dd></div><div><dt>{{__('projects.updated')}}</dt><dd>{{$project->updated_at->translatedFormat('d M Y H:i')}}</dd></div><div class="tp-technical-detail"><dt>{{__('projects.id')}}</dt><dd><code>{{$project->ulid}}</code></dd></div></dl></section><section class="tp-panel"><div class="tp-panel-heading"><h2>{{__('customer.ranking_performance')}}</h2></div>@if($summary['average']===null)<x-empty-state :title="__('customer.no_rank_data')" :description="__('customer.after_first_check')"/>@else<div class="tp-rank-bars"><div><span>{{__('customer.average_rank')}}</span><i style="--rank:{{min($summary['average'],100)}}"></i><strong>#{{$summary['average']}}</strong></div></div>@endif</section></div>
|
||||
<section class="tp-panel"><div class="tp-panel-heading"><h2>{{__('customer.keywords')}}</h2><div class="d-flex gap-2"><a class="btn btn-sm btn-outline-secondary" href="{{route('keywords.index',['project'=>$project->ulid])}}">{{__('keywords.view_all')}}</a><a class="btn btn-sm btn-primary" href="{{route('keywords.create',['project'=>$project->ulid])}}">+ {{__('projects.add_keyword')}}</a></div></div>@if($project->keywords->isEmpty())<x-empty-state :title="__('customer.no_keywords')" :description="__('customer.add_keyword_hint')"/>@else<div class="table-responsive"><table class="table tp-data-table"><thead><tr><th>{{__('customer.keyword')}}</th><th>{{__('customer.target')}}</th><th>{{__('roles.fields.status')}}</th></tr></thead><tbody>@foreach($project->keywords as $keyword)<tr><td><a href="{{route('keywords.show',$keyword)}}">{{$keyword->phrase}}</a></td><td>{{$keyword->search_engine->label()}} · {{$keyword->device->label()}}</td><td>{{$keyword->status->label()}}</td></tr>@endforeach</tbody></table></div>@endif</section>
|
||||
</x-customer-shell></x-layouts.app>
|
||||
Reference in New Issue
Block a user