diff --git a/console/ui/index.html b/console/ui/index.html
index 74648e9..5f202d8 100644
--- a/console/ui/index.html
+++ b/console/ui/index.html
@@ -900,70 +900,11 @@
}
};
- function onLangChange() {
- var lang = document.getElementById('c-lang').value;
- var t = LANG_TEMPLATES[lang];
- if (t) {
- document.getElementById('c-entry').value = t.entrypoint;
- document.getElementById('c-code').value = t.code;
- }
- }
- function openCreate() {
- document.getElementById('c-lang').value = 'python';
- onLangChange();
- document.getElementById('c-timeout').value = '60';
- document.getElementById('c-schedule-enabled').checked = false;
- document.getElementById('c-cron').value = '';
- toggleScheduleFields('c');
- document.getElementById('create-modal').classList.add('open');
- document.getElementById('c-name').focus();
- }
-
- function closeCreate() {
- document.getElementById('create-modal').classList.remove('open');
- }
-
- async function submitCreate() {
- const btn = document.getElementById('c-submit');
- btn.disabled = true;
- const progress = startTimedStatus('Создаём функцию...', 'Создание функции...', explainDelay);
- try {
- const name = document.getElementById('c-name').value.trim();
- if (!name) throw new Error('name is required');
- const lang = document.getElementById('c-lang').value.trim();
- if (!lang) throw new Error('language is required');
-
- await requestJSON(API_BASE + '/functions', 'POST', {
- name: name,
- language: lang,
- entrypoint: document.getElementById('c-entry').value.trim(),
- route: document.getElementById('c-route').value.trim(),
- methods: parseMethods(document.getElementById('c-methods').value),
- timeout: parseTimeout(document.getElementById('c-timeout').value),
- code: document.getElementById('c-code').value
- });
-
- try {
- await syncScheduleForFunction(name, 'c');
- } catch (scheduleErr) {
- try {
- await requestJSON(API_BASE + '/functions/' + encodeURIComponent(name), 'DELETE');
- } catch (rollbackErr) {
- scheduleErr.message += '; rollback failed: ' + rollbackErr.message;
- }
- throw scheduleErr;
- }
-
- closeCreate();
- progress.stop('\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0430: ' + name, 'ok');
- await reloadAll();
- } catch (e) {
- progress.stop('\u041e\u0448\u0438\u0431\u043a\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f: ' + e.message, 'err');
- } finally {
- btn.disabled = false;
- }
- }
+ // Подключаем CRUD-функции для создания
+ const scriptFunctions = document.createElement('script');
+ scriptFunctions.src = 'js/functions.js';
+ document.head.appendChild(scriptFunctions);
async function openEdit(name) {
try {