From 7764d94d76ffd44f401f1c58049affb24150ac92 Mon Sep 17 00:00:00 2001 From: Gerrit Linnemann Date: Thu, 29 Dec 2016 07:59:37 +0100 Subject: [PATCH] Multiple Queues --- .../UserInterfaceState.xcuserstate | Bin 29243 -> 29886 bytes .../xcdebugger/Breakpoints_v2.xcbkptlist | 24 +++++++++++++++--- OTRS-Watch/AppDelegate.swift | 4 +-- OTRS-Watch/Constants.swift | 6 +++++ .../Extension/ViewControllerExtension.swift | 12 +++++++-- OTRS-Watch/OTRS.swift | 23 +++++++++-------- OTRS-Watch/WindowController.swift | 17 ++++++++----- 7 files changed, 61 insertions(+), 25 deletions(-) diff --git a/OTRS-Watch.xcodeproj/project.xcworkspace/xcuserdata/linnemann.xcuserdatad/UserInterfaceState.xcuserstate b/OTRS-Watch.xcodeproj/project.xcworkspace/xcuserdata/linnemann.xcuserdatad/UserInterfaceState.xcuserstate index 1ef9e49abc99fc727c15a0041dec8abd3f8e83e6..f54f2336f6afc013ee20a6e260be7c2ccb013e2c 100644 GIT binary patch delta 17074 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 delta 16956 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 + + + + diff --git a/OTRS-Watch/AppDelegate.swift b/OTRS-Watch/AppDelegate.swift index 24bb1cd..45fcd51 100644 --- a/OTRS-Watch/AppDelegate.swift +++ b/OTRS-Watch/AppDelegate.swift @@ -41,8 +41,8 @@ class AppDelegate: NSObject, NSApplicationDelegate { private func getTicketsFromOTRS() { - if let que:Int = Int(UserDefaults.standard.string(forKey: Constants.USER_SETTINGS.OTRS.QUEUE)!) { - OTRS.sharedInstance.reload(que: que) + if let queues:String = UserDefaults.standard.string(forKey: Constants.USER_SETTINGS.OTRS.QUEUE) { + OTRS.sharedInstance.reload(queues: queues) } } diff --git a/OTRS-Watch/Constants.swift b/OTRS-Watch/Constants.swift index 032cdaa..6a3fe49 100644 --- a/OTRS-Watch/Constants.swift +++ b/OTRS-Watch/Constants.swift @@ -43,6 +43,12 @@ struct Constants { static let ERROR = "nf::ticket::action::error" } } + + struct TABLE { + struct TICKTS { + static let GET_COUNT = "nf::ticket::table::tickets::get::count" + } + } } struct TABS { diff --git a/OTRS-Watch/Extension/ViewControllerExtension.swift b/OTRS-Watch/Extension/ViewControllerExtension.swift index afda35a..177bfbe 100644 --- a/OTRS-Watch/Extension/ViewControllerExtension.swift +++ b/OTRS-Watch/Extension/ViewControllerExtension.swift @@ -18,6 +18,9 @@ extension ViewController: NSTableViewDataSource, NSTableViewDelegate { } func numberOfRows(in tableView: NSTableView) -> Int { + NotificationCenter.default.post(name:Notification.Name(rawValue:Constants.NOTIFICATION.TABLE.TICKTS.GET_COUNT), + object: nil, + userInfo: ["message":OTRS.sharedInstance.ticketDictionary.count]) return OTRS.sharedInstance.ticketDictionary.count } @@ -27,11 +30,16 @@ extension ViewController: NSTableViewDataSource, NSTableViewDelegate { var text: String = "" var cellIdentifier: String = "" - guard row < OTRS.sharedInstance.ticketDictionary.count else { + let tickets:Array = OTRS.sharedInstance.ticketDictionary + let ticketCount = tickets.count + + //print("🖥 Compare row \(row) with ticket count \(ticketCount) for displaying cell for row") + + guard row < ticketCount else { return nil } - if let item:Ticket = OTRS.sharedInstance.ticketDictionary[row] as Ticket { + if let item:Ticket = tickets[row] as Ticket { if tableColumn == self.ticketTableView.tableColumns[0] { cellIdentifier = CellIdentifiers.OTRSTicketNumber image = nil diff --git a/OTRS-Watch/OTRS.swift b/OTRS-Watch/OTRS.swift index b4d3b1b..c2440d5 100644 --- a/OTRS-Watch/OTRS.swift +++ b/OTRS-Watch/OTRS.swift @@ -41,16 +41,15 @@ class OTRS { //MARK: REST - func reload(que:Int) { - let nc = NotificationCenter.default + func reload(queues:String) { let config = URLSessionConfiguration.default // Session configuration let session = URLSession(configuration: config) // Load configuration into session - let urlNew = URL(string: buildURLForGettingNew(queID: que)) - let urlOpen = URL(string: buildURLForGettingOpen(queID: que)) + let urlNew = URL(string: buildURLForGettingNew(queues: queues)) + let urlOpen = URL(string: buildURLForGettingOpen(queues: queues)) self.ticketDictionary.removeAll() - nc.post(name:Notification.Name(rawValue:Constants.NOTIFICATION.TICKET.ACTION.CONNECTED), + NotificationCenter.default.post(name:Notification.Name(rawValue:Constants.NOTIFICATION.TICKET.ACTION.CONNECTED), object: nil, userInfo: ["message":""]) @@ -154,16 +153,18 @@ class OTRS { //MARK: Build urls - private func buildURLForGettingNew(queID:Int) -> String { - return buildURLForGettingListByState(forState: "new", queID: queID) + private func buildURLForGettingNew(queues:String) -> String { + return buildURLForGettingListByState(forState: "new", queues: queues) } - private func buildURLForGettingOpen(queID:Int) -> String { - return buildURLForGettingListByState(forState: "open", queID: queID) + private func buildURLForGettingOpen(queues:String) -> String { + return buildURLForGettingListByState(forState: "open", queues: queues) } - private func buildURLForGettingListByState(forState:String, queID:Int) -> String { - return self.baseURL.appending("Ticket?UserLogin=\(self.username)&Password=\(self.password)&QueueIDs=\(queID)&States=\(forState)") + private func buildURLForGettingListByState(forState:String, queues:String) -> String { + let queuesQueryStr = queues.replacingOccurrences(of: ",", with: "&QueueIDs=") + let requestURL = self.baseURL.appending("Ticket?UserLogin=\(self.username)&Password=\(self.password)&QueueIDs=\(queuesQueryStr)&States=\(forState)") + return requestURL } private func buildURLForGettingTicketInfo(ticketID:Int) -> String { diff --git a/OTRS-Watch/WindowController.swift b/OTRS-Watch/WindowController.swift index 2ec642c..eb0a2e4 100644 --- a/OTRS-Watch/WindowController.swift +++ b/OTRS-Watch/WindowController.swift @@ -40,14 +40,17 @@ class WindowController: NSWindowController { nc.addObserver(forName:Notification.Name(rawValue:Constants.NOTIFICATION.TICKET.LIST.UPDATED), object:nil, queue:nil, using:catchUpdateFinished) + nc.addObserver(forName:Notification.Name(rawValue:Constants.NOTIFICATION.TABLE.TICKTS.GET_COUNT), + object:nil, queue:nil, + using:catchTableCountRequested) nc.addObserver(forName:Notification.Name(rawValue:Constants.NOTIFICATION.TICKET.ACTION.ERROR), object:nil, queue:nil, using:catchError) } @IBAction func toolbarActionReload(_ sender: NSToolbarItem) { - if let que:Int = Int(UserDefaults.standard.string(forKey: Constants.USER_SETTINGS.OTRS.QUEUE)!) { - OTRS.sharedInstance.reload(que: que) + if let queues:String = UserDefaults.standard.string(forKey: Constants.USER_SETTINGS.OTRS.QUEUE) { + OTRS.sharedInstance.reload(queues: queues) } self.viewController.tabView.selectTabViewItem(at: Constants.TABS.TAB.OTRS) @@ -94,17 +97,19 @@ class WindowController: NSWindowController { self.activity.stringValue = "" }) + debugStatusBarContent() + } + + func catchTableCountRequested(notification:Notification) -> Void { guard let userInfo = notification.userInfo else { return } - + DispatchQueue.main.async(execute: { - if let ticketCount:Int = userInfo["count"] as? Int { + if let ticketCount:Int = userInfo["message"] as? Int { self.ticketCount.title = "\(ticketCount)" } }) - - debugStatusBarContent() } func catchError(notification:Notification) -> Void {