Разборка с сохранением
This commit is contained in:
116
murom_1.2.0.html
116
murom_1.2.0.html
File diff suppressed because one or more lines are too long
@@ -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);
|
||||
|
||||
|
||||
6
модули/муром.пуск_1.0.0.js
Normal file
6
модули/муром.пуск_1.0.0.js
Normal file
@@ -0,0 +1,6 @@
|
||||
муром.пуск = new Уведомитель();
|
||||
муром.старт = муром.пуск;
|
||||
murom.start = function()
|
||||
{
|
||||
муром.пуск.уведомить();
|
||||
};
|
||||
50
модули/муром.сохранение_1.0.0.js
Normal file
50
модули/муром.сохранение_1.0.0.js
Normal 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(){
|
||||
муром.модулевед.сохранили.уведомить();
|
||||
});
|
||||
};
|
||||
Reference in New Issue
Block a user