Skip to content
Snippets Groups Projects
Commit 06fd8de0 authored by Hahn Axel (hahn)'s avatar Hahn Axel (hahn)
Browse files

right top nav; no footer nav

parent 20115434
No related branches found
No related tags found
1 merge request!62V2.0
This commit is part of merge request !62. Comments created here will be created in the context of that merge request.
...@@ -670,9 +670,16 @@ class renderadminlte { ...@@ -670,9 +670,16 @@ class renderadminlte {
* @param array $aUlOptions array of html attrubutes for wrapping UL tag * @param array $aUlOptions array of html attrubutes for wrapping UL tag
* @return string * @return string
*/ */
public function getTopNavigation($aNavItems, $aUlOptions=['class'=>'navbar-nav']){ public function getTopNavigation($aNavItems, $aUlOptions=false, $aNavItemsRight=[], $aUlOptionsRight=false){
// array_unshift($aNavItems, ['class'=>'nav-link', 'data-widget'=>'pushmenu', 'href'=>'#', 'role'=>'button', 'label'=>'<i class="fa-solid fa-bars"></i>']); // array_unshift($aNavItems, ['class'=>'nav-link', 'data-widget'=>'pushmenu', 'href'=>'#', 'role'=>'button', 'label'=>'<i class="fa-solid fa-bars"></i>']);
return $this->addWrapper('ul', $aUlOptions, $this->getNavItems($aNavItems)); $aUlOptLeft=$aUlOptions ? $aUlOptions : ['class'=>'navbar-nav'];
$aUlOptRight=$aUlOptionsRight ? $aUlOptionsRight : ['class'=>'navbar-nav ml-auto'];
return $this->addWrapper('ul', $aUlOptLeft, $this->getNavItems($aNavItems))
.(count($aNavItemsRight)
? $this->addWrapper('ul', $aUlOptRight, $this->getNavItems($aNavItemsRight))
: ''
)
;
} }
// ---------------------------------------------------------------------- // ----------------------------------------------------------------------
...@@ -1085,7 +1092,7 @@ class renderadminlte { ...@@ -1085,7 +1092,7 @@ class renderadminlte {
// print_r($aOptions); // print_r($aOptions);
$sVariantPrefix=$aVariants[$aOptions['variant']] ? $aVariants[$aOptions['variant']] : $aVariants['default']; $sVariantPrefix=isset($aVariants[$aOptions['variant']]) ? $aVariants[$aOptions['variant']] : $aVariants['default'];
$sClass='card' $sClass='card'
. $this->_addClassValue($aOptions['type'], $sVariantPrefix) . $this->_addClassValue($aOptions['type'], $sVariantPrefix)
.($aOptions['shadow'] && isset($this->_aValueMappings['shadow'][$aOptions['shadow']]) .($aOptions['shadow'] && isset($this->_aValueMappings['shadow'][$aOptions['shadow']])
...@@ -1106,10 +1113,13 @@ class renderadminlte { ...@@ -1106,10 +1113,13 @@ class renderadminlte {
$aOptions['tools'].=($aOptions[$sTool] ? $sHtml : ''); $aOptions['tools'].=($aOptions[$sTool] ? $sHtml : '');
} }
// build parts of the card // build parts of the card
$sCardHeader=$this->addWrapper('div', ['class'=>'card-header'], $sCardHeader=$aOptions['title']
? $this->addWrapper('div', ['class'=>'card-header'],
$this->_tag('h3', ['class'=>'card-title', 'label'=>$aOptions['title']]) $this->_tag('h3', ['class'=>'card-title', 'label'=>$aOptions['title']])
. ($aOptions['tools'] ? $this->_tag('div', ['class'=>'card-tools', 'label'=>$aOptions['tools']]) : '') . ($aOptions['tools'] ? $this->_tag('div', ['class'=>'card-tools', 'label'=>$aOptions['tools']]) : '')
); )
: ''
;
$sCardBody=$this->_tag('div', ['class'=>'card-body', 'label'=>$aOptions['text']]); $sCardBody=$this->_tag('div', ['class'=>'card-body', 'label'=>$aOptions['text']]);
$sCardFooter=$aOptions['footer'] ? $this->_tag('div', ['class'=>'card-footer', 'label'=>$aOptions['footer']]) : ''; $sCardFooter=$aOptions['footer'] ? $this->_tag('div', ['class'=>'card-footer', 'label'=>$aOptions['footer']]) : '';
......
...@@ -273,6 +273,48 @@ function getTopNavLeft($aEmbed=[]) { ...@@ -273,6 +273,48 @@ function getTopNavLeft($aEmbed=[]) {
return $aReturn; return $aReturn;
} }
/**
* get array top left navigation
* @return array
*/
function getTopNavRight() {
global $aParams, $oHtml;
$aReturn = [];
require_once("./classes/project.class.php");
require_once("./classes/user.class.php");
$oUser = new user();
$sBaseUrl = '/deployment/';
$sWikiBaseUrl = 'https://intranet.iml.unibe.ch/wiki/doku.php';
$sCurrentProject=(array_key_exists("prj", $aParams) && $aParams["prj"] <> "all") ? $aParams["prj"] : false;
$sCurrentAction=(array_key_exists("action", $aParams) && $aParams["action"]) ? $aParams["action"] : false;
$sCurrentPar3=(array_key_exists("par3", $aParams) && $aParams["par3"]) ? $aParams["par3"] : false;
$sLiActive=' class="active"';
if($oUser->getUsername()){
$aReturn=[
['href'=>'#', 'label'=>$oUser->getUsername(), 'icon'=>'fa-solid fa-user',
'class'=>($sCurrentAction=='login' ? 'active' :''),
'children'=>[
['href'=>$sBaseUrl . 'all/login/', 'label'=>t("login"), 'icon'=>'fa-solid fa-right-to-bracket' ],
]
],
['href'=>'#', 'label'=>t('menu-help'), 'icon'=>'fa-solid fa-life-ring', 'class'=>'',
'children'=>[
['href'=>$sWikiBaseUrl . '/it/entwicklung/continuous_deployment', 'target'=>'_help', 'label'=>'WIKI: Übersicht Continous Deployment', 'icon'=>'' ],
['href'=>$sWikiBaseUrl . '/it/entwicklung/continuous_deployment#konventionen', 'target'=>'_help', 'label'=>'WIKI: Konventionen für Entwickler', 'icon'=>'' ],
['href'=>$sWikiBaseUrl . '/it/infrastruktur/se/snippets/iml.deployment_profile', 'target'=>'_help', 'label'=>'WIKI (Admin): Snippets für den Sysadmin', 'icon'=>'' ],
['href'=>$sWikiBaseUrl . '/it/infrastruktur/dienste/imldeployment', 'target'=>'_help', 'label'=>'WIKI (Admin): Verzeichnisse und Dateien', 'icon'=>'' ],
]
]
]
;
}
// echo '<pre>'.print_r($aReturn, 1); die(__FUNCTION__);
return $aReturn;
}
/** /**
* auto generate upper part of the page with header and navigation * auto generate upper part of the page with header and navigation
* @global type $aParams * @global type $aParams
...@@ -567,7 +609,7 @@ function getBreadcrumb() { ...@@ -567,7 +609,7 @@ function getBreadcrumb() {
} }
$sClass='action '.$aParams["action"]; $sClass='action '.$aParams["action"];
if (array_key_exists("par3", $aParams)) { if (array_key_exists("par3", $aParams)) {
$sLabel.=' :: ' . $oHtml->getIcon($aParams["par3"]). $aParams["par3"]; $sLabel=$oHtml->getIcon($aParams["par3"]). $aParams["par3"];
$sClass='action ' . $aParams["action"]; $sClass='action ' . $aParams["action"];
} }
// $sReturn.='<h2 class="action ' . $aParams["action"] . '">' . $sLabel . '</h2>'; // $sReturn.='<h2 class="action ' . $aParams["action"] . '">' . $sLabel . '</h2>';
......
...@@ -107,8 +107,8 @@ $aReplace=include("./ui/page_replacements.php"); ...@@ -107,8 +107,8 @@ $aReplace=include("./ui/page_replacements.php");
// ---------------------------------------------------------------------- // ----------------------------------------------------------------------
// html body // html body
// ---------------------------------------------------------------------- // ----------------------------------------------------------------------
$BODY="WARNING: $sAction did not set \$BODY"; $BODY="";
$TITLE="WARNING: $sAction did not set \$TITLE"; $TITLE="";
$sTopArea=getTopArea(['right'=>$sTopRight]); $sTopArea=getTopArea(['right'=>$sTopRight]);
$sBanner=isset($aConfig['banner']) && $aConfig['banner'] ? '<div class="alert alert-info">'.$aConfig['banner'].'</div>' : ''; $sBanner=isset($aConfig['banner']) && $aConfig['banner'] ? '<div class="alert alert-info">'.$aConfig['banner'].'</div>' : '';
...@@ -138,10 +138,26 @@ $aReplace=include("./ui/page_replacements.php"); ...@@ -138,10 +138,26 @@ $aReplace=include("./ui/page_replacements.php");
if (!@include($sActionFile)) { if (!@include($sActionFile)) {
include("./pages/error_404.php"); include("./pages/error_404.php");
} }
$BODY = ob_get_contents(); $OUT = ob_get_contents();
ob_end_clean(); ob_end_clean();
$oCLog->add("including done $sActionFile"); $oCLog->add("including done $sActionFile");
// echo "BODY is $BODY";
// echo "OUT is $OUT";
if(!$BODY){
$BODY=""
// ."INFO: $sActionFile did not set \$BODY<br><br>"
.$renderAdminLTE->getCard([
// 'title'=>'Hello',
'type'=>'gray',
'variant'=>'outline',
'text'=>$OUT,
])
;
}
if(!$TITLE){
$TITLE="WARNING: $sActionFile did not set \$TITLE";
}
$oCLog->add("adding actionlog.class"); $oCLog->add("adding actionlog.class");
if ($oUser->getUsername()){ if ($oUser->getUsername()){
...@@ -170,13 +186,12 @@ $aReplace=include("./ui/page_replacements.php"); ...@@ -170,13 +186,12 @@ $aReplace=include("./ui/page_replacements.php");
$BODY = ' $BODY = '
' '
. $sHeader . $sHeader
// . $sTopArea
. $sShellOuptut . $sShellOuptut
.' .'
' . $sBanner . getBreadcrumb() . ' ' . $sBanner . getBreadcrumb() . '
<div id="content">
' . $BODY . ' ' . $BODY . '
</div>
<!-- <!--
<div id="footer"> <div id="footer">
...@@ -207,24 +222,13 @@ if(!$sTabApp && !$sPpage){ ...@@ -207,24 +222,13 @@ if(!$sTabApp && !$sPpage){
return true; return true;
} }
$aTopnav = [
['href'=>'#', 'label'=>'Menu A', 'icon'=>'fa-solid fa-home' ],
['href'=>'#', 'label'=>'Menu B', 'icon'=>'fa-solid fa-tv'],
['href'=>'#', 'label'=>'Menu C', 'icon'=>'fa-solid fa-truck-pickup', 'class'=>'active',
'children'=>[
['href'=>'#', 'label'=>'FAQ' , 'icon'=>'fa-solid fa-truck-monster'],
['href'=>'#', 'label'=>'Support' , 'icon'=>'fa-solid fa-truck-moving'],
]
]
];
*/ */
$aTopnav=getTopNavLeft(); $aTopnav=getTopNavLeft();
$aReplace['{{NAVI_TOP}}']='' $aReplace['{{NAVI_TOP}}']=''
. $renderAdminLTE->addWrapper( . $renderAdminLTE->addWrapper(
'nav', ['class'=>'main-header navbar navbar-expand navbar-white navbar-light'], 'nav', ['class'=>'main-header navbar navbar-expand navbar-white navbar-light'],
$renderAdminLTE->getTopNavigation($aTopnav) $renderAdminLTE->getTopNavigation($aTopnav,false, getTopNavRight(), false)
// add 2nd navbar if needed // add 2nd navbar if needed
) )
; ;
...@@ -249,6 +253,7 @@ if(!file_exists($sIncfile)){ ...@@ -249,6 +253,7 @@ if(!file_exists($sIncfile)){
$aReplace['{{PAGE_BODY}}']=$BODY; $aReplace['{{PAGE_BODY}}']=$BODY;
$aReplace['{{PAGE_BODY}}']=$BODY; $aReplace['{{PAGE_BODY}}']=$BODY;
$aReplace['{{PAGE_HEADER_LEFT}}']='<h2>'.$TITLE.'</h2>'; $aReplace['{{PAGE_HEADER_LEFT}}']='<h2>'.$TITLE.'</h2>';
$aReplace['{{PAGE_HEADER_RIGHT}}']='TODO: small breadcrumb';
$sTemplate=file_get_contents('ui/page.tpl.php'); $sTemplate=file_get_contents('ui/page.tpl.php');
echo $renderAdminLTE->render($sTemplate,$aReplace); echo $renderAdminLTE->render($sTemplate,$aReplace);
body{padding-top: 0; body{padding-top: 0;
background: linear-gradient(-20deg, #fff 10%,#dde,#fff 90%) fixed; /* background: linear-gradient(-20deg, #fff 10%,#dde,#fff 90%) fixed; */
} }
#header,#footer{ #header,#footer{
background:#eee; background:#eee;
...@@ -57,6 +57,7 @@ body{padding-top: 0; ...@@ -57,6 +57,7 @@ body{padding-top: 0;
*/ */
} }
/* TODO div#navbuttom wurde auskommentiert */
div#navtop, div#navbuttom{background: rgba(0,50,100,0.1); padding: 0.2em;} div#navtop, div#navbuttom{background: rgba(0,50,100,0.1); padding: 0.2em;}
div#navtop{margin-bottom: 1em;} div#navtop{margin-bottom: 1em;}
div#navtop .current{font-size: 170%; color: #667; padding: 0 0.2em; position: absolute;} div#navtop .current{font-size: 170%; color: #667; padding: 0 0.2em; position: absolute;}
...@@ -130,7 +131,7 @@ thead{font-size: 130%;} ...@@ -130,7 +131,7 @@ thead{font-size: 130%;}
#tbloverview th{} #tbloverview th{}
#tbloverview td{} #tbloverview td{}
th{/*border-radius: 0.7em 0.7em 0 0; */ background:#f0f0f0; text-align: center; border-right: 1px solid #fff; } th{/*border-radius: 0.7em 0.7em 0 0; background:#f0f0f0; */ text-align: center; border-right: 1px solid #fff; }
thead tr th.prj{border-bottom: none;} thead tr th.prj{border-bottom: none;}
th.versioncontrol{background: #eee; } th.versioncontrol{background: #eee; }
tr{ } tr{ }
...@@ -147,9 +148,9 @@ div.progressinprogress{color: #6a9;} ...@@ -147,9 +148,9 @@ div.progressinprogress{color: #6a9;}
tr.progresshasqueue{border-left:0.5em solid #f81;} tr.progresshasqueue{border-left:0.5em solid #f81;}
div.progresshasqueue{color: #d61;} div.progresshasqueue{color: #d61;}
.filterbar{border-bottom: 1px solid #ccc; ;} .filterbar{border-bottom: 0px solid #ccc; ;}
button.prjprogress>span{font-size: 130%;} button.prjprogress>span{font-size: 130%;}
button.prjprogress.selected{background:#f4f4f4; box-shadow: 0 0 1em #ddd inset; border: 1px solid #aaa;} button.prjprogress.selected{box-shadow: 0 0 1em #ddd inset; border: 0px solid #aaa;}
/* /*
.trproject-textfilter {border-right: 3px solid #f00;} .trproject-textfilter {border-right: 3px solid #f00;}
......
...@@ -10,26 +10,5 @@ pre.config{background:#f4f4f4; color:#448; border-radius: 0.5em; max-height: aut ...@@ -10,26 +10,5 @@ pre.config{background:#f4f4f4; color:#448; border-radius: 0.5em; max-height: aut
a.topbrand{font-size: 150%; margin-top: -0.2em; margin-right: 1em;} a.topbrand{font-size: 150%; margin-top: -0.2em; margin-right: 1em;}
.dropdown-menu { /* no line break in top menu */
/* .dropdown-menu a{white-space: nowrap;}
position: absolute; \ No newline at end of file
top: 100%;
left: 0;
z-index: 1000;
display: none;
float: left;
min-width: 10rem;
padding: .5rem 0;
margin: .125rem 0 0;
font-size: 1rem;
color: #212529;
text-align: left;
list-style: none;
background-color: #fff;
background-clip: padding-box;
border: 1px solid rgba(0,0,0,.15);
border-radius: .25rem;
box-shadow: 0 .5rem 1rem rgba(0,0,0,.175);
*/
min-width: 15rem;
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment