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