346 lines
12 KiB
JavaScript
346 lines
12 KiB
JavaScript
|
||
|
||
// // // //
|
||
|
||
|
||
СохранитьФлагиФайлаМодуля = мир =>
|
||
{
|
||
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");
|
||
};
|
||
|