1
0
mirror of https://github.com/nicoverbruggen/phpmon.git synced 2025-08-07 03:50:08 +02:00
Files
app/phpmon/Modules/PHP Config Editor/UI/ConfigManagerView.swift
2023-09-13 18:13:51 +02:00

94 lines
3.3 KiB
Swift

//
// ConfigManagerView.swift
// PHP Monitor
//
// Created by Nico Verbruggen on 18/07/2023.
// Copyright © 2023 Nico Verbruggen. All rights reserved.
//
import Foundation
import SwiftUI
struct ConfigManagerView: View {
var preferences: [PhpPreference] = [
BytePhpPreference(key: "memory_limit"),
BytePhpPreference(key: "post_max_size"),
// BoolPhpPreference(key: "file_uploads"),
BytePhpPreference(key: "upload_max_filesize")
]
var body: some View {
VStack {
HStack(alignment: .center, spacing: 15) {
Image(systemName: "gearshape.fill")
.resizable()
.frame(width: 40, height: 40)
.foregroundColor(Color.blue)
.padding(12)
VStack(alignment: .leading, spacing: 5) {
Text("confman.title".localizedForSwiftUI)
.bold()
.font(.system(size: 12))
.frame(maxWidth: .infinity, alignment: .leading)
Text("confman.description".localizedForSwiftUI)
.font(.system(size: 12))
.fixedSize(horizontal: false, vertical: true)
.scaledToFit()
.lineLimit(4)
}
}
.padding(10)
Divider()
VStack(spacing: 5) {
VStack {
ForEach(preferences, id: \.key) { preference in
PreferenceContainer(
name: "php_ini.\(preference.key).title",
description: "php_ini.\(preference.key).description"
) {
if let preference = preference as? BytePhpPreference {
ByteLimitView(preference: preference)
}
/*
if let preference = preference as? BoolPhpPreference {
Toggle("", isOn: preference.$value)
.toggleStyle(.switch)
.padding(.leading, -10)
}
if let preference = preference as? StringPhpPreference {
TextField("Placeholder", text: preference.$value)
}
*/
}.frame(maxWidth: .infinity)
}
}.padding(10)
Divider()
VStack(alignment: .trailing) {
Button("Close", action: {
App.shared.phpConfigManagerWindowController?.close()
})
}
.padding(.vertical, 10)
.padding(.horizontal, 15)
.frame(
minWidth: 0,
maxWidth: .infinity,
alignment: .topTrailing
)
}
}.frame(maxHeight: 485)
}
}
struct ConfigManagerView_Previews: PreviewProvider {
static var previews: some View {
ConfigManagerView()
.frame(width: 600)
.previewDisplayName("Live Preview")
}
}