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:
@ -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._
|
||||
|
||||
|
@ -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?
|
||||
|
||||
|
@ -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: ""
|
||||
)
|
||||
|
@ -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...";
|
||||
|
Reference in New Issue
Block a user