Changes
This commit is contained in:
Generated
-12
@@ -1,12 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="Codeception">
|
|
||||||
<option name="configurations">
|
|
||||||
<list>
|
|
||||||
<Configuration>
|
|
||||||
<option name="path" value="$PROJECT_DIR$/tests" />
|
|
||||||
</Configuration>
|
|
||||||
</list>
|
|
||||||
</option>
|
|
||||||
</component>
|
|
||||||
</project>
|
|
||||||
Generated
+1
@@ -6,6 +6,7 @@
|
|||||||
<sourceFolder url="file://$MODULE_DIR$/database/factories" isTestSource="false" packagePrefix="Database\Factories\" />
|
<sourceFolder url="file://$MODULE_DIR$/database/factories" isTestSource="false" packagePrefix="Database\Factories\" />
|
||||||
<sourceFolder url="file://$MODULE_DIR$/database/seeders" isTestSource="false" packagePrefix="Database\Seeders\" />
|
<sourceFolder url="file://$MODULE_DIR$/database/seeders" isTestSource="false" packagePrefix="Database\Seeders\" />
|
||||||
<sourceFolder url="file://$MODULE_DIR$/tests" isTestSource="true" packagePrefix="Tests\" />
|
<sourceFolder url="file://$MODULE_DIR$/tests" isTestSource="true" packagePrefix="Tests\" />
|
||||||
|
<sourceFolder url="file://$MODULE_DIR$/spec" isTestSource="true" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/brick/math" />
|
<excludeFolder url="file://$MODULE_DIR$/vendor/brick/math" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/carbonphp/carbon-doctrine-types" />
|
<excludeFolder url="file://$MODULE_DIR$/vendor/carbonphp/carbon-doctrine-types" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/composer" />
|
<excludeFolder url="file://$MODULE_DIR$/vendor/composer" />
|
||||||
|
|||||||
Generated
-60
@@ -5,66 +5,6 @@
|
|||||||
<PhpSpecSuiteConfiguration>
|
<PhpSpecSuiteConfiguration>
|
||||||
<option name="myPath" value="$PROJECT_DIR$" />
|
<option name="myPath" value="$PROJECT_DIR$" />
|
||||||
</PhpSpecSuiteConfiguration>
|
</PhpSpecSuiteConfiguration>
|
||||||
<PhpSpecSuiteConfiguration>
|
|
||||||
<option name="myPath" value="$PROJECT_DIR$" />
|
|
||||||
</PhpSpecSuiteConfiguration>
|
|
||||||
<PhpSpecSuiteConfiguration>
|
|
||||||
<option name="myPath" value="$PROJECT_DIR$" />
|
|
||||||
</PhpSpecSuiteConfiguration>
|
|
||||||
<PhpSpecSuiteConfiguration>
|
|
||||||
<option name="myPath" value="$PROJECT_DIR$" />
|
|
||||||
</PhpSpecSuiteConfiguration>
|
|
||||||
<PhpSpecSuiteConfiguration>
|
|
||||||
<option name="myPath" value="$PROJECT_DIR$" />
|
|
||||||
</PhpSpecSuiteConfiguration>
|
|
||||||
<PhpSpecSuiteConfiguration>
|
|
||||||
<option name="myPath" value="$PROJECT_DIR$" />
|
|
||||||
</PhpSpecSuiteConfiguration>
|
|
||||||
<PhpSpecSuiteConfiguration>
|
|
||||||
<option name="myPath" value="$PROJECT_DIR$" />
|
|
||||||
</PhpSpecSuiteConfiguration>
|
|
||||||
<PhpSpecSuiteConfiguration>
|
|
||||||
<option name="myPath" value="$PROJECT_DIR$" />
|
|
||||||
</PhpSpecSuiteConfiguration>
|
|
||||||
<PhpSpecSuiteConfiguration>
|
|
||||||
<option name="myPath" value="$PROJECT_DIR$" />
|
|
||||||
</PhpSpecSuiteConfiguration>
|
|
||||||
<PhpSpecSuiteConfiguration>
|
|
||||||
<option name="myPath" value="$PROJECT_DIR$" />
|
|
||||||
</PhpSpecSuiteConfiguration>
|
|
||||||
<PhpSpecSuiteConfiguration>
|
|
||||||
<option name="myPath" value="$PROJECT_DIR$" />
|
|
||||||
</PhpSpecSuiteConfiguration>
|
|
||||||
<PhpSpecSuiteConfiguration>
|
|
||||||
<option name="myPath" value="$PROJECT_DIR$" />
|
|
||||||
</PhpSpecSuiteConfiguration>
|
|
||||||
<PhpSpecSuiteConfiguration>
|
|
||||||
<option name="myPath" value="$PROJECT_DIR$" />
|
|
||||||
</PhpSpecSuiteConfiguration>
|
|
||||||
<PhpSpecSuiteConfiguration>
|
|
||||||
<option name="myPath" value="$PROJECT_DIR$" />
|
|
||||||
</PhpSpecSuiteConfiguration>
|
|
||||||
<PhpSpecSuiteConfiguration>
|
|
||||||
<option name="myPath" value="$PROJECT_DIR$" />
|
|
||||||
</PhpSpecSuiteConfiguration>
|
|
||||||
<PhpSpecSuiteConfiguration>
|
|
||||||
<option name="myPath" value="$PROJECT_DIR$" />
|
|
||||||
</PhpSpecSuiteConfiguration>
|
|
||||||
<PhpSpecSuiteConfiguration>
|
|
||||||
<option name="myPath" value="$PROJECT_DIR$" />
|
|
||||||
</PhpSpecSuiteConfiguration>
|
|
||||||
<PhpSpecSuiteConfiguration>
|
|
||||||
<option name="myPath" value="$PROJECT_DIR$" />
|
|
||||||
</PhpSpecSuiteConfiguration>
|
|
||||||
<PhpSpecSuiteConfiguration>
|
|
||||||
<option name="myPath" value="$PROJECT_DIR$" />
|
|
||||||
</PhpSpecSuiteConfiguration>
|
|
||||||
<PhpSpecSuiteConfiguration>
|
|
||||||
<option name="myPath" value="$PROJECT_DIR$" />
|
|
||||||
</PhpSpecSuiteConfiguration>
|
|
||||||
<PhpSpecSuiteConfiguration>
|
|
||||||
<option name="myPath" value="$PROJECT_DIR$" />
|
|
||||||
</PhpSpecSuiteConfiguration>
|
|
||||||
</suites>
|
</suites>
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
FROM php:8.2-fpm
|
FROM php:8.2-fpm
|
||||||
|
|
||||||
|
# Установка необходимых пакетов
|
||||||
RUN apt-get update && apt-get install -y \
|
RUN apt-get update && apt-get install -y \
|
||||||
apt-utils \
|
apt-utils \
|
||||||
libpq-dev \
|
libpq-dev \
|
||||||
@@ -9,7 +10,6 @@ RUN apt-get update && apt-get install -y \
|
|||||||
libjpeg62-turbo-dev \
|
libjpeg62-turbo-dev \
|
||||||
libmcrypt-dev \
|
libmcrypt-dev \
|
||||||
libgd-dev \
|
libgd-dev \
|
||||||
libpng-dev \
|
|
||||||
libwebp-dev \
|
libwebp-dev \
|
||||||
libzip-dev \
|
libzip-dev \
|
||||||
zip \
|
zip \
|
||||||
@@ -23,24 +23,24 @@ RUN apt-get update && apt-get install -y \
|
|||||||
apt-get clean && \
|
apt-get clean && \
|
||||||
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||||
|
|
||||||
#RUN apt-get update && \
|
# Установка дополнительных библиотек
|
||||||
# apt-get install -y libmagickwand-dev
|
|
||||||
#
|
|
||||||
#RUN pecl install imagick
|
|
||||||
#
|
|
||||||
#RUN docker-php-ext-enable imagick
|
|
||||||
|
|
||||||
RUN apt-get update && apt-get install -y zlib1g-dev libicu-dev g++
|
RUN apt-get update && apt-get install -y zlib1g-dev libicu-dev g++
|
||||||
RUN docker-php-ext-configure intl
|
RUN docker-php-ext-configure intl
|
||||||
RUN docker-php-ext-install intl
|
RUN docker-php-ext-install intl
|
||||||
|
|
||||||
|
# Установка Supervisor
|
||||||
|
RUN apt-get update && apt-get install -y supervisor
|
||||||
|
|
||||||
|
# Копирование конфигурационного файла PHP
|
||||||
COPY ./_docker/app/php.ini /usr/local/etc/php/conf.d/php.ini
|
COPY ./_docker/app/php.ini /usr/local/etc/php/conf.d/php.ini
|
||||||
|
|
||||||
# Установка Node.js
|
# Установка Node.js
|
||||||
RUN curl -sL https://deb.nodesource.com/setup_14.x | bash -
|
RUN curl -sL https://deb.nodesource.com/setup_14.x | bash -
|
||||||
RUN apt-get install -y nodejs npm
|
RUN apt-get install -y nodejs npm
|
||||||
|
|
||||||
|
# Копирование конфигурации Supervisor
|
||||||
|
COPY ./_docker/supervisor/supervisord.conf /etc/supervisor/conf.d/supervisord.conf
|
||||||
|
|
||||||
EXPOSE 6001
|
EXPOSE 6001
|
||||||
EXPOSE 5173
|
EXPOSE 5173
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
post_max_size = 128M
|
post_max_size = 128M
|
||||||
upload_max_filesize = 128M
|
upload_max_filesize = 128M
|
||||||
memory_limit = 256M
|
memory_limit = 256M
|
||||||
|
request_terminate_timeout = 300
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
server {
|
server {
|
||||||
client_max_body_size 200M;
|
client_max_body_size 200M;
|
||||||
large_client_header_buffers 4 128k;
|
large_client_header_buffers 8 256k;
|
||||||
|
fastcgi_buffers 16 16k;
|
||||||
|
fastcgi_buffer_size 32k;
|
||||||
|
|
||||||
root /var/www/public;
|
root /var/www/public;
|
||||||
location / {
|
location / {
|
||||||
|
|||||||
@@ -0,0 +1,22 @@
|
|||||||
|
[supervisord]
|
||||||
|
nodaemon=true
|
||||||
|
|
||||||
|
[program:laravel-worker]
|
||||||
|
process_name=%(program_name)s_%(process_num)02d
|
||||||
|
command=php /var/www/artisan queue:work --sleep=3 --tries=3
|
||||||
|
autostart=true
|
||||||
|
autorestart=true
|
||||||
|
user=www-data
|
||||||
|
numprocs=1
|
||||||
|
redirect_stderr=true
|
||||||
|
stdout_logfile=/var/www/storage/logs/worker.log
|
||||||
|
|
||||||
|
[program:inertia-worker]
|
||||||
|
process_name=%(program_name)s_%(process_num)02d
|
||||||
|
command=php /var/www/artisan inertia:start-ssr
|
||||||
|
autostart=true
|
||||||
|
autorestart=true
|
||||||
|
user=www-data
|
||||||
|
numprocs=1
|
||||||
|
redirect_stderr=true
|
||||||
|
stdout_logfile=/var/www/storage/logs/inertia-worker.log
|
||||||
@@ -50,6 +50,7 @@ class ClientEventController extends Controller
|
|||||||
{
|
{
|
||||||
$event = new ClientEventFullResource(Event::where('slug', '=', $slug)->with('category')->first());
|
$event = new ClientEventFullResource(Event::where('slug', '=', $slug)->with('category')->first());
|
||||||
|
|
||||||
|
|
||||||
$routeUrl = route('client.event.index');
|
$routeUrl = route('client.event.index');
|
||||||
$path = ltrim(parse_url($routeUrl, PHP_URL_PATH), '/');
|
$path = ltrim(parse_url($routeUrl, PHP_URL_PATH), '/');
|
||||||
|
|
||||||
|
|||||||
@@ -140,7 +140,6 @@ class ClientPostController extends Controller
|
|||||||
'page' => new ClientBreadcrumbPage($page),
|
'page' => new ClientBreadcrumbPage($page),
|
||||||
];
|
];
|
||||||
} else {
|
} else {
|
||||||
$subSectionPages = null;
|
|
||||||
$breadcrumbs = null;
|
$breadcrumbs = null;
|
||||||
}
|
}
|
||||||
return Inertia::render('Client/Posts/Show', compact('post', 'breadcrumbs'));
|
return Inertia::render('Client/Posts/Show', compact('post', 'breadcrumbs'));
|
||||||
|
|||||||
+3
-3
@@ -6,13 +6,14 @@
|
|||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"require": {
|
"require": {
|
||||||
"php": "^8.1",
|
"php": "^8.1",
|
||||||
|
"ext-curl": "*",
|
||||||
"awcodes/filament-tiptap-editor": "^3.0",
|
"awcodes/filament-tiptap-editor": "^3.0",
|
||||||
"bezhansalleh/filament-shield": "^3.2",
|
"bezhansalleh/filament-shield": "^3.2",
|
||||||
"filament/filament": "^3.0-stable",
|
"filament/filament": "^3.0-stable",
|
||||||
"filament/spatie-laravel-tags-plugin": "^3.2",
|
"filament/spatie-laravel-tags-plugin": "^3.2",
|
||||||
"guava/filament-icon-picker": "^2.0",
|
"guava/filament-icon-picker": "^2.0",
|
||||||
"guzzlehttp/guzzle": "^7.8",
|
"guzzlehttp/guzzle": "^7.8",
|
||||||
"inertiajs/inertia-laravel": "^0.6.8",
|
"inertiajs/inertia-laravel": "^1.3",
|
||||||
"intervention/image": "^2.7",
|
"intervention/image": "^2.7",
|
||||||
"joshembling/image-optimizer": "^1.4",
|
"joshembling/image-optimizer": "^1.4",
|
||||||
"laravel/framework": "^10.10",
|
"laravel/framework": "^10.10",
|
||||||
@@ -25,8 +26,7 @@
|
|||||||
"symfony/filesystem": "^6.3",
|
"symfony/filesystem": "^6.3",
|
||||||
"tightenco/ziggy": "^1.0",
|
"tightenco/ziggy": "^1.0",
|
||||||
"vkcom/vk-php-sdk": "^5.131",
|
"vkcom/vk-php-sdk": "^5.131",
|
||||||
"xvladqt/faker-lorem-flickr": "^1.0",
|
"xvladqt/faker-lorem-flickr": "^1.0"
|
||||||
"ext-curl": "*"
|
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"fakerphp/faker": "^1.9.1",
|
"fakerphp/faker": "^1.9.1",
|
||||||
|
|||||||
Generated
+19
-14
@@ -4,7 +4,7 @@
|
|||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "6cfaed46970b24b641b3caedbebbdbe4",
|
"content-hash": "4ec8fd7d71eed92d6bd7cd1106725919",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "anourvalar/eloquent-serialize",
|
"name": "anourvalar/eloquent-serialize",
|
||||||
@@ -2617,27 +2617,28 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "inertiajs/inertia-laravel",
|
"name": "inertiajs/inertia-laravel",
|
||||||
"version": "v0.6.11",
|
"version": "v1.3.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/inertiajs/inertia-laravel.git",
|
"url": "https://github.com/inertiajs/inertia-laravel.git",
|
||||||
"reference": "2a1e19048f95c0e4adb2b2733f9119e49c4fc09f"
|
"reference": "36730d13b1dab9017069004fd458b3e67449a326"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/inertiajs/inertia-laravel/zipball/2a1e19048f95c0e4adb2b2733f9119e49c4fc09f",
|
"url": "https://api.github.com/repos/inertiajs/inertia-laravel/zipball/36730d13b1dab9017069004fd458b3e67449a326",
|
||||||
"reference": "2a1e19048f95c0e4adb2b2733f9119e49c4fc09f",
|
"reference": "36730d13b1dab9017069004fd458b3e67449a326",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"ext-json": "*",
|
"ext-json": "*",
|
||||||
"laravel/framework": "^6.0|^7.0|^8.74|^9.0|^10.0",
|
"laravel/framework": "^8.74|^9.0|^10.0|^11.0",
|
||||||
"php": "^7.2|~8.0.0|~8.1.0|~8.2.0|~8.3.0"
|
"php": "^7.3|~8.0.0|~8.1.0|~8.2.0|~8.3.0",
|
||||||
|
"symfony/console": "^5.3|^6.0|^7.0"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"mockery/mockery": "^1.3.3",
|
"mockery/mockery": "^1.3.3",
|
||||||
"orchestra/testbench": "^4.0|^5.0|^6.4|^7.0|^8.0",
|
"orchestra/testbench": "^6.4|^7.0|^8.0|^9.0",
|
||||||
"phpunit/phpunit": "^8.0|^9.5.8",
|
"phpunit/phpunit": "^8.0|^9.5.8|^10.4",
|
||||||
"roave/security-advisories": "dev-master"
|
"roave/security-advisories": "dev-master"
|
||||||
},
|
},
|
||||||
"suggest": {
|
"suggest": {
|
||||||
@@ -2649,6 +2650,9 @@
|
|||||||
"providers": [
|
"providers": [
|
||||||
"Inertia\\ServiceProvider"
|
"Inertia\\ServiceProvider"
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "1.x-dev"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
@@ -2677,7 +2681,7 @@
|
|||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/inertiajs/inertia-laravel/issues",
|
"issues": "https://github.com/inertiajs/inertia-laravel/issues",
|
||||||
"source": "https://github.com/inertiajs/inertia-laravel/tree/v0.6.11"
|
"source": "https://github.com/inertiajs/inertia-laravel/tree/v1.3.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@@ -2685,7 +2689,7 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2023-10-27T10:59:02+00:00"
|
"time": "2024-06-13T01:25:09+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "intervention/image",
|
"name": "intervention/image",
|
||||||
@@ -11798,12 +11802,13 @@
|
|||||||
],
|
],
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"minimum-stability": "dev",
|
"minimum-stability": "dev",
|
||||||
"stability-flags": {},
|
"stability-flags": [],
|
||||||
"prefer-stable": true,
|
"prefer-stable": true,
|
||||||
"prefer-lowest": false,
|
"prefer-lowest": false,
|
||||||
"platform": {
|
"platform": {
|
||||||
"php": "^8.1"
|
"php": "^8.1",
|
||||||
|
"ext-curl": "*"
|
||||||
},
|
},
|
||||||
"platform-dev": {},
|
"platform-dev": [],
|
||||||
"plugin-api-version": "2.6.0"
|
"plugin-api-version": "2.6.0"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ services:
|
|||||||
container_name: ntspi-php
|
container_name: ntspi-php
|
||||||
ports:
|
ports:
|
||||||
- '5173'
|
- '5173'
|
||||||
|
command: ["/usr/bin/supervisord"]
|
||||||
|
|
||||||
db:
|
db:
|
||||||
image: mysql:8.0
|
image: mysql:8.0
|
||||||
|
|||||||
Generated
+3298
-49
File diff suppressed because it is too large
Load Diff
+7
-4
@@ -3,19 +3,20 @@
|
|||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite --host",
|
"dev": "vite --host",
|
||||||
"build": "vite build",
|
"build": "vite build && vite build --ssr"
|
||||||
"watch": "vite"
|
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@inertiajs/vue3": "^1.0.0",
|
"@inertiajs/vue3": "^1.0.0",
|
||||||
"@tailwindcss/forms": "^0.5.3",
|
"@tailwindcss/forms": "^0.5.3",
|
||||||
|
"@types/lodash": "^4.17.13",
|
||||||
"@vitejs/plugin-vue": "^4.6.2",
|
"@vitejs/plugin-vue": "^4.6.2",
|
||||||
"autoprefixer": "^10.4.12",
|
"autoprefixer": "^10.4.12",
|
||||||
"axios": "^1.1.2",
|
"axios": "^1.1.2",
|
||||||
"bvi": "^1.0.2",
|
"bvi": "^1.0.2",
|
||||||
"daisyui": "^3.9.3",
|
"i": "^0.3.7",
|
||||||
"laravel-vite-plugin": "^0.8.1",
|
"laravel-vite-plugin": "^0.8.1",
|
||||||
"lodash": "^4.17.21",
|
"lodash": "^4.17.21",
|
||||||
|
"npm": "^10.9.0",
|
||||||
"postcss": "^8.4.18",
|
"postcss": "^8.4.18",
|
||||||
"tailwindcss": "^3.2.1",
|
"tailwindcss": "^3.2.1",
|
||||||
"vite": "^5.3.3",
|
"vite": "^5.3.3",
|
||||||
@@ -34,7 +35,9 @@
|
|||||||
"@preline/overlay": "^1.4.0",
|
"@preline/overlay": "^1.4.0",
|
||||||
"@preline/scrollspy": "^2.0.0",
|
"@preline/scrollspy": "^2.0.0",
|
||||||
"@preline/select": "^2.5.0",
|
"@preline/select": "^2.5.0",
|
||||||
"flowbite": "^1.8.1",
|
"@vue/server-renderer": "^3.5.12",
|
||||||
|
"daisyui": "^4.12.14",
|
||||||
|
"flowbite": "^2.5.2",
|
||||||
"fslightbox": "^3.4.1",
|
"fslightbox": "^3.4.1",
|
||||||
"fslightbox-vue": "^2.1.3",
|
"fslightbox-vue": "^2.1.3",
|
||||||
"preline": "^1.9.0",
|
"preline": "^1.9.0",
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
.fade-enter-active[data-v-a071b57e],.fade-leave-active[data-v-a071b57e]{transition:all .5s ease}.fade-enter-from[data-v-a071b57e],.fade-leave-to[data-v-a071b57e]{opacity:0;transform:translateY(30px)}.gg-enter-active[data-v-a071b57e],.gg-leave-active[data-v-a071b57e]{transition:all .5s ease}.gg-enter-from[data-v-a071b57e],.gg-leave-to[data-v-a071b57e]{opacity:0;transform:translateY(30px)}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
.header-filter[data-v-dc2022ad]{transition:all .3s;-webkit-backdrop-filter:saturate(180%) blur(7px);backdrop-filter:saturate(180%) blur(7px);background:#fff9}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
.header-filter[data-v-2a88d49e]{transition:all .3s;-webkit-backdrop-filter:saturate(180%) blur(7px);backdrop-filter:saturate(180%) blur(7px);background:#fff9}.header-filter[data-v-51ebcf34]{transition:all .3s;-webkit-backdrop-filter:saturate(180%) blur(7px);backdrop-filter:saturate(180%) blur(7px)}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
.fade-enter-active[data-v-9010082e],.fade-leave-active[data-v-9010082e]{transition:all .5s ease}.fade-enter-from[data-v-9010082e],.fade-leave-to[data-v-9010082e]{opacity:0;transform:translateY(30px)}.gg-enter-active[data-v-9010082e],.gg-leave-active[data-v-9010082e]{transition:all .5s ease}.gg-enter-from[data-v-9010082e],.gg-leave-to[data-v-9010082e]{opacity:0;transform:translateY(30px)}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
.filter[data-v-43b95455]{filter:saturate(100%) blur(3px)}.hide-scrollbar[data-v-43adfa6e]::-webkit-scrollbar{display:none}.hide-scrollbar[data-v-43adfa6e]{-ms-overflow-style:none;scrollbar-width:none}.header-filter[data-v-a6f94d9f],.header-filter[data-v-94de9d01]{transition:all .3s;-webkit-backdrop-filter:saturate(180%) blur(7px);backdrop-filter:saturate(180%) blur(7px);background:#fff9}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
.unselectable[data-v-87433eec]{-moz-user-select:none;-webkit-user-select:none;user-select:none}.fade-enter-active[data-v-87433eec],.fade-leave-active[data-v-87433eec]{transition:all .5s ease}.fade-enter-from[data-v-87433eec],.fade-leave-to[data-v-87433eec]{opacity:0;transform:translateY(30px)}.gg-enter-active[data-v-87433eec],.gg-leave-active[data-v-87433eec]{transition:all .5s ease}.gg-enter-from[data-v-87433eec],.gg-leave-to[data-v-87433eec]{opacity:0;transform:translateY(30px)}
|
|
||||||
File diff suppressed because one or more lines are too long
+577
-519
File diff suppressed because it is too large
Load Diff
@@ -20,7 +20,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { debounce } from "lodash/function.js";
|
import { debounce } from "lodash";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "AdminIndexSearch",
|
name: "AdminIndexSearch",
|
||||||
|
|||||||
+4
-1
@@ -115,7 +115,10 @@ export default {
|
|||||||
return text
|
return text
|
||||||
},
|
},
|
||||||
isMobileDevice() {
|
isMobileDevice() {
|
||||||
return window.innerWidth < 1024; // Задайте порог для мобильных устройств
|
if (typeof window !== 'undefined') {
|
||||||
|
return window.innerWidth < 1024; // Проверка на мобильные устройства
|
||||||
|
}
|
||||||
|
return false; // По умолчанию возвращаем false, когда не в браузере
|
||||||
},
|
},
|
||||||
handleSectionClick(breadcrumb) {
|
handleSectionClick(breadcrumb) {
|
||||||
if (this.isMobileDevice()) {
|
if (this.isMobileDevice()) {
|
||||||
|
|||||||
+4
-1
@@ -93,7 +93,10 @@ export default {
|
|||||||
return text
|
return text
|
||||||
},
|
},
|
||||||
isMobileDevice() {
|
isMobileDevice() {
|
||||||
return window.innerWidth < 1024; // Задайте порог для мобильных устройств
|
if (typeof window !== 'undefined') {
|
||||||
|
return window.innerWidth < 1024; // Проверка на мобильные устройства
|
||||||
|
}
|
||||||
|
return false; // По умолчанию возвращаем false, когда не в браузере
|
||||||
},
|
},
|
||||||
handleSectionClick(breadcrumb) {
|
handleSectionClick(breadcrumb) {
|
||||||
if (this.isMobileDevice()) {
|
if (this.isMobileDevice()) {
|
||||||
|
|||||||
-1
@@ -62,7 +62,6 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import {debounce} from "lodash/function.js";
|
|
||||||
import BaseIcon from "@/Components/BaseComponents/BaseIcon.vue";
|
import BaseIcon from "@/Components/BaseComponents/BaseIcon.vue";
|
||||||
import CategoryFilter from "@/Components/BuilderUi/Events/Filters/CategoryFilter.vue";
|
import CategoryFilter from "@/Components/BuilderUi/Events/Filters/CategoryFilter.vue";
|
||||||
import TagFilter from "@/Components/BuilderUi/Events/Filters/TagFilter.vue";
|
import TagFilter from "@/Components/BuilderUi/Events/Filters/TagFilter.vue";
|
||||||
|
|||||||
+1
-1
@@ -26,7 +26,7 @@ import slugify from "slugify";
|
|||||||
import SearchBadge from "@/Components/BuilderUi/Events/Badges/SearchBadge.vue";
|
import SearchBadge from "@/Components/BuilderUi/Events/Badges/SearchBadge.vue";
|
||||||
import CategoryBadge from "@/Components/BuilderUi/Events/Badges/CategoryBadge.vue";
|
import CategoryBadge from "@/Components/BuilderUi/Events/Badges/CategoryBadge.vue";
|
||||||
import BaseIcon from "@/Components/BaseComponents/BaseIcon.vue";
|
import BaseIcon from "@/Components/BaseComponents/BaseIcon.vue";
|
||||||
import {debounce} from "lodash/function.js";
|
import {debounce} from "lodash";
|
||||||
export default {
|
export default {
|
||||||
name: "BudgetFilter",
|
name: "BudgetFilter",
|
||||||
components: {
|
components: {
|
||||||
|
|||||||
+1
-1
@@ -26,7 +26,7 @@ import slugify from "slugify";
|
|||||||
import SearchBadge from "@/Components/BuilderUi/Events/Badges/SearchBadge.vue";
|
import SearchBadge from "@/Components/BuilderUi/Events/Badges/SearchBadge.vue";
|
||||||
import CategoryBadge from "@/Components/BuilderUi/Events/Badges/CategoryBadge.vue";
|
import CategoryBadge from "@/Components/BuilderUi/Events/Badges/CategoryBadge.vue";
|
||||||
import BaseIcon from "@/Components/BaseComponents/BaseIcon.vue";
|
import BaseIcon from "@/Components/BaseComponents/BaseIcon.vue";
|
||||||
import {debounce} from "lodash/function.js";
|
import {debounce} from "lodash";
|
||||||
export default {
|
export default {
|
||||||
name: "CategoryFilter",
|
name: "CategoryFilter",
|
||||||
components: {
|
components: {
|
||||||
|
|||||||
+1
-1
@@ -26,7 +26,7 @@ import slugify from "slugify";
|
|||||||
import SearchBadge from "@/Components/BuilderUi/Events/Badges/SearchBadge.vue";
|
import SearchBadge from "@/Components/BuilderUi/Events/Badges/SearchBadge.vue";
|
||||||
import CategoryBadge from "@/Components/BuilderUi/Events/Badges/CategoryBadge.vue";
|
import CategoryBadge from "@/Components/BuilderUi/Events/Badges/CategoryBadge.vue";
|
||||||
import BaseIcon from "@/Components/BaseComponents/BaseIcon.vue";
|
import BaseIcon from "@/Components/BaseComponents/BaseIcon.vue";
|
||||||
import {debounce} from "lodash/function.js";
|
import {debounce} from "lodash";
|
||||||
export default {
|
export default {
|
||||||
name: "FormEducationalFilter",
|
name: "FormEducationalFilter",
|
||||||
components: {
|
components: {
|
||||||
|
|||||||
+1
-1
@@ -10,7 +10,7 @@ import slugify from "slugify";
|
|||||||
import SearchBadge from "@/Components/BuilderUi/Events/Badges/SearchBadge.vue";
|
import SearchBadge from "@/Components/BuilderUi/Events/Badges/SearchBadge.vue";
|
||||||
import CategoryBadge from "@/Components/BuilderUi/Events/Badges/CategoryBadge.vue";
|
import CategoryBadge from "@/Components/BuilderUi/Events/Badges/CategoryBadge.vue";
|
||||||
import BaseIcon from "@/Components/BaseComponents/BaseIcon.vue";
|
import BaseIcon from "@/Components/BaseComponents/BaseIcon.vue";
|
||||||
import {debounce} from "lodash/function.js";
|
import {debounce} from "lodash";
|
||||||
export default {
|
export default {
|
||||||
name: "LevelEduFilter",
|
name: "LevelEduFilter",
|
||||||
components: {
|
components: {
|
||||||
|
|||||||
+1
-1
@@ -17,7 +17,7 @@ import slugify from "slugify";
|
|||||||
import SearchBadge from "@/Components/BuilderUi/Events/Badges/SearchBadge.vue";
|
import SearchBadge from "@/Components/BuilderUi/Events/Badges/SearchBadge.vue";
|
||||||
import CategoryBadge from "@/Components/BuilderUi/Events/Badges/CategoryBadge.vue";
|
import CategoryBadge from "@/Components/BuilderUi/Events/Badges/CategoryBadge.vue";
|
||||||
import BaseIcon from "@/Components/BaseComponents/BaseIcon.vue";
|
import BaseIcon from "@/Components/BaseComponents/BaseIcon.vue";
|
||||||
import {debounce} from "lodash/function.js";
|
import {debounce} from "lodash";
|
||||||
export default {
|
export default {
|
||||||
name: "SortingByFilter",
|
name: "SortingByFilter",
|
||||||
components: {
|
components: {
|
||||||
|
|||||||
@@ -137,7 +137,10 @@ export default {
|
|||||||
return text
|
return text
|
||||||
},
|
},
|
||||||
isMobileDevice() {
|
isMobileDevice() {
|
||||||
return window.innerWidth < 1024; // Задайте порог для мобильных устройств
|
if (typeof window !== 'undefined') {
|
||||||
|
return window.innerWidth < 1024; // Проверка на мобильные устройства
|
||||||
|
}
|
||||||
|
return false; // По умолчанию возвращаем false, когда не в браузере
|
||||||
},
|
},
|
||||||
handleSectionClick(breadcrumb) {
|
handleSectionClick(breadcrumb) {
|
||||||
if (this.isMobileDevice()) {
|
if (this.isMobileDevice()) {
|
||||||
|
|||||||
@@ -93,7 +93,10 @@ export default {
|
|||||||
return text
|
return text
|
||||||
},
|
},
|
||||||
isMobileDevice() {
|
isMobileDevice() {
|
||||||
return window.innerWidth < 1024; // Задайте порог для мобильных устройств
|
if (typeof window !== 'undefined') {
|
||||||
|
return window.innerWidth < 1024; // Проверка на мобильные устройства
|
||||||
|
}
|
||||||
|
return false; // По умолчанию возвращаем false, когда не в браузере
|
||||||
},
|
},
|
||||||
handleSectionClick(breadcrumb) {
|
handleSectionClick(breadcrumb) {
|
||||||
if (this.isMobileDevice()) {
|
if (this.isMobileDevice()) {
|
||||||
|
|||||||
@@ -115,7 +115,10 @@ export default {
|
|||||||
return text
|
return text
|
||||||
},
|
},
|
||||||
isMobileDevice() {
|
isMobileDevice() {
|
||||||
return window.innerWidth < 1024; // Задайте порог для мобильных устройств
|
if (typeof window !== 'undefined') {
|
||||||
|
return window.innerWidth < 1024; // Проверка на мобильные устройства
|
||||||
|
}
|
||||||
|
return false; // По умолчанию возвращаем false, когда не в браузере
|
||||||
},
|
},
|
||||||
handleSectionClick(breadcrumb) {
|
handleSectionClick(breadcrumb) {
|
||||||
if (this.isMobileDevice()) {
|
if (this.isMobileDevice()) {
|
||||||
|
|||||||
@@ -93,7 +93,10 @@ export default {
|
|||||||
return text
|
return text
|
||||||
},
|
},
|
||||||
isMobileDevice() {
|
isMobileDevice() {
|
||||||
return window.innerWidth < 1024; // Задайте порог для мобильных устройств
|
if (typeof window !== 'undefined') {
|
||||||
|
return window.innerWidth < 1024; // Проверка на мобильные устройства
|
||||||
|
}
|
||||||
|
return false; // По умолчанию возвращаем false, когда не в браузере
|
||||||
},
|
},
|
||||||
handleSectionClick(breadcrumb) {
|
handleSectionClick(breadcrumb) {
|
||||||
if (this.isMobileDevice()) {
|
if (this.isMobileDevice()) {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<span v-if="this.filter.value !== null" class="inline-flex items-center gap-x-1.5 py-1.5 ps-3 pe-2 rounded-full text-xs font-medium bg-blue-100 text-blue-800">
|
<span v-if="filter.value !== null" class="inline-flex items-center gap-x-1.5 py-1.5 ps-3 pe-2 rounded-full text-xs font-medium bg-blue-100 text-blue-800">
|
||||||
{{ (filter.value.length > 1) ? filter.value.length + ' категории' : filter.content[filter.value[0]].data.title }}
|
{{ (filter.value.length > 1) ? filter.value.length + ' категории' : filter.content[filter.value[0]].data.title }}
|
||||||
<button @click.prevent="clearFilter" type="button" class="shrink-0 size-4 inline-flex items-center justify-center rounded-full hover:bg-blue-200 focus:outline-none focus:bg-blue-200 focus:text-blue-500">
|
<button @click.prevent="clearFilter" type="button" class="shrink-0 size-4 inline-flex items-center justify-center rounded-full hover:bg-blue-200 focus:outline-none focus:bg-blue-200 focus:text-blue-500">
|
||||||
<span class="sr-only">Remove badge</span>
|
<span class="sr-only">Remove badge</span>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<span v-if="this.filter.value !== null" class="inline-flex items-center gap-x-1.5 py-1.5 ps-3 pe-2 rounded-full text-xs font-medium bg-blue-100 text-blue-800">
|
<span v-if="filter.value !== null" class="inline-flex items-center gap-x-1.5 py-1.5 ps-3 pe-2 rounded-full text-xs font-medium bg-blue-100 text-blue-800">
|
||||||
Поиск: {{ filter.value }}
|
Поиск: {{ filter.value }}
|
||||||
<button @click.prevent="clearFilter" type="button" class="shrink-0 size-4 inline-flex items-center justify-center rounded-full hover:bg-blue-200 focus:outline-none focus:bg-blue-200 focus:text-blue-500">
|
<button @click.prevent="clearFilter" type="button" class="shrink-0 size-4 inline-flex items-center justify-center rounded-full hover:bg-blue-200 focus:outline-none focus:bg-blue-200 focus:text-blue-500">
|
||||||
<span class="sr-only">Remove badge</span>
|
<span class="sr-only">Remove badge</span>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<span v-if="this.filter.value !== null" class="inline-flex items-center gap-x-1.5 py-1.5 ps-3 pe-2 rounded-full text-xs font-medium bg-blue-100 text-blue-800">
|
<span v-if="filter.value !== null" class="inline-flex items-center gap-x-1.5 py-1.5 ps-3 pe-2 rounded-full text-xs font-medium bg-blue-100 text-blue-800">
|
||||||
{{ (filter.value.length > 1) ? 'Тэг: ' + filter.value.length + ' значений' : '#' + JSON.parse(filter.content[filter.value].data.name).ru }}
|
{{ (filter.value.length > 1) ? 'Тэг: ' + filter.value.length + ' значений' : '#' + JSON.parse(filter.content[filter.value].data.name).ru }}
|
||||||
<button @click.prevent="clearFilter" type="button" class="shrink-0 size-4 inline-flex items-center justify-center rounded-full hover:bg-blue-200 focus:outline-none focus:bg-blue-200 focus:text-blue-500">
|
<button @click.prevent="clearFilter" type="button" class="shrink-0 size-4 inline-flex items-center justify-center rounded-full hover:bg-blue-200 focus:outline-none focus:bg-blue-200 focus:text-blue-500">
|
||||||
<span class="sr-only">Remove badge</span>
|
<span class="sr-only">Remove badge</span>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
|
|
||||||
<Link :href="route(this.link)" class="inline-flex items-center gap-x-1.5 text-sm text-gray-600 decoration-2 hover:underline dark:text-blue-500">
|
<Link :href="route(link)" class="inline-flex items-center gap-x-1.5 text-sm text-gray-600 decoration-2 hover:underline dark:text-blue-500">
|
||||||
<svg class="flex-shrink-0 size-4" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m15 18-6-6 6-6"/></svg>
|
<svg class="flex-shrink-0 size-4" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m15 18-6-6 6-6"/></svg>
|
||||||
{{ title }}
|
{{ title }}
|
||||||
</Link>
|
</Link>
|
||||||
|
|||||||
@@ -44,7 +44,7 @@
|
|||||||
</Link>
|
</Link>
|
||||||
</li>
|
</li>
|
||||||
<li class="text-sm">
|
<li class="text-sm">
|
||||||
<Link :href="this.$inertia.page.props.ziggy.location" class="flex items-center text-gray-500 hover:text-blue-600">
|
<Link :href="$page.props.ziggy.location" class="flex items-center text-gray-500 hover:text-blue-600">
|
||||||
<svg class="flex-shrink-0 mx-2 overflow-visible h-2.5 w-2.5 text-gray-400"
|
<svg class="flex-shrink-0 mx-2 overflow-visible h-2.5 w-2.5 text-gray-400"
|
||||||
width="16" height="16"
|
width="16" height="16"
|
||||||
viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
@@ -74,7 +74,7 @@
|
|||||||
</Link>
|
</Link>
|
||||||
</li>
|
</li>
|
||||||
<li class="text-sm">
|
<li class="text-sm">
|
||||||
<Link :href="this.$inertia.page.props.ziggy.location" class="flex items-center text-gray-500 hover:text-blue-600">
|
<Link :href="$page.props.ziggy.location" class="flex items-center text-gray-500 hover:text-blue-600">
|
||||||
<svg class="flex-shrink-0 mx-2 overflow-visible h-2.5 w-2.5 text-gray-400"
|
<svg class="flex-shrink-0 mx-2 overflow-visible h-2.5 w-2.5 text-gray-400"
|
||||||
width="16" height="16"
|
width="16" height="16"
|
||||||
viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
@@ -115,7 +115,10 @@ export default {
|
|||||||
return text
|
return text
|
||||||
},
|
},
|
||||||
isMobileDevice() {
|
isMobileDevice() {
|
||||||
return window.innerWidth < 1024; // Задайте порог для мобильных устройств
|
if (typeof window !== 'undefined') {
|
||||||
|
return window.innerWidth < 1024; // Проверка на мобильные устройства
|
||||||
|
}
|
||||||
|
return false; // По умолчанию возвращаем false, когда не в браузере
|
||||||
},
|
},
|
||||||
handleSectionClick(breadcrumb) {
|
handleSectionClick(breadcrumb) {
|
||||||
if (this.isMobileDevice()) {
|
if (this.isMobileDevice()) {
|
||||||
|
|||||||
@@ -94,7 +94,10 @@ export default {
|
|||||||
return text
|
return text
|
||||||
},
|
},
|
||||||
isMobileDevice() {
|
isMobileDevice() {
|
||||||
return window.innerWidth < 1024; // Задайте порог для мобильных устройств
|
if (typeof window !== 'undefined') {
|
||||||
|
return window.innerWidth < 1024; // Проверка на мобильные устройства
|
||||||
|
}
|
||||||
|
return false; // По умолчанию возвращаем false, когда не в браузере
|
||||||
},
|
},
|
||||||
handleSectionClick(breadcrumb) {
|
handleSectionClick(breadcrumb) {
|
||||||
if (this.isMobileDevice()) {
|
if (this.isMobileDevice()) {
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ import slugify from "slugify";
|
|||||||
import SearchBadge from "@/Components/BuilderUi/Events/Badges/SearchBadge.vue";
|
import SearchBadge from "@/Components/BuilderUi/Events/Badges/SearchBadge.vue";
|
||||||
import CategoryBadge from "@/Components/BuilderUi/Events/Badges/CategoryBadge.vue";
|
import CategoryBadge from "@/Components/BuilderUi/Events/Badges/CategoryBadge.vue";
|
||||||
import BaseIcon from "@/Components/BaseComponents/BaseIcon.vue";
|
import BaseIcon from "@/Components/BaseComponents/BaseIcon.vue";
|
||||||
import {debounce} from "lodash/function.js";
|
import {debounce} from "lodash";
|
||||||
export default {
|
export default {
|
||||||
name: "CategoryFilter",
|
name: "CategoryFilter",
|
||||||
components: {
|
components: {
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ import slugify from "slugify";
|
|||||||
import SearchBadge from "@/Components/BuilderUi/Events/Badges/SearchBadge.vue";
|
import SearchBadge from "@/Components/BuilderUi/Events/Badges/SearchBadge.vue";
|
||||||
import CategoryBadge from "@/Components/BuilderUi/Events/Badges/CategoryBadge.vue";
|
import CategoryBadge from "@/Components/BuilderUi/Events/Badges/CategoryBadge.vue";
|
||||||
import BaseIcon from "@/Components/BaseComponents/BaseIcon.vue";
|
import BaseIcon from "@/Components/BaseComponents/BaseIcon.vue";
|
||||||
import {debounce} from "lodash/function.js";
|
import {debounce} from "lodash";
|
||||||
export default {
|
export default {
|
||||||
name: "IsOnlineFilter",
|
name: "IsOnlineFilter",
|
||||||
components: {
|
components: {
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
<div class="min-w-[12rem] py-1 space-y-3">
|
<div class="min-w-[12rem] py-1 space-y-3">
|
||||||
<h3 class="font-medium text-gray-900 text-sm mb-2">Сортировать по</h3>
|
<h3 class="font-medium text-gray-900 text-sm mb-2">Сортировать по</h3>
|
||||||
<div>
|
<div>
|
||||||
<select @change="filter" v-model="sortOrder" class="py-2 px-3 pe-9 block w-full border-gray-200 rounded-lg text-sm focus:border-blue-500 focus:ring-blue-500 disabled:opacity-50 disabled:pointer-events-none dark:bg-neutral-900 dark:border-neutral-700 dark:text-neutral-400 dark:placeholder-neutral-500 dark:focus:ring-neutral-600">
|
<select @change="filter()" v-model="sortOrder" class="py-2 px-3 pe-9 block w-full border-gray-200 rounded-lg text-sm focus:border-blue-500 focus:ring-blue-500 disabled:opacity-50 disabled:pointer-events-none dark:bg-neutral-900 dark:border-neutral-700 dark:text-neutral-400 dark:placeholder-neutral-500 dark:focus:ring-neutral-600">
|
||||||
<option value="desc">Дате (Сначала новые)</option>
|
<option value="desc">Дате (Сначала новые)</option>
|
||||||
<option value="asc">Дате (Сначала старые)</option>
|
<option value="asc">Дате (Сначала старые)</option>
|
||||||
</select>
|
</select>
|
||||||
@@ -17,7 +17,7 @@ import slugify from "slugify";
|
|||||||
import SearchBadge from "@/Components/BuilderUi/Events/Badges/SearchBadge.vue";
|
import SearchBadge from "@/Components/BuilderUi/Events/Badges/SearchBadge.vue";
|
||||||
import CategoryBadge from "@/Components/BuilderUi/Events/Badges/CategoryBadge.vue";
|
import CategoryBadge from "@/Components/BuilderUi/Events/Badges/CategoryBadge.vue";
|
||||||
import BaseIcon from "@/Components/BaseComponents/BaseIcon.vue";
|
import BaseIcon from "@/Components/BaseComponents/BaseIcon.vue";
|
||||||
import {debounce} from "lodash/function.js";
|
import {debounce} from "lodash";
|
||||||
export default {
|
export default {
|
||||||
name: "SortingByFilter",
|
name: "SortingByFilter",
|
||||||
components: {
|
components: {
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ import slugify from "slugify";
|
|||||||
import SearchBadge from "@/Components/BuilderUi/Events/Badges/SearchBadge.vue";
|
import SearchBadge from "@/Components/BuilderUi/Events/Badges/SearchBadge.vue";
|
||||||
import CategoryBadge from "@/Components/BuilderUi/Events/Badges/CategoryBadge.vue";
|
import CategoryBadge from "@/Components/BuilderUi/Events/Badges/CategoryBadge.vue";
|
||||||
import BaseIcon from "@/Components/BaseComponents/BaseIcon.vue";
|
import BaseIcon from "@/Components/BaseComponents/BaseIcon.vue";
|
||||||
import {debounce} from "lodash/function.js";
|
import {debounce} from "lodash";
|
||||||
export default {
|
export default {
|
||||||
name: "TagFilter",
|
name: "TagFilter",
|
||||||
components: {
|
components: {
|
||||||
|
|||||||
@@ -115,7 +115,10 @@ export default {
|
|||||||
return text
|
return text
|
||||||
},
|
},
|
||||||
isMobileDevice() {
|
isMobileDevice() {
|
||||||
return window.innerWidth < 1024; // Задайте порог для мобильных устройств
|
if (typeof window !== 'undefined') {
|
||||||
|
return window.innerWidth < 1024; // Проверка на мобильные устройства
|
||||||
|
}
|
||||||
|
return false; // По умолчанию возвращаем false, когда не в браузере
|
||||||
},
|
},
|
||||||
handleSectionClick(breadcrumb) {
|
handleSectionClick(breadcrumb) {
|
||||||
if (this.isMobileDevice()) {
|
if (this.isMobileDevice()) {
|
||||||
|
|||||||
@@ -93,7 +93,10 @@ export default {
|
|||||||
return text
|
return text
|
||||||
},
|
},
|
||||||
isMobileDevice() {
|
isMobileDevice() {
|
||||||
return window.innerWidth < 1024; // Задайте порог для мобильных устройств
|
if (typeof window !== 'undefined') {
|
||||||
|
return window.innerWidth < 1024; // Проверка на мобильные устройства
|
||||||
|
}
|
||||||
|
return false; // По умолчанию возвращаем false, когда не в браузере
|
||||||
},
|
},
|
||||||
handleSectionClick(breadcrumb) {
|
handleSectionClick(breadcrumb) {
|
||||||
if (this.isMobileDevice()) {
|
if (this.isMobileDevice()) {
|
||||||
|
|||||||
@@ -11,36 +11,36 @@
|
|||||||
</Link>
|
</Link>
|
||||||
</li>
|
</li>
|
||||||
<li v-if="breadcrumbs.mainSection" class="text-sm">
|
<li v-if="breadcrumbs.mainSection" class="text-sm">
|
||||||
<span class="flex items-center text-gray-500 hover:text-primaryBlue cursor-pointer" @click.prevent="handleSectionClick(this.breadcrumbs.mainSection)">
|
<span class="flex items-center text-gray-500 hover:text-primaryBlue cursor-pointer" @click.prevent="handleSectionClick(breadcrumbs.mainSection)">
|
||||||
<svg class="flex-shrink-0 mx-2 overflow-visible h-2.5 w-2.5 text-gray-400"
|
<svg class="flex-shrink-0 mx-2 overflow-visible h-2.5 w-2.5 text-gray-400"
|
||||||
width="16" height="16"
|
width="16" height="16"
|
||||||
viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
<path d="M5 1L10.6869 7.16086C10.8637 7.35239 10.8637 7.64761 10.6869 7.83914L5 14"
|
<path d="M5 1L10.6869 7.16086C10.8637 7.35239 10.8637 7.64761 10.6869 7.83914L5 14"
|
||||||
stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
|
stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
|
||||||
</svg>
|
</svg>
|
||||||
{{ textLimit(this.breadcrumbs.mainSection.data.title, 25) }}
|
{{ textLimit(breadcrumbs.mainSection.data.title, 25) }}
|
||||||
</span>
|
</span>
|
||||||
</li>
|
</li>
|
||||||
<li v-if="breadcrumbs.subSection" class="text-sm">
|
<li v-if="breadcrumbs.subSection" class="text-sm">
|
||||||
<span class="flex items-center text-gray-500 hover:text-primaryBlue cursor-pointer" @click.prevent="handleSubSectionClick(this.breadcrumbs.mainSection, this.breadcrumbs.subSection)">
|
<span class="flex items-center text-gray-500 hover:text-primaryBlue cursor-pointer" @click.prevent="handleSubSectionClick(breadcrumbs.mainSection, breadcrumbs.subSection)">
|
||||||
<svg class="flex-shrink-0 mx-2 overflow-visible h-2.5 w-2.5 text-gray-400"
|
<svg class="flex-shrink-0 mx-2 overflow-visible h-2.5 w-2.5 text-gray-400"
|
||||||
width="16" height="16"
|
width="16" height="16"
|
||||||
viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
<path d="M5 1L10.6869 7.16086C10.8637 7.35239 10.8637 7.64761 10.6869 7.83914L5 14"
|
<path d="M5 1L10.6869 7.16086C10.8637 7.35239 10.8637 7.64761 10.6869 7.83914L5 14"
|
||||||
stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
|
stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
|
||||||
</svg>
|
</svg>
|
||||||
{{ textLimit(this.breadcrumbs.subSection.data.title, 25) }}
|
{{ textLimit(breadcrumbs.subSection.data.title, 25) }}
|
||||||
</span>
|
</span>
|
||||||
</li>
|
</li>
|
||||||
<li class="text-sm">
|
<li class="text-sm">
|
||||||
<Link :href="route('page.view', this.breadcrumbs.page.data.path)" class="flex items-center text-gray-500 hover:text-primaryBlue">
|
<Link :href="route('page.view', breadcrumbs.page.data.path)" class="flex items-center text-gray-500 hover:text-primaryBlue">
|
||||||
<svg class="flex-shrink-0 mx-2 overflow-visible h-2.5 w-2.5 text-gray-400"
|
<svg class="flex-shrink-0 mx-2 overflow-visible h-2.5 w-2.5 text-gray-400"
|
||||||
width="16" height="16"
|
width="16" height="16"
|
||||||
viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
<path d="M5 1L10.6869 7.16086C10.8637 7.35239 10.8637 7.64761 10.6869 7.83914L5 14"
|
<path d="M5 1L10.6869 7.16086C10.8637 7.35239 10.8637 7.64761 10.6869 7.83914L5 14"
|
||||||
stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
|
stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
|
||||||
</svg>
|
</svg>
|
||||||
{{ textLimit(this.breadcrumbs.page.data.title, 25) }}
|
{{ textLimit(breadcrumbs.page.data.title, 25) }}
|
||||||
</Link>
|
</Link>
|
||||||
</li>
|
</li>
|
||||||
</ol>
|
</ol>
|
||||||
@@ -52,14 +52,14 @@
|
|||||||
</Link>
|
</Link>
|
||||||
</li>
|
</li>
|
||||||
<li class="text-sm">
|
<li class="text-sm">
|
||||||
<Link :href="route('page.view', this.breadcrumbs.page.data.path)" class="flex items-center text-gray-500 hover:text-primaryBlue">
|
<Link :href="route('page.view', breadcrumbs.page.data.path)" class="flex items-center text-gray-500 hover:text-primaryBlue">
|
||||||
<svg class="flex-shrink-0 mx-2 overflow-visible h-2.5 w-2.5 text-gray-400"
|
<svg class="flex-shrink-0 mx-2 overflow-visible h-2.5 w-2.5 text-gray-400"
|
||||||
width="16" height="16"
|
width="16" height="16"
|
||||||
viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
<path d="M5 1L10.6869 7.16086C10.8637 7.35239 10.8637 7.64761 10.6869 7.83914L5 14"
|
<path d="M5 1L10.6869 7.16086C10.8637 7.35239 10.8637 7.64761 10.6869 7.83914L5 14"
|
||||||
stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
|
stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
|
||||||
</svg>
|
</svg>
|
||||||
{{ textLimit(this.breadcrumbs.page.data.title, 25) }}
|
{{ textLimit(breadcrumbs.page.data.title, 25) }}
|
||||||
</Link>
|
</Link>
|
||||||
</li>
|
</li>
|
||||||
</ol>
|
</ol>
|
||||||
@@ -93,7 +93,10 @@ export default {
|
|||||||
return text
|
return text
|
||||||
},
|
},
|
||||||
isMobileDevice() {
|
isMobileDevice() {
|
||||||
return window.innerWidth < 1024; // Задайте порог для мобильных устройств
|
if (typeof window !== 'undefined') {
|
||||||
|
return window.innerWidth < 1024; // Проверка на мобильные устройства
|
||||||
|
}
|
||||||
|
return false; // По умолчанию возвращаем false, когда не в браузере
|
||||||
},
|
},
|
||||||
handleSectionClick(breadcrumb) {
|
handleSectionClick(breadcrumb) {
|
||||||
if (this.isMobileDevice()) {
|
if (this.isMobileDevice()) {
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
<template>
|
<template>
|
||||||
|
|
||||||
<div class="sticky top-[100px] hidden h-[calc(100vh-121px)] max-w-[20%] min-w-[20%] md:flex md:shrink-0 md:flex-col md:justify-between">
|
<div class="sticky top-[100px] hidden h-[calc(100vh-121px)] max-w-[20%] min-w-[20%] md:flex md:shrink-0 md:flex-col md:justify-between">
|
||||||
<nav v-if="this.subSectionPages"
|
<nav v-if="subSectionPages"
|
||||||
class="styled-scrollbar flex h-[calc(100vh-200px)] flex-col overflow-y-scroll pr-2 pb-4">
|
class="styled-scrollbar flex h-[calc(100vh-200px)] flex-col overflow-y-scroll pr-2 pb-4">
|
||||||
<div class="text-gray-1000 mb-2 text-md font-medium">{{ currentSection }}</div>
|
<div class="text-gray-1000 mb-2 text-md font-medium">{{ currentSection }}</div>
|
||||||
<div class="flex gap-x-1">
|
<div class="flex gap-x-1">
|
||||||
<ul class="px-0.5 last-of-type:mb-0 mb-8">
|
<ul class="px-0.5 last-of-type:mb-0 mb-8">
|
||||||
<li v-for="page in this.subSectionPages.data" :key="page.id" class="my-1.5 flex">
|
<li v-for="page in subSectionPages.data" :key="page.id" class="my-1.5 flex">
|
||||||
<a :class="{'text-white font-semibold bg-primaryBlue': isSameRoute(page.path), 'text-gray-600 hover:text-[#2C6288]': !isSameRoute(page.path) }"
|
<a :class="{'text-white font-semibold bg-primaryBlue': isSameRoute(page.path), 'text-gray-600 hover:text-[#2C6288]': !isSameRoute(page.path) }"
|
||||||
:href="(page.is_url) ? page.path : route('page.view', page.path) + '/'"
|
:href="(page.is_url) ? page.path : route('page.view', page.path) + '/'"
|
||||||
class="relative duration-300 flex gap-x-1 w-full rounded-md cursor-pointer items-center px-2 py-1 text-left text-sm">
|
class="relative duration-300 flex gap-x-1 w-full rounded-md cursor-pointer items-center px-2 py-1 text-left text-sm">
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<span v-if="this.filter.value !== null" class="inline-flex items-center gap-x-1.5 py-1.5 ps-3 pe-2 rounded-full text-xs font-medium bg-blue-100 text-blue-800">
|
<span v-if="filter.value !== null" class="inline-flex items-center gap-x-1.5 py-1.5 ps-3 pe-2 rounded-full text-xs font-medium bg-blue-100 text-blue-800">
|
||||||
Поиск: {{ filter.value }}
|
Поиск: {{ filter.value }}
|
||||||
<button @click.prevent="clearFilter" type="button" class="shrink-0 size-4 inline-flex items-center justify-center rounded-full hover:bg-blue-200 focus:outline-none focus:bg-blue-200 focus:text-blue-500">
|
<button @click.prevent="clearFilter" type="button" class="shrink-0 size-4 inline-flex items-center justify-center rounded-full hover:bg-blue-200 focus:outline-none focus:bg-blue-200 focus:text-blue-500">
|
||||||
<span class="sr-only">Remove badge</span>
|
<span class="sr-only">Remove badge</span>
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ import slugify from "slugify";
|
|||||||
import SearchBadge from "@/Components/BuilderUi/Events/Badges/SearchBadge.vue";
|
import SearchBadge from "@/Components/BuilderUi/Events/Badges/SearchBadge.vue";
|
||||||
import CategoryBadge from "@/Components/BuilderUi/Events/Badges/CategoryBadge.vue";
|
import CategoryBadge from "@/Components/BuilderUi/Events/Badges/CategoryBadge.vue";
|
||||||
import BaseIcon from "@/Components/BaseComponents/BaseIcon.vue";
|
import BaseIcon from "@/Components/BaseComponents/BaseIcon.vue";
|
||||||
import {debounce} from "lodash/function.js";
|
import {debounce} from "lodash";
|
||||||
export default {
|
export default {
|
||||||
name: "CategoryFilter",
|
name: "CategoryFilter",
|
||||||
components: {
|
components: {
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ import slugify from "slugify";
|
|||||||
import SearchBadge from "@/Components/BuilderUi/Events/Badges/SearchBadge.vue";
|
import SearchBadge from "@/Components/BuilderUi/Events/Badges/SearchBadge.vue";
|
||||||
import CategoryBadge from "@/Components/BuilderUi/Events/Badges/CategoryBadge.vue";
|
import CategoryBadge from "@/Components/BuilderUi/Events/Badges/CategoryBadge.vue";
|
||||||
import BaseIcon from "@/Components/BaseComponents/BaseIcon.vue";
|
import BaseIcon from "@/Components/BaseComponents/BaseIcon.vue";
|
||||||
import {debounce} from "lodash/function.js";
|
import {debounce} from "lodash";
|
||||||
export default {
|
export default {
|
||||||
name: "SortingByFilter",
|
name: "SortingByFilter",
|
||||||
components: {
|
components: {
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ import slugify from "slugify";
|
|||||||
import SearchBadge from "@/Components/BuilderUi/Events/Badges/SearchBadge.vue";
|
import SearchBadge from "@/Components/BuilderUi/Events/Badges/SearchBadge.vue";
|
||||||
import CategoryBadge from "@/Components/BuilderUi/Events/Badges/CategoryBadge.vue";
|
import CategoryBadge from "@/Components/BuilderUi/Events/Badges/CategoryBadge.vue";
|
||||||
import BaseIcon from "@/Components/BaseComponents/BaseIcon.vue";
|
import BaseIcon from "@/Components/BaseComponents/BaseIcon.vue";
|
||||||
import {debounce} from "lodash/function.js";
|
import {debounce} from "lodash";
|
||||||
export default {
|
export default {
|
||||||
name: "TagFilter",
|
name: "TagFilter",
|
||||||
components: {
|
components: {
|
||||||
|
|||||||
@@ -11,25 +11,25 @@
|
|||||||
</Link>
|
</Link>
|
||||||
</li>
|
</li>
|
||||||
<li v-if="breadcrumbs.mainSection" class="text-sm">
|
<li v-if="breadcrumbs.mainSection" class="text-sm">
|
||||||
<span class="flex items-center text-gray-500 hover:text-primaryBlue cursor-pointer" @click.prevent="handleSectionClick(this.breadcrumbs.mainSection)">
|
<span class="flex items-center text-gray-500 hover:text-primaryBlue cursor-pointer" @click.prevent="handleSectionClick(breadcrumbs.mainSection)">
|
||||||
<svg class="flex-shrink-0 mx-2 overflow-visible h-2.5 w-2.5 text-gray-400"
|
<svg class="flex-shrink-0 mx-2 overflow-visible h-2.5 w-2.5 text-gray-400"
|
||||||
width="16" height="16"
|
width="16" height="16"
|
||||||
viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
<path d="M5 1L10.6869 7.16086C10.8637 7.35239 10.8637 7.64761 10.6869 7.83914L5 14"
|
<path d="M5 1L10.6869 7.16086C10.8637 7.35239 10.8637 7.64761 10.6869 7.83914L5 14"
|
||||||
stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
|
stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
|
||||||
</svg>
|
</svg>
|
||||||
{{ textLimit(this.breadcrumbs.mainSection.data.title, 25) }}
|
{{ textLimit(breadcrumbs.mainSection.data.title, 25) }}
|
||||||
</span>
|
</span>
|
||||||
</li>
|
</li>
|
||||||
<li v-if="breadcrumbs.subSection" class="text-sm">
|
<li v-if="breadcrumbs.subSection" class="text-sm">
|
||||||
<span class="flex items-center text-gray-500 hover:text-primaryBlue cursor-pointer" @click.prevent="handleSubSectionClick(this.breadcrumbs.mainSection, this.breadcrumbs.subSection)">
|
<span class="flex items-center text-gray-500 hover:text-primaryBlue cursor-pointer" @click.prevent="handleSubSectionClick(breadcrumbs.mainSection, breadcrumbs.subSection)">
|
||||||
<svg class="flex-shrink-0 mx-2 overflow-visible h-2.5 w-2.5 text-gray-400"
|
<svg class="flex-shrink-0 mx-2 overflow-visible h-2.5 w-2.5 text-gray-400"
|
||||||
width="16" height="16"
|
width="16" height="16"
|
||||||
viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
<path d="M5 1L10.6869 7.16086C10.8637 7.35239 10.8637 7.64761 10.6869 7.83914L5 14"
|
<path d="M5 1L10.6869 7.16086C10.8637 7.35239 10.8637 7.64761 10.6869 7.83914L5 14"
|
||||||
stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
|
stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
|
||||||
</svg>
|
</svg>
|
||||||
{{ textLimit(this.breadcrumbs.subSection.data.title, 25) }}
|
{{ textLimit(breadcrumbs.subSection.data.title, 25) }}
|
||||||
</span>
|
</span>
|
||||||
</li>
|
</li>
|
||||||
<li class="text-sm">
|
<li class="text-sm">
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
|
|
||||||
<Link :href="route(this.link)" class="inline-flex items-center gap-x-1.5 text-sm text-gray-600 decoration-2 hover:underline dark:text-blue-500">
|
<Link :href="route(link)" class="inline-flex items-center gap-x-1.5 text-sm text-gray-600 decoration-2 hover:underline dark:text-blue-500">
|
||||||
<svg class="flex-shrink-0 size-4" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m15 18-6-6 6-6"/></svg>
|
<svg class="flex-shrink-0 size-4" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m15 18-6-6 6-6"/></svg>
|
||||||
{{ title }}
|
{{ title }}
|
||||||
</Link>
|
</Link>
|
||||||
|
|||||||
@@ -11,25 +11,25 @@
|
|||||||
</Link>
|
</Link>
|
||||||
</li>
|
</li>
|
||||||
<li v-if="breadcrumbs.mainSection" class="text-sm">
|
<li v-if="breadcrumbs.mainSection" class="text-sm">
|
||||||
<span class="flex items-center text-gray-500 hover:text-primaryBlue cursor-pointer" @click.prevent="handleSectionClick(this.breadcrumbs.mainSection)">
|
<span class="flex items-center text-gray-500 hover:text-primaryBlue cursor-pointer" @click.prevent="handleSectionClick(breadcrumbs.mainSection)">
|
||||||
<svg class="flex-shrink-0 mx-2 overflow-visible h-2.5 w-2.5 text-gray-400"
|
<svg class="flex-shrink-0 mx-2 overflow-visible h-2.5 w-2.5 text-gray-400"
|
||||||
width="16" height="16"
|
width="16" height="16"
|
||||||
viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
<path d="M5 1L10.6869 7.16086C10.8637 7.35239 10.8637 7.64761 10.6869 7.83914L5 14"
|
<path d="M5 1L10.6869 7.16086C10.8637 7.35239 10.8637 7.64761 10.6869 7.83914L5 14"
|
||||||
stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
|
stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
|
||||||
</svg>
|
</svg>
|
||||||
{{ textLimit(this.breadcrumbs.mainSection.data.title, 25) }}
|
{{ textLimit(breadcrumbs.mainSection.data.title, 25) }}
|
||||||
</span>
|
</span>
|
||||||
</li>
|
</li>
|
||||||
<li v-if="breadcrumbs.subSection" class="text-sm">
|
<li v-if="breadcrumbs.subSection" class="text-sm">
|
||||||
<span class="flex items-center text-gray-500 hover:text-primaryBlue cursor-pointer" @click.prevent="handleSubSectionClick(this.breadcrumbs.mainSection, this.breadcrumbs.subSection)">
|
<span class="flex items-center text-gray-500 hover:text-primaryBlue cursor-pointer" @click.prevent="handleSubSectionClick(breadcrumbs.mainSection, breadcrumbs.subSection)">
|
||||||
<svg class="flex-shrink-0 mx-2 overflow-visible h-2.5 w-2.5 text-gray-400"
|
<svg class="flex-shrink-0 mx-2 overflow-visible h-2.5 w-2.5 text-gray-400"
|
||||||
width="16" height="16"
|
width="16" height="16"
|
||||||
viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
<path d="M5 1L10.6869 7.16086C10.8637 7.35239 10.8637 7.64761 10.6869 7.83914L5 14"
|
<path d="M5 1L10.6869 7.16086C10.8637 7.35239 10.8637 7.64761 10.6869 7.83914L5 14"
|
||||||
stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
|
stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
|
||||||
</svg>
|
</svg>
|
||||||
{{ textLimit(this.breadcrumbs.subSection.data.title, 25) }}
|
{{ textLimit(breadcrumbs.subSection.data.title, 25) }}
|
||||||
</span>
|
</span>
|
||||||
</li>
|
</li>
|
||||||
<li class="text-sm">
|
<li class="text-sm">
|
||||||
@@ -43,8 +43,9 @@
|
|||||||
{{ textLimit('Новости', 30) }}
|
{{ textLimit('Новости', 30) }}
|
||||||
</Link>
|
</Link>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li class="text-sm">
|
<li class="text-sm">
|
||||||
<Link :href="this.$inertia.page.props.ziggy.location" class="flex items-center text-gray-500 hover:text-blue-600">
|
<Link :href="$page.props.ziggy.location" class="flex items-center text-gray-500 hover:text-blue-600">
|
||||||
<svg class="flex-shrink-0 mx-2 overflow-visible h-2.5 w-2.5 text-gray-400"
|
<svg class="flex-shrink-0 mx-2 overflow-visible h-2.5 w-2.5 text-gray-400"
|
||||||
width="16" height="16"
|
width="16" height="16"
|
||||||
viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
@@ -80,7 +81,7 @@
|
|||||||
</Link>
|
</Link>
|
||||||
</li>
|
</li>
|
||||||
<li class="text-sm">
|
<li class="text-sm">
|
||||||
<Link :href="this.$inertia.page.props.ziggy.location" class="flex items-center text-gray-500 hover:text-blue-600">
|
<Link :href="$inertia.page.props.ziggy.location" class="flex items-center text-gray-500 hover:text-blue-600">
|
||||||
{{ postTitle }}
|
{{ postTitle }}
|
||||||
</Link>
|
</Link>
|
||||||
</li>
|
</li>
|
||||||
@@ -90,7 +91,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
@@ -115,7 +115,10 @@ export default {
|
|||||||
return text
|
return text
|
||||||
},
|
},
|
||||||
isMobileDevice() {
|
isMobileDevice() {
|
||||||
return window.innerWidth < 1024; // Задайте порог для мобильных устройств
|
if (typeof window !== 'undefined') {
|
||||||
|
return window.innerWidth < 1024; // Проверка на мобильные устройства
|
||||||
|
}
|
||||||
|
return false; // По умолчанию возвращаем false, когда не в браузере
|
||||||
},
|
},
|
||||||
handleSectionClick(breadcrumb) {
|
handleSectionClick(breadcrumb) {
|
||||||
if (this.isMobileDevice()) {
|
if (this.isMobileDevice()) {
|
||||||
@@ -191,6 +194,7 @@ export default {
|
|||||||
props: {
|
props: {
|
||||||
breadcrumbs: {
|
breadcrumbs: {
|
||||||
type: Object,
|
type: Object,
|
||||||
|
default: () => ({}), // Default to an empty object
|
||||||
},
|
},
|
||||||
postTitle: {
|
postTitle: {
|
||||||
type: String,
|
type: String,
|
||||||
|
|||||||
@@ -77,7 +77,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import {debounce} from "lodash/function.js";
|
import {debounce} from "lodash";
|
||||||
import BaseIcon from "@/Components/BaseComponents/BaseIcon.vue";
|
import BaseIcon from "@/Components/BaseComponents/BaseIcon.vue";
|
||||||
import CategoryFilter from "@/Components/BuilderUi/Events/Filters/CategoryFilter.vue";
|
import CategoryFilter from "@/Components/BuilderUi/Events/Filters/CategoryFilter.vue";
|
||||||
import TagFilter from "@/Components/BuilderUi/Events/Filters/TagFilter.vue";
|
import TagFilter from "@/Components/BuilderUi/Events/Filters/TagFilter.vue";
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ import slugify from "slugify";
|
|||||||
import SearchBadge from "@/Components/BuilderUi/Events/Badges/SearchBadge.vue";
|
import SearchBadge from "@/Components/BuilderUi/Events/Badges/SearchBadge.vue";
|
||||||
import CategoryBadge from "@/Components/BuilderUi/Events/Badges/CategoryBadge.vue";
|
import CategoryBadge from "@/Components/BuilderUi/Events/Badges/CategoryBadge.vue";
|
||||||
import BaseIcon from "@/Components/BaseComponents/BaseIcon.vue";
|
import BaseIcon from "@/Components/BaseComponents/BaseIcon.vue";
|
||||||
import {debounce} from "lodash/function.js";
|
import {debounce} from "lodash";
|
||||||
export default {
|
export default {
|
||||||
name: "BudgetFilter",
|
name: "BudgetFilter",
|
||||||
components: {
|
components: {
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ import slugify from "slugify";
|
|||||||
import SearchBadge from "@/Components/BuilderUi/Events/Badges/SearchBadge.vue";
|
import SearchBadge from "@/Components/BuilderUi/Events/Badges/SearchBadge.vue";
|
||||||
import CategoryBadge from "@/Components/BuilderUi/Events/Badges/CategoryBadge.vue";
|
import CategoryBadge from "@/Components/BuilderUi/Events/Badges/CategoryBadge.vue";
|
||||||
import BaseIcon from "@/Components/BaseComponents/BaseIcon.vue";
|
import BaseIcon from "@/Components/BaseComponents/BaseIcon.vue";
|
||||||
import {debounce} from "lodash/function.js";
|
import {debounce} from "lodash";
|
||||||
export default {
|
export default {
|
||||||
name: "DirectionFilter",
|
name: "DirectionFilter",
|
||||||
components: {
|
components: {
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ import slugify from "slugify";
|
|||||||
import SearchBadge from "@/Components/BuilderUi/Events/Badges/SearchBadge.vue";
|
import SearchBadge from "@/Components/BuilderUi/Events/Badges/SearchBadge.vue";
|
||||||
import CategoryBadge from "@/Components/BuilderUi/Events/Badges/CategoryBadge.vue";
|
import CategoryBadge from "@/Components/BuilderUi/Events/Badges/CategoryBadge.vue";
|
||||||
import BaseIcon from "@/Components/BaseComponents/BaseIcon.vue";
|
import BaseIcon from "@/Components/BaseComponents/BaseIcon.vue";
|
||||||
import {debounce} from "lodash/function.js";
|
import {debounce} from "lodash";
|
||||||
export default {
|
export default {
|
||||||
name: "FormEducationalFilter",
|
name: "FormEducationalFilter",
|
||||||
components: {
|
components: {
|
||||||
|
|||||||
@@ -10,7 +10,8 @@ import slugify from "slugify";
|
|||||||
import SearchBadge from "@/Components/BuilderUi/Events/Badges/SearchBadge.vue";
|
import SearchBadge from "@/Components/BuilderUi/Events/Badges/SearchBadge.vue";
|
||||||
import CategoryBadge from "@/Components/BuilderUi/Events/Badges/CategoryBadge.vue";
|
import CategoryBadge from "@/Components/BuilderUi/Events/Badges/CategoryBadge.vue";
|
||||||
import BaseIcon from "@/Components/BaseComponents/BaseIcon.vue";
|
import BaseIcon from "@/Components/BaseComponents/BaseIcon.vue";
|
||||||
import {debounce} from "lodash/function.js";
|
import {debounce} from "lodash";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "LevelEduFilter",
|
name: "LevelEduFilter",
|
||||||
components: {
|
components: {
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ import slugify from "slugify";
|
|||||||
import SearchBadge from "@/Components/BuilderUi/Events/Badges/SearchBadge.vue";
|
import SearchBadge from "@/Components/BuilderUi/Events/Badges/SearchBadge.vue";
|
||||||
import CategoryBadge from "@/Components/BuilderUi/Events/Badges/CategoryBadge.vue";
|
import CategoryBadge from "@/Components/BuilderUi/Events/Badges/CategoryBadge.vue";
|
||||||
import BaseIcon from "@/Components/BaseComponents/BaseIcon.vue";
|
import BaseIcon from "@/Components/BaseComponents/BaseIcon.vue";
|
||||||
import {debounce} from "lodash/function.js";
|
import {debounce} from "lodash";
|
||||||
export default {
|
export default {
|
||||||
name: "SortingByFilter",
|
name: "SortingByFilter",
|
||||||
components: {
|
components: {
|
||||||
|
|||||||
@@ -115,7 +115,10 @@ export default {
|
|||||||
return text
|
return text
|
||||||
},
|
},
|
||||||
isMobileDevice() {
|
isMobileDevice() {
|
||||||
return window.innerWidth < 1024; // Задайте порог для мобильных устройств
|
if (typeof window !== 'undefined') {
|
||||||
|
return window.innerWidth < 1024; // Проверка на мобильные устройства
|
||||||
|
}
|
||||||
|
return false; // По умолчанию возвращаем false, когда не в браузере
|
||||||
},
|
},
|
||||||
handleSectionClick(breadcrumb) {
|
handleSectionClick(breadcrumb) {
|
||||||
if (this.isMobileDevice()) {
|
if (this.isMobileDevice()) {
|
||||||
|
|||||||
@@ -93,7 +93,10 @@ export default {
|
|||||||
return text
|
return text
|
||||||
},
|
},
|
||||||
isMobileDevice() {
|
isMobileDevice() {
|
||||||
return window.innerWidth < 1024; // Задайте порог для мобильных устройств
|
if (typeof window !== 'undefined') {
|
||||||
|
return window.innerWidth < 1024; // Проверка на мобильные устройства
|
||||||
|
}
|
||||||
|
return false; // По умолчанию возвращаем false, когда не в браузере
|
||||||
},
|
},
|
||||||
handleSectionClick(breadcrumb) {
|
handleSectionClick(breadcrumb) {
|
||||||
if (this.isMobileDevice()) {
|
if (this.isMobileDevice()) {
|
||||||
|
|||||||
@@ -50,7 +50,6 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import {debounce} from "lodash/function.js";
|
|
||||||
import BaseIcon from "@/Components/BaseComponents/BaseIcon.vue";
|
import BaseIcon from "@/Components/BaseComponents/BaseIcon.vue";
|
||||||
import CategoryFilter from "@/Components/BuilderUi/Events/Filters/CategoryFilter.vue";
|
import CategoryFilter from "@/Components/BuilderUi/Events/Filters/CategoryFilter.vue";
|
||||||
import TagFilter from "@/Components/BuilderUi/Events/Filters/TagFilter.vue";
|
import TagFilter from "@/Components/BuilderUi/Events/Filters/TagFilter.vue";
|
||||||
|
|||||||
@@ -54,7 +54,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import {debounce} from "lodash/function.js";
|
import {debounce} from "lodash";
|
||||||
import {Link} from "@inertiajs/vue3";
|
import {Link} from "@inertiajs/vue3";
|
||||||
import {Inertia} from "@inertiajs/inertia";
|
import {Inertia} from "@inertiajs/inertia";
|
||||||
import ResultList from "@/Components/Search/ResultList.vue";
|
import ResultList from "@/Components/Search/ResultList.vue";
|
||||||
|
|||||||
@@ -40,7 +40,7 @@
|
|||||||
</button>
|
</button>
|
||||||
|
|
||||||
<div class="flex space-x-3 w-[100px] items-center font-semibold text-xl">
|
<div class="flex space-x-3 w-[100px] items-center font-semibold text-xl">
|
||||||
<span>{{ this.currentIndex + 1 }}</span>
|
<span>{{ currentIndex + 1 }}</span>
|
||||||
<div class="flex w-full h-1 bg-gray-200 rounded-full overflow-hidden dark:bg-neutral-700" role="progressbar" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100">
|
<div class="flex w-full h-1 bg-gray-200 rounded-full overflow-hidden dark:bg-neutral-700" role="progressbar" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100">
|
||||||
<div class="flex flex-col justify-center rounded-full overflow-hidden bg-blue-600 text-xs text-white text-center whitespace-nowrap transition duration-500 dark:bg-blue-500 my-slider-progress-bar" :style="{ 'width': `${percentage}%` }"></div>
|
<div class="flex flex-col justify-center rounded-full overflow-hidden bg-blue-600 text-xs text-white text-center whitespace-nowrap transition duration-500 dark:bg-blue-500 my-slider-progress-bar" :style="{ 'width': `${percentage}%` }"></div>
|
||||||
</div>
|
</div>
|
||||||
@@ -65,6 +65,7 @@ export default {
|
|||||||
props: {
|
props: {
|
||||||
slidersCarousel: {
|
slidersCarousel: {
|
||||||
type: Object,
|
type: Object,
|
||||||
|
required: true, // Убедитесь, что пропс передан
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
@@ -77,17 +78,21 @@ export default {
|
|||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
totalSlides() {
|
totalSlides() {
|
||||||
return this.slidersCarousel.data.length;
|
return this.slidersCarousel && this.slidersCarousel.data ? this.slidersCarousel.data.length : 0;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
next() {
|
next() {
|
||||||
|
if (this.totalSlides > 0) {
|
||||||
this.currentIndex = (this.currentIndex + 1) % this.totalSlides;
|
this.currentIndex = (this.currentIndex + 1) % this.totalSlides;
|
||||||
this.resetTimer();
|
this.resetTimer();
|
||||||
|
}
|
||||||
},
|
},
|
||||||
prev() {
|
prev() {
|
||||||
|
if (this.totalSlides > 0) {
|
||||||
this.currentIndex = (this.currentIndex - 1 + this.totalSlides) % this.totalSlides;
|
this.currentIndex = (this.currentIndex - 1 + this.totalSlides) % this.totalSlides;
|
||||||
this.resetTimer();
|
this.resetTimer();
|
||||||
|
}
|
||||||
},
|
},
|
||||||
progressStatus() {
|
progressStatus() {
|
||||||
if (this.percentage >= 100) {
|
if (this.percentage >= 100) {
|
||||||
@@ -133,3 +138,5 @@ export default {
|
|||||||
transform: translateY(30px);
|
transform: translateY(30px);
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
Найти еще
|
||||||
@@ -99,7 +99,7 @@ export default {
|
|||||||
|
|
||||||
props: {
|
props: {
|
||||||
post: {
|
post: {
|
||||||
type: Array,
|
type: Object,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -66,7 +66,6 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import {debounce} from "lodash/function.js";
|
|
||||||
import BaseIcon from "@/Components/BaseComponents/BaseIcon.vue";
|
import BaseIcon from "@/Components/BaseComponents/BaseIcon.vue";
|
||||||
import CategoryFilter from "@/Components/BuilderUi/Events/Filters/CategoryFilter.vue";
|
import CategoryFilter from "@/Components/BuilderUi/Events/Filters/CategoryFilter.vue";
|
||||||
import TagFilter from "@/Components/BuilderUi/Events/Filters/TagFilter.vue";
|
import TagFilter from "@/Components/BuilderUi/Events/Filters/TagFilter.vue";
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { debounce } from "lodash/function.js";
|
import { debounce } from "lodash";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "AdminIndexSearch",
|
name: "AdminIndexSearch",
|
||||||
|
|||||||
@@ -77,7 +77,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import {debounce} from "lodash/function.js";
|
import {debounce} from "lodash";
|
||||||
import BaseIcon from "@/Components/BaseComponents/BaseIcon.vue";
|
import BaseIcon from "@/Components/BaseComponents/BaseIcon.vue";
|
||||||
import CategoryFilter from "@/Components/BuilderUi/Events/Filters/CategoryFilter.vue";
|
import CategoryFilter from "@/Components/BuilderUi/Events/Filters/CategoryFilter.vue";
|
||||||
import TagFilter from "@/Components/BuilderUi/Events/Filters/TagFilter.vue";
|
import TagFilter from "@/Components/BuilderUi/Events/Filters/TagFilter.vue";
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { debounce } from "lodash/function.js";
|
import { debounce } from "lodash";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "AdminIndexSearch",
|
name: "AdminIndexSearch",
|
||||||
|
|||||||
@@ -14,15 +14,15 @@
|
|||||||
|
|
||||||
import {Link} from "@inertiajs/vue3";
|
import {Link} from "@inertiajs/vue3";
|
||||||
import axios from "axios";
|
import axios from "axios";
|
||||||
import ClientGlobalSearch from "@/Components/ClientGlobalSearch.vue";
|
|
||||||
import BaseIcon from "@/Components/BaseComponents/BaseIcon.vue";
|
import BaseIcon from "@/Components/BaseComponents/BaseIcon.vue";
|
||||||
|
import {defineAsyncComponent} from "vue";
|
||||||
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'SearchModal',
|
name: 'SearchModal',
|
||||||
props: {
|
props: {
|
||||||
open_id: {
|
open_id: {
|
||||||
type: Object,
|
type: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
@@ -31,7 +31,9 @@ export default {
|
|||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
BaseIcon,
|
BaseIcon,
|
||||||
ClientGlobalSearch,
|
ClientGlobalSearch: defineAsyncComponent(() =>
|
||||||
|
import('@/Components/ClientGlobalSearch.vue')
|
||||||
|
),
|
||||||
Link,
|
Link,
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import {debounce} from "lodash/function.js";
|
import {debounce} from "lodash";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "CategorySearchList",
|
name: "CategorySearchList",
|
||||||
|
|||||||
@@ -5,13 +5,15 @@
|
|||||||
class="overflow-hidden overflow-y-auto max-h-[75vh] [&::-webkit-scrollbar]:w-2 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-track]:bg-gray-100 [&::-webkit-scrollbar-thumb]:bg-gray-300">
|
class="overflow-hidden overflow-y-auto max-h-[75vh] [&::-webkit-scrollbar]:w-2 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-track]:bg-gray-100 [&::-webkit-scrollbar-thumb]:bg-gray-300">
|
||||||
<div
|
<div
|
||||||
class="flex flex-col gap-x-0 mt-5 md:flex-row md:items-center md:justify-end md:gap-x-7 md:mt-0 md:ps-7 md:divide-y-0 md:divide-solid">
|
class="flex flex-col gap-x-0 mt-5 md:flex-row md:items-center md:justify-end md:gap-x-7 md:mt-0 md:ps-7 md:divide-y-0 md:divide-solid">
|
||||||
<template v-for="section in this.sections.data" :key="section.id">
|
<template v-if="sections && sections.data">
|
||||||
|
<template v-for="section in sections.data" :key="section.id">
|
||||||
<div
|
<div
|
||||||
:id="'nav-section-' + section.slug"
|
:id="'nav-section-' + section.slug"
|
||||||
class="hs-dropdown [--strategy:static] md:[--strategy:absolute] [--adaptive:none] md:[--trigger:hover] py-3 md:py-6">
|
class="hs-dropdown [--strategy:static] md:[--strategy:absolute] [--adaptive:none] md:[--trigger:hover] py-3 md:py-6">
|
||||||
<button
|
<button
|
||||||
:id="'nav-section-btn-' + section.slug"
|
:id="'nav-section-btn-' + section.slug"
|
||||||
type="button" :class="!underSliderHeader ? 'text-white' : 'text-black'"
|
type="button"
|
||||||
|
:class="!underSliderHeader ? 'text-white' : 'text-black'"
|
||||||
class="duration-300 flex items-center w-full hover:text-primaryBlue font-medium hs-dropdown-open:mb-4 md:hs-dropdown-open:mb-0">
|
class="duration-300 flex items-center w-full hover:text-primaryBlue font-medium hs-dropdown-open:mb-4 md:hs-dropdown-open:mb-0">
|
||||||
{{ section.title }}
|
{{ section.title }}
|
||||||
<svg class="flex-shrink-0 ms-2 w-4 h-4" xmlns="http://www.w3.org/2000/svg" width="24" height="24"
|
<svg class="flex-shrink-0 ms-2 w-4 h-4" xmlns="http://www.w3.org/2000/svg" width="24" height="24"
|
||||||
@@ -37,7 +39,8 @@
|
|||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<template v-for="page in subsection.pages" :key="page.id">
|
<template v-for="page in subsection.pages" :key="page.id">
|
||||||
<a :class="{'text-[#135aae] hover:text-gray-800 font-semibold ' : isSameRoute(page.path), 'text-gray-800 hover:text-[#2C6288]' : !isSameRoute(page.path) }"
|
<a
|
||||||
|
:class="{ 'text-[#135aae] hover:text-gray-800 font-semibold': isSameRoute(page.path), 'text-gray-800 hover:text-[#2C6288]': !isSameRoute(page.path) }"
|
||||||
class="flex items-center gap-x-2"
|
class="flex items-center gap-x-2"
|
||||||
:href="(page.is_url) ? page.path : route('page.view', page.path) + '/'">
|
:href="(page.is_url) ? page.path : route('page.view', page.path) + '/'">
|
||||||
<div class="grow">
|
<div class="grow">
|
||||||
@@ -49,12 +52,13 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -111,7 +115,6 @@ export default {
|
|||||||
type: Object,
|
type: Object,
|
||||||
},
|
},
|
||||||
underSliderHeader: {
|
underSliderHeader: {
|
||||||
type: HTMLDivElement,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -123,10 +123,10 @@
|
|||||||
|
|
||||||
import {Link} from "@inertiajs/vue3";
|
import {Link} from "@inertiajs/vue3";
|
||||||
import axios from "axios";
|
import axios from "axios";
|
||||||
import ClientGlobalSearch from "@/Components/ClientGlobalSearch.vue";
|
|
||||||
import BaseIcon from "@/Components/BaseComponents/BaseIcon.vue";
|
import BaseIcon from "@/Components/BaseComponents/BaseIcon.vue";
|
||||||
import MobileNavbar from "@/Navbars/MobileNavbar.vue";
|
import MobileNavbar from "@/Navbars/MobileNavbar.vue";
|
||||||
import SearchModal from "@/Components/Modals/SearchModal.vue";
|
import SearchModal from "@/Components/Modals/SearchModal.vue";
|
||||||
|
import {defineAsyncComponent} from "vue";
|
||||||
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
@@ -144,7 +144,9 @@ export default {
|
|||||||
SearchModal,
|
SearchModal,
|
||||||
MobileNavbar,
|
MobileNavbar,
|
||||||
BaseIcon,
|
BaseIcon,
|
||||||
ClientGlobalSearch,
|
ClientGlobalSearch: defineAsyncComponent(() =>
|
||||||
|
import('@/Components/ClientGlobalSearch.vue')
|
||||||
|
),
|
||||||
Link,
|
Link,
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|||||||
@@ -38,14 +38,13 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<DesktopNavBar :sections="sections" :under-slider-header="underSliderHeader" />
|
<DesktopNavBar v-if="sections" :sections="sections" :under-slider-header="underSliderHeader" />
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<MobileNavbar :sections="sections" />
|
<MobileNavbar v-if="sections" :sections="sections" />
|
||||||
|
|
||||||
|
|
||||||
<SearchModal open_id="open-search-modal" />
|
<SearchModal open_id="open-search-modal" />
|
||||||
@@ -57,7 +56,7 @@
|
|||||||
import {Link} from "@inertiajs/vue3";
|
import {Link} from "@inertiajs/vue3";
|
||||||
import axios from "axios";
|
import axios from "axios";
|
||||||
import ClientGlobalSearch from "@/Components/ClientGlobalSearch.vue";
|
import ClientGlobalSearch from "@/Components/ClientGlobalSearch.vue";
|
||||||
import * as isvek from "bvi"
|
// import * as isvek from "bvi"
|
||||||
import BaseIcon from "@/Components/BaseComponents/BaseIcon.vue";
|
import BaseIcon from "@/Components/BaseComponents/BaseIcon.vue";
|
||||||
import MobileNavbar from "@/Navbars/MobileNavbar.vue";
|
import MobileNavbar from "@/Navbars/MobileNavbar.vue";
|
||||||
import SearchModal from "@/Components/Modals/SearchModal.vue";
|
import SearchModal from "@/Components/Modals/SearchModal.vue";
|
||||||
@@ -79,7 +78,6 @@ export default {
|
|||||||
type: Object,
|
type: Object,
|
||||||
},
|
},
|
||||||
sliderRef: {
|
sliderRef: {
|
||||||
type: HTMLDivElement,
|
|
||||||
default: true
|
default: true
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@@ -123,15 +121,6 @@ export default {
|
|||||||
return section.subSections.some(subSection => this.hasActivePage(subSection));
|
return section.subSections.some(subSection => this.hasActivePage(subSection));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// // Проверяем наличие активной страницы в подсекциях
|
|
||||||
// const hasActiveInSubSections = section.subSections && section.subSections.some(subSection => this.hasActivePage(subSection));
|
|
||||||
//
|
|
||||||
// console.log(hasActiveInSubSections)
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// return hasActiveInPages || hasActiveInSubSections;
|
|
||||||
},
|
},
|
||||||
|
|
||||||
handleScroll() {
|
handleScroll() {
|
||||||
@@ -159,21 +148,19 @@ export default {
|
|||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
window.addEventListener('scroll', this.handleScroll)
|
window.addEventListener('scroll', this.handleScroll)
|
||||||
window.addEventListener('scroll', this.checkSlider)
|
// if (this.getCookie('bvi_panelActive') === null) {
|
||||||
if (this.getCookie('bvi_panelActive') === null) {
|
// this.bvi = new isvek.Bvi({
|
||||||
this.bvi = new isvek.Bvi({
|
// target: '.className',
|
||||||
target: '.className',
|
// fontSize: 24,
|
||||||
fontSize: 24,
|
// theme: 'black',
|
||||||
theme: 'black',
|
// speech: false,
|
||||||
speech: false,
|
// reload: true,
|
||||||
reload: true,
|
// //...etc
|
||||||
//...etc
|
// });
|
||||||
});
|
// }
|
||||||
}
|
|
||||||
},
|
},
|
||||||
beforeDestroy() {
|
beforeDestroy() {
|
||||||
window.removeEventListener('scroll', this.handleScroll)
|
window.removeEventListener('scroll', this.handleScroll)
|
||||||
window.removeEventListener('scroll', this.checkSlider)
|
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
currentLogo() {
|
currentLogo() {
|
||||||
|
|||||||
@@ -127,13 +127,13 @@ export default {
|
|||||||
</div>
|
</div>
|
||||||
<div class="px-2 mx-auto">
|
<div class="px-2 mx-auto">
|
||||||
<div class="flex-wrap flex gap-3 md:items-center">
|
<div class="flex-wrap flex gap-3 md:items-center">
|
||||||
<ProgramBadge :filters="this.filters" />
|
<ProgramBadge :filters="filters" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="container py-5 lg:py-4">
|
<div class="container py-5 lg:py-4">
|
||||||
<div class="w-full mx-auto flex flex-wrap lg:justify-between">
|
<div class="w-full mx-auto flex flex-wrap lg:justify-between">
|
||||||
<template v-for="educations in transformToColumns(this.additionalEducations.data)">
|
<template v-for="educations in transformToColumns(additionalEducations.data)">
|
||||||
<div class="flex flex-col">
|
<div class="flex flex-col">
|
||||||
<template v-for="education in educations">
|
<template v-for="education in educations">
|
||||||
<div style="height: max-content" class="px-2">
|
<div style="height: max-content" class="px-2">
|
||||||
|
|||||||
@@ -164,7 +164,7 @@ export default {
|
|||||||
<div>
|
<div>
|
||||||
<h2 class="text-xl font-bold md:text-2xl">О программе</h2>
|
<h2 class="text-xl font-bold md:text-2xl">О программе</h2>
|
||||||
<div class="py-4 px-5">
|
<div class="py-4 px-5">
|
||||||
<ProgramBuilder :blocks="this.additionalEducation.data.content" />
|
<ProgramBuilder :blocks="additionalEducation.data.content" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- End Icon Blocks -->
|
<!-- End Icon Blocks -->
|
||||||
|
|||||||
@@ -10,13 +10,13 @@
|
|||||||
|
|
||||||
<div class="relative mx-auto mb-auto mt-[67px] max-w-screen-xl w-full px-4 py-10 md:flex md:flex-row md:py-10">
|
<div class="relative mx-auto mb-auto mt-[67px] max-w-screen-xl w-full px-4 py-10 md:flex md:flex-row md:py-10">
|
||||||
<PageSubSectionLinks :sub-section-pages="subSectionPages" :current-section="page.data.section"/>
|
<PageSubSectionLinks :sub-section-pages="subSectionPages" :current-section="page.data.section"/>
|
||||||
<PageNavigateLinks :header-navs="this.headerNavs"/>
|
<PageNavigateLinks :header-navs="headerNavs"/>
|
||||||
<div class="w-full min-w-0 mt-1 max-w-6xl px-1 md:px-6" style="">
|
<div class="w-full min-w-0 mt-1 max-w-6xl px-1 md:px-6" style="">
|
||||||
<div class="space-y-5 md:space-y-5">
|
<div class="space-y-5 md:space-y-5">
|
||||||
<PageBreadcrumbs :breadcrumbs="breadcrumbs" :page-title="page.data.title"/>
|
<PageBreadcrumbs :breadcrumbs="breadcrumbs" :page-title="page.data.title"/>
|
||||||
<PageTitle :header="page.data.title"/>
|
<PageTitle :header="page.data.title"/>
|
||||||
<div id="page-area" class="space-y-4">
|
<div id="page-area" class="space-y-4">
|
||||||
<PageBuilder :blocks="this.page.data.content"/>
|
<PageBuilder :blocks="page.data.content"/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -11,12 +11,12 @@
|
|||||||
<div class="w-full h-[67px] pointer-events-none fixed" id="visor"></div>
|
<div class="w-full h-[67px] pointer-events-none fixed" id="visor"></div>
|
||||||
|
|
||||||
<div class="sticky top-[110px] hidden h-[calc(100vh-110px)] max-w-[20%] md:flex md:shrink-0 md:flex-col md:justify-between">
|
<div class="sticky top-[110px] hidden h-[calc(100vh-110px)] max-w-[20%] md:flex md:shrink-0 md:flex-col md:justify-between">
|
||||||
<nav v-if="this.departments"
|
<nav v-if="departments"
|
||||||
class="styled-scrollbar flex h-[calc(100vh-200px)] flex-col overflow-y-scroll pr-2 pb-4">
|
class="styled-scrollbar flex h-[calc(100vh-200px)] flex-col overflow-y-scroll pr-2 pb-4">
|
||||||
<div class="text-gray-1000 mb-2 text-md font-medium">Кафедры факультета - {{ department.data.faculty.abbreviation }}</div>
|
<div class="text-gray-1000 mb-2 text-md font-medium">Кафедры факультета - {{ department.data.faculty.abbreviation }}</div>
|
||||||
<div class="flex gap-x-1">
|
<div class="flex gap-x-1">
|
||||||
<ul class="px-0.5 last-of-type:mb-0 mb-8">
|
<ul class="px-0.5 last-of-type:mb-0 mb-8">
|
||||||
<li v-for="depart in this.departments.data" :key="department.id" class="my-1.5 flex">
|
<li v-for="depart in departments.data" :key="department.id" class="my-1.5 flex">
|
||||||
<a :class="{'text-white hover:text-gray-200 font-semibold bg-[#135aae]': isSameRoute(route('client.department.show', { facultySlug: department.data.faculty.slug, departmentSlug: depart.slug })), 'text-gray-600 hover:text-[#2C6288]': !isSameRoute(route('client.department.show', { facultySlug: department.data.faculty.slug, departmentSlug: depart.slug })) }"
|
<a :class="{'text-white hover:text-gray-200 font-semibold bg-[#135aae]': isSameRoute(route('client.department.show', { facultySlug: department.data.faculty.slug, departmentSlug: depart.slug })), 'text-gray-600 hover:text-[#2C6288]': !isSameRoute(route('client.department.show', { facultySlug: department.data.faculty.slug, departmentSlug: depart.slug })) }"
|
||||||
:href="route('client.department.show', { facultySlug: department.data.faculty.slug, departmentSlug: depart.slug }) + '/'"
|
:href="route('client.department.show', { facultySlug: department.data.faculty.slug, departmentSlug: depart.slug }) + '/'"
|
||||||
class="relative duration-300 flex w-full rounded-md cursor-pointer items-center px-2 py-1 text-left text-sm">{{
|
class="relative duration-300 flex w-full rounded-md cursor-pointer items-center px-2 py-1 text-left text-sm">{{
|
||||||
@@ -34,27 +34,27 @@
|
|||||||
<div class="text-gray-1000 mb-2 text-md font-medium">На этой странице</div>
|
<div class="text-gray-1000 mb-2 text-md font-medium">На этой странице</div>
|
||||||
<ul class="styled-scrollbar max-h-[70vh] space-y-1.5 overflow-y-auto py-2 text-sm">
|
<ul class="styled-scrollbar max-h-[70vh] space-y-1.5 overflow-y-auto py-2 text-sm">
|
||||||
<li class="anchor-li">
|
<li class="anchor-li">
|
||||||
<a :class="{ 'translate-x-2 text-[#135aae]' : this.currentNavSection === 'workers', 'bg-transperant text-gray-600 hover:text-gray-900' : this.currentNavSection !== 'workers' }"
|
<a :class="{ 'translate-x-2 text-[#135aae]' : currentNavSection === 'workers', 'bg-transperant text-gray-600 hover:text-gray-900' : currentNavSection !== 'workers' }"
|
||||||
class="duration-150 block py-1 px-2 leading-[1.6] rounded-md"
|
class="duration-150 block py-1 px-2 leading-[1.6] rounded-md"
|
||||||
href="#workers">Сотрудники кафедры</a>
|
href="#workers">Сотрудники кафедры</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="anchor-li">
|
<li class="anchor-li">
|
||||||
<a :class="{ 'translate-x-2 text-[#135aae]' : this.currentNavSection === 'teachers', 'bg-transperant text-gray-600 hover:text-gray-900' : this.currentNavSection !== 'teachers' }"
|
<a :class="{ 'translate-x-2 text-[#135aae]' : currentNavSection === 'teachers', 'bg-transperant text-gray-600 hover:text-gray-900' : currentNavSection !== 'teachers' }"
|
||||||
class="duration-150 block py-1 px-2 leading-[1.6] rounded-md"
|
class="duration-150 block py-1 px-2 leading-[1.6] rounded-md"
|
||||||
href="#teachers">Преподаватели кафедры</a>
|
href="#teachers">Преподаватели кафедры</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="anchor-li">
|
<li class="anchor-li">
|
||||||
<a :class="{ 'translate-x-2 text-[#135aae]' : this.currentNavSection === 'external-teachers', 'bg-transperant text-gray-600 hover:text-gray-900' : this.currentNavSection !== 'external-teachers' }"
|
<a :class="{ 'translate-x-2 text-[#135aae]' : currentNavSection === 'external-teachers', 'bg-transperant text-gray-600 hover:text-gray-900' : currentNavSection !== 'external-teachers' }"
|
||||||
class="duration-150 block py-1 px-2 leading-[1.6] rounded-md"
|
class="duration-150 block py-1 px-2 leading-[1.6] rounded-md"
|
||||||
href="#external-teachers">Внешние совместители</a>
|
href="#external-teachers">Внешние совместители</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="anchor-li">
|
<li class="anchor-li">
|
||||||
<a :class="{ 'translate-x-2 text-[#135aae]' : this.currentNavSection === 'programs', 'bg-transperant text-gray-600 hover:text-gray-900' : this.currentNavSection !== 'programs' }"
|
<a :class="{ 'translate-x-2 text-[#135aae]' : currentNavSection === 'programs', 'bg-transperant text-gray-600 hover:text-gray-900' : currentNavSection !== 'programs' }"
|
||||||
class="duration-150 block py-1 px-2 leading-[1.6] rounded-md"
|
class="duration-150 block py-1 px-2 leading-[1.6] rounded-md"
|
||||||
href="#programs">Программы</a>
|
href="#programs">Программы</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="anchor-li">
|
<li class="anchor-li">
|
||||||
<a :class="{ 'translate-x-2 text-[#135aae]' : this.currentNavSection === 'description', 'bg-transperant text-gray-600 hover:text-gray-900' : this.currentNavSection !== 'description' }"
|
<a :class="{ 'translate-x-2 text-[#135aae]' : currentNavSection === 'description', 'bg-transperant text-gray-600 hover:text-gray-900' : currentNavSection !== 'description' }"
|
||||||
class="duration-150 block py-1 px-2 leading-[1.6] rounded-md"
|
class="duration-150 block py-1 px-2 leading-[1.6] rounded-md"
|
||||||
href="#description">Описание</a>
|
href="#description">Описание</a>
|
||||||
</li>
|
</li>
|
||||||
@@ -126,7 +126,7 @@
|
|||||||
|
|
||||||
|
|
||||||
<div class="space-y-3 md:space-y-4">
|
<div class="space-y-3 md:space-y-4">
|
||||||
<DepartmentBuilder :blocks="this.department.data.content "/>
|
<DepartmentBuilder :blocks="department.data.content "/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -14,12 +14,12 @@
|
|||||||
<div class="w-full h-[67px] fixed pointer-events-none" id="visor"></div>
|
<div class="w-full h-[67px] fixed pointer-events-none" id="visor"></div>
|
||||||
|
|
||||||
<div class="sticky top-[110px] hidden h-[calc(100vh-110px)] max-w-[20%] md:flex md:shrink-0 md:flex-col md:justify-between">
|
<div class="sticky top-[110px] hidden h-[calc(100vh-110px)] max-w-[20%] md:flex md:shrink-0 md:flex-col md:justify-between">
|
||||||
<nav v-if="this.divisions"
|
<nav v-if="divisions"
|
||||||
class="styled-scrollbar flex h-[calc(100vh-200px)] flex-col overflow-y-scroll pr-2 pb-4">
|
class="styled-scrollbar flex h-[calc(100vh-200px)] flex-col overflow-y-scroll pr-2 pb-4">
|
||||||
<div class="text-gray-1000 mb-2 text-md font-medium">Подразделения</div>
|
<div class="text-gray-1000 mb-2 text-md font-medium">Подразделения</div>
|
||||||
<div class="flex gap-x-1">
|
<div class="flex gap-x-1">
|
||||||
<ul class="px-0.5 last-of-type:mb-0 mb-8">
|
<ul class="px-0.5 last-of-type:mb-0 mb-8">
|
||||||
<li v-for="division in this.divisions.data" :key="division.id" class="my-1.5 flex">
|
<li v-for="division in divisions.data" :key="division.id" class="my-1.5 flex">
|
||||||
<a :class="{'text-white hover:text-gray-200 font-semibold bg-[#135aae]': isSameRoute(route('client.division.show', division.slug)), 'text-gray-600 hover:text-[#2C6288]': !isSameRoute(route('client.division.show', division.id)) }"
|
<a :class="{'text-white hover:text-gray-200 font-semibold bg-[#135aae]': isSameRoute(route('client.division.show', division.slug)), 'text-gray-600 hover:text-[#2C6288]': !isSameRoute(route('client.division.show', division.id)) }"
|
||||||
:href="route('client.division.show', division.slug) + '/'"
|
:href="route('client.division.show', division.slug) + '/'"
|
||||||
class="relative duration-300 flex w-full rounded-md cursor-pointer items-center px-2 py-1 text-left text-sm">{{
|
class="relative duration-300 flex w-full rounded-md cursor-pointer items-center px-2 py-1 text-left text-sm">{{
|
||||||
@@ -37,12 +37,12 @@
|
|||||||
<div class="text-gray-1000 mb-2 text-md font-medium">На этой странице</div>
|
<div class="text-gray-1000 mb-2 text-md font-medium">На этой странице</div>
|
||||||
<ul class="styled-scrollbar max-h-[70vh] space-y-1.5 overflow-y-auto py-2 text-sm">
|
<ul class="styled-scrollbar max-h-[70vh] space-y-1.5 overflow-y-auto py-2 text-sm">
|
||||||
<li v-if="division.data.workers.length > 0" class="anchor-li">
|
<li v-if="division.data.workers.length > 0" class="anchor-li">
|
||||||
<a :class="{ 'translate-x-2 text-[#135aae]' : this.currentNavSection === 'persons', 'bg-transperant text-gray-600 hover:text-gray-900' : this.currentNavSection !== 'persons' }"
|
<a :class="{ 'translate-x-2 text-[#135aae]' : currentNavSection === 'persons', 'bg-transperant text-gray-600 hover:text-gray-900' : currentNavSection !== 'persons' }"
|
||||||
class="duration-150 block py-1 px-2 leading-[1.6] rounded-md"
|
class="duration-150 block py-1 px-2 leading-[1.6] rounded-md"
|
||||||
href="#persons">Состав</a>
|
href="#persons">Состав</a>
|
||||||
</li>
|
</li>
|
||||||
<li v-if="division.data.description.length > 0" class="anchor-li">
|
<li v-if="division.data.description.length > 0" class="anchor-li">
|
||||||
<a :class="{ 'translate-x-2 text-[#135aae]' : this.currentNavSection === 'description', 'bg-transperant text-gray-600 hover:text-gray-900' : this.currentNavSection !== 'description' }"
|
<a :class="{ 'translate-x-2 text-[#135aae]' : currentNavSection === 'description', 'bg-transperant text-gray-600 hover:text-gray-900' : currentNavSection !== 'description' }"
|
||||||
class="duration-150 block py-1 px-2 leading-[1.6] rounded-md"
|
class="duration-150 block py-1 px-2 leading-[1.6] rounded-md"
|
||||||
href="#description">Описание</a>
|
href="#description">Описание</a>
|
||||||
</li>
|
</li>
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ export default {
|
|||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
events: {
|
events: {
|
||||||
type: Array,
|
type: Object,
|
||||||
},
|
},
|
||||||
currentDate: {
|
currentDate: {
|
||||||
type: String,
|
type: String,
|
||||||
@@ -46,7 +46,7 @@ export default {
|
|||||||
type: Array,
|
type: Array,
|
||||||
},
|
},
|
||||||
navigation: {
|
navigation: {
|
||||||
type: Array,
|
type: Object,
|
||||||
},
|
},
|
||||||
filters: {
|
filters: {
|
||||||
type: Array,
|
type: Array,
|
||||||
@@ -83,7 +83,7 @@ export default {
|
|||||||
<h1 class="block text-brand-primary text-center mb-3 mt-2 mr-4 text-3xl font-semibold tracking-tight dark:text-white lg:text-[40px] lg:leading-tight">
|
<h1 class="block text-brand-primary text-center mb-3 mt-2 mr-4 text-3xl font-semibold tracking-tight dark:text-white lg:text-[40px] lg:leading-tight">
|
||||||
Мероприятия НТГСПИ
|
Мероприятия НТГСПИ
|
||||||
</h1>
|
</h1>
|
||||||
<ClientEventFilter :is_online_filter="filters.is_online_filter" :categories="this.categories" :category_filter="filters.category_filter" :sorting-by_filter="filters.sortingBy_filter" />
|
<ClientEventFilter :is_online_filter="filters.is_online_filter" :categories="categories" :category_filter="filters.category_filter" :sorting-by_filter="filters.sortingBy_filter" />
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
<script>
|
<script>
|
||||||
import MainNavbar from "@/Navbars/MainNavbar.vue";
|
import MainNavbar from "@/Navbars/MainNavbar.vue";
|
||||||
import {Head, Link} from "@inertiajs/vue3";
|
import {Head, Link} from "@inertiajs/vue3";
|
||||||
import FsLightbox from "fslightbox-vue/v3";
|
|
||||||
import ClientScrollTimeline from "@/Components/ClientScrollTimeline.vue";
|
import ClientScrollTimeline from "@/Components/ClientScrollTimeline.vue";
|
||||||
import ClientFooterDown from "@/Components/ClientFooterDown.vue";
|
import ClientFooterDown from "@/Components/ClientFooterDown.vue";
|
||||||
import ClientImageSlider from "@/Components/ClientImageSlider.vue";
|
import ClientImageSlider from "@/Components/ClientImageSlider.vue";
|
||||||
@@ -9,7 +8,6 @@ import EventBackButton from "@/Components/BuilderUi/Events/EventBackButton.vue";
|
|||||||
import TitleEvent from "@/Components/BuilderUi/Events/TitleEvent.vue";
|
import TitleEvent from "@/Components/BuilderUi/Events/TitleEvent.vue";
|
||||||
import PostBuilder from "@/Components/BuilderUi/Posts/PostBuilder.vue";
|
import PostBuilder from "@/Components/BuilderUi/Posts/PostBuilder.vue";
|
||||||
import EventBuilder from "@/Components/BuilderUi/Events/EventBuilder.vue";
|
import EventBuilder from "@/Components/BuilderUi/Events/EventBuilder.vue";
|
||||||
import EventtBuilder from "@/Components/BuilderUi/Events/EventBuilder.vue";
|
|
||||||
import ClientEventSelectDate from "@/Components/ClientEventSelectDate.vue";
|
import ClientEventSelectDate from "@/Components/ClientEventSelectDate.vue";
|
||||||
import ClientEventFilter from "@/Components/ClientEventFilter.vue";
|
import ClientEventFilter from "@/Components/ClientEventFilter.vue";
|
||||||
import MainPageNavBar from "@/Navbars/MainPageNavbar.vue";
|
import MainPageNavBar from "@/Navbars/MainPageNavbar.vue";
|
||||||
@@ -22,25 +20,22 @@ export default {
|
|||||||
EventItemBreadcrumbs,
|
EventItemBreadcrumbs,
|
||||||
MainPageNavBar,
|
MainPageNavBar,
|
||||||
ClientEventFilter, ClientEventSelectDate,
|
ClientEventFilter, ClientEventSelectDate,
|
||||||
EventtBuilder,
|
|
||||||
EventBuilder,
|
EventBuilder,
|
||||||
PostBuilder,
|
PostBuilder,
|
||||||
TitleEvent,
|
TitleEvent,
|
||||||
EventBackButton,
|
EventBackButton,
|
||||||
ClientImageSlider, ClientFooterDown, ClientScrollTimeline, Link, MainNavbar, FsLightbox, Head},
|
ClientImageSlider, ClientFooterDown, ClientScrollTimeline, Link, MainNavbar, Head},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
blocks: this.event.data.content,
|
|
||||||
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
props: {
|
props: {
|
||||||
event: {
|
event: {
|
||||||
type: Array,
|
type: Object,
|
||||||
},
|
},
|
||||||
navigation: {
|
navigation: {
|
||||||
type: Array,
|
type: Object,
|
||||||
},
|
},
|
||||||
breadcrumbs: {
|
breadcrumbs: {
|
||||||
type: Object
|
type: Object
|
||||||
@@ -101,7 +96,7 @@ export default {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="space-y-3 md:space-y-4">
|
<div class="space-y-3 md:space-y-4">
|
||||||
<EventBuilder :blocks="this.blocks"/>
|
<EventBuilder :blocks="event.data.content"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -16,12 +16,12 @@
|
|||||||
|
|
||||||
|
|
||||||
<div class="sticky top-[110px] hidden h-[calc(100vh-110px)] max-w-[20%] md:flex md:shrink-0 md:flex-col md:justify-between">
|
<div class="sticky top-[110px] hidden h-[calc(100vh-110px)] max-w-[20%] md:flex md:shrink-0 md:flex-col md:justify-between">
|
||||||
<nav v-if="this.faculties"
|
<nav v-if="faculties"
|
||||||
class="styled-scrollbar flex h-[calc(100vh-200px)] flex-col overflow-y-scroll pr-2 pb-4">
|
class="styled-scrollbar flex h-[calc(100vh-200px)] flex-col overflow-y-scroll pr-2 pb-4">
|
||||||
<div class="text-gray-1000 mb-2 text-md font-medium">Факультеты</div>
|
<div class="text-gray-1000 mb-2 text-md font-medium">Факультеты</div>
|
||||||
<div class="flex gap-x-1">
|
<div class="flex gap-x-1">
|
||||||
<ul class="px-0.5 last-of-type:mb-0 mb-8">
|
<ul class="px-0.5 last-of-type:mb-0 mb-8">
|
||||||
<li v-for="faculty in this.faculties.data" :key="faculty.id" class="my-1.5 flex">
|
<li v-for="faculty in faculties.data" :key="faculty.id" class="my-1.5 flex">
|
||||||
<a :class="{'text-white hover:text-gray-200 font-semibold bg-[#135aae]': isSameRoute(route('client.faculty.show', faculty.slug)), 'text-gray-600 hover:text-[#2C6288]': !isSameRoute(route('client.faculty.show', faculty.id)) }"
|
<a :class="{'text-white hover:text-gray-200 font-semibold bg-[#135aae]': isSameRoute(route('client.faculty.show', faculty.slug)), 'text-gray-600 hover:text-[#2C6288]': !isSameRoute(route('client.faculty.show', faculty.id)) }"
|
||||||
:href="route('client.faculty.show', faculty.slug) + '/'"
|
:href="route('client.faculty.show', faculty.slug) + '/'"
|
||||||
class="relative duration-300 flex w-full rounded-md cursor-pointer items-center px-2 py-1 text-left text-sm">{{
|
class="relative duration-300 flex w-full rounded-md cursor-pointer items-center px-2 py-1 text-left text-sm">{{
|
||||||
@@ -39,17 +39,17 @@
|
|||||||
<div class="text-gray-1000 mb-2 text-md font-medium">На этой странице</div>
|
<div class="text-gray-1000 mb-2 text-md font-medium">На этой странице</div>
|
||||||
<ul class="styled-scrollbar max-h-[70vh] space-y-1.5 overflow-y-auto py-2 text-sm">
|
<ul class="styled-scrollbar max-h-[70vh] space-y-1.5 overflow-y-auto py-2 text-sm">
|
||||||
<li class="anchor-li">
|
<li class="anchor-li">
|
||||||
<a :class="{ 'translate-x-2 text-[#135aae]' : this.currentNavSection === 'persons', 'bg-transperant text-gray-600 hover:text-gray-900' : this.currentNavSection !== 'persons' }"
|
<a :class="{ 'translate-x-2 text-[#135aae]' : currentNavSection === 'persons', 'bg-transperant text-gray-600 hover:text-gray-900' : currentNavSection !== 'persons' }"
|
||||||
class="duration-150 block py-1 px-2 leading-[1.6] rounded-md"
|
class="duration-150 block py-1 px-2 leading-[1.6] rounded-md"
|
||||||
href="#persons">Состав</a>
|
href="#persons">Состав</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="anchor-li">
|
<li class="anchor-li">
|
||||||
<a :class="{ 'translate-x-2 text-[#135aae]' : this.currentNavSection === 'department', 'bg-transperant text-gray-600 hover:text-gray-900' : this.currentNavSection !== 'department' }"
|
<a :class="{ 'translate-x-2 text-[#135aae]' : currentNavSection === 'department', 'bg-transperant text-gray-600 hover:text-gray-900' : currentNavSection !== 'department' }"
|
||||||
class="duration-150 block py-1 px-2 leading-[1.6] rounded-md"
|
class="duration-150 block py-1 px-2 leading-[1.6] rounded-md"
|
||||||
href="#department">Кафедры факультета</a>
|
href="#department">Кафедры факультета</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="anchor-li">
|
<li class="anchor-li">
|
||||||
<a :class="{ 'translate-x-2 text-[#135aae]' : this.currentNavSection === 'description', 'bg-transperant text-gray-600 hover:text-gray-900' : this.currentNavSection !== 'description' }"
|
<a :class="{ 'translate-x-2 text-[#135aae]' : currentNavSection === 'description', 'bg-transperant text-gray-600 hover:text-gray-900' : currentNavSection !== 'description' }"
|
||||||
class="duration-150 block py-1 px-2 leading-[1.6] rounded-md"
|
class="duration-150 block py-1 px-2 leading-[1.6] rounded-md"
|
||||||
href="#description">Описание</a>
|
href="#description">Описание</a>
|
||||||
</li>
|
</li>
|
||||||
@@ -124,7 +124,7 @@
|
|||||||
|
|
||||||
|
|
||||||
<div class="space-y-3 md:space-y-4">
|
<div class="space-y-3 md:space-y-4">
|
||||||
<FacultyBuilder :blocks="this.faculty.data.content "/>
|
<FacultyBuilder :blocks="faculty.data.content "/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ export default {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<template v-for="block in this.blocks" :key="block.id">
|
<template v-for="block in blocks" :key="block.id">
|
||||||
<div v-if="block.type === 'heading'">
|
<div v-if="block.type === 'heading'">
|
||||||
<h2 class="font-bold text-xl">{{ block.data.content }}</h2>
|
<h2 class="font-bold text-xl">{{ block.data.content }}</h2>
|
||||||
</div>
|
</div>
|
||||||
@@ -158,7 +158,7 @@ export default {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<template v-for="block in this.blocks" :key="block.id">
|
<template v-for="block in blocks" :key="block.id">
|
||||||
<div v-if="block.type === 'heading'">
|
<div v-if="block.type === 'heading'">
|
||||||
<h2 class="font-bold text-xl">{{ block.data.content }}</h2>
|
<h2 class="font-bold text-xl">{{ block.data.content }}</h2>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -84,7 +84,7 @@ export default {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<template v-for="block in this.blocks" :key="block.id">
|
<template v-for="block in blocks" :key="block.id">
|
||||||
<div v-if="block.type === 'heading'">
|
<div v-if="block.type === 'heading'">
|
||||||
<h2 class="font-bold text-xl">{{ block.data.content }}</h2>
|
<h2 class="font-bold text-xl">{{ block.data.content }}</h2>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -4,10 +4,6 @@
|
|||||||
<meta name="description" content="Your page description">
|
<meta name="description" content="Your page description">
|
||||||
</Head>
|
</Head>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="flex flex-col h-screen">
|
<div class="flex flex-col h-screen">
|
||||||
<MainPageNavBar class="border-b" :sections="$page.props.navigation"></MainPageNavBar>
|
<MainPageNavBar class="border-b" :sections="$page.props.navigation"></MainPageNavBar>
|
||||||
|
|
||||||
@@ -22,60 +18,60 @@
|
|||||||
<div class="text-gray-1000 mb-2 text-md font-medium">На этой странице</div>
|
<div class="text-gray-1000 mb-2 text-md font-medium">На этой странице</div>
|
||||||
<ul class="styled-scrollbar max-h-[70vh] space-y-1.5 overflow-y-auto py-2 text-sm">
|
<ul class="styled-scrollbar max-h-[70vh] space-y-1.5 overflow-y-auto py-2 text-sm">
|
||||||
<li class="anchor-li">
|
<li class="anchor-li">
|
||||||
<a :class="{ 'translate-x-2 text-[#135aae]' : this.currentNavSection === 'education', 'bg-transperant text-gray-600 hover:text-gray-900' : this.currentNavSection !== 'education' }"
|
<a :class="{ 'translate-x-2 text-[#135aae]' : currentNavSection === 'education', 'bg-transperant text-gray-600 hover:text-gray-900' : currentNavSection !== 'education' }"
|
||||||
class="duration-150 block py-1 px-2 leading-[1.6] rounded-md"
|
class="duration-150 block py-1 px-2 leading-[1.6] rounded-md"
|
||||||
href="#education">Образование
|
href="#education">Образование
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="anchor-li">
|
<li class="anchor-li">
|
||||||
<a :class="{ 'translate-x-2 text-[#135aae]' : this.currentNavSection === 'awards', 'bg-transperant text-gray-600 hover:text-gray-900' : this.currentNavSection !== 'awards' }"
|
<a :class="{ 'translate-x-2 text-[#135aae]' : currentNavSection === 'awards', 'bg-transperant text-gray-600 hover:text-gray-900' : currentNavSection !== 'awards' }"
|
||||||
class="duration-150 block py-1 px-2 leading-[1.6] rounded-md"
|
class="duration-150 block py-1 px-2 leading-[1.6] rounded-md"
|
||||||
href="#awards">Награды</a>
|
href="#awards">Награды</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="anchor-li">
|
<li class="anchor-li">
|
||||||
<a :class="{ 'translate-x-2 text-[#135aae]' : this.currentNavSection === 'professionalRetraining', 'bg-transperant text-gray-600 hover:text-gray-900' : this.currentNavSection !== 'professionalRetraining' }"
|
<a :class="{ 'translate-x-2 text-[#135aae]' : currentNavSection === 'professionalRetraining', 'bg-transperant text-gray-600 hover:text-gray-900' : currentNavSection !== 'professionalRetraining' }"
|
||||||
class="duration-150 block py-1 px-2 leading-[1.6] rounded-md"
|
class="duration-150 block py-1 px-2 leading-[1.6] rounded-md"
|
||||||
href="#professionalRetraining">Профессиональная переподготовка
|
href="#professionalRetraining">Профессиональная переподготовка
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="anchor-li">
|
<li class="anchor-li">
|
||||||
<a :class="{ 'translate-x-2 text-[#135aae]' : this.currentNavSection === 'professionalDevelopment', 'bg-transperant text-gray-600 hover:text-gray-900' : this.currentNavSection !== 'professionalDevelopment' }"
|
<a :class="{ 'translate-x-2 text-[#135aae]' : currentNavSection === 'professionalDevelopment', 'bg-transperant text-gray-600 hover:text-gray-900' : currentNavSection !== 'professionalDevelopment' }"
|
||||||
class="duration-150 block py-1 px-2 leading-[1.6] rounded-md"
|
class="duration-150 block py-1 px-2 leading-[1.6] rounded-md"
|
||||||
href="#professionalDevelopment">Повышение квалификации
|
href="#professionalDevelopment">Повышение квалификации
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="anchor-li">
|
<li class="anchor-li">
|
||||||
<a :class="{ 'translate-x-2 text-[#135aae]' : this.currentNavSection === 'professDisciplines', 'bg-transperant text-gray-600 hover:text-gray-900' : this.currentNavSection !== 'professDisciplines' }"
|
<a :class="{ 'translate-x-2 text-[#135aae]' : currentNavSection === 'professDisciplines', 'bg-transperant text-gray-600 hover:text-gray-900' : currentNavSection !== 'professDisciplines' }"
|
||||||
class="duration-150 block py-1 px-2 leading-[1.6] rounded-md"
|
class="duration-150 block py-1 px-2 leading-[1.6] rounded-md"
|
||||||
href="#professDisciplines">Преподаваемые дисциплины
|
href="#professDisciplines">Преподаваемые дисциплины
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="anchor-li">
|
<li class="anchor-li">
|
||||||
<a :class="{ 'translate-x-2 text-[#135aae]' : this.currentNavSection === 'workExperience', 'bg-transperant text-gray-600 hover:text-gray-900' : this.currentNavSection !== 'workExperience' }"
|
<a :class="{ 'translate-x-2 text-[#135aae]' : currentNavSection === 'workExperience', 'bg-transperant text-gray-600 hover:text-gray-900' : currentNavSection !== 'workExperience' }"
|
||||||
class="duration-150 block py-1 px-2 leading-[1.6] rounded-md"
|
class="duration-150 block py-1 px-2 leading-[1.6] rounded-md"
|
||||||
href="#workExperience">Стаж работы
|
href="#workExperience">Стаж работы
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="anchor-li">
|
<li class="anchor-li">
|
||||||
<a :class="{ 'translate-x-2 text-[#135aae]' : this.currentNavSection === 'attendedConferences', 'bg-transperant text-gray-600 hover:text-gray-900' : this.currentNavSection !== 'attendedConferences' }"
|
<a :class="{ 'translate-x-2 text-[#135aae]' : currentNavSection === 'attendedConferences', 'bg-transperant text-gray-600 hover:text-gray-900' : currentNavSection !== 'attendedConferences' }"
|
||||||
class="duration-150 block py-1 px-2 leading-[1.6] rounded-md"
|
class="duration-150 block py-1 px-2 leading-[1.6] rounded-md"
|
||||||
href="#attendedConferences">Участие в конференциях
|
href="#attendedConferences">Участие в конференциях
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="anchor-li">
|
<li class="anchor-li">
|
||||||
<a :class="{ 'translate-x-2 text-[#135aae]' : this.currentNavSection === 'participationScienceProjects', 'bg-transperant text-gray-600 hover:text-gray-900' : this.currentNavSection !== 'participationScienceProjects' }"
|
<a :class="{ 'translate-x-2 text-[#135aae]' : currentNavSection === 'participationScienceProjects', 'bg-transperant text-gray-600 hover:text-gray-900' : currentNavSection !== 'participationScienceProjects' }"
|
||||||
class="duration-150 block py-1 px-2 leading-[1.6] rounded-md"
|
class="duration-150 block py-1 px-2 leading-[1.6] rounded-md"
|
||||||
href="#participationScienceProjects">Участие в научных проектах
|
href="#participationScienceProjects">Участие в научных проектах
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="anchor-li">
|
<li class="anchor-li">
|
||||||
<a :class="{ 'translate-x-2 text-[#135aae]' : this.currentNavSection === 'publications', 'bg-transperant text-gray-600 hover:text-gray-900' : this.currentNavSection !== 'publications' }"
|
<a :class="{ 'translate-x-2 text-[#135aae]' : currentNavSection === 'publications', 'bg-transperant text-gray-600 hover:text-gray-900' : currentNavSection !== 'publications' }"
|
||||||
class="duration-150 block py-1 px-2 leading-[1.6] rounded-md"
|
class="duration-150 block py-1 px-2 leading-[1.6] rounded-md"
|
||||||
href="#publications">Публикации
|
href="#publications">Публикации
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="anchor-li">
|
<li class="anchor-li">
|
||||||
<a :class="{ 'translate-x-2 text-[#135aae]' : this.currentNavSection === 'other', 'bg-transperant text-gray-600 hover:text-gray-900' : this.currentNavSection !== 'other' }"
|
<a :class="{ 'translate-x-2 text-[#135aae]' : currentNavSection === 'other', 'bg-transperant text-gray-600 hover:text-gray-900' : currentNavSection !== 'other' }"
|
||||||
class="duration-150 block py-1 px-2 leading-[1.6] rounded-md"
|
class="duration-150 block py-1 px-2 leading-[1.6] rounded-md"
|
||||||
href="#other">Другое
|
href="#other">Другое
|
||||||
</a>
|
</a>
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ export default {
|
|||||||
type: Object,
|
type: Object,
|
||||||
},
|
},
|
||||||
filters: {
|
filters: {
|
||||||
type: Object,
|
type: Array,
|
||||||
},
|
},
|
||||||
categories: {
|
categories: {
|
||||||
type: Object,
|
type: Object,
|
||||||
@@ -84,15 +84,15 @@ export default {
|
|||||||
<NewsBreadcrumbs :breadcrumbs="breadcrumbs" class="px-5" />
|
<NewsBreadcrumbs :breadcrumbs="breadcrumbs" class="px-5" />
|
||||||
<div>
|
<div>
|
||||||
<AdminIndexHeader>
|
<AdminIndexHeader>
|
||||||
<ClientPostSearch :search_filter="this.filters.search_filter" />
|
<ClientPostSearch :search_filter="filters.search_filter" />
|
||||||
<ClientPostFilter :sorting-by_filter="this.filters.sortingBy_filter" :category_filter="this.filters.category_filter" :tag_filter="this.filters.tag_filter" :tags="tags" :items="categories"/>
|
<ClientPostFilter :sorting-by_filter="filters.sortingBy_filter" :category_filter="filters.category_filter" :tag_filter="filters.tag_filter" :tags="tags" :items="categories"/>
|
||||||
</AdminIndexHeader>
|
</AdminIndexHeader>
|
||||||
|
|
||||||
|
|
||||||
<div class="px-6">
|
<div class="px-6">
|
||||||
<h3 v-if="filters.category_filter.value || filters.tag_filter.value || filters.search_filter.value" class="text-sm text-gray-500 mb-4">Найдено новостей: {{ posts.meta.total }}</h3>
|
<h3 v-if="filters.category_filter.value || filters.tag_filter.value || filters.search_filter.value" class="text-sm text-gray-500 mb-4">Найдено новостей: {{ posts.meta.total }}</h3>
|
||||||
<div class="flex-wrap flex gap-3 md:items-center">
|
<div class="flex-wrap flex gap-3 md:items-center">
|
||||||
<PostBadge :filters="this.filters" />
|
<PostBadge v-if="filters.length > 0" :filters="filters" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ export default {
|
|||||||
default: ''
|
default: ''
|
||||||
},
|
},
|
||||||
breadcrumbs: {
|
breadcrumbs: {
|
||||||
type: Object
|
type: Object,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
@@ -95,9 +95,9 @@ export default {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<PostBuilder :blocks="this.blocks"/>
|
<PostBuilder :blocks="blocks"/>
|
||||||
<div>
|
<div>
|
||||||
<PostGallery :title="post.data.title" :images="post.data.gallery"/>
|
<PostGallery v-if="post.data.gallery.length > 1" :title="post.data.title" :images="post.data.gallery"/>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<a :href="route('client.post.index', { 'tag[]': tag.slug })" v-for="tag in post.data.tags" class="m-1 inline-flex items-center gap-1.5 py-2 px-3 rounded-full text-sm bg-gray-100 text-gray-800 hover:bg-gray-200 focus:outline-none focus:bg-gray-200 dark:bg-neutral-800 dark:text-neutral-200 dark:hover:bg-neutral-700 dark:focus:bg-neutral-700" href="#">
|
<a :href="route('client.post.index', { 'tag[]': tag.slug })" v-for="tag in post.data.tags" class="m-1 inline-flex items-center gap-1.5 py-2 px-3 rounded-full text-sm bg-gray-100 text-gray-800 hover:bg-gray-200 focus:outline-none focus:bg-gray-200 dark:bg-neutral-800 dark:text-neutral-200 dark:hover:bg-neutral-700 dark:focus:bg-neutral-700" href="#">
|
||||||
|
|||||||
@@ -152,7 +152,7 @@ export default {
|
|||||||
<template v-for="contest in admissionPlan.contests">
|
<template v-for="contest in admissionPlan.contests">
|
||||||
<div class="border rounded my-2 py-1">
|
<div class="border rounded my-2 py-1">
|
||||||
<span class="text-gray-500 text-[14px]">{{ (contest.form_education === '1') ? 'Очная форма обучения' : 'Заочная форма обучения' }}</span>
|
<span class="text-gray-500 text-[14px]">{{ (contest.form_education === '1') ? 'Очная форма обучения' : 'Заочная форма обучения' }}</span>
|
||||||
<p v-for="place in contest.places" class="mt-1 text-gray-600">{{ place.count }} мест <span class="text-gray-400 text-[12px]">{{ this.formsEdu[place.form_budget] }}</span></p>
|
<p v-for="place in contest.places" class="mt-1 text-gray-600">{{ place.count }} мест <span class="text-gray-400 text-[12px]">{{ formsEdu[place.form_budget] }}</span></p>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</template>
|
</template>
|
||||||
@@ -201,7 +201,7 @@ export default {
|
|||||||
</button>
|
</button>
|
||||||
<div id="hs-basic-bordered-collapse-two" class="hs-accordion-content hidden w-full overflow-hidden transition-[height] duration-300" aria-labelledby="hs-bordered-heading-two">
|
<div id="hs-basic-bordered-collapse-two" class="hs-accordion-content hidden w-full overflow-hidden transition-[height] duration-300" aria-labelledby="hs-bordered-heading-two">
|
||||||
<div class="pb-4 px-5">
|
<div class="pb-4 px-5">
|
||||||
<template v-for="block in this.program.data.about_program" :key="block.id">
|
<template v-for="block in program.data.about_program" :key="block.id">
|
||||||
<!-- <div v-if="block.type === 'image'">-->
|
<!-- <div v-if="block.type === 'image'">-->
|
||||||
<!-- <figure :class="block.data.withBackground ? 'bg-gray-100 rounded-lg' : ''">-->
|
<!-- <figure :class="block.data.withBackground ? 'bg-gray-100 rounded-lg' : ''">-->
|
||||||
<!-- <img loading="lazy" @click="openEditorImagesOnSlide(block.slideNumber)"-->
|
<!-- <img loading="lazy" @click="openEditorImagesOnSlide(block.slideNumber)"-->
|
||||||
@@ -326,7 +326,7 @@ export default {
|
|||||||
</button>
|
</button>
|
||||||
<div id="hs-basic-bordered-collapse-three" class="hs-accordion-content hidden w-full overflow-hidden transition-[height] duration-300" aria-labelledby="hs-bordered-heading-three">
|
<div id="hs-basic-bordered-collapse-three" class="hs-accordion-content hidden w-full overflow-hidden transition-[height] duration-300" aria-labelledby="hs-bordered-heading-three">
|
||||||
<div class="pb-4 px-5">
|
<div class="pb-4 px-5">
|
||||||
<template v-for="block in this.program.data.program_features" :key="block.id">
|
<template v-for="block in program.data.program_features" :key="block.id">
|
||||||
<!-- <div v-if="block.type === 'image'">-->
|
<!-- <div v-if="block.type === 'image'">-->
|
||||||
<!-- <figure :class="block.data.withBackground ? 'bg-gray-100 rounded-lg' : ''">-->
|
<!-- <figure :class="block.data.withBackground ? 'bg-gray-100 rounded-lg' : ''">-->
|
||||||
<!-- <img loading="lazy" @click="openEditorImagesOnSlide(block.slideNumber)"-->
|
<!-- <img loading="lazy" @click="openEditorImagesOnSlide(block.slideNumber)"-->
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<script>
|
<script>
|
||||||
import MainNavbar from "@/Navbars/MainNavbar.vue";
|
import MainNavbar from "@/Navbars/MainNavbar.vue";
|
||||||
import ClientFooterDown from "@/Components/ClientFooterDown.vue";
|
import ClientFooterDown from "@/Components/ClientFooterDown.vue";
|
||||||
import {debounce} from "lodash/function.js";
|
import {debounce} from "lodash";
|
||||||
import {Link} from "@inertiajs/vue3";
|
import {Link} from "@inertiajs/vue3";
|
||||||
import MainPageNavBar from "@/Navbars/MainPageNavbar.vue";
|
import MainPageNavBar from "@/Navbars/MainPageNavbar.vue";
|
||||||
import BaseIcon from "@/Components/BaseComponents/BaseIcon.vue";
|
import BaseIcon from "@/Components/BaseComponents/BaseIcon.vue";
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<script>
|
<script>
|
||||||
import MainNavbar from "@/Navbars/MainNavbar.vue";
|
import MainNavbar from "@/Navbars/MainNavbar.vue";
|
||||||
import ClientFooterDown from "@/Components/ClientFooterDown.vue";
|
import ClientFooterDown from "@/Components/ClientFooterDown.vue";
|
||||||
import {debounce} from "lodash/function.js";
|
import {debounce} from "lodash";
|
||||||
import {Link} from "@inertiajs/vue3";
|
import {Link} from "@inertiajs/vue3";
|
||||||
import MainPageNavBar from "@/Navbars/MainPageNavbar.vue";
|
import MainPageNavBar from "@/Navbars/MainPageNavbar.vue";
|
||||||
|
|
||||||
@@ -134,7 +134,7 @@ export default {
|
|||||||
<template v-for="(lesson, index) in getDayOfWeek.scheduleDay.form">
|
<template v-for="(lesson, index) in getDayOfWeek.scheduleDay.form">
|
||||||
<tr>
|
<tr>
|
||||||
<td class="border text-center">{{ index + 1 }}</td>
|
<td class="border text-center">{{ index + 1 }}</td>
|
||||||
<td class="border text-center">{{ this.timeSchedules[index] }}</td>
|
<td class="border text-center">{{ timeSchedules[index] }}</td>
|
||||||
<td class="text-center border">
|
<td class="text-center border">
|
||||||
<template v-for="lesson_info in lesson">
|
<template v-for="lesson_info in lesson">
|
||||||
<div class="flex items-stretch justify-center">
|
<div class="flex items-stretch justify-center">
|
||||||
@@ -176,7 +176,7 @@ export default {
|
|||||||
<table class="border-collapse border w-full mb-4">
|
<table class="border-collapse border w-full mb-4">
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="text-center" rowspan="9" width="30px">{{ this.weekday[index] }}</td>
|
<td class="text-center" rowspan="9" width="30px">{{ weekday[index] }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="text-center border px-3">#</td>
|
<td class="text-center border px-3">#</td>
|
||||||
@@ -186,7 +186,7 @@ export default {
|
|||||||
<template v-for="(lesson, index) in day.form">
|
<template v-for="(lesson, index) in day.form">
|
||||||
<tr>
|
<tr>
|
||||||
<td class="border text-center">{{ index + 1 }}</td>
|
<td class="border text-center">{{ index + 1 }}</td>
|
||||||
<td class="border text-center">{{ this.timeSchedules[index] }}</td>
|
<td class="border text-center">{{ timeSchedules[index] }}</td>
|
||||||
<td class="text-center border">
|
<td class="text-center border">
|
||||||
<template v-for="lesson_info in lesson">
|
<template v-for="lesson_info in lesson">
|
||||||
<div class="flex items-stretch justify-center">
|
<div class="flex items-stretch justify-center">
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<script>
|
<script>
|
||||||
import MainNavbar from "@/Navbars/MainNavbar.vue";
|
import MainNavbar from "@/Navbars/MainNavbar.vue";
|
||||||
import ClientFooterDown from "@/Components/ClientFooterDown.vue";
|
import ClientFooterDown from "@/Components/ClientFooterDown.vue";
|
||||||
import {debounce} from "lodash/function.js";
|
import {debounce} from "lodash";
|
||||||
import {Link} from "@inertiajs/vue3";
|
import {Link} from "@inertiajs/vue3";
|
||||||
import MainPageNavBar from "@/Navbars/MainPageNavbar.vue";
|
import MainPageNavBar from "@/Navbars/MainPageNavbar.vue";
|
||||||
|
|
||||||
|
|||||||
+4
-4
@@ -2,9 +2,8 @@ import './bootstrap';
|
|||||||
import '../css/app.css';
|
import '../css/app.css';
|
||||||
import 'preline';
|
import 'preline';
|
||||||
|
|
||||||
import { createApp, h } from 'vue';
|
import { createSSRApp, h } from 'vue';
|
||||||
import { createInertiaApp } from '@inertiajs/vue3';
|
import { createInertiaApp } from '@inertiajs/vue3';
|
||||||
import { resolvePageComponent } from 'laravel-vite-plugin/inertia-helpers';
|
|
||||||
import { ZiggyVue } from '../../vendor/tightenco/ziggy/dist/vue.m';
|
import { ZiggyVue } from '../../vendor/tightenco/ziggy/dist/vue.m';
|
||||||
import {linksReform} from "@/mixins/LinksReform.js";
|
import {linksReform} from "@/mixins/LinksReform.js";
|
||||||
|
|
||||||
@@ -18,14 +17,15 @@ createInertiaApp({
|
|||||||
// resolvePageComponent(`./Pages/${name}.vue`, import.meta.glob('./Pages/**/*.vue'))
|
// resolvePageComponent(`./Pages/${name}.vue`, import.meta.glob('./Pages/**/*.vue'))
|
||||||
},
|
},
|
||||||
setup({ el, App, props, plugin }) {
|
setup({ el, App, props, plugin }) {
|
||||||
return createApp({ render: () => h(App, props) })
|
return createSSRApp({ render: () => h(App, props) })
|
||||||
.use(plugin)
|
.use(plugin)
|
||||||
.mixin(linksReform)
|
.mixin(linksReform)
|
||||||
.use(ZiggyVue, Ziggy)
|
.use(ZiggyVue)
|
||||||
.mount(el);
|
.mount(el);
|
||||||
},
|
},
|
||||||
progress: {
|
progress: {
|
||||||
color: '#1E57A3',
|
color: '#1E57A3',
|
||||||
|
delay: 250,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -68,7 +68,7 @@ Route::middleware('access-check')->group(function () {
|
|||||||
|
|
||||||
// События
|
// События
|
||||||
Route::get('/events', [ClientEventController::class, 'index'])->name('client.event.index'); // Доделать builder
|
Route::get('/events', [ClientEventController::class, 'index'])->name('client.event.index'); // Доделать builder
|
||||||
Route::get('/events/{id}', [ClientEventController::class, 'show'])->name('client.event.show');
|
Route::get('/events/{slug}', [ClientEventController::class, 'show'])->name('client.event.show');
|
||||||
|
|
||||||
// Заметки библиотеки
|
// Заметки библиотеки
|
||||||
Route::get('/library/news', [ClientLibraryNewsController::class, 'index'])->name('client.library.news.index'); // Доделать builder
|
Route::get('/library/news', [ClientLibraryNewsController::class, 'index'])->name('client.library.news.index'); // Доделать builder
|
||||||
|
|||||||
+6
-1
@@ -9,8 +9,10 @@ export default defineConfig({
|
|||||||
plugins: [
|
plugins: [
|
||||||
laravel({
|
laravel({
|
||||||
input: 'resources/js/app.js',
|
input: 'resources/js/app.js',
|
||||||
|
ssr: 'resources/js/ssr.js',
|
||||||
refresh: true,
|
refresh: true,
|
||||||
}),
|
}),
|
||||||
|
|
||||||
vue({
|
vue({
|
||||||
template: {
|
template: {
|
||||||
transformAssetUrls: {
|
transformAssetUrls: {
|
||||||
@@ -31,6 +33,9 @@ export default defineConfig({
|
|||||||
watch: {
|
watch: {
|
||||||
usePolling: true
|
usePolling: true
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
ssr: {
|
||||||
|
noExternal: ['lodash', 'bvi', 'preline'],
|
||||||
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user