Compare commits
38
Commits
ba9be40c78
..
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5613ead566 | ||
|
|
4cdf11be3d
|
||
|
|
0fc181bf12
|
||
|
|
059d2b9d66
|
||
|
|
136451dc5a
|
||
|
|
1ee453dcfe
|
||
|
|
2a26008e87
|
||
|
|
031aa196d1
|
||
|
|
c3b9fa56fb
|
||
|
|
0922ee217f
|
||
|
|
7a1b9ecda1
|
||
|
|
5f0958f42e
|
||
|
|
db0dce27b4
|
||
|
|
754a67c5d0
|
||
|
|
ace4c69bd8
|
||
|
|
42d8728b1b
|
||
|
|
efab6d8eed
|
||
|
|
aa03855bb3
|
||
|
|
7fd3a0d45c
|
||
|
|
506f403a00
|
||
|
|
b8efe490a7
|
||
|
|
e11815b795
|
||
|
|
d925928ea9
|
||
|
|
0d08276d44
|
||
|
|
54a2d84a00
|
||
|
|
a70e09bddc
|
||
|
|
6e8b708749
|
||
|
|
4a4d6d3bdf
|
||
|
|
2e7318c097
|
||
|
|
e2f5d155ff
|
||
|
|
d4ae9e0e43 | ||
|
|
53bae19d3e | ||
|
|
caa6ecc2bf | ||
|
|
c2266f2a67 | ||
|
|
0e98d67c49 | ||
|
|
17e84ae0a3 | ||
|
|
907a41e057 | ||
|
|
417ce35fc8 |
@@ -9,6 +9,6 @@ abstract class Controller extends BaseController
|
|||||||
{
|
{
|
||||||
public function __construct()
|
public function __construct()
|
||||||
{
|
{
|
||||||
Config::set('breadcrumbs.view', 'breadcrumbs::bootstrap4');
|
Config::set('breadcrumbs.view', 'breadcrumbs.admin');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,6 +11,9 @@ use App\Services\Search\CreateSearchInstanceCommand;
|
|||||||
use App\Dto\Builder\DocumentationCategory as DocumentationCategoryBuilderDto;
|
use App\Dto\Builder\DocumentationCategory as DocumentationCategoryBuilderDto;
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
use Illuminate\Database\Eloquent\Builder;
|
||||||
use Illuminate\Database\Eloquent\Relations\HasOne;
|
use Illuminate\Database\Eloquent\Relations\HasOne;
|
||||||
|
use Illuminate\Support\Collection;
|
||||||
|
use Illuminate\Support\Facades\Cache;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
use Illuminate\Support\Str;
|
use Illuminate\Support\Str;
|
||||||
|
|
||||||
final readonly class DocumentationCategoryRepository
|
final readonly class DocumentationCategoryRepository
|
||||||
@@ -93,4 +96,52 @@ final readonly class DocumentationCategoryRepository
|
|||||||
->pluck('title', 'id')
|
->pluck('title', 'id')
|
||||||
->toArray();
|
->toArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getPathFromRoot(int $categoryId, ?ProjectLanguage $projectLanguage): Collection
|
||||||
|
{
|
||||||
|
$seconds = 3600;
|
||||||
|
return Cache::remember(self::class . $categoryId . '_' . $projectLanguage->id ?? 0, $seconds, function () use ($categoryId, $projectLanguage) {
|
||||||
|
$rows = DB::select(
|
||||||
|
<<<SQL
|
||||||
|
WITH RECURSIVE chain AS (
|
||||||
|
SELECT id, parent_id, 0 AS depth
|
||||||
|
FROM documentation_categories
|
||||||
|
WHERE id = ?
|
||||||
|
|
||||||
|
UNION ALL
|
||||||
|
|
||||||
|
SELECT dc.id, dc.parent_id, chain.depth + 1 AS depth
|
||||||
|
FROM documentation_categories dc
|
||||||
|
INNER JOIN chain ON chain.parent_id = dc.id
|
||||||
|
)
|
||||||
|
SELECT id, depth
|
||||||
|
FROM chain
|
||||||
|
ORDER BY depth DESC
|
||||||
|
SQL,
|
||||||
|
[$categoryId]
|
||||||
|
);
|
||||||
|
|
||||||
|
$idsInOrder = collect($rows)->pluck('id')->all();
|
||||||
|
|
||||||
|
$with = [
|
||||||
|
'content' => function (HasOne $hasOne) use ($projectLanguage) {
|
||||||
|
/** @var ?ProjectLanguage $projectLanguage */
|
||||||
|
$hasOne->when($projectLanguage, function (Builder $query, ProjectLanguage $projectLanguage) {
|
||||||
|
$query->where('language_id', $projectLanguage->id);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
$categories = DocumentationCategory::query()
|
||||||
|
->whereIn('id', $idsInOrder)
|
||||||
|
->with($with)
|
||||||
|
->get()
|
||||||
|
->keyBy('id');
|
||||||
|
|
||||||
|
return collect($idsInOrder)
|
||||||
|
->map(fn (int $id) => $categories->get($id))
|
||||||
|
->filter()
|
||||||
|
->values();
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ use App\ServiceResults\ServiceResultArray;
|
|||||||
use App\ServiceResults\ServiceResultError;
|
use App\ServiceResults\ServiceResultError;
|
||||||
use App\ServiceResults\ServiceResultSuccess;
|
use App\ServiceResults\ServiceResultSuccess;
|
||||||
use App\ServiceResults\StoreUpdateResult;
|
use App\ServiceResults\StoreUpdateResult;
|
||||||
|
use App\Services\ClearCacheCommandHandler;
|
||||||
use App\Services\DocumentationCategory\DocumentationCategoryCommandHandler;
|
use App\Services\DocumentationCategory\DocumentationCategoryCommandHandler;
|
||||||
use App\Services\DocumentationCategoryContent\ModelSyncCommand;
|
use App\Services\DocumentationCategoryContent\ModelSyncCommand;
|
||||||
use App\Services\Service;
|
use App\Services\Service;
|
||||||
@@ -34,6 +35,7 @@ final class DocumentationCategoryService extends Service
|
|||||||
private readonly DocumentationCategoryRepository $documentationCategoryRepository,
|
private readonly DocumentationCategoryRepository $documentationCategoryRepository,
|
||||||
private readonly DocumentationCategoryCommandHandler $categoryCommandHandler,
|
private readonly DocumentationCategoryCommandHandler $categoryCommandHandler,
|
||||||
private readonly ModelSyncCommand $contentSaveCommand,
|
private readonly ModelSyncCommand $contentSaveCommand,
|
||||||
|
private readonly ClearCacheCommandHandler $clearCacheCommandHandler,
|
||||||
) { }
|
) { }
|
||||||
|
|
||||||
public function index(int $projectId, int $versionId, DocumentationCategoryBuilderDto $documentationCategoryBuilderDto, QuerySettingsDto $querySettingsDto, User $user): ServiceResultError | ServiceResultArray
|
public function index(int $projectId, int $versionId, DocumentationCategoryBuilderDto $documentationCategoryBuilderDto, QuerySettingsDto $querySettingsDto, User $user): ServiceResultError | ServiceResultArray
|
||||||
@@ -89,8 +91,10 @@ final class DocumentationCategoryService extends Service
|
|||||||
|
|
||||||
$defaultLanguage = $project->languages->where('is_default', 1)->first();
|
$defaultLanguage = $project->languages->where('is_default', 1)->first();
|
||||||
$category = new DocumentationCategory();
|
$category = new DocumentationCategory();
|
||||||
|
$categoryPath = null;
|
||||||
if ($parentId !== null) {
|
if ($parentId !== null) {
|
||||||
$category->parent_id = $parentId;
|
$category->parent_id = $parentId;
|
||||||
|
$categoryPath = $this->documentationCategoryRepository->getPathFromRoot($parentId, $defaultLanguage);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->result([
|
return $this->result([
|
||||||
@@ -99,6 +103,7 @@ final class DocumentationCategoryService extends Service
|
|||||||
'category' => $category,
|
'category' => $category,
|
||||||
'categories' => $this->documentationCategoryRepository->getForSelect($version, $defaultLanguage),
|
'categories' => $this->documentationCategoryRepository->getForSelect($version, $defaultLanguage),
|
||||||
'serviceTranslationEnable' => config('translation_service.enable', false),
|
'serviceTranslationEnable' => config('translation_service.enable', false),
|
||||||
|
'categoryPath' => $categoryPath,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -119,17 +124,20 @@ final class DocumentationCategoryService extends Service
|
|||||||
return $this->errFobidden(__('Access is denied'));
|
return $this->errFobidden(__('Access is denied'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$defaultLanguage = $project->languages->where('is_default', 1)->first();
|
||||||
$withCategories = [];
|
$withCategories = [];
|
||||||
|
$categoryPath = null;
|
||||||
if ($category->parent_id) {
|
if ($category->parent_id) {
|
||||||
$withCategories[] = $category->parent_id;
|
$withCategories[] = $category->parent_id;
|
||||||
|
$categoryPath = $this->documentationCategoryRepository->getPathFromRoot($category->parent_id, $defaultLanguage);
|
||||||
}
|
}
|
||||||
$defaultLanguage = $project->languages->where('is_default', 1)->first();
|
|
||||||
return $this->result([
|
return $this->result([
|
||||||
'version' => $version,
|
'version' => $version,
|
||||||
'project' => $project,
|
'project' => $project,
|
||||||
'category' => $category,
|
'category' => $category,
|
||||||
'categories' => $this->documentationCategoryRepository->getForSelect($version, $defaultLanguage, $category, $withCategories),
|
'categories' => $this->documentationCategoryRepository->getForSelect($version, $defaultLanguage, $category, $withCategories),
|
||||||
'serviceTranslationEnable' => config('translation_service.enable', false),
|
'serviceTranslationEnable' => config('translation_service.enable', false),
|
||||||
|
'categoryPath' => $categoryPath,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -165,6 +173,8 @@ final class DocumentationCategoryService extends Service
|
|||||||
if (\config('translation_service.enable', false)) {
|
if (\config('translation_service.enable', false)) {
|
||||||
$this->translateContent($category, $data->getContents());
|
$this->translateContent($category, $data->getContents());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$this->clearCacheCommandHandler->all();
|
||||||
} catch (ServiceException $e) {
|
} catch (ServiceException $e) {
|
||||||
return $e->getServiceResultError();
|
return $e->getServiceResultError();
|
||||||
} catch (\Throwable $e) {
|
} catch (\Throwable $e) {
|
||||||
@@ -219,6 +229,8 @@ final class DocumentationCategoryService extends Service
|
|||||||
if (\config('translation_service.enable', false)) {
|
if (\config('translation_service.enable', false)) {
|
||||||
$this->translateContent($category, $data->getContents());
|
$this->translateContent($category, $data->getContents());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$this->clearCacheCommandHandler->all();
|
||||||
} catch (ServiceException $e) {
|
} catch (ServiceException $e) {
|
||||||
return $e->getServiceResultError();
|
return $e->getServiceResultError();
|
||||||
} catch (ParentException $e) {
|
} catch (ParentException $e) {
|
||||||
@@ -255,6 +267,8 @@ final class DocumentationCategoryService extends Service
|
|||||||
DB::transaction(function () use ($category) {
|
DB::transaction(function () use ($category) {
|
||||||
$this->categoryCommandHandler->handleDestroy($category);
|
$this->categoryCommandHandler->handleDestroy($category);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$this->clearCacheCommandHandler->all();
|
||||||
} catch (\Throwable $e) {
|
} catch (\Throwable $e) {
|
||||||
report($e);
|
report($e);
|
||||||
return $this->errService(__('Server Error'));
|
return $this->errService(__('Server Error'));
|
||||||
|
|||||||
@@ -87,18 +87,21 @@ final class DocumentationService extends Service
|
|||||||
return $this->errFobidden(__('Access is denied'));
|
return $this->errFobidden(__('Access is denied'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$defaultLanguage = $project->languages->where('is_default', 1)->first();
|
||||||
$documentation = new Documentation();
|
$documentation = new Documentation();
|
||||||
|
$categoryPath = null;
|
||||||
if ($categoryId !== null) {
|
if ($categoryId !== null) {
|
||||||
$documentation->category_id = $categoryId;
|
$documentation->category_id = $categoryId;
|
||||||
|
$categoryPath = $this->documentationCategoryRepository->getPathFromRoot($categoryId, $defaultLanguage);
|
||||||
}
|
}
|
||||||
|
|
||||||
$defaultLanguage = $project->languages->where('is_default', 1)->first();
|
|
||||||
return $this->result([
|
return $this->result([
|
||||||
'version' => $version,
|
'version' => $version,
|
||||||
'project' => $project,
|
'project' => $project,
|
||||||
'documentation' => $documentation,
|
'documentation' => $documentation,
|
||||||
'categories' => $this->documentationCategoryRepository->getForSelect($version, $defaultLanguage),
|
'categories' => $this->documentationCategoryRepository->getForSelect($version, $defaultLanguage),
|
||||||
'serviceTranslationEnable' => config('translation_service.enable', false),
|
'serviceTranslationEnable' => config('translation_service.enable', false),
|
||||||
|
'categoryPath' => $categoryPath,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -119,17 +122,20 @@ final class DocumentationService extends Service
|
|||||||
return $this->errFobidden(__('Access is denied'));
|
return $this->errFobidden(__('Access is denied'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$defaultLanguage = $project->languages->where('is_default', 1)->first();
|
||||||
$withCategories = [];
|
$withCategories = [];
|
||||||
|
$categoryPath = null;
|
||||||
if ($documentation->category_id) {
|
if ($documentation->category_id) {
|
||||||
$withCategories[] = $documentation->category_id;
|
$withCategories[] = $documentation->category_id;
|
||||||
|
$categoryPath = $this->documentationCategoryRepository->getPathFromRoot($documentation->category_id, $defaultLanguage);
|
||||||
}
|
}
|
||||||
$defaultLanguage = $project->languages->where('is_default', 1)->first();
|
|
||||||
return $this->result([
|
return $this->result([
|
||||||
'version' => $version,
|
'version' => $version,
|
||||||
'project' => $project,
|
'project' => $project,
|
||||||
'documentation' => $documentation,
|
'documentation' => $documentation,
|
||||||
'categories' => $this->documentationCategoryRepository->getForSelect($version, $defaultLanguage, null, $withCategories),
|
'categories' => $this->documentationCategoryRepository->getForSelect($version, $defaultLanguage, null, $withCategories),
|
||||||
'serviceTranslationEnable' => config('translation_service.enable', false),
|
'serviceTranslationEnable' => config('translation_service.enable', false),
|
||||||
|
'categoryPath' => $categoryPath,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -80,7 +80,10 @@ final class DocumentationVersionService extends Service
|
|||||||
return $this->errFobidden(__('Access is denied'));
|
return $this->errFobidden(__('Access is denied'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$defaultLanguage = $project->languages()->where('is_default', 1)->first();
|
||||||
|
|
||||||
$category = null;
|
$category = null;
|
||||||
|
$categoryPath = null;
|
||||||
if (!\is_null($categoryId)) {
|
if (!\is_null($categoryId)) {
|
||||||
$category = $this->documentationCategoryRepository->getCategoryById($categoryId);
|
$category = $this->documentationCategoryRepository->getCategoryById($categoryId);
|
||||||
if (\is_null($category) || $category->version_id !== $version->id) {
|
if (\is_null($category) || $category->version_id !== $version->id) {
|
||||||
@@ -89,9 +92,9 @@ final class DocumentationVersionService extends Service
|
|||||||
if ($user->cannot('view', $category)) {
|
if ($user->cannot('view', $category)) {
|
||||||
return $this->errFobidden(__('Access is denied'));
|
return $this->errFobidden(__('Access is denied'));
|
||||||
}
|
}
|
||||||
|
$categoryPath = $this->documentationCategoryRepository->getPathFromRoot($category->id, $defaultLanguage);
|
||||||
}
|
}
|
||||||
|
|
||||||
$defaultLanguage = $project->languages()->where('is_default', 1)->first();
|
|
||||||
$with = [
|
$with = [
|
||||||
'content' => function (HasOne $hasOne) use ($defaultLanguage) {
|
'content' => function (HasOne $hasOne) use ($defaultLanguage) {
|
||||||
/** @var ?ProjectLanguage $defaultLanguage */
|
/** @var ?ProjectLanguage $defaultLanguage */
|
||||||
@@ -120,6 +123,7 @@ final class DocumentationVersionService extends Service
|
|||||||
'project' => $project,
|
'project' => $project,
|
||||||
|
|
||||||
'category' => $category,
|
'category' => $category,
|
||||||
|
'categoryPath' => $categoryPath,
|
||||||
'categories' => $categories,
|
'categories' => $categories,
|
||||||
'documentations' => $documents,
|
'documentations' => $documents,
|
||||||
]);
|
]);
|
||||||
|
|||||||
@@ -77,10 +77,16 @@ final class DocumentationService extends Service
|
|||||||
return $this->errFobidden(__('Access is denied'));
|
return $this->errFobidden(__('Access is denied'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$categoryPath = null;
|
||||||
|
if ($category->parent_id) {
|
||||||
|
$categoryPath = $this->documentationCategoryRepository->getPathFromRoot($category->parent_id, $documentation->getWebsiteTranslations()->getLanguage());
|
||||||
|
}
|
||||||
|
|
||||||
$data = array_merge($documentation->toArray(), [
|
$data = array_merge($documentation->toArray(), [
|
||||||
'category' => $category,
|
'category' => $category,
|
||||||
'categories' => $this->getCategories($documentation, $category->id),
|
'categories' => $this->getCategories($documentation, $category->id),
|
||||||
'documentations' => $this->getDocumentations($documentation, $category->id),
|
'documentations' => $this->getDocumentations($documentation, $category->id),
|
||||||
|
'categoryPath' => $categoryPath,
|
||||||
]);
|
]);
|
||||||
return $this->resultSitePage($documentation->getProject(), $documentation->getWebsiteTranslations(), $data, \is_null($category->content?->title));
|
return $this->resultSitePage($documentation->getProject(), $documentation->getWebsiteTranslations(), $data, \is_null($category->content?->title));
|
||||||
}
|
}
|
||||||
@@ -98,8 +104,14 @@ final class DocumentationService extends Service
|
|||||||
return $this->errFobidden(__('Access is denied'));
|
return $this->errFobidden(__('Access is denied'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$categoryPath = null;
|
||||||
|
if ($document->category_id) {
|
||||||
|
$categoryPath = $this->documentationCategoryRepository->getPathFromRoot($document->category_id, $documentation->getWebsiteTranslations()->getLanguage());
|
||||||
|
}
|
||||||
|
|
||||||
$data = array_merge($documentation->toArray(), [
|
$data = array_merge($documentation->toArray(), [
|
||||||
'documentation' => $document,
|
'documentation' => $document,
|
||||||
|
'categoryPath' => $categoryPath,
|
||||||
]);
|
]);
|
||||||
return $this->resultSitePage($documentation->getProject(), $documentation->getWebsiteTranslations(), $data, \is_null($document->content?->title));
|
return $this->resultSitePage($documentation->getProject(), $documentation->getWebsiteTranslations(), $data, \is_null($document->content?->title));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,5 +3,260 @@
|
|||||||
use Diglactic\Breadcrumbs\Breadcrumbs;
|
use Diglactic\Breadcrumbs\Breadcrumbs;
|
||||||
|
|
||||||
Breadcrumbs::for('admin.home', function ($trail) {
|
Breadcrumbs::for('admin.home', function ($trail) {
|
||||||
$trail->push(__('Home'), route('admin.home'));
|
$trail->push(__('Home'), route('admin.home'), ['icon' => '<svg class="icon icon-xxs" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6"></path></svg>']);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Roles
|
||||||
|
Breadcrumbs::for('admin.roles.index', function ($trail) {
|
||||||
|
$trail->parent('admin.home');
|
||||||
|
|
||||||
|
$trail->push(__('admin-sections.User group'), route('admin.roles.index'));
|
||||||
|
});
|
||||||
|
|
||||||
|
Breadcrumbs::for('admin.roles.create', function ($trail) {
|
||||||
|
$trail->parent('admin.roles.index');
|
||||||
|
|
||||||
|
$trail->push(__('Create'), route('admin.roles.create'));
|
||||||
|
});
|
||||||
|
|
||||||
|
Breadcrumbs::for('admin.roles.edit', function ($trail, \App\Models\Role $role) {
|
||||||
|
$trail->parent('admin.roles.index');
|
||||||
|
|
||||||
|
$trail->push(__('Edit'), route('admin.roles.edit', $role));
|
||||||
|
});
|
||||||
|
// End Roles
|
||||||
|
|
||||||
|
// Users
|
||||||
|
Breadcrumbs::for('admin.users.index', function ($trail) {
|
||||||
|
$trail->parent('admin.home');
|
||||||
|
|
||||||
|
$trail->push(__('admin-sections.Users'), route('admin.users.index'));
|
||||||
|
});
|
||||||
|
|
||||||
|
Breadcrumbs::for('admin.users.create', function ($trail) {
|
||||||
|
$trail->parent('admin.users.index');
|
||||||
|
|
||||||
|
$trail->push(__('Create'), route('admin.users.create'));
|
||||||
|
});
|
||||||
|
|
||||||
|
Breadcrumbs::for('admin.users.edit', function ($trail, \App\Models\User $user) {
|
||||||
|
$trail->parent('admin.users.index');
|
||||||
|
|
||||||
|
$trail->push(__('Edit'), route('admin.users.edit', $user));
|
||||||
|
});
|
||||||
|
// End Users
|
||||||
|
|
||||||
|
Breadcrumbs::for('admin.feedbacks.index', function ($trail) {
|
||||||
|
$trail->parent('admin.home');
|
||||||
|
|
||||||
|
$trail->push(__('admin-sections.Feedback'), route('admin.feedbacks.index'));
|
||||||
|
});
|
||||||
|
|
||||||
|
// Projects
|
||||||
|
Breadcrumbs::for('admin.projects.index', function ($trail) {
|
||||||
|
$trail->parent('admin.home');
|
||||||
|
|
||||||
|
$trail->push(__('admin-sections.Projects'), route('admin.projects.index'));
|
||||||
|
});
|
||||||
|
|
||||||
|
Breadcrumbs::for('admin.projects.create', function ($trail) {
|
||||||
|
$trail->parent('admin.projects.index');
|
||||||
|
|
||||||
|
$trail->push(__('Create'), route('admin.projects.create'));
|
||||||
|
});
|
||||||
|
|
||||||
|
Breadcrumbs::for('admin.projects.edit', function ($trail, \App\Models\Project $project) {
|
||||||
|
$trail->parent('admin.projects.index');
|
||||||
|
|
||||||
|
$trail->push(__('Edit'), route('admin.projects.edit', $project));
|
||||||
|
});
|
||||||
|
|
||||||
|
Breadcrumbs::for('admin.projects.show', function ($trail, \App\Models\Project $project) {
|
||||||
|
$trail->parent('admin.projects.index');
|
||||||
|
|
||||||
|
$trail->push($project->name, route('admin.projects.show', $project));
|
||||||
|
});
|
||||||
|
|
||||||
|
Breadcrumbs::for('admin.projects.feedbacks.index', function ($trail, \App\Models\Project $project) {
|
||||||
|
$trail->parent('admin.projects.show', $project);
|
||||||
|
|
||||||
|
$trail->push(__('admin-sections.Feedback'), route('admin.projects.feedbacks.index', $project));
|
||||||
|
});
|
||||||
|
// End Projects
|
||||||
|
|
||||||
|
// Projects translations
|
||||||
|
Breadcrumbs::for('admin.projects.translations.languages', function ($trail, \App\Models\Project $project) {
|
||||||
|
$trail->parent('admin.projects.show', $project);
|
||||||
|
|
||||||
|
$trail->push(__('admin-sections.Translations'), route('admin.projects.translations.languages', $project));
|
||||||
|
});
|
||||||
|
|
||||||
|
Breadcrumbs::for('admin.projects.translations.edit', function ($trail, \App\Models\Project $project, \App\Models\ProjectLanguage $language) {
|
||||||
|
$trail->parent('admin.projects.translations.languages', $project);
|
||||||
|
|
||||||
|
$trail->push($language->title, route('admin.projects.translations.edit', ['project' => $project->id, 'language' => $language->id]));
|
||||||
|
});
|
||||||
|
|
||||||
|
Breadcrumbs::for('admin.projects.service-translate.view', function ($trail, \App\Models\Project $project) {
|
||||||
|
$trail->parent('admin.projects.show', $project);
|
||||||
|
|
||||||
|
$trail->push(__('admin-sections.Setting up automatic translation'), route('admin.projects.service-translate.view', $project));
|
||||||
|
});
|
||||||
|
// End Projects translations
|
||||||
|
|
||||||
|
// Projects links
|
||||||
|
Breadcrumbs::for('admin.projects.links.index', function ($trail, \App\Models\Project $project) {
|
||||||
|
$trail->parent('admin.projects.show', $project);
|
||||||
|
|
||||||
|
$trail->push(__('admin-sections.Links project'), route('admin.projects.links.index', $project));
|
||||||
|
});
|
||||||
|
|
||||||
|
Breadcrumbs::for('admin.projects.links.create', function ($trail, \App\Models\Project $project) {
|
||||||
|
$trail->parent('admin.projects.links.index', $project);
|
||||||
|
|
||||||
|
$trail->push(__('Create'), route('admin.projects.links.create', $project));
|
||||||
|
});
|
||||||
|
|
||||||
|
Breadcrumbs::for('admin.projects.links.edit', function ($trail, \App\Models\Project $project, \App\Models\ProjectLink $link) {
|
||||||
|
$trail->parent('admin.projects.links.index', $project);
|
||||||
|
|
||||||
|
$trail->push(__('Edit'), route('admin.projects.links.edit', ['project' => $project->id, 'link' => $link->id]));
|
||||||
|
});
|
||||||
|
// End Projects links
|
||||||
|
|
||||||
|
// Projects about
|
||||||
|
Breadcrumbs::for('admin.projects.about.languages', function ($trail, \App\Models\Project $project) {
|
||||||
|
$trail->parent('admin.projects.show', $project);
|
||||||
|
|
||||||
|
$trail->push(__('admin-sections.About project'), route('admin.projects.about.languages', $project));
|
||||||
|
});
|
||||||
|
|
||||||
|
Breadcrumbs::for('admin.projects.about.edit', function ($trail, \App\Models\Project $project, \App\Models\ProjectLanguage $language) {
|
||||||
|
$trail->parent('admin.projects.about.languages', $project);
|
||||||
|
|
||||||
|
$trail->push($language->title, route('admin.projects.about.edit', ['project' => $project->id, 'language' => $language->id]));
|
||||||
|
});
|
||||||
|
// End Projects about
|
||||||
|
|
||||||
|
// Projects documentation-versions
|
||||||
|
Breadcrumbs::for('admin.projects.documentation-versions.index', function ($trail, \App\Models\Project $project) {
|
||||||
|
$trail->parent('admin.projects.show', $project);
|
||||||
|
|
||||||
|
$trail->push(__('admin-sections.Documentation version'), route('admin.projects.documentation-versions.index', $project));
|
||||||
|
});
|
||||||
|
|
||||||
|
Breadcrumbs::for('admin.projects.documentation-versions.create', function ($trail, \App\Models\Project $project) {
|
||||||
|
$trail->parent('admin.projects.documentation-versions.index', $project);
|
||||||
|
|
||||||
|
$trail->push(__('Create'), route('admin.projects.documentation-versions.create', $project));
|
||||||
|
});
|
||||||
|
|
||||||
|
Breadcrumbs::for('admin.projects.documentation-versions.edit', function ($trail, \App\Models\Project $project, \App\Models\DocumentationVersion $version) {
|
||||||
|
$trail->parent('admin.projects.documentation-versions.index', $project);
|
||||||
|
|
||||||
|
$trail->push(__('Edit'), route('admin.projects.documentation-versions.edit', ['project' => $project->id, 'documentation_version' => $version->id]));
|
||||||
|
});
|
||||||
|
|
||||||
|
Breadcrumbs::for('admin.projects.documentation-versions.show', function ($trail, \App\Models\Project $project, \App\Models\DocumentationVersion $version) {
|
||||||
|
$trail->parent('admin.projects.documentation-versions.index', $project);
|
||||||
|
|
||||||
|
$trail->push($version->title, route('admin.projects.documentation-versions.show', ['project' => $project->id, 'documentation_version' => $version->id]));
|
||||||
|
});
|
||||||
|
|
||||||
|
Breadcrumbs::for('admin.projects.documentation-versions.category-path', function ($trail, \App\Models\Project $project, \App\Models\DocumentationVersion $version, \Illuminate\Support\Collection $categoryPath) {
|
||||||
|
$trail->parent('admin.projects.documentation-versions.show', $project, $version);
|
||||||
|
|
||||||
|
foreach ($categoryPath as $pathItem) {
|
||||||
|
$trail->push(
|
||||||
|
$pathItem->content->title,
|
||||||
|
route('admin.projects.documentation-versions.category.show', [
|
||||||
|
'project' => $project->id,
|
||||||
|
'version' => $version->id,
|
||||||
|
'category' => $pathItem->id,
|
||||||
|
])
|
||||||
|
);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
Breadcrumbs::for('admin.projects.documentation-versions.show.category', function ($trail, \App\Models\Project $project, \App\Models\DocumentationVersion $version, \App\Models\DocumentationCategory $category, ?\Illuminate\Support\Collection $categoryPath) {
|
||||||
|
$path = $categoryPath ?? collect([$category]);
|
||||||
|
|
||||||
|
$trail->parent('admin.projects.documentation-versions.category-path', $project, $version, $path);
|
||||||
|
});
|
||||||
|
// End Projects documentation-versions
|
||||||
|
|
||||||
|
// Projects documentation-versions documentations
|
||||||
|
Breadcrumbs::for('admin.projects.documentation-versions.documentations.index', function ($trail, \App\Models\Project $project, \App\Models\DocumentationVersion $version) {
|
||||||
|
$trail->parent('admin.projects.documentation-versions.show', $project, $version);
|
||||||
|
|
||||||
|
$trail->push(__('admin-sections.Documentation'), route('admin.projects.documentation-versions.documentations.index', ['project' => $project->id, 'version' => $version->id]));
|
||||||
|
});
|
||||||
|
|
||||||
|
Breadcrumbs::for('admin.projects.documentation-versions.documentations.create', function ($trail, \App\Models\Project $project, \App\Models\DocumentationVersion $version) {
|
||||||
|
$trail->parent('admin.projects.documentation-versions.documentations.index', $project, $version);
|
||||||
|
|
||||||
|
$trail->push(__('Create'), route('admin.projects.documentation-versions.documentations.create', ['project' => $project->id, 'version' => $version->id]));
|
||||||
|
});
|
||||||
|
|
||||||
|
Breadcrumbs::for('admin.projects.documentation-versions.category-path.documentations', function ($trail, \App\Models\Project $project, \App\Models\DocumentationVersion $version, \Illuminate\Support\Collection $categoryPath) {
|
||||||
|
$trail->parent('admin.projects.documentation-versions.category-path', $project, $version, $categoryPath);
|
||||||
|
|
||||||
|
$trail->push(__('admin-sections.Documentation'), route('admin.projects.documentation-versions.documentations.index', ['project' => $project->id, 'version' => $version->id]));
|
||||||
|
});
|
||||||
|
|
||||||
|
Breadcrumbs::for('admin.projects.documentation-versions.category-path.documentations.create', function ($trail, \App\Models\Project $project, \App\Models\DocumentationVersion $version, \Illuminate\Support\Collection $categoryPath) {
|
||||||
|
$trail->parent('admin.projects.documentation-versions.category-path.documentations', $project, $version, $categoryPath);
|
||||||
|
|
||||||
|
$trail->push(__('Create'), route('admin.projects.documentation-versions.documentations.create', ['project' => $project->id, 'version' => $version->id]));
|
||||||
|
});
|
||||||
|
|
||||||
|
Breadcrumbs::for('admin.projects.documentation-versions.documentations.edit', function ($trail, \App\Models\Project $project, \App\Models\DocumentationVersion $version, \App\Models\Documentation $documentation) {
|
||||||
|
$trail->parent('admin.projects.documentation-versions.documentations.index', $project, $version);
|
||||||
|
|
||||||
|
$trail->push(__('Edit'), route('admin.projects.documentation-versions.documentations.edit', ['project' => $project->id, 'version' => $version->id, 'documentation' => $documentation->id]));
|
||||||
|
});
|
||||||
|
|
||||||
|
Breadcrumbs::for('admin.projects.documentation-versions.category-path.documentations.edit', function ($trail, \App\Models\Project $project, \App\Models\DocumentationVersion $version, \App\Models\Documentation $documentation, \Illuminate\Support\Collection $categoryPath) {
|
||||||
|
$trail->parent('admin.projects.documentation-versions.category-path.documentations', $project, $version, $categoryPath);
|
||||||
|
|
||||||
|
$trail->push(__('Edit'), route('admin.projects.documentation-versions.documentations.edit', ['project' => $project->id, 'version' => $version->id, 'documentation' => $documentation->id]));
|
||||||
|
});
|
||||||
|
// End Projects documentation-versions documentations
|
||||||
|
|
||||||
|
// Projects documentation-versions categories
|
||||||
|
Breadcrumbs::for('admin.projects.documentation-versions.categories.index', function ($trail, \App\Models\Project $project, \App\Models\DocumentationVersion $version) {
|
||||||
|
$trail->parent('admin.projects.documentation-versions.show', $project, $version);
|
||||||
|
|
||||||
|
$trail->push(__('admin-sections.Categories'), route('admin.projects.documentation-versions.categories.index', ['project' => $project->id, 'version' => $version->id]));
|
||||||
|
});
|
||||||
|
|
||||||
|
Breadcrumbs::for('admin.projects.documentation-versions.categories.create', function ($trail, \App\Models\Project $project, \App\Models\DocumentationVersion $version) {
|
||||||
|
$trail->parent('admin.projects.documentation-versions.categories.index', $project, $version);
|
||||||
|
|
||||||
|
$trail->push(__('Create'), route('admin.projects.documentation-versions.categories.create', ['project' => $project->id, 'version' => $version->id]));
|
||||||
|
});
|
||||||
|
|
||||||
|
Breadcrumbs::for('admin.projects.documentation-versions.category-path.categories', function ($trail, \App\Models\Project $project, \App\Models\DocumentationVersion $version, \Illuminate\Support\Collection $categoryPath) {
|
||||||
|
$trail->parent('admin.projects.documentation-versions.category-path', $project, $version, $categoryPath);
|
||||||
|
|
||||||
|
$trail->push(__('admin-sections.Categories'), route('admin.projects.documentation-versions.categories.index', ['project' => $project->id, 'version' => $version->id]));
|
||||||
|
});
|
||||||
|
|
||||||
|
Breadcrumbs::for('admin.projects.documentation-versions.category-path.categories.create', function ($trail, \App\Models\Project $project, \App\Models\DocumentationVersion $version, \Illuminate\Support\Collection $categoryPath) {
|
||||||
|
$trail->parent('admin.projects.documentation-versions.category-path.categories', $project, $version, $categoryPath);
|
||||||
|
|
||||||
|
$trail->push(__('Create'), route('admin.projects.documentation-versions.categories.create', ['project' => $project->id, 'version' => $version->id]));
|
||||||
|
});
|
||||||
|
|
||||||
|
Breadcrumbs::for('admin.projects.documentation-versions.categories.edit', function ($trail, \App\Models\Project $project, \App\Models\DocumentationVersion $version, \App\Models\DocumentationCategory $category) {
|
||||||
|
$trail->parent('admin.projects.documentation-versions.categories.index', $project, $version);
|
||||||
|
|
||||||
|
$trail->push(__('Edit'), route('admin.projects.documentation-versions.categories.edit', ['project' => $project->id, 'version' => $version->id, 'category' => $category->id]));
|
||||||
|
});
|
||||||
|
|
||||||
|
Breadcrumbs::for('admin.projects.documentation-versions.category-path.categories.edit', function ($trail, \App\Models\Project $project, \App\Models\DocumentationVersion $version, \App\Models\DocumentationCategory $category, \Illuminate\Support\Collection $categoryPath) {
|
||||||
|
$trail->parent('admin.projects.documentation-versions.category-path.categories', $project, $version, $categoryPath);
|
||||||
|
|
||||||
|
$trail->push(__('Edit'), route('admin.projects.documentation-versions.categories.edit', ['project' => $project->id, 'version' => $version->id, 'category' => $category->id]));
|
||||||
|
});
|
||||||
|
// End Projects documentation-versions categories
|
||||||
|
|||||||
@@ -1,8 +1,60 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
use App\Models\DocumentationCategory;
|
||||||
|
use App\Models\DocumentationVersion;
|
||||||
|
use App\Models\Documentation;
|
||||||
use App\Services\WebsiteTranslations;
|
use App\Services\WebsiteTranslations;
|
||||||
|
use App\Enums\Site\ProjectSection;
|
||||||
|
use App\Models\Project;
|
||||||
use Diglactic\Breadcrumbs\Breadcrumbs;
|
use Diglactic\Breadcrumbs\Breadcrumbs;
|
||||||
|
use Illuminate\Support\Collection;
|
||||||
|
|
||||||
Breadcrumbs::for('home', function ($trail, WebsiteTranslations $websiteTranslations) {
|
Breadcrumbs::for('home', function ($trail, Project $project, WebsiteTranslations $websiteTranslations) {
|
||||||
$trail->push($websiteTranslations->translate('Home'), route('home'));
|
$trail->push($websiteTranslations->translate('Home'), ProjectSection::Home->url($project, $websiteTranslations->getLanguage()));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Breadcrumbs::for('feedbacks.index', function ($trail, Project $project, WebsiteTranslations $websiteTranslations) {
|
||||||
|
$trail->parent('home', $project, $websiteTranslations);
|
||||||
|
|
||||||
|
$trail->push($websiteTranslations->translate('site.Feedback'), ProjectSection::Feedback->url($project, $websiteTranslations->getLanguage()));
|
||||||
|
});
|
||||||
|
|
||||||
|
// Documentation
|
||||||
|
Breadcrumbs::for('documentation.no-default-version', function ($trail, Project $project, WebsiteTranslations $websiteTranslations) {
|
||||||
|
$trail->parent('home', $project, $websiteTranslations);
|
||||||
|
|
||||||
|
$trail->push($websiteTranslations->translate('site.Documentation'), ProjectSection::Documentation->url($project, $websiteTranslations->getLanguage()));
|
||||||
|
});
|
||||||
|
|
||||||
|
Breadcrumbs::for('documentation.index', function ($trail, Project $project, WebsiteTranslations $websiteTranslations, DocumentationVersion $version) {
|
||||||
|
$trail->parent('home', $project, $websiteTranslations);
|
||||||
|
|
||||||
|
$trail->push($websiteTranslations->translate('site.Documentation'), ProjectSection::DocumentationVersion->url($project, $websiteTranslations->getLanguage(), ['version' => $version->slug]));
|
||||||
|
});
|
||||||
|
|
||||||
|
Breadcrumbs::for('documentation.category-path', function ($trail, Project $project, WebsiteTranslations $websiteTranslations, DocumentationVersion $version, Collection $categoryPath) {
|
||||||
|
$trail->parent('documentation.index', $project, $websiteTranslations, $version);
|
||||||
|
foreach ($categoryPath as $pathItem) {
|
||||||
|
$trail->push(
|
||||||
|
$pathItem->content->title,
|
||||||
|
ProjectSection::DocumentationCategory->url($project, $websiteTranslations->getLanguage(), ['version' => $version->slug, 'slug' => $pathItem->slug])
|
||||||
|
);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
Breadcrumbs::for('documentation.category', function ($trail, Project $project, WebsiteTranslations $websiteTranslations, DocumentationVersion $version, DocumentationCategory $category, ?Collection $categoryPath) {
|
||||||
|
$trail->parent('documentation.category-path', $project, $websiteTranslations, $version, $categoryPath ?? collect());
|
||||||
|
$trail->push(
|
||||||
|
$category->content->title,
|
||||||
|
ProjectSection::DocumentationCategory->url($project, $websiteTranslations->getLanguage(), ['version' => $version->slug, 'slug' => $category->slug])
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
Breadcrumbs::for('documentation.view', function ($trail, Project $project, WebsiteTranslations $websiteTranslations, DocumentationVersion $version, Documentation $documentation, ?Collection $categoryPath) {
|
||||||
|
$trail->parent('documentation.category-path', $project, $websiteTranslations, $version, $categoryPath ?? collect());
|
||||||
|
$trail->push(
|
||||||
|
$documentation->content->title,
|
||||||
|
ProjectSection::Documentation->url($project, $websiteTranslations->getLanguage(), ['version' => $version->slug, 'slug' => $documentation->slug])
|
||||||
|
);
|
||||||
|
});
|
||||||
|
// End Documentation
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
@import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,400;0,700;1,400;1,700&display=swap');
|
@import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,400;0,700;1,400;1,700&display=swap');
|
||||||
@import "reset";
|
@import "reset";
|
||||||
@import "forms";
|
@import "forms";
|
||||||
|
@import "breadcrumb";
|
||||||
|
|
||||||
html,
|
html,
|
||||||
body {
|
body {
|
||||||
|
|||||||
@@ -0,0 +1,45 @@
|
|||||||
|
.breadcrumb-container {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
padding: .5rem 1rem;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
list-style: none;
|
||||||
|
background-color: #eee;
|
||||||
|
border-radius: .5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.breadcrumb-item+.breadcrumb-item {
|
||||||
|
padding-left: .5rem
|
||||||
|
}
|
||||||
|
|
||||||
|
.breadcrumb-item+.breadcrumb-item:before {
|
||||||
|
float: left;
|
||||||
|
padding-right: .5rem;
|
||||||
|
color: #4b5563;
|
||||||
|
content: "/";
|
||||||
|
}
|
||||||
|
|
||||||
|
.breadcrumb-item.active {
|
||||||
|
color: #4b5563;
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
|
||||||
|
.breadcrumb-item {
|
||||||
|
font-size: .75rem
|
||||||
|
}
|
||||||
|
|
||||||
|
.breadcrumb-item,.breadcrumb-item a {
|
||||||
|
color: #374151;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: .75rem;
|
||||||
|
}
|
||||||
|
.breadcrumb-item a:hover {
|
||||||
|
color: #00040b;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (min-width: 576px) {
|
||||||
|
.breadcrumb-item,.breadcrumb-item a {
|
||||||
|
font-size:.875rem
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
@section('meta_title', __('admin-sections.Project') . ': ' . $project->name)
|
@section('meta_title', __('admin-sections.Project') . ': ' . $project->name)
|
||||||
@section('h1', __('admin-sections.Project') . ': ' . $project->name)
|
@section('h1', __('admin-sections.Project') . ': ' . $project->name)
|
||||||
|
@section('breadcrumbs', Breadcrumbs::render('admin.projects.about.edit', $project, $language))
|
||||||
<x-admin.layout>
|
<x-admin.layout>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-12 mb-4">
|
<div class="col-12 mb-4">
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
@section('meta_title', __('admin-sections.Project') . ': ' . $project->name)
|
@section('meta_title', __('admin-sections.Project') . ': ' . $project->name)
|
||||||
@section('h1', __('admin-sections.Project') . ': ' . $project->name)
|
@section('h1', __('admin-sections.Project') . ': ' . $project->name)
|
||||||
|
@section('breadcrumbs', Breadcrumbs::render('admin.projects.about.languages', $project))
|
||||||
@php
|
@php
|
||||||
$contents = $project->contents;
|
$contents = $project->contents;
|
||||||
@endphp
|
@endphp
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
@section('meta_title', __('admin-sections.Projects'))
|
@section('meta_title', __('admin-sections.Projects'))
|
||||||
@section('h1', __('admin-sections.Projects'))
|
@section('h1', __('admin-sections.Projects'))
|
||||||
|
@section('breadcrumbs', Breadcrumbs::render('admin.projects.create'))
|
||||||
<x-admin.layout>
|
<x-admin.layout>
|
||||||
@include('admin.projects._top')
|
@include('admin.projects._top')
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
@section('meta_title', __('admin-sections.Documentation version'))
|
@section('meta_title', __('admin-sections.Documentation version'))
|
||||||
@section('h1', __('admin-sections.Project') . ': ' . $project->name)
|
@section('h1', __('admin-sections.Project') . ': ' . $project->name)
|
||||||
|
@section('breadcrumbs', Breadcrumbs::render('admin.projects.documentation-versions.create', $project))
|
||||||
<x-admin.layout>
|
<x-admin.layout>
|
||||||
@include('admin.projects.documentation-versions._top')
|
@include('admin.projects.documentation-versions._top')
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
|||||||
+5
@@ -2,6 +2,11 @@
|
|||||||
@section('h1')
|
@section('h1')
|
||||||
{{ __('admin-sections.Project') . ': ' . $project->name . ' (' . $version->title . ')' }}
|
{{ __('admin-sections.Project') . ': ' . $project->name . ' (' . $version->title . ')' }}
|
||||||
@endsection
|
@endsection
|
||||||
|
@if(!empty($categoryPath))
|
||||||
|
@section('breadcrumbs', Breadcrumbs::render('admin.projects.documentation-versions.category-path.categories.create', $project, $version, $categoryPath))
|
||||||
|
@else
|
||||||
|
@section('breadcrumbs', Breadcrumbs::render('admin.projects.documentation-versions.categories.create', $project, $version))
|
||||||
|
@endif
|
||||||
<x-admin.layout>
|
<x-admin.layout>
|
||||||
@include('admin.projects.documentation-versions.documentation-categories._top')
|
@include('admin.projects.documentation-versions.documentation-categories._top')
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
|||||||
+5
@@ -2,6 +2,11 @@
|
|||||||
@section('h1')
|
@section('h1')
|
||||||
{{ __('admin-sections.Project') . ': ' . $project->name . ' (' . $version->title . ')' }}
|
{{ __('admin-sections.Project') . ': ' . $project->name . ' (' . $version->title . ')' }}
|
||||||
@endsection
|
@endsection
|
||||||
|
@if(!empty($categoryPath))
|
||||||
|
@section('breadcrumbs', Breadcrumbs::render('admin.projects.documentation-versions.category-path.categories.edit', $project, $version, $category, $categoryPath))
|
||||||
|
@else
|
||||||
|
@section('breadcrumbs', Breadcrumbs::render('admin.projects.documentation-versions.categories.edit', $project, $version, $category))
|
||||||
|
@endif
|
||||||
<x-admin.layout>
|
<x-admin.layout>
|
||||||
@include('admin.projects.documentation-versions.documentation-categories._top')
|
@include('admin.projects.documentation-versions.documentation-categories._top')
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
|||||||
+1
@@ -2,6 +2,7 @@
|
|||||||
@section('h1')
|
@section('h1')
|
||||||
{{ __('admin-sections.Project') . ': ' . $project->name . ' (' . $version->title . ')' }}
|
{{ __('admin-sections.Project') . ': ' . $project->name . ' (' . $version->title . ')' }}
|
||||||
@endsection
|
@endsection
|
||||||
|
@section('breadcrumbs', Breadcrumbs::render('admin.projects.documentation-versions.categories.index', $project, $version))
|
||||||
<x-admin.layout>
|
<x-admin.layout>
|
||||||
@include('admin.projects.documentation-versions.documentation-categories._top')
|
@include('admin.projects.documentation-versions.documentation-categories._top')
|
||||||
<div class="card border-0 shadow mb-4">
|
<div class="card border-0 shadow mb-4">
|
||||||
|
|||||||
+5
@@ -2,6 +2,11 @@
|
|||||||
@section('h1')
|
@section('h1')
|
||||||
{{ __('admin-sections.Project') . ': ' . $project->name . ' (' . $version->title . ')' }}
|
{{ __('admin-sections.Project') . ': ' . $project->name . ' (' . $version->title . ')' }}
|
||||||
@endsection
|
@endsection
|
||||||
|
@if(!empty($categoryPath))
|
||||||
|
@section('breadcrumbs', Breadcrumbs::render('admin.projects.documentation-versions.category-path.documentations.create', $project, $version, $categoryPath))
|
||||||
|
@else
|
||||||
|
@section('breadcrumbs', Breadcrumbs::render('admin.projects.documentation-versions.documentations.create', $project, $version))
|
||||||
|
@endif
|
||||||
<x-admin.layout>
|
<x-admin.layout>
|
||||||
@include('admin.projects.documentation-versions.documentations._top')
|
@include('admin.projects.documentation-versions.documentations._top')
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
|||||||
+5
@@ -2,6 +2,11 @@
|
|||||||
@section('h1')
|
@section('h1')
|
||||||
{{ __('admin-sections.Project') . ': ' . $project->name . ' (' . $version->title . ')' }}
|
{{ __('admin-sections.Project') . ': ' . $project->name . ' (' . $version->title . ')' }}
|
||||||
@endsection
|
@endsection
|
||||||
|
@if(!empty($categoryPath))
|
||||||
|
@section('breadcrumbs', Breadcrumbs::render('admin.projects.documentation-versions.category-path.documentations.edit', $project, $version, $documentation, $categoryPath))
|
||||||
|
@else
|
||||||
|
@section('breadcrumbs', Breadcrumbs::render('admin.projects.documentation-versions.documentations.edit', $project, $version, $documentation))
|
||||||
|
@endif
|
||||||
<x-admin.layout>
|
<x-admin.layout>
|
||||||
@include('admin.projects.documentation-versions.documentations._top')
|
@include('admin.projects.documentation-versions.documentations._top')
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
|||||||
+1
@@ -2,6 +2,7 @@
|
|||||||
@section('h1')
|
@section('h1')
|
||||||
{{ __('admin-sections.Project') . ': ' . $project->name . ' (' . $version->title . ')' }}
|
{{ __('admin-sections.Project') . ': ' . $project->name . ' (' . $version->title . ')' }}
|
||||||
@endsection
|
@endsection
|
||||||
|
@section('breadcrumbs', Breadcrumbs::render('admin.projects.documentation-versions.documentations.index', $project, $version))
|
||||||
<x-admin.layout>
|
<x-admin.layout>
|
||||||
@include('admin.projects.documentation-versions.documentations._top')
|
@include('admin.projects.documentation-versions.documentations._top')
|
||||||
<div class="card border-0 shadow mb-4">
|
<div class="card border-0 shadow mb-4">
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
@section('meta_title', __('admin-sections.Documentation version'))
|
@section('meta_title', __('admin-sections.Documentation version'))
|
||||||
@section('h1', __('admin-sections.Project') . ': ' . $project->name)
|
@section('h1', __('admin-sections.Project') . ': ' . $project->name)
|
||||||
|
@section('breadcrumbs', Breadcrumbs::render('admin.projects.documentation-versions.edit', $project, $version))
|
||||||
<x-admin.layout>
|
<x-admin.layout>
|
||||||
@include('admin.projects.documentation-versions._top')
|
@include('admin.projects.documentation-versions._top')
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
|||||||
+2
-1
@@ -1,5 +1,6 @@
|
|||||||
@section('meta_title', __('admin-sections.Documentation version'))
|
@section('meta_title', __('admin-sections.Documentation version'))
|
||||||
@section('h1', __('admin-sections.Project') . ': ' . $project->name)
|
@section('h1', __('admin-sections.Project') . ': ' . $project->name)
|
||||||
|
@section('breadcrumbs', Breadcrumbs::render('admin.projects.documentation-versions.index', $project))
|
||||||
<x-admin.layout>
|
<x-admin.layout>
|
||||||
@include('admin.projects.documentation-versions._top')
|
@include('admin.projects.documentation-versions._top')
|
||||||
<div class="card border-0 shadow mb-4">
|
<div class="card border-0 shadow mb-4">
|
||||||
@@ -41,7 +42,7 @@
|
|||||||
@endif
|
@endif
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<a href="{{ route('admin.projects.documentation-versions.edit', ['project' => $project->id, 'documentation_version' => $version->id]) }}" class="btn btn-primary" data-bs-toggle="tooltip" data-bs-placement="top" title="{{ __('Edit') }}">
|
<a href="{{ route('admin.projects.documentation-versions.edit', ['project' => $project->id, 'documentation_version' => $version->id]) }}" class="btn btn-primary" data-bs-toggle="tooltip" data-bs-placement="top" title="{{ __('Edit') }}">
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="align-text-top" viewBox="0 0 16 16">
|
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="align-text-top" viewBox="0 0 16 16">
|
||||||
<path d="M12.854.146a.5.5 0 0 0-.707 0L10.5 1.793 14.207 5.5l1.647-1.646a.5.5 0 0 0 0-.708l-3-3zm.646 6.061L9.793 2.5 3.293 9H3.5a.5.5 0 0 1 .5.5v.5h.5a.5.5 0 0 1 .5.5v.5h.5a.5.5 0 0 1 .5.5v.5h.5a.5.5 0 0 1 .5.5v.207l6.5-6.5zm-7.468 7.468A.5.5 0 0 1 6 13.5V13h-.5a.5.5 0 0 1-.5-.5V12h-.5a.5.5 0 0 1-.5-.5V11h-.5a.5.5 0 0 1-.5-.5V10h-.5a.499.499 0 0 1-.175-.032l-.179.178a.5.5 0 0 0-.11.168l-2 5a.5.5 0 0 0 .65.65l5-2a.5.5 0 0 0 .168-.11l.178-.178z"/>
|
<path d="M12.854.146a.5.5 0 0 0-.707 0L10.5 1.793 14.207 5.5l1.647-1.646a.5.5 0 0 0 0-.708l-3-3zm.646 6.061L9.793 2.5 3.293 9H3.5a.5.5 0 0 1 .5.5v.5h.5a.5.5 0 0 1 .5.5v.5h.5a.5.5 0 0 1 .5.5v.5h.5a.5.5 0 0 1 .5.5v.207l6.5-6.5zm-7.468 7.468A.5.5 0 0 1 6 13.5V13h-.5a.5.5 0 0 1-.5-.5V12h-.5a.5.5 0 0 1-.5-.5V11h-.5a.5.5 0 0 1-.5-.5V10h-.5a.499.499 0 0 1-.175-.032l-.179.178a.5.5 0 0 0-.11.168l-2 5a.5.5 0 0 0 .65.65l5-2a.5.5 0 0 0 .168-.11l.178-.178z"/>
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
+12
-14
@@ -1,5 +1,10 @@
|
|||||||
@section('meta_title', __('admin-sections.Documentation version'))
|
@section('meta_title', __('admin-sections.Documentation version'))
|
||||||
@section('h1', __('admin-sections.Project') . ': ' . $project->name)
|
@section('h1', __('admin-sections.Project') . ': ' . $project->name)
|
||||||
|
@if(!empty($category))
|
||||||
|
@section('breadcrumbs', Breadcrumbs::render('admin.projects.documentation-versions.show.category', $project, $version, $category, $categoryPath ?? null))
|
||||||
|
@else
|
||||||
|
@section('breadcrumbs', Breadcrumbs::render('admin.projects.documentation-versions.show', $project, $version))
|
||||||
|
@endif
|
||||||
@php
|
@php
|
||||||
$categoryId = null;
|
$categoryId = null;
|
||||||
if (!empty($category) && $category->id) {
|
if (!empty($category) && $category->id) {
|
||||||
@@ -34,9 +39,7 @@
|
|||||||
<table class="table table-centered table-nowrap mb-0 rounded">
|
<table class="table table-centered table-nowrap mb-0 rounded">
|
||||||
<thead class="thead-light">
|
<thead class="thead-light">
|
||||||
<tr>
|
<tr>
|
||||||
<td><h5>{{ __('admin-sections.Categories') }}</h5></td>
|
<th class="border-0">{{ __('validation.attributes.type') }}</th>
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th class="border-0">{{ __('validation.attributes.title') }}</th>
|
<th class="border-0">{{ __('validation.attributes.title') }}</th>
|
||||||
<th class="border-0">{{ __('validation.attributes.slug') }}</th>
|
<th class="border-0">{{ __('validation.attributes.slug') }}</th>
|
||||||
<th class="border-0">{{ __('validation.attributes.is_public') }}</th>
|
<th class="border-0">{{ __('validation.attributes.is_public') }}</th>
|
||||||
@@ -46,6 +49,9 @@
|
|||||||
<tbody>
|
<tbody>
|
||||||
@forelse($categories as $category)
|
@forelse($categories as $category)
|
||||||
<tr>
|
<tr>
|
||||||
|
<td>
|
||||||
|
{{ __('admin-sections.Categories') }}
|
||||||
|
</td>
|
||||||
<td>
|
<td>
|
||||||
@can('view', $category)
|
@can('view', $category)
|
||||||
<a href="{{ route('admin.projects.documentation-versions.category.show', ['project' => $project->id, 'version' => $version->id, 'category' => $category->id]) }}" class="text-decoration-none text-dark">
|
<a href="{{ route('admin.projects.documentation-versions.category.show', ['project' => $project->id, 'version' => $version->id, 'category' => $category->id]) }}" class="text-decoration-none text-dark">
|
||||||
@@ -95,19 +101,11 @@
|
|||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@endforelse
|
@endforelse
|
||||||
</tbody>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td><h5>{{ __('admin-sections.Documentation') }}</h5></td>
|
|
||||||
</tr>
|
|
||||||
<tr class="thead-light">
|
|
||||||
<th class="border-0">{{ __('validation.attributes.title') }}</th>
|
|
||||||
<th class="border-0">{{ __('validation.attributes.slug') }}</th>
|
|
||||||
<th class="border-0">{{ __('validation.attributes.is_public') }}</th>
|
|
||||||
<th class="border-0 rounded-end" style="width: 150px"></th>
|
|
||||||
</tr>
|
|
||||||
@forelse($documentations as $documentation)
|
@forelse($documentations as $documentation)
|
||||||
<tr>
|
<tr>
|
||||||
|
<td>
|
||||||
|
{{ __('admin-sections.Documentation') }}
|
||||||
|
</td>
|
||||||
<td>
|
<td>
|
||||||
{{ $documentation->content?->title }}
|
{{ $documentation->content?->title }}
|
||||||
</td>
|
</td>
|
||||||
|
|||||||
@@ -1,11 +1,13 @@
|
|||||||
@section('meta_title', __('admin-sections.Projects'))
|
@section('meta_title', __('admin-sections.Projects'))
|
||||||
@section('h1', __('admin-sections.Projects'))
|
@section('h1', __('admin-sections.Projects'))
|
||||||
|
@section('breadcrumbs', Breadcrumbs::render('admin.projects.edit', $project))
|
||||||
<x-admin.layout>
|
<x-admin.layout>
|
||||||
@include('admin.projects._top')
|
@include('admin.projects._top')
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-12 mb-4">
|
<div class="col-12 mb-4">
|
||||||
<div class="card border-0 shadow components-section">
|
<div class="card border-0 shadow components-section">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
|
<h3 id="category" class="mb-4">{{ __('admin-sections.Project') . ': ' . $project->name }}</h3>
|
||||||
<form method="post" action="{{ route('admin.projects.update', $project) }}">
|
<form method="post" action="{{ route('admin.projects.update', $project) }}">
|
||||||
@method('PUT')
|
@method('PUT')
|
||||||
@include('admin.projects._from')
|
@include('admin.projects._from')
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
@section('meta_title', __('admin-sections.Feedback'))
|
@section('meta_title', __('admin-sections.Feedback'))
|
||||||
@section('h1', __('admin-sections.Feedback'))
|
@section('h1', __('admin-sections.Feedback'))
|
||||||
|
@section('breadcrumbs', Breadcrumbs::render('admin.feedbacks.index'))
|
||||||
<x-admin.layout>
|
<x-admin.layout>
|
||||||
<div class="card border-0 shadow mb-4">
|
<div class="card border-0 shadow mb-4">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
@section('meta_title', __('admin-sections.Project') . ': ' . $project->name . ' - ' . __('admin-sections.Feedback'))
|
@section('meta_title', __('admin-sections.Project') . ': ' . $project->name . ' - ' . __('admin-sections.Feedback'))
|
||||||
@section('h1', __('admin-sections.Project') . ': ' . $project->name)
|
@section('h1', __('admin-sections.Project') . ': ' . $project->name)
|
||||||
|
@section('breadcrumbs', Breadcrumbs::render('admin.projects.feedbacks.index', $project))
|
||||||
<x-admin.layout>
|
<x-admin.layout>
|
||||||
<div class="card border-0 shadow mb-4">
|
<div class="card border-0 shadow mb-4">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
@section('meta_title', __('admin-sections.Projects'))
|
@section('meta_title', __('admin-sections.Projects'))
|
||||||
@section('h1', __('admin-sections.Projects'))
|
@section('h1', __('admin-sections.Projects'))
|
||||||
|
@section('breadcrumbs', Breadcrumbs::render('admin.projects.index'))
|
||||||
<x-admin.layout>
|
<x-admin.layout>
|
||||||
@include('admin.projects._top')
|
@include('admin.projects._top')
|
||||||
<div class="card border-0 shadow mb-4">
|
<div class="card border-0 shadow mb-4">
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
@section('meta_title', __('admin-sections.Links project'))
|
@section('meta_title', __('admin-sections.Links project'))
|
||||||
@section('h1', __('admin-sections.Project') . ': ' . $project->name)
|
@section('h1', __('admin-sections.Project') . ': ' . $project->name)
|
||||||
|
@section('breadcrumbs', Breadcrumbs::render('admin.projects.links.create', $project))
|
||||||
<x-admin.layout>
|
<x-admin.layout>
|
||||||
@include('admin.projects.links._top')
|
@include('admin.projects.links._top')
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
@section('meta_title', __('admin-sections.Links project'))
|
@section('meta_title', __('admin-sections.Links project'))
|
||||||
@section('h1', __('admin-sections.Project') . ': ' . $project->name)
|
@section('h1', __('admin-sections.Project') . ': ' . $project->name)
|
||||||
|
@section('breadcrumbs', Breadcrumbs::render('admin.projects.links.edit', $project, $link))
|
||||||
<x-admin.layout>
|
<x-admin.layout>
|
||||||
@include('admin.projects.links._top')
|
@include('admin.projects.links._top')
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
@section('meta_title', __('admin-sections.Links project'))
|
@section('meta_title', __('admin-sections.Links project'))
|
||||||
@section('h1', __('admin-sections.Project') . ': ' . $project->name)
|
@section('h1', __('admin-sections.Project') . ': ' . $project->name)
|
||||||
|
@section('breadcrumbs', Breadcrumbs::render('admin.projects.links.index', $project))
|
||||||
<x-admin.layout>
|
<x-admin.layout>
|
||||||
@include('admin.projects.links._top')
|
@include('admin.projects.links._top')
|
||||||
<div class="card border-0 shadow mb-4">
|
<div class="card border-0 shadow mb-4">
|
||||||
|
|||||||
@@ -1,10 +1,12 @@
|
|||||||
@section('meta_title', __('admin-sections.Setting up automatic translation') . '. ' . __('admin-sections.Project') . ': ' . $project->name)
|
@section('meta_title', __('admin-sections.Setting up automatic translation') . '. ' . __('admin-sections.Project') . ': ' . $project->name)
|
||||||
@section('h1', __('admin-sections.Setting up automatic translation') . '. ' . __('admin-sections.Project') . ': ' . $project->name)
|
@section('h1', __('admin-sections.Project') . ': ' . $project->name)
|
||||||
|
@section('breadcrumbs', Breadcrumbs::render('admin.projects.service-translate.view', $project))
|
||||||
<x-admin.layout>
|
<x-admin.layout>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-12 mb-4">
|
<div class="col-12 mb-4">
|
||||||
<div class="card border-0 shadow components-section">
|
<div class="card border-0 shadow components-section">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
|
<h3 id="category" class="mb-4">{{ __('admin-sections.Setting up automatic translation') }}</h3>
|
||||||
<form method="post" action="{{ route('admin.projects.service-translate.update', ['project' => $project->id]) }}">
|
<form method="post" action="{{ route('admin.projects.service-translate.update', ['project' => $project->id]) }}">
|
||||||
@csrf
|
@csrf
|
||||||
<div class="table-responsive">
|
<div class="table-responsive">
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
@section('meta_title', __('admin-sections.Project') . ': ' . $project->name)
|
@section('meta_title', __('admin-sections.Project') . ': ' . $project->name)
|
||||||
@section('h1', __('admin-sections.Project') . ': ' . $project->name)
|
@section('h1', __('admin-sections.Project') . ': ' . $project->name)
|
||||||
|
@section('breadcrumbs', Breadcrumbs::render('admin.projects.show', $project))
|
||||||
<x-admin.layout>
|
<x-admin.layout>
|
||||||
@include('admin.projects._top')
|
@include('admin.projects._top')
|
||||||
<div class="card border-0 shadow mb-4">
|
<div class="card border-0 shadow mb-4">
|
||||||
|
|||||||
@@ -1,11 +1,12 @@
|
|||||||
@section('meta_title', __('admin-sections.Translations'))
|
@section('meta_title', __('admin-sections.Translations'))
|
||||||
@section('h1', __('admin-sections.Project') . ': ' . $project->name)
|
@section('h1', __('admin-sections.Project') . ': ' . $project->name)
|
||||||
|
@section('breadcrumbs', Breadcrumbs::render('admin.projects.translations.edit', $project, $language))
|
||||||
<x-admin.layout>
|
<x-admin.layout>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-12 mb-4">
|
<div class="col-12 mb-4">
|
||||||
<div class="card border-0 shadow components-section">
|
<div class="card border-0 shadow components-section">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<h3 id="category" class="mb-4">{{ __('admin-sections.Translations') }}</h3>
|
<h3 id="category" class="mb-4">{{ __('admin-sections.Translations') . ': ' . $language->title }}</h3>
|
||||||
<div class="table-responsive">
|
<div class="table-responsive">
|
||||||
<form method="post" action="{{ route('admin.projects.translations.update', ['project' => $project->id, 'language' => $language->id]) }}">
|
<form method="post" action="{{ route('admin.projects.translations.update', ['project' => $project->id, 'language' => $language->id]) }}">
|
||||||
@if($serviceTranslationEnable)
|
@if($serviceTranslationEnable)
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
@section('meta_title', __('admin-sections.Translations'))
|
@section('meta_title', __('admin-sections.Translations'))
|
||||||
@section('h1', __('admin-sections.Project') . ': ' . $project->name)
|
@section('h1', __('admin-sections.Project') . ': ' . $project->name)
|
||||||
|
@section('breadcrumbs', Breadcrumbs::render('admin.projects.translations.languages', $project))
|
||||||
<x-admin.layout>
|
<x-admin.layout>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-12 mb-4">
|
<div class="col-12 mb-4">
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
@section('meta_title', __('admin-sections.User group'))
|
@section('meta_title', __('admin-sections.User group'))
|
||||||
@section('h1', __('admin-sections.User group'))
|
@section('h1', __('admin-sections.User group'))
|
||||||
|
@section('breadcrumbs', Breadcrumbs::render('admin.roles.create'))
|
||||||
<x-admin.layout>
|
<x-admin.layout>
|
||||||
@include('admin.roles._top')
|
@include('admin.roles._top')
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
@section('meta_title', __('admin-sections.User group'))
|
@section('meta_title', __('admin-sections.User group'))
|
||||||
@section('h1', __('admin-sections.User group'))
|
@section('h1', __('admin-sections.User group'))
|
||||||
|
@section('breadcrumbs', Breadcrumbs::render('admin.roles.edit', $role))
|
||||||
<x-admin.layout>
|
<x-admin.layout>
|
||||||
@include('admin.roles._top')
|
@include('admin.roles._top')
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
@section('meta_title', __('admin-sections.User group'))
|
@section('meta_title', __('admin-sections.User group'))
|
||||||
@section('h1', __('admin-sections.User group'))
|
@section('h1', __('admin-sections.User group'))
|
||||||
|
@section('breadcrumbs', Breadcrumbs::render('admin.roles.index'))
|
||||||
<x-admin.layout>
|
<x-admin.layout>
|
||||||
@include('admin.roles._top')
|
@include('admin.roles._top')
|
||||||
<div class="card border-0 shadow mb-4">
|
<div class="card border-0 shadow mb-4">
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
@section('meta_title', __('admin-sections.Users'))
|
@section('meta_title', __('admin-sections.Users'))
|
||||||
@section('h1', __('admin-sections.Users'))
|
@section('h1', __('admin-sections.Users'))
|
||||||
|
@section('breadcrumbs', Breadcrumbs::render('admin.users.create'))
|
||||||
<x-admin.layout>
|
<x-admin.layout>
|
||||||
@include('admin.users._top')
|
@include('admin.users._top')
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
@section('meta_title', __('admin-sections.Users'))
|
@section('meta_title', __('admin-sections.Users'))
|
||||||
@section('h1', __('admin-sections.Users'))
|
@section('h1', __('admin-sections.Users'))
|
||||||
|
@section('breadcrumbs', Breadcrumbs::render('admin.users.edit', $user))
|
||||||
<x-admin.layout>
|
<x-admin.layout>
|
||||||
@include('admin.users._top')
|
@include('admin.users._top')
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
@section('meta_title', __('admin-sections.Users'))
|
@section('meta_title', __('admin-sections.Users'))
|
||||||
@section('h1', __('admin-sections.Users'))
|
@section('h1', __('admin-sections.Users'))
|
||||||
|
@section('breadcrumbs', Breadcrumbs::render('admin.users.index'))
|
||||||
<x-admin.layout>
|
<x-admin.layout>
|
||||||
@include('admin.users._top')
|
@include('admin.users._top')
|
||||||
<div class="card border-0 shadow mb-4">
|
<div class="card border-0 shadow mb-4">
|
||||||
|
|||||||
@@ -0,0 +1,25 @@
|
|||||||
|
@unless ($breadcrumbs->isEmpty())
|
||||||
|
<nav aria-label="breadcrumb" class="d-none d-md-inline-block">
|
||||||
|
<ol class="breadcrumb breadcrumb-dark breadcrumb-transparent">
|
||||||
|
@foreach ($breadcrumbs as $breadcrumb)
|
||||||
|
@if ($breadcrumb->url && !$loop->last)
|
||||||
|
<li class="breadcrumb-item"><a href="{{ $breadcrumb->url }}" aria-label="{{ $breadcrumb->title }}">
|
||||||
|
@if(!empty($breadcrumb->icon))
|
||||||
|
{!! $breadcrumb->icon !!}
|
||||||
|
@else
|
||||||
|
{{ $breadcrumb->title }}
|
||||||
|
@endif
|
||||||
|
</a></li>
|
||||||
|
@else
|
||||||
|
<li class="breadcrumb-item active" aria-current="page">
|
||||||
|
@if(!empty($breadcrumb->icon))
|
||||||
|
{!! $breadcrumb->icon !!}
|
||||||
|
@else
|
||||||
|
{{ $breadcrumb->title }}
|
||||||
|
@endif
|
||||||
|
</li>
|
||||||
|
@endif
|
||||||
|
@endforeach
|
||||||
|
</ol>
|
||||||
|
</nav>
|
||||||
|
@endunless
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
@unless ($breadcrumbs->isEmpty())
|
||||||
|
<nav aria-label="breadcrumb" class="breadcrumb">
|
||||||
|
<ol class="breadcrumb-container">
|
||||||
|
@foreach ($breadcrumbs as $breadcrumb)
|
||||||
|
@if ($breadcrumb->url && !$loop->last)
|
||||||
|
<li class="breadcrumb-item"><a href="{{ $breadcrumb->url }}">{{ $breadcrumb->title }}</a></li>
|
||||||
|
@else
|
||||||
|
<li class="breadcrumb-item active" aria-current="page">{{ $breadcrumb->title }}</li>
|
||||||
|
@endif
|
||||||
|
@endforeach
|
||||||
|
</ol>
|
||||||
|
</nav>
|
||||||
|
@endunless
|
||||||
@@ -69,11 +69,12 @@
|
|||||||
<nav class="navbar navbar-top navbar-expand navbar-dashboard navbar-dark ps-0 pe-2 pb-2 pb-lg-3">
|
<nav class="navbar navbar-top navbar-expand navbar-dashboard navbar-dark ps-0 pe-2 pb-2 pb-lg-3">
|
||||||
<div class="container-fluid px-0">
|
<div class="container-fluid px-0">
|
||||||
<div class="d-flex justify-content-between w-100" id="navbarSupportedContent">
|
<div class="d-flex justify-content-between w-100" id="navbarSupportedContent">
|
||||||
<div class="d-flex align-items-center">
|
<div>
|
||||||
|
@yield('breadcrumbs', '')
|
||||||
<h1 class="h3">@yield('h1', '')</h1>
|
<h1 class="h3">@yield('h1', '')</h1>
|
||||||
</div>
|
</div>
|
||||||
<!-- Navbar links -->
|
<!-- Navbar links -->
|
||||||
<ul class="navbar-nav align-items-center">
|
<ul class="navbar-nav d-none d-lg-flex">
|
||||||
<li class="nav-item dropdown ms-lg-3">
|
<li class="nav-item dropdown ms-lg-3">
|
||||||
<a class="nav-link dropdown-toggle pt-1 px-0" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
<a class="nav-link dropdown-toggle pt-1 px-0" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
||||||
<div class="media d-flex align-items-center">
|
<div class="media d-flex align-items-center">
|
||||||
@@ -106,7 +107,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
@includeWhen($errors->any(), 'layout.private._errors', ['errors' => $errors->all()])
|
@includeWhen($errors->any(), 'layout.private._errors', ['errors' => $errors->all()])
|
||||||
@includeWhen(Session::has('success'), 'layout.private._success', ['success' => Session::get('success')])
|
@includeWhen(Session::has('success'), 'layout.private._success', ['success' => Session::get('success')])
|
||||||
|
|
||||||
|
|||||||
@@ -9,6 +9,8 @@
|
|||||||
<meta name="description" content="@yield('meta_description', '')" />
|
<meta name="description" content="@yield('meta_description', '')" />
|
||||||
|
|
||||||
@vite('resources/site/scss/app.scss')
|
@vite('resources/site/scss/app.scss')
|
||||||
|
|
||||||
|
@stack('head')
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div class="wrapper">
|
<div class="wrapper">
|
||||||
@@ -46,6 +48,7 @@
|
|||||||
</nav>
|
</nav>
|
||||||
<div class="section-container">
|
<div class="section-container">
|
||||||
<div class="content">
|
<div class="content">
|
||||||
|
@yield('breadcrumbs', '')
|
||||||
@if($attributes->has('documentationVersion'))
|
@if($attributes->has('documentationVersion'))
|
||||||
<x-site.documentation-version :websiteTranslations="$websiteTranslations" :version="$attributes->get('documentationVersion')" />
|
<x-site.documentation-version :websiteTranslations="$websiteTranslations" :version="$attributes->get('documentationVersion')" />
|
||||||
@endif
|
@endif
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
@section('meta_title', $websiteTranslations->translate('site.Feedback'))
|
@section('meta_title', $websiteTranslations->translate('site.Feedback'))
|
||||||
@section('h1', $websiteTranslations->translate('site.Feedback'))
|
@section('h1', $websiteTranslations->translate('site.Feedback'))
|
||||||
|
@section('breadcrumbs', Breadcrumbs::render('feedbacks.index', $project, $websiteTranslations))
|
||||||
|
@push('head')
|
||||||
|
{{ Breadcrumbs::view('breadcrumbs::json-ld', 'feedbacks.index', $project, $websiteTranslations) }}
|
||||||
|
@endpush
|
||||||
<x-site.layout :project="$project" :websiteTranslations="$websiteTranslations">
|
<x-site.layout :project="$project" :websiteTranslations="$websiteTranslations">
|
||||||
@if(Session::has('success') !== true)
|
@if(Session::has('success') !== true)
|
||||||
<form method="post" action="{{ \App\Enums\Site\ProjectSection::FeedbackSend->url($project, $websiteTranslations->getLanguage()) }}">
|
<form method="post" action="{{ \App\Enums\Site\ProjectSection::FeedbackSend->url($project, $websiteTranslations->getLanguage()) }}">
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
@section('meta_title', $category->content?->title . ' - ' . $project->name . ' ' . $version->title)
|
@section('meta_title', $category->content?->title . ' - ' . $project->name . ' ' . $version->title)
|
||||||
@section('h1', $category->content?->title)
|
@section('h1', $category->content?->title)
|
||||||
|
@section('breadcrumbs', Breadcrumbs::render('documentation.category', $project, $websiteTranslations, $version, $category, $categoryPath))
|
||||||
|
@push('head')
|
||||||
|
{{ Breadcrumbs::view('breadcrumbs::json-ld', 'documentation.category', $project, $websiteTranslations, $version, $category, $categoryPath) }}
|
||||||
|
@endpush
|
||||||
<x-site.layout :project="$project" :websiteTranslations="$websiteTranslations" :documentationVersion="$version">
|
<x-site.layout :project="$project" :websiteTranslations="$websiteTranslations" :documentationVersion="$version">
|
||||||
@foreach($categories as $category)
|
@foreach($categories as $category)
|
||||||
@continue(! $category->content?->title)
|
@continue(! $category->content?->title)
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
@section('meta_title', $websiteTranslations->translate('site.Documentation') . ' - ' . $project->name . ' ' . $version->title)
|
@section('meta_title', $websiteTranslations->translate('site.Documentation') . ' - ' . $project->name . ' ' . $version->title)
|
||||||
@section('h1', $websiteTranslations->translate('site.Documentation'))
|
@section('h1', $websiteTranslations->translate('site.Documentation'))
|
||||||
|
@section('breadcrumbs', Breadcrumbs::render('documentation.index', $project, $websiteTranslations, $version))
|
||||||
|
@push('head')
|
||||||
|
{{ Breadcrumbs::view('breadcrumbs::json-ld', 'documentation.index', $project, $websiteTranslations, $version) }}
|
||||||
|
@endpush
|
||||||
<x-site.layout :project="$project" :websiteTranslations="$websiteTranslations" :documentationVersion="$version">
|
<x-site.layout :project="$project" :websiteTranslations="$websiteTranslations" :documentationVersion="$version">
|
||||||
@foreach($categories as $category)
|
@foreach($categories as $category)
|
||||||
@continue(! $category->content?->title)
|
@continue(! $category->content?->title)
|
||||||
|
|||||||
+4
-1
@@ -1,6 +1,9 @@
|
|||||||
@section('meta_title', $websiteTranslations->translate('site.Documentation not created'))
|
@section('meta_title', $websiteTranslations->translate('site.Documentation not created'))
|
||||||
@section('h1', $websiteTranslations->translate('site.Documentation not created'))
|
@section('h1', $websiteTranslations->translate('site.Documentation not created'))
|
||||||
|
@section('breadcrumbs', Breadcrumbs::render('documentation.no-default-version', $project, $websiteTranslations))
|
||||||
|
@push('head')
|
||||||
|
{{ Breadcrumbs::view('breadcrumbs::json-ld', 'documentation.no-default-version', $project, $websiteTranslations) }}
|
||||||
|
@endpush
|
||||||
<x-site.layout :project="$project" :websiteTranslations="$websiteTranslations">
|
<x-site.layout :project="$project" :websiteTranslations="$websiteTranslations">
|
||||||
|
|
||||||
</x-site.layout>
|
</x-site.layout>
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
@section('meta_title', $documentation->content?->title . ' - ' . $project->name . ' ' . $version->title)
|
@section('meta_title', $documentation->content?->title . ' - ' . $project->name . ' ' . $version->title)
|
||||||
@section('h1', $documentation->content?->title)
|
@section('h1', $documentation->content?->title)
|
||||||
|
@section('breadcrumbs', Breadcrumbs::render('documentation.view', $project, $websiteTranslations, $version, $documentation, $categoryPath))
|
||||||
|
@push('head')
|
||||||
|
{{ Breadcrumbs::view('breadcrumbs::json-ld', 'documentation.view', $project, $websiteTranslations, $version, $documentation, $categoryPath) }}
|
||||||
|
@endpush
|
||||||
<x-site.layout :project="$project" :websiteTranslations="$websiteTranslations" :documentationVersion="$version">
|
<x-site.layout :project="$project" :websiteTranslations="$websiteTranslations" :documentationVersion="$version">
|
||||||
<div class="line-numbers">{!! $documentation->content->content !!}</div>
|
<div class="line-numbers">{!! $documentation->content->content !!}</div>
|
||||||
@push('scripts')
|
@push('scripts')
|
||||||
|
|||||||
@@ -24,6 +24,10 @@
|
|||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.breadcrumb .icon {
|
||||||
|
margin-top: -2px;
|
||||||
|
}
|
||||||
|
|
||||||
@each $color, $value in $theme-colors {
|
@each $color, $value in $theme-colors {
|
||||||
.breadcrumb-#{$color} {
|
.breadcrumb-#{$color} {
|
||||||
background: $value;
|
background: $value;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
FROM docker.io/php:8.5-fpm-alpine3.23 AS build
|
FROM docker.io/php:8.5-fpm-alpine3.23 AS php
|
||||||
|
|
||||||
RUN apk --no-cache add pcre2 libbz2 libpng libwebp libjpeg-turbo icu-libs freetype oniguruma libzip jq \
|
RUN apk --no-cache add pcre2 libbz2 libpng libwebp libjpeg-turbo icu-libs freetype oniguruma libzip jq \
|
||||||
&& apk add --no-cache --virtual .phpize-deps icu-dev libpng-dev bzip2-dev libwebp-dev libjpeg-turbo-dev freetype-dev oniguruma-dev libzip-dev pcre2-dev ${PHPIZE_DEPS} \
|
&& apk add --no-cache --virtual .phpize-deps icu-dev libpng-dev bzip2-dev libwebp-dev libjpeg-turbo-dev freetype-dev oniguruma-dev libzip-dev pcre2-dev ${PHPIZE_DEPS} \
|
||||||
@@ -29,20 +29,37 @@ RUN apk --no-cache add pcre2 libbz2 libpng libwebp libjpeg-turbo icu-libs freety
|
|||||||
|
|
||||||
COPY docker/php/conf/app-fpm.conf /usr/local/etc/php-fpm.d/app-fpm.conf
|
COPY docker/php/conf/app-fpm.conf /usr/local/etc/php-fpm.d/app-fpm.conf
|
||||||
|
|
||||||
FROM build AS app_build_for_production
|
FROM docker.io/nginx:1.31-alpine AS nginx
|
||||||
|
|
||||||
|
COPY docker/web/conf/default.conf.template /etc/nginx/templates/default.conf.template
|
||||||
|
COPY docker/web/conf/fastcgi_params /etc/nginx/fastcgi_params
|
||||||
|
COPY docker/web/start.sh /usr/local/bin/start
|
||||||
|
|
||||||
|
RUN chmod 755 /usr/local/bin/start
|
||||||
|
|
||||||
|
FROM nginx AS web_build_for_production
|
||||||
|
|
||||||
|
WORKDIR /home/app
|
||||||
|
COPY application /home/app
|
||||||
|
|
||||||
|
RUN apk --no-cache add git nodejs npm \
|
||||||
|
&& npm install && npm run build \
|
||||||
|
&& rm -rf /home/app/node_modules
|
||||||
|
|
||||||
|
FROM php AS app_build_for_production
|
||||||
WORKDIR /home/app
|
WORKDIR /home/app
|
||||||
|
|
||||||
COPY application /home/app
|
COPY application /home/app
|
||||||
|
|
||||||
RUN apk --no-cache add git \
|
RUN apk --no-cache add git \
|
||||||
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
|
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
|
||||||
&& composer install --optimize-autoloader --no-dev \
|
&& composer install --optimize-autoloader --no-dev \
|
||||||
&& rm -rf /home/app/.env
|
&& rm -f /home/app/.env
|
||||||
|
|
||||||
|
FROM php AS app_production
|
||||||
FROM build AS production
|
|
||||||
|
|
||||||
COPY --from=app_build_for_production /home/app /var/www/html
|
COPY --from=app_build_for_production /home/app /var/www/html
|
||||||
|
COPY --from=web_build_for_production /home/app/public/build/ /var/www/html/public/build
|
||||||
COPY docker/php/start.sh /usr/local/bin/start
|
COPY docker/php/start.sh /usr/local/bin/start
|
||||||
|
|
||||||
WORKDIR /var/www/html
|
WORKDIR /var/www/html
|
||||||
@@ -57,8 +74,18 @@ USER www-data
|
|||||||
EXPOSE 9000
|
EXPOSE 9000
|
||||||
CMD ["/usr/local/bin/start"]
|
CMD ["/usr/local/bin/start"]
|
||||||
|
|
||||||
|
FROM nginx AS web_production
|
||||||
|
|
||||||
FROM build AS develop
|
COPY --from=web_build_for_production /home/app/public /usr/share/nginx/html
|
||||||
|
RUN rm -f /usr/share/nginx/html/50x.html /usr/share/nginx/html/index.php /usr/share/nginx/html/.htaccess
|
||||||
|
|
||||||
|
WORKDIR /usr/share/nginx/html
|
||||||
|
|
||||||
|
EXPOSE 80
|
||||||
|
CMD ["/usr/local/bin/start"]
|
||||||
|
|
||||||
|
# develop
|
||||||
|
FROM php AS app_develop
|
||||||
|
|
||||||
WORKDIR /var/www/html
|
WORKDIR /var/www/html
|
||||||
|
|
||||||
@@ -75,15 +102,12 @@ USER www-data
|
|||||||
EXPOSE 9000
|
EXPOSE 9000
|
||||||
CMD ["/usr/local/bin/start"]
|
CMD ["/usr/local/bin/start"]
|
||||||
|
|
||||||
|
FROM php AS artisan
|
||||||
|
|
||||||
FROM build AS artisan
|
|
||||||
WORKDIR /var/www/html
|
WORKDIR /var/www/html
|
||||||
STOPSIGNAL SIGTERM
|
STOPSIGNAL SIGTERM
|
||||||
ENTRYPOINT ["php", "/var/www/html/artisan"]
|
ENTRYPOINT ["php", "/var/www/html/artisan"]
|
||||||
|
|
||||||
|
FROM php AS composer
|
||||||
FROM build AS composer
|
|
||||||
WORKDIR /var/www/html
|
WORKDIR /var/www/html
|
||||||
STOPSIGNAL SIGTERM
|
STOPSIGNAL SIGTERM
|
||||||
RUN apk --no-cache add git \
|
RUN apk --no-cache add git \
|
||||||
@@ -91,11 +115,15 @@ RUN apk --no-cache add git \
|
|||||||
RUN mkdir "/.composer" && chmod -R 0777 "/.composer"
|
RUN mkdir "/.composer" && chmod -R 0777 "/.composer"
|
||||||
ENTRYPOINT ["composer"]
|
ENTRYPOINT ["composer"]
|
||||||
|
|
||||||
|
FROM php AS npm
|
||||||
|
|
||||||
FROM build AS npm
|
|
||||||
RUN mkdir "/.npm" && chmod -R 0777 "/.npm"
|
RUN mkdir "/.npm" && chmod -R 0777 "/.npm"
|
||||||
WORKDIR /var/www/html
|
WORKDIR /var/www/html
|
||||||
STOPSIGNAL SIGTERM
|
STOPSIGNAL SIGTERM
|
||||||
RUN apk --no-cache add nodejs npm
|
RUN apk --no-cache add nodejs npm
|
||||||
ENTRYPOINT ["npm"]
|
ENTRYPOINT ["npm"]
|
||||||
|
|
||||||
|
FROM nginx AS web_develop
|
||||||
|
WORKDIR /usr/share/nginx/html
|
||||||
|
|
||||||
|
EXPOSE 80
|
||||||
|
CMD ["/usr/local/bin/start"]
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
FROM docker.io/nginx:1.31-alpine AS build
|
|
||||||
|
|
||||||
COPY docker/web/conf/default.conf.template /etc/nginx/templates/default.conf.template
|
|
||||||
COPY docker/web/conf/fastcgi_params /etc/nginx/fastcgi_params
|
|
||||||
COPY docker/web/start.sh /usr/local/bin/start
|
|
||||||
|
|
||||||
RUN chmod 755 /usr/local/bin/start
|
|
||||||
|
|
||||||
FROM build AS app_build_for_production
|
|
||||||
|
|
||||||
WORKDIR /home/app
|
|
||||||
COPY application /home/app
|
|
||||||
|
|
||||||
RUN apk --no-cache add git nodejs npm \
|
|
||||||
&& npm install && npm run build \
|
|
||||||
&& rm -rf /home/app/node_modules
|
|
||||||
|
|
||||||
FROM build AS production
|
|
||||||
|
|
||||||
COPY --from=app_build_for_production /home/app/public /usr/share/nginx/html
|
|
||||||
|
|
||||||
WORKDIR /usr/share/nginx/html
|
|
||||||
|
|
||||||
EXPOSE 80
|
|
||||||
CMD ["/usr/local/bin/start"]
|
|
||||||
|
|
||||||
FROM build AS develop
|
|
||||||
WORKDIR /usr/share/nginx/html
|
|
||||||
|
|
||||||
EXPOSE 80
|
|
||||||
CMD ["/usr/local/bin/start"]
|
|
||||||
@@ -3,8 +3,9 @@ services:
|
|||||||
web:
|
web:
|
||||||
build:
|
build:
|
||||||
context: app
|
context: app
|
||||||
dockerfile: docker/web/Dockerfile
|
dockerfile: docker/Dockerfile
|
||||||
target: DEVELOP
|
target: WEB_PRODUCTION
|
||||||
|
# restart: always
|
||||||
depends_on:
|
depends_on:
|
||||||
- app
|
- app
|
||||||
ports:
|
ports:
|
||||||
@@ -21,8 +22,8 @@ services:
|
|||||||
app:
|
app:
|
||||||
build:
|
build:
|
||||||
context: app
|
context: app
|
||||||
dockerfile: docker/php/Dockerfile
|
dockerfile: docker/Dockerfile
|
||||||
target: PRODUCTION
|
target: APP_PRODUCTION
|
||||||
# restart: always
|
# restart: always
|
||||||
depends_on:
|
depends_on:
|
||||||
- db
|
- db
|
||||||
@@ -37,8 +38,8 @@ services:
|
|||||||
queue:
|
queue:
|
||||||
build:
|
build:
|
||||||
context: app
|
context: app
|
||||||
dockerfile: docker/php/Dockerfile
|
dockerfile: docker/Dockerfile
|
||||||
target: PRODUCTION
|
target: APP_PRODUCTION
|
||||||
# restart: always
|
# restart: always
|
||||||
depends_on:
|
depends_on:
|
||||||
- app
|
- app
|
||||||
@@ -52,8 +53,8 @@ services:
|
|||||||
scheduler:
|
scheduler:
|
||||||
build:
|
build:
|
||||||
context: app
|
context: app
|
||||||
dockerfile: docker/php/Dockerfile
|
dockerfile: docker/Dockerfile
|
||||||
target: PRODUCTION
|
target: APP_PRODUCTION
|
||||||
# restart: always
|
# restart: always
|
||||||
depends_on:
|
depends_on:
|
||||||
- app
|
- app
|
||||||
|
|||||||
@@ -1,15 +1,29 @@
|
|||||||
#version: '3.7'
|
#version: '3.7'
|
||||||
services:
|
services:
|
||||||
|
web:
|
||||||
|
# image: korelf/my-projects-website-web:0.7.0 # docker hub
|
||||||
|
image: docker.mdhub.kor-elf.net/kor-elf/my-projects-website-web:0.7.0 # MDHub
|
||||||
|
# restart: always
|
||||||
|
depends_on:
|
||||||
|
- app
|
||||||
|
ports:
|
||||||
|
- ${DOCKER_WEB_PORT}:80
|
||||||
|
environment:
|
||||||
|
IS_GZIP: 0
|
||||||
|
# FRONTEND_PORT: ${DOCKER_WEB_PORT}
|
||||||
|
BACKEND_HOST: app
|
||||||
|
BACKEND_PORT: 9000
|
||||||
|
TRUSTED_PROXY_CIDR: 172.16.0.0/12
|
||||||
|
volumes:
|
||||||
|
- ./app/storage/app/public:/usr/share/nginx/html/storage
|
||||||
app:
|
app:
|
||||||
# image: korelf/my-projects-website:0.6.0 # docker hub
|
# image: korelf/my-projects-website-app:0.7.0 # docker hub
|
||||||
image: docker.mdhub.kor-elf.net/kor-elf/my-projects-website:0.6.0 # MDHub
|
image: docker.mdhub.kor-elf.net/kor-elf/my-projects-website-app:0.7.0 # MDHub
|
||||||
# restart: always
|
# restart: always
|
||||||
depends_on:
|
depends_on:
|
||||||
- db
|
- db
|
||||||
- app-redis
|
- app-redis
|
||||||
- captcha-app
|
- captcha-app
|
||||||
ports:
|
|
||||||
- ${DOCKER_APP_PORT}:9000
|
|
||||||
env_file: app/.env
|
env_file: app/.env
|
||||||
environment:
|
environment:
|
||||||
CONTAINER_ROLE: app
|
CONTAINER_ROLE: app
|
||||||
@@ -20,8 +34,8 @@ services:
|
|||||||
# - ./app/translate/authorized_key.json:/var/www/html/storage/translation_service/authorized_key.json
|
# - ./app/translate/authorized_key.json:/var/www/html/storage/translation_service/authorized_key.json
|
||||||
|
|
||||||
queue:
|
queue:
|
||||||
# image: korelf/my-projects-website:0.6.0 # docker hub
|
# image: korelf/my-projects-website-app:0.7.0 # docker hub
|
||||||
image: docker.mdhub.kor-elf.net/kor-elf/my-projects-website:0.6.0 # MDHub
|
image: docker.mdhub.kor-elf.net/kor-elf/my-projects-website-app:0.7.0 # MDHub
|
||||||
# restart: always
|
# restart: always
|
||||||
depends_on:
|
depends_on:
|
||||||
- app
|
- app
|
||||||
@@ -29,6 +43,7 @@ services:
|
|||||||
- app-redis
|
- app-redis
|
||||||
environment:
|
environment:
|
||||||
CONTAINER_ROLE: queue
|
CONTAINER_ROLE: queue
|
||||||
|
APP_ENV: production
|
||||||
env_file: app/.env
|
env_file: app/.env
|
||||||
volumes:
|
volumes:
|
||||||
- ./app/storage/app:/var/www/html/storage/app
|
- ./app/storage/app:/var/www/html/storage/app
|
||||||
@@ -36,8 +51,8 @@ services:
|
|||||||
# - ./app/translate/authorized_key.json:/var/www/html/storage/translation_service/authorized_key.json
|
# - ./app/translate/authorized_key.json:/var/www/html/storage/translation_service/authorized_key.json
|
||||||
|
|
||||||
scheduler:
|
scheduler:
|
||||||
# image: korelf/my-projects-website:0.6.0 # docker hub
|
# image: korelf/my-projects-website-app:0.7.0 # docker hub
|
||||||
image: docker.mdhub.kor-elf.net/kor-elf/my-projects-website:0.6.0 # MDHub
|
image: docker.mdhub.kor-elf.net/kor-elf/my-projects-website-app:0.7.0 # MDHub
|
||||||
# restart: always
|
# restart: always
|
||||||
depends_on:
|
depends_on:
|
||||||
- app
|
- app
|
||||||
@@ -45,6 +60,7 @@ services:
|
|||||||
- app-redis
|
- app-redis
|
||||||
environment:
|
environment:
|
||||||
CONTAINER_ROLE: scheduler
|
CONTAINER_ROLE: scheduler
|
||||||
|
APP_ENV: production
|
||||||
env_file: app/.env
|
env_file: app/.env
|
||||||
volumes:
|
volumes:
|
||||||
- ./app/storage/app:/var/www/html/storage/app
|
- ./app/storage/app:/var/www/html/storage/app
|
||||||
|
|||||||
+11
-11
@@ -3,8 +3,8 @@ services:
|
|||||||
web:
|
web:
|
||||||
build:
|
build:
|
||||||
context: app
|
context: app
|
||||||
dockerfile: docker/web/Dockerfile
|
dockerfile: docker/Dockerfile
|
||||||
target: DEVELOP
|
target: WEB_DEVELOP
|
||||||
depends_on:
|
depends_on:
|
||||||
- app
|
- app
|
||||||
ports:
|
ports:
|
||||||
@@ -21,8 +21,8 @@ services:
|
|||||||
app:
|
app:
|
||||||
build:
|
build:
|
||||||
context: app
|
context: app
|
||||||
dockerfile: docker/php/Dockerfile
|
dockerfile: docker/Dockerfile
|
||||||
target: DEVELOP
|
target: APP_DEVELOP
|
||||||
depends_on:
|
depends_on:
|
||||||
- db
|
- db
|
||||||
- app-redis
|
- app-redis
|
||||||
@@ -36,8 +36,8 @@ services:
|
|||||||
queue:
|
queue:
|
||||||
build:
|
build:
|
||||||
context: app
|
context: app
|
||||||
dockerfile: docker/php/Dockerfile
|
dockerfile: docker/Dockerfile
|
||||||
target: DEVELOP
|
target: APP_DEVELOP
|
||||||
depends_on:
|
depends_on:
|
||||||
- db
|
- db
|
||||||
- app
|
- app
|
||||||
@@ -50,8 +50,8 @@ services:
|
|||||||
scheduler:
|
scheduler:
|
||||||
build:
|
build:
|
||||||
context: app
|
context: app
|
||||||
dockerfile: docker/php/Dockerfile
|
dockerfile: docker/Dockerfile
|
||||||
target: DEVELOP
|
target: APP_DEVELOP
|
||||||
depends_on:
|
depends_on:
|
||||||
- db
|
- db
|
||||||
- app
|
- app
|
||||||
@@ -146,7 +146,7 @@ services:
|
|||||||
artisan:
|
artisan:
|
||||||
build:
|
build:
|
||||||
context: app
|
context: app
|
||||||
dockerfile: docker/php/Dockerfile
|
dockerfile: docker/Dockerfile
|
||||||
target: ARTISAN
|
target: ARTISAN
|
||||||
user: "${UID}:${GID}"
|
user: "${UID}:${GID}"
|
||||||
volumes:
|
volumes:
|
||||||
@@ -155,7 +155,7 @@ services:
|
|||||||
composer:
|
composer:
|
||||||
build:
|
build:
|
||||||
context: app
|
context: app
|
||||||
dockerfile: docker/php/Dockerfile
|
dockerfile: docker/Dockerfile
|
||||||
target: COMPOSER
|
target: COMPOSER
|
||||||
user: "${UID}:${GID}"
|
user: "${UID}:${GID}"
|
||||||
volumes:
|
volumes:
|
||||||
@@ -164,7 +164,7 @@ services:
|
|||||||
npm:
|
npm:
|
||||||
build:
|
build:
|
||||||
context: app
|
context: app
|
||||||
dockerfile: docker/php/Dockerfile
|
dockerfile: docker/Dockerfile
|
||||||
target: NPM
|
target: NPM
|
||||||
user: "${UID}:${GID}"
|
user: "${UID}:${GID}"
|
||||||
volumes:
|
volumes:
|
||||||
|
|||||||
Reference in New Issue
Block a user