From 9954be1fc188f0968ef33a0f989bc9c2d265ee15 Mon Sep 17 00:00:00 2001 From: "Hahn Axel (hahn)" <axel.hahn@unibe.ch> Date: Wed, 28 Feb 2024 14:35:53 +0100 Subject: [PATCH] remove foreman; update replacements --- config/lang/de-de.json | 2 + config/lang/en-en.json | 2 + public_html/deployment/main.css | 4 ++ public_html/deployment/pages/act_phase.php | 72 +++++++++++++++++++--- 4 files changed, 73 insertions(+), 7 deletions(-) diff --git a/config/lang/de-de.json b/config/lang/de-de.json index b2ea6e6f..e22cebcd 100644 --- a/config/lang/de-de.json +++ b/config/lang/de-de.json @@ -341,6 +341,8 @@ "replacement-fields": "erkannte Platzhalter:", "replacement-fields-not-found": "Es wurden keine Platzhalter im Format <em>@replace["Name"]</em> im Template gefunden.", "replacement-targetfile": "Ziel-Datei", + "replacement-none": "Keine Ersetzungen gefunden.", + "replacement-no-templatefiles": "Keine Templatefiles für diese Phase gefunden.", "replacements": "Ersetzungen mit Template-Dateien", "repositoryinfos": "Quell-Repository", "repository-access-browser": "Browserzugriff auf das Repo", diff --git a/config/lang/en-en.json b/config/lang/en-en.json index 7bd0875a..3c86ce27 100644 --- a/config/lang/en-en.json +++ b/config/lang/en-en.json @@ -343,6 +343,8 @@ "replacement-fields-not-found": "No placeholder in the syntax <em>@replace["name"]</em> were found in the template.", "replacement-targetfile": "Target file", "replacements": "Replacements in template files", + "replacement-none": "No replacements were found.", + "replacement-no-templatefiles": "No template file was found for the current phase.", "repositoryinfos": "Sourcecode Repository", "repository-access-browser": "Browser access to sources", "repository-auth": "Authentication/ filename of ssh private key", diff --git a/public_html/deployment/main.css b/public_html/deployment/main.css index be743e24..a5c3284e 100644 --- a/public_html/deployment/main.css +++ b/public_html/deployment/main.css @@ -667,6 +667,10 @@ span.replace { background: #fc8; font-weight: bold; } +span.replacehighlight { + background: #68a; + color: #fff; +} /* ----- log table ----- */ div.vis-item{ diff --git a/public_html/deployment/pages/act_phase.php b/public_html/deployment/pages/act_phase.php index 5b22b0eb..bbebeddb 100644 --- a/public_html/deployment/pages/act_phase.php +++ b/public_html/deployment/pages/act_phase.php @@ -9,10 +9,10 @@ --------------------------------------------------------------------- 2013-11-08 Axel <axel.hahn@iml.unibe.ch> + 2024-02-28 Axel <axel.hahn@unibe.ch> remove foreman; update replacements ###################################################################### */ require_once("./classes/project_gui.class.php"); -// require_once("./inc_functions.php"); require_once("./classes/config-replacement.class.php"); @@ -34,7 +34,7 @@ if ($sPhase) { $oConfig = new configreplacement(); $oConfig->setProject($aParams["prj"], $sPhase); - + $aReplacements=$oConfig->getReplacements(); $sOutReplace.='<h3>' . $oHtml->getIcon('replace') . t("replacements") . '</h3>'; @@ -42,6 +42,7 @@ if ($sPhase) { // ---------------------------------------------------------------------- // Links to foreman // ---------------------------------------------------------------------- + /* $aForeman=$oConfig->getForemanReplacements(); $aReplacementsForeman=$aForeman ? $aForeman['rules'] : false; @@ -54,6 +55,7 @@ if ($sPhase) { : t('foreman-no-host') ).'<br><br>' ; + */ // ---------------------------------------------------------------------- // Loop over files @@ -73,13 +75,17 @@ if ($sPhase) { )) ; } - + + // $sOutReplace.='<pre>'.print_r($aReplacements, 1).'</pre>'; + foreach ($aReplacements as $sFile => $aFields) { $tTplFile = basename($sFile); - $bFileInForeman = $aReplacementsForeman && isset($aReplacementsForeman[$tTplFile]); + // $bFileInForeman = $aReplacementsForeman && isset($aReplacementsForeman[$tTplFile]); $sDivIdFile='div4file-'.md5($sFile); $sOutReplace.='<h4>' . + + // --- link filename of template to toggle details. $oHtml->getLink(array( 'onclick'=>'$(\'#'.$sDivIdFile.'\').slideToggle(); $(this).toggleClass(\'closed\'); return false;', 'class'=>'expandable closed', @@ -90,6 +96,7 @@ if ($sPhase) { ; // --- check: does this file in foreman exist? + /* if (!isset($aReplacementsForeman[$tTplFile])){ if ($aReplacementsForeman){ $sOutReplace.=$oHtml->getBox('error', t('foreman-error-template-unknown')); @@ -97,7 +104,6 @@ if ($sPhase) { } } - // --- check: target file was set? $aTable=array('header'=>array(), 'body'=>array()); if ($bFileInForeman){ @@ -133,7 +139,7 @@ if ($sPhase) { } $aTable['body'][]=array( - $oHtml->getIcon('replace') . $sField, + $oHtml->getIcon('replace') . $sField, $sTd ); } @@ -161,8 +167,10 @@ if ($sPhase) { } } } + */ // --- filecontent of template + /* $ContentFile='<br>'.$sFile.'<br><br>' .'<pre style="max-height:35em;">' . preg_replace('/(@replace\[.*\])/U', '<span class="replace">$1</span>' , htmlentities(file_get_contents($sFile))) @@ -181,15 +189,64 @@ if ($sPhase) { .'</div>' .'</div>'; + */ + + // --- found replacement keys + sort($aFields); + $sReplacevars=''; + $sContent=htmlentities(file_get_contents($sFile)); + if ($aFields && count($aFields)){ + // $sReplacevars.='<ol><li>'.implode('</li><li>', $aFields).'</li></ol>'; + foreach($aFields as $sField){ + $fieldId='field-'.md5($sFile.$sField); + // $sReplacevars.='<li><a href="#" onmouseover="$(\'span.replace\').removeClass(\'replacehighlight\'); $(\'span.'.$fieldId.'\').addClass(\'replacehighlight\')">'.$sField.'</a></li>'; + $sReplacevars.='<li><a href="#'.$fieldId.'" ' + .'onclick="$(\'span.replace\').removeClass(\'replacehighlight\'); $(\'span#'.$fieldId.'\').addClass(\'replacehighlight\');" ' + .'>'.$sField.'</a></li>'; + $sContent=preg_replace('#(@replace\["'.$sField.'"\])#U', '<span id="'.$fieldId.'" class="replace">$1</span>' , $sContent); + } + $sReplacevars='<ol>'.$sReplacevars.'</ol>'; + } else { + $sReplacevars.='-'; + } + + // + $sOutReplace.=$renderAdminLTE->addRow( + $renderAdminLTE->addCol( + $renderAdminLTE->getCard([ + 'type'=>'', + 'title' => $oHtml->getIcon('file-template') . $sFile, + 'variant'=>'outline', + 'text'=>'' + .'<pre style="max-height:35em;">' + . $sContent + .'</pre>' , + ]), 8 + ) + . $renderAdminLTE->addCol( + $renderAdminLTE->getCard([ + 'type'=>'', + 'variant'=>'outline', + 'title' => $oHtml->getIcon('list') . t('replacement-fields'), + 'text'=>'' + //. $oHtml->getTable($aTable) + . $sReplacevars + ]), 4 + ) + ) + .'</div>' // close <div class="divfileinfos"> + ; } } else { - $sOutReplace.=t('none'); + $aFiles=$oConfig->getTemplatefiles(); + $sOutReplace.=$oHtml->getBox('info', $aFiles ? t('replacement-none') : t('replacement-no-templatefiles')); } // --- reverse check - do templates in foreman physically exist? // for testing: create a testfile // $aReplacementsForeman['dummytemplate.erb']=array(); + /* if($aReplacementsForeman){ foreach(array_keys($aReplacementsForeman) as $sForemanTemplate){ @@ -219,6 +276,7 @@ if ($sPhase) { } } } + */ if (count($aWarnings)){ $sOutReplace.=$oHtml->getBox('warning', '<ul><li>'.implode('<li>', $aWarnings).'</ul>'); -- GitLab