Изменения от Главреда ГитЖС | 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("Опубликовали");
|
||||||
UIkit.notification("Could not save changes", {status: "danger"});
|
UIkit.notification("Published");
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
// // // //
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
УведомитьОбУспешномСохраненииИзменений = мир =>
|
ОпубликоватьСодержимое = мир =>
|
||||||
{
|
{
|
||||||
UIkit.notification("Сохранили успешно", {status: "success"});
|
(async() => {
|
||||||
UIkit.notification("Saved successfully", {status: "success"});
|
|
||||||
|
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 мир.временноеСодержимое)
|
(async() => {
|
||||||
{
|
|
||||||
var содержимое = мир.временноеСодержимое[файл];
|
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(`
|
$(`#издатель-гит-учётка`).submit(function(событие) {
|
||||||
<ul class="uk-navbar-nav">
|
событие.preventDefault();
|
||||||
<li><a id="сохранить-ссылка">💾</a></li>
|
мир.уведомить("кнопка публикации в гит");
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
ОтобразитьАдресХранилищаГита = мир =>
|
||||||
|
{
|
||||||
|
$(`#издатель-гит-хранилище`).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>
|
</ul>
|
||||||
`);
|
`);
|
||||||
$(`#сохранить-ссылка`).click(function() {
|
|
||||||
мир.уведомить("выбрали сохранить");
|
$(`#издатель-гит-ссылка`).click(function() {
|
||||||
|
мир.уведомить("выбрали пункт гит издателя");
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
*/
|
|
||||||
|
|||||||
@@ -1,9 +1,46 @@
|
|||||||
#пуск главреда
|
пуск главреда
|
||||||
# задать кнопку сохранения
|
задать раздел меню издателя
|
||||||
#выбрали сохранить
|
задать вид содержимого меню издателя
|
||||||
# сохранить изменения
|
выбрали пункт гит издателя
|
||||||
#не сохранили изменения
|
очистить отображение выбора в меню
|
||||||
# уведомить о неудачном сохранении изменений
|
отобразить выбор пункта гит издателя
|
||||||
#сохранили изменения
|
отобразить содержимое пункта гит издателя
|
||||||
# уведомить об успешном сохранении изменений
|
отобразить адрес хранилища гита
|
||||||
# очистить изменения всех файлов
|
отслеживать кнопку публикации в гит
|
||||||
|
|
||||||
|
кнопка публикации в гит
|
||||||
|
проверить достаточность учётных данных
|
||||||
|
учётных данных недостаточно
|
||||||
|
сообщить о недостаточности учётных данных
|
||||||
|
|
||||||
|
учётных данных достаточно
|
||||||
|
уведомить о начале публикации в гит
|
||||||
|
отключить кнопку публикации в гит
|
||||||
|
задать настройки
|
||||||
|
проверить наличие директории
|
||||||
|
директория отсутствует
|
||||||
|
подготовить директорию
|
||||||
|
не подготовили директорию
|
||||||
|
уведомить об ошибке подготовки директории
|
||||||
|
|
||||||
|
подготовили директорию
|
||||||
|
склонировать хранилище
|
||||||
|
склонировали хранилище
|
||||||
|
обновить хранилище
|
||||||
|
директория присутствует
|
||||||
|
обновить хранилище
|
||||||
|
|
||||||
|
не обновили хранилище
|
||||||
|
очистить файловую систему
|
||||||
|
уведомить о необходимости перезагрузки
|
||||||
|
|
||||||
|
обновили хранилище
|
||||||
|
уведомить о завершении обновления
|
||||||
|
продублировать содержимое публикуемого модуля в локальную копию гит
|
||||||
|
|
||||||
|
продублировали содержимое
|
||||||
|
опубликовать содержимое
|
||||||
|
|
||||||
|
опубликовали содержимое
|
||||||
|
уведомить о завершении публикации
|
||||||
|
включить кнопку публикации в гит
|
||||||
Reference in New Issue
Block a user