Skip to content

Commit 4fdf961

Browse files
committed
implement UI for transferring packaged between realms
1 parent b8cb79e commit 4fdf961

File tree

11 files changed

+50
-21
lines changed

11 files changed

+50
-21
lines changed

Assets/css/Main.css

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Assets/css/Main.css.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Sources/HTTP/HTTP.Redirect.swift

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ extension HTTP
99
{
1010
case permanent(String)
1111
case temporary(String)
12+
case see(other:String)
1213
}
1314
}
1415
extension HTTP.Redirect
@@ -18,8 +19,9 @@ extension HTTP.Redirect
1819
{
1920
switch self
2021
{
21-
case .permanent(let location): return location
22-
case .temporary(let location): return location
22+
case .permanent(let location): location
23+
case .temporary(let location): location
24+
case .see(let location): location
2325
}
2426
}
2527
}

Sources/HTTPServer/Authorities/Localhost.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ struct Localhost:ServerAuthority
1313
}
1414

1515
@inlinable public static
16-
var scheme:ServerScheme { .https }
16+
var scheme:ServerScheme { .https(port: 8443) }
1717
@inlinable public static
18-
var domain:String { "127.0.0.1" }
18+
var domain:String { "localhost" }
1919
}

Sources/HTTPServer/Channels/HTTP.ServerMessage.swift

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,9 @@ extension HTTP.ServerMessage
5858
{
5959
switch redirect
6060
{
61-
case .temporary: self.init(307)
62-
case .permanent: self.init(308)
61+
case .see: self.init(303)
62+
case .temporary: self.init(307)
63+
case .permanent: self.init(308)
6364
}
6465

6566
self.headers.add(name: "location", value: Authority.url(redirect.location))

Sources/UnidocPages/Responses/Unidoc.EditionsPage.swift

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -202,8 +202,24 @@ extension Unidoc.EditionsPage:ApplicationPage
202202
$0[.dt] = "Realm"
203203
$0[.dd]
204204
{
205-
$0.class = self.realm.map { _ in "realm" }
206-
} = self.realm?.symbol ?? "none"
205+
if let realm:Unidoc.RealmMetadata = self.realm
206+
{
207+
$0[.span] = realm.symbol
208+
209+
guard self.package.realmAligning
210+
else
211+
{
212+
return
213+
}
214+
215+
$0[.span] { $0.class = "placeholder" } = "alignment in progress"
216+
}
217+
else
218+
{
219+
$0[.span] { $0.class = "placeholder" } = "none"
220+
}
221+
222+
}
207223
}
208224

209225
guard self.user?.maintains(package: self.package) ?? !format.secure
@@ -247,7 +263,7 @@ extension Unidoc.EditionsPage:ApplicationPage
247263
{
248264
$0.type = "checkbox"
249265
$0.name = "force"
250-
$0.value = "false"
266+
$0.value = "true"
251267
}
252268

253269
$0[.span] = "Create Realm"

Sources/UnidocPages/Templates/Swiftinit.Tags (ext).swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import URI
33

44
extension Swiftinit.Tags
55
{
6-
static
6+
@inlinable public static
77
subscript(package:Symbol.Package) -> URI
88
{
99
var uri:URI = Self.uri

Sources/UnidocServer/Endpoints/Procedural/Swiftinit.PackageAlignEndpoint.Status.swift

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ extension Swiftinit.PackageAlignEndpoint
77
{
88
enum Status
99
{
10-
case align(Unidoc.Package, to:Unidoc.Realm?)
10+
case align(Unidoc.PackageMetadata, to:Unidoc.Realm?)
1111
case noSuchPackage
1212
case noSuchRealm
1313
}
@@ -18,9 +18,13 @@ extension Swiftinit.PackageAlignEndpoint.Status:HTTP.ServerResponseFactory
1818
{
1919
switch self
2020
{
21-
case .align: .ok("Operation in progress")
22-
case .noSuchPackage: .notFound("No such package")
23-
case .noSuchRealm: .notFound("No such realm")
21+
case .align(let package, to: _):
22+
.redirect(.see(other: "\(Swiftinit.Tags[package.symbol])"))
23+
24+
case .noSuchPackage:
25+
.notFound("No such package")
26+
case .noSuchRealm:
27+
.notFound("No such realm")
2428
}
2529
}
2630
}

Sources/UnidocServer/Endpoints/Procedural/Swiftinit.PackageAlignEndpoint.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ extension Swiftinit.PackageAlignEndpoint:NonblockingEndpoint
5656
return .noSuchPackage
5757
}
5858

59-
return .align(package.id, to: realm)
59+
return .align(package, to: realm)
6060
}
6161

6262
func perform(on server:borrowing Swiftinit.Server,
@@ -66,7 +66,7 @@ extension Swiftinit.PackageAlignEndpoint:NonblockingEndpoint
6666
switch status
6767
{
6868
case .align(let package, let realm):
69-
try? await server.db.unidoc.align(package: package, realm: realm, with: session)
69+
try? await server.db.unidoc.align(package: package.id, realm: realm, with: session)
7070

7171
default:
7272
break

Sources/UnidocServer/Server/HTTP.ServerResponse (ext).swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,11 @@ extension HTTP.ServerResponse
2323
default: return \.unauthorized
2424
}
2525

26-
case .redirect(.temporary, _):
27-
return \.redirectedTemporarily
28-
2926
case .redirect(.permanent, _):
3027
return \.redirectedPermanently
28+
29+
case .redirect(_, _):
30+
return \.redirectedTemporarily
3131
}
3232
}
3333
}

0 commit comments

Comments
 (0)