mirror of
https://github.com/gwdevhub/Daybreak.git
synced 2026-07-21 01:59:49 +00:00
98 lines
5.6 KiB
Plaintext
98 lines
5.6 KiB
Plaintext
<div class="container" @onmouseenter="this.ViewModel.CloseSnippet">
|
|
<div class="title-bar-additional-btns-left">
|
|
<button class="title-bar-btn" @onclick="this.ViewModel.UploadAllBuilds" title="Upload all local builds to remote">
|
|
<FluentIcon Value="new Microsoft.FluentUI.AspNetCore.Components.Icons.Regular.Size16.ArrowUpload()" />
|
|
</button>
|
|
<button class="title-bar-btn" @onclick="this.ViewModel.DownloadAllBuilds" title="Download all remote builds to local">
|
|
<FluentIcon Value="new Microsoft.FluentUI.AspNetCore.Components.Icons.Regular.Size16.ArrowDownload()" />
|
|
</button>
|
|
</div>
|
|
<div class="stretch-container backdrop-panel">
|
|
@if (this.ViewModel.Loading)
|
|
{
|
|
<div class="loading-overlay">
|
|
<SpinnerWidget IsLoading="true" />
|
|
</div>
|
|
}
|
|
<div class="builds-container" style="@(this.ViewModel.Loading ? "pointer-events: none; opacity: 0.5;" : "")">
|
|
<div class="builds-headers">
|
|
<div class="panel-header">
|
|
<FluentIcon Value="new Microsoft.FluentUI.AspNetCore.Components.Icons.Regular.Size16.Desktop()" />
|
|
<h4>Local Builds (@this.ViewModel.LocalBuilds.Count(b => b.Status != BuildDiffStatus.Placeholder))</h4>
|
|
</div>
|
|
<div class="panel-header">
|
|
<FluentIcon Value="new Microsoft.FluentUI.AspNetCore.Components.Icons.Regular.Size16.Cloud()" />
|
|
<h4>Remote Builds (@this.ViewModel.RemoteBuilds.Count(b => b.Status != BuildDiffStatus.Placeholder))</h4>
|
|
</div>
|
|
</div>
|
|
<div class="builds-scroll-container" @onmouseenter="this.ViewModel.CloseSnippet">
|
|
<div class="builds-panels">
|
|
<div class="builds-column">
|
|
@if (this.ViewModel.LocalBuilds.Count == 0)
|
|
{
|
|
<div class="no-builds">
|
|
<span>No local builds found</span>
|
|
</div>
|
|
}
|
|
else
|
|
{
|
|
@foreach (var build in this.ViewModel.LocalBuilds)
|
|
{
|
|
<div class="build-row @GetStatusClass(build.Status) @(build.BuildEntry is not null && build.Status != BuildDiffStatus.InSync ? "clickable" : "")"
|
|
@onclick="() => this.ViewModel.UploadSingleBuild(build)"
|
|
@onmouseenter="(e) => { if (build.BuildEntry is not null) { this.ViewModel.OpenSnippet(build, e); } else { this.ViewModel.CloseSnippet(); } }"
|
|
@onmousemove="(e) => this.ViewModel.MouseMoveBuildEntry(e)">
|
|
<span class="build-name">@build.Name</span>
|
|
<span class="build-code">@build.TemplateCode</span>
|
|
</div>
|
|
}
|
|
}
|
|
</div>
|
|
<div class="builds-column">
|
|
@if (this.ViewModel.RemoteBuilds.Count == 0)
|
|
{
|
|
<div class="no-builds">
|
|
<span>No remote builds found</span>
|
|
</div>
|
|
}
|
|
else
|
|
{
|
|
@foreach (var build in this.ViewModel.RemoteBuilds)
|
|
{
|
|
<div class="build-row @GetStatusClass(build.Status) @(build.BuildEntry is not null && build.Status != BuildDiffStatus.InSync ? "clickable" : "")"
|
|
@onclick="() => this.ViewModel.DownloadSingleBuild(build)"
|
|
@onmouseenter="(e) => { if (build.BuildEntry is not null) { this.ViewModel.OpenSnippet(build, e); } else { this.ViewModel.CloseSnippet(); } }"
|
|
@onmousemove="(e) => this.ViewModel.MouseMoveBuildEntry(e)">
|
|
<span class="build-name">@build.Name</span>
|
|
<span class="build-code">@build.TemplateCode</span>
|
|
</div>
|
|
}
|
|
}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@if (this.ViewModel.ShowSnippet && this.ViewModel.HoveredEntry?.BuildEntry is not null && this.ViewModel.SnippetPosition.HasValue)
|
|
{
|
|
<div class="build-snippet-overlay" style="top: @(this.ViewModel.SnippetPosition.Value.Y)px; left: @(this.ViewModel.SnippetPosition.Value.X)px;">
|
|
<BuildSnippet BuildEntry="this.ViewModel.HoveredEntry.BuildEntry" />
|
|
</div>
|
|
}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
@page "/synchronization/builds"
|
|
@inherits ViewBase<BuildsSynchronizationView, BuildsSynchronizationViewModel>
|
|
|
|
@code {
|
|
private static string GetStatusClass(BuildDiffStatus status) => status switch
|
|
{
|
|
BuildDiffStatus.InSync => "status-in-sync",
|
|
BuildDiffStatus.LocalOnly => "status-local-only",
|
|
BuildDiffStatus.RemoteOnly => "status-remote-only",
|
|
BuildDiffStatus.Modified => "status-modified",
|
|
BuildDiffStatus.Placeholder => "status-placeholder",
|
|
_ => ""
|
|
};
|
|
}
|