commit fc3f32760c45e4b1c908a3ec67f48a686d0df9a6 Author: Михаил Капелько Date: Mon Aug 3 14:58:09 2020 +0300 Создать заготовку основы | Create a stub for base diff --git a/0000 b/0000 new file mode 100644 index 0000000..fe3fd27 --- /dev/null +++ b/0000 @@ -0,0 +1,8 @@ +Основа Главреда | Glavred's Base +1.0.0 +https://git.opengamestudio.org/kornerr/glavred-osnova-base + +x /функции|functions.js + +x /пуск|run.js +/пуск|run.череда diff --git a/пуск|run.js b/пуск|run.js new file mode 100644 index 0000000..857cb37 --- /dev/null +++ b/пуск|run.js @@ -0,0 +1,148 @@ + +const ИМЯ = "Главред | Glavred"; + + +// // // // + + +ЗадатьЗаголовокВкладкиБраузера = мир => +{ + document.title = мир.редактируемыйМодуль.имя; +}; + + +// // // // + + +УведомитьОбОшибкеЗагрузкиСодержимогоРедактируемогоМодуля = мир => +{ + var сообщение = "ОШИБКА Не удалось загрузить редактируемый модуль из хранилища бразуера | ERROR The module to be edited couldn't be loaded from the browser's storage"; + console.error(сообщение); + console.error(мир.указатель); + /* + $(`#${мир.макет.константы.содержимое}`).html(` +
+

${сообщение}

+

${мир.указатель}

+
+ `); + */ +}; + + +// // // // + + +ЗагрузитьСодержимоеРедактируемогоМодуля = мир => +{ + // Пропускаем загрузку, если содержимое уже присутствует. + if (мир.редактируемыйМодуль.содержимое) + { + мир.уведомить("загрузили содержимое"); + return; + } + + // Загружаем содержимое. + мир.модули.загрузилиСодержимоеСохранённогоМодуля.подписатьРаз(function() { + мир.уведомить("загрузили содержимое"); + }); + мир.модули.неЗагрузилиСодержимоеСохранённогоМодуля.подписатьРаз(function() { + мир.уведомить("не загрузили содержимое"); + }); + мир.модули.загрузитьСодержимоеСохранённогоМодуля(мир.указатель); +}; + + +// // // // + + +ПродолжитьЗагрузку = мир => +{ + мир.уведомить("загрузили содержимое"); +}; + + +// // // // + + +ЗадатьПараметрМодуляГлавредом = мир => +{ + задатьПараметрВСтрокеПоиска("📦", мир.редактируемыйМодуль.указатель); +}; + + +// // // // + + +НазначитьРедактируемымМодульГлавреда = мир => +{ + мир.редактируемыйМодуль = мир.модули.модульПоИмени(ИМЯ); +}; + + +// // // // + + +ПроверитьНаличиеРедактируемогоМодуля = мир => +{ + мир.редактируемыйМодуль = мир.модули.модульПоУказателю(мир.указатель); + if (мир.редактируемыйМодуль) + { + мир.уведомить("редактируемый модуль существует"); + } + else + { + мир.уведомить("редактируемый модуль не существует"); + } +}; + + +// // // // + + +РазобратьПараметры = мир => +{ + мир.указатель = null; + мир.файл = null; + + var параметры = new URLSearchParams(window.location.search); + for (var имя of параметры.keys()) + { + var значение = decodeURI(параметры.get(имя)); + var имя = decodeURI(имя); + if (имя == "📦") + { + мир.указатель = значение; + } + } +}; + + +// // // // + + +ЗапуститьМодулиГлавреда = мир => +{ + мир.уведомить("пуск модулей главреда"); +}; + + +// // // // + + +ЗадатьЗаголовок = мир => +{ + $(`#${мир.макет.константы.заголовокЛево}`).html(` + + `); +}; + + +// // // // + + +ВывестиПриветствиеОтГлавреда = мир => +{ + console.debug("Привет от Главреда"); +}; + diff --git a/пуск|run.череда b/пуск|run.череда new file mode 100644 index 0000000..4761dd9 --- /dev/null +++ b/пуск|run.череда @@ -0,0 +1,20 @@ +пуск главреда + вывести приветствие от главреда + загрузить макет UIK + настроить макет UIK + установить макет UIK + очистить макет UIK от заглушек + задать заголовок + разобрать параметры + проверить наличие редактируемого модуля +редактируемый модуль не существует + назначить редактируемым модуль главреда + задать параметр модуля главредом + продолжить загрузку +редактируемый модуль существует + загрузить содержимое редактируемого модуля +не загрузили содержимое + уведомить об ошибке загрузки содержимого редактируемого модуля +загрузили содержимое + задать заголовок вкладки браузера + запустить модули главреда \ No newline at end of file diff --git a/функции|functions.js b/функции|functions.js new file mode 100644 index 0000000..757deec --- /dev/null +++ b/функции|functions.js @@ -0,0 +1,37 @@ + +задатьПараметрВСтрокеПоиска = (ключПараметра, значениеПараметра) => +{ + var строкаПоиска = decodeURI(window.location.search); + var текущийАдрес = decodeURI(window.location.href); + + // Заменить параметр. + if (строкаПоиска.includes(`${ключПараметра}=`)) + { + var части = строкаПоиска.split(/[\?&]/); + for (var номер in части) + { + var часть = части[номер]; + if (часть.startsWith(`${ключПараметра}=`)) + { + var значение = часть.split("=")[1]; + var адрес = текущийАдрес.replace(значение, значениеПараметра); + history.pushState(null, "", адрес); + break; + } + } + } + // Добавить параметр. + else + { + var префикс = "?"; + if (строкаПоиска.startsWith("?")) + { + префикс = "&"; + } + var адрес = текущийАдрес + префикс + `${ключПараметра}=` + значениеПараметра; + history.pushState(null, "", адрес); + } +}; + +setSearchQueryParameter = задатьПараметрВСтрокеПоиска; +