1
0
mirror of https://github.com/nicoverbruggen/phpmon.git synced 2025-11-07 21:20:07 +01:00

🏗 WIP: Warning manager

This commit is contained in:
2022-08-09 21:55:59 +02:00
parent f90925ee17
commit c1c7561361
9 changed files with 62 additions and 11 deletions

View File

@@ -149,6 +149,8 @@
C473319F2470923A009A0597 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = C473319E2470923A009A0597 /* Localizable.strings */; }; C473319F2470923A009A0597 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = C473319E2470923A009A0597 /* Localizable.strings */; };
C47331A2247093B7009A0597 /* StatusMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = C47331A1247093B7009A0597 /* StatusMenu.swift */; }; C47331A2247093B7009A0597 /* StatusMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = C47331A1247093B7009A0597 /* StatusMenu.swift */; };
C474B00624C0E98C00066A22 /* LocalNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = C474B00524C0E98C00066A22 /* LocalNotification.swift */; }; C474B00624C0E98C00066A22 /* LocalNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = C474B00524C0E98C00066A22 /* LocalNotification.swift */; };
C47699EF28A2F2A30060FEB8 /* WarningManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = C47699EE28A2F2A30060FEB8 /* WarningManager.swift */; };
C47699F128A2F3150060FEB8 /* Warning.swift in Sources */ = {isa = PBXBuildFile; fileRef = C47699F028A2F3150060FEB8 /* Warning.swift */; };
C476FF9822B0DD830098105B /* Alert.swift in Sources */ = {isa = PBXBuildFile; fileRef = C476FF9722B0DD830098105B /* Alert.swift */; }; C476FF9822B0DD830098105B /* Alert.swift in Sources */ = {isa = PBXBuildFile; fileRef = C476FF9722B0DD830098105B /* Alert.swift */; };
C4811D2422D70A4700B5F6B3 /* App.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4811D2322D70A4700B5F6B3 /* App.swift */; }; C4811D2422D70A4700B5F6B3 /* App.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4811D2322D70A4700B5F6B3 /* App.swift */; };
C4811D2A22D70F9A00B5F6B3 /* MainMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4811D2922D70F9A00B5F6B3 /* MainMenu.swift */; }; C4811D2A22D70F9A00B5F6B3 /* MainMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4811D2922D70F9A00B5F6B3 /* MainMenu.swift */; };
@@ -385,6 +387,8 @@
C473319E2470923A009A0597 /* Localizable.strings */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; path = Localizable.strings; sourceTree = "<group>"; }; C473319E2470923A009A0597 /* Localizable.strings */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; path = Localizable.strings; sourceTree = "<group>"; };
C47331A1247093B7009A0597 /* StatusMenu.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StatusMenu.swift; sourceTree = "<group>"; }; C47331A1247093B7009A0597 /* StatusMenu.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StatusMenu.swift; sourceTree = "<group>"; };
C474B00524C0E98C00066A22 /* LocalNotification.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocalNotification.swift; sourceTree = "<group>"; }; C474B00524C0E98C00066A22 /* LocalNotification.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocalNotification.swift; sourceTree = "<group>"; };
C47699EE28A2F2A30060FEB8 /* WarningManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WarningManager.swift; sourceTree = "<group>"; };
C47699F028A2F3150060FEB8 /* Warning.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Warning.swift; sourceTree = "<group>"; };
C476FF9722B0DD830098105B /* Alert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Alert.swift; sourceTree = "<group>"; }; C476FF9722B0DD830098105B /* Alert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Alert.swift; sourceTree = "<group>"; };
C4811D2322D70A4700B5F6B3 /* App.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = App.swift; sourceTree = "<group>"; }; C4811D2322D70A4700B5F6B3 /* App.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = App.swift; sourceTree = "<group>"; };
C4811D2922D70F9A00B5F6B3 /* MainMenu.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainMenu.swift; sourceTree = "<group>"; }; C4811D2922D70F9A00B5F6B3 /* MainMenu.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainMenu.swift; sourceTree = "<group>"; };
@@ -680,6 +684,8 @@
C422DDAB28A2DAA100CEAC97 /* Warnings */ = { C422DDAB28A2DAA100CEAC97 /* Warnings */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
C47699F028A2F3150060FEB8 /* Warning.swift */,
C47699EE28A2F2A30060FEB8 /* WarningManager.swift */,
C422DDAC28A2DAC600CEAC97 /* WarningsWindowController.swift */, C422DDAC28A2DAC600CEAC97 /* WarningsWindowController.swift */,
); );
path = Warnings; path = Warnings;
@@ -1258,6 +1264,7 @@
isa = PBXSourcesBuildPhase; isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
C47699EF28A2F2A30060FEB8 /* WarningManager.swift in Sources */,
C4ACA38F25C754C100060C66 /* PhpExtension.swift in Sources */, C4ACA38F25C754C100060C66 /* PhpExtension.swift in Sources */,
C4D8016622B1584700C6DA1B /* Startup.swift in Sources */, C4D8016622B1584700C6DA1B /* Startup.swift in Sources */,
C42C49DB27C2806F0074ABAC /* MainMenu+FixMyValet.swift in Sources */, C42C49DB27C2806F0074ABAC /* MainMenu+FixMyValet.swift in Sources */,
@@ -1324,6 +1331,7 @@
5420395F2613607600FB00FA /* Preferences.swift in Sources */, 5420395F2613607600FB00FA /* Preferences.swift in Sources */,
C48D0C9325CC804200CC7490 /* XibLoadable.swift in Sources */, C48D0C9325CC804200CC7490 /* XibLoadable.swift in Sources */,
54FCFD2A276C8AA4004CE748 /* CheckboxPreferenceView.swift in Sources */, 54FCFD2A276C8AA4004CE748 /* CheckboxPreferenceView.swift in Sources */,
C47699F128A2F3150060FEB8 /* Warning.swift in Sources */,
54D9E0B227E4F51E003B9AD9 /* HotKeysController.swift in Sources */, 54D9E0B227E4F51E003B9AD9 /* HotKeysController.swift in Sources */,
C4811D2A22D70F9A00B5F6B3 /* MainMenu.swift in Sources */, C4811D2A22D70F9A00B5F6B3 /* MainMenu.swift in Sources */,
C40C7F3027722E8D00DDDCDC /* Logger.swift in Sources */, C40C7F3027722E8D00DDDCDC /* Logger.swift in Sources */,

