Browse Source

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

master
Главред | Glavred 4 years ago
parent
commit
d069a83603
2 changed files with 383 additions and 34 deletions
  1. +337
    -25
      пуск|run.js
  2. +46
    -9
      пуск|run.череда

+ 337
- 25
пуск|run.js 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;
}
});

мир.уведомить("опубликовали содержимое");

})();
};


// // // //


ПродублироватьСодержимоеПубликуемогоМодуляВЛокальнуюКопиюГит = мир =>
{
(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(сообщение);
};


// // // //


СохранитьИзменения = мир =>
ПроверитьДостаточностьУчётныхДанных = мир =>
{
for (var файл in мир.временноеСодержимое)
if (
$(`#издатель-гит-имя`).val() &&
$(`#издатель-гит-пароль`).val() &&
$(`#издатель-гит-хранилище`).val()
) {
мир.уведомить("учётных данных достаточно");
}
else
{
var содержимое = мир.временноеСодержимое[файл];
мир.редактируемыйМодуль.содержимое[файл] = содержимое;
мир.уведомить("учётных данных недостаточно");
}
};

мир.временноеСодержимое = {};

мир.модули.сохранили.подписатьРаз(function() {
мир.уведомить("сохранили изменения");
});
мир.модули.неСохранили.подписатьРаз(function() {
мир.уведомить("не сохранили изменения");
// // // //


ОтслеживатьКнопкуПубликацииВГит = мир =>
{
$(`#издатель-гит-учётка`).submit(function(событие) {
событие.preventDefault();
мир.уведомить("кнопка публикации в гит");
});
мир.модули.сохранить(мир.редактируемыйМодуль.указатель);
};


// // // //


ЗадатьКнопкуСохранения = мир =>
ОтобразитьАдресХранилищаГита = мир =>
{
$(`#${мир.макет.константы.заголовокПраво}`).append(`
<ul class="uk-navbar-nav">
<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>
`);
$(`#сохранить-ссылка`).click(function() {
мир.уведомить("выбрали сохранить");

$(`#издатель-гит-ссылка`).click(function() {
мир.уведомить("выбрали пункт гит издателя");
});
};

*/

+ 46
- 9
пуск|run.череда View File

@@ -1,9 +1,46 @@
#пуск главреда
# задать кнопку сохранения
#выбрали сохранить
# сохранить изменения
#не сохранили изменения
# уведомить о неудачном сохранении изменений
#сохранили изменения
# уведомить об успешном сохранении изменений
# очистить изменения всех файлов
пуск главреда
задать раздел меню издателя
задать вид содержимого меню издателя
выбрали пункт гит издателя
очистить отображение выбора в меню
отобразить выбор пункта гит издателя
отобразить содержимое пункта гит издателя
отобразить адрес хранилища гита
отслеживать кнопку публикации в гит

кнопка публикации в гит
проверить достаточность учётных данных
учётных данных недостаточно
сообщить о недостаточности учётных данных

учётных данных достаточно
уведомить о начале публикации в гит
отключить кнопку публикации в гит
задать настройки
проверить наличие директории
директория отсутствует
подготовить директорию
не подготовили директорию
уведомить об ошибке подготовки директории

подготовили директорию
склонировать хранилище
склонировали хранилище
обновить хранилище
директория присутствует
обновить хранилище
не обновили хранилище
очистить файловую систему
уведомить о необходимости перезагрузки

обновили хранилище
уведомить о завершении обновления
продублировать содержимое публикуемого модуля в локальную копию гит

продублировали содержимое
опубликовать содержимое

опубликовали содержимое
уведомить о завершении публикации
включить кнопку публикации в гит

Loading…
Cancel
Save