Изменения от Главреда ГитЖС | Changes of GitJS Glavred
This commit is contained in:
370
пуск|run.js
370
пуск|run.js
@@ -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() {
|
||||
мир.уведомить("выбрали пункт гит издателя");
|
||||
});
|
||||
};
|
||||
|
||||
*/
|
||||
|
||||
@@ -1,9 +1,46 @@
|
||||
#пуск главреда
|
||||
# задать кнопку сохранения
|
||||
#выбрали сохранить
|
||||
# сохранить изменения
|
||||
#не сохранили изменения
|
||||
# уведомить о неудачном сохранении изменений
|
||||
#сохранили изменения
|
||||
# уведомить об успешном сохранении изменений
|
||||
# очистить изменения всех файлов
|
||||
пуск главреда
|
||||
задать раздел меню издателя
|
||||
задать вид содержимого меню издателя
|
||||
выбрали пункт гит издателя
|
||||
очистить отображение выбора в меню
|
||||
отобразить выбор пункта гит издателя
|
||||
отобразить содержимое пункта гит издателя
|
||||
отобразить адрес хранилища гита
|
||||
отслеживать кнопку публикации в гит
|
||||
|
||||
кнопка публикации в гит
|
||||
проверить достаточность учётных данных
|
||||
учётных данных недостаточно
|
||||
сообщить о недостаточности учётных данных
|
||||
|
||||
учётных данных достаточно
|
||||
уведомить о начале публикации в гит
|
||||
отключить кнопку публикации в гит
|
||||
задать настройки
|
||||
проверить наличие директории
|
||||
директория отсутствует
|
||||
подготовить директорию
|
||||
не подготовили директорию
|
||||
уведомить об ошибке подготовки директории
|
||||
|
||||
подготовили директорию
|
||||
склонировать хранилище
|
||||
склонировали хранилище
|
||||
обновить хранилище
|
||||
директория присутствует
|
||||
обновить хранилище
|
||||
|
||||
не обновили хранилище
|
||||
очистить файловую систему
|
||||
уведомить о необходимости перезагрузки
|
||||
|
||||
обновили хранилище
|
||||
уведомить о завершении обновления
|
||||
продублировать содержимое публикуемого модуля в локальную копию гит
|
||||
|
||||
продублировали содержимое
|
||||
опубликовать содержимое
|
||||
|
||||
опубликовали содержимое
|
||||
уведомить о завершении публикации
|
||||
включить кнопку публикации в гит
|
||||
Reference in New Issue
Block a user