Compare commits

...

26 Commits

Author SHA1 Message Date
16d207eed8 Оставить лишь 6 модулей 2019-10-16 13:30:54 +03:00
ae492494e3 Объединить модули в один 2019-10-16 13:14:38 +03:00
4f9c4edf65 Выключить новые модули 2019-10-16 13:13:33 +03:00
5ce8b3501c Удалить старые модули 2019-10-16 13:01:36 +03:00
6be4296319 Отключить старые модули 2019-10-16 12:53:53 +03:00
530e9df2b1 Новая панель управления 2019-10-16 12:37:04 +03:00
b7041b0c58 Исправить stringify 2019-10-16 12:19:14 +03:00
ea73dd2c76 Исправить 2019-10-16 12:16:42 +03:00
88a2a93bf2 Скачать 2019-10-16 12:15:04 +03:00
948db202f6 До сохранения 2019-10-16 12:02:10 +03:00
a35892ba9f Сохранение 2019-10-16 11:58:41 +03:00
59f87d458f Переименовывать и статус 2019-10-15 14:50:28 +03:00
f1d6a157de Показывать код 2019-10-14 18:44:05 +03:00
f936945c99 Набросать панель управления 2019-10-14 13:56:27 +03:00
ead8d4fc5c Добавить в свойства номер 2019-10-11 18:48:01 +03:00
af612107a3 Добавить СвойстваМодуля 2019-10-10 13:32:11 +03:00
e5ca901fd1 СписокМодулей 2019-10-10 12:22:23 +03:00
bcdc6c0698 Добавить purecss 2019-10-07 17:16:09 +03:00
e5693ae9a6 Подключить purecss 2019-10-07 16:46:58 +03:00
99ad6de9f2 Заменить base64Encode/Decode на btoa/atob 2019-10-04 13:39:18 +03:00
5c3e6bf622 Поправить сохранение 2019-10-04 13:27:42 +03:00
6001c88a22 Разборка с сохранением 2019-10-04 13:13:30 +03:00
4f3186618c Добавить муром.файл_1.0.0 2019-10-04 12:14:23 +03:00
6917cc0212 Добавить murom 1.2.0 с загрузочным первым модулем 2019-10-04 12:00:28 +03:00
c30918da87 Добавить переключение экрана 2019-10-03 13:59:14 +03:00
6c0465fc5e Добавить SemanticUI 2019-10-03 13:13:37 +03:00
8 changed files with 436 additions and 221 deletions

149
murom_1.2.0.html Normal file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,54 @@
// ReporterSubscription class.
function ReporterSubscription(id, callback, reporter)
{
this.id = id;
this.callback = callback;
this.reporter = reporter;
}
// Reporter class.
function Reporter(name)
{
this.name =
(typeof name !== "undefined") ?
name :
"";
this.subscriptions = [];
}
Reporter.prototype.report = function()
{
for (var id in this.subscriptions)
{
var subscription = this.subscriptions[id];
subscription.callback();
}
}
Reporter.prototype.subscribe = function(callback)
{
var id = murom.uuid();
var subscription = new ReporterSubscription(id, callback, this);
this.subscriptions.push(subscription);
return subscription;
}
Reporter.prototype.subscribeMany = function(funcs)
{
for (var i = 0; i < funcs.length; ++i)
{
var func = funcs[i];
this.subscribe(func);
}
}
var Уведомитель = Reporter;
Reporter.prototype.уведомить = function()
{
this.report();
};
Reporter.prototype.подписать = function(функция)
{
this.subscribe(функция);
};
Reporter.prototype.подписатьМного = function(funcs)
{
this.subscribeMany(funcs);
};

View File

@@ -0,0 +1,13 @@
// Create GUID / UUID in JavaScript?
// https://stackoverflow.com/a/2117523
муром.uuid = function()
{
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(
/[xy]/g,
function(c)
{
var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
return v.toString(16);
}
);
};

File diff suppressed because one or more lines are too long

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(){
муром.модулевед.сохранили.уведомить();
});
};

View File

@@ -0,0 +1,34 @@
муром.файл = {};
муром.файл.начало =
`
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<body>
<script>
var муром = {};
var murom = муром;
муром.модули = [
`;
муром.файл.конец =
`
];
Object.defineProperty(murom, "modules", {
get: function()
{
return муром.модули;
},
set: function(значения)
{
муром.модули = значения;
}
});
var загрузочныйМодуль = муром.модули[0];
var код = atob(загрузочныйМодуль[1]);
eval(код);
</script>
</body>
</html>
`;

File diff suppressed because one or more lines are too long