Nikola auto commit.

Source commit: d510895ccd
Nikola version: 8.3.3
master
Patricio García 2025-08-20 20:07:24 +01:00
parent 765770c9e0
commit 7ad5cce325
26 changed files with 2191 additions and 295 deletions

View File

@ -16,6 +16,7 @@
<link rel="apple-touch-icon" href="assets/img/apple-touch-icon.png" sizes="180x180">
<link rel="manifest" href="assets/img/site.webmanifest" sizes="">
<!--[if lt IE 9]><script src="assets/js/html5.js"></script><![endif]--><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css">
<link href="assets/css/mastodon-timeline.min.css" rel="stylesheet">
</head>
<body>
<a href="#content" class="sr-only sr-only-focusable">Ir al contenido principal</a>
@ -25,7 +26,7 @@
<nav class="navbar navbar-expand-md static-top mb-4
navbar-dark
bg-dark
"><div class="container">
"><div class="container-xl">
<!-- This keeps the margins nice -->
<a class="navbar-brand" href=".">
<img src="assets/img/educatic_logo_w.svg" alt="EDUCATIC" id="logo" class="d-inline-block align-top"></a>
@ -62,16 +63,36 @@ bg-dark
<!-- /.navbar-collapse -->
</div>
<!-- /.container -->
</nav><!-- End of Menubar --><div class="container" id="content" role="main">
</nav><!-- End of Menubar --><div class="container-xl" id="content" role="main">
<div class="body-content">
<!--Body content-->
<div class="row">
<div class="col">
<!--Body content-->
<article class="listpage"><header><h1>Archivo</h1>
</header><p>No se encontraron publicaciones.</p>
</article><!--End of body content--><footer id="footer">
© 2020-2025 Educatic
</article><!--End of body content-->
</div>
<div class="col-lg-5 col-xl-4">
<!--Mastodon content-->
<div class="dummy-wrapper-timeline">
<!-- Mastodon Timeline -->
<div id="mt-container" class="mt-container">
<div class="mt-body" role="feed">
<div class="mt-loading-spinner"></div>
</div>
</div>
</div>
<!--End of Mastodon content-->
</div>
<footer id="footer">
© 2020-2025 Educatic
-
<a href="mailto:educatic@txs.es" class="text-dark mx-2" title="Enviar un correo"><i class="fas fa-envelope"></i></a>
<a href="xmpp:educatic-general@conference.txs.es?join" class="text-dark mx-2" title="Canal de mensajería XMPP"><i class="fas fa-comment"></i></a>
@ -83,17 +104,101 @@ bg-dark
Generado con <a href="https://getnikola.com" rel="nofollow">Nikola</a>
</footer>
</footer>
</div>
</div>
</div>
<script src="assets/js/all-nocdn.js"></script><script>
<script src="assets/js/all-nocdn.js"></script><script src="assets/js/mastodon-timeline.umd.js"></script><script>
const myTimeline = new MastodonTimeline.Init({
instanceUrl: "https://txs.es",
timelineType: "profile",
userId: "44",
profileName: "@EDUCATIC",
dateFormatLocale: "es",
btnSeeMore: "Ver mas publicaciones en Mastodon",
btnReload: "Recargar",
maxNbPostFetch: "5",
maxNbPostShow: "5",
});
</script><script>
baguetteBox.run('div#content', {
ignoreClass: 'islink',
captions: function(element){var i=element.getElementsByTagName('img')[0];return i===undefined?'':i.alt;}});
</script>
</script><script>(function () {
function submit(ev) {
const form = ev.target;
ev.preventDefault();
const answers = {};
const [,formId] = form.id.split("-");
for (let i = 0; i < form.length; i++) {
var input = form[i];
// extract question id (qid) and answer id (aid)
var [,,qid,,aid] = input.id.split("-");
if ( qid && !(qid in answers) )
answers[qid] = [];
switch (input.type) {
case "checkbox":
case "radio":
if (input.checked)
answers[qid].push(aid);
console.log(input.type, input.id, qid, aid, input.checked);
break;
case "select-one":
case "text":
case "textarea":
case "date":
case "datetime-local":
if (input.value)
answers[qid].push(input.value);
console.log(input.type, input.id, qid, input.value);
break;
default:
console.log("unknown form element type:", input.type);
}
}
const request = new XMLHttpRequest();
request.open("POST", form.action, true);
request.setRequestHeader("OCS-APIRequest", "true");
request.setRequestHeader("Accept", "application/json");
request.setRequestHeader("Content-Type", "application/json");
request.onload = function () {
const message = document.getElementById("form-" + formId + "-messages");
const form = document.getElementById("form-" + formId);
const success = document.getElementById("form-" + formId + "-success");
const response = JSON.parse(this.response);
if (this.status == 200) {
// success
form.style.display = "none";
success.style.display = "block";
} else {
message.innerHTML = '<div class="alert alert-danger" role="alert">' +
this.statusText + "(" + this.status + "): " +
response['ocs']['meta']['message'] +
'</div>';
}
};
request.send(JSON.stringify({'formId': formId, 'answers': answers}));
}
for (let i = 0; i < document.forms.length; i++)
document.forms[i].onsubmit = submit;
})();
</script>
</body>
</html>

1
assets/css/mastodon-timeline.min.css vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -16,6 +16,7 @@
<link rel="apple-touch-icon" href="../assets/img/apple-touch-icon.png" sizes="180x180">
<link rel="manifest" href="../assets/img/site.webmanifest" sizes="">
<!--[if lt IE 9]><script src="../assets/js/html5.js"></script><![endif]--><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css">
<link href="../assets/css/mastodon-timeline.min.css" rel="stylesheet">
</head>
<body>
<a href="#content" class="sr-only sr-only-focusable">Ir al contenido principal</a>
@ -25,7 +26,7 @@
<nav class="navbar navbar-expand-md static-top mb-4
navbar-dark
bg-dark
"><div class="container">
"><div class="container-xl">
<!-- This keeps the margins nice -->
<a class="navbar-brand" href="../">
<img src="../assets/img/educatic_logo_w.svg" alt="EDUCATIC" id="logo" class="d-inline-block align-top"></a>
@ -62,18 +63,36 @@ bg-dark
<!-- /.navbar-collapse -->
</div>
<!-- /.container -->
</nav><!-- End of Menubar --><div class="container" id="content" role="main">
</nav><!-- End of Menubar --><div class="container-xl" id="content" role="main">
<div class="body-content">
<!--Body content-->
<div class="row">
<div class="col">
<!--Body content-->
<h1>Etiquetas</h1>
<!--End of body content-->
<!--End of body content-->
</div>
<div class="col-lg-5 col-xl-4">
<!--Mastodon content-->
<div class="dummy-wrapper-timeline">
<!-- Mastodon Timeline -->
<div id="mt-container" class="mt-container">
<div class="mt-body" role="feed">
<div class="mt-loading-spinner"></div>
</div>
</div>
</div>
<footer id="footer">
© 2020-2025 Educatic
<!--End of Mastodon content-->
</div>
<footer id="footer">
© 2020-2025 Educatic
-
<a href="mailto:educatic@txs.es" class="text-dark mx-2" title="Enviar un correo"><i class="fas fa-envelope"></i></a>
<a href="xmpp:educatic-general@conference.txs.es?join" class="text-dark mx-2" title="Canal de mensajería XMPP"><i class="fas fa-comment"></i></a>
@ -85,17 +104,101 @@ bg-dark
Generado con <a href="https://getnikola.com" rel="nofollow">Nikola</a>
</footer>
</footer>
</div>
</div>
</div>
<script src="../assets/js/all-nocdn.js"></script><script>
<script src="../assets/js/all-nocdn.js"></script><script src="../assets/js/mastodon-timeline.umd.js"></script><script>
const myTimeline = new MastodonTimeline.Init({
instanceUrl: "https://txs.es",
timelineType: "profile",
userId: "44",
profileName: "@EDUCATIC",
dateFormatLocale: "es",
btnSeeMore: "Ver mas publicaciones en Mastodon",
btnReload: "Recargar",
maxNbPostFetch: "5",
maxNbPostShow: "5",
});
</script><script>
baguetteBox.run('div#content', {
ignoreClass: 'islink',
captions: function(element){var i=element.getElementsByTagName('img')[0];return i===undefined?'':i.alt;}});
</script>
</script><script>(function () {
function submit(ev) {
const form = ev.target;
ev.preventDefault();
const answers = {};
const [,formId] = form.id.split("-");
for (let i = 0; i < form.length; i++) {
var input = form[i];
// extract question id (qid) and answer id (aid)
var [,,qid,,aid] = input.id.split("-");
if ( qid && !(qid in answers) )
answers[qid] = [];
switch (input.type) {
case "checkbox":
case "radio":
if (input.checked)
answers[qid].push(aid);
console.log(input.type, input.id, qid, aid, input.checked);
break;
case "select-one":
case "text":
case "textarea":
case "date":
case "datetime-local":
if (input.value)
answers[qid].push(input.value);
console.log(input.type, input.id, qid, input.value);
break;
default:
console.log("unknown form element type:", input.type);
}
}
const request = new XMLHttpRequest();
request.open("POST", form.action, true);
request.setRequestHeader("OCS-APIRequest", "true");
request.setRequestHeader("Accept", "application/json");
request.setRequestHeader("Content-Type", "application/json");
request.onload = function () {
const message = document.getElementById("form-" + formId + "-messages");
const form = document.getElementById("form-" + formId);
const success = document.getElementById("form-" + formId + "-success");
const response = JSON.parse(this.response);
if (this.status == 200) {
// success
form.style.display = "none";
success.style.display = "block";
} else {
message.innerHTML = '<div class="alert alert-danger" role="alert">' +
this.statusText + "(" + this.status + "): " +
response['ocs']['meta']['message'] +
'</div>';
}
};
request.send(JSON.stringify({'formId': formId, 'answers': answers}));
}
for (let i = 0; i < document.forms.length; i++)
document.forms[i].onsubmit = submit;
})();
</script>
</body>
</html>

View File

@ -16,6 +16,7 @@
<link rel="apple-touch-icon" href="../assets/img/apple-touch-icon.png" sizes="180x180">
<link rel="manifest" href="../assets/img/site.webmanifest" sizes="">
<!--[if lt IE 9]><script src="../assets/js/html5.js"></script><![endif]--><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css">
<link href="../assets/css/mastodon-timeline.min.css" rel="stylesheet">
<meta name="author" content="Educatic">
<meta property="og:site_name" content="EDUCATIC">
<meta property="og:title" content="Comunicaciones">
@ -32,7 +33,7 @@
<nav class="navbar navbar-expand-md static-top mb-4
navbar-dark
bg-dark
"><div class="container">
"><div class="container-xl">
<!-- This keeps the margins nice -->
<a class="navbar-brand" href="../">
<img src="../assets/img/educatic_logo_w.svg" alt="EDUCATIC" id="logo" class="d-inline-block align-top"></a>
@ -69,12 +70,14 @@ bg-dark
<!-- /.navbar-collapse -->
</div>
<!-- /.container -->
</nav><!-- End of Menubar --><div class="container" id="content" role="main">
</nav><!-- End of Menubar --><div class="container-xl" id="content" role="main">
<div class="body-content">
<!--Body content-->
<div class="row">
<div class="col">
<!--Body content-->
<article class="post-text storypage" itemscope="itemscope" itemtype="http://schema.org/Article"><header style="background-image: url(../assets/img/header.jpg); height: 100px;"><div style="font-size:50px;">
<h1 class="p-name entry-title" itemprop="headline name">
@ -156,8 +159,26 @@ bg-dark
</div>
</article><!--End of body content--><footer id="footer">
© 2020-2025 Educatic
</article><!--End of body content-->
</div>
<div class="col-lg-5 col-xl-4">
<!--Mastodon content-->
<div class="dummy-wrapper-timeline">
<!-- Mastodon Timeline -->
<div id="mt-container" class="mt-container">
<div class="mt-body" role="feed">
<div class="mt-loading-spinner"></div>
</div>
</div>
</div>
<!--End of Mastodon content-->
</div>
<footer id="footer">
© 2020-2025 Educatic
-
<a href="mailto:educatic@txs.es" class="text-dark mx-2" title="Enviar un correo"><i class="fas fa-envelope"></i></a>
<a href="xmpp:educatic-general@conference.txs.es?join" class="text-dark mx-2" title="Canal de mensajería XMPP"><i class="fas fa-comment"></i></a>
@ -169,17 +190,101 @@ bg-dark
Generado con <a href="https://getnikola.com" rel="nofollow">Nikola</a>
</footer>
</footer>
</div>
</div>
</div>
<script src="../assets/js/all-nocdn.js"></script><script>
<script src="../assets/js/all-nocdn.js"></script><script src="../assets/js/mastodon-timeline.umd.js"></script><script>
const myTimeline = new MastodonTimeline.Init({
instanceUrl: "https://txs.es",
timelineType: "profile",
userId: "44",
profileName: "@EDUCATIC",
dateFormatLocale: "es",
btnSeeMore: "Ver mas publicaciones en Mastodon",
btnReload: "Recargar",
maxNbPostFetch: "5",
maxNbPostShow: "5",
});
</script><script>
baguetteBox.run('div#content', {
ignoreClass: 'islink',
captions: function(element){var i=element.getElementsByTagName('img')[0];return i===undefined?'':i.alt;}});
</script>
</script><script>(function () {
function submit(ev) {
const form = ev.target;
ev.preventDefault();
const answers = {};
const [,formId] = form.id.split("-");
for (let i = 0; i < form.length; i++) {
var input = form[i];
// extract question id (qid) and answer id (aid)
var [,,qid,,aid] = input.id.split("-");
if ( qid && !(qid in answers) )
answers[qid] = [];
switch (input.type) {
case "checkbox":
case "radio":
if (input.checked)
answers[qid].push(aid);
console.log(input.type, input.id, qid, aid, input.checked);
break;
case "select-one":
case "text":
case "textarea":
case "date":
case "datetime-local":
if (input.value)
answers[qid].push(input.value);
console.log(input.type, input.id, qid, input.value);
break;
default:
console.log("unknown form element type:", input.type);
}
}
const request = new XMLHttpRequest();
request.open("POST", form.action, true);
request.setRequestHeader("OCS-APIRequest", "true");
request.setRequestHeader("Accept", "application/json");
request.setRequestHeader("Content-Type", "application/json");
request.onload = function () {
const message = document.getElementById("form-" + formId + "-messages");
const form = document.getElementById("form-" + formId);
const success = document.getElementById("form-" + formId + "-success");
const response = JSON.parse(this.response);
if (this.status == 200) {
// success
form.style.display = "none";
success.style.display = "block";
} else {
message.innerHTML = '<div class="alert alert-danger" role="alert">' +
this.statusText + "(" + this.status + "): " +
response['ocs']['meta']['message'] +
'</div>';
}
};
request.send(JSON.stringify({'formId': formId, 'answers': answers}));
}
for (let i = 0; i < document.forms.length; i++)
document.forms[i].onsubmit = submit;
})();
</script>
</body>
</html>

