Skip to content

Commit

Permalink
tmp
Browse files Browse the repository at this point in the history
  • Loading branch information
MariaAga committed Oct 23, 2023
1 parent 2ae0516 commit 2b69d68
Show file tree
Hide file tree
Showing 8 changed files with 86 additions and 63 deletions.
1 change: 1 addition & 0 deletions .eslintrc
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,7 @@
"nonpersistent",
"noopener",
"noreferrer",
"nowrap",
"num",
"numpad",
"operatingsystem",
Expand Down
17 changes: 14 additions & 3 deletions app/assets/stylesheets/base.scss
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,26 @@ html {
}

#rails-app-content {
--header-height: 70px;
position: absolute;
top: 70px;
top: var(--header-height);
left: 0;
right: 0;
bottom: 0;
overflow: auto;
height: calc(100% - 70px);
height: calc(100% - var(--header-height));
margin-left: 250px;
&.user-banner-present {
--banner-height: calc(
2 * var(--pf-global--spacer--xs) +
(var(--pf-global--LineHeight--md) * var(--pf-global--FontSize--sm))
); // banner height is line height and a small padding
top: calc(
var(--header-height) + var(--banner-height)
);

height: calc(100% - var(--header-height) - var(--banner-height));
}
.rails-table-toolbar {
padding-bottom: 0;
display: flex;
Expand All @@ -24,7 +36,6 @@ html {
grid-template-columns: unset;
grid-template-areas: unset;
}

}

body {
Expand Down
3 changes: 2 additions & 1 deletion app/helpers/layout_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,8 @@ def layout_data
user: fetch_user, brand: 'foreman',
root: main_app.root_path,
locations: fetch_locations, orgs: fetch_organizations,
instance_title: Setting[:instance_title]
instance_title: Setting[:instance_title],
instance_color: Setting[:instance_color]
}
end

Expand Down
8 changes: 7 additions & 1 deletion app/registries/foreman/settings/general.rb
Original file line number Diff line number Diff line change
Expand Up @@ -81,9 +81,15 @@
collection: timezones)
setting('instance_title',
type: :string,
description: N_("The instance title is shown on the top navigation bar (requires a page reload)."),
description: N_("The instance title is shown under the header in a banner (requires a page reload)."),
default: nil,
full_name: N_('Instance title'))
setting('instance_color',
type: :string,
description: N_("Color for the instance title banner. Will only be used if an instance title is defined. (requires a page reload)."),
default: 'default',
full_name: N_('Instance color'),
collection: proc { {'default' => _('Grey'), 'blue' => _('Blue'), 'red' => _('Red'), 'green' => _('Green'), 'gold' => _('Gold')} })
setting('audits_period',
type: :integer,
description: N_('Duration in days to preserve audits for. Leave empty to disable the audits cleanup.'),
Expand Down
2 changes: 1 addition & 1 deletion app/views/layouts/base.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@
<% end %>
<div
id="rails-app-content"
class="pf-c-page"
class="pf-c-page <%= Foreman.settings.find('instance_title') ? 'user-banner-present' : '' %>"
>

<%= yield(:content) %>
Expand Down
82 changes: 61 additions & 21 deletions webpack/assets/javascripts/react_app/components/Layout/Layout.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
import React from 'react';

import { Page, PageSidebar } from '@patternfly/react-core';
import {
Page,
PageSidebar,
Banner,
Flex,
FlexItem,
} from '@patternfly/react-core';
import { layoutPropTypes, layoutDefaultProps } from './LayoutHelper';
import Header from './components/Toolbar/Header';
import Navigation from './Navigation';
Expand All @@ -27,30 +33,64 @@ const Layout = ({
document.body.classList.add('collapsed-nav');
}
};
const instance = data.instance_title;
const instanceColors = {
grey: 'default',
blue: 'info',
red: 'danger',
green: 'success',
gold: 'warning',
};
const instanceColor = instanceColors[data.instance_color];
return (
<>
<Page
mainContainerId="foreman-main-container"
header={
<Header data={data} onNavToggle={onNavToggle} isLoading={isLoading} />
}
id="foreman-page"
sidebar={
<PageSidebar
isNavOpen={!isCollapsed}
nav={
<Navigation
items={items}
navigate={navigate}
navigationActiveItem={navigationActiveItem}
setNavigationActiveItem={setNavigationActiveItem}
<Flex
direction={{ default: 'column' }}
flexWrap={{ default: 'nowrap' }}
spaceItems={{ default: 'spaceItemsNone' }}
style={{ height: '100%' }}
>
<FlexItem>
{instance && (
<Banner
isSticky
variant={instanceColor}
// style={{}}
className="instance-banner"
>
<div>{instance}</div>
</Banner>
)}
</FlexItem>
<FlexItem grow={{ default: 'grow' }} style={{ minHeight: 0 }}>
<Page
mainContainerId="foreman-main-container"
header={
<Header
data={data}
onNavToggle={onNavToggle}
isLoading={isLoading}
/>
}
/>
}
>
{children}
</Page>
id="foreman-page"
sidebar={
<PageSidebar
isNavOpen={!isCollapsed}
nav={
<Navigation
items={items}
navigate={navigate}
navigationActiveItem={navigationActiveItem}
setNavigationActiveItem={setNavigationActiveItem}
/>
}
/>
}
>
{children}
</Page>
</FlexItem>
</Flex>
</>
);
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ import {
organizationPropType,
userPropType,
} from '../../LayoutHelper';
import InstanceTitleViewer from './InstanceTitleViewer';
import './HeaderToolbar.scss';

const HeaderToolbar = ({
Expand All @@ -26,7 +25,6 @@ const HeaderToolbar = ({
notification_url: notificationUrl,
user,
stop_impersonation_url: stopImpersonationUrl,
instance_title: instanceTitle,
isLoading,
}) => (
<Toolbar ouiaId="data-toolbar" id="data-toolbar" isFullHeight isStatic>
Expand All @@ -39,9 +37,6 @@ const HeaderToolbar = ({
/>
</ToolbarGroup>
<ToolbarGroup alignment={{ default: 'alignRight' }}>
<ToolbarItem>
<InstanceTitleViewer title={instanceTitle} />
</ToolbarItem>
<ToolbarItem className="notifications_container">
<NotificationContainer data={{ url: notificationUrl }} />
</ToolbarItem>
Expand All @@ -60,7 +55,6 @@ const HeaderToolbar = ({
);
HeaderToolbar.propTypes = {
stop_impersonation_url: PropTypes.string.isRequired,
instance_title: PropTypes.string,
locations: locationPropType.isRequired,
orgs: organizationPropType.isRequired,
notification_url: PropTypes.string.isRequired,
Expand All @@ -69,7 +63,6 @@ HeaderToolbar.propTypes = {
};

HeaderToolbar.defaultProps = {
instance_title: null,
user: {},
isLoading: layoutDefaultProps.isLoading,
};
Expand Down

This file was deleted.

0 comments on commit 2b69d68

Please sign in to comment.