diff --git a/public/js/components/Cis/Cms/Content.js b/public/js/components/Cis/Cms/Content.js
index 470a0fa62..355add08a 100644
--- a/public/js/components/Cis/Cms/Content.js
+++ b/public/js/components/Cis/Cms/Content.js
@@ -2,6 +2,8 @@ import raum_contentmittitel from './Content_types/Raum_contentmittitel.js'
import general from './Content_types/General.js'
import BsConfirm from "../../Bootstrap/Confirm.js";
import news_content from './Content_types/News_content.js';
+import iframe_content from './Content_types/Iframe_content.js';
+
import ApiCms from '../../../api/factory/cms.js';
export default {
@@ -24,42 +26,23 @@ export default {
raum_contentmittitel,
news_content,
general,
+ iframe_content
},
data() {
return {
+ content_type: null,
content: null,
content_id_internal: this.content_id
};
},
methods: {
fetchContent(){
- return this.$api
+ this.$api
.call(ApiCms.content(this.content_id_internal, this.version, this.sprache, this.sichtbar))
.then(res => {
- this.content = res.data.content;
- this.content_type = res.data.type;
-
- document.querySelectorAll("#cms [data-confirm]").forEach((el) => {
- el.addEventListener("click", (evt) => {
- evt.preventDefault();
- BsConfirm.popup(el.dataset.confirm)
- .then(() => {
- Axios.get(el.href)
- .then((res) => {
- // TODO(chris): check for success then show message and/or reload
- location = location;
- })
- .catch((err) => console.error("ERROR:", err));
- })
- .catch(() => {
- });
- });
- });
- document.querySelectorAll("#cms [data-href]").forEach((el) => {
- el.href = el.dataset.href.replace(
- /^ROOT\//,
- FHC_JS_DATA_STORAGE_OBJECT.app_root
- );
+ this.$nextTick(function() {
+ this.content = res.data.content;
+ this.content_type = res.data.type;
});
});
}
@@ -83,6 +66,8 @@ export default {
return "raum_contentmittitel";
case "news":
return "news_content";
+ case "iframe":
+ return "iframe_content";
default:
return "general";
};
@@ -91,8 +76,6 @@ export default {
created() {
this.fetchContent();
},
- mounted() {
- },
template: /*html*/ `
diff --git a/public/js/components/Cis/Cms/Content_types/Iframe_content.js b/public/js/components/Cis/Cms/Content_types/Iframe_content.js
new file mode 100644
index 000000000..568cfaf03
--- /dev/null
+++ b/public/js/components/Cis/Cms/Content_types/Iframe_content.js
@@ -0,0 +1,31 @@
+import { replaceRelativeLegacyLink } from "../../../../helpers/LegacyLinkReplaceHelper.js";
+
+export default {
+ name: "iframe_content",
+ props: {
+ content: { type: String, required: true }
+ },
+ computed: {
+ srcUrl() {
+ const parser = new DOMParser()
+ const doc = parser.parseFromString(`
${this.content}
`, "text/html");
+ const iframe = doc.querySelector("iframe[src]");
+
+ if (!iframe)
+ return "";
+
+ let url = iframe.getAttribute("src") || "";
+ return replaceRelativeLegacyLink(url);
+ }
+ },
+ template: `
+
+
+
Keine URL gefunden.
+
+ `
+};
diff --git a/system/dbupdate_3.4.php b/system/dbupdate_3.4.php
index 4b52b04c4..9a6c6dbfb 100644
--- a/system/dbupdate_3.4.php
+++ b/system/dbupdate_3.4.php
@@ -77,6 +77,7 @@ require_once('dbupdate_3.4/55614_perm_verwaltetoe.php');
require_once('dbupdate_3.4/25999_C4_dashboard.php');
require_once('dbupdate_3.4/61730_Dashboard_Anpassungen.php');
require_once('dbupdate_3.4/40128_search.php');
+require_once('dbupdate_3.4/63436_cis4_iframe_component.php');
require_once('dbupdate_3.4/60882_lehrfaecherverteilung_favorites.php');
require_once('dbupdate_3.4/66982_berufsschule.php');
diff --git a/system/dbupdate_3.4/63436_cis4_iframe_component.php b/system/dbupdate_3.4/63436_cis4_iframe_component.php
new file mode 100644
index 000000000..a5b3bbf7c
--- /dev/null
+++ b/system/dbupdate_3.4/63436_cis4_iframe_component.php
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
+EOD;
+
+$xslt_xhtml= <<
+
+
+
+
+
+
+
+ Keine URL im Inhalt gefunden.
+
+
+
+
+EOD;
+
+$xslt_xhtml_c4= <<
+
+
+
+
+
+
+
+ Keine URL im Inhalt gefunden.
+
+
+
+
+EOD;
+
+
+if ($result = @$db->db_query("SELECT * FROM campus.tbl_template WHERE template_kurzbz='iframe'"))
+{
+ if ($db->db_num_rows($result) == 0)
+ {
+ $sql= <<db_query($sql))
+ {
+ echo 'campus.tbl_template: ' . $db->db_last_error() . '
';
+ }
+ else
+ {
+ echo ' campus.tbl_template: Template "iframe" hinzugefügt.
';
+ }
+
+ }
+}