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 t from"@typo3/backend/notification.js";import o from"@typo3/core/ajax/ajax-request.js";import n from"@typo3/install/router.js";import{AbstractInlineModule as i}from"@typo3/install/module/abstract-inline-module.js";class c extends i{initialize(r){this.setButtonState(r,!1),new o(n.getUrl("cacheClearAll","maintenance")).get({cache:"no-cache"}).then(async s=>{const e=await s.resolve();e.success===!0&&Array.isArray(e.status)?e.status.length>0&&e.status.forEach(a=>{t.success(a.title,a.message)}):t.error("Something went wrong clearing caches")},()=>{t.error("Clearing caches failed","Clearing caches went wrong on the server side. Check the system for broken extensions or missing database tables and try again. Also ensure you are properly authenticated and the server does not report specific PHP parse errors or JavaScript errors are listed in the browser console.")}).finally(()=>{this.setButtonState(r,!0)})}}var l=new c;export{l 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 T}from"@typo3/install/module/abstract-interactable-module.js";import h from"@typo3/backend/modal.js";import c 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 t;(function(l){l.clearTrigger=".t3js-clearTables-clear",l.statsTrigger=".t3js-clearTables-stats",l.statContainer=".t3js-clearTables-stat-container",l.statTemplate="#t3js-clearTables-stat-template",l.statDescription=".t3js-clearTables-stat-description",l.statRows=".t3js-clearTables-stat-rows",l.statName=".t3js-clearTables-stat-name"})(t||(t={}));class b extends T{initialize(e){super.initialize(e),this.getStats(),new g("click",r=>{r.preventDefault(),e.querySelector(t.statContainer).innerHTML="",this.getStats()}).delegateTo(e,t.statsTrigger),new g("click",(r,s)=>{const a=s.closest(t.clearTrigger).dataset.table;r.preventDefault(),this.clear(a)}).delegateTo(e,t.clearTrigger)}getStats(){this.setModalButtonsState(!1);const e=this.getModalBody();new u(n.getUrl("clearTablesStats")).get({cache:"no-cache"}).then(async r=>{const s=await r.resolve();s.success===!0?(e.innerHTML=s.html,h.setButtons(s.buttons),Array.isArray(s.stats)&&s.stats.length>0&&s.stats.forEach(a=>{if(a.rowCount>0){const o=e.querySelector(t.statTemplate).content.cloneNode(!0);o.querySelector(t.statDescription).innerText=a.description,o.querySelector(t.statName).innerText=a.name,o.querySelector(t.statRows).innerText=a.rowCount,o.querySelector(t.clearTrigger).setAttribute("data-table",a.name),e.querySelector(t.statContainer).append(o)}})):c.error("Something went wrong","The request was not processed successfully. Please check the browser's console and TYPO3's log.")},r=>{n.handleAjaxError(r,e)}).finally(()=>{this.setModalButtonsState(!0)})}clear(e){const r=this.getModalBody(),s=this.getModuleContent().dataset.clearTablesClearToken;new u(n.getUrl()).post({install:{action:"clearTablesClear",token:s,table:e}}).then(async a=>{const o=await a.resolve();o.success===!0&&Array.isArray(o.status)?o.status.forEach(i=>{c.success(i.title,i.message)}):c.error("Something went wrong","The request was not processed successfully. Please check the browser's console and TYPO3's log."),this.getStats()},a=>{n.handleAjaxError(a,r)})}}var d=new b;export{d 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 g}from"@typo3/install/module/abstract-interactable-module.js";import y from"@typo3/backend/modal.js";import c from"@typo3/backend/notification.js";import u from"@typo3/core/ajax/ajax-request.js";import n from"@typo3/install/router.js";import p from"@typo3/core/event/regular-event.js";var a;(function(l){l.deleteTrigger=".t3js-clearTypo3temp-delete",l.statContainer=".t3js-clearTypo3temp-stat-container",l.statsTrigger=".t3js-clearTypo3temp-stats",l.statTemplate="#t3js-clearTypo3temp-stat-template",l.statNumberOfFiles=".t3js-clearTypo3temp-stat-numberOfFiles",l.statDirectory=".t3js-clearTypo3temp-stat-directory"})(a||(a={}));class m extends g{initialize(t){super.initialize(t),this.getStats(),new p("click",o=>{o.preventDefault(),t.querySelector(a.statContainer).innerHTML="",this.getStats()}).delegateTo(t,a.statsTrigger),new p("click",(o,e)=>{o.preventDefault();const r=e.dataset.folder,s=e.dataset.storageUid!==void 0?parseInt(e.dataset.storageUid,10):void 0;this.delete(r,s)}).delegateTo(t,a.deleteTrigger)}getStats(){this.setModalButtonsState(!1);const t=this.getModalBody();new u(n.getUrl("clearTypo3tempFilesStats")).get({cache:"no-cache"}).then(async o=>{const e=await o.resolve();e.success===!0?(t.innerHTML=e.html,y.setButtons(e.buttons),Array.isArray(e.stats)&&e.stats.length>0&&e.stats.forEach(r=>{if(r.numberOfFiles>0){const s=t.querySelector(a.statTemplate).content.cloneNode(!0);s.querySelector(a.statNumberOfFiles).innerText=r.numberOfFiles,s.querySelector(a.statDirectory).innerText=r.directory,s.querySelector(a.deleteTrigger).setAttribute("data-folder",r.directory),r.storageUid!==void 0&&s.querySelector(a.deleteTrigger).setAttribute("data-storage-uid",r.storageUid),t.querySelector(a.statContainer).append(s)}})):c.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)})}delete(t,o){const e=this.getModalBody(),r=this.getModuleContent().dataset.clearTypo3tempDeleteToken;new u(n.getUrl()).post({install:{action:"clearTypo3tempFiles",token:r,folder:t,storageUid:o}}).then(async s=>{const i=await s.resolve();i.success===!0&&Array.isArray(i.status)?(i.status.forEach(d=>{c.success(d.title,d.message)}),this.getStats()):c.error("Something went wrong","The request was not processed successfully. Please check the browser's console and TYPO3's log.")},s=>{n.handleAjaxError(s,e)})}}var T=new m;export{T 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 c from"@typo3/backend/modal.js";import l from"@typo3/backend/notification.js";import u from"@typo3/core/ajax/ajax-request.js";import o from"@typo3/install/router.js";import m from"@typo3/install/module/password-strength.js";import{AbstractInteractableModule as h}from"@typo3/install/module/abstract-interactable-module.js";import p from"@typo3/core/event/regular-event.js";var e;(function(t){t.adminCreateButton=".t3js-createAdmin-create",t.adminUserInput=".t3js-createAdmin-user",t.adminRealNameInput=".t3js-createAdmin-realname",t.adminPasswordInput=".t3js-createAdmin-password",t.adminPasswordCheckInput=".t3js-createAdmin-password-check",t.adminEmailInput=".t3js-createAdmin-email",t.adminSysMaintainterInput=".t3js-createAdmin-system-maintainer"})(e||(e={}));class f extends h{initialize(a){super.initialize(a),this.getData(),new p("click",s=>{s.preventDefault(),this.create()}).delegateTo(a,e.adminCreateButton)}getData(){const a=this.getModalBody();new u(o.getUrl("createAdminGetData")).get({cache:"no-cache"}).then(async s=>{const r=await s.resolve();r.success===!0?(a.innerHTML=r.html,m.initialize(a.querySelector(".t3-install-form-password-strength")),c.setButtons(r.buttons)):l.error("Something went wrong","The request was not processed successfully. Please check the browser's console and TYPO3's log.")},s=>{o.handleAjaxError(s,a)})}create(){this.setModalButtonsState(!1);const a=this.getModalBody(),r={install:{action:"createAdmin",token:this.getModuleContent().dataset.createAdminToken,userName:this.findInModal(e.adminUserInput).value,userPassword:this.findInModal(e.adminPasswordInput).value,userPasswordCheck:this.findInModal(e.adminPasswordCheckInput).value,userEmail:this.findInModal(e.adminEmailInput).value,realName:this.findInModal(e.adminRealNameInput).value,userSystemMaintainer:this.findInModal(e.adminSysMaintainterInput).checked?1:0}};this.getModuleContent().querySelectorAll("input").forEach(n=>{n.disabled=!0}),new u(o.getUrl()).post(r).then(async n=>{const i=await n.resolve();i.success===!0&&Array.isArray(i.status)?(i.status.forEach(d=>{l.showMessage(d.title,d.message,d.severity)}),i.userCreated&&(this.findInModal(e.adminUserInput).value="",this.findInModal(e.adminPasswordInput).value="",this.findInModal(e.adminPasswordCheckInput).value="",this.findInModal(e.adminEmailInput).value="",this.findInModal(e.adminSysMaintainterInput).checked=!1)):l.error("Something went wrong","The request was not processed successfully. Please check the browser's console and TYPO3's log.")},n=>{o.handleAjaxError(n,a)}).finally(()=>{this.setModalButtonsState(!0),this.getModuleContent().querySelectorAll("input").forEach(n=>{n.disabled=!1})})}}var w=new f;export{w as default};
File diff suppressed because one or more lines are too long
@@ -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 t from"@typo3/backend/notification.js";import r from"@typo3/core/ajax/ajax-request.js";import n from"@typo3/install/router.js";import{AbstractInlineModule as u}from"@typo3/install/module/abstract-inline-module.js";class i extends u{initialize(s){this.setButtonState(s,!1),new r(n.getUrl("dumpAutoload")).get({cache:"no-cache"}).then(async o=>{const e=await o.resolve();e.success===!0&&Array.isArray(e.status)?e.status.length>0&&e.status.forEach(a=>{t.success(a.message)}):t.error("Something went wrong","The request was not processed successfully. Please check the browser's console and TYPO3's log.")},()=>{t.error("Autoloader not dumped","Dumping autoload files failed for unknown reasons. Check the system for broken extensions and try again.")}).finally(()=>{this.setButtonState(s,!0)})}}var l=new i;export{l as default};
File diff suppressed because one or more lines are too long
@@ -0,0 +1,25 @@
/*
* 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 v}from"@typo3/install/module/abstract-interactable-module.js";import I from"@typo3/backend/modal.js";import k from"@typo3/backend/notification.js";import d from"@typo3/core/ajax/ajax-request.js";import a from"@typo3/install/router.js";import u from"@typo3/core/event/regular-event.js";import"@typo3/backend/element/icon-element.js";var o;(function(r){r.checkButton=".t3js-referenceIndex-check",r.updateButton=".t3js-referenceIndex-update",r.resultContainer=".t3js-referenceIndex-result"})(o||(o={}));class y extends v{initialize(t){super.initialize(t),this.loadContent(),new u("click",e=>{e.preventDefault(),this.check()}).delegateTo(t,o.checkButton),new u("click",e=>{e.preventDefault(),this.update()}).delegateTo(t,o.updateButton)}loadContent(){const t=this.getModalBody();new d(a.getUrl("referenceIndex")).get({cache:"no-cache"}).then(async e=>{const n=await e.resolve();n.success===!0&&n.html!==void 0&&(t.innerHTML=n.html,n.buttons!==void 0&&I.setButtons(n.buttons))},e=>{a.handleAjaxError(e,t)})}check(){this.processReferenceIndex(!0)}update(){this.processReferenceIndex(!1)}processReferenceIndex(t){this.setModalButtonsState(!1);const e=this.getModalBody(),n=e.querySelector(o.resultContainer),f=this.renderProgressBar(n,{label:t?"Checking reference index...":"Updating reference index..."});new d(a.getUrl()).post({install:{action:"referenceIndexUpdate",token:this.getModuleContent().dataset.referenceIndexToken,checkOnly:t?"1":"0"}}).then(async l=>{const s=await l.resolve();if(f.remove(),s.success===!0&&s.result&&n){const c=s.result.errors&&s.result.errors.length>0,h=c?"warning":"success",p=c?"actions-exclamation":"actions-check",m=s.result.resultText||(c?"Issues Found":"Reference index is up to date");let i="";c?i=`<ul class="list-unstyled">${s.result.errors.map(g=>`<li>${g}</li>`).join("")}</ul>`:i="Index integrity is perfect.";const x=`
<div class="callout callout-${h}">
<div class="callout-icon">
<span class="icon-emphasized">
<typo3-backend-icon identifier="${p}" size="small"></typo3-backend-icon>
</span>
</div>
<div class="callout-content">
<div class="callout-title">${m}</div>
<div class="callout-body">${i}</div>
</div>
</div>
`;n.innerHTML=x}else k.error("Something went wrong","The request was not processed successfully. Please check the browser's console and TYPO3's log.")},l=>{a.handleAjaxError(l,e)}).finally(()=>{this.setModalButtonsState(!0)})}}var w=new y;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 o from"@typo3/core/ajax/ajax-request.js";import{AbstractInlineModule as n}from"@typo3/install/module/abstract-inline-module.js";import s from"@typo3/backend/notification.js";import c from"@typo3/install/router.js";class i extends n{initialize(t){this.setButtonState(t,!1),new o(c.getUrl("resetBackendUserUc")).get({cache:"no-cache"}).then(async a=>{const e=await a.resolve();e.success===!0&&Array.isArray(e.status)?e.status.length>0&&e.status.forEach(r=>{s.success(r.title,r.message)}):s.error("Something went wrong","The request was not processed successfully. Please check the browser's console and TYPO3's log.")},()=>{s.error("Reset preferences of all backend users failed","Resetting preferences of all backend users failed for an unknown reason. Please check your server's logs for further investigation.")}).finally(()=>{this.setButtonState(t,!0)})}}var l=new i;export{l as default};