Browse Source

Создать заготовку модуля редактора главреда | Create glavred editor module stub

master
commit
ba307e5cda
5 changed files with 494 additions and 0 deletions
  1. +9
    -0
      0000
  2. +152
    -0
      пуск|run.js
  3. +18
    -0
      пуск|run.череда
  4. +248
    -0
      сохранение|saving.js
  5. +67
    -0
      сохранение|saving.череда

+ 9
- 0
0000 View 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
- 0
пуск|run.js View 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>&#8226; </span>%название%
</a>
</li>
`,
};
};


// // // //


ВывестиПриветствиеОтФайловГлавреда = мир =>
{
console.debug("Привет от Файлов Главреда");
};


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

@@ -0,0 +1,18 @@
#пуск модулей главреда
# вывести приветствие от файлов главреда
# задать элементы макета списка файлов
# задать раздел меню со списком файлов
# отслеживать выбор файла
## создать кнопки проверки изменений файла
#выбрали файл
# отобразить выбор файла
#
#
## ПРОВЕРКА
#проверить отображение изменения файла
# отобразить изменение файла
#проверить очистку изменения файла
# очистить изменение файла
#проверить очистку изменений всех файлов
# очистить изменения всех файлов
#

+ 248
- 0
сохранение|saving.js View 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
- 0
сохранение|saving.череда View File

@@ -0,0 +1,67 @@
# ВЫБОР ФАЙЛА

#выбрали файл
# задать указанный файл
# не отслеживать редактирование
# отобразить выбор файла
# отобразить содержимое выбранного файла
# задать параметр файла
# отслеживать редактирование



# ПУСК

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



# РЕДАКТИРОВАНИЕ

#редактирование
## вывести редактирование
# пометить выбранный файл как изменённый
# сохранить временное содержимое редактируемого файла



# СОХРАНЕНИЕ

#выбрали сохранить
# сохранить изменения
#не сохранили изменения
# уведомить о неудачном сохранении изменений
#сохранили изменения
# уведомить об успешном сохранении изменений
# задать список файлов
# отслеживать выбор файла
# выбрать указанный файл

Loading…
Cancel
Save