1
0
mirror of https://github.com/nicoverbruggen/phpmon.git synced 2025-08-07 12:00:09 +02:00

🔧 Learn more about presets

This commit is contained in:
2022-06-07 20:10:49 +02:00
parent f95eb7023f
commit 2229f01eb0
4 changed files with 72 additions and 17 deletions

View File

@ -25,7 +25,7 @@ PHP Monitor is a universal application that runs natively on Apple Silicon **and
* macOS 11 Big Sur or higher (supports macOS 12 Monterey)
* Homebrew is installed in `/usr/local/homebrew` or `/opt/homebrew`
* Homebrew `php` formula is installed
* Laravel Valet 2.16 or newer (supports Valet 3)
* Laravel Valet 3 recommended (but compatible with Valet 2)
_You may need to update your Valet installation to keep everything working if a major version update of PHP has been released. You can do this by running `composer global update && valet install`. Some features are not supported when running Valet 2._

View File

@ -180,6 +180,20 @@ extension MainMenu {
}
}
@objc func showPresetHelp() {
BetterAlert().withInformation(
title: "preset_help_title".localized,
subtitle: "preset_help_info".localized,
description: "preset_help_desc".localized
)
.withPrimary(text: "OK")
.withTertiary(text: "", action: { alert in
NSWorkspace.shared.open(Constants.Urls.FrequentlyAskedQuestions)
alert.close(with: .OK)
})
.show()
}
@objc func openPhpInfo() {
var url: URL?

View File

@ -66,13 +66,41 @@ extension StatusMenu {
func addPresetsMenuItem() {
if Preferences.custom.presets.isEmpty {
addEmptyPresetHelp()
return
}
let presets = NSMenuItem(title: "Configuration Presets", action: nil, keyEquivalent: "")
addLoadedPresets()
}
func addEmptyPresetHelp() {
let presets = NSMenuItem(title: "mi_presets_title".localized, action: nil, keyEquivalent: "")
let presetsMenu = NSMenu()
presetsMenu.addItem(NSMenuItem(title: "mi_no_presets".localized, action: nil, keyEquivalent: ""))
presetsMenu.addItem(NSMenuItem.separator())
presetsMenu.addItem(HeaderView.asMenuItem(text: "Apply Configuration Presets"))
presetsMenu.addItem(NSMenuItem(
title: "mi_set_up_presets".localized,
action: #selector(MainMenu.showPresetHelp),
keyEquivalent: "")
)
presetsMenu.items.forEach { $0.target = MainMenu.shared }
self.setSubmenu(presetsMenu, for: presets)
self.addItem(presets)
return
}
func addLoadedPresets() {
let presets = NSMenuItem(title: "mi_presets_title".localized, action: nil, keyEquivalent: "")
let presetsMenu = NSMenu()
presetsMenu.addItem(NSMenuItem.separator())
presetsMenu.addItem(HeaderView.asMenuItem(text: "mi_apply_presets_title".localized))
for preset in Preferences.custom.presets {
let presetMenuItem = PresetMenuItem(
@ -86,13 +114,6 @@ extension StatusMenu {
options: [.documentType: NSAttributedString.DocumentType.html],
documentAttributes: nil
) {
/*
attributedString.addAttribute(
.font,
value: NSFont.systemFont(ofSize: 12),
range: NSRange(location: 0, length: attributedString.length)
)
*/
presetMenuItem.attributedTitle = attributedString
}
@ -102,15 +123,17 @@ extension StatusMenu {
presetsMenu.addItem(NSMenuItem.separator())
presetsMenu.addItem(NSMenuItem(
title: "Revert to Previous Configuration...",
title: "mi_revert_to_prev_config".localized,
action: PresetHelper.rollbackPreset != nil
? #selector(MainMenu.rollbackPreset)
: nil,
? #selector(MainMenu.rollbackPreset)
: nil,
keyEquivalent: ""
))
presetsMenu.addItem(NSMenuItem.separator())
presetsMenu.addItem(NSMenuItem(
title: "\(Preferences.custom.presets.count) profiles loaded from configuration file",
title: "mi_profiles_loaded".localized(
Preferences.custom.presets.count
),
action: nil, keyEquivalent: "")
)
for item in presetsMenu.items {
@ -133,7 +156,7 @@ extension StatusMenu {
let xdebugModesMenu = NSMenu()
let activeModes = Xdebug.activeModes
xdebugModesMenu.addItem(HeaderView.asMenuItem(text: "Available Modes"))
xdebugModesMenu.addItem(HeaderView.asMenuItem(text: "mi_xdebug_available_modes".localized))
for mode in Xdebug.modes {
let item = XdebugMenuItem(
@ -147,9 +170,9 @@ extension StatusMenu {
xdebugModesMenu.addItem(item)
}
xdebugModesMenu.addItem(HeaderView.asMenuItem(text: "Actions"))
xdebugModesMenu.addItem(HeaderView.asMenuItem(text: "mi_xdebug_actions".localized))
xdebugModesMenu.addItem(
withTitle: "Disable All",
withTitle: "mi_xdebug_disable_all".localized,
action: #selector(MainMenu.disableAllXdebugModes),
keyEquivalent: ""
)

View File

@ -63,6 +63,24 @@
"mi_quit" = "Quit PHP Monitor";
"mi_about" = "About PHP Monitor";
"mi_presets_title" = "Configuration Presets";
"mi_apply_presets_title" = "Apply Configuration Presets";
"mi_revert_to_prev_config" = "Revert to Previous Configuration...";
"mi_profiles_loaded" = "%i profiles loaded from configuration file";
"mi_no_presets" = "No presets available.";
"mi_set_up_presets" = "Learn more about presets...";
"mi_xdebug_available_modes" = "Available Modes";
"mi_xdebug_actions" = "Actions";
"mi_xdebug_disable_all" = "Disable All Modes";
// PRESET LOADING
"preset_help_title" = "Working with Configuration Presets";
"preset_help_info" = "You can set up configuration presets in the config.json file, located in ~/.config/phpmon/config.json. These presets can apply a selection of configuration values all at once. This is a powerful feature, but currently needs to be set up manually.";
"preset_help_desc" = "After restarting PHP Monitor, all presets found in the file will be loaded. If no presets appear, the file probably could not be parsed correctly.\n\nYou can click the question mark in this alert to go to the FAQ on GitHub, where you can find more information about this feature, including a sample file.";
// MENU ITEMS (if window is open)
"mm_add_folder_as_link" = "Add Folder as Link...";