Commit cdbce4ee authored by Carsten  Rose's avatar Carsten Rose
Browse files

Merge branch 'F9052_codemirror_title_changes' into 'develop'

F9052 CodeMirror changes: 1. header in extern window is sticky- 2....

See merge request !425
parents 2b29501c 4c3c5ea3
Pipeline #6990 passed with stage
in 1 minute and 45 seconds
......@@ -1670,9 +1670,10 @@ class QuickFormQuery {
$html = '';
$beUserLoggedIn = $this->store->getVar(TYPO3_BE_USER, STORE_TYPO3, SANITIZE_ALLOW_ALNUMX);
$pageTitle = $this->store->getVar(TYPO3_PAGE_TITLE,STORE_TYPO3,SANITIZE_ALLOW_ALNUMX);
if ($beUserLoggedIn && $this->inlineReport) {
$html .= $this->buildInlineReport($this->t3data[T3DATA_UID] ?? null, $this->t3data[T3DATA_REPORT_PATH_FILENAME] ?? null,
$this->t3data[T3DATA_BODYTEXT_RAW] ?? '', $this->t3data[T3DATA_HEADER] ?? '');
$this->t3data[T3DATA_BODYTEXT_RAW] ?? '', $this->t3data[T3DATA_HEADER] ?? '', $pageTitle ?? '');
}
$html .= $report->process($this->t3data[T3DATA_BODYTEXT]);
......@@ -1690,7 +1691,7 @@ class QuickFormQuery {
* @throws \CodeException
* @throws \UserFormException
*/
public static function buildInlineReport(?int $uid, ?string $reportPathFileNameFull, string $bodytext, string $header): string {
public static function buildInlineReport(?int $uid, ?string $reportPathFileNameFull, string $bodytext, string $header, string $pageTitle = ''): string {
if ($uid === null) {
return '';
}
......@@ -1698,6 +1699,12 @@ class QuickFormQuery {
$showFormJs = '$("#tt-content-edit-' . $uid . '").toggleClass("hidden")';
$toggleBtn = Support::wrapTag("<a href='#' class='targetEditReport btn-xs btn-info' onclick='$showFormJs' style='float:right;'>", $icon);
if($reportPathFileNameFull !== '' && $reportPathFileNameFull !== null){
$reportPathFileNameFullHtml = "<small>File: '$reportPathFileNameFull'</small>";
}else{
$reportPathFileNameFullHtml = '&nbsp;';
}
$saveBtnAttributes = Support::doAttribute('class', 'btn btn-default') .
Support::doAttribute('id', "tt-content-save-$uid") .
Support::doAttribute('type', 'submit') .
......@@ -1705,8 +1712,8 @@ class QuickFormQuery {
Support::doAttribute('title', 'Save & Reload');
$saveBtnIcon = Support::renderGlyphIcon(GLYPH_ICON_CHECK);
$saveBtn = Support::wrapTag("<button $saveBtnAttributes>", $saveBtnIcon);
$header = "QFQ Page Content '$header'.<br><small>File: '$reportPathFileNameFull'</small>";
$headerBar = Support::wrapTag("<div class='col-md-12 qfq-form-title'>", $header . $saveBtn);
$header = "Page: '$pageTitle' &nbsp; Content (ID): '$header ($uid)'<br>$reportPathFileNameFullHtml";
$headerBar = Support::wrapTag("<div class='col-md-12 qfq-form-title' style='position: sticky;top: 0;z-index: 1000;'>", $header . $saveBtn);
$ttContentCode = Support::htmlEntityEncodeDecode(MODE_ENCODE, $bodytext);
......@@ -1715,7 +1722,6 @@ class QuickFormQuery {
Support::doAttribute('id', "tt-content-code-$uid") .
Support::doAttribute('name', REPORT_INLINE_BODYTEXT) .
Support::doAttribute('class', 'qfq-codemirror') .
Support::doAttribute('rows', 20) .
Support::doAttribute('data-config', $json, true);
$codeBox = Support::wrapTag("<textarea $codeBoxAttributes>", $ttContentCode);
......
......@@ -99,7 +99,7 @@ $(document).ready(function(){
// function to create new window with given content for editing
function newWindow(windowName) {
var w = window.open('',windowName, 'width=900,height=700');
var w = window.open('//' + location.host + location.pathname + '?tt-content=' + windowName,windowName, 'width=900,height=700');
w.document.write(htmlContent);
w.document.close();
}
......@@ -107,12 +107,6 @@ $(document).ready(function(){
// Show same content editor with refreshed data again after save. Control it with the given get parameter. First fetch only needed html content again (form) and open it in same window.
var urlParams = new URLSearchParams(window.location.search);
var ttContentParam = urlParams.get('tt-content');
var pageId = urlParams.get('id');
if(pageId === null){
pageId = '';
}else{
pageId = 'id='+pageId+'&';
}
if(ttContentParam !== null && $(targetEditReportButton).next("#"+ttContentParam)[0] !== undefined){
var formContent = $($(targetEditReportButton).next("#"+ttContentParam)[0].outerHTML);
......@@ -122,23 +116,15 @@ $(document).ready(function(){
// execute changes(post) and reload page with id of tt-content as get parameter. Staying in same window with new content.
$(externWindow).submit(function() {
$.post($(externWindow).attr('action'),$(externWindow).serializeArray());
$('<div style="text-align: right; margin-top: 10px;"><span style="background-color: green;" class="badge badge-success">Saved</span></div>')
.insertAfter('.btn-default')
$('<span style="position:absolute; top:5px; right:5px; background-color: green;" class="badge badge-success">Saved</span>')
.insertBefore('.qfq-form-title>br')
.delay(3000)
.fadeOut(function() {
$(this).remove();
});
if(window.location.search !== '?'+pageId+"tt-content="+$('form').attr('id')){
window.location.href = '//' + location.host + location.pathname + "?" +pageId+ "tt-content=" + $('form').attr('id');
}
return false;
});
// Refresh new window with correct url
if($(externWindow).length !== 0 && window.location.search !== '?'+pageId+"tt-content="+$('form').attr('id')){
window.location.href = '//' + location.host + location.pathname + "?" +pageId+ "tt-content=" + $('form').attr('id');
}
// enable CodeMirror for extern window
$(externWindow).children("[class=qfq-codemirror]").each(
function () {
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment