TYPO3 v15 dev-main snapshot ()

This commit is contained in:
2026-08-10 22:31:31 +02:00
commit 3e43c11539
407 changed files with 51272 additions and 0 deletions
@@ -0,0 +1,13 @@
/*
* This file is part of the TYPO3 CMS project.
*
* It is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License, either version 2
* of the License, or any later version.
*
* For the full copyright and license information, please read the
* LICENSE.txt file that was distributed with this source code.
*
* The TYPO3 project - inspiring people to share!
*/
import d from"@typo3/backend/modal.js";import l from"@typo3/backend/notification.js";import c from"@typo3/core/ajax/ajax-request.js";import o from"@typo3/install/router.js";import h from"@typo3/install/module/password-strength.js";import{AbstractInteractableModule as g}from"@typo3/install/module/abstract-interactable-module.js";import u from"@typo3/core/event/regular-event.js";var r;(function(i){i.changeButton=".t3js-changeInstallToolPassword-change"})(r||(r={}));class w extends g{initialize(s){super.initialize(s),this.getData(),new u("click",t=>{t.preventDefault(),this.change()}).delegateTo(s,r.changeButton)}getData(){const s=this.getModalBody();new c(o.getUrl("changeInstallToolPasswordGetData")).get({cache:"no-cache"}).then(async t=>{const e=await t.resolve();e.success===!0?(s.innerHTML=e.html,h.initialize(s.querySelector(".t3-install-form-password-strength")),d.setButtons(e.buttons)):l.error("Something went wrong","The request was not processed successfully. Please check the browser's console and TYPO3's log.")},t=>{o.handleAjaxError(t,s)})}change(){this.setModalButtonsState(!1);const s=this.getModalBody(),t=this.getModuleContent().dataset.installToolToken;new c(o.getUrl()).post({install:{action:"changeInstallToolPassword",token:t,password:this.findInModal(".t3js-changeInstallToolPassword-password").value,passwordCheck:this.findInModal(".t3js-changeInstallToolPassword-password-check").value}}).then(async e=>{const a=await e.resolve();a.success===!0&&Array.isArray(a.status)?a.status.forEach(n=>{l.showMessage(n.title,n.message,n.severity)}):l.error("Something went wrong","The request was not processed successfully. Please check the browser's console and TYPO3's log.")},e=>{o.handleAjaxError(e,s)}).finally(()=>{this.findInModal(".t3js-changeInstallToolPassword-password").value="",this.findInModal(".t3js-changeInstallToolPassword-password-check").value="",this.setModalButtonsState(!0)})}}var f=new w;export{f as default};
@@ -0,0 +1,13 @@
/*
* This file is part of the TYPO3 CMS project.
*
* It is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License, either version 2
* of the License, or any later version.
*
* For the full copyright and license information, please read the
* LICENSE.txt file that was distributed with this source code.
*
* The TYPO3 project - inspiring people to share!
*/
import{Collapse as h}from"bootstrap";import"@typo3/install/renderable/wrap-group.js";import"@typo3/install/renderable/offset-group.js";import{AbstractInteractableModule as w}from"@typo3/install/module/abstract-interactable-module.js";import g from"@typo3/backend/module-menu.js";import u from"@typo3/backend/notification.js";import p from"@typo3/core/ajax/ajax-request.js";import l from"@typo3/install/router.js";import{topLevelModuleImport as f}from"@typo3/backend/utility/top-level-module-import.js";import c from"@typo3/core/event/regular-event.js";import y from"@typo3/core/event/debounce-event.js";var n;(function(d){d.formListener=".t3js-extensionConfiguration-form",d.searchInput=".t3js-extensionConfiguration-search"})(n||(n={}));class m extends w{initialize(o){super.initialize(o),this.getContent(),new c("keydown",e=>{const t=o.querySelector(n.searchInput);(e.ctrlKey||e.metaKey)&&(e.key==="f"||e.key==="F")&&(e.preventDefault(),t.focus())}).bindTo(o),new y("input",(e,t)=>{const a=t.value;this.search(a)},100).delegateTo(o,n.searchInput),new c("change",(e,t)=>{const a=t.value;this.search(a)}).delegateTo(o,n.searchInput),new c("submit",(e,t)=>{e.preventDefault(),this.write(t)}).delegateTo(o,n.formListener)}search(o){this.currentModal.querySelectorAll(".search-item").forEach(e=>{o===""||e.textContent.toLowerCase().trim().includes(o.toLowerCase())?(e.classList.add("searchhit"),e.classList.remove("hidden")):(e.classList.remove("searchhit"),e.classList.add("hidden"))}),this.currentModal.querySelectorAll(".searchhit").forEach(e=>{h.getOrCreateInstance(e).show()})}getContent(){const o=this.getModalBody();new p(l.getUrl("extensionConfigurationGetContent")).get({cache:"no-cache"}).then(async e=>{const t=await e.resolve();t.success===!0&&(o.innerHTML=t.html,this.initializeWrap(),this.initializeColorPicker())},e=>{l.handleAjaxError(e,o)})}initializeColorPicker(){window.location!==window.parent.location?f("@typo3/backend/color-picker.js"):import("@typo3/backend/color-picker.js")}write(o){const e=this.getModalBody(),t=this.getModuleContent().dataset.extensionConfigurationWriteToken,a={};for(const[i,s]of new FormData(o))a[i]=s.toString();new p(l.getUrl()).post({install:{token:t,action:"extensionConfigurationWrite",extensionKey:o.dataset.extensionKey,extensionConfiguration:a}}).then(async i=>{const s=await i.resolve();s.success===!0&&Array.isArray(s.status)?(s.status.forEach(r=>{u.showMessage(r.title,r.message,r.severity)}),document.body.dataset.context==="backend"&&g.App.refreshMenu()):u.error("Something went wrong","The request was not processed successfully. Please check the browser's console and TYPO3's log.")},i=>{l.handleAjaxError(i,e)})}initializeWrap(){window.location!==window.parent.location&&(f("@typo3/install/renderable/wrap-group.js"),f("@typo3/install/renderable/offset-group.js")),this.currentModal.querySelectorAll(".t3js-emconf-offset").forEach(e=>{const t=e.parentElement;e.setAttribute("data-offsetfield-x","#"+e.id+"_offset_x"),e.setAttribute("data-offsetfield-y","#"+e.id+"_offset_y"),e.classList.add("hidden");const a=t.ownerDocument.createElement("typo3-install-offset-group");a.offsetId=e.id,a.values=e.value.split(","),t.appendChild(a),new c("keyup",(i,s)=>{const r=t.querySelector(s.dataset.target);r.value=t.querySelector(r.dataset.offsetfieldX).value+","+t.querySelector(r.dataset.offsetfieldY).value}).delegateTo(t,".t3js-emconf-offsetfield")}),this.currentModal.querySelectorAll(".t3js-emconf-wrap").forEach(e=>{const t=e.parentElement;e.setAttribute("data-wrapfield-start","#"+e.id+"_wrap_start"),e.setAttribute("data-wrapfield-end","#"+e.id+"_wrap_end"),e.classList.add("hidden");const a=t.ownerDocument.createElement("typo3-install-wrap-group");a.wrapId=e.id,a.values=e.value.split("|"),t.appendChild(a),new c("keyup",(i,s)=>{const r=t.querySelector(s.dataset.target);r.value=t.querySelector(r.dataset.wrapfieldStart).value+"|"+t.querySelector(r.dataset.wrapfieldEnd).value}).delegateTo(t,".t3js-emconf-wrapfield")})}}var v=new m;export{v as default};
@@ -0,0 +1,13 @@
/*
* This file is part of the TYPO3 CMS project.
*
* It is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License, either version 2
* of the License, or any later version.
*
* For the full copyright and license information, please read the
* LICENSE.txt file that was distributed with this source code.
*
* The TYPO3 project - inspiring people to share!
*/
import{AbstractInteractableModule as h}from"@typo3/install/module/abstract-interactable-module.js";import d from"@typo3/backend/modal.js";import i from"@typo3/backend/notification.js";import u from"@typo3/core/ajax/ajax-request.js";import n from"@typo3/install/router.js";import g from"@typo3/core/event/regular-event.js";var l;(function(c){c.saveTrigger=".t3js-features-save"})(l||(l={}));class m extends h{initialize(t){super.initialize(t),this.getContent(),new g("click",s=>{s.preventDefault(),this.save()}).delegateTo(t,l.saveTrigger)}getContent(){const t=this.getModalBody();new u(n.getUrl("featuresGetContent")).get({cache:"no-cache"}).then(async s=>{const e=await s.resolve();e.success===!0&&e.html!=="undefined"&&e.html.length>0?(t.innerHTML=e.html,d.setButtons(e.buttons)):i.error("Something went wrong","The request was not processed successfully. Please check the browser's console and TYPO3's log.")},s=>{n.handleAjaxError(s,t)})}save(){this.setModalButtonsState(!1);const t=this.getModalBody(),s=this.getModuleContent().dataset.featuresSaveToken,e={},f=new FormData(this.findInModal("form"));for(const[o,a]of f)e[o]=a.toString();e["install[action]"]="featuresSave",e["install[token]"]=s,new u(n.getUrl()).post(e).then(async o=>{const a=await o.resolve();a.success===!0&&Array.isArray(a.status)?(a.status.forEach(r=>{i.showMessage(r.title,r.message,r.severity)}),this.getContent()):i.error("Something went wrong","The request was not processed successfully. Please check the browser's console and TYPO3's log.")},o=>{n.handleAjaxError(o,t)}).finally(()=>{this.setModalButtonsState(!0)})}}var w=new m;export{w as default};
@@ -0,0 +1,13 @@
/*
* This file is part of the TYPO3 CMS project.
*
* It is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License, either version 2
* of the License, or any later version.
*
* For the full copyright and license information, please read the
* LICENSE.txt file that was distributed with this source code.
*
* The TYPO3 project - inspiring people to share!
*/
import{Collapse as w}from"bootstrap";import{AbstractInteractableModule as A}from"@typo3/install/module/abstract-interactable-module.js";import C from"@typo3/backend/modal.js";import m from"@typo3/backend/notification.js";import v from"@typo3/core/ajax/ajax-request.js";import h from"@typo3/install/router.js";import f from"@typo3/core/event/regular-event.js";var l;(function(n){n.item=".t3js-localConfiguration-item",n.toggleAllTrigger=".t3js-localConfiguration-toggleAll",n.writeTrigger=".t3js-localConfiguration-write",n.searchTrigger=".t3js-localConfiguration-search",n.createRowTrigger=".t3js-localConfiguration-createRow",n.removeRowTrigger=".t3js-localConfiguration-removeRow",n.configurationItem=".t3js-localConfiguration-configuration-item"})(l||(l={}));class T extends A{constructor(){super(...arguments),this.toggleAll=!1}initialize(r){super.initialize(r),this.getContent(),new f("click",e=>{e.preventDefault(),this.write()}).delegateTo(r,l.writeTrigger),new f("click",()=>{const e=this.getModalBody(),o=e.querySelectorAll(".panel-collapse");this.toggleAll=!this.toggleAll;const a=this.toggleAll?"show":"hide";o.forEach(i=>{const t=e.querySelector(`[data-bs-target="#${i.id}"]`);t&&t.classList.toggle("collapsed",!this.toggleAll),w.getOrCreateInstance(i)[a]()})}).delegateTo(r,l.toggleAllTrigger),new f("keydown",e=>{const o=r.querySelector(l.searchTrigger);(e.ctrlKey||e.metaKey)&&(e.key==="f"||e.key==="F")&&(e.preventDefault(),o.focus())}).bindTo(r),new f("input",(e,o)=>{const a=o.value;this.search(a)}).delegateTo(r,l.searchTrigger),new f("change",(e,o)=>{const a=o.value;this.search(a)}).delegateTo(r,l.searchTrigger),new f("click",(e,o)=>{e.preventDefault(),o.closest(l.configurationItem)?.remove()}).delegateTo(r,l.removeRowTrigger),new f("click",(e,o)=>{e.preventDefault();const a=o.closest(".t3js-configuration-list");if(a===null)return;const i=g=>{const c=a.querySelectorAll(g);return c.item(c.length-1)},t=a.querySelectorAll(l.configurationItem);for(const g of t){const c=g.querySelectorAll('input[type="text"]');let d,p;if(a.dataset.type==="map")d=c.item(0).value.trim(),p=c.item(1).value.trim();else if(a.dataset.type==="element-list")d=void 0,p=c[0].value.trim();else return;if(d===""||p===""){for(const y of c)if(y.value===""){y.focus();return}}}const s=a.querySelector("#"+a.dataset.namespace).content.cloneNode(!0);a.querySelector(".configuration-map-item-collection").append(s),i(l.configurationItem).querySelector('input[type="text"]')?.focus()}).delegateTo(r,l.createRowTrigger)}search(r){this.currentModal.querySelectorAll(l.item).forEach(e=>{e.textContent.toLowerCase().trim().includes(r.toLowerCase())?(e.classList.remove("hidden"),e.classList.add("searchhit")):(e.classList.remove("searchhit"),e.classList.add("hidden"))}),this.currentModal.querySelectorAll(".searchhit").forEach(e=>{const o=e.closest(".panel-collapse");w.getOrCreateInstance(o).show()})}getContent(){const r=this.getModalBody();new v(h.getUrl("localConfigurationGetContent")).get({cache:"no-cache"}).then(async e=>{const o=await e.resolve();o.success===!0&&(r.innerHTML=o.html,C.setButtons(o.buttons))},e=>{h.handleAjaxError(e,r)})}write(){this.setModalButtonsState(!1);const r=this.getModalBody(),e=this.getModuleContent().dataset.localConfigurationWriteToken,o={},a={},i={};this.currentModal.querySelectorAll(".t3js-localConfiguration-pathValue").forEach(t=>{if(t.type==="checkbox")t.checked?o[t.dataset.path]="1":o[t.dataset.path]="0";else if(t.dataset.valuetype==="map"||t.dataset.valuetype==="element-list"){if(t.dataset.path.includes("/key[]")&&t.value!==""){const s=t.dataset.path.replace("/key[]","");a[s]===void 0&&(a[s]=[]),a[s].push(t.value)}else if(t.dataset.path.includes("/value[]")&&t.value!==""){const s=t.dataset.path.replace("/value[]","");i[s]===void 0&&(i[s]=[]),i[s].push(t.value)}}else o[t.dataset.path]=t.value});for(const t in i)if(Object.prototype.hasOwnProperty.call(i,t)){o[t]===void 0&&(o[t]={});const s=o[t];i[t].forEach((u,g)=>{if(u!=="")if(a[t]&&a[t][g]!==void 0&&a[t][g]!==""){const c=a[t][g];s[c]=u}else s[g]=u})}new v(h.getUrl()).post({install:{action:"localConfigurationWrite",token:e,configurationValues:o}}).then(async t=>{const s=await t.resolve();s.success===!0&&Array.isArray(s.status)?s.status.forEach(u=>{m.showMessage(u.title,u.message,u.severity)}):m.error("Something went wrong","The request was not processed successfully. Please check the browser's console and TYPO3's log.")},t=>{h.handleAjaxError(t,r)}).finally(()=>{this.setModalButtonsState(!0)})}}var S=new T;export{S as default};
@@ -0,0 +1,13 @@
/*
* This file is part of the TYPO3 CMS project.
*
* It is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License, either version 2
* of the License, or any later version.
*
* For the full copyright and license information, please read the
* LICENSE.txt file that was distributed with this source code.
*
* The TYPO3 project - inspiring people to share!
*/
import"bootstrap";import{AbstractInteractableModule as d}from"@typo3/install/module/abstract-interactable-module.js";import m from"@typo3/backend/modal.js";import c from"@typo3/backend/notification.js";import u from"@typo3/core/ajax/ajax-request.js";import o from"@typo3/install/router.js";import h from"@typo3/core/event/regular-event.js";var l;(function(i){i.activateTrigger=".t3js-presets-activate",i.imageExecutable=".t3js-presets-image-executable",i.imageExecutableTrigger=".t3js-presets-image-executable-trigger"})(l||(l={}));class p extends d{initialize(t){super.initialize(t),this.getContent(),new h("click",s=>{s.preventDefault(),this.getCustomImagePathContent()}).delegateTo(t,l.imageExecutableTrigger),new h("click",s=>{s.preventDefault(),this.activate()}).delegateTo(t,l.activateTrigger),t.querySelectorAll(".t3js-custom-preset").forEach(s=>{new h("input",(e,a)=>{t.querySelector(`#${a.dataset.radio}`).checked=!0}).delegateTo(s,".t3js-custom-preset")})}getContent(){const t=this.getModalBody();new u(o.getUrl("presetsGetContent")).get({cache:"no-cache"}).then(async s=>{const e=await s.resolve();e.success===!0&&e.html!=="undefined"&&e.html.length>0?(t.innerHTML=e.html,m.setButtons(e.buttons)):c.error("Something went wrong","The request was not processed successfully. Please check the browser's console and TYPO3's log.")},s=>{o.handleAjaxError(s,t)})}getCustomImagePathContent(){const t=this.getModalBody(),s=this.getModuleContent().dataset.presetsContentToken;new u(o.getUrl()).post({install:{token:s,action:"presetsGetContent",values:{Image:{additionalSearchPath:this.findInModal(l.imageExecutable).value}}}}).then(async e=>{const a=await e.resolve();a.success===!0&&a.html!=="undefined"&&a.html.length>0?t.innerHTML=a.html:c.error("Something went wrong","The request was not processed successfully. Please check the browser's console and TYPO3's log.")},e=>{o.handleAjaxError(e,t)})}activate(){this.setModalButtonsState(!1);const t=this.getModalBody(),s=this.getModuleContent().dataset.presetsActivateToken,e={},a=new FormData(this.findInModal("form"));for(const[n,r]of a)e[n]=r.toString();e["install[action]"]="presetsActivate",e["install[token]"]=s,new u(o.getUrl()).post(e).then(async n=>{const r=await n.resolve();r.success===!0&&Array.isArray(r.status)?r.status.forEach(g=>{c.showMessage(g.title,g.message,g.severity)}):c.error("Something went wrong","The request was not processed successfully. Please check the browser's console and TYPO3's log.")},n=>{o.handleAjaxError(n,t)}).finally(()=>{this.setModalButtonsState(!0)})}}var f=new p;export{f as default};
@@ -0,0 +1,13 @@
/*
* This file is part of the TYPO3 CMS project.
*
* It is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License, either version 2
* of the License, or any later version.
*
* For the full copyright and license information, please read the
* LICENSE.txt file that was distributed with this source code.
*
* The TYPO3 project - inspiring people to share!
*/
import"bootstrap";import{AbstractInteractableModule as d}from"@typo3/install/module/abstract-interactable-module.js";import m from"@typo3/backend/modal.js";import c from"@typo3/backend/notification.js";import u from"@typo3/core/ajax/ajax-request.js";import a from"@typo3/install/router.js";import h from"@typo3/core/event/regular-event.js";var r;(function(i){i.writeTrigger=".t3js-systemMaintainer-write",i.selectPureField=".t3js-systemMaintainer-select-pure"})(r||(r={}));class g extends d{initialize(e){super.initialize(e),this.loadModuleFrameAgnostic("select-pure").then(()=>{this.getList()}),new h("click",t=>{t.preventDefault(),this.write()}).delegateTo(e,r.writeTrigger)}getList(){const e=this.getModalBody();new u(a.getUrl("systemMaintainerGetList")).get({cache:"no-cache"}).then(async t=>{const s=await t.resolve();s.success===!0&&(e.innerHTML=s.html,m.setButtons(s.buttons))},t=>{a.handleAjaxError(t,e)})}write(){this.setModalButtonsState(!1);const e=this.getModalBody(),t=this.getModuleContent().dataset.systemMaintainerWriteToken,s=this.findInModal(r.selectPureField).values;new u(a.getUrl()).post({install:{users:s,token:t,action:"systemMaintainerWrite"}}).then(async n=>{const o=await n.resolve();o.success===!0?Array.isArray(o.status)&&o.status.forEach(l=>{c.success(l.title,l.message)}):c.error("Something went wrong","The request was not processed successfully. Please check the browser's console and TYPO3's log.")},n=>{a.handleAjaxError(n,e)}).finally(()=>{this.setModalButtonsState(!0)})}}var f=new g;export{f as default};