View File

@@ -94,7 +94,6 @@ extension MainMenu {
Log.info("Should present the first launch screen!") Log.info("Should present the first launch screen!")
DispatchQueue.main.async { DispatchQueue.main.async {
// OnboardingWindowController.show() // OnboardingWindowController.show()
WarningsWindowController.show()
} }
} }

View File

@@ -174,6 +174,10 @@ class MainMenu: NSObject, NSWindowDelegate, NSMenuDelegate, PhpSwitcherDelegate
PreferencesWindowController.show() PreferencesWindowController.show()
} }
@objc func openWarnings() {
WarningsWindowController.show()
}
@objc func openDomainList() { @objc func openDomainList() {
DomainListVC.show() DomainListVC.show()
} }

View File

@@ -76,6 +76,10 @@ class StatusMenu: NSMenu {
func addCoreMenuItems() { func addCoreMenuItems() {
self.addItem(NSMenuItem.separator()) self.addItem(NSMenuItem.separator())
if (WarningManager.hasWarnings()) {
self.addItem(NSMenuItem(title: "mi_warnings".localized(2),
action: #selector(MainMenu.openWarnings), keyEquivalent: ""))
}
self.addItem(NSMenuItem(title: "mi_preferences".localized, self.addItem(NSMenuItem(title: "mi_preferences".localized,
action: #selector(MainMenu.openPrefs), keyEquivalent: ",")) action: #selector(MainMenu.openPrefs), keyEquivalent: ","))
self.addItem(NSMenuItem(title: "mi_check_for_updates".localized, self.addItem(NSMenuItem(title: "mi_check_for_updates".localized,

View File

@@ -13,12 +13,17 @@ struct WarningListView: View {
List { List {
VStack(alignment: .leading) { VStack(alignment: .leading) {
WarningView( WarningView(
title: "warnings.arm_compatibility_title".localized, title: "warnings.arm_compatibility_title",
description: "warnings.arm_compatibility.description".localized, description: "warnings.arm_compatibility.description",
documentationUrl: "https://phpmon.app/documentation/apple-silicon-transition" documentationUrl: "https://phpmon.app/documentation/apple-silicon-transition"
) )
Divider() Divider()
}.frame(height: 90) WarningView(
title: "warnings.helper_permissions_title",
description: "warnings.helper_permissions.description"
)
Divider()
}
} }
.navigationTitle("Warnings") .navigationTitle("Warnings")

View File

@@ -15,24 +15,24 @@ struct WarningView: View {
var body: some View { var body: some View {
VStack(alignment: .leading) { VStack(alignment: .leading) {
HStack(spacing: 5) { HStack(spacing: 10) {
Image(systemName: "exclamationmark.triangle.fill") Image(systemName: "exclamationmark.triangle.fill")
.resizable() .resizable()
.frame(width: 25, height: 25) .frame(width: 18, height: 18)
.padding()
.foregroundColor(Color.orange) .foregroundColor(Color.orange)
.padding()
VStack(alignment: .leading, spacing: 5) { VStack(alignment: .leading, spacing: 5) {
Text(title.localizedForSwiftUI) Text(title.localizedForSwiftUI)
.fontWeight(.bold) .fontWeight(.bold)
Text(description.localizedForSwiftUI) Text(description.localizedForSwiftUI)
.font(.body) .font(.system(size: 12))
} }
if documentationUrl != nil { if documentationUrl != nil {
Button("Learn More") { Button("Learn More") {
NSWorkspace.shared.open(URL(string: documentationUrl!)!) NSWorkspace.shared.open(URL(string: documentationUrl!)!)
} }.padding()
} }
}.padding() }.padding(5)
} }
} }
} }
@@ -41,7 +41,8 @@ struct WarningView_Previews: PreviewProvider {
static var previews: some View { static var previews: some View {
WarningView( WarningView(
title: "warnings.helper_permissions_title", title: "warnings.helper_permissions_title",
description: "warnings.helper_permissions.description" description: "warnings.helper_permissions.description",
documentationUrl: "https://nicoverbruggen.be"
) )
WarningView( WarningView(
title: "warnings.helper_permissions_title", title: "warnings.helper_permissions_title",

View File

@@ -0,0 +1,13 @@
//
// Warning.swift
// PHP Monitor
//
// Created by Nico Verbruggen on 09/08/2022.
// Copyright © 2022 Nico Verbruggen. All rights reserved.
//
import Foundation
struct Warning {
}

View File

@@ -0,0 +1,15 @@
//
// WarningManager.swift
// PHP Monitor
//
// Created by Nico Verbruggen on 09/08/2022.
// Copyright © 2022 Nico Verbruggen. All rights reserved.
//
import Foundation
class WarningManager {
// TODO: Singleton initialization at launch
}

View File

@@ -55,6 +55,8 @@
"mi_detected_extensions" = "Detected Extensions"; "mi_detected_extensions" = "Detected Extensions";
"mi_no_extensions_detected" = "No additional extensions detected."; "mi_no_extensions_detected" = "No additional extensions detected.";
"mi_warnings" = "⚠️ %i Warnings...";
"mi_valet" = "Laravel Valet"; "mi_valet" = "Laravel Valet";
"mi_domain_list" = "View Domains List..."; "mi_domain_list" = "View Domains List...";