This commit is contained in:
Matt Batchelder
2026-02-11 08:19:12 -05:00
parent 8d7517b0c6
commit 04c8c46e9d
4 changed files with 212 additions and 19 deletions

View File

@@ -1,19 +1,39 @@
:root { :root {
--custom-primary: #D04000; /* Approximate logo color */ --custom-primary: #D04000;
/* Approximate logo color */
--custom-bg: #1a1a1a; --custom-bg: #1a1a1a;
--custom-text: #f0f0f0; --custom-text: #f0f0f0;
--custom-card-bg: #2d2d2d; --custom-card-bg: #2d2d2d;
} }
/* Global modifications if needed, or specific to home */ /* Global modifications */
.page-content.home { body {
background-color: var(--custom-bg); background-color: var(--custom-bg) !important;
color: var(--custom-text) !important;
}
.brand-text {
color: var(--custom-text); color: var(--custom-text);
min-height: calc(100vh - 110px); /* Adjust for header/footer */ font-size: 1.25rem;
}
footer {
background-color: var(--custom-bg) !important;
border-top: 1px solid #333;
color: #888;
}
/* Specific to home */
.page-content.home {
background-color: transparent;
/* Let body background show */
/* Remove min-height calculation as body is covered */
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
background-image: radial-gradient(circle at top right, #2a1a10 0%, var(--custom-bg) 40%); background-image: radial-gradient(circle at top right, #2a1a10 0%, var(--custom-bg) 40%);
min-height: 80vh;
/* Minimum height for centering */
} }
.home-container { .home-container {
@@ -35,6 +55,7 @@
margin-bottom: 0.5rem; margin-bottom: 0.5rem;
background: linear-gradient(135deg, #fff, #ccc); background: linear-gradient(135deg, #fff, #ccc);
-webkit-background-clip: text; -webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent; -webkit-text-fill-color: transparent;
} }
@@ -67,7 +88,7 @@
.action-card:hover { .action-card:hover {
transform: translateY(-5px); transform: translateY(-5px);
box-shadow: 0 10px 20px rgba(0,0,0,0.3); box-shadow: 0 10px 20px rgba(0, 0, 0, 0.3);
border-color: var(--custom-primary); border-color: var(--custom-primary);
color: var(--custom-text); color: var(--custom-text);
} }
@@ -81,4 +102,4 @@
.action-card h3 { .action-card h3 {
margin: 0; margin: 0;
font-weight: 600; font-weight: 600;
} }

View File

@@ -0,0 +1,182 @@
<nav id="navbar" aria-label="{{ctx.Locale.Tr "aria.navbar"}}">
<div class="navbar-left">
<!-- the logo -->
<a class="item" id="navbar-logo" href="{{AppSubUrl}}/" aria-label="{{if .IsSigned}}{{ctx.Locale.Tr "dashboard"}}{{else}}{{ctx.Locale.Tr "home_title"}}{{end}}">
<img width="30" height="30" src="{{AssetUrlPrefix}}/img/logo.svg" alt="{{ctx.Locale.Tr "logo"}}" aria-hidden="true">
<span class="brand-text tw-ml-2 tw-font-bold">OTS Source</span>
</a>
<!-- mobile right menu, it must be here because in mobile view, each item is a flex column, the first item is a full row column -->
<div class="ui secondary menu navbar-mobile-right only-mobile">
{{template "base/head_navbar_icons" dict "PageGlobalData" .PageGlobalData}}
<button class="item ui icon mini button tw-m-0" id="navbar-expand-toggle" aria-label="{{ctx.Locale.Tr "home.nav_menu"}}">{{svg "octicon-three-bars"}}</button>
</div>
<!-- navbar links non-mobile -->
{{if and .IsSigned .MustChangePassword}}
{{/* No links */}}
{{else if .IsSigned}}
{{if not ctx.Consts.RepoUnitTypeIssues.UnitGlobalDisabled}}
<a class="item{{if .PageIsIssues}} active{{end}}" href="{{AppSubUrl}}/issues">{{ctx.Locale.Tr "issues"}}</a>
{{end}}
{{if not ctx.Consts.RepoUnitTypePullRequests.UnitGlobalDisabled}}
<a class="item{{if .PageIsPulls}} active{{end}}" href="{{AppSubUrl}}/pulls">{{ctx.Locale.Tr "pull_requests"}}</a>
{{end}}
{{if not (and ctx.Consts.RepoUnitTypeIssues.UnitGlobalDisabled ctx.Consts.RepoUnitTypePullRequests.UnitGlobalDisabled)}}
{{if .ShowMilestonesDashboardPage}}
<a class="item{{if .PageIsMilestonesDashboard}} active{{end}}" href="{{AppSubUrl}}/milestones">{{ctx.Locale.Tr "milestones"}}</a>
{{end}}
{{end}}
<a class="item" href="https://source.otshosting.app/OribiTech">Oribi Tech</a>
<a class="item" href="https://source.otshosting.app/OTSSigns">OTS Signs</a>
{{else if .IsLandingPageOrganizations}}
<a class="item" href="https://source.otshosting.app/OribiTech">Oribi Tech</a>
<a class="item" href="https://source.otshosting.app/OTSSigns">OTS Signs</a>
{{else}}
<a class="item" href="https://source.otshosting.app/OribiTech">Oribi Tech</a>
<a class="item" href="https://source.otshosting.app/OTSSigns">OTS Signs</a>
{{end}}
{{template "custom/extra_links" .}}
{{if not .IsSigned}}
<a class="item" target="_blank" href="https://portal.oribi-tech.com">{{ctx.Locale.Tr "help"}}</a>
{{end}}
</div>
<!-- the full dropdown menus -->
<div class="navbar-right">
{{if and .IsSigned .MustChangePassword}}
<div class="ui dropdown jump item" data-tooltip-content="{{ctx.Locale.Tr "user_profile_and_more"}}">
<span class="text">
{{ctx.AvatarUtils.Avatar .SignedUser 24 "tw-mr-1"}}
<span class="only-mobile">{{.SignedUser.Name}}</span>
<span class="not-mobile">{{svg "octicon-triangle-down"}}</span>
</span>
<div class="menu user-menu">
<div class="header">
{{ctx.Locale.Tr "signed_in_as"}} <strong>{{.SignedUser.Name}}</strong>
</div>
<div class="divider"></div>
<a class="item link-action" href data-url="{{AppSubUrl}}/user/logout">
{{svg "octicon-sign-out"}}
{{ctx.Locale.Tr "sign_out"}}
</a>
</div><!-- end content avatar menu -->
</div><!-- end dropdown avatar menu -->
{{else if .IsSigned}}
{{template "base/head_navbar_icons" dict "ItemExtraClass" "not-mobile" "PageGlobalData" .PageGlobalData}}
<div class="ui dropdown jump item" data-tooltip-content="{{ctx.Locale.Tr "create_new"}}">
<span class="text">
{{svg "octicon-plus"}}
<span class="not-mobile">{{svg "octicon-triangle-down"}}</span>
<span class="only-mobile">{{ctx.Locale.Tr "create_new"}}</span>
</span>
<div class="menu">
<a class="item" href="{{AppSubUrl}}/repo/create">
{{svg "octicon-plus"}} {{ctx.Locale.Tr "new_repo"}}
</a>
{{if not .DisableMigrations}}
<a class="item" href="{{AppSubUrl}}/repo/migrate">
{{svg "octicon-repo-push"}} {{ctx.Locale.Tr "new_migrate"}}
</a>
{{end}}
{{if .SignedUser.CanCreateOrganization}}
<a class="item" href="{{AppSubUrl}}/org/create">
{{svg "octicon-organization"}} {{ctx.Locale.Tr "new_org"}}
</a>
{{end}}
</div><!-- end content create new menu -->
</div><!-- end dropdown menu create new -->
<div class="ui dropdown jump item" data-tooltip-content="{{ctx.Locale.Tr "user_profile_and_more"}}">
<span class="text">
{{ctx.AvatarUtils.Avatar .SignedUser 24 "tw-mr-1"}}
<span class="only-mobile">{{.SignedUser.Name}}</span>
<span class="not-mobile">{{svg "octicon-triangle-down"}}</span>
</span>
<div class="menu user-menu">
<div class="header">
{{ctx.Locale.Tr "signed_in_as"}} <strong>{{.SignedUser.Name}}</strong>
</div>
<div class="divider"></div>
<a class="item" href="{{.SignedUser.HomeLink}}">
{{svg "octicon-person"}}
{{ctx.Locale.Tr "your_profile"}}
</a>
{{if not .DisableStars}}
<a class="item" href="{{.SignedUser.HomeLink}}?tab=stars">
{{svg "octicon-star"}}
{{ctx.Locale.Tr "your_starred"}}
</a>
{{end}}
<a class="item" href="{{AppSubUrl}}/notifications/subscriptions">
{{svg "octicon-bell"}}
{{ctx.Locale.Tr "notification.subscriptions"}}
</a>
<a class="{{if .PageIsUserSettings}}active {{end}}item" href="{{AppSubUrl}}/user/settings">
{{svg "octicon-tools"}}
{{ctx.Locale.Tr "your_settings"}}
</a>
<a class="item" target="_blank" href="https://portal.oribi-tech.com">
{{svg "octicon-question"}}
{{ctx.Locale.Tr "help"}}
</a>
{{if .IsAdmin}}
<div class="divider"></div>
<a class="{{if .PageIsAdmin}}active {{end}}item" href="{{AppSubUrl}}/-/admin">
{{svg "octicon-server"}}
{{ctx.Locale.Tr "admin_panel"}}
</a>
{{end}}
<div class="divider"></div>
<a class="item link-action" href data-url="{{AppSubUrl}}/user/logout">
{{svg "octicon-sign-out"}}
{{ctx.Locale.Tr "sign_out"}}
</a>
</div><!-- end content avatar menu -->
</div><!-- end dropdown avatar menu -->
{{else}}
{{if .ShowRegistrationButton}}
<a class="item{{if .PageIsSignUp}} active{{end}}" href="{{AppSubUrl}}/user/sign_up">
{{svg "octicon-person"}}
<span class="tw-ml-1">{{ctx.Locale.Tr "register"}}</span>
</a>
{{end}}
<a class="item{{if .PageIsSignIn}} active{{end}}" rel="nofollow" href="{{AppSubUrl}}/user/login">
{{svg "octicon-sign-in"}}
<span class="tw-ml-1">{{ctx.Locale.Tr "sign_in"}}</span>
</a>
{{end}}
</div><!-- end full right menu -->
{{$activeStopwatch := and .PageGlobalData (call .PageGlobalData.GetActiveStopwatch)}}
{{if $activeStopwatch}}
<div class="active-stopwatch-popup tippy-target">
<div class="tw-flex tw-items-center tw-gap-2 tw-p-3">
<a class="stopwatch-link tw-flex tw-items-center tw-gap-2 muted" href="{{$activeStopwatch.IssueLink}}">
{{svg "octicon-issue-opened" 16}}
<span class="stopwatch-issue">{{$activeStopwatch.RepoSlug}}#{{$activeStopwatch.IssueIndex}}</span>
</a>
<div class="tw-flex tw-gap-1">
<form class="stopwatch-commit form-fetch-action" method="post" action="{{$activeStopwatch.IssueLink}}/times/stopwatch/stop">
<button
type="submit"
class="ui button mini compact basic icon tw-mr-0"
data-tooltip-content="{{ctx.Locale.Tr "repo.issues.stop_tracking"}}"
>{{svg "octicon-square-fill"}}</button>
</form>
<form class="stopwatch-cancel form-fetch-action" method="post" action="{{$activeStopwatch.IssueLink}}/times/stopwatch/cancel">
<button
type="submit"
class="ui button mini compact basic icon tw-mr-0"
data-tooltip-content="{{ctx.Locale.Tr "repo.issues.cancel_tracking"}}"
>{{svg "octicon-trash"}}</button>
</form>
</div>
</div>
</div>
{{end}}
</nav>

View File

@@ -1 +1 @@
<link rel="stylesheet" href="{{AssetUrlPrefix}}/css/oribi.css" /> <link rel="stylesheet" href="{{AppSubUrl}}/assets/css/oribi.css" />

View File

@@ -1,20 +1,10 @@
{{template "base/head" .}} {{template "base/head" .}}
<div role="main" aria-label="{{.Title}}" class="page-content home"> <div role="main" aria-label="{{.Title}}" class="page-content home">
<div class="home-container"> <div class="home-container">
<img class="logo-img" src="{{AssetUrlPrefix}}/img/logo.png" alt="Oribi Technology Services"/> <img class="logo-img" src="{{AppSubUrl}}/assets/img/logo.png" alt="Oribi Technology Services"/>
<h1 class="hero-title">Oribi Technology Services</h1> <h1 class="hero-title">Oribi Technology Services</h1>
<div class="hero-subtitle">Internal Code Repository</div> <div class="hero-subtitle">Internal Code Repository</div>
<div class="action-grid">
<a href="{{AppSubUrl}}/explore/repos" class="action-card">
<i class="octicon octicon-telescope"></i>
<h3>Explore</h3>
</a>
<a href="{{AppSubUrl}}/user/login" class="action-card">
<i class="octicon octicon-sign-in"></i>
<h3>Sign In</h3>
</a>
</div>
</div> </div>
</div> </div>
{{template "base/footer" .}} {{template "base/footer" .}}