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

Improved site isolation switch (#191)

This commit is contained in:
2022-09-05 21:09:25 +02:00
parent 8d46fa8a4e
commit d2502cfba2
3 changed files with 35 additions and 29 deletions

View File

@ -1733,7 +1733,7 @@
CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES; COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 955; CURRENT_PROJECT_VERSION = 960;
DEBUG = YES; DEBUG = YES;
DEVELOPMENT_TEAM = 8M54J5J787; DEVELOPMENT_TEAM = 8M54J5J787;
ENABLE_HARDENED_RUNTIME = YES; ENABLE_HARDENED_RUNTIME = YES;
@ -1760,7 +1760,7 @@
CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES; COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 955; CURRENT_PROJECT_VERSION = 960;
DEBUG = NO; DEBUG = NO;
DEVELOPMENT_TEAM = 8M54J5J787; DEVELOPMENT_TEAM = 8M54J5J787;
ENABLE_HARDENED_RUNTIME = YES; ENABLE_HARDENED_RUNTIME = YES;

View File

@ -42,14 +42,15 @@ extension DomainListVC {
addDisabledIsolation(to: menu) addDisabledIsolation(to: menu)
} }
addUnlink(to: menu, with: site) menu.addItem(HeaderView.asMenuItem(text: "domain_list.actions".localized))
addToggleSecure(to: menu, secured: site.secured) addToggleSecure(to: menu, secured: site.secured)
addUnlink(to: menu, with: site)
tableView.menu = menu tableView.menu = menu
} }
private func addSystemApps(to menu: NSMenu) { private func addSystemApps(to menu: NSMenu) {
menu.addItem(withTitle: "domain_list.system_apps".localized, action: nil, keyEquivalent: "") menu.addItem(HeaderView.asMenuItem(text: "domain_list.system_apps".localized))
menu.addItem( menu.addItem(
withTitle: "domain_list.open_in_finder".localized, withTitle: "domain_list.open_in_finder".localized,
action: #selector(self.openInFinder), action: #selector(self.openInFinder),
@ -70,7 +71,7 @@ extension DomainListVC {
private func addDetectedApps(to menu: NSMenu) { private func addDetectedApps(to menu: NSMenu) {
if !applications.isEmpty { if !applications.isEmpty {
menu.addItem(NSMenuItem.separator()) menu.addItem(NSMenuItem.separator())
menu.addItem(withTitle: "domain_list.detected_apps".localized, action: nil, keyEquivalent: "") menu.addItem(HeaderView.asMenuItem(text: "domain_list.detected_apps".localized))
for editor in applications { for editor in applications {
let editorMenuItem = EditorMenuItem( let editorMenuItem = EditorMenuItem(
@ -96,38 +97,40 @@ extension DomainListVC {
} }
private func addDisabledIsolation(to menu: NSMenu) { private func addDisabledIsolation(to menu: NSMenu) {
menu.addItem(HeaderView.asMenuItem(text: "domain_list.site_isolation".localized))
menu.addItem(withTitle: "domain_list.isolation_unavailable".localized, action: nil, keyEquivalent: "") menu.addItem(withTitle: "domain_list.isolation_unavailable".localized, action: nil, keyEquivalent: "")
menu.addItem(NSMenuItem.separator()) menu.addItem(NSMenuItem.separator())
} }
private func addIsolate(to menu: NSMenu, with site: ValetSite) { private func addIsolate(to menu: NSMenu, with site: ValetSite) {
if site.isolatedPhpVersion == nil { var items: [NSMenuItem] = []
// ISOLATION POSSIBLE
let isolationMenuItem = NSMenuItem(title: "domain_list.isolate".localized, action: nil, keyEquivalent: "")
let submenu = NSMenu()
submenu.addItem(withTitle: "Choose a PHP version", action: nil, keyEquivalent: "")
for version in PhpEnv.shared.availablePhpVersions.reversed() {
let item = PhpMenuItem(
title: "Always use PHP \(version)",
action: #selector(self.isolateSite),
keyEquivalent: ""
)
item.version = version
submenu.addItem(item)
}
menu.setSubmenu(submenu, for: isolationMenuItem)
menu.addItem(isolationMenuItem) for version in PhpEnv.shared.availablePhpVersions.reversed() {
menu.addItem(NSMenuItem.separator()) let item = PhpMenuItem(
} else { title: "domain_list.always_use_php".localized(version),
// REMOVE ISOLATION POSSIBLE action: #selector(self.isolateSite),
menu.addItem(
withTitle: "domain_list.remove_isolation".localized,
action: #selector(self.removeIsolatedSite),
keyEquivalent: "" keyEquivalent: ""
) )
menu.addItem(NSMenuItem.separator()) if site.servingPhpVersion == version && site.isolatedPhpVersion != nil {
item.state = .on
item.action = nil
}
item.version = version
items.append(item)
} }
// Add the option to remove site isolation
if site.isolatedPhpVersion != nil {
items.append(NSMenuItem.separator())
items.append(NSMenuItem(
title: "domain_list.remove_isolation".localized,
action: #selector(self.removeIsolatedSite)
))
}
menu.addItem(HeaderView.asMenuItem(text: "domain_list.site_isolation".localized))
menu.addItem(NSMenuItem(title: "domain_list.isolate".localized, submenu: items))
menu.addItem(NSMenuItem.separator())
} }
private func addToggleSecure(to menu: NSMenu, secured: Bool) { private func addToggleSecure(to menu: NSMenu, secured: Bool) {

View File

@ -167,10 +167,13 @@
// SITE LIST ACTIONS // SITE LIST ACTIONS
"domain_list.isolate" = "Isolate Domain"; "domain_list.isolate" = "Switch PHP Version";
"domain_list.site_isolation" = "Site Isolation";
"domain_list.remove_isolation" = "Remove Isolation"; "domain_list.remove_isolation" = "Remove Isolation";
"domain_list.always_use_php" = "Always use PHP %@";
"domain_list.isolation_unavailable" = "Isolation Not Supported (in Valet 2)"; "domain_list.isolation_unavailable" = "Isolation Not Supported (in Valet 2)";
"domain_list.actions" = "Actions";
"domain_list.unlink" = "Unlink Directory"; "domain_list.unlink" = "Unlink Directory";
"domain_list.secure" = "Secure Domain"; "domain_list.secure" = "Secure Domain";
"domain_list.unsecure" = "Unsecure Domain"; "domain_list.unsecure" = "Unsecure Domain";