// // // // УведомитьОЗавершенииПубликации = мир => { UIkit.notification("Опубликовали"); UIkit.notification("Published"); }; // // // // ОпубликоватьСодержимое = мир => { (async() => { await git.push({ fs: мир.fs, http: мир.гитHTTP, dir: мир.директория, remote: мир.источник, ref: мир.ветка, onAuth: url => { var auth = { "username": мир.пользователь, "password": мир.пароль, }; //var json = JSON.stringify(auth); //console.debug(`Auth url: '${url}' auth: '${json}'`); return auth; } }); мир.уведомить("опубликовали содержимое"); })(); }; // // // // ПродублироватьСодержимоеПубликуемогоМодуляВЛокальнуюКопиюГит = мир => { (async() => { // Файлы. var содержимое = мир.редактируемыйМодуль.содержимое; for (var файл in содержимое) { var содержимоеФайла = содержимое[файл]; // НАДО Поддержать сохранение двоичных файлов. await мир.fs.promises.writeFile(мир.директория + файл, содержимоеФайла, "utf8"); var путь = файл.substr(1); await git.add({ fs: мир.fs, dir: мир.директория, filepath: путь, }); } // Файл 0000. var файл0000 = мир.собрать0000(мир.редактируемыйМодуль); await мир.fs.promises.writeFile(мир.директория + "/0000", файл0000, "utf8"); await git.add({ fs: мир.fs, dir: мир.директория, filepath: "0000", }); await git.commit({ fs: мир.fs, dir: мир.директория, message: мир.сообщение, author: мир.автор, }) мир.уведомить("продублировали содержимое"); })(); }; // // // // УдалитьКорневыеФайлы = мир => { (async() => { var файлы = await мир.fs.promises.readdir(мир.директория); for (var номер in файлы) { var файл = файлы[номер]; var путь = мир.директория + "/" + файл; var статус = await мир.fs.promises.stat(путь); // Удаляем лишь файлы. if (статус.isFile()) { await git.remove({ fs: мир.fs, dir: мир.директория, filepath: файл, }); await мир.fs.promises.unlink(путь) } } мир.уведомить("удалили корневые файлы"); })(); } // // // // УведомитьОЗавершенииОбновления = мир => { UIkit.notification("Обновили локальную копию Гит"); UIkit.notification("Finished refreshing local Git copy"); }; // // // // УведомитьОНеобходимостиПерезагрузки = мир => { var сообщение = `ВНИМАНИЕ Произведена очистка локальной копии Гита. Перезагрузите страницу руками и повторите публикацию | WARNING Local Git copy has just been removed. Reload this page manually and repeat the publication ${мир.ошибка}`; UIkit.modal.alert(сообщение); console.error(сообщение); }; // // // // ОчиститьФайловуюСистему = мир => { // Очищаем IndexedDB. мир.fs = new LightningFS(мир.имяФС, { wipe: true }); }; // // // // ОбновитьХранилище = мир => { (async() => { try { await git.pull({ fs: мир.fs, http: мир.гитHTTP, dir: мир.директория, url: мир.хранилище, depth: 1, author: мир.автор, corsProxy: мир.прокси, }); мир.уведомить("обновили хранилище"); } catch (ошибка) { мир.ошибка = ошибка; мир.уведомить("не обновили хранилище"); } })(); }; // // // // СклонироватьХранилище = мир => { (async() => { await git.clone({ fs: мир.fs, http: мир.гитHTTP, dir: мир.директория, url: мир.хранилище, depth: 1, corsProxy: мир.прокси, }); мир.уведомить("склонировали хранилище"); })(); }; // // // // УведомитьОбОшибкеПодготовкиДиректории = мир => { var сообщение = `Не удалось подготовить директорию для хранилища Гит | Could not prepare a directory for Git repository ${мир.ошибка}`; UIkit.modal.alert(сообщение); console.error(сообщение); }; // // // // ПодготовитьДиректорию = мир => { (async() => { try { await мир.fs.promises.mkdir(мир.директория); мир.уведомить("подготовили директорию"); } catch (ошибка) { мир.ошибка = ошибка; мир.уведомить("не подготовили директорию"); } })(); }; // // // // ПроверитьНаличиеДиректории = мир => { мир.fs = new LightningFS(мир.имяФС); (async() => { try { await мир.fs.promises.readdir(мир.директория); мир.уведомить("директория присутствует"); } catch (ошибка) { мир.ошибка = ошибка; мир.уведомить("директория отсутствует"); } })(); }; // // // // ЗадатьНастройки = мир => { мир.хранилище = $(`#издатель-гит-хранилище`).val(); мир.имяФС = "fs_" + мир.хранилище; мир.пользователь = $(`#издатель-гит-имя`).val(); мир.пароль = $(`#издатель-гит-пароль`).val(); мир.автор = { "name": "Главред | Glavred", "email": "glavred@gitjs.org", }; мир.ветка = "master"; мир.директория = "/" + мир.ветка; мир.источник = "origin"; мир.сообщение = "Изменения от Главреда ГитЖС | Changes of GitJS Glavred"; //мир.прокси = "https://cors.isomorphic-git.org"; }; // // // // ВключитьКнопкуПубликацииВГит = мир => { $(`#издатель-гит-опубликовать`).prop("disabled", false); }; // // // // ОтключитьКнопкуПубликацииВГит = мир => { $(`#издатель-гит-опубликовать`).prop("disabled", true); }; // // // // УведомитьОНачалеПубликацииВГит = мир => { UIkit.notification("Начали публикацию в Гит"); UIkit.notification("Started publishing to Git"); }; // // // // СообщитьОНедостаточностиУчётныхДанных = мир => { var сообщение = "Недостаточно учётных данных для публикации | Not enough credentials to publish"; UIkit.modal.alert(сообщение); console.error(сообщение); }; // // // // ПроверитьДостаточностьУчётныхДанных = мир => { if ( $(`#издатель-гит-имя`).val() && $(`#издатель-гит-пароль`).val() && $(`#издатель-гит-хранилище`).val() ) { мир.уведомить("учётных данных достаточно"); } else { мир.уведомить("учётных данных недостаточно"); } }; // // // // ОтслеживатьКнопкуПубликацииВГит = мир => { $(`#издатель-гит-учётка`).submit(function(событие) { событие.preventDefault(); мир.уведомить("кнопка публикации в гит"); }); }; // // // // ОтобразитьАдресХранилищаГита = мир => { $(`#издатель-гит-хранилище`).val(мир.редактируемыйМодуль["🏠"]); }; // // // // ОтобразитьСодержимоеПунктаГитИздателя = мир => { $(`#${мир.макет.константы.содержимое}`).html(`
`); }; // // // // ОтобразитьВыборПунктаГитИздателя = мир => { $(`#издатель-гит`).addClass("uk-active"); }; // // // // ЗадатьВидСодержимогоМенюИздателя = мир => { задатьВид(` .издатель-гит-отступ { padding: 1em; } `) }; // // // // ЗадатьРазделМенюИздателя = мир => { $(`#${мир.макет.константы.меню}`).append(` `); $(`#издатель-гит-ссылка`).click(function() { мир.уведомить("выбрали пункт гит издателя"); }); };