|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374 |
-
-
- // // // //
-
-
- УведомитьОЗавершенииПубликации = мир =>
- {
- 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: путь,
- });
- }
- 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
- {
- мир.уведомить("учётных данных недостаточно");
- }
- };
-
-
- // // // //
-
-
- ОтслеживатьКнопкуПубликацииВГит = мир =>
- {
- $(`#издатель-гит-учётка`).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() {
- мир.уведомить("выбрали пункт гит издателя");
- });
- };
-
|