@@ -13,6 +13,7 @@ class KlusterInviteViewController : UITableViewController {
1313 var users = [ PFUser] ( )
1414 var usersToInvite = [ PFUser] ( )
1515 var kluster : Kluster !
16+ let hud = BLMultiColorLoader . init ( frame: CGRectMake ( 0 , 0 , 40.0 , 40.0 ) )
1617
1718 override func viewDidLoad( ) {
1819 super. viewDidLoad ( )
@@ -25,6 +26,15 @@ class KlusterInviteViewController : UITableViewController {
2526 self . navigationItem. rightBarButtonItem = UIBarButtonItem . init ( title: " Done " , style: . Plain, target: self , action: " inviteDonePressed: " )
2627 self . navigationItem. rightBarButtonItem? . enabled = false
2728
29+ // Add the hud before fetching friends..
30+ // Add progress HUD
31+ self . hud. center = self . view. center
32+ self . hud. lineWidth = 2.0
33+ self . hud. colorArray = [ UIColor . klusterPurpleColor ( ) , UIColor . lightGrayColor ( ) ]
34+ self . view. addSubview ( hud)
35+
36+ self . hud. startAnimation ( )
37+
2838 self . fetchFacebookFriends ( )
2939 }
3040
@@ -93,6 +103,42 @@ class KlusterInviteViewController : UITableViewController {
93103 func inviteDonePressed( sender: UIBarButtonItem) {
94104 // TODO: Send invites...
95105
106+ var userIds = [ String] ( )
107+ for user in self . usersToInvite {
108+ if let userId = user. objectId {
109+ userIds. append ( userId)
110+ }
111+ }
112+
113+ // Disable the bar button item...
114+ if let barButtonItem = self . navigationItem. rightBarButtonItem {
115+ barButtonItem. enabled = false
116+ }
117+
118+ // Add hud - Already added to the view hierarchy
119+ self . hud. startAnimation ( )
120+
121+ KlusterDataSource . inviteUsersToKluster ( userIds, klusterId: self . kluster. id) { ( object, error) -> Void in
122+
123+ // Enable the bar button item...
124+ if let barButtonItem = self . navigationItem. rightBarButtonItem {
125+ barButtonItem. enabled = true
126+ }
127+
128+ // Stop animating the hud..
129+ self . hud. stopAnimation ( )
130+
131+ if error != nil {
132+ let alertController = UIAlertController . init ( title: " Invite Error " , message: " Something went wrong when inviting users to this Kluster. Please try again. " , preferredStyle: . Alert)
133+ let okAction = UIAlertAction . init ( title: " OK " , style: . Default, handler: nil )
134+ alertController. addAction ( okAction)
135+ self . presentViewController ( alertController, animated: true , completion: nil )
136+ } else {
137+ if let navController = self . navigationController {
138+ navController. popViewControllerAnimated ( true )
139+ }
140+ }
141+ }
96142 }
97143
98144
@@ -110,14 +156,6 @@ class KlusterInviteViewController : UITableViewController {
110156 }
111157
112158 private func fetchFacebookFriends( ) {
113- // Add progress HUD
114- let hud = BLMultiColorLoader . init ( frame: CGRectMake ( 0 , 0 , 40.0 , 40.0 ) )
115- hud. center = self . view. center
116- hud. lineWidth = 2.0
117- hud. colorArray = [ UIColor . klusterPurpleColor ( ) , UIColor . lightGrayColor ( ) ]
118- self . view. addSubview ( hud)
119- hud. startAnimation ( )
120-
121159 // Fetch Facebook Friends
122160 let request = FBSDKGraphRequest . init ( graphPath: " me/friends " , parameters: nil , HTTPMethod: " GET " )
123161 request. startWithCompletionHandler { ( connection, result, error) -> Void in
@@ -142,7 +180,7 @@ class KlusterInviteViewController : UITableViewController {
142180 KlusterDataSource . fetchUsersWithFacebookIds ( facebookUserIDs, kluster: self . kluster, completion: { ( objects, error) -> Void in
143181
144182 // Remove the hud
145- hud. stopAnimation ( )
183+ self . hud. stopAnimation ( )
146184
147185 if let objects = objects as? [ PFUser ] {
148186 self . users = objects
@@ -151,12 +189,12 @@ class KlusterInviteViewController : UITableViewController {
151189 } )
152190 } else {
153191 // Remove the hud
154- hud. stopAnimation ( )
192+ self . hud. stopAnimation ( )
155193 }
156194
157195 if let error = error {
158196 // Remove the hud
159- hud. stopAnimation ( )
197+ self . hud. stopAnimation ( )
160198
161199 // Error fetching friends...
162200 self . showRequestError ( error)
0 commit comments