Создать заготовку модуля редактора главреда | Create glavred editor module stub
This commit is contained in:
9
0000
Normal file
9
0000
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
Редактор Главреда | Glavred Editor
|
||||||
|
1.0.0
|
||||||
|
https://git.opengamestudio.org/kornerr/glavred-redaktor-editor
|
||||||
|
|
||||||
|
x /пуск|run.js
|
||||||
|
/пуск|run.череда
|
||||||
|
|
||||||
|
/сохранение|saving.js
|
||||||
|
/сохранение|saving.череда
|
||||||
152
пуск|run.js
Normal file
152
пуск|run.js
Normal file
@@ -0,0 +1,152 @@
|
|||||||
|
|
||||||
|
const ИМЯ = "Редактор Главреда | Glavred Editor"
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
СоздатьКнопкиПроверкиИзмененийФайла = мир =>
|
||||||
|
{
|
||||||
|
$(`#${мир.макет.константы.заголовокПраво}`).append(`
|
||||||
|
<ul class="uk-navbar-nav">
|
||||||
|
<li><a id="проверитьОтображениеИзменения">Отобразить</a></li>
|
||||||
|
<li><a id="проверитьОчисткуИзменения">Очистить</a></li>
|
||||||
|
<li><a id="проверитьОчисткуВсехИзменений">Всё</a></li>
|
||||||
|
</ul>
|
||||||
|
`);
|
||||||
|
|
||||||
|
$(`#проверитьОтображениеИзменения`).click(function() {
|
||||||
|
мир.уведомить("проверить отображение изменения файла");
|
||||||
|
});
|
||||||
|
$(`#проверитьОчисткуИзменения`).click(function() {
|
||||||
|
мир.уведомить("проверить очистку изменения файла");
|
||||||
|
});
|
||||||
|
$(`#проверитьОчисткуВсехИзменений`).click(function() {
|
||||||
|
мир.уведомить("проверить очистку изменений всех файлов");
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
ОчиститьИзмененияВсехФайлов = мир =>
|
||||||
|
{
|
||||||
|
var файлы = Object.keys(мир.редактируемыйМодуль.структура).sort();
|
||||||
|
// Очищаем выбор.
|
||||||
|
for (var номер in файлы)
|
||||||
|
{
|
||||||
|
$(`#${мир.макет.списокФайлов.раздел}-${номер}-изменение`).attr("hidden", true);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
ОчиститьИзменениеФайла = мир =>
|
||||||
|
{
|
||||||
|
$(`#${мир.макет.списокФайлов.раздел}-${мир.номерВыбранногоФайла}-изменение`).attr("hidden", true);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
ОтобразитьИзменениеФайла = мир =>
|
||||||
|
{
|
||||||
|
$(`#${мир.макет.списокФайлов.раздел}-${мир.номерВыбранногоФайла}-изменение`).removeAttr("hidden");
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
ОтобразитьВыборФайла = мир =>
|
||||||
|
{
|
||||||
|
var файлы = Object.keys(мир.редактируемыйМодуль.структура).sort();
|
||||||
|
// Очищаем выбор.
|
||||||
|
for (var номер in файлы)
|
||||||
|
{
|
||||||
|
$(`#${мир.макет.списокФайлов.раздел}-${номер}`).removeClass("uk-active");
|
||||||
|
}
|
||||||
|
// Отображаем выбор.
|
||||||
|
$(`#${мир.макет.списокФайлов.раздел}-${мир.номерВыбранногоФайла}`).addClass("uk-active");
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
ОтслеживатьВыборФайла = мир =>
|
||||||
|
{
|
||||||
|
var файлы = Object.keys(мир.редактируемыйМодуль.структура).sort();
|
||||||
|
for (var номер in файлы)
|
||||||
|
{
|
||||||
|
const номерФайла = номер;
|
||||||
|
$(`#${мир.макет.списокФайлов.раздел}-${номер}-ссылка`).click(function() {
|
||||||
|
мир.номерВыбранногоФайла = номерФайла;
|
||||||
|
мир.уведомить("выбрали файл");
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
ЗадатьРазделМенюСоСпискомФайлов = мир =>
|
||||||
|
{
|
||||||
|
var файлы = Object.keys(мир.редактируемыйМодуль.структура).sort();
|
||||||
|
var содержимое = "";
|
||||||
|
for (var номер in файлы)
|
||||||
|
{
|
||||||
|
var название = файлы[номер];
|
||||||
|
var id = `${мир.макет.списокФайлов.раздел}-${номер}`;
|
||||||
|
var пункт = мир.макет.списокФайлов.пунктМеню
|
||||||
|
.replace(/%название%/g, название)
|
||||||
|
.replace(/%id%/g, id)
|
||||||
|
;
|
||||||
|
содержимое += пункт;
|
||||||
|
}
|
||||||
|
|
||||||
|
var заголовок = "📦 " + мир.редактируемыйМодуль.имя;
|
||||||
|
var раздел = мир.макет.списокФайлов.разделМеню
|
||||||
|
.replace("%название%", заголовок)
|
||||||
|
.replace("%содержимое%", содержимое)
|
||||||
|
;
|
||||||
|
|
||||||
|
$(`#${мир.макет.константы.меню}`).append(раздел);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
ЗадатьЭлементыМакетаСпискаФайлов = мир =>
|
||||||
|
{
|
||||||
|
мир.макет.списокФайлов = {
|
||||||
|
"раздел": "списокФайлов",
|
||||||
|
"разделМеню": `
|
||||||
|
<ul class="uk-nav uk-nav-default tm-nav">
|
||||||
|
<li class="uk-nav-header">%название%</li>
|
||||||
|
%содержимое%
|
||||||
|
</ul>
|
||||||
|
`,
|
||||||
|
"пунктМеню": `
|
||||||
|
<li id="%id%">
|
||||||
|
<a id="%id%-ссылка">
|
||||||
|
<span id="%id%-изменение" hidden>• </span>%название%
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
`,
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
ВывестиПриветствиеОтФайловГлавреда = мир =>
|
||||||
|
{
|
||||||
|
console.debug("Привет от Файлов Главреда");
|
||||||
|
};
|
||||||
|
|
||||||
18
пуск|run.череда
Normal file
18
пуск|run.череда
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
#пуск модулей главреда
|
||||||
|
# вывести приветствие от файлов главреда
|
||||||
|
# задать элементы макета списка файлов
|
||||||
|
# задать раздел меню со списком файлов
|
||||||
|
# отслеживать выбор файла
|
||||||
|
## создать кнопки проверки изменений файла
|
||||||
|
#выбрали файл
|
||||||
|
# отобразить выбор файла
|
||||||
|
#
|
||||||
|
#
|
||||||
|
## ПРОВЕРКА
|
||||||
|
#проверить отображение изменения файла
|
||||||
|
# отобразить изменение файла
|
||||||
|
#проверить очистку изменения файла
|
||||||
|
# очистить изменение файла
|
||||||
|
#проверить очистку изменений всех файлов
|
||||||
|
# очистить изменения всех файлов
|
||||||
|
#
|
||||||
248
сохранение|saving.js
Normal file
248
сохранение|saving.js
Normal file
@@ -0,0 +1,248 @@
|
|||||||
|
/*
|
||||||
|
* ВЫБОР ФАЙЛА
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
|
||||||
|
ЗадатьУказанныйФайл = function(мир)
|
||||||
|
{
|
||||||
|
мир.файл = мир.файлы[мир.номерВыбранногоФайла];
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
НеОтслеживатьРедактирование = function(мир)
|
||||||
|
{
|
||||||
|
мир.отслеживатьРедактирование = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
ОтслеживатьРедактирование = function(мир)
|
||||||
|
{
|
||||||
|
мир.отслеживатьРедактирование = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
ЗадатьПараметрФайла = function(мир)
|
||||||
|
{
|
||||||
|
var файл = мир.файлы[мир.номерВыбранногоФайла];
|
||||||
|
задатьПараметрВСтрокеПоиска("📁", файл);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
|
||||||
|
|
||||||
|
ОтобразитьСодержимоеВыбранногоФайла = function(мир)
|
||||||
|
{
|
||||||
|
var файл = мир.файлы[мир.номерВыбранногоФайла];
|
||||||
|
var содержимое = мир.временноеСодержимое[файл];
|
||||||
|
if (!содержимое)
|
||||||
|
{
|
||||||
|
содержимое = мир.редактируемыйМодуль.содержимое[файл];
|
||||||
|
};
|
||||||
|
мир.редактор.session.setValue(содержимое);
|
||||||
|
};
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* ПУСК
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
|
||||||
|
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(мир)
|
||||||
|
{
|
||||||
|
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() {
|
||||||
|
мир.уведомить("не сохранили изменения");
|
||||||
|
});
|
||||||
|
мир.модули.сохранить(мир.редактируемыйМодуль.указатель);
|
||||||
|
};
|
||||||
|
|
||||||
|
*/
|
||||||
67
сохранение|saving.череда
Normal file
67
сохранение|saving.череда
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
# ВЫБОР ФАЙЛА
|
||||||
|
|
||||||
|
#выбрали файл
|
||||||
|
# задать указанный файл
|
||||||
|
# не отслеживать редактирование
|
||||||
|
# отобразить выбор файла
|
||||||
|
# отобразить содержимое выбранного файла
|
||||||
|
# задать параметр файла
|
||||||
|
# отслеживать редактирование
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ПУСК
|
||||||
|
|
||||||
|
#пуск редактора
|
||||||
|
# разобрать параметры
|
||||||
|
# вывести разобранные параметры
|
||||||
|
# задать ведущий модуль
|
||||||
|
# загрузить макет
|
||||||
|
# настроить макет
|
||||||
|
# установить макет
|
||||||
|
# очистить макет от заглушек
|
||||||
|
# задать заголовок и версию
|
||||||
|
# проверить наличие редактируемого модуля
|
||||||
|
#редактируемый модуль не существует
|
||||||
|
# назначить редактируемым модуль редактора
|
||||||
|
# задать параметр модуля редактором
|
||||||
|
# продолжить загрузку
|
||||||
|
#редактируемый модуль существует
|
||||||
|
# загрузить содержимое редактируемого модуля
|
||||||
|
#не загрузили содержимое
|
||||||
|
# уведомить об ошибке загрузки содержимого редактируемого модуля
|
||||||
|
#загрузили содержимое
|
||||||
|
# настроить Ace
|
||||||
|
# настроить отслеживание редактирования
|
||||||
|
# задать кнопку сохранения
|
||||||
|
# задать временное содержимое
|
||||||
|
# задать список файлов
|
||||||
|
# отслеживать выбор файла
|
||||||
|
# проверить наличие указанного файла
|
||||||
|
#указанный файл не существует
|
||||||
|
# выбрать первый файл
|
||||||
|
#указанный файл существует
|
||||||
|
# выбрать указанный файл
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# РЕДАКТИРОВАНИЕ
|
||||||
|
|
||||||
|
#редактирование
|
||||||
|
## вывести редактирование
|
||||||
|
# пометить выбранный файл как изменённый
|
||||||
|
# сохранить временное содержимое редактируемого файла
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# СОХРАНЕНИЕ
|
||||||
|
|
||||||
|
#выбрали сохранить
|
||||||
|
# сохранить изменения
|
||||||
|
#не сохранили изменения
|
||||||
|
# уведомить о неудачном сохранении изменений
|
||||||
|
#сохранили изменения
|
||||||
|
# уведомить об успешном сохранении изменений
|
||||||
|
# задать список файлов
|
||||||
|
# отслеживать выбор файла
|
||||||
|
# выбрать указанный файл
|
||||||
Reference in New Issue
Block a user