Разборка с сохранением

This commit is contained in:
2019-10-04 13:13:30 +03:00
parent 4f3186618c
commit 6001c88a22
4 changed files with 180 additions and 5 deletions

File diff suppressed because one or more lines are too long

View File

@@ -36,6 +36,11 @@ function TextEncoderLite(){}function TextDecoderLite(){}(function(){"use strict"
};
};
murom.start = function()
{
console.log("Override 'murom.start()' in any of the modules to be notified when all modules are loaded");
};
murom.loadModules = function()
{
// Skip `0` module because it's us.
@@ -61,6 +66,8 @@ murom.loadModules = function()
}
}
}
murom.start();
};
murom.loadIndexedDBModules = function(completionHandler)
@@ -72,6 +79,11 @@ murom.loadIndexedDBModules = function(completionHandler)
if (modules)
{
murom.modules = modules;
console.log("Modules have been loaded from IndexedDB");
}
if (error)
{
console.log("ERROR Getting modules from IndexedDB: '" + error + "'");
}
// Continue.
completionHandler();
@@ -82,3 +94,4 @@ murom.installLocalForage();
murom.installUnicodeBase64();
// IndexedDB modules override HTML ones.
murom.loadIndexedDBModules(murom.loadModules);

View File

@@ -0,0 +1,6 @@
муром.пуск = new Уведомитель();
муром.старт = муром.пуск;
murom.start = function()
{
муром.пуск.уведомить();
};

View File

@@ -0,0 +1,50 @@
муром.модулевед.сохранить = new Уведомитель();
муром.модулевед.сохранили = new Уведомитель();
муром.модулевед.создатьИнтерфейсСохранения = function()
{
сохранение = document.createElement("button");
муром.модулевед.htmlМодули.appendChild(сохранение);
сохранение.innerHTML = "Сохранить всё";
сохранение.onclick = function()
{
муром.модулевед.сохранить.уведомить();
};
муром.модулевед.htmlСохранение = сохранение;
};
муром.модулевед.сохранитьВыбранныйМодуль = function()
{
var номер = муром.модулевед.номерМодуля(муром.модулевед.выбранныйМодуль);
if (!номер)
{
return;
}
var модуль = муром.модули[номер];
var код = муром.редактор.session.getValue();
модуль[1] = base64Encode(код);
};
муром.модулевед.сохранитьВБазе = function(отклик)
{
муром.модулевед.htmlСохранение.disabled = true;
localforage.setItem("modules", муром.модули, function(ошибка, значение){
муром.модулевед.htmlСохранение.disabled = false;
if (ошибка)
{
console.log("ОШИБКА Не удалось сохранить модули: '" + ошибка + "'");
}
else if (отклик)
{
отклик();
}
});
};
муром.модулевед.сохранитьВсё = function()
{
муром.модулевед.сохранитьВыбранныйМодуль();
муром.модулевед.сохранитьВБазе(function(){
муром.модулевед.сохранили.уведомить();
});
};