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 d4e5208..5f4cdb2 100644 Binary files a/OTRS-Watch.xcodeproj/project.xcworkspace/xcuserdata/linnemann.xcuserdatad/UserInterfaceState.xcuserstate and b/OTRS-Watch.xcodeproj/project.xcworkspace/xcuserdata/linnemann.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/OTRS-Watch.xcodeproj/xcuserdata/linnemann.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/OTRS-Watch.xcodeproj/xcuserdata/linnemann.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist index bf8fb5d..80e6df7 100644 --- a/OTRS-Watch.xcodeproj/xcuserdata/linnemann.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +++ b/OTRS-Watch.xcodeproj/xcuserdata/linnemann.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -10,11 +10,11 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "OTRS-Watch/OTRS.swift" - timestampString = "503498994.361076" + timestampString = "503499740.022029" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "58" - endingLineNumber = "58" + startingLineNumber = "60" + endingLineNumber = "60" landmarkName = "reload(que:)" landmarkType = "7"> @@ -26,11 +26,11 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "OTRS-Watch/OTRS.swift" - timestampString = "503498994.361076" + timestampString = "503499740.022029" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "66" - endingLineNumber = "66" + startingLineNumber = "68" + endingLineNumber = "68" landmarkName = "reload(que:)" landmarkType = "7"> @@ -42,11 +42,11 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "OTRS-Watch/OTRS.swift" - timestampString = "503498994.361076" + timestampString = "503499740.022029" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "43" - endingLineNumber = "43" + startingLineNumber = "45" + endingLineNumber = "45" landmarkName = "reload(que:)" landmarkType = "7"> @@ -90,12 +90,12 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "OTRS-Watch/OTRS.swift" - timestampString = "503498201.457531" + timestampString = "503499740.022029" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "30" - endingLineNumber = "30" - landmarkName = "configure(username_:password_:)" + startingLineNumber = "32" + endingLineNumber = "32" + landmarkName = "configure(baseURL_:username_:password_:)" landmarkType = "7"> diff --git a/OTRS-Watch/AppDelegate.swift b/OTRS-Watch/AppDelegate.swift index 3281e6d..95f634f 100644 --- a/OTRS-Watch/AppDelegate.swift +++ b/OTRS-Watch/AppDelegate.swift @@ -14,9 +14,11 @@ class AppDelegate: NSObject, NSApplicationDelegate { func applicationDidFinishLaunching(_ aNotification: Notification) { // Insert code here to initialize your application - OTRS.sharedInstance.configure(username_: UserDefaults.standard.string(forKey: Constants.USER_SETTINGS.CREDENTIALS.USER)!, password_: UserDefaults.standard.string(forKey: Constants.USER_SETTINGS.CREDENTIALS.PASSWORD)!) - - getTicketsFromOTRS() + if let baseURL = UserDefaults.standard.string(forKey: Constants.USER_SETTINGS.OTRS.BASE_URL) { + OTRS.sharedInstance.configure(baseURL_: baseURL, username_: UserDefaults.standard.string(forKey: Constants.USER_SETTINGS.CREDENTIALS.USER)!, password_: UserDefaults.standard.string(forKey: Constants.USER_SETTINGS.CREDENTIALS.PASSWORD)!) + + getTicketsFromOTRS() + } } func applicationWillTerminate(_ aNotification: Notification) { diff --git a/OTRS-Watch/Base.lproj/Main.storyboard b/OTRS-Watch/Base.lproj/Main.storyboard index e344200..169fd2b 100644 --- a/OTRS-Watch/Base.lproj/Main.storyboard +++ b/OTRS-Watch/Base.lproj/Main.storyboard @@ -933,6 +933,24 @@ + + + + + + + + + + + + + + + + + + @@ -945,6 +963,7 @@ + diff --git a/OTRS-Watch/Constants.swift b/OTRS-Watch/Constants.swift index 9c5b77b..00d8ebf 100644 --- a/OTRS-Watch/Constants.swift +++ b/OTRS-Watch/Constants.swift @@ -22,6 +22,7 @@ struct Constants { } struct OTRS { + static let BASE_URL = "user::setting::otrs::url::base" static let QUEUE = "user::setting::otrs::queue" } } diff --git a/OTRS-Watch/OTRS.swift b/OTRS-Watch/OTRS.swift index bede9d2..594ca8d 100644 --- a/OTRS-Watch/OTRS.swift +++ b/OTRS-Watch/OTRS.swift @@ -18,6 +18,7 @@ class OTRS { return Singleton.instance } + var baseURL : String = ""; var username : String = ""; var password : String = ""; @@ -26,7 +27,8 @@ class OTRS { //MARK: init - func configure(username_:String, password_:String) { + func configure(baseURL_:String, username_:String, password_:String) { + self.baseURL = baseURL_ self.username = username_ self.password = password_ } @@ -126,10 +128,11 @@ class OTRS { } private func buildURLForGettingListByState(forState:String, queID:Int) -> String { - return "http://saeotrs01.sae.intra/otrs/nph-genericinterface.pl/Webservice/GenericTicketConnectorREST/Ticket?UserLogin=\(self.username)&Password=\(self.password)&QueueIDs=\(queID)&States=\(forState)" + // example base url: http://saeotrs01.sae.intra/otrs/nph-genericinterface.pl/Webservice/GenericTicketConnectorREST/ + return self.baseURL.appending("Ticket?UserLogin=\(self.username)&Password=\(self.password)&QueueIDs=\(queID)&States=\(forState)") } private func buildURLForGettingTicketInfo(ticketID:Int) -> String { - return "http://saeotrs01.sae.intra/otrs/nph-genericinterface.pl/Webservice/GenericTicketConnectorREST/Ticket/\(ticketID)?UserLogin=\(self.username)&Password=\(self.password)" + return self.baseURL.appending("Ticket/\(ticketID)?UserLogin=\(self.username)&Password=\(self.password)") } } diff --git a/OTRS-Watch/ViewController.swift b/OTRS-Watch/ViewController.swift index 98523ca..04d8071 100644 --- a/OTRS-Watch/ViewController.swift +++ b/OTRS-Watch/ViewController.swift @@ -13,6 +13,7 @@ class ViewController: NSViewController { @IBOutlet weak var txtUsername: NSTextField! @IBOutlet weak var txtPassword: NSSecureTextField! @IBOutlet weak var txtQueue: NSTextField! + @IBOutlet weak var txtBaseURL: NSTextField! @IBOutlet weak var ticketTableView: NSTableView! override func viewDidLoad() { @@ -35,6 +36,10 @@ class ViewController: NSViewController { txtQueue.stringValue = UserDefaults.standard.string(forKey: Constants.USER_SETTINGS.OTRS.QUEUE)! } + if UserDefaults.standard.string(forKey: Constants.USER_SETTINGS.OTRS.BASE_URL) != nil { + txtBaseURL.stringValue = UserDefaults.standard.string(forKey: Constants.USER_SETTINGS.OTRS.BASE_URL)! + } + let nc = NotificationCenter.default nc.addObserver(forName:Notification.Name(rawValue:Constants.NOTIFICATION.TICKET.IN), object:nil, queue:nil, @@ -59,6 +64,8 @@ class ViewController: NSViewController { UserDefaults.standard.setValue(txtPassword.stringValue, forKey: Constants.USER_SETTINGS.CREDENTIALS.PASSWORD) UserDefaults.standard.setValue(txtQueue.stringValue, forKey: Constants.USER_SETTINGS.OTRS.QUEUE) + + UserDefaults.standard.setValue(txtBaseURL.stringValue, forKey: Constants.USER_SETTINGS.OTRS.BASE_URL) }