You've already forked OpenIntegrations
mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2025-11-27 22:18:36 +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_'] {
|
[class*='iconExternalLink_'] {
|
||||||
display: none;
|
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 Heading from '@theme/Heading';
|
||||||
import styles from './index.module.css';
|
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() {
|
function HomepageHeader() {
|
||||||
const {siteConfig} = useDocusaurusContext();
|
const { siteConfig } = useDocusaurusContext();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<header className={clsx('hero hero--primary', styles.heroBanner)}>
|
<header className={clsx('hero hero--primary', styles.heroBanner)}>
|
||||||
|
<div className={styles.fallingIconsContainer}>
|
||||||
|
<FallingIcons />
|
||||||
|
</div>
|
||||||
<div className="container">
|
<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">
|
<Heading as="p" className="hero__title">
|
||||||
{siteConfig.title}
|
{siteConfig.title}
|
||||||
</Heading>
|
</Heading>
|
||||||
@@ -41,14 +102,14 @@ function HomepageHeader() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export default function Home() {
|
export default function Home() {
|
||||||
const {siteConfig} = useDocusaurusContext();
|
const { siteConfig } = useDocusaurusContext();
|
||||||
return (
|
return (
|
||||||
<Layout
|
<Layout
|
||||||
title={`Открытый пакет интеграций`}
|
title={`Открытый пакет интеграций`}
|
||||||
description="ОПИ - пакет интеграций с популярными API для 1С:Enterprise и OneScript">
|
description="ОПИ - пакет интеграций с популярными API для 1С:Enterprise и OneScript">
|
||||||
<HomepageHeader />
|
<HomepageHeader />
|
||||||
<main>
|
<main>
|
||||||
<br/><hr/>
|
<br /><hr />
|
||||||
<AlternatingFeatures />
|
<AlternatingFeatures />
|
||||||
</main>
|
</main>
|
||||||
</Layout>
|
</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 {
|
.particle {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
background-color: rgba(0, 63, 19, 0.452);
|
width: 0;
|
||||||
border-radius: 50%;
|
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;
|
pointer-events: none;
|
||||||
animation: float linear infinite;
|
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 {
|
@keyframes float {
|
||||||
0% {
|
0% {
|
||||||
transform: translateY(0) translateX(0);
|
transform: translateY(0) translateX(0) scale(1);
|
||||||
opacity: 1;
|
opacity: 0.2;
|
||||||
}
|
}
|
||||||
50% {
|
50% {
|
||||||
transform: translateY(-50px) translateX(20px);
|
transform: translateY(-40px) translateX(20px) scale(1.2);
|
||||||
opacity: 0.7;
|
opacity: 0.8;
|
||||||
}
|
}
|
||||||
100% {
|
90% {
|
||||||
transform: translateY(0) translateX(0);
|
transform: translateY(0) translateX(0) scale(1);
|
||||||
opacity: 1;
|
opacity: 0.2;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@media screen and (max-width: 996px) {
|
@media screen and (max-width: 996px) {
|
||||||
@@ -56,6 +81,10 @@
|
|||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.particle {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
|
||||||
.button{
|
.button{
|
||||||
margin: 10px;
|
margin: 10px;
|
||||||
}
|
}
|
||||||
@@ -70,3 +99,8 @@
|
|||||||
.heroBanner_src-pages-index-module {
|
.heroBanner_src-pages-index-module {
|
||||||
padding-bottom: 30px;
|
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_ПолучитьЗаписи(ПараметрыТеста);
|
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