@@ -2,5 +2,9 @@ | |||||
1.0.0 | 1.0.0 | ||||
https://git.opengamestudio.org/glavred/glavred-zav-mgr | https://git.opengamestudio.org/glavred/glavred-zav-mgr | ||||
x /описание|description.js | |||||
/описание|description.череда | |||||
x /пуск|run.js | x /пуск|run.js | ||||
/пуск|run.череда | |||||
/пуск|run.череда | |||||
x /файлы|files.js | |||||
/файлы|files.череда |
@@ -0,0 +1,86 @@ | |||||
// // // // | |||||
СохранитьВременноеОписание = мир => | |||||
{ | |||||
var м = мир.редактируемыйМодуль; | |||||
м.имя = $(`#${мир.макет.зав.описаниеИмя}`).val() | |||||
м.версия = $(`#${мир.макет.зав.описаниеВерсия}`).val() | |||||
м["🏠"] = $(`#${мир.макет.зав.описаниеХранилище}`).val() | |||||
}; | |||||
// // // // | |||||
ОчиститьИзменениеОписания = мир => | |||||
{ | |||||
$(`#${мир.макет.зав.описаниеИзменение}`).attr("hidden", true); | |||||
}; | |||||
// // // // | |||||
ОтобразитьИзменениеОписания = мир => | |||||
{ | |||||
$(`#${мир.макет.зав.описаниеИзменение}`).removeAttr("hidden"); | |||||
}; | |||||
// // // // | |||||
ОтслеживатьИзменениеОписанияМодуля = мир => | |||||
{ | |||||
$(`#${мир.макет.зав.описаниеИмя}`).on("input", function() { | |||||
мир.уведомить("изменили описание модуля"); | |||||
}); | |||||
$(`#${мир.макет.зав.описаниеВерсия}`).on("input", function() { | |||||
мир.уведомить("изменили описание модуля"); | |||||
}); | |||||
$(`#${мир.макет.зав.описаниеХранилище}`).on("input", function() { | |||||
мир.уведомить("изменили описание модуля"); | |||||
}); | |||||
}; | |||||
// // // // | |||||
ОтобразитьОписаниеМодуля = мир => | |||||
{ | |||||
var м = мир.редактируемыйМодуль; | |||||
$(`#${мир.макет.зав.описаниеИмя}`).val(м.имя); | |||||
$(`#${мир.макет.зав.описаниеВерсия}`).val(м.версия); | |||||
$(`#${мир.макет.зав.описаниеХранилище}`).val(м["🏠"]); | |||||
}; | |||||
// // // // | |||||
ОтобразитьСтруктуруПунктаОписанияЗава = мир => | |||||
{ | |||||
$(`#${мир.макет.константы.содержимое}`).html(` | |||||
<div class="зав-отступ"> | |||||
<form> | |||||
<input id="${мир.макет.зав.описаниеИмя}" class="uk-input uk-margin-small" type="text" placeholder="Имя | Name"> | |||||
<input id="${мир.макет.зав.описаниеВерсия}" class="uk-input uk-margin-small" type="text" placeholder="Версия | Version"> | |||||
<input id="${мир.макет.зав.описаниеХранилище}" class="uk-input uk-margin-small" type="text" placeholder="Хранилище | Repository"> | |||||
</form> | |||||
</div> | |||||
`); | |||||
}; | |||||
// // // // | |||||
ОтобразитьВыборПунктаОписанияЗава = мир => | |||||
{ | |||||
$(`#${мир.макет.зав.описание}`).addClass("uk-active"); | |||||
}; | |||||
@@ -0,0 +1,11 @@ | |||||
выбрали пункт описания зава | |||||
очистить отображение выбора в меню | |||||
отобразить выбор пункта описания зава | |||||
отобразить структуру пункта описания зава | |||||
отобразить описание модуля | |||||
отслеживать изменение описания модуля | |||||
изменили описание модуля | |||||
отобразить изменение описания | |||||
сохранить временное описание | |||||
сохранили изменения | |||||
очистить изменение описания |
@@ -3,416 +3,6 @@ | |||||
// // // // | // // // // | ||||
СохранитьФлагиФайлаМодуля = мир => | |||||
{ | |||||
var файлы = Object.keys(мир.редактируемыйМодуль.структура).sort(); | |||||
var файл = файлы[мир.номерФайлаМодуля]; | |||||
var флаги = {}; | |||||
for (var номер = 0; номер < мир.флагиФайлаМодуля.length; ++номер) | |||||
{ | |||||
var флаг = мир.флагиФайлаМодуля[номер]; | |||||
console.debug("флаг", флаг); | |||||
if (флаг == "x") | |||||
{ | |||||
флаги["исполнить"] = true; | |||||
} | |||||
else if (флаг == "2") | |||||
{ | |||||
флаги["двоичный"] = true; | |||||
} | |||||
} | |||||
мир.редактируемыйМодуль.структура[файл] = флаги; | |||||
console.debug("сохранить флаги файла модуля", файл, флаги) | |||||
}; | |||||
// // // // | |||||
ОтслеживатьСменуФлаговУФайловМодуля = мир => | |||||
{ | |||||
var файлы = Object.keys(мир.редактируемыйМодуль.структура).sort(); | |||||
for (var номер in файлы) | |||||
{ | |||||
const idФлаги = мир.макет.зав.файлыСписокФлаги.replace("%номер%", номер); | |||||
const номерФайла = номер; | |||||
$(`#${idФлаги}`).on("input", function() { | |||||
мир.номерФайлаМодуля = номерФайла; | |||||
мир.флагиФайлаМодуля = $(`#${idФлаги}`).val(); | |||||
мир.уведомить("сменили флаги у файла модуля"); | |||||
}); | |||||
} | |||||
}; | |||||
// // // // | |||||
СоздатьХранилищеПереименованийФайловМодуля = мир => | |||||
{ | |||||
мир.переименования = {} | |||||
}; | |||||
// // // // | |||||
СохранитьПереименованиеФайловМодуля = мир => | |||||
{ | |||||
for (var было in мир.переименования) | |||||
{ | |||||
var стало = мир.переименования[было]; | |||||
мир.редактируемыйМодуль.структура[стало] = мир.редактируемыйМодуль.структура[было]; | |||||
мир.редактируемыйМодуль.содержимое[стало] = мир.редактируемыйМодуль.содержимое[было]; | |||||
delete мир.редактируемыйМодуль.структура[было]; | |||||
delete мир.редактируемыйМодуль.содержимое[было]; | |||||
} | |||||
мир.переименования = {}; | |||||
}; | |||||
// // // // | |||||
ЗапомнитьПереименованиеФайлаМодуля = мир => | |||||
{ | |||||
var файлы = Object.keys(мир.редактируемыйМодуль.структура).sort(); | |||||
var файл = файлы[мир.номерФайлаМодуля]; | |||||
мир.переименования[файл] = мир.имяФайлаМодуля; | |||||
console.debug(`НАДО переименовать '${файл}' в '${мир.имяФайлаМодуля}'`) | |||||
}; | |||||
// // // // | |||||
ОтслеживатьПереименованиеФайловМодуля = мир => | |||||
{ | |||||
var файлы = Object.keys(мир.редактируемыйМодуль.структура).sort(); | |||||
for (var номер in файлы) | |||||
{ | |||||
const idИмя = мир.макет.зав.файлыСписокИмя.replace("%номер%", номер); | |||||
const номерФайла = номер; | |||||
$(`#${idИмя}`).on("input", function() { | |||||
мир.номерФайлаМодуля = номерФайла; | |||||
мир.имяФайлаМодуля = $(`#${idИмя}`).val(); | |||||
мир.уведомить("переименовали файл модуля"); | |||||
}); | |||||
} | |||||
}; | |||||
// // // // | |||||
УдалитьФайлМодуля = мир => | |||||
{ | |||||
var файлы = Object.keys(мир.редактируемыйМодуль.структура).sort(); | |||||
var файл = файлы[мир.номерФайлаМодуля]; | |||||
delete мир.редактируемыйМодуль.структура[файл]; | |||||
delete мир.редактируемыйМодуль.содержимое[файл]; | |||||
}; | |||||
// // // // | |||||
СпроситьПодтверждениеУдаленияФайлаМодуля = мир => | |||||
{ | |||||
var файлы = Object.keys(мир.редактируемыйМодуль.структура).sort(); | |||||
var файл = файлы[мир.номерФайлаМодуля]; | |||||
$(`#${мир.макет.зав.файлыПодтверждениеУдаленияИмя}`).html(файл); | |||||
UIkit.modal($(`#${мир.макет.зав.файлыПодтверждениеУдаления}`)).show(); | |||||
}; | |||||
// // // // | |||||
СоздатьДиалогПодтвержденияУдаленияФайлаМодуля = мир => | |||||
{ | |||||
$(`#${мир.макет.константы.содержимое}`).append(` | |||||
<div id="${мир.макет.зав.файлыПодтверждениеУдаления}" uk-modal> | |||||
<div class="uk-modal-dialog"> | |||||
<div class="uk-modal-header"> | |||||
<h2 class="uk-modal-title">Удалить файл? | Delete the file? </h2> | |||||
</div> | |||||
<div class="uk-modal-body"> | |||||
<p id="${мир.макет.зав.файлыПодтверждениеУдаленияИмя}"></p> | |||||
</div> | |||||
<div class="uk-modal-footer uk-text-right"> | |||||
<button class="uk-button uk-button-default uk-modal-close" type="button">Отмена | Cancel</button> | |||||
<button id="${мир.макет.зав.файлыПодтверждениеУдаленияУдалить}" class="uk-button uk-button-danger uk-modal-close" type="button">Удалить | Delete</button> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
`); | |||||
$(`#${мир.макет.зав.файлыПодтверждениеУдаленияУдалить}`).click(function() { | |||||
мир.уведомить("подтвердили удаление файла модуля"); | |||||
}); | |||||
}; | |||||
// // // // | |||||
ОтслеживатьУдалениеФайлаМодуля = мир => | |||||
{ | |||||
var файлы = Object.keys(мир.редактируемыйМодуль.структура).sort(); | |||||
for (var номер in файлы) | |||||
{ | |||||
var idУдалить = мир.макет.зав.файлыСписокУдалить.replace("%номер%", номер); | |||||
const номерФайла = номер; | |||||
$(`#${idУдалить}`).click(function() { | |||||
мир.номерФайлаМодуля = номерФайла; | |||||
мир.уведомить("кнопка удаления файла модуля"); | |||||
}); | |||||
} | |||||
}; | |||||
// // // // | |||||
ОчиститьИзменениеФайловМодуля = мир => | |||||
{ | |||||
$(`#${мир.макет.зав.файлыИзменение}`).attr("hidden", true); | |||||
}; | |||||
// // // // | |||||
ОтобразитьИзменениеФайловМодуля = мир => | |||||
{ | |||||
$(`#${мир.макет.зав.файлыИзменение}`).removeAttr("hidden"); | |||||
}; | |||||
// // // // | |||||
ДобавитьФайлМодуля = мир => | |||||
{ | |||||
мир.редактируемыйМодуль.структура[мир.имяФайлаМодуля] = {}; | |||||
мир.редактируемыйМодуль.содержимое[мир.имяФайлаМодуля] = ""; | |||||
}; | |||||
// // // // | |||||
СообщитьОНаличииДубляФайла = мир => | |||||
{ | |||||
var сообщение = "Такое имя файла уже существует | Such file name is already present"; | |||||
UIkit.modal.alert(сообщение); | |||||
console.error(сообщение); | |||||
}; | |||||
// // // // | |||||
ПроверитьОтсутствиеДубляФайла = мир => | |||||
{ | |||||
for (var файл in мир.редактируемыйМодуль.структура) | |||||
{ | |||||
if (файл == мир.имяФайлаМодуля) | |||||
{ | |||||
мир.уведомить("дубль файла присутствует"); | |||||
return; | |||||
} | |||||
мир.уведомить("дубль файла отсутствует"); | |||||
} | |||||
}; | |||||
// // // // | |||||
ОтслеживатьДобавлениеФайлаМодуля = мир => | |||||
{ | |||||
$(`#${мир.макет.зав.добавитьФайлКнопка}`).click(function() { | |||||
мир.имяФайлаМодуля = $(`#${мир.макет.зав.добавитьФайлИмя}`).val(); | |||||
мир.уведомить("кнопка добавления файла модуля"); | |||||
}); | |||||
}; | |||||
// // // // | |||||
ОтобразитьСписокФайловМодуля = мир => | |||||
{ | |||||
var список = ""; | |||||
var файлы = Object.keys(мир.редактируемыйМодуль.структура).sort(); | |||||
for (var номер in файлы) | |||||
{ | |||||
// Файл. | |||||
var файл = файлы[номер]; | |||||
// Флаги. | |||||
var строкаФлагов = ""; | |||||
var флаги = мир.редактируемыйМодуль.структура[файл]; | |||||
for (var флаг in флаги) | |||||
{ | |||||
if (флаг == "исполнить") | |||||
{ | |||||
строкаФлагов += "x"; | |||||
} | |||||
else if (флаг == "двоичный") | |||||
{ | |||||
строкаФлагов += "2"; | |||||
} | |||||
} | |||||
// id. | |||||
var idИмя = мир.макет.зав.файлыСписокИмя.replace("%номер%", номер); | |||||
var idФлаги = мир.макет.зав.файлыСписокФлаги.replace("%номер%", номер); | |||||
var idУдалить = мир.макет.зав.файлыСписокУдалить.replace("%номер%", номер); | |||||
var имяФайла = файл; | |||||
if (мир.переименования[файл]) { | |||||
имяФайла = мир.переименования[файл]; | |||||
} | |||||
список += ` | |||||
<tr> | |||||
<td> | |||||
<input id="${idИмя}" value="${имяФайла}" class="uk-input uk-margin-small" type="text" placeholder="Имя | Name"> | |||||
</td> | |||||
<td> | |||||
<input id="${idФлаги}" value="${строкаФлагов}" class="uk-input uk-margin-small" type="text" placeholder="Флаги | Flags"> | |||||
</td> | |||||
<td> | |||||
<button id="${idУдалить}" class="uk-button uk-button-danger"> | |||||
<span uk-icon="minus"></span> | |||||
</button> | |||||
</td> | |||||
</tr> | |||||
`; | |||||
} | |||||
$(`#${мир.макет.зав.файлыСписок}`).html(список); | |||||
}; | |||||
// // // // | |||||
ОтобразитьСтруктуруПунктаФайловЗава = мир => | |||||
{ | |||||
$(`#${мир.макет.константы.содержимое}`).html(` | |||||
<div class="зав-отступ"> | |||||
<div uk-grid style="margin-left: 0px"> | |||||
<input id="${мир.макет.зав.добавитьФайлИмя}" class="uk-input uk-width-expand" type="text" placeholder="Имя файла | File name"> | |||||
<button id="${мир.макет.зав.добавитьФайлКнопка}" class="uk-button uk-button-primary uk-width-auto uk-margin-left">Добавить файл | Add a file</button> | |||||
</div> | |||||
<hr class="uk-divider-icon"> | |||||
<table class="uk-table uk-table-hover uk-table-divider"> | |||||
<thead> | |||||
<tr> | |||||
<th>Файл | File</th> | |||||
<th>Флаги | Flags</th> | |||||
<th>Действия | Actions</th> | |||||
</tr> | |||||
</thead> | |||||
<tbody id="${мир.макет.зав.файлыСписок}"> | |||||
</tbody> | |||||
</table> | |||||
</div> | |||||
`); | |||||
}; | |||||
// // // // | |||||
СохранитьВременноеОписание = мир => | |||||
{ | |||||
var м = мир.редактируемыйМодуль; | |||||
м.имя = $(`#${мир.макет.зав.описаниеИмя}`).val() | |||||
м.версия = $(`#${мир.макет.зав.описаниеВерсия}`).val() | |||||
м["🏠"] = $(`#${мир.макет.зав.описаниеХранилище}`).val() | |||||
}; | |||||
// // // // | |||||
ОчиститьИзменениеОписания = мир => | |||||
{ | |||||
$(`#${мир.макет.зав.описаниеИзменение}`).attr("hidden", true); | |||||
}; | |||||
// // // // | |||||
ОтобразитьИзменениеОписания = мир => | |||||
{ | |||||
$(`#${мир.макет.зав.описаниеИзменение}`).removeAttr("hidden"); | |||||
}; | |||||
// // // // | |||||
ОтслеживатьИзменениеОписанияМодуля = мир => | |||||
{ | |||||
$(`#${мир.макет.зав.описаниеИмя}`).on("input", function() { | |||||
мир.уведомить("изменили описание модуля"); | |||||
}); | |||||
$(`#${мир.макет.зав.описаниеВерсия}`).on("input", function() { | |||||
мир.уведомить("изменили описание модуля"); | |||||
}); | |||||
$(`#${мир.макет.зав.описаниеХранилище}`).on("input", function() { | |||||
мир.уведомить("изменили описание модуля"); | |||||
}); | |||||
}; | |||||
// // // // | |||||
ОтобразитьОписаниеМодуля = мир => | |||||
{ | |||||
var м = мир.редактируемыйМодуль; | |||||
$(`#${мир.макет.зав.описаниеИмя}`).val(м.имя); | |||||
$(`#${мир.макет.зав.описаниеВерсия}`).val(м.версия); | |||||
$(`#${мир.макет.зав.описаниеХранилище}`).val(м["🏠"]); | |||||
}; | |||||
// // // // | |||||
ОтобразитьСтруктуруПунктаОписанияЗава = мир => | |||||
{ | |||||
$(`#${мир.макет.константы.содержимое}`).html(` | |||||
<div class="зав-отступ"> | |||||
<form> | |||||
<input id="${мир.макет.зав.описаниеИмя}" class="uk-input uk-margin-small" type="text" placeholder="Имя | Name"> | |||||
<input id="${мир.макет.зав.описаниеВерсия}" class="uk-input uk-margin-small" type="text" placeholder="Версия | Version"> | |||||
<input id="${мир.макет.зав.описаниеХранилище}" class="uk-input uk-margin-small" type="text" placeholder="Хранилище | Repository"> | |||||
</form> | |||||
</div> | |||||
`); | |||||
}; | |||||
// // // // | |||||
ЗадатьВидСодержимогоМенюЗава = мир => | ЗадатьВидСодержимогоМенюЗава = мир => | ||||
{ | { | ||||
задатьВид(` | задатьВид(` | ||||
@@ -427,24 +17,6 @@ | |||||
// // // // | // // // // | ||||
ОтобразитьВыборПунктаФайловЗава = мир => | |||||
{ | |||||
$(`#${мир.макет.зав.файлы}`).addClass("uk-active"); | |||||
}; | |||||
// // // // | |||||
ОтобразитьВыборПунктаОписанияЗава = мир => | |||||
{ | |||||
$(`#${мир.макет.зав.описание}`).addClass("uk-active"); | |||||
}; | |||||
// // // // | |||||
ЗадатьРазделМенюЗава = мир => | ЗадатьРазделМенюЗава = мир => | ||||
{ | { | ||||
мир.макет.зав = { | мир.макет.зав = { | ||||
@@ -487,4 +59,5 @@ | |||||
$(`#${мир.макет.зав.файлыСсылка}`).click(function() { | $(`#${мир.макет.зав.файлыСсылка}`).click(function() { | ||||
мир.уведомить("выбрали пункт файлов зава"); | мир.уведомить("выбрали пункт файлов зава"); | ||||
}); | }); | ||||
}; | |||||
}; | |||||
@@ -1,74 +1,3 @@ | |||||
пуск модулей главреда | пуск модулей главреда | ||||
задать раздел меню зава | задать раздел меню зава | ||||
задать вид содержимого меню зава | |||||
создать хранилище переименований файлов модуля | |||||
выбрали пункт описания зава | |||||
очистить отображение выбора в меню | |||||
отобразить выбор пункта описания зава | |||||
отобразить структуру пункта описания зава | |||||
отобразить описание модуля | |||||
отслеживать изменение описания модуля | |||||
выбрали пункт файлов зава | |||||
очистить отображение выбора в меню | |||||
отобразить выбор пункта файлов зава | |||||
отобразить структуру пункта файлов зава | |||||
отобразить список файлов модуля | |||||
отслеживать добавление файла модуля | |||||
отслеживать удаление файла модуля | |||||
создать диалог подтверждения удаления файла модуля | |||||
отслеживать переименование файлов модуля | |||||
отслеживать смену флагов у файлов модуля | |||||
изменили описание модуля | |||||
отобразить изменение описания | |||||
сохранить временное описание | |||||
кнопка добавления файла модуля | |||||
сохранить переименование файлов модуля | |||||
проверить отсутствие дубля файла | |||||
дубль файла присутствует | |||||
сообщить о наличии дубля файла | |||||
дубль файла отсутствует | |||||
добавить файл модуля | |||||
отобразить изменение файлов модуля | |||||
отобразить список файлов модуля | |||||
отслеживать добавление файла модуля | |||||
отслеживать удаление файла модуля | |||||
отслеживать переименование файлов модуля | |||||
отслеживать смену флагов у файлов модуля | |||||
кнопка удаления файла модуля | |||||
сохранить переименование файлов модуля | |||||
спросить подтверждение удаления файла модуля | |||||
подтвердили удаление файла модуля | |||||
удалить файл модуля | |||||
отобразить изменение файлов модуля | |||||
отобразить список файлов модуля | |||||
отслеживать добавление файла модуля | |||||
отслеживать удаление файла модуля | |||||
отслеживать переименование файлов модуля | |||||
отслеживать смену флагов у файлов модуля | |||||
переименовали файл модуля | |||||
запомнить переименование файла модуля | |||||
отобразить изменение файлов модуля | |||||
сменили флаги у файла модуля | |||||
сохранить флаги файла модуля | |||||
начали сохранение | |||||
сохранить переименование файлов модуля | |||||
сохранили изменения | |||||
очистить изменение описания | |||||
очистить изменение файлов модуля | |||||
отобразить список файлов модуля | |||||
отслеживать добавление файла модуля | |||||
отслеживать удаление файла модуля | |||||
отслеживать переименование файлов модуля | |||||
отслеживать смену флагов у файлов модуля | |||||
# Сообщаем модулю Файлы о необходимости обновить список файлов | |||||
# Куда-нибудь перенести? | |||||
сохранили изменения | |||||
обновить раздел меню со списком файлов | |||||
отслеживать выбор файла | |||||
задать вид содержимого меню зава |
@@ -0,0 +1,345 @@ | |||||
// // // // | |||||
СохранитьФлагиФайлаМодуля = мир => | |||||
{ | |||||
var файлы = Object.keys(мир.редактируемыйМодуль.структура).sort(); | |||||
var файл = файлы[мир.номерФайлаМодуля]; | |||||
var флаги = {}; | |||||
for (var номер = 0; номер < мир.флагиФайлаМодуля.length; ++номер) | |||||
{ | |||||
var флаг = мир.флагиФайлаМодуля[номер]; | |||||
console.debug("флаг", флаг); | |||||
if (флаг == "x") | |||||
{ | |||||
флаги["исполнить"] = true; | |||||
} | |||||
else if (флаг == "2") | |||||
{ | |||||
флаги["двоичный"] = true; | |||||
} | |||||
} | |||||
мир.редактируемыйМодуль.структура[файл] = флаги; | |||||
console.debug("сохранить флаги файла модуля", файл, флаги) | |||||
}; | |||||
// // // // | |||||
ОтслеживатьСменуФлаговУФайловМодуля = мир => | |||||
{ | |||||
var файлы = Object.keys(мир.редактируемыйМодуль.структура).sort(); | |||||
for (var номер in файлы) | |||||
{ | |||||
const idФлаги = мир.макет.зав.файлыСписокФлаги.replace("%номер%", номер); | |||||
const номерФайла = номер; | |||||
$(`#${idФлаги}`).on("input", function() { | |||||
мир.номерФайлаМодуля = номерФайла; | |||||
мир.флагиФайлаМодуля = $(`#${idФлаги}`).val(); | |||||
мир.уведомить("сменили флаги у файла модуля"); | |||||
}); | |||||
} | |||||
}; | |||||
// // // // | |||||
СоздатьХранилищеПереименованийФайловМодуля = мир => | |||||
{ | |||||
мир.переименования = {} | |||||
}; | |||||
// // // // | |||||
СохранитьПереименованиеФайловМодуля = мир => | |||||
{ | |||||
for (var было in мир.переименования) | |||||
{ | |||||
var стало = мир.переименования[было]; | |||||
мир.редактируемыйМодуль.структура[стало] = мир.редактируемыйМодуль.структура[было]; | |||||
мир.редактируемыйМодуль.содержимое[стало] = мир.редактируемыйМодуль.содержимое[было]; | |||||
delete мир.редактируемыйМодуль.структура[было]; | |||||
delete мир.редактируемыйМодуль.содержимое[было]; | |||||
} | |||||
мир.переименования = {}; | |||||
}; | |||||
// // // // | |||||
ЗапомнитьПереименованиеФайлаМодуля = мир => | |||||
{ | |||||
var файлы = Object.keys(мир.редактируемыйМодуль.структура).sort(); | |||||
var файл = файлы[мир.номерФайлаМодуля]; | |||||
мир.переименования[файл] = мир.имяФайлаМодуля; | |||||
console.debug(`НАДО переименовать '${файл}' в '${мир.имяФайлаМодуля}'`) | |||||
}; | |||||
// // // // | |||||
ОтслеживатьПереименованиеФайловМодуля = мир => | |||||
{ | |||||
var файлы = Object.keys(мир.редактируемыйМодуль.структура).sort(); | |||||
for (var номер in файлы) | |||||
{ | |||||
const idИмя = мир.макет.зав.файлыСписокИмя.replace("%номер%", номер); | |||||
const номерФайла = номер; | |||||
$(`#${idИмя}`).on("input", function() { | |||||
мир.номерФайлаМодуля = номерФайла; | |||||
мир.имяФайлаМодуля = $(`#${idИмя}`).val(); | |||||
мир.уведомить("переименовали файл модуля"); | |||||
}); | |||||
} | |||||
}; | |||||
// // // // | |||||
УдалитьФайлМодуля = мир => | |||||
{ | |||||
var файлы = Object.keys(мир.редактируемыйМодуль.структура).sort(); | |||||
var файл = файлы[мир.номерФайлаМодуля]; | |||||
delete мир.редактируемыйМодуль.структура[файл]; | |||||
delete мир.редактируемыйМодуль.содержимое[файл]; | |||||
}; | |||||
// // // // | |||||
СпроситьПодтверждениеУдаленияФайлаМодуля = мир => | |||||
{ | |||||
var файлы = Object.keys(мир.редактируемыйМодуль.структура).sort(); | |||||
var файл = файлы[мир.номерФайлаМодуля]; | |||||
$(`#${мир.макет.зав.файлыПодтверждениеУдаленияИмя}`).html(файл); | |||||
UIkit.modal($(`#${мир.макет.зав.файлыПодтверждениеУдаления}`)).show(); | |||||
}; | |||||
// // // // | |||||
СоздатьДиалогПодтвержденияУдаленияФайлаМодуля = мир => | |||||
{ | |||||
$(`#${мир.макет.константы.содержимое}`).append(` | |||||
<div id="${мир.макет.зав.файлыПодтверждениеУдаления}" uk-modal> | |||||
<div class="uk-modal-dialog"> | |||||
<div class="uk-modal-header"> | |||||
<h2 class="uk-modal-title">Удалить файл? | Delete the file? </h2> | |||||
</div> | |||||
<div class="uk-modal-body"> | |||||
<p id="${мир.макет.зав.файлыПодтверждениеУдаленияИмя}"></p> | |||||
</div> | |||||
<div class="uk-modal-footer uk-text-right"> | |||||
<button class="uk-button uk-button-default uk-modal-close" type="button">Отмена | Cancel</button> | |||||
<button id="${мир.макет.зав.файлыПодтверждениеУдаленияУдалить}" class="uk-button uk-button-danger uk-modal-close" type="button">Удалить | Delete</button> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
`); | |||||
$(`#${мир.макет.зав.файлыПодтверждениеУдаленияУдалить}`).click(function() { | |||||
мир.уведомить("подтвердили удаление файла модуля"); | |||||
}); | |||||
}; | |||||
// // // // | |||||
ОтслеживатьУдалениеФайлаМодуля = мир => | |||||
{ | |||||
var файлы = Object.keys(мир.редактируемыйМодуль.структура).sort(); | |||||
for (var номер in файлы) | |||||
{ | |||||
var idУдалить = мир.макет.зав.файлыСписокУдалить.replace("%номер%", номер); | |||||
const номерФайла = номер; | |||||
$(`#${idУдалить}`).click(function() { | |||||
мир.номерФайлаМодуля = номерФайла; | |||||
мир.уведомить("кнопка удаления файла модуля"); | |||||
}); | |||||
} | |||||
}; | |||||
// // // // | |||||
ОчиститьИзменениеФайловМодуля = мир => | |||||
{ | |||||
$(`#${мир.макет.зав.файлыИзменение}`).attr("hidden", true); | |||||
}; | |||||
// // // // | |||||
ОтобразитьИзменениеФайловМодуля = мир => | |||||
{ | |||||
$(`#${мир.макет.зав.файлыИзменение}`).removeAttr("hidden"); | |||||
}; | |||||
// // // // | |||||
ДобавитьФайлМодуля = мир => | |||||
{ | |||||
мир.редактируемыйМодуль.структура[мир.имяФайлаМодуля] = {}; | |||||
мир.редактируемыйМодуль.содержимое[мир.имяФайлаМодуля] = ""; | |||||
}; | |||||
// // // // | |||||
СообщитьОНаличииДубляФайла = мир => | |||||
{ | |||||
var сообщение = "Такое имя файла уже существует | Such file name is already present"; | |||||
UIkit.modal.alert(сообщение); | |||||
console.error(сообщение); | |||||
}; | |||||
// // // // | |||||
ПроверитьОтсутствиеДубляФайла = мир => | |||||
{ | |||||
for (var файл in мир.редактируемыйМодуль.структура) | |||||
{ | |||||
if (файл == мир.имяФайлаМодуля) | |||||
{ | |||||
мир.уведомить("дубль файла присутствует"); | |||||
return; | |||||
} | |||||
мир.уведомить("дубль файла отсутствует"); | |||||
} | |||||
}; | |||||
// // // // | |||||
ОтслеживатьДобавлениеФайлаМодуля = мир => | |||||
{ | |||||
$(`#${мир.макет.зав.добавитьФайлКнопка}`).click(function() { | |||||
мир.имяФайлаМодуля = $(`#${мир.макет.зав.добавитьФайлИмя}`).val(); | |||||
мир.уведомить("кнопка добавления файла модуля"); | |||||
}); | |||||
}; | |||||
// // // // | |||||
ОтобразитьСписокФайловМодуля = мир => | |||||
{ | |||||
var список = ""; | |||||
var файлы = Object.keys(мир.редактируемыйМодуль.структура).sort(); | |||||
for (var номер in файлы) | |||||
{ | |||||
// Файл. | |||||
var файл = файлы[номер]; | |||||
// Флаги. | |||||
var строкаФлагов = ""; | |||||
var флаги = мир.редактируемыйМодуль.структура[файл]; | |||||
for (var флаг in флаги) | |||||
{ | |||||
if (флаг == "исполнить") | |||||
{ | |||||
строкаФлагов += "x"; | |||||
} | |||||
else if (флаг == "двоичный") | |||||
{ | |||||
строкаФлагов += "2"; | |||||
} | |||||
} | |||||
// id. | |||||
var idИмя = мир.макет.зав.файлыСписокИмя.replace("%номер%", номер); | |||||
var idФлаги = мир.макет.зав.файлыСписокФлаги.replace("%номер%", номер); | |||||
var idУдалить = мир.макет.зав.файлыСписокУдалить.replace("%номер%", номер); | |||||
var имяФайла = файл; | |||||
if (мир.переименования[файл]) { | |||||
имяФайла = мир.переименования[файл]; | |||||
} | |||||
список += ` | |||||
<tr> | |||||
<td> | |||||
<input id="${idИмя}" value="${имяФайла}" class="uk-input uk-margin-small" type="text" placeholder="Имя | Name"> | |||||
</td> | |||||
<td> | |||||
<input id="${idФлаги}" value="${строкаФлагов}" class="uk-input uk-margin-small" type="text" placeholder="Флаги | Flags"> | |||||
</td> | |||||
<td> | |||||
<button id="${idУдалить}" class="uk-button uk-button-danger"> | |||||
<span uk-icon="minus"></span> | |||||
</button> | |||||
</td> | |||||
</tr> | |||||
`; | |||||
} | |||||
$(`#${мир.макет.зав.файлыСписок}`).html(список); | |||||
}; | |||||
// // // // | |||||
ОтобразитьСтруктуруПунктаФайловЗава = мир => | |||||
{ | |||||
$(`#${мир.макет.константы.содержимое}`).html(` | |||||
<div class="зав-отступ"> | |||||
<div uk-grid style="margin-left: 0px"> | |||||
<input id="${мир.макет.зав.добавитьФайлИмя}" class="uk-input uk-width-expand" type="text" placeholder="Имя файла | File name"> | |||||
<button id="${мир.макет.зав.добавитьФайлКнопка}" class="uk-button uk-button-primary uk-width-auto uk-margin-left">Добавить файл | Add a file</button> | |||||
</div> | |||||
<hr class="uk-divider-icon"> | |||||
<table class="uk-table uk-table-hover uk-table-divider"> | |||||
<thead> | |||||
<tr> | |||||
<th>Файл | File</th> | |||||
<th>Флаги | Flags</th> | |||||
<th>Действия | Actions</th> | |||||
</tr> | |||||
</thead> | |||||
<tbody id="${мир.макет.зав.файлыСписок}"> | |||||
</tbody> | |||||
</table> | |||||
</div> | |||||
`); | |||||
}; | |||||
// // // // | |||||
ОтобразитьВыборПунктаФайловЗава = мир => | |||||
{ | |||||
$(`#${мир.макет.зав.файлы}`).addClass("uk-active"); | |||||
}; | |||||
@@ -0,0 +1,62 @@ | |||||
пуск модулей главреда | |||||
создать хранилище переименований файлов модуля | |||||
выбрали пункт файлов зава | |||||
очистить отображение выбора в меню | |||||
отобразить выбор пункта файлов зава | |||||
отобразить структуру пункта файлов зава | |||||
отобразить список файлов модуля | |||||
отслеживать добавление файла модуля | |||||
отслеживать удаление файла модуля | |||||
создать диалог подтверждения удаления файла модуля | |||||
отслеживать переименование файлов модуля | |||||
отслеживать смену флагов у файлов модуля | |||||
кнопка добавления файла модуля | |||||
сохранить переименование файлов модуля | |||||
проверить отсутствие дубля файла | |||||
дубль файла присутствует | |||||
сообщить о наличии дубля файла | |||||
дубль файла отсутствует | |||||
добавить файл модуля | |||||
отобразить изменение файлов модуля | |||||
отобразить список файлов модуля | |||||
отслеживать добавление файла модуля | |||||
отслеживать удаление файла модуля | |||||
отслеживать переименование файлов модуля | |||||
отслеживать смену флагов у файлов модуля | |||||
кнопка удаления файла модуля | |||||
сохранить переименование файлов модуля | |||||
спросить подтверждение удаления файла модуля | |||||
подтвердили удаление файла модуля | |||||
удалить файл модуля | |||||
отобразить изменение файлов модуля | |||||
отобразить список файлов модуля | |||||
отслеживать добавление файла модуля | |||||
отслеживать удаление файла модуля | |||||
отслеживать переименование файлов модуля | |||||
отслеживать смену флагов у файлов модуля | |||||
переименовали файл модуля | |||||
запомнить переименование файла модуля | |||||
отобразить изменение файлов модуля | |||||
сменили флаги у файла модуля | |||||
сохранить флаги файла модуля | |||||
начали сохранение | |||||
сохранить переименование файлов модуля | |||||
сохранили изменения | |||||
очистить изменение файлов модуля | |||||
отобразить список файлов модуля | |||||
отслеживать добавление файла модуля | |||||
отслеживать удаление файла модуля | |||||
отслеживать переименование файлов модуля | |||||
отслеживать смену флагов у файлов модуля | |||||
# Сообщаем модулю Файлы о необходимости обновить список файлов | |||||
# Куда-нибудь перенести? | |||||
сохранили изменения | |||||
обновить раздел меню со списком файлов | |||||
отслеживать выбор файла |