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
21 changed files with 485 additions and 401 deletions

149
murom_1.2.0.html Normal file

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
муром_2.0.0.html

View File

@@ -1 +0,0 @@
муром_2.0.1.html

View File

@@ -6,7 +6,7 @@ function добавитьЭкранЗаставки()
заставка.style.cssText = "position: absolute; left: 0; right: 0; top: 0; bottom: 0; pointer-events: none;"; заставка.style.cssText = "position: absolute; left: 0; right: 0; top: 0; bottom: 0; pointer-events: none;";
заставка.innerHTML = заставка.innerHTML =
` `
<h1 id = "заголовок">Заставка</h1> <h1 id = "заголовок">МУРОМ</h1>
`; `;
var вид = document.createElement("style"); var вид = document.createElement("style");
@@ -18,13 +18,12 @@ function добавитьЭкранЗаставки()
position: absolute; position: absolute;
left: 50%; left: 50%;
top: 50%; top: 50%;
transform: translateX(-50%) translateY(-50%);
} }
#заставка #заставка
{ {
opacity: 1; opacity: 1;
background-color: grey; background-color: grey;
animation: fadeOut 1s ease; animation: fadeOut 2s ease;
animation-fill-mode: forwards; animation-fill-mode: forwards;
} }
@keyframes fadeOut @keyframes fadeOut
@@ -42,5 +41,4 @@ function добавитьЭкранЗаставки()
}; };
муром.пуск.подписать(добавитьЭкранЗаставки); муром.старт.подписать(добавитьЭкранЗаставки);

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>
`;

79
муром_1.2.0.html Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,20 +0,0 @@
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<body>
<script>
var MM = [
[
"HelloWorld",
"dmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwpkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRpdik7CmRpdi5pbm5lckhUTUwgPSAiPHA+SGVsbG8sIFdvcmxkITwvcD4iOw==",
],
];
var module = MM[0];
var code = atob(module[1]);
eval(code);
</script>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

View File

@@ -1,3 +0,0 @@
<div>
<p>Hello, World!</p>
</div>

View File

@@ -1,3 +0,0 @@
var div = document.createElement("div");
document.body.appendChild(div);
div.innerHTML = "<p>Hello, World!</p>";

View File

@@ -1,30 +0,0 @@
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<body>
<script>
var MM = [
[
"Loader",
"ZnVuY3Rpb24gTXVyb20oKQp7Cn0KTXVyb20ucHJvdG90eXBlLmxvYWRNb2R1bGVzID0gZnVuY3Rpb24oKQp7CiAgICAvLyBTa2lwIGAwYCBtb2R1bGUgYmVjYXVzZSBpdCdzIHVzLgogICAgZm9yICh2YXIgaSA9IDE7IGkgPCBNTS5sZW5ndGg7ICsraSkKICAgIHsKICAgICAgICB2YXIgbW9kdWxlID0gTU1baV07CiAgICAgICAgdmFyIG5hbWUgPSBtb2R1bGVbMF07CiAgICAgICAgdmFyIGNvZGUgPSBhdG9iKG1vZHVsZVsxXSk7CiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgICBldmFsKGNvZGUpOwogICAgICAgIH0KICAgICAgICBjYXRjaCAoZSkKICAgICAgICB7CiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoIkNvdWxkIG5vdCBsb2FkICciICsgbmFtZSArICInIG1vZHVsZTogJyIgKyBlICsgIiciKTsKICAgICAgICB9CiAgICB9Cn07CnZhciBNID0gbmV3IE11cm9tKCk7Ck0ubG9hZE1vZHVsZXMoKTsK",
],
[
"HelloWorld",
"dmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwpkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRpdik7CmRpdi5pbm5lckhUTUwgPSAiPHA+SGVsbG8sIFdvcmxkITwvcD4iOw==",
],
[
"NoBorders",
"dmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwpkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRpdik7CmRpdi5pbm5lckhUTUwgPSAiPHA+TGV0IDxzdHJvbmc+TVVST008L3N0cm9uZz4gc2hvdyB5b3Ugbm8gYm9yZGVyczwvcD4iOwo=",
],
];
var module = MM[0];
var code = atob(module[1]);
eval(code);
</script>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

View File

@@ -1,23 +0,0 @@
function Murom()
{
}
Murom.prototype.loadModules = function()
{
// Skip `0` module because it's us.
for (var i = 1; i < MM.length; ++i)
{
var module = MM[i];
var name = module[0];
var code = atob(module[1]);
try
{
eval(code);
}
catch (e)
{
console.error("Could not load '" + name + "' module: '" + e + "'");
}
}
};
var M = new Murom();
M.loadModules();

View File

@@ -1,3 +0,0 @@
var div = document.createElement("div");
document.body.appendChild(div);
div.innerHTML = "<p>Let <strong>MUROM</strong> show you no borders</p>";