mirror of
https://github.com/nicoverbruggen/phpmon.git
synced 2025-08-07 03:50:08 +02:00
👌 Cleanup UI code
This commit is contained in:
@ -21,9 +21,7 @@ struct BrewPhpFormula: Equatable {
|
|||||||
/// The upgrade that is currently available, if it exists.
|
/// The upgrade that is currently available, if it exists.
|
||||||
let upgradeVersion: String?
|
let upgradeVersion: String?
|
||||||
|
|
||||||
#warning("The rebuild attribute should be checked, it can be used to check if a Tap update exists for a pre-release version.")
|
// TODO: A rebuild attribute could be checked, to check if a Tap update exists for a pre-release version
|
||||||
/// A rebuild version, if applicable.
|
|
||||||
// let rebuild: String?
|
|
||||||
|
|
||||||
/// Whether this formula is a stable version of PHP.
|
/// Whether this formula is a stable version of PHP.
|
||||||
let prerelease: Bool
|
let prerelease: Bool
|
||||||
|
@ -29,10 +29,11 @@ class BrewTapFormulae {
|
|||||||
let versionRange = Range(match.range(at: 2), in: file) {
|
let versionRange = Range(match.range(at: 2), in: file) {
|
||||||
// Determine what the extension's name is
|
// Determine what the extension's name is
|
||||||
let phpExtensionName = String(file[phpExtensionRange])
|
let phpExtensionName = String(file[phpExtensionRange])
|
||||||
|
|
||||||
// Determine what PHP version this is for
|
// Determine what PHP version this is for
|
||||||
let phpVersion = String(file[versionRange])
|
let phpVersion = String(file[versionRange])
|
||||||
|
|
||||||
// Create a new BrewPhpExtension object, which will determine whether this extension is installed or not
|
// Create a new BrewPhpExtension object (determines if installed)
|
||||||
let phpExtension = BrewPhpExtension(
|
let phpExtension = BrewPhpExtension(
|
||||||
path: "\(Paths.tapPath)/\(tap)/Formula/\(file)",
|
path: "\(Paths.tapPath)/\(tap)/Formula/\(file)",
|
||||||
name: phpExtensionName,
|
name: phpExtensionName,
|
||||||
|
@ -98,6 +98,44 @@ struct PhpExtensionManagerView: View {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private func dependency(named name: String) -> some View {
|
||||||
|
return Text(name)
|
||||||
|
.font(.system(size: 9))
|
||||||
|
.padding(.horizontal, 5)
|
||||||
|
.padding(.vertical, 1)
|
||||||
|
.background(Color.appPrimary)
|
||||||
|
.foregroundColor(Color.white)
|
||||||
|
.clipShape(Capsule())
|
||||||
|
.fixedSize(horizontal: true, vertical: true)
|
||||||
|
}
|
||||||
|
|
||||||
|
private func extensionLabel(for ext: BrewPhpExtension) -> some View {
|
||||||
|
return Group {
|
||||||
|
if ext.isInstalled {
|
||||||
|
if let dependent = ext.firstDependent(in: self.manager.extensions) {
|
||||||
|
Text("You cannot uninstall this before uninstalling **\(dependent.name)**.")
|
||||||
|
.font(.system(size: 11))
|
||||||
|
.foregroundStyle(.secondary)
|
||||||
|
} else {
|
||||||
|
Text("This extension is installed and can be managed by PHP Monitor.")
|
||||||
|
.font(.system(size: 11))
|
||||||
|
.foregroundStyle(.secondary)
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
if ext.hasAlternativeInstall {
|
||||||
|
Text("This extension is already installed via another source, and cannot be managed.")
|
||||||
|
.font(.system(size: 11))
|
||||||
|
.foregroundStyle(.orange)
|
||||||
|
} else {
|
||||||
|
Text("This extension can be installed.")
|
||||||
|
.font(.system(size: 11))
|
||||||
|
.foregroundStyle(.secondary)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private func listContent(for ext: BrewPhpExtension) -> some View {
|
private func listContent(for ext: BrewPhpExtension) -> some View {
|
||||||
HStack(alignment: .center, spacing: 7.0) {
|
HStack(alignment: .center, spacing: 7.0) {
|
||||||
VStack(alignment: .center, spacing: 0) {
|
VStack(alignment: .center, spacing: 0) {
|
||||||
@ -121,40 +159,12 @@ struct PhpExtensionManagerView: View {
|
|||||||
Text("Depends on:")
|
Text("Depends on:")
|
||||||
.font(.system(size: 10))
|
.font(.system(size: 10))
|
||||||
ForEach(ext.extensionDependencies, id: \.self) {
|
ForEach(ext.extensionDependencies, id: \.self) {
|
||||||
Text($0)
|
dependency(named: $0)
|
||||||
.font(.system(size: 9))
|
|
||||||
.padding(.horizontal, 5)
|
|
||||||
.padding(.vertical, 1)
|
|
||||||
.background(Color.appPrimary)
|
|
||||||
.foregroundColor(Color.white)
|
|
||||||
.clipShape(Capsule())
|
|
||||||
.fixedSize(horizontal: true, vertical: true)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ext.isInstalled {
|
extensionLabel(for: ext)
|
||||||
if let dependent = ext.firstDependent(in: self.manager.extensions) {
|
|
||||||
Text("You cannot uninstall this before uninstalling **\(dependent.name)**.")
|
|
||||||
.font(.system(size: 11))
|
|
||||||
.foregroundStyle(.secondary)
|
|
||||||
} else {
|
|
||||||
Text("This extension is installed and can be managed by PHP Monitor.")
|
|
||||||
.font(.system(size: 11))
|
|
||||||
.foregroundStyle(.secondary)
|
|
||||||
}
|
|
||||||
|
|
||||||
} else {
|
|
||||||
if ext.hasAlternativeInstall {
|
|
||||||
Text("This extension is already installed via another source, and cannot be managed.")
|
|
||||||
.font(.system(size: 11))
|
|
||||||
.foregroundStyle(.orange)
|
|
||||||
} else {
|
|
||||||
Text("This extension can be installed.")
|
|
||||||
.font(.system(size: 11))
|
|
||||||
.foregroundStyle(.secondary)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user