View File

@ -16,6 +16,7 @@
<link rel="apple-touch-icon" href="../assets/img/apple-touch-icon.png" sizes="180x180">
<link rel="manifest" href="../assets/img/site.webmanifest" sizes="">
<!--[if lt IE 9]><script src="../assets/js/html5.js"></script><![endif]--><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css">
<link href="../assets/css/mastodon-timeline.min.css" rel="stylesheet">
<meta name="author" content="Educatic">
<meta property="og:site_name" content="EDUCATIC">
<meta property="og:title" content="Contacto">
@ -32,7 +33,7 @@
<nav class="navbar navbar-expand-md static-top mb-4
navbar-dark
bg-dark
"><div class="container">
"><div class="container-xl">
<!-- This keeps the margins nice -->
<a class="navbar-brand" href="../">
<img src="../assets/img/educatic_logo_w.svg" alt="EDUCATIC" id="logo" class="d-inline-block align-top"></a>
@ -69,12 +70,14 @@ bg-dark
<!-- /.navbar-collapse -->
</div>
<!-- /.container -->
</nav><!-- End of Menubar --><div class="container" id="content" role="main">
</nav><!-- End of Menubar --><div class="container-xl" id="content" role="main">
<div class="body-content">
<!--Body content-->
<div class="row">
<div class="col">
<!--Body content-->
<article class="post-text storypage" itemscope="itemscope" itemtype="http://schema.org/Article"><header style="background-image: url(../assets/img/header.jpg); height: 100px;"><div style="font-size:50px;">
<h1 class="p-name entry-title" itemprop="headline name">
@ -168,8 +171,26 @@ bg-dark
</div>
</article><!--End of body content--><footer id="footer">
© 2020-2025 Educatic
</article><!--End of body content-->
</div>
<div class="col-lg-5 col-xl-4">
<!--Mastodon content-->
<div class="dummy-wrapper-timeline">
<!-- Mastodon Timeline -->
<div id="mt-container" class="mt-container">
<div class="mt-body" role="feed">
<div class="mt-loading-spinner"></div>
</div>
</div>
</div>
<!--End of Mastodon content-->
</div>
<footer id="footer">
© 2020-2025 Educatic
-
<a href="mailto:educatic@txs.es" class="text-dark mx-2" title="Enviar un correo"><i class="fas fa-envelope"></i></a>
<a href="xmpp:educatic-general@conference.txs.es?join" class="text-dark mx-2" title="Canal de mensajería XMPP"><i class="fas fa-comment"></i></a>
@ -181,17 +202,101 @@ bg-dark
Generado con <a href="https://getnikola.com" rel="nofollow">Nikola</a>
</footer>
</footer>
</div>
</div>
</div>
<script src="../assets/js/all-nocdn.js"></script><script>
<script src="../assets/js/all-nocdn.js"></script><script src="../assets/js/mastodon-timeline.umd.js"></script><script>
const myTimeline = new MastodonTimeline.Init({
instanceUrl: "https://txs.es",
timelineType: "profile",
userId: "44",
profileName: "@EDUCATIC",
dateFormatLocale: "es",
btnSeeMore: "Ver mas publicaciones en Mastodon",
btnReload: "Recargar",
maxNbPostFetch: "5",
maxNbPostShow: "5",
});
</script><script>
baguetteBox.run('div#content', {
ignoreClass: 'islink',
captions: function(element){var i=element.getElementsByTagName('img')[0];return i===undefined?'':i.alt;}});
</script>
</script><script>(function () {
function submit(ev) {
const form = ev.target;
ev.preventDefault();
const answers = {};
const [,formId] = form.id.split("-");
for (let i = 0; i < form.length; i++) {
var input = form[i];
// extract question id (qid) and answer id (aid)
var [,,qid,,aid] = input.id.split("-");
if ( qid && !(qid in answers) )
answers[qid] = [];
switch (input.type) {
case "checkbox":
case "radio":
if (input.checked)
answers[qid].push(aid);
console.log(input.type, input.id, qid, aid, input.checked);
break;
case "select-one":
case "text":
case "textarea":
case "date":
case "datetime-local":
if (input.value)
answers[qid].push(input.value);
console.log(input.type, input.id, qid, input.value);
break;
default:
console.log("unknown form element type:", input.type);
}
}
const request = new XMLHttpRequest();
request.open("POST", form.action, true);
request.setRequestHeader("OCS-APIRequest", "true");
request.setRequestHeader("Accept", "application/json");
request.setRequestHeader("Content-Type", "application/json");
request.onload = function () {
const message = document.getElementById("form-" + formId + "-messages");
const form = document.getElementById("form-" + formId);
const success = document.getElementById("form-" + formId + "-success");
const response = JSON.parse(this.response);
if (this.status == 200) {
// success
form.style.display = "none";
success.style.display = "block";
} else {
message.innerHTML = '<div class="alert alert-danger" role="alert">' +
this.statusText + "(" + this.status + "): " +
response['ocs']['meta']['message'] +
'</div>';
}
};
request.send(JSON.stringify({'formId': formId, 'answers': answers}));
}
for (let i = 0; i < document.forms.length; i++)
document.forms[i].onsubmit = submit;
})();
</script>
</body>
</html>

View File

@ -16,6 +16,7 @@
<link rel="apple-touch-icon" href="../assets/img/apple-touch-icon.png" sizes="180x180">
<link rel="manifest" href="../assets/img/site.webmanifest" sizes="">
<!--[if lt IE 9]><script src="../assets/js/html5.js"></script><![endif]--><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css">
<link href="../assets/css/mastodon-timeline.min.css" rel="stylesheet">
<meta name="author" content="Educatic">
<meta property="og:site_name" content="EDUCATIC">
<meta property="og:title" content="Donaciones">
@ -32,7 +33,7 @@
<nav class="navbar navbar-expand-md static-top mb-4
navbar-dark
bg-dark
"><div class="container">
"><div class="container-xl">
<!-- This keeps the margins nice -->
<a class="navbar-brand" href="../">
<img src="../assets/img/educatic_logo_w.svg" alt="EDUCATIC" id="logo" class="d-inline-block align-top"></a>
@ -69,12 +70,14 @@ bg-dark
<!-- /.navbar-collapse -->
</div>
<!-- /.container -->
</nav><!-- End of Menubar --><div class="container" id="content" role="main">
</nav><!-- End of Menubar --><div class="container-xl" id="content" role="main">
<div class="body-content">
<!--Body content-->
<div class="row">
<div class="col">
<!--Body content-->
<article class="post-text storypage" itemscope="itemscope" itemtype="http://schema.org/Article"><header style="background-image: url(../assets/img/header.jpg); height: 100px;"><div style="font-size:50px;">
<h1 class="p-name entry-title" itemprop="headline name">
@ -125,8 +128,26 @@ BIC/SWIFT: TRIOESMMXXX
</div>
</article><!--End of body content--><footer id="footer">
© 2020-2025 Educatic
</article><!--End of body content-->
</div>
<div class="col-lg-5 col-xl-4">
<!--Mastodon content-->
<div class="dummy-wrapper-timeline">
<!-- Mastodon Timeline -->
<div id="mt-container" class="mt-container">
<div class="mt-body" role="feed">
<div class="mt-loading-spinner"></div>
</div>
</div>
</div>
<!--End of Mastodon content-->
</div>
<footer id="footer">
© 2020-2025 Educatic
-
<a href="mailto:educatic@txs.es" class="text-dark mx-2" title="Enviar un correo"><i class="fas fa-envelope"></i></a>
<a href="xmpp:educatic-general@conference.txs.es?join" class="text-dark mx-2" title="Canal de mensajería XMPP"><i class="fas fa-comment"></i></a>
@ -138,17 +159,101 @@ BIC/SWIFT: TRIOESMMXXX
Generado con <a href="https://getnikola.com" rel="nofollow">Nikola</a>
</footer>
</footer>
</div>
</div>
</div>
<script src="../assets/js/all-nocdn.js"></script><script>
<script src="../assets/js/all-nocdn.js"></script><script src="../assets/js/mastodon-timeline.umd.js"></script><script>
const myTimeline = new MastodonTimeline.Init({
instanceUrl: "https://txs.es",
timelineType: "profile",
userId: "44",
profileName: "@EDUCATIC",
dateFormatLocale: "es",
btnSeeMore: "Ver mas publicaciones en Mastodon",
btnReload: "Recargar",
maxNbPostFetch: "5",
maxNbPostShow: "5",
});
</script><script>
baguetteBox.run('div#content', {
ignoreClass: 'islink',
captions: function(element){var i=element.getElementsByTagName('img')[0];return i===undefined?'':i.alt;}});
</script>
</script><script>(function () {
function submit(ev) {
const form = ev.target;
ev.preventDefault();
const answers = {};
const [,formId] = form.id.split("-");
for (let i = 0; i < form.length; i++) {
var input = form[i];
// extract question id (qid) and answer id (aid)
var [,,qid,,aid] = input.id.split("-");
if ( qid && !(qid in answers) )
answers[qid] = [];
switch (input.type) {
case "checkbox":
case "radio":
if (input.checked)
answers[qid].push(aid);
console.log(input.type, input.id, qid, aid, input.checked);
break;
case "select-one":
case "text":
case "textarea":
case "date":
case "datetime-local":
if (input.value)
answers[qid].push(input.value);
console.log(input.type, input.id, qid, input.value);
break;
default:
console.log("unknown form element type:", input.type);
}
}
const request = new XMLHttpRequest();
request.open("POST", form.action, true);
request.setRequestHeader("OCS-APIRequest", "true");
request.setRequestHeader("Accept", "application/json");
request.setRequestHeader("Content-Type", "application/json");
request.onload = function () {
const message = document.getElementById("form-" + formId + "-messages");
const form = document.getElementById("form-" + formId);
const success = document.getElementById("form-" + formId + "-success");
const response = JSON.parse(this.response);
if (this.status == 200) {
// success
form.style.display = "none";
success.style.display = "block";
} else {
message.innerHTML = '<div class="alert alert-danger" role="alert">' +
this.statusText + "(" + this.status + "): " +
response['ocs']['meta']['message'] +
'</div>';
}
};
request.send(JSON.stringify({'formId': formId, 'answers': answers}));
}
for (let i = 0; i < document.forms.length; i++)
document.forms[i].onsubmit = submit;
})();
</script>
</body>
</html>

View File

@ -16,6 +16,7 @@
<link rel="apple-touch-icon" href="../assets/img/apple-touch-icon.png" sizes="180x180">
<link rel="manifest" href="../assets/img/site.webmanifest" sizes="">
<!--[if lt IE 9]><script src="../assets/js/html5.js"></script><![endif]--><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css">
<link href="../assets/css/mastodon-timeline.min.css" rel="stylesheet">
<meta name="author" content="Educatic">
<meta property="og:site_name" content="EDUCATIC">
<meta property="og:title" content="Eventos">
@ -32,7 +33,7 @@
<nav class="navbar navbar-expand-md static-top mb-4
navbar-dark
bg-dark
"><div class="container">
"><div class="container-xl">
<!-- This keeps the margins nice -->
<a class="navbar-brand" href="../">
<img src="../assets/img/educatic_logo_w.svg" alt="EDUCATIC" id="logo" class="d-inline-block align-top"></a>
@ -69,12 +70,14 @@ bg-dark
<!-- /.navbar-collapse -->
</div>
<!-- /.container -->
</nav><!-- End of Menubar --><div class="container" id="content" role="main">
</nav><!-- End of Menubar --><div class="container-xl" id="content" role="main">
<div class="body-content">
<!--Body content-->
<div class="row">
<div class="col">
<!--Body content-->
<article class="post-text storypage" itemscope="itemscope" itemtype="http://schema.org/Article"><header style="background-image: url(../assets/img/header.jpg); height: 100px;"><div style="font-size:50px;">
<h1 class="p-name entry-title" itemprop="headline name">
@ -90,8 +93,26 @@ bg-dark
</div>
</article><!--End of body content--><footer id="footer">
© 2020-2025 Educatic
</article><!--End of body content-->
</div>
<div class="col-lg-5 col-xl-4">
<!--Mastodon content-->
<div class="dummy-wrapper-timeline">
<!-- Mastodon Timeline -->
<div id="mt-container" class="mt-container">
<div class="mt-body" role="feed">
<div class="mt-loading-spinner"></div>
</div>
</div>
</div>
<!--End of Mastodon content-->
</div>
<footer id="footer">
© 2020-2025 Educatic
-
<a href="mailto:educatic@txs.es" class="text-dark mx-2" title="Enviar un correo"><i class="fas fa-envelope"></i></a>
<a href="xmpp:educatic-general@conference.txs.es?join" class="text-dark mx-2" title="Canal de mensajería XMPP"><i class="fas fa-comment"></i></a>
@ -103,17 +124,101 @@ bg-dark
Generado con <a href="https://getnikola.com" rel="nofollow">Nikola</a>
</footer>
</footer>
</div>
</div>
</div>
<script src="../assets/js/all-nocdn.js"></script><script>
<script src="../assets/js/all-nocdn.js"></script><script src="../assets/js/mastodon-timeline.umd.js"></script><script>
const myTimeline = new MastodonTimeline.Init({
instanceUrl: "https://txs.es",
timelineType: "profile",
userId: "44",
profileName: "@EDUCATIC",
dateFormatLocale: "es",
btnSeeMore: "Ver mas publicaciones en Mastodon",
btnReload: "Recargar",
maxNbPostFetch: "5",
maxNbPostShow: "5",
});
</script><script>
baguetteBox.run('div#content', {
ignoreClass: 'islink',
captions: function(element){var i=element.getElementsByTagName('img')[0];return i===undefined?'':i.alt;}});
</script>
</script><script>(function () {
function submit(ev) {
const form = ev.target;
ev.preventDefault();
const answers = {};
const [,formId] = form.id.split("-");
for (let i = 0; i < form.length; i++) {
var input = form[i];
// extract question id (qid) and answer id (aid)
var [,,qid,,aid] = input.id.split("-");
if ( qid && !(qid in answers) )
answers[qid] = [];
switch (input.type) {
case "checkbox":
case "radio":
if (input.checked)
answers[qid].push(aid);
console.log(input.type, input.id, qid, aid, input.checked);
break;
case "select-one":
case "text":
case "textarea":
case "date":
case "datetime-local":
if (input.value)
answers[qid].push(input.value);
console.log(input.type, input.id, qid, input.value);
break;
default:
console.log("unknown form element type:", input.type);
}
}
const request = new XMLHttpRequest();
request.open("POST", form.action, true);
request.setRequestHeader("OCS-APIRequest", "true");
request.setRequestHeader("Accept", "application/json");
request.setRequestHeader("Content-Type", "application/json");
request.onload = function () {
const message = document.getElementById("form-" + formId + "-messages");
const form = document.getElementById("form-" + formId);
const success = document.getElementById("form-" + formId + "-success");
const response = JSON.parse(this.response);
if (this.status == 200) {
// success
form.style.display = "none";
success.style.display = "block";
} else {
message.innerHTML = '<div class="alert alert-danger" role="alert">' +
this.statusText + "(" + this.status + "): " +
response['ocs']['meta']['message'] +
'</div>';
}
};
request.send(JSON.stringify({'formId': formId, 'answers': answers}));
}
for (let i = 0; i < document.forms.length; i++)
document.forms[i].onsubmit = submit;
})();
</script>
</body>
</html>

View File

@ -16,6 +16,7 @@
<link rel="apple-touch-icon" href="../assets/img/apple-touch-icon.png" sizes="180x180">
<link rel="manifest" href="../assets/img/site.webmanifest" sizes="">
<!--[if lt IE 9]><script src="../assets/js/html5.js"></script><![endif]--><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css">
<link href="../assets/css/mastodon-timeline.min.css" rel="stylesheet">
<meta name="author" content="Educatic">
<meta property="og:site_name" content="EDUCATIC">
<meta property="og:title" content="Fundación TXS.es ">
@ -32,7 +33,7 @@
<nav class="navbar navbar-expand-md static-top mb-4
navbar-dark
bg-dark
"><div class="container">
"><div class="container-xl">
<!-- This keeps the margins nice -->
<a class="navbar-brand" href="../">
<img src="../assets/img/educatic_logo_w.svg" alt="EDUCATIC" id="logo" class="d-inline-block align-top"></a>
@ -69,12 +70,14 @@ bg-dark
<!-- /.navbar-collapse -->
</div>
<!-- /.container -->
</nav><!-- End of Menubar --><div class="container" id="content" role="main">
</nav><!-- End of Menubar --><div class="container-xl" id="content" role="main">
<div class="body-content">
<!--Body content-->
<div class="row">
<div class="col">
<!--Body content-->
<article class="post-text storypage" itemscope="itemscope" itemtype="http://schema.org/Article"><header style="background-image: url(../assets/img/header.jpg); height: 100px;"><div style="font-size:50px;">
<h1 class="p-name entry-title" itemprop="headline name">
@ -115,8 +118,26 @@ bg-dark
</div>
</article><!--End of body content--><footer id="footer">
© 2020-2025 Educatic
</article><!--End of body content-->
</div>
<div class="col-lg-5 col-xl-4">
<!--Mastodon content-->
<div class="dummy-wrapper-timeline">
<!-- Mastodon Timeline -->
<div id="mt-container" class="mt-container">
<div class="mt-body" role="feed">
<div class="mt-loading-spinner"></div>
</div>
</div>
</div>
<!--End of Mastodon content-->
</div>
<footer id="footer">
© 2020-2025 Educatic
-
<a href="mailto:educatic@txs.es" class="text-dark mx-2" title="Enviar un correo"><i class="fas fa-envelope"></i></a>
<a href="xmpp:educatic-general@conference.txs.es?join" class="text-dark mx-2" title="Canal de mensajería XMPP"><i class="fas fa-comment"></i></a>
@ -128,17 +149,101 @@ bg-dark
Generado con <a href="https://getnikola.com" rel="nofollow">Nikola</a>
</footer>
</footer>
</div>
</div>
</div>
<script src="../assets/js/all-nocdn.js"></script><script>
<script src="../assets/js/all-nocdn.js"></script><script src="../assets/js/mastodon-timeline.umd.js"></script><script>
const myTimeline = new MastodonTimeline.Init({
instanceUrl: "https://txs.es",
timelineType: "profile",
userId: "44",
profileName: "@EDUCATIC",
dateFormatLocale: "es",
btnSeeMore: "Ver mas publicaciones en Mastodon",
btnReload: "Recargar",
maxNbPostFetch: "5",
maxNbPostShow: "5",
});
</script><script>
baguetteBox.run('div#content', {
ignoreClass: 'islink',
captions: function(element){var i=element.getElementsByTagName('img')[0];return i===undefined?'':i.alt;}});
</script>
</script><script>(function () {
function submit(ev) {
const form = ev.target;
ev.preventDefault();
const answers = {};
const [,formId] = form.id.split("-");
for (let i = 0; i < form.length; i++) {
var input = form[i];
// extract question id (qid) and answer id (aid)
var [,,qid,,aid] = input.id.split("-");
if ( qid && !(qid in answers) )
answers[qid] = [];
switch (input.type) {
case "checkbox":
case "radio":
if (input.checked)
answers[qid].push(aid);
console.log(input.type, input.id, qid, aid, input.checked);
break;
case "select-one":
case "text":
case "textarea":
case "date":
case "datetime-local":
if (input.value)
answers[qid].push(input.value);
console.log(input.type, input.id, qid, input.value);
break;
default:
console.log("unknown form element type:", input.type);
}
}
const request = new XMLHttpRequest();
request.open("POST", form.action, true);
request.setRequestHeader("OCS-APIRequest", "true");
request.setRequestHeader("Accept", "application/json");
request.setRequestHeader("Content-Type", "application/json");
request.onload = function () {
const message = document.getElementById("form-" + formId + "-messages");
const form = document.getElementById("form-" + formId);
const success = document.getElementById("form-" + formId + "-success");
const response = JSON.parse(this.response);
if (this.status == 200) {
// success
form.style.display = "none";
success.style.display = "block";
} else {
message.innerHTML = '<div class="alert alert-danger" role="alert">' +
this.statusText + "(" + this.status + "): " +
response['ocs']['meta']['message'] +
'</div>';
}
};
request.send(JSON.stringify({'formId': formId, 'answers': answers}));
}
for (let i = 0; i < document.forms.length; i++)
document.forms[i].onsubmit = submit;
})();
</script>
</body>
</html>

View File

@ -15,6 +15,7 @@
<link rel="apple-touch-icon" href="../assets/img/apple-touch-icon.png" sizes="180x180">
<link rel="manifest" href="../assets/img/site.webmanifest" sizes="">
<!--[if lt IE 9]><script src="../assets/js/html5.js"></script><![endif]--><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css">
<link href="../assets/css/mastodon-timeline.min.css" rel="stylesheet">
<link rel="alternate" type="application/rss+xml" title="RSS" href="rss.xml">
<style type="text/css">
#gallery_container {
@ -34,7 +35,7 @@
<nav class="navbar navbar-expand-md static-top mb-4
navbar-dark
bg-dark
"><div class="container">
"><div class="container-xl">
<!-- This keeps the margins nice -->
<a class="navbar-brand" href="../">
<img src="../assets/img/educatic_logo_w.svg" alt="EDUCATIC" id="logo" class="d-inline-block align-top"></a>
@ -71,12 +72,14 @@ bg-dark
<!-- /.navbar-collapse -->
</div>
<!-- /.container -->
</nav><!-- End of Menubar --><div class="container" id="content" role="main">
</nav><!-- End of Menubar --><div class="container-xl" id="content" role="main">
<div class="body-content">
<!--Body content-->
<div class="row">
<div class="col">
<!--Body content-->
<nav class="breadcrumbs"><ul class="breadcrumb">
<li class="breadcrumb-item active">galleries</li>
@ -84,10 +87,26 @@ bg-dark
<div id="gallery_container"></div>
<!--End of body content-->
<!--End of body content-->
</div>
<div class="col-lg-5 col-xl-4">
<!--Mastodon content-->
<div class="dummy-wrapper-timeline">
<!-- Mastodon Timeline -->
<div id="mt-container" class="mt-container">
<div class="mt-body" role="feed">
<div class="mt-loading-spinner"></div>
</div>
</div>
</div>
<footer id="footer">
© 2020-2025 Educatic
<!--End of Mastodon content-->
</div>
<footer id="footer">
© 2020-2025 Educatic
-
<a href="mailto:educatic@txs.es" class="text-dark mx-2" title="Enviar un correo"><i class="fas fa-envelope"></i></a>
<a href="xmpp:educatic-general@conference.txs.es?join" class="text-dark mx-2" title="Canal de mensajería XMPP"><i class="fas fa-comment"></i></a>
@ -99,14 +118,29 @@ bg-dark
Generado con <a href="https://getnikola.com" rel="nofollow">Nikola</a>
</footer>
</footer>
</div>
</div>
</div>
<script src="../assets/js/all-nocdn.js"></script><script src="../assets/js/justified-layout.min.js"></script><script src="../assets/js/gallery.min.js"></script><script>
<script src="../assets/js/all-nocdn.js"></script><script src="../assets/js/mastodon-timeline.umd.js"></script><script>
const myTimeline = new MastodonTimeline.Init({
instanceUrl: "https://txs.es",
timelineType: "profile",
userId: "44",
profileName: "@EDUCATIC",
dateFormatLocale: "es",
btnSeeMore: "Ver mas publicaciones en Mastodon",
btnReload: "Recargar",
maxNbPostFetch: "5",
maxNbPostShow: "5",
});
</script><script src="../assets/js/justified-layout.min.js"></script><script src="../assets/js/gallery.min.js"></script><script>
var jsonContent = [];
var thumbnailSize = 180;
renderGallery(jsonContent, thumbnailSize);
@ -115,6 +149,75 @@ window.addEventListener('resize', function(){renderGallery(jsonContent, thumbnai
baguetteBox.run('div#content', {
ignoreClass: 'islink',
captions: function(element){var i=element.getElementsByTagName('img')[0];return i===undefined?'':i.alt;}});
</script>
</script><script>(function () {
function submit(ev) {
const form = ev.target;
ev.preventDefault();
const answers = {};
const [,formId] = form.id.split("-");
for (let i = 0; i < form.length; i++) {
var input = form[i];
// extract question id (qid) and answer id (aid)
var [,,qid,,aid] = input.id.split("-");
if ( qid && !(qid in answers) )
answers[qid] = [];
switch (input.type) {
case "checkbox":
case "radio":
if (input.checked)
answers[qid].push(aid);
console.log(input.type, input.id, qid, aid, input.checked);
break;
case "select-one":
case "text":
case "textarea":
case "date":
case "datetime-local":
if (input.value)
answers[qid].push(input.value);
console.log(input.type, input.id, qid, input.value);
break;
default:
console.log("unknown form element type:", input.type);
}
}
const request = new XMLHttpRequest();
request.open("POST", form.action, true);
request.setRequestHeader("OCS-APIRequest", "true");
request.setRequestHeader("Accept", "application/json");
request.setRequestHeader("Content-Type", "application/json");
request.onload = function () {
const message = document.getElementById("form-" + formId + "-messages");
const form = document.getElementById("form-" + formId);
const success = document.getElementById("form-" + formId + "-success");
const response = JSON.parse(this.response);
if (this.status == 200) {
// success
form.style.display = "none";
success.style.display = "block";
} else {
message.innerHTML = '<div class="alert alert-danger" role="alert">' +
this.statusText + "(" + this.status + "): " +
response['ocs']['meta']['message'] +
'</div>';
}
};
request.send(JSON.stringify({'formId': formId, 'answers': answers}));
}
for (let i = 0; i < document.forms.length; i++)
document.forms[i].onsubmit = submit;
})();
</script>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

@ -16,6 +16,7 @@
<link rel="apple-touch-icon" href="assets/img/apple-touch-icon.png" sizes="180x180">
<link rel="manifest" href="assets/img/site.webmanifest" sizes="">
<!--[if lt IE 9]><script src="assets/js/html5.js"></script><![endif]--><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css">
<link href="assets/css/mastodon-timeline.min.css" rel="stylesheet">
<meta name="author" content="Educatic">
<meta property="og:site_name" content="EDUCATIC">
<meta property="og:title" content="EDUCATIC">
@ -32,7 +33,7 @@
<nav class="navbar navbar-expand-md static-top mb-4
navbar-dark
bg-dark
"><div class="container">
"><div class="container-xl">
<!-- This keeps the margins nice -->
<a class="navbar-brand" href=".">
<img src="assets/img/educatic_logo_w.svg" alt="EDUCATIC" id="logo" class="d-inline-block align-top"></a>
@ -69,12 +70,14 @@ bg-dark
<!-- /.navbar-collapse -->
</div>
<!-- /.container -->
</nav><!-- End of Menubar --><div class="container" id="content" role="main">
</nav><!-- End of Menubar --><div class="container-xl" id="content" role="main">
<div class="body-content">
<!--Body content-->
<div class="row">
<div class="col">
<!--Body content-->
<article class="post-text storypage" itemscope="itemscope" itemtype="http://schema.org/Article"><header style="background-image: url(images/aprendiendo3.jpg); height: 75vh; text-align:center;"><div style="font-size:50px;">
<h2 class="p-name entry-title" itemprop="headline name">Tecnologías para la Educación y Transparencia Tecnológica</h2>
@ -98,8 +101,26 @@ bg-dark
</div>
</article><!--End of body content--><footer id="footer">
© 2020-2025 Educatic
</article><!--End of body content-->
</div>
<div class="col-lg-5 col-xl-4">
<!--Mastodon content-->
<div class="dummy-wrapper-timeline">
<!-- Mastodon Timeline -->
<div id="mt-container" class="mt-container">
<div class="mt-body" role="feed">
<div class="mt-loading-spinner"></div>
</div>
</div>
</div>
<!--End of Mastodon content-->
</div>
<footer id="footer">
© 2020-2025 Educatic
-
<a href="mailto:educatic@txs.es" class="text-dark mx-2" title="Enviar un correo"><i class="fas fa-envelope"></i></a>
<a href="xmpp:educatic-general@conference.txs.es?join" class="text-dark mx-2" title="Canal de mensajería XMPP"><i class="fas fa-comment"></i></a>
@ -111,17 +132,101 @@ bg-dark
Generado con <a href="https://getnikola.com" rel="nofollow">Nikola</a>
</footer>
</footer>
</div>
</div>
</div>
<script src="assets/js/all-nocdn.js"></script><script>
<script src="assets/js/all-nocdn.js"></script><script src="assets/js/mastodon-timeline.umd.js"></script><script>
const myTimeline = new MastodonTimeline.Init({
instanceUrl: "https://txs.es",
timelineType: "profile",
userId: "44",
profileName: "@EDUCATIC",
dateFormatLocale: "es",
btnSeeMore: "Ver mas publicaciones en Mastodon",
btnReload: "Recargar",
maxNbPostFetch: "5",
maxNbPostShow: "5",
});
</script><script>
baguetteBox.run('div#content', {
ignoreClass: 'islink',
captions: function(element){var i=element.getElementsByTagName('img')[0];return i===undefined?'':i.alt;}});
</script>
</script><script>(function () {
function submit(ev) {
const form = ev.target;
ev.preventDefault();
const answers = {};
const [,formId] = form.id.split("-");
for (let i = 0; i < form.length; i++) {
var input = form[i];
// extract question id (qid) and answer id (aid)
var [,,qid,,aid] = input.id.split("-");
if ( qid && !(qid in answers) )
answers[qid] = [];
switch (input.type) {
case "checkbox":
case "radio":
if (input.checked)
answers[qid].push(aid);
console.log(input.type, input.id, qid, aid, input.checked);
break;
case "select-one":
case "text":
case "textarea":
case "date":
case "datetime-local":
if (input.value)
answers[qid].push(input.value);
console.log(input.type, input.id, qid, input.value);
break;
default:
console.log("unknown form element type:", input.type);
}
}
const request = new XMLHttpRequest();
request.open("POST", form.action, true);
request.setRequestHeader("OCS-APIRequest", "true");
request.setRequestHeader("Accept", "application/json");
request.setRequestHeader("Content-Type", "application/json");
request.onload = function () {
const message = document.getElementById("form-" + formId + "-messages");
const form = document.getElementById("form-" + formId);
const success = document.getElementById("form-" + formId + "-success");
const response = JSON.parse(this.response);
if (this.status == 200) {
// success
form.style.display = "none";
success.style.display = "block";
} else {
message.innerHTML = '<div class="alert alert-danger" role="alert">' +
this.statusText + "(" + this.status + "): " +
response['ocs']['meta']['message'] +
'</div>';
}
};
request.send(JSON.stringify({'formId': formId, 'answers': answers}));
}
for (let i = 0; i < document.forms.length; i++)
document.forms[i].onsubmit = submit;
})();
</script>
</body>
</html>

View File

@ -16,6 +16,7 @@
<link rel="apple-touch-icon" href="../assets/img/apple-touch-icon.png" sizes="180x180">
<link rel="manifest" href="../assets/img/site.webmanifest" sizes="">
<!--[if lt IE 9]><script src="../assets/js/html5.js"></script><![endif]--><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css">
<link href="../assets/css/mastodon-timeline.min.css" rel="stylesheet">
<meta name="author" content="Educatic">
<meta property="og:site_name" content="EDUCATIC">
<meta property="og:title" content="Información legal">
@ -32,7 +33,7 @@
<nav class="navbar navbar-expand-md static-top mb-4
navbar-dark
bg-dark
"><div class="container">
"><div class="container-xl">
<!-- This keeps the margins nice -->
<a class="navbar-brand" href="../">
<img src="../assets/img/educatic_logo_w.svg" alt="EDUCATIC" id="logo" class="d-inline-block align-top"></a>
@ -69,12 +70,14 @@ bg-dark
<!-- /.navbar-collapse -->
</div>
<!-- /.container -->
</nav><!-- End of Menubar --><div class="container" id="content" role="main">
</nav><!-- End of Menubar --><div class="container-xl" id="content" role="main">
<div class="body-content">
<!--Body content-->
<div class="row">
<div class="col">
<!--Body content-->
<article class="post-text storypage" itemscope="itemscope" itemtype="http://schema.org/Article"><header style="background-image: url(../assets/img/header.jpg); height: 100px;"><div style="font-size:50px;">
<h1 class="p-name entry-title" itemprop="headline name">
@ -110,8 +113,26 @@ educatic@txs.es
</div>
</article><!--End of body content--><footer id="footer">
© 2020-2025 Educatic
</article><!--End of body content-->
</div>
<div class="col-lg-5 col-xl-4">
<!--Mastodon content-->
<div class="dummy-wrapper-timeline">
<!-- Mastodon Timeline -->
<div id="mt-container" class="mt-container">
<div class="mt-body" role="feed">
<div class="mt-loading-spinner"></div>
</div>
</div>
</div>
<!--End of Mastodon content-->
</div>
<footer id="footer">
© 2020-2025 Educatic
-
<a href="mailto:educatic@txs.es" class="text-dark mx-2" title="Enviar un correo"><i class="fas fa-envelope"></i></a>
<a href="xmpp:educatic-general@conference.txs.es?join" class="text-dark mx-2" title="Canal de mensajería XMPP"><i class="fas fa-comment"></i></a>
@ -123,17 +144,101 @@ educatic@txs.es
Generado con <a href="https://getnikola.com" rel="nofollow">Nikola</a>
</footer>
</footer>
</div>
</div>
</div>
<script src="../assets/js/all-nocdn.js"></script><script>
<script src="../assets/js/all-nocdn.js"></script><script src="../assets/js/mastodon-timeline.umd.js"></script><script>
const myTimeline = new MastodonTimeline.Init({
instanceUrl: "https://txs.es",
timelineType: "profile",
userId: "44",
profileName: "@EDUCATIC",
dateFormatLocale: "es",
btnSeeMore: "Ver mas publicaciones en Mastodon",
btnReload: "Recargar",
maxNbPostFetch: "5",
maxNbPostShow: "5",
});
</script><script>
baguetteBox.run('div#content', {
ignoreClass: 'islink',
captions: function(element){var i=element.getElementsByTagName('img')[0];return i===undefined?'':i.alt;}});
</script>
</script><script>(function () {
function submit(ev) {
const form = ev.target;
ev.preventDefault();
const answers = {};
const [,formId] = form.id.split("-");
for (let i = 0; i < form.length; i++) {
var input = form[i];
// extract question id (qid) and answer id (aid)
var [,,qid,,aid] = input.id.split("-");
if ( qid && !(qid in answers) )
answers[qid] = [];
switch (input.type) {
case "checkbox":
case "radio":
if (input.checked)
answers[qid].push(aid);
console.log(input.type, input.id, qid, aid, input.checked);
break;
case "select-one":
case "text":
case "textarea":
case "date":
case "datetime-local":
if (input.value)
answers[qid].push(input.value);
console.log(input.type, input.id, qid, input.value);
break;
default:
console.log("unknown form element type:", input.type);
}
}
const request = new XMLHttpRequest();
request.open("POST", form.action, true);
request.setRequestHeader("OCS-APIRequest", "true");
request.setRequestHeader("Accept", "application/json");
request.setRequestHeader("Content-Type", "application/json");
request.onload = function () {
const message = document.getElementById("form-" + formId + "-messages");
const form = document.getElementById("form-" + formId);
const success = document.getElementById("form-" + formId + "-success");
const response = JSON.parse(this.response);
if (this.status == 200) {
// success
form.style.display = "none";
success.style.display = "block";
} else {
message.innerHTML = '<div class="alert alert-danger" role="alert">' +
this.statusText + "(" + this.status + "): " +
response['ocs']['meta']['message'] +
'</div>';
}
};
request.send(JSON.stringify({'formId': formId, 'answers': answers}));
}
for (let i = 0; i < document.forms.length; i++)
document.forms[i].onsubmit = submit;
})();
</script>
</body>
</html>

View File

@ -16,6 +16,7 @@
<link rel="apple-touch-icon" href="../assets/img/apple-touch-icon.png" sizes="180x180">
<link rel="manifest" href="../assets/img/site.webmanifest" sizes="">
<!--[if lt IE 9]><script src="../assets/js/html5.js"></script><![endif]--><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css">
<link href="../assets/css/mastodon-timeline.min.css" rel="stylesheet">
<meta name="author" content="Educatic">
<meta property="og:site_name" content="EDUCATIC">
<meta property="og:title" content="Formulario de inscripción">
@ -32,7 +33,7 @@
<nav class="navbar navbar-expand-md static-top mb-4
navbar-dark
bg-dark
"><div class="container">
"><div class="container-xl">
<!-- This keeps the margins nice -->
<a class="navbar-brand" href="../">
<img src="../assets/img/educatic_logo_w.svg" alt="EDUCATIC" id="logo" class="d-inline-block align-top"></a>
@ -69,12 +70,14 @@ bg-dark
<!-- /.navbar-collapse -->
</div>
<!-- /.container -->
</nav><!-- End of Menubar --><div class="container" id="content" role="main">
</nav><!-- End of Menubar --><div class="container-xl" id="content" role="main">
<div class="body-content">
<!--Body content-->
<div class="row">
<div class="col">
<!--Body content-->
<article class="post-text storypage" itemscope="itemscope" itemtype="http://schema.org/Article"><header style="background-image: url(../assets/img/header.jpg); height: 100px;"><div style="font-size:50px;">
<h1 class="p-name entry-title" itemprop="headline name">
@ -205,8 +208,26 @@ bg-dark
</div>
</article><!--End of body content--><footer id="footer">
© 2020-2025 Educatic
</article><!--End of body content-->
</div>
<div class="col-lg-5 col-xl-4">
<!--Mastodon content-->
<div class="dummy-wrapper-timeline">
<!-- Mastodon Timeline -->
<div id="mt-container" class="mt-container">
<div class="mt-body" role="feed">
<div class="mt-loading-spinner"></div>
</div>
</div>
</div>
<!--End of Mastodon content-->
</div>
<footer id="footer">
© 2020-2025 Educatic
-
<a href="mailto:educatic@txs.es" class="text-dark mx-2" title="Enviar un correo"><i class="fas fa-envelope"></i></a>
<a href="xmpp:educatic-general@conference.txs.es?join" class="text-dark mx-2" title="Canal de mensajería XMPP"><i class="fas fa-comment"></i></a>
@ -218,14 +239,29 @@ bg-dark
Generado con <a href="https://getnikola.com" rel="nofollow">Nikola</a>
</footer>
</footer>
</div>
</div>
</div>
<script src="../assets/js/all-nocdn.js"></script><script>
<script src="../assets/js/all-nocdn.js"></script><script src="../assets/js/mastodon-timeline.umd.js"></script><script>
const myTimeline = new MastodonTimeline.Init({
instanceUrl: "https://txs.es",
timelineType: "profile",
userId: "44",
profileName: "@EDUCATIC",
dateFormatLocale: "es",
btnSeeMore: "Ver mas publicaciones en Mastodon",
btnReload: "Recargar",
maxNbPostFetch: "5",
maxNbPostShow: "5",
});
</script><script>
baguetteBox.run('div#content', {
ignoreClass: 'islink',
captions: function(element){var i=element.getElementsByTagName('img')[0];return i===undefined?'':i.alt;}});

View File

@ -16,6 +16,7 @@
<link rel="apple-touch-icon" href="../assets/img/apple-touch-icon.png" sizes="180x180">
<link rel="manifest" href="../assets/img/site.webmanifest" sizes="">
<!--[if lt IE 9]><script src="../assets/js/html5.js"></script><![endif]--><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css">
<link href="../assets/css/mastodon-timeline.min.css" rel="stylesheet">
<meta name="author" content="Educatic">
<meta property="og:site_name" content="EDUCATIC">
<meta property="og:title" content="Asóciate">
@ -32,7 +33,7 @@
<nav class="navbar navbar-expand-md static-top mb-4
navbar-dark
bg-dark
"><div class="container">
"><div class="container-xl">
<!-- This keeps the margins nice -->
<a class="navbar-brand" href="../">
<img src="../assets/img/educatic_logo_w.svg" alt="EDUCATIC" id="logo" class="d-inline-block align-top"></a>
@ -69,12 +70,14 @@ bg-dark
<!-- /.navbar-collapse -->
</div>
<!-- /.container -->
</nav><!-- End of Menubar --><div class="container" id="content" role="main">
</nav><!-- End of Menubar --><div class="container-xl" id="content" role="main">
<div class="body-content">
<!--Body content-->
<div class="row">
<div class="col">
<!--Body content-->
<article class="post-text storypage" itemscope="itemscope" itemtype="http://schema.org/Article"><header style="background-image: url(../assets/img/header.jpg); height: 100px;"><div style="font-size:50px;">
<h1 class="p-name entry-title" itemprop="headline name">
@ -123,8 +126,26 @@ bg-dark
</div>
</article><!--End of body content--><footer id="footer">
© 2020-2025 Educatic
</article><!--End of body content-->
</div>
<div class="col-lg-5 col-xl-4">
<!--Mastodon content-->
<div class="dummy-wrapper-timeline">
<!-- Mastodon Timeline -->
<div id="mt-container" class="mt-container">
<div class="mt-body" role="feed">
<div class="mt-loading-spinner"></div>
</div>
</div>
</div>
<!--End of Mastodon content-->
</div>
<footer id="footer">
© 2020-2025 Educatic
-
<a href="mailto:educatic@txs.es" class="text-dark mx-2" title="Enviar un correo"><i class="fas fa-envelope"></i></a>
<a href="xmpp:educatic-general@conference.txs.es?join" class="text-dark mx-2" title="Canal de mensajería XMPP"><i class="fas fa-comment"></i></a>
@ -136,17 +157,101 @@ bg-dark
Generado con <a href="https://getnikola.com" rel="nofollow">Nikola</a>
</footer>
</footer>
</div>
</div>
</div>
<script src="../assets/js/all-nocdn.js"></script><script>
<script src="../assets/js/all-nocdn.js"></script><script src="../assets/js/mastodon-timeline.umd.js"></script><script>
const myTimeline = new MastodonTimeline.Init({
instanceUrl: "https://txs.es",
timelineType: "profile",
userId: "44",
profileName: "@EDUCATIC",
dateFormatLocale: "es",
btnSeeMore: "Ver mas publicaciones en Mastodon",
btnReload: "Recargar",
maxNbPostFetch: "5",
maxNbPostShow: "5",
});
</script><script>
baguetteBox.run('div#content', {
ignoreClass: 'islink',
captions: function(element){var i=element.getElementsByTagName('img')[0];return i===undefined?'':i.alt;}});
</script>
</script><script>(function () {
function submit(ev) {
const form = ev.target;
ev.preventDefault();
const answers = {};
const [,formId] = form.id.split("-");
for (let i = 0; i < form.length; i++) {
var input = form[i];
// extract question id (qid) and answer id (aid)
var [,,qid,,aid] = input.id.split("-");
if ( qid && !(qid in answers) )
answers[qid] = [];
switch (input.type) {
case "checkbox":
case "radio":
if (input.checked)
answers[qid].push(aid);
console.log(input.type, input.id, qid, aid, input.checked);
break;
case "select-one":
case "text":
case "textarea":
case "date":
case "datetime-local":
if (input.value)
answers[qid].push(input.value);
console.log(input.type, input.id, qid, input.value);
break;
default:
console.log("unknown form element type:", input.type);
}
}
const request = new XMLHttpRequest();
request.open("POST", form.action, true);
request.setRequestHeader("OCS-APIRequest", "true");
request.setRequestHeader("Accept", "application/json");
request.setRequestHeader("Content-Type", "application/json");
request.onload = function () {
const message = document.getElementById("form-" + formId + "-messages");
const form = document.getElementById("form-" + formId);
const success = document.getElementById("form-" + formId + "-success");
const response = JSON.parse(this.response);
if (this.status == 200) {
// success
form.style.display = "none";
success.style.display = "block";
} else {
message.innerHTML = '<div class="alert alert-danger" role="alert">' +
this.statusText + "(" + this.status + "): " +
response['ocs']['meta']['message'] +
'</div>';
}
};
request.send(JSON.stringify({'formId': formId, 'answers': answers}));
}
for (let i = 0; i < document.forms.length; i++)
document.forms[i].onsubmit = submit;
})();
</script>
</body>
</html>

View File

@ -16,6 +16,7 @@
<link rel="apple-touch-icon" href="../assets/img/apple-touch-icon.png" sizes="180x180">
<link rel="manifest" href="../assets/img/site.webmanifest" sizes="">
<!--[if lt IE 9]><script src="../assets/js/html5.js"></script><![endif]--><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css">
<link href="../assets/css/mastodon-timeline.min.css" rel="stylesheet">
</head>
<body>
<a href="#content" class="sr-only sr-only-focusable">Ir al contenido principal</a>
@ -25,7 +26,7 @@
<nav class="navbar navbar-expand-md static-top mb-4
navbar-dark
bg-dark
"><div class="container">
"><div class="container-xl">
<!-- This keeps the margins nice -->
<a class="navbar-brand" href="../">
<img src="../assets/img/educatic_logo_w.svg" alt="EDUCATIC" id="logo" class="d-inline-block align-top"></a>
@ -62,17 +63,37 @@ bg-dark
<!-- /.navbar-collapse -->
</div>
<!-- /.container -->
</nav><!-- End of Menubar --><div class="container" id="content" role="main">
</nav><!-- End of Menubar --><div class="container-xl" id="content" role="main">
<div class="body-content">
<!--Body content-->
<div class="row">
<div class="col">
<!--Body content-->
<nav class="breadcrumbs"><ul class="breadcrumb">
<li class="breadcrumb-item"><a href=".">listings</a></li>
</ul></nav><!--End of body content--><footer id="footer">
© 2020-2025 Educatic
</ul></nav><!--End of body content-->
</div>
<div class="col-lg-5 col-xl-4">
<!--Mastodon content-->
<div class="dummy-wrapper-timeline">
<!-- Mastodon Timeline -->
<div id="mt-container" class="mt-container">
<div class="mt-body" role="feed">
<div class="mt-loading-spinner"></div>
</div>
</div>
</div>
<!--End of Mastodon content-->
</div>
<footer id="footer">
© 2020-2025 Educatic
-
<a href="mailto:educatic@txs.es" class="text-dark mx-2" title="Enviar un correo"><i class="fas fa-envelope"></i></a>
<a href="xmpp:educatic-general@conference.txs.es?join" class="text-dark mx-2" title="Canal de mensajería XMPP"><i class="fas fa-comment"></i></a>
@ -84,17 +105,101 @@ bg-dark
Generado con <a href="https://getnikola.com" rel="nofollow">Nikola</a>
</footer>
</footer>
</div>
</div>
</div>
<script src="../assets/js/all-nocdn.js"></script><script>
<script src="../assets/js/all-nocdn.js"></script><script src="../assets/js/mastodon-timeline.umd.js"></script><script>
const myTimeline = new MastodonTimeline.Init({
instanceUrl: "https://txs.es",
timelineType: "profile",
userId: "44",
profileName: "@EDUCATIC",
dateFormatLocale: "es",
btnSeeMore: "Ver mas publicaciones en Mastodon",
btnReload: "Recargar",
maxNbPostFetch: "5",
maxNbPostShow: "5",
});
</script><script>
baguetteBox.run('div#content', {
ignoreClass: 'islink',
captions: function(element){var i=element.getElementsByTagName('img')[0];return i===undefined?'':i.alt;}});
</script>
</script><script>(function () {
function submit(ev) {
const form = ev.target;
ev.preventDefault();
const answers = {};
const [,formId] = form.id.split("-");
for (let i = 0; i < form.length; i++) {
var input = form[i];
// extract question id (qid) and answer id (aid)
var [,,qid,,aid] = input.id.split("-");
if ( qid && !(qid in answers) )
answers[qid] = [];
switch (input.type) {
case "checkbox":
case "radio":
if (input.checked)
answers[qid].push(aid);
console.log(input.type, input.id, qid, aid, input.checked);
break;
case "select-one":
case "text":
case "textarea":
case "date":
case "datetime-local":
if (input.value)
answers[qid].push(input.value);
console.log(input.type, input.id, qid, input.value);
break;
default:
console.log("unknown form element type:", input.type);
}
}
const request = new XMLHttpRequest();
request.open("POST", form.action, true);
request.setRequestHeader("OCS-APIRequest", "true");
request.setRequestHeader("Accept", "application/json");
request.setRequestHeader("Content-Type", "application/json");
request.onload = function () {
const message = document.getElementById("form-" + formId + "-messages");
const form = document.getElementById("form-" + formId);
const success = document.getElementById("form-" + formId + "-success");
const response = JSON.parse(this.response);
if (this.status == 200) {
// success
form.style.display = "none";
success.style.display = "block";
} else {
message.innerHTML = '<div class="alert alert-danger" role="alert">' +
this.statusText + "(" + this.status + "): " +
response['ocs']['meta']['message'] +
'</div>';
}
};
request.send(JSON.stringify({'formId': formId, 'answers': answers}));
}
for (let i = 0; i < document.forms.length; i++)
document.forms[i].onsubmit = submit;
})();
</script>
</body>
</html>

View File

@ -16,6 +16,7 @@
<link rel="apple-touch-icon" href="../assets/img/apple-touch-icon.png" sizes="180x180">
<link rel="manifest" href="../assets/img/site.webmanifest" sizes="">
<!--[if lt IE 9]><script src="../assets/js/html5.js"></script><![endif]--><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css">
<link href="../assets/css/mastodon-timeline.min.css" rel="stylesheet">
</head>
<body>
<a href="#content" class="sr-only sr-only-focusable">Ir al contenido principal</a>
@ -25,7 +26,7 @@
<nav class="navbar navbar-expand-md static-top mb-4
navbar-dark
bg-dark
"><div class="container">
"><div class="container-xl">
<!-- This keeps the margins nice -->
<a class="navbar-brand" href="../">
<img src="../assets/img/educatic_logo_w.svg" alt="EDUCATIC" id="logo" class="d-inline-block align-top"></a>
@ -62,12 +63,14 @@ bg-dark
<!-- /.navbar-collapse -->
</div>
<!-- /.container -->
</nav><!-- End of Menubar --><div class="container" id="content" role="main">
</nav><!-- End of Menubar --><div class="container-xl" id="content" role="main">
<div class="body-content">
<!--Body content-->
<div class="row">
<div class="col">
<!--Body content-->
@ -84,10 +87,26 @@ bg-dark
<!--End of body content-->
<!--End of body content-->
</div>
<div class="col-lg-5 col-xl-4">
<!--Mastodon content-->
<div class="dummy-wrapper-timeline">
<!-- Mastodon Timeline -->
<div id="mt-container" class="mt-container">
<div class="mt-body" role="feed">
<div class="mt-loading-spinner"></div>
</div>
</div>
</div>
<footer id="footer">
© 2020-2025 Educatic
<!--End of Mastodon content-->
</div>
<footer id="footer">
© 2020-2025 Educatic
-
<a href="mailto:educatic@txs.es" class="text-dark mx-2" title="Enviar un correo"><i class="fas fa-envelope"></i></a>
<a href="xmpp:educatic-general@conference.txs.es?join" class="text-dark mx-2" title="Canal de mensajería XMPP"><i class="fas fa-comment"></i></a>
@ -99,17 +118,101 @@ bg-dark
Generado con <a href="https://getnikola.com" rel="nofollow">Nikola</a>
</footer>
</footer>
</div>
</div>
</div>
<script src="../assets/js/all-nocdn.js"></script><script>
<script src="../assets/js/all-nocdn.js"></script><script src="../assets/js/mastodon-timeline.umd.js"></script><script>
const myTimeline = new MastodonTimeline.Init({
instanceUrl: "https://txs.es",
timelineType: "profile",
userId: "44",
profileName: "@EDUCATIC",
dateFormatLocale: "es",
btnSeeMore: "Ver mas publicaciones en Mastodon",
btnReload: "Recargar",
maxNbPostFetch: "5",
maxNbPostShow: "5",
});
</script><script>
baguetteBox.run('div#content', {
ignoreClass: 'islink',
captions: function(element){var i=element.getElementsByTagName('img')[0];return i===undefined?'':i.alt;}});
</script>
</script><script>(function () {
function submit(ev) {
const form = ev.target;
ev.preventDefault();
const answers = {};
const [,formId] = form.id.split("-");
for (let i = 0; i < form.length; i++) {
var input = form[i];
// extract question id (qid) and answer id (aid)
var [,,qid,,aid] = input.id.split("-");
if ( qid && !(qid in answers) )
answers[qid] = [];
switch (input.type) {
case "checkbox":
case "radio":
if (input.checked)
answers[qid].push(aid);
console.log(input.type, input.id, qid, aid, input.checked);
break;
case "select-one":
case "text":
case "textarea":
case "date":
case "datetime-local":
if (input.value)
answers[qid].push(input.value);
console.log(input.type, input.id, qid, input.value);
break;
default:
console.log("unknown form element type:", input.type);
}
}
const request = new XMLHttpRequest();
request.open("POST", form.action, true);
request.setRequestHeader("OCS-APIRequest", "true");
request.setRequestHeader("Accept", "application/json");
request.setRequestHeader("Content-Type", "application/json");
request.onload = function () {
const message = document.getElementById("form-" + formId + "-messages");
const form = document.getElementById("form-" + formId);
const success = document.getElementById("form-" + formId + "-success");
const response = JSON.parse(this.response);
if (this.status == 200) {
// success
form.style.display = "none";
success.style.display = "block";
} else {
message.innerHTML = '<div class="alert alert-danger" role="alert">' +
this.statusText + "(" + this.status + "): " +
response['ocs']['meta']['message'] +
'</div>';
}
};
request.send(JSON.stringify({'formId': formId, 'answers': answers}));
}
for (let i = 0; i < document.forms.length; i++)
document.forms[i].onsubmit = submit;
})();
</script>
</body>
</html>

View File

@ -16,6 +16,7 @@
<link rel="apple-touch-icon" href="../assets/img/apple-touch-icon.png" sizes="180x180">
<link rel="manifest" href="../assets/img/site.webmanifest" sizes="">
<!--[if lt IE 9]><script src="../assets/js/html5.js"></script><![endif]--><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css">
<link href="../assets/css/mastodon-timeline.min.css" rel="stylesheet">
<meta name="author" content="Educatic">
<meta property="og:site_name" content="EDUCATIC">
<meta property="og:title" content="Visión y proyecto">
@ -32,7 +33,7 @@
<nav class="navbar navbar-expand-md static-top mb-4
navbar-dark
bg-dark
"><div class="container">
"><div class="container-xl">
<!-- This keeps the margins nice -->
<a class="navbar-brand" href="../">
<img src="../assets/img/educatic_logo_w.svg" alt="EDUCATIC" id="logo" class="d-inline-block align-top"></a>
@ -69,12 +70,14 @@ bg-dark
<!-- /.navbar-collapse -->
</div>
<!-- /.container -->
</nav><!-- End of Menubar --><div class="container" id="content" role="main">
</nav><!-- End of Menubar --><div class="container-xl" id="content" role="main">
<div class="body-content">
<!--Body content-->
<div class="row">
<div class="col">
<!--Body content-->
<article class="post-text storypage" itemscope="itemscope" itemtype="http://schema.org/Article"><header style="background-image: url(../assets/img/header.jpg); height: 100px;"><div style="font-size:50px;">
<h1 class="p-name entry-title" itemprop="headline name">
@ -141,8 +144,26 @@ bg-dark
</div>
</article><!--End of body content--><footer id="footer">
© 2020-2025 Educatic
</article><!--End of body content-->
</div>
<div class="col-lg-5 col-xl-4">
<!--Mastodon content-->
<div class="dummy-wrapper-timeline">
<!-- Mastodon Timeline -->
<div id="mt-container" class="mt-container">
<div class="mt-body" role="feed">
<div class="mt-loading-spinner"></div>
</div>
</div>
</div>
<!--End of Mastodon content-->
</div>
<footer id="footer">
© 2020-2025 Educatic
-
<a href="mailto:educatic@txs.es" class="text-dark mx-2" title="Enviar un correo"><i class="fas fa-envelope"></i></a>
<a href="xmpp:educatic-general@conference.txs.es?join" class="text-dark mx-2" title="Canal de mensajería XMPP"><i class="fas fa-comment"></i></a>
@ -154,17 +175,101 @@ bg-dark
Generado con <a href="https://getnikola.com" rel="nofollow">Nikola</a>
</footer>
</footer>
</div>
</div>
</div>
<script src="../assets/js/all-nocdn.js"></script><script>
<script src="../assets/js/all-nocdn.js"></script><script src="../assets/js/mastodon-timeline.umd.js"></script><script>
const myTimeline = new MastodonTimeline.Init({
instanceUrl: "https://txs.es",
timelineType: "profile",
userId: "44",
profileName: "@EDUCATIC",
dateFormatLocale: "es",
btnSeeMore: "Ver mas publicaciones en Mastodon",
btnReload: "Recargar",
maxNbPostFetch: "5",
maxNbPostShow: "5",
});
</script><script>
baguetteBox.run('div#content', {
ignoreClass: 'islink',
captions: function(element){var i=element.getElementsByTagName('img')[0];return i===undefined?'':i.alt;}});
</script>
</script><script>(function () {
function submit(ev) {
const form = ev.target;
ev.preventDefault();
const answers = {};
const [,formId] = form.id.split("-");
for (let i = 0; i < form.length; i++) {
var input = form[i];
// extract question id (qid) and answer id (aid)
var [,,qid,,aid] = input.id.split("-");
if ( qid && !(qid in answers) )
answers[qid] = [];
switch (input.type) {
case "checkbox":
case "radio":
if (input.checked)
answers[qid].push(aid);
console.log(input.type, input.id, qid, aid, input.checked);
break;
case "select-one":
case "text":
case "textarea":
case "date":
case "datetime-local":
if (input.value)
answers[qid].push(input.value);
console.log(input.type, input.id, qid, input.value);
break;
default:
console.log("unknown form element type:", input.type);
}
}
const request = new XMLHttpRequest();
request.open("POST", form.action, true);
request.setRequestHeader("OCS-APIRequest", "true");
request.setRequestHeader("Accept", "application/json");
request.setRequestHeader("Content-Type", "application/json");
request.onload = function () {
const message = document.getElementById("form-" + formId + "-messages");
const form = document.getElementById("form-" + formId);
const success = document.getElementById("form-" + formId + "-success");
const response = JSON.parse(this.response);
if (this.status == 200) {
// success
form.style.display = "none";
success.style.display = "block";
} else {
message.innerHTML = '<div class="alert alert-danger" role="alert">' +
this.statusText + "(" + this.status + "): " +
response['ocs']['meta']['message'] +
'</div>';
}
};
request.send(JSON.stringify({'formId': formId, 'answers': answers}));
}
for (let i = 0; i < document.forms.length; i++)
document.forms[i].onsubmit = submit;
})();
</script>
</body>
</html>

View File

@ -16,6 +16,7 @@
<link rel="apple-touch-icon" href="../assets/img/apple-touch-icon.png" sizes="180x180">
<link rel="manifest" href="../assets/img/site.webmanifest" sizes="">
<!--[if lt IE 9]><script src="../assets/js/html5.js"></script><![endif]--><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css">
<link href="../assets/css/mastodon-timeline.min.css" rel="stylesheet">
<meta name="author" content="Educatic">
<meta property="og:site_name" content="EDUCATIC">
<meta property="og:title" content="Protección de datos">
@ -32,7 +33,7 @@
<nav class="navbar navbar-expand-md static-top mb-4
navbar-dark
bg-dark
"><div class="container">
"><div class="container-xl">
<!-- This keeps the margins nice -->
<a class="navbar-brand" href="../">
<img src="../assets/img/educatic_logo_w.svg" alt="EDUCATIC" id="logo" class="d-inline-block align-top"></a>
@ -69,12 +70,14 @@ bg-dark
<!-- /.navbar-collapse -->
</div>
<!-- /.container -->
</nav><!-- End of Menubar --><div class="container" id="content" role="main">
</nav><!-- End of Menubar --><div class="container-xl" id="content" role="main">
<div class="body-content">
<!--Body content-->
<div class="row">
<div class="col">
<!--Body content-->
<article class="post-text storypage" itemscope="itemscope" itemtype="http://schema.org/Article"><header style="background-image: url(../assets/img/header.jpg); height: 100px;"><div style="font-size:50px;">
<h1 class="p-name entry-title" itemprop="headline name">
@ -105,8 +108,26 @@ bg-dark
</div>
</article><!--End of body content--><footer id="footer">
© 2020-2025 Educatic
</article><!--End of body content-->
</div>
<div class="col-lg-5 col-xl-4">
<!--Mastodon content-->
<div class="dummy-wrapper-timeline">
<!-- Mastodon Timeline -->
<div id="mt-container" class="mt-container">
<div class="mt-body" role="feed">
<div class="mt-loading-spinner"></div>
</div>
</div>
</div>
<!--End of Mastodon content-->
</div>
<footer id="footer">
© 2020-2025 Educatic
-
<a href="mailto:educatic@txs.es" class="text-dark mx-2" title="Enviar un correo"><i class="fas fa-envelope"></i></a>
<a href="xmpp:educatic-general@conference.txs.es?join" class="text-dark mx-2" title="Canal de mensajería XMPP"><i class="fas fa-comment"></i></a>
@ -118,17 +139,101 @@ bg-dark
Generado con <a href="https://getnikola.com" rel="nofollow">Nikola</a>
</footer>
</footer>
</div>
</div>
</div>
<script src="../assets/js/all-nocdn.js"></script><script>
<script src="../assets/js/all-nocdn.js"></script><script src="../assets/js/mastodon-timeline.umd.js"></script><script>
const myTimeline = new MastodonTimeline.Init({
instanceUrl: "https://txs.es",
timelineType: "profile",
userId: "44",
profileName: "@EDUCATIC",
dateFormatLocale: "es",
btnSeeMore: "Ver mas publicaciones en Mastodon",
btnReload: "Recargar",
maxNbPostFetch: "5",
maxNbPostShow: "5",
});
</script><script>
baguetteBox.run('div#content', {
ignoreClass: 'islink',
captions: function(element){var i=element.getElementsByTagName('img')[0];return i===undefined?'':i.alt;}});
</script>
</script><script>(function () {
function submit(ev) {
const form = ev.target;
ev.preventDefault();
const answers = {};
const [,formId] = form.id.split("-");
for (let i = 0; i < form.length; i++) {
var input = form[i];
// extract question id (qid) and answer id (aid)
var [,,qid,,aid] = input.id.split("-");
if ( qid && !(qid in answers) )
answers[qid] = [];
switch (input.type) {
case "checkbox":
case "radio":
if (input.checked)
answers[qid].push(aid);
console.log(input.type, input.id, qid, aid, input.checked);
break;
case "select-one":
case "text":
case "textarea":
case "date":
case "datetime-local":
if (input.value)
answers[qid].push(input.value);
console.log(input.type, input.id, qid, input.value);
break;
default:
console.log("unknown form element type:", input.type);
}
}
const request = new XMLHttpRequest();
request.open("POST", form.action, true);
request.setRequestHeader("OCS-APIRequest", "true");
request.setRequestHeader("Accept", "application/json");
request.setRequestHeader("Content-Type", "application/json");
request.onload = function () {
const message = document.getElementById("form-" + formId + "-messages");
const form = document.getElementById("form-" + formId);
const success = document.getElementById("form-" + formId + "-success");
const response = JSON.parse(this.response);
if (this.status == 200) {
// success
form.style.display = "none";
success.style.display = "block";
} else {
message.innerHTML = '<div class="alert alert-danger" role="alert">' +
this.statusText + "(" + this.status + "): " +
response['ocs']['meta']['message'] +
'</div>';
}
};
request.send(JSON.stringify({'formId': formId, 'answers': answers}));
}
for (let i = 0; i < document.forms.length; i++)
document.forms[i].onsubmit = submit;
})();
</script>
</body>
</html>

View File

@ -16,6 +16,7 @@
<link rel="apple-touch-icon" href="../assets/img/apple-touch-icon.png" sizes="180x180">
<link rel="manifest" href="../assets/img/site.webmanifest" sizes="">
<!--[if lt IE 9]><script src="../assets/js/html5.js"></script><![endif]--><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css">
<link href="../assets/css/mastodon-timeline.min.css" rel="stylesheet">
<meta name="author" content="Educatic">
<meta property="og:site_name" content="EDUCATIC">
<meta property="og:title" content="Servicios">
@ -32,7 +33,7 @@
<nav class="navbar navbar-expand-md static-top mb-4
navbar-dark
bg-dark
"><div class="container">
"><div class="container-xl">
<!-- This keeps the margins nice -->
<a class="navbar-brand" href="../">
<img src="../assets/img/educatic_logo_w.svg" alt="EDUCATIC" id="logo" class="d-inline-block align-top"></a>
@ -69,12 +70,14 @@ bg-dark
<!-- /.navbar-collapse -->
</div>
<!-- /.container -->
</nav><!-- End of Menubar --><div class="container" id="content" role="main">
</nav><!-- End of Menubar --><div class="container-xl" id="content" role="main">
<div class="body-content">
<!--Body content-->
<div class="row">
<div class="col">
<!--Body content-->
<article class="post-text storypage" itemscope="itemscope" itemtype="http://schema.org/Article"><header style="background-image: url(../assets/img/header.jpg); height: 100px;"><div style="font-size:50px;">
<h1 class="p-name entry-title" itemprop="headline name">
@ -88,13 +91,13 @@ bg-dark
</header><div class="e-content entry-content" itemprop="articleBody text">
<blockquote>
<div id="accordion_04eb54ea58ef4c3b9b75cc634d78d234" class="accordion">
<div id="accordion_300320292d0e45a796d59eeb8d66bf5e" class="accordion">
<div class="row">
<div class="col-md-6">
<div class="col-md-6 col-lg-12 col-xl-6">
<div class="card">
<div class="card-header" id="heading_0_04eb54ea58ef4c3b9b75cc634d78d234">
<div class="card-header" id="heading_0_300320292d0e45a796d59eeb8d66bf5e">
<h2 class="mb-0">
<button class="btn btn-link collapsed text-dark collapsible-link" type="button" data-toggle="collapse" data-target="#collapse_0_04eb54ea58ef4c3b9b75cc634d78d234" aria-expanded="false" aria-controls="collapse_0_04eb54ea58ef4c3b9b75cc634d78d234">
<button class="btn btn-link collapsed text-dark collapsible-link" type="button" data-toggle="collapse" data-target="#collapse_0_300320292d0e45a796d59eeb8d66bf5e" aria-expanded="false" aria-controls="collapse_0_300320292d0e45a796d59eeb8d66bf5e">
<p>
<a href="https://nube.txs.es/" class="btn btn-primary" style="width:220px;">
@ -106,7 +109,7 @@ bg-dark
</button>
</h2>
</div>
<div id="collapse_0_04eb54ea58ef4c3b9b75cc634d78d234" class="collapse" aria-labelledby="heading_0_04eb54ea58ef4c3b9b75cc634d78d234" data-parent="#accordion_04eb54ea58ef4c3b9b75cc634d78d234">
<div id="collapse_0_300320292d0e45a796d59eeb8d66bf5e" class="collapse" aria-labelledby="heading_0_300320292d0e45a796d59eeb8d66bf5e" data-parent="#accordion_300320292d0e45a796d59eeb8d66bf5e">
<div class="card-body">
<p>Almacenamiento de ficheros en tu nube. Compartelos y colabora con otros, sincronízalos con tu ordenador. Calendarios, tareas, contactos, formularios y mucho mas. Tus datos bajo tu control. <a class="reference external" href="https://nextcloud.com/es/">Nextcloud</a> además nos permite integrar la mayoría del resto de servicios bajo su interfaz</p>
@ -114,11 +117,11 @@ bg-dark
</div>
</div>
</div>
<div class="col-md-6">
<div class="col-md-6 col-lg-12 col-xl-6">
<div class="card">
<div class="card-header" id="heading_1_04eb54ea58ef4c3b9b75cc634d78d234">
<div class="card-header" id="heading_1_300320292d0e45a796d59eeb8d66bf5e">
<h2 class="mb-0">
<button class="btn btn-link collapsed text-dark collapsible-link" type="button" data-toggle="collapse" data-target="#collapse_1_04eb54ea58ef4c3b9b75cc634d78d234" aria-expanded="false" aria-controls="collapse_1_04eb54ea58ef4c3b9b75cc634d78d234">
<button class="btn btn-link collapsed text-dark collapsible-link" type="button" data-toggle="collapse" data-target="#collapse_1_300320292d0e45a796d59eeb8d66bf5e" aria-expanded="false" aria-controls="collapse_1_300320292d0e45a796d59eeb8d66bf5e">
<p>
<a href="https://buzon.txs.es/" class="btn btn-primary" style="width:220px;">
@ -130,7 +133,7 @@ bg-dark
</button>
</h2>
</div>
<div id="collapse_1_04eb54ea58ef4c3b9b75cc634d78d234" class="collapse" aria-labelledby="heading_1_04eb54ea58ef4c3b9b75cc634d78d234" data-parent="#accordion_04eb54ea58ef4c3b9b75cc634d78d234">
<div id="collapse_1_300320292d0e45a796d59eeb8d66bf5e" class="collapse" aria-labelledby="heading_1_300320292d0e45a796d59eeb8d66bf5e" data-parent="#accordion_300320292d0e45a796d59eeb8d66bf5e">
<div class="card-body">
<p>Servicio de correo electronico bajo dominio @txs.es, seguro y libre de rastreos. Accesible mediante cliente IMAP o usando nuestra interface web, pudiendo agregar otras de tus cuentas</p>
@ -140,11 +143,11 @@ bg-dark
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="col-md-6 col-lg-12 col-xl-6">
<div class="card">
<div class="card-header" id="heading_2_04eb54ea58ef4c3b9b75cc634d78d234">
<div class="card-header" id="heading_2_300320292d0e45a796d59eeb8d66bf5e">
<h2 class="mb-0">
<button class="btn btn-link collapsed text-dark collapsible-link" type="button" data-toggle="collapse" data-target="#collapse_2_04eb54ea58ef4c3b9b75cc634d78d234" aria-expanded="false" aria-controls="collapse_2_04eb54ea58ef4c3b9b75cc634d78d234">
<button class="btn btn-link collapsed text-dark collapsible-link" type="button" data-toggle="collapse" data-target="#collapse_2_300320292d0e45a796d59eeb8d66bf5e" aria-expanded="false" aria-controls="collapse_2_300320292d0e45a796d59eeb8d66bf5e">
<p>
<a href="https://txs.es:5443/conversejs/" class="btn btn-primary" style="width:220px;">
@ -156,7 +159,7 @@ bg-dark
</button>
</h2>
</div>
<div id="collapse_2_04eb54ea58ef4c3b9b75cc634d78d234" class="collapse" aria-labelledby="heading_2_04eb54ea58ef4c3b9b75cc634d78d234" data-parent="#accordion_04eb54ea58ef4c3b9b75cc634d78d234">
<div id="collapse_2_300320292d0e45a796d59eeb8d66bf5e" class="collapse" aria-labelledby="heading_2_300320292d0e45a796d59eeb8d66bf5e" data-parent="#accordion_300320292d0e45a796d59eeb8d66bf5e">
<div class="card-body">
<p>Mensajería instantánea descentralizada bajo <a class="reference external" href="../xmpp/">protocolo XMPP</a> y dominio @txs.es, flexible y privado. Accesible también usando nuestra interface web</p>
@ -164,11 +167,11 @@ bg-dark
</div>
</div>
</div>
<div class="col-md-6">
<div class="col-md-6 col-lg-12 col-xl-6">
<div class="card">
<div class="card-header" id="heading_3_04eb54ea58ef4c3b9b75cc634d78d234">
<div class="card-header" id="heading_3_300320292d0e45a796d59eeb8d66bf5e">
<h2 class="mb-0">
<button class="btn btn-link collapsed text-dark collapsible-link" type="button" data-toggle="collapse" data-target="#collapse_3_04eb54ea58ef4c3b9b75cc634d78d234" aria-expanded="false" aria-controls="collapse_3_04eb54ea58ef4c3b9b75cc634d78d234">
<button class="btn btn-link collapsed text-dark collapsible-link" type="button" data-toggle="collapse" data-target="#collapse_3_300320292d0e45a796d59eeb8d66bf5e" aria-expanded="false" aria-controls="collapse_3_300320292d0e45a796d59eeb8d66bf5e">
<p>
<a href="https://nube.txs.es/apps/bbb/" class="btn btn-primary" style="width:220px;">
@ -180,7 +183,7 @@ bg-dark
</button>
</h2>
</div>
<div id="collapse_3_04eb54ea58ef4c3b9b75cc634d78d234" class="collapse" aria-labelledby="heading_3_04eb54ea58ef4c3b9b75cc634d78d234" data-parent="#accordion_04eb54ea58ef4c3b9b75cc634d78d234">
<div id="collapse_3_300320292d0e45a796d59eeb8d66bf5e" class="collapse" aria-labelledby="heading_3_300320292d0e45a796d59eeb8d66bf5e" data-parent="#accordion_300320292d0e45a796d59eeb8d66bf5e">
<div class="card-body">
<p>Videonferencias mediante <a class="reference external" href="https://bigbluebutton.org/">BigBlueButton</a>, herramienta especialmente orientada al aprendizaje en línea. Permite compartir audio, vídeo, diapositivas, pizarra, notas, chat y pantalla en tiempo real. Encuestas, salas de grupos, grabación de sesiones, evaluación y mucho mas</p>
@ -190,11 +193,11 @@ bg-dark
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="col-md-6 col-lg-12 col-xl-6">
<div class="card">
<div class="card-header" id="heading_4_04eb54ea58ef4c3b9b75cc634d78d234">
<div class="card-header" id="heading_4_300320292d0e45a796d59eeb8d66bf5e">
<h2 class="mb-0">
<button class="btn btn-link collapsed text-dark collapsible-link" type="button" data-toggle="collapse" data-target="#collapse_4_04eb54ea58ef4c3b9b75cc634d78d234" aria-expanded="false" aria-controls="collapse_4_04eb54ea58ef4c3b9b75cc634d78d234">
<button class="btn btn-link collapsed text-dark collapsible-link" type="button" data-toggle="collapse" data-target="#collapse_4_300320292d0e45a796d59eeb8d66bf5e" aria-expanded="false" aria-controls="collapse_4_300320292d0e45a796d59eeb8d66bf5e">
<p>
<a href="https://tuvideo.txs.es/" class="btn btn-primary" style="width:220px;">
@ -206,7 +209,7 @@ bg-dark
</button>
</h2>
</div>
<div id="collapse_4_04eb54ea58ef4c3b9b75cc634d78d234" class="collapse" aria-labelledby="heading_4_04eb54ea58ef4c3b9b75cc634d78d234" data-parent="#accordion_04eb54ea58ef4c3b9b75cc634d78d234">
<div id="collapse_4_300320292d0e45a796d59eeb8d66bf5e" class="collapse" aria-labelledby="heading_4_300320292d0e45a796d59eeb8d66bf5e" data-parent="#accordion_300320292d0e45a796d59eeb8d66bf5e">
<div class="card-body">
<p>Plataforma de vídeos mediante <a class="reference external" href="https://joinpeertube.org/es">PeerTube</a>, comparte tus vídeos en una gran red interconectada, sin rastreos ni publicidad. Con la eficiencia de la tecnología P2P</p>
@ -214,11 +217,11 @@ bg-dark
</div>
</div>
</div>
<div class="col-md-6">
<div class="col-md-6 col-lg-12 col-xl-6">
<div class="card">
<div class="card-header" id="heading_5_04eb54ea58ef4c3b9b75cc634d78d234">
<div class="card-header" id="heading_5_300320292d0e45a796d59eeb8d66bf5e">
<h2 class="mb-0">
<button class="btn btn-link collapsed text-dark collapsible-link" type="button" data-toggle="collapse" data-target="#collapse_5_04eb54ea58ef4c3b9b75cc634d78d234" aria-expanded="false" aria-controls="collapse_5_04eb54ea58ef4c3b9b75cc634d78d234">
<button class="btn btn-link collapsed text-dark collapsible-link" type="button" data-toggle="collapse" data-target="#collapse_5_300320292d0e45a796d59eeb8d66bf5e" aria-expanded="false" aria-controls="collapse_5_300320292d0e45a796d59eeb8d66bf5e">
<p>
<a href="https://txs.es/" class="btn btn-primary" style="width:220px;">
@ -230,7 +233,7 @@ bg-dark
</button>
</h2>
</div>
<div id="collapse_5_04eb54ea58ef4c3b9b75cc634d78d234" class="collapse" aria-labelledby="heading_5_04eb54ea58ef4c3b9b75cc634d78d234" data-parent="#accordion_04eb54ea58ef4c3b9b75cc634d78d234">
<div id="collapse_5_300320292d0e45a796d59eeb8d66bf5e" class="collapse" aria-labelledby="heading_5_300320292d0e45a796d59eeb8d66bf5e" data-parent="#accordion_300320292d0e45a796d59eeb8d66bf5e">
<div class="card-body">
<p>Red social descentralizada bajo dominio @txs.es, enfocada en la privacidad y control del usuario. Sin rastreos ni publicidad dirigida, e interoperable con otras plataformas</p>
@ -240,11 +243,11 @@ bg-dark
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="col-md-6 col-lg-12 col-xl-6">
<div class="card">
<div class="card-header" id="heading_6_04eb54ea58ef4c3b9b75cc634d78d234">
<div class="card-header" id="heading_6_300320292d0e45a796d59eeb8d66bf5e">
<h2 class="mb-0">
<button class="btn btn-link collapsed text-dark collapsible-link" type="button" data-toggle="collapse" data-target="#collapse_6_04eb54ea58ef4c3b9b75cc634d78d234" aria-expanded="false" aria-controls="collapse_6_04eb54ea58ef4c3b9b75cc634d78d234">
<button class="btn btn-link collapsed text-dark collapsible-link" type="button" data-toggle="collapse" data-target="#collapse_6_300320292d0e45a796d59eeb8d66bf5e" aria-expanded="false" aria-controls="collapse_6_300320292d0e45a796d59eeb8d66bf5e">
<p>
<a href="https://git.txs.es/" class="btn btn-primary" style="width:220px;">
@ -256,7 +259,7 @@ bg-dark
</button>
</h2>
</div>
<div id="collapse_6_04eb54ea58ef4c3b9b75cc634d78d234" class="collapse" aria-labelledby="heading_6_04eb54ea58ef4c3b9b75cc634d78d234" data-parent="#accordion_04eb54ea58ef4c3b9b75cc634d78d234">
<div id="collapse_6_300320292d0e45a796d59eeb8d66bf5e" class="collapse" aria-labelledby="heading_6_300320292d0e45a796d59eeb8d66bf5e" data-parent="#accordion_300320292d0e45a796d59eeb8d66bf5e">
<div class="card-body">
<p>Sistema de gestión de versiones Git, gestiona tus proyectos y publica tu código y/o documentos. Registra todos los cambios por los que van pasando tus ficheros y crea una comunidad alrededor de tus proyectos</p>
@ -264,11 +267,11 @@ bg-dark
</div>
</div>
</div>
<div class="col-md-6">
<div class="col-md-6 col-lg-12 col-xl-6">
<div class="card">
<div class="card-header" id="heading_7_04eb54ea58ef4c3b9b75cc634d78d234">
<div class="card-header" id="heading_7_300320292d0e45a796d59eeb8d66bf5e">
<h2 class="mb-0">
<button class="btn btn-link collapsed text-dark collapsible-link" type="button" data-toggle="collapse" data-target="#collapse_7_04eb54ea58ef4c3b9b75cc634d78d234" aria-expanded="false" aria-controls="collapse_7_04eb54ea58ef4c3b9b75cc634d78d234">
<button class="btn btn-link collapsed text-dark collapsible-link" type="button" data-toggle="collapse" data-target="#collapse_7_300320292d0e45a796d59eeb8d66bf5e" aria-expanded="false" aria-controls="collapse_7_300320292d0e45a796d59eeb8d66bf5e">
<p>
<a href="https://eventos.txs.es/" class="btn btn-primary" style="width:220px;">
@ -280,7 +283,7 @@ bg-dark
</button>
</h2>
</div>
<div id="collapse_7_04eb54ea58ef4c3b9b75cc634d78d234" class="collapse" aria-labelledby="heading_7_04eb54ea58ef4c3b9b75cc634d78d234" data-parent="#accordion_04eb54ea58ef4c3b9b75cc634d78d234">
<div id="collapse_7_300320292d0e45a796d59eeb8d66bf5e" class="collapse" aria-labelledby="heading_7_300320292d0e45a796d59eeb8d66bf5e" data-parent="#accordion_300320292d0e45a796d59eeb8d66bf5e">
<div class="card-body">
<p>Plataforma de gestión de eventos mediante <a class="reference external" href="https://gancio.org/">Gancio</a>, herramienta para organizar y promocionar eventos de forma descentralizada y colaborativa</p>
@ -300,8 +303,26 @@ bg-dark
</div>
</article><!--End of body content--><footer id="footer">
© 2020-2025 Educatic
</article><!--End of body content-->
</div>
<div class="col-lg-5 col-xl-4">
<!--Mastodon content-->
<div class="dummy-wrapper-timeline">
<!-- Mastodon Timeline -->
<div id="mt-container" class="mt-container">
<div class="mt-body" role="feed">
<div class="mt-loading-spinner"></div>
</div>
</div>
</div>
<!--End of Mastodon content-->
</div>
<footer id="footer">
© 2020-2025 Educatic
-
<a href="mailto:educatic@txs.es" class="text-dark mx-2" title="Enviar un correo"><i class="fas fa-envelope"></i></a>
<a href="xmpp:educatic-general@conference.txs.es?join" class="text-dark mx-2" title="Canal de mensajería XMPP"><i class="fas fa-comment"></i></a>
@ -313,14 +334,29 @@ bg-dark
Generado con <a href="https://getnikola.com" rel="nofollow">Nikola</a>
</footer>
</footer>
</div>
</div>
</div>
<script src="../assets/js/all-nocdn.js"></script><script>
<script src="../assets/js/all-nocdn.js"></script><script src="../assets/js/mastodon-timeline.umd.js"></script><script>
const myTimeline = new MastodonTimeline.Init({
instanceUrl: "https://txs.es",
timelineType: "profile",
userId: "44",
profileName: "@EDUCATIC",
dateFormatLocale: "es",
btnSeeMore: "Ver mas publicaciones en Mastodon",
btnReload: "Recargar",
maxNbPostFetch: "5",
maxNbPostShow: "5",
});
</script><script>
baguetteBox.run('div#content', {
ignoreClass: 'islink',
captions: function(element){var i=element.getElementsByTagName('img')[0];return i===undefined?'':i.alt;}});

View File

@ -11,7 +11,7 @@
</url>
<url>
<loc>https://educatic.txs.es/archive.html</loc>
<lastmod>2025-08-14T16:39:00Z</lastmod>
<lastmod>2025-08-20T18:28:00Z</lastmod>
</url>
<url>
<loc>https://educatic.txs.es/categories/</loc>

View File

@ -7,6 +7,6 @@
http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
<sitemap>
<loc>https://educatic.txs.es/sitemap.xml</loc>
<lastmod>2025-08-15T12:20:00Z</lastmod>
<lastmod>2025-08-20T18:28:00Z</lastmod>
</sitemap>
</sitemapindex>

View File

@ -16,6 +16,7 @@
<link rel="apple-touch-icon" href="../assets/img/apple-touch-icon.png" sizes="180x180">
<link rel="manifest" href="../assets/img/site.webmanifest" sizes="">
<!--[if lt IE 9]><script src="../assets/js/html5.js"></script><![endif]--><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css">
<link href="../assets/css/mastodon-timeline.min.css" rel="stylesheet">
<meta name="author" content="Educatic">
<meta property="og:site_name" content="EDUCATIC">
<meta property="og:title" content="Equipo y colaboraciones">
@ -32,7 +33,7 @@
<nav class="navbar navbar-expand-md static-top mb-4
navbar-dark
bg-dark
"><div class="container">
"><div class="container-xl">
<!-- This keeps the margins nice -->
<a class="navbar-brand" href="../">
<img src="../assets/img/educatic_logo_w.svg" alt="EDUCATIC" id="logo" class="d-inline-block align-top"></a>
@ -69,12 +70,14 @@ bg-dark
<!-- /.navbar-collapse -->
</div>
<!-- /.container -->
</nav><!-- End of Menubar --><div class="container" id="content" role="main">
</nav><!-- End of Menubar --><div class="container-xl" id="content" role="main">
<div class="body-content">
<!--Body content-->
<div class="row">
<div class="col">
<!--Body content-->
<article class="post-text storypage" itemscope="itemscope" itemtype="http://schema.org/Article"><header style="background-image: url(../assets/img/header.jpg); height: 100px;"><div style="font-size:50px;">
<h1 class="p-name entry-title" itemprop="headline name">
@ -132,8 +135,26 @@ bg-dark
</div>
</article><!--End of body content--><footer id="footer">
© 2020-2025 Educatic
</article><!--End of body content-->
</div>
<div class="col-lg-5 col-xl-4">
<!--Mastodon content-->
<div class="dummy-wrapper-timeline">
<!-- Mastodon Timeline -->
<div id="mt-container" class="mt-container">
<div class="mt-body" role="feed">
<div class="mt-loading-spinner"></div>
</div>
</div>
</div>
<!--End of Mastodon content-->
</div>
<footer id="footer">
© 2020-2025 Educatic
-
<a href="mailto:educatic@txs.es" class="text-dark mx-2" title="Enviar un correo"><i class="fas fa-envelope"></i></a>
<a href="xmpp:educatic-general@conference.txs.es?join" class="text-dark mx-2" title="Canal de mensajería XMPP"><i class="fas fa-comment"></i></a>
@ -145,14 +166,29 @@ bg-dark
Generado con <a href="https://getnikola.com" rel="nofollow">Nikola</a>
</footer>
</footer>
</div>
</div>
</div>
<script src="../assets/js/all-nocdn.js"></script><script>
<script src="../assets/js/all-nocdn.js"></script><script src="../assets/js/mastodon-timeline.umd.js"></script><script>
const myTimeline = new MastodonTimeline.Init({
instanceUrl: "https://txs.es",
timelineType: "profile",
userId: "44",
profileName: "@EDUCATIC",
dateFormatLocale: "es",
btnSeeMore: "Ver mas publicaciones en Mastodon",
btnReload: "Recargar",
maxNbPostFetch: "5",
maxNbPostShow: "5",
});
</script><script>
baguetteBox.run('div#content', {
ignoreClass: 'islink',
captions: function(element){var i=element.getElementsByTagName('img')[0];return i===undefined?'':i.alt;}});

View File

@ -16,6 +16,7 @@
<link rel="apple-touch-icon" href="../assets/img/apple-touch-icon.png" sizes="180x180">
<link rel="manifest" href="../assets/img/site.webmanifest" sizes="">
<!--[if lt IE 9]><script src="../assets/js/html5.js"></script><![endif]--><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css">
<link href="../assets/css/mastodon-timeline.min.css" rel="stylesheet">
<meta name="author" content="Educatic">
<meta property="og:site_name" content="EDUCATIC">
<meta property="og:title" content="Términos de uso">
@ -32,7 +33,7 @@
<nav class="navbar navbar-expand-md static-top mb-4
navbar-dark
bg-dark
"><div class="container">
"><div class="container-xl">
<!-- This keeps the margins nice -->
<a class="navbar-brand" href="../">
<img src="../assets/img/educatic_logo_w.svg" alt="EDUCATIC" id="logo" class="d-inline-block align-top"></a>
@ -69,12 +70,14 @@ bg-dark
<!-- /.navbar-collapse -->
</div>
<!-- /.container -->
</nav><!-- End of Menubar --><div class="container" id="content" role="main">
</nav><!-- End of Menubar --><div class="container-xl" id="content" role="main">
<div class="body-content">
<!--Body content-->
<div class="row">
<div class="col">
<!--Body content-->
<article class="post-text storypage" itemscope="itemscope" itemtype="http://schema.org/Article"><header style="background-image: url(../assets/img/header.jpg); height: 100px;"><div style="font-size:50px;">
<h1 class="p-name entry-title" itemprop="headline name">
@ -113,8 +116,26 @@ bg-dark
</div>
</article><!--End of body content--><footer id="footer">
© 2020-2025 Educatic
</article><!--End of body content-->
</div>
<div class="col-lg-5 col-xl-4">
<!--Mastodon content-->
<div class="dummy-wrapper-timeline">
<!-- Mastodon Timeline -->
<div id="mt-container" class="mt-container">
<div class="mt-body" role="feed">
<div class="mt-loading-spinner"></div>
</div>
</div>
</div>
<!--End of Mastodon content-->
</div>
<footer id="footer">
© 2020-2025 Educatic
-
<a href="mailto:educatic@txs.es" class="text-dark mx-2" title="Enviar un correo"><i class="fas fa-envelope"></i></a>
<a href="xmpp:educatic-general@conference.txs.es?join" class="text-dark mx-2" title="Canal de mensajería XMPP"><i class="fas fa-comment"></i></a>
@ -126,17 +147,101 @@ bg-dark
Generado con <a href="https://getnikola.com" rel="nofollow">Nikola</a>
</footer>
</footer>
</div>
</div>
</div>
<script src="../assets/js/all-nocdn.js"></script><script>
<script src="../assets/js/all-nocdn.js"></script><script src="../assets/js/mastodon-timeline.umd.js"></script><script>
const myTimeline = new MastodonTimeline.Init({
instanceUrl: "https://txs.es",
timelineType: "profile",
userId: "44",
profileName: "@EDUCATIC",
dateFormatLocale: "es",
btnSeeMore: "Ver mas publicaciones en Mastodon",
btnReload: "Recargar",
maxNbPostFetch: "5",
maxNbPostShow: "5",
});
</script><script>
baguetteBox.run('div#content', {
ignoreClass: 'islink',
captions: function(element){var i=element.getElementsByTagName('img')[0];return i===undefined?'':i.alt;}});
</script>
</script><script>(function () {
function submit(ev) {
const form = ev.target;
ev.preventDefault();
const answers = {};
const [,formId] = form.id.split("-");
for (let i = 0; i < form.length; i++) {
var input = form[i];
// extract question id (qid) and answer id (aid)
var [,,qid,,aid] = input.id.split("-");
if ( qid && !(qid in answers) )
answers[qid] = [];
switch (input.type) {
case "checkbox":
case "radio":
if (input.checked)
answers[qid].push(aid);
console.log(input.type, input.id, qid, aid, input.checked);
break;
case "select-one":
case "text":
case "textarea":
case "date":
case "datetime-local":
if (input.value)
answers[qid].push(input.value);
console.log(input.type, input.id, qid, input.value);
break;
default:
console.log("unknown form element type:", input.type);
}
}
const request = new XMLHttpRequest();
request.open("POST", form.action, true);
request.setRequestHeader("OCS-APIRequest", "true");
request.setRequestHeader("Accept", "application/json");
request.setRequestHeader("Content-Type", "application/json");
request.onload = function () {
const message = document.getElementById("form-" + formId + "-messages");
const form = document.getElementById("form-" + formId);
const success = document.getElementById("form-" + formId + "-success");
const response = JSON.parse(this.response);
if (this.status == 200) {
// success
form.style.display = "none";
success.style.display = "block";
} else {
message.innerHTML = '<div class="alert alert-danger" role="alert">' +
this.statusText + "(" + this.status + "): " +
response['ocs']['meta']['message'] +
'</div>';
}
};
request.send(JSON.stringify({'formId': formId, 'answers': answers}));
}
for (let i = 0; i < document.forms.length; i++)
document.forms[i].onsubmit = submit;
})();
</script>
</body>
</html>

View File

@ -16,6 +16,7 @@
<link rel="apple-touch-icon" href="../assets/img/apple-touch-icon.png" sizes="180x180">
<link rel="manifest" href="../assets/img/site.webmanifest" sizes="">
<!--[if lt IE 9]><script src="../assets/js/html5.js"></script><![endif]--><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css">
<link href="../assets/css/mastodon-timeline.min.css" rel="stylesheet">
<meta name="author" content="Educatic">
<meta property="og:site_name" content="EDUCATIC">
<meta property="og:title" content="XMPP EDUCATIC-GENERAL">
@ -32,7 +33,7 @@
<nav class="navbar navbar-expand-md static-top mb-4
navbar-dark
bg-dark
"><div class="container">
"><div class="container-xl">
<!-- This keeps the margins nice -->
<a class="navbar-brand" href="../">
<img src="../assets/img/educatic_logo_w.svg" alt="EDUCATIC" id="logo" class="d-inline-block align-top"></a>
@ -69,12 +70,14 @@ bg-dark
<!-- /.navbar-collapse -->
</div>
<!-- /.container -->
</nav><!-- End of Menubar --><div class="container" id="content" role="main">
</nav><!-- End of Menubar --><div class="container-xl" id="content" role="main">
<div class="body-content">
<!--Body content-->
<div class="row">
<div class="col">
<!--Body content-->
<article class="post-text storypage" itemscope="itemscope" itemtype="http://schema.org/Article"><header style="background-image: url(../assets/img/header.jpg); height: 100px;"><div style="font-size:50px;">
<h1 class="p-name entry-title" itemprop="headline name">
@ -138,8 +141,26 @@ bg-dark
</div>
</article><!--End of body content--><footer id="footer">
© 2020-2025 Educatic
</article><!--End of body content-->
</div>
<div class="col-lg-5 col-xl-4">
<!--Mastodon content-->
<div class="dummy-wrapper-timeline">
<!-- Mastodon Timeline -->
<div id="mt-container" class="mt-container">
<div class="mt-body" role="feed">
<div class="mt-loading-spinner"></div>
</div>
</div>
</div>
<!--End of Mastodon content-->
</div>
<footer id="footer">
© 2020-2025 Educatic
-
<a href="mailto:educatic@txs.es" class="text-dark mx-2" title="Enviar un correo"><i class="fas fa-envelope"></i></a>
<a href="xmpp:educatic-general@conference.txs.es?join" class="text-dark mx-2" title="Canal de mensajería XMPP"><i class="fas fa-comment"></i></a>
@ -151,17 +172,101 @@ bg-dark
Generado con <a href="https://getnikola.com" rel="nofollow">Nikola</a>
</footer>
</footer>
</div>
</div>
</div>
<script src="../assets/js/all-nocdn.js"></script><script>
<script src="../assets/js/all-nocdn.js"></script><script src="../assets/js/mastodon-timeline.umd.js"></script><script>
const myTimeline = new MastodonTimeline.Init({
instanceUrl: "https://txs.es",
timelineType: "profile",
userId: "44",
profileName: "@EDUCATIC",
dateFormatLocale: "es",
btnSeeMore: "Ver mas publicaciones en Mastodon",
btnReload: "Recargar",
maxNbPostFetch: "5",
maxNbPostShow: "5",
});
</script><script>
baguetteBox.run('div#content', {
ignoreClass: 'islink',
captions: function(element){var i=element.getElementsByTagName('img')[0];return i===undefined?'':i.alt;}});
</script>
</script><script>(function () {
function submit(ev) {
const form = ev.target;
ev.preventDefault();
const answers = {};
const [,formId] = form.id.split("-");
for (let i = 0; i < form.length; i++) {
var input = form[i];
// extract question id (qid) and answer id (aid)
var [,,qid,,aid] = input.id.split("-");
if ( qid && !(qid in answers) )
answers[qid] = [];
switch (input.type) {
case "checkbox":
case "radio":
if (input.checked)
answers[qid].push(aid);
console.log(input.type, input.id, qid, aid, input.checked);
break;
case "select-one":
case "text":
case "textarea":
case "date":
case "datetime-local":
if (input.value)
answers[qid].push(input.value);
console.log(input.type, input.id, qid, input.value);
break;
default:
console.log("unknown form element type:", input.type);
}
}
const request = new XMLHttpRequest();
request.open("POST", form.action, true);
request.setRequestHeader("OCS-APIRequest", "true");
request.setRequestHeader("Accept", "application/json");
request.setRequestHeader("Content-Type", "application/json");
request.onload = function () {
const message = document.getElementById("form-" + formId + "-messages");
const form = document.getElementById("form-" + formId);
const success = document.getElementById("form-" + formId + "-success");
const response = JSON.parse(this.response);
if (this.status == 200) {
// success
form.style.display = "none";
success.style.display = "block";
} else {
message.innerHTML = '<div class="alert alert-danger" role="alert">' +
this.statusText + "(" + this.status + "): " +
response['ocs']['meta']['message'] +
'</div>';
}
};
request.send(JSON.stringify({'formId': formId, 'answers': answers}));
}
for (let i = 0; i < document.forms.length; i++)
document.forms[i].onsubmit = submit;
})();
</script>
</body>
</html>