|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402 |
- /*
- * ВЫБОР ФАЙЛА
- */
-
- /*
-
- ЗадатьУказанныйФайл = function(мир)
- {
- мир.файл = мир.файлы[мир.номерВыбранногоФайла];
- };
-
-
- // // // //
-
-
- НеОтслеживатьРедактирование = function(мир)
- {
- мир.отслеживатьРедактирование = false;
- };
-
-
- // // // //
-
-
- ОтслеживатьРедактирование = function(мир)
- {
- мир.отслеживатьРедактирование = true;
- };
-
-
- // // // //
-
-
- ЗадатьПараметрФайла = function(мир)
- {
- var файл = мир.файлы[мир.номерВыбранногоФайла];
- задатьПараметрВСтрокеПоиска("📁", файл);
- };
-
-
- // // // //
-
-
- ОтобразитьСодержимоеВыбранногоФайла = function(мир)
- {
- var файл = мир.файлы[мир.номерВыбранногоФайла];
- var содержимое = мир.временноеСодержимое[файл];
- if (!содержимое)
- {
- содержимое = мир.редактируемыйМодуль.содержимое[файл];
- };
- мир.редактор.session.setValue(содержимое);
- };
-
-
- // // // //
-
-
- ОтобразитьВыборФайла = function(мир)
- {
- var id = мир.макет.константы.файл;
- // Очищаем выбор.
- for (var номер in мир.файлы)
- {
- $(`#${id}-${номер}-элемент`).removeClass("uk-active");
- }
- // Отображаем выбор.
- $(`#${id}-${мир.номерВыбранногоФайла}-элемент`).addClass("uk-active");
- };
-
- */
-
- /*
- * ПУСК
- */
-
- /*
-
- const ИМЯ = "Главред | Glavred";
-
-
- // // // //
-
-
- ЗадатьВременноеСодержимое = function(мир)
- {
- мир.временноеСодержимое = {};
- };
-
-
- // // // //
-
-
- ЗадатьКнопкуСохранения = function(мир)
- {
- var кнопка = мир.макет.элементы.действие
- .replace("${название}", "💾")
- .replace(/\$\{id\}/g, `${мир.макет.константы.сохранить}`)
- ;
- $(`#${мир.макет.константы.действия}`).append(кнопка);
- $(`#${мир.макет.константы.сохранить}-ссылка`).click(function() {
- мир.уведомить("выбрали сохранить");
- });
- };
-
-
- // // // //
-
-
- НастроитьОтслеживаниеРедактирования = function(мир)
- {
- мир.отслеживатьРедактирование = true;
-
- мир.редактор.session.on("change", function(delta) {
- if (мир.отслеживатьРедактирование)
- {
- мир.уведомить("редактирование");
- }
- });
- };
-
-
- // // // //
-
-
- ВыбратьУказанныйФайл = function(мир)
- {
- мир.номерВыбранногоФайла = мир.файлы.indexOf(мир.файл);
- мир.уведомить("выбрали файл");
- }
-
-
- // // // //
-
-
- ВыбратьПервыйФайл = function(мир)
- {
- мир.номерВыбранногоФайла = 0;
- мир.уведомить("выбрали файл");
- }
-
-
- // // // //
-
-
- ПроверитьНаличиеУказанногоФайла = function(мир)
- {
- if (
- мир.файл &&
- мир.файлы.includes(мир.файл)
- ) {
- мир.уведомить("указанный файл существует");
- }
- else
- {
- мир.уведомить("указанный файл не существует");
- }
- };
-
-
- // // // //
-
-
- НастроитьAce = function(мир)
- {
- мир.редактор = window.ace.edit("редактор");
- мир.редактор.session.setMode("ace/mode/javascript");
- };
-
-
- // // // //
-
-
- ОтслеживатьВыборФайла = function(мир)
- {
- var id = мир.макет.константы.файл;
- for (var номер in мир.файлы)
- {
- const номерФайла = номер;
- $(`#${id}-${номер}-ссылка`).click(function() {
- мир.номерВыбранногоФайла = номерФайла;
- мир.уведомить("выбрали файл");
- });
- }
- };
-
-
- // // // //
-
-
- ЗадатьСписокФайлов = function(мир)
- {
- var м = мир.редактируемыйМодуль;
- мир.файлы = Object.keys(м.структура).sort();
-
- var содержимое = "";
-
- var заголовок = мир.макет.элементы.заголовокМеню.replace("${название}", "📦 " + м.имя);
- содержимое += заголовок;
- var id = мир.макет.константы.файл;
- for (var номер in мир.файлы)
- {
- var файл = мир.файлы[номер];
- содержимое += мир.макет.элементы.пунктМеню
- .replace("${название}", файл)
- .replace(/\$\{id\}/g, `${id}-${номер}`)
- ;
- }
-
- $(`#${мир.макет.константы.меню}`).html(содержимое);
- };
-
-
-
- // // // //
-
-
- ЗадатьЗаголовокИВерсию = function(мир)
- {
- var м = мир.ведущийМодуль;
- $(`#${мир.макет.константы.заголовок}`).text(м.имя);
- $(`#${мир.макет.константы.версия}`).text(м.версия);
- };
-
-
- // // // //
-
-
- ОчиститьМакетОтЗаглушек = function(мир)
- {
- $(`#${мир.макет.константы.заголовок}`).text("");
- $(`#${мир.макет.константы.версия}`).text("");
- $(`#${мир.макет.константы.действия}`).text("");
- $(`#${мир.макет.константы.меню}`).text("");
- };
-
-
- // // // //
-
-
- УстановитьМакет = function(мир)
- {
- document.body.innerHTML = мир.макет.структура;
-
- var вид = document.createElement("style");
- document.head.appendChild(вид);
- вид.innerHTML = мир.макет.вид;
- };
-
-
- // // // //
-
-
- НастроитьМакет = function(мир)
- {
- // Вырезаем тело из макета.
- var html = мир.макет.структура;
- var начало = html.indexOf("<!-- МАКЕТ_НАЧАЛО -->");
- var конец = html.indexOf("<!-- МАКЕТ_КОНЕЦ -->");
- html = html.substring(начало, конец);
-
- var название = "редактор";
- мир.макет.константы = {
- "заголовок": `${название}-макет-шапка-заголовок`,
- "версия": `${название}-макет-шапка-версия`,
- "действия": `${название}-макет-шапка-действия`,
- "меню": `${название}-макет-меню`,
- "файл": `${название}-макет-меню-файл`,
- "содержимое": "редактор",
- "сохранить": `${название}-макет-сохранить`,
- };
- // Заменяем константы в макете.
- for (var константа in мир.макет.константы)
- {
- var старое = "${" + константа + "}";
- var новое = мир.макет.константы[константа];
- html = html.replace(старое, новое);
- }
-
- мир.макет.структура = html;
- };
-
-
- // // // //
-
-
- ЗагрузитьМакет = function(мир)
- {
- var м = мир.ведущийМодуль;
- var json = JSON.parse(м.содержимое["/макет|template.json"]);
- мир.макет = {
- "структура": м.содержимое["/макет|template.html"],
- "вид": м.содержимое["/макет|template.css"],
- "элементы": json,
- };
- };
-
-
- // // // //
-
-
- ЗадатьВедущийМодуль = function(мир)
- {
- // Редактор является ведущим модулем.
- мир.ведущийМодуль = мир.модули.модульПоИмени(ИМЯ);
- };
-
-
- // // // //
-
-
- ВывестиРазобранныеПараметры = function(мир)
- {
- console.debug(`
- Разобранные параметры редактора:
-
- * 📦: '${мир.указатель}'
- * 📁: '${мир.файл}'
- `);
- };
-
- */
-
- /*
- * РЕДАКТИРОВАНИЕ
- */
-
- /*
-
- СохранитьВременноеСодержимоеРедактируемогоФайла = function(мир)
- {
- var файл = мир.файлы[мир.номерВыбранногоФайла];
- var содержимое = мир.редактор.session.getValue();
- мир.временноеСодержимое[файл] = содержимое;
- };
-
-
- // // // //
-
-
- ПометитьВыбранныйФайлКакИзменённый = function(мир)
- {
- $(`#${мир.макет.константы.файл}-${мир.номерВыбранногоФайла}-изменение`).removeAttr("hidden");
- };
-
-
- // // // //
-
-
- ВывестиРедактирование = function(мир)
- {
- console.debug("Редактирование");
- };
-
- */
-
- /*
- * СОХРАНЕНИЕ
- */
-
- /*
-
- УведомитьОНеудачномСохраненииИзменений = function(мир)
- {
- UIkit.notification("Не удалось сохранить изменения", {status: "danger"});
- UIkit.notification("Could not save changes", {status: "danger"});
- };
-
-
- // // // //
-
-
- УведомитьОбУспешномСохраненииИзменений = function(мир)
- {
- UIkit.notification("Сохранили успешно", {status: "success"});
- UIkit.notification("Saved successfully", {status: "success"});
- };
-
-
- // // // //
-
-
- СохранитьИзменения = function(мир)
- {
- for (var файл in мир.временноеСодержимое)
- {
- var содержимое = мир.временноеСодержимое[файл];
- мир.редактируемыйМодуль.содержимое[файл] = содержимое;
- }
-
- мир.временноеСодержимое = {};
-
- мир.модули.сохранили.подписатьРаз(function() {
- мир.уведомить("сохранили изменения");
- });
- мир.модули.неСохранили.подписатьРаз(function() {
- мир.уведомить("не сохранили изменения");
- });
- мир.модули.сохранить(мир.редактируемыйМодуль.указатель);
- };
-
- */
|