Изменения от Главреда ГитЖС | Changes of GitJS Glavred

This commit is contained in:
Главред | Glavred
2020-08-05 15:10:43 +03:00
parent ef790681f2
commit d069a83603
2 changed files with 387 additions and 38 deletions

View File

@@ -1,62 +1,374 @@
/*
// // // //
УведомитьОНеудачномСохраненииИзменений = мир =>
УведомитьОЗавершенииПубликации = мир =>
{
UIkit.notification("Не удалось сохранить изменения", {status: "danger"});
UIkit.notification("Could not save changes", {status: "danger"});
UIkit.notification("Опубликовали");
UIkit.notification("Published");
};
// // // //
УведомитьОбУспешномСохраненииИзменений = мир =>
ОпубликоватьСодержимое = мир =>
{
UIkit.notification("Сохранили успешно", {status: "success"});
UIkit.notification("Saved successfully", {status: "success"});
(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;
}
});
мир.уведомить("опубликовали содержимое");
})();
};
// // // //
СохранитьИзменения = мир =>
ПродублироватьСодержимоеПубликуемогоМодуляВЛокальнуюКопиюГит = мир =>
{
for (var файл in мир.временноеСодержимое)
{
var содержимое = мир.временноеСодержимое[файл];
мир.редактируемыйМодуль.содержимое[файл] = содержимое;
(async() => {
var содержимое = мир.редактируемыйМодуль.содержимое;
for (var файл in содержимое)
{
var содержимоеФайла = содержимое[файл];
// НАДО Поддержать сохранение двоичных файлов.
await мир.fs.promises.writeFile(мир.директория + файл, содержимоеФайла, "utf8");
var путь = файл.substr(1);
await git.add({
fs: мир.fs,
dir: мир.директория,
filepath: путь,
});
}
await git.commit({
fs: мир.fs,
dir: мир.директория,
message: мир.сообщение,
author: мир.автор,
})
мир.уведомить("продублировали содержимое");
})();
};
// // // //
УведомитьОЗавершенииОбновления = мир =>
{
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
{
мир.уведомить("учётных данных недостаточно");
}
мир.временноеСодержимое = {};
мир.модули.сохранили.подписатьРаз(function() {
мир.уведомить("сохранили изменения");
});
мир.модули.неСохранили.подписатьРаз(function() {
мир.уведомить("не сохранили изменения");
});
мир.модули.сохранить(мир.редактируемыйМодуль.указатель);
};
// // // //
ЗадатьКнопкуСохранения = мир =>
ОтслеживатьКнопкуПубликацииВГит = мир =>
{
$(`#${мир.макет.константы.заголовокПраво}`).append(`
<ul class="uk-navbar-nav">
<li><a id="сохранить-ссылка">💾</a></li>
$(`#издатель-гит-учётка`).submit(function(событие) {
событие.preventDefault();
мир.уведомить("кнопка публикации в гит");
});
};
// // // //
ОтобразитьАдресХранилищаГита = мир =>
{
$(`#издатель-гит-хранилище`).val(мир.редактируемыйМодуль["🏠"]);
};
// // // //
ОтобразитьСодержимоеПунктаГитИздателя = мир =>
{
$(`#${мир.макет.константы.содержимое}`).html(`
<div class="издатель-гит-отступ">
<form id="издатель-гит-учётка">
<input id="издатель-гит-имя" class="uk-input uk-margin-small" type="text" placeholder="Имя | Name">
<input id="издатель-гит-пароль" class="uk-input uk-margin-small" type="password" placeholder="Пароль | Password">
<input id="издатель-гит-хранилище" class="uk-input uk-margin-small" type="text" placeholder="Хранилище | Repository" readonly>
<button id="издатель-гит-опубликовать" class="uk-button uk-button-primary uk-margin-small">Опубликовать | Publish</button>
</form>
</div>
`);
};
// // // //
ОтобразитьВыборПунктаГитИздателя = мир =>
{
$(`#издатель-гит`).addClass("uk-active");
};
// // // //
ЗадатьВидСодержимогоМенюИздателя = мир =>
{
задатьВид(`
.издатель-гит-отступ
{
padding: 1em;
}
`)
};
// // // //
ЗадатьРазделМенюИздателя = мир =>
{
$(`#${мир.макет.константы.меню}`).append(`
<ul class="uk-nav uk-nav-default tm-nav">
<li class="uk-nav-header">📓 Издание | Publishing</li>
<li id="издатель-гит">
<a id="издатель-гит-ссылка">Гит | Git</a>
</li>
</ul>
`);
$(`#сохранить-ссылка`).click(function() {
мир.уведомить("выбрали сохранить");
$(`#издатель-гит-ссылка`).click(function() {
мир.уведомить("выбрали пункт гит издателя");
});
};
*/