1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2025-08-10 22:41:43 +02:00

Доработка главной страницы доков

This commit is contained in:
Anton Titovets
2025-07-10 11:07:44 +03:00
parent 310b35f2f1
commit 253606dbe9
5 changed files with 246 additions and 15 deletions

View File

@@ -444,4 +444,28 @@ li > a.menu__link {
[class*='iconExternalLink_'] {
display: none;
}
.falling-icon {
position: absolute;
width: 40px;
height: auto;
opacity: 0;
animation-name: fall;
animation-timing-function: linear;
animation-iteration-count: infinite;
}
@keyframes fall {
0% {
transform: translateY(-100px);
opacity: 0.25;
}
35% {
opacity: 0;
}
100% {
transform: translateY(100vh);
opacity: 0;
}
}

View File

@@ -7,13 +7,74 @@ import AlternatingFeatures from '@site/src/components/AlternatingFeatures';
import Heading from '@theme/Heading';
import styles from './index.module.css';
const iconList = [
'/img/APIs/Airtable.png',
'/img/APIs/VK.png',
'/img/APIs/Ozon.png',
'/img/APIs/Neocities.png',
'/img/APIs/Telegram.png',
'/img/APIs/Viber.png',
'/img/APIs/Bitrix24.png',
'/img/APIs/CDEK.png',
'/img/APIs/Dropbox.png',
'/img/APIs/GoogleCalendar.png',
'/img/APIs/GoogleDrive.png',
'/img/APIs/GoogleSheets.png',
'/img/APIs/GreenAPI.png',
'/img/APIs/HTTP.png',
'/img/APIs/MSSQL.png',
'/img/APIs/MySQL.png',
'/img/APIs/Notion.png',
'/img/APIs/OpenAI.png',
'/img/APIs/Twitter.png',
'/img/APIs/PostgreSQL.png',
'/img/APIs/RCON.png',
'/img/APIs/S3.png',
'/img/APIs/Slack.png',
'/img/APIs/SQLite.png',
'/img/APIs/TCP.png',
'/img/APIs/VKTeams.png',
// ... добавьте все свои иконки
];
const FallingIcons = () => {
const iconCount = 60; // количество падающих иконок
const icons = [];
for (let i = 0; i < iconCount; i++) {
const randomIcon = iconList[Math.floor(Math.random() * iconList.length)];
const left = (i / (iconCount - 1)) * 100; // равномерное распределение по ширине
const duration = Math.random() + 20;// случайная длительность от 6 до 10 секунд
const delay = Math.random() * 20; // случайная задержка от 0 до 5 секунд
icons.push(
<img
key={i}
src={randomIcon}
alt="falling icon"
className="falling-icon"
style={{
left: `${left}%`,
animationDuration: `${duration}s`,
animationDelay: `${delay}s`,
}}
/>
);
}
return <>{icons}</>;
};
function HomepageHeader() {
const {siteConfig} = useDocusaurusContext();
const { siteConfig } = useDocusaurusContext();
return (
<header className={clsx('hero hero--primary', styles.heroBanner)}>
<div className={styles.fallingIconsContainer}>
<FallingIcons />
</div>
<div className="container">
<img src="/img/logo.svg" className={styles.biglogo}/>
<img src="/img/logo.svg" className={styles.biglogo} />
<Heading as="p" className="hero__title">
{siteConfig.title}
</Heading>
@@ -41,14 +102,14 @@ function HomepageHeader() {
}
export default function Home() {
const {siteConfig} = useDocusaurusContext();
const { siteConfig } = useDocusaurusContext();
return (
<Layout
title={`Открытый пакет интеграций`}
description="ОПИ - пакет интеграций с популярными API для 1С:Enterprise и OneScript">
<HomepageHeader />
<main>
<br/><hr/>
<br /><hr />
<AlternatingFeatures />
</main>
</Layout>

View File

@@ -15,27 +15,52 @@
}
.container {
position: relative;
z-index: 1;
}
.particle {
position: absolute;
background-color: rgba(0, 63, 19, 0.452);
border-radius: 50%;
width: 0;
height: 0;
border-style: solid;
border-width: 0 0.3em 0.5em 0.3em;
border-color: transparent transparent #00000034 transparent;
transform: rotate(36deg);
pointer-events: none;
animation: float linear infinite;
z-index: -1;
will-change: transform;
}
.fallingIconsContainer {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
overflow: hidden;
pointer-events: none;
z-index: -1;
}
@keyframes float {
0% {
transform: translateY(0) translateX(0);
opacity: 1;
transform: translateY(0) translateX(0) scale(1);
opacity: 0.2;
}
50% {
transform: translateY(-50px) translateX(20px);
opacity: 0.7;
transform: translateY(-40px) translateX(20px) scale(1.2);
opacity: 0.8;
}
100% {
transform: translateY(0) translateX(0);
opacity: 1;
90% {
transform: translateY(0) translateX(0) scale(1);
opacity: 0.2;
}
}
@media screen and (max-width: 996px) {
@@ -56,6 +81,10 @@
flex-wrap: wrap;
}
.particle {
opacity: 0;
}
.button{
margin: 10px;
}
@@ -70,3 +99,8 @@
.heroBanner_src-pages-index-module {
padding-bottom: 30px;
}
.textContainer {
background-color: white;
}

View File

@@ -612,8 +612,7 @@
ИначеЕсли ТекущийТип = Тип("Булево") Тогда
ТекущийПараметр = ?(ТекущийПараметр, 1, 0);
ТекущийКлюч = "BIT";
ТекущийКлюч = "BIT";
ИначеЕсли ТекущийТип = Тип("Число") Тогда

View File

@@ -2843,6 +2843,8 @@
MSSQL_СоздатьТаблицу(ПараметрыТеста);
MSSQL_ДобавитьЗаписи(ПараметрыТеста);
MSSQL_ПолучитьЗаписи(ПараметрыТеста);
MSSQL_ОбновитьЗаписи(ПараметрыТеста);
MSSQL_УдалитьЗаписи(ПараметрыТеста);
КонецПроцедуры
@@ -24233,6 +24235,117 @@
КонецПроцедуры
Процедура MSSQL_ОбновитьЗаписи(ПараметрыФункции)
Адрес = ПараметрыФункции["PG_IP"];
Логин = "SA";
Пароль = ПараметрыФункции["PG_Password"];
База = "test_data";
НастройкиTLS = OPI_MSSQL.ПолучитьНастройкиTls(Истина);
СтрокаПодключения = OPI_MSSQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);
Таблица = "test_data";
СтруктураПолей = Новый Структура;
СтруктураПолей.Вставить("ip_address", Новый Структура("VARCHAR", "127.0.0.1"));
Фильтры = Новый Массив;
СтруктураФильтра = Новый Структура;
СтруктураФильтра.Вставить("field", "gender");
СтруктураФильтра.Вставить("type" , "=");
СтруктураФильтра.Вставить("value", Новый Структура("NVARCHAR", "Male"));
СтруктураФильтра.Вставить("raw" , Ложь);
Фильтры.Добавить(СтруктураФильтра);
Количество = OPI_MSSQL.ПолучитьЗаписи(Таблица, , Фильтры, , , СтрокаПодключения, НастройкиTLS); // SKIP
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Количество, "ОбновитьЗаписи (количество)", "MSSQL"); // SKIP
Количество = Количество["data"].Количество(); // SKIP
// При использовании строки подключения инициализируется новое соединение,
// которое будет закрыто после выполнения функции.
// В случае выполнения нескольких операций желательно использовать одно соединение,
// заранее созданное функцией ОткрытьСоединение()
Результат = OPI_MSSQL.ОбновитьЗаписи(Таблица, СтруктураПолей, СтруктураФильтра, СтрокаПодключения, НастройкиTLS);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОбновитьЗаписи", "MSSQL");
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат);
Проверка = OPI_MSSQL.ПолучитьЗаписи(Таблица, "['ip_address']", Фильтры, , , СтрокаПодключения, НастройкиTLS);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Проверка, "ОбновитьЗаписи (проверка)", "MSSQL");
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Проверка);
OPI_ПолучениеДанныхТестов.Проверка_Массив(Проверка["data"], Количество);
Для Н = 0 По Проверка["data"].ВГраница() Цикл
OPI_ПолучениеДанныхТестов.Проверка_SQLiteЗначенияПолей(Проверка["data"][Н], СтруктураПолей);
КонецЦикла;
КонецПроцедуры
Процедура MSSQL_УдалитьЗаписи(ПараметрыФункции)
Адрес = ПараметрыФункции["PG_IP"];
Логин = "SA";
Пароль = ПараметрыФункции["PG_Password"];
База = "test_data";
НастройкиTLS = OPI_MSSQL.ПолучитьНастройкиTls(Истина);
СтрокаПодключения = OPI_MSSQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);
Таблица = "test_data";
Фильтры = Новый Массив;
СтруктураФильтра = Новый Структура;
СтруктураФильтра.Вставить("field", "gender");
СтруктураФильтра.Вставить("type" , "=");
СтруктураФильтра.Вставить("value", Новый Структура("NVARCHAR", "Male"));
СтруктураФильтра.Вставить("raw" , Ложь);
СтруктураФильтра.Вставить("union", "AND");
Фильтры.Добавить(СтруктураФильтра);
СтруктураФильтра = Новый Структура;
СтруктураФильтра.Вставить("field", "ip_address");
СтруктураФильтра.Вставить("type" , "=");
СтруктураФильтра.Вставить("value", Новый Структура("NVARCHAR", "127.0.0.1"));
СтруктураФильтра.Вставить("raw" , Ложь);
Получение = OPI_MSSQL.ПолучитьЗаписи(Таблица, , Фильтры, , , СтрокаПодключения, НастройкиTls); // SKIP
// При использовании строки подключения инициализируется новое соединение,
// которое будет закрыто после выполнения функции.
// В случае выполнения нескольких операций желательно использовать одно соединение,
// заранее созданное функцией ОткрытьСоединение()
Результат = OPI_MSSQL.УдалитьЗаписи(Таблица, Фильтры, СтрокаПодключения, НастройкиTls);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Получение, "УдалитьЗаписи (получение)", "MSSQL");
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат);
Количество = Получение["data"].Количество();
Остаток = 100 - Количество;
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьЗаписи", "MSSQL");
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат);
Результат = OPI_MSSQL.ПолучитьЗаписи(Таблица, , , , , СтрокаПодключения, НастройкиTLS);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьЗаписи (проверка)", "MSSQL");
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат);
OPI_ПолучениеДанныхТестов.Проверка_Массив(Результат["data"], Остаток);
КонецПроцедуры
#КонецОбласти
#КонецОбласти