You've already forked OpenIntegrations
mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2025-08-10 22:41:43 +02:00
Доработка главной страницы доков
This commit is contained in:
24
docs/docusaurus/src/css/custom.css
vendored
24
docs/docusaurus/src/css/custom.css
vendored
@@ -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;
|
||||
}
|
||||
}
|
69
docs/docusaurus/src/pages/index.js
vendored
69
docs/docusaurus/src/pages/index.js
vendored
@@ -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>
|
||||
|
52
docs/docusaurus/src/pages/index.module.css
vendored
52
docs/docusaurus/src/pages/index.module.css
vendored
@@ -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;
|
||||
}
|
||||
|
||||
|
@@ -612,8 +612,7 @@
|
||||
|
||||
ИначеЕсли ТекущийТип = Тип("Булево") Тогда
|
||||
|
||||
ТекущийПараметр = ?(ТекущийПараметр, 1, 0);
|
||||
ТекущийКлюч = "BIT";
|
||||
ТекущийКлюч = "BIT";
|
||||
|
||||
ИначеЕсли ТекущийТип = Тип("Число") Тогда
|
||||
|
||||
|
113
src/ru/OPI/src/CommonModules/OPI_Тесты/Module.bsl
vendored
113
src/ru/OPI/src/CommonModules/OPI_Тесты/Module.bsl
vendored
@@ -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"], Остаток);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
Reference in New Issue
Block a user