mirror of
https://github.com/nicoverbruggen/phpmon.git
synced 2025-08-07 20:10:08 +02:00
96 lines
2.7 KiB
Swift
96 lines
2.7 KiB
Swift
//
|
|
// SiteListWC.swift
|
|
// PHP Monitor
|
|
//
|
|
// Created by Nico Verbruggen on 03/12/2021.
|
|
// Copyright © 2021 Nico Verbruggen. All rights reserved.
|
|
//
|
|
|
|
import Cocoa
|
|
|
|
class SiteListWC: PMWindowController, NSSearchFieldDelegate, NSToolbarDelegate {
|
|
|
|
// MARK: - Window Identifier
|
|
|
|
override var windowName: String {
|
|
return "SiteList"
|
|
}
|
|
|
|
// MARK: - Outlets
|
|
|
|
@IBOutlet weak var searchToolbarItem: NSSearchToolbarItem!
|
|
|
|
// MARK: - Window Lifecycle
|
|
|
|
override func windowDidLoad() {
|
|
super.windowDidLoad()
|
|
self.searchToolbarItem.searchField.delegate = self
|
|
self.searchToolbarItem.searchField.becomeFirstResponder()
|
|
}
|
|
|
|
// MARK: - Search functionality
|
|
|
|
var contentVC: SiteListVC {
|
|
return self.contentViewController as! SiteListVC
|
|
}
|
|
|
|
var searchTimer: Timer?
|
|
|
|
func controlTextDidChange(_ notification: Notification) {
|
|
guard let searchField = notification.object as? NSSearchField else {
|
|
return
|
|
}
|
|
|
|
self.searchTimer?.invalidate()
|
|
|
|
searchTimer = Timer.scheduledTimer(withTimeInterval: 0.3, repeats: false, block: { _ in
|
|
self.contentVC.searchedFor(text: searchField.stringValue)
|
|
})
|
|
}
|
|
|
|
// MARK: - Reload functionality
|
|
|
|
@IBAction func pressedReload(_ sender: Any?) {
|
|
contentVC.reloadSites()
|
|
}
|
|
|
|
@IBAction func pressedAddLink(_ sender: Any?) {
|
|
selectFolder()
|
|
}
|
|
|
|
// MARK: - Add a new site
|
|
|
|
func selectFolder() {
|
|
let dialog = NSOpenPanel()
|
|
dialog.title = "Select a Folder"
|
|
dialog.showsResizeIndicator = true
|
|
dialog.showsHiddenFiles = false
|
|
dialog.allowsMultipleSelection = false
|
|
dialog.canChooseDirectories = true
|
|
dialog.canChooseFiles = false
|
|
|
|
if (dialog.runModal() == NSApplication.ModalResponse.OK) {
|
|
let result = dialog.url
|
|
if (result != nil) {
|
|
let path: String = result!.path
|
|
self.showSitePopup(path)
|
|
}
|
|
}
|
|
}
|
|
|
|
func showSitePopup(_ folder: String) {
|
|
let storyboard = NSStoryboard(name: "Main" , bundle : nil)
|
|
|
|
let windowController = storyboard.instantiateController(
|
|
withIdentifier: "addSiteWindow"
|
|
) as! NSWindowController
|
|
|
|
let viewController = windowController.window!.contentViewController as! AddSiteVC
|
|
viewController.pathControl.url = URL(fileURLWithPath: folder)
|
|
viewController.linkName.stringValue = String(folder.split(separator: "/").last!)
|
|
viewController.updateTextField()
|
|
|
|
self.window?.beginSheet(windowController.window!)
|
|
}
|
|
}
|