// // SetupServerViewController.m // HMLG Scan Order // // Created by Rui Zhang on 4/1/22. // Copyright © 2022 United Software Applications, Inc. All rights reserved. // #import "SetupServerViewController.h" #import "RADataProvider.h" #import "ScanServerListViewController.h" #import "ZipArchive.h" #import "MainViewController.h" @interface SetupServerViewController () @end @implementation SetupServerViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. if(self.showCancel) self.btnCancel.hidden = false; else self.btnCancel.hidden = true; [self loadServerList]; } - (IBAction)onCancelClick:(id)sender { [self.navigationController popViewControllerAnimated:true]; } - (IBAction)onSaveClick:(id)sender { if(self.editPassword.text.length==0) { [RAUtils message_box:@"verify Server" message:@"Password can't be empty" completion:nil]; return; } // __block UIAlertController * waitalert =[RAUtils waiting_alert:self title:@"Verify" completion:nil]; PopWaitAlert* pop=[RAUtils waiting_pop:@"Verify" completion:nil]; [RADataProvider request_validate_scan_server:self.server[@"url"] name:self.server[@"name"] password:self.editPassword.text completionHandler:^(NSMutableDictionary *result) { NSMutableDictionary* return_json = result; // [waitalert dismissViewControllerAnimated:YES completion:^{ [pop hide]; if([[return_json valueForKey:@"result"] intValue]==2) { NSUInteger selectedIndex = 1; // 保存信息 bool b_erp = [self.server[@"has_erp_site"] boolValue]; NSString *name = self.server[@"name"]; NSString *show_name = self.server[@"show_name"]; NSString *internalAddr = self.server[@"url"]; int price_index = [self.server[@"price_type"] intValue]; // NSString *externalAddr = weakself.externalTextField.text; NSMutableDictionary *addressDic = [NSMutableDictionary dictionary]; if (internalAddr.length) { [addressDic setObject:internalAddr forKey:@"serverAddress"]; } // if (externalAddr.length) { // [addressDic setObject:externalAddr forKey:@"externalAddress"]; // } if (name.length) { [addressDic setObject:name forKey:@"name"]; } [addressDic setObject:@(b_erp) forKey:@"has_erp_site"]; if (show_name.length) { [addressDic setObject:show_name forKey:@"show_name"]; } [addressDic setObject:@(price_index) forKey:@"price_index"]; [addressDic setObject:@(selectedIndex) forKey:@"selectedIndex"]; NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; [userDefaults setValue:addressDic forKey:@"ScanAddress"]; [userDefaults synchronize]; AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate]; appDelegate.address = [addressDic objectForKey:@"serverAddress"]; // [self updateTemplate]; [ActiveViewController Notify:@"ScanHomeViewController," Message:@"RA_NOTIFICATION_RELOAD_DATA"]; [self.navigationController popViewControllerAnimated:false]; if(self.returnValue) self.returnValue(); } else { [RAUtils message_box:@"Load Server List" message:[return_json valueForKey:@"err_msg"] completion:nil]; } // }]; }]; } - (void)setUserDefaultsValue:(id)value forKey:(NSString *)key { NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; [userDefaults setValue:value forKey:key]; [userDefaults synchronize]; } - (IBAction)onSelectServer:(id)sender { ScanServerListViewController * servervc =[[UIStoryboard storyboardWithName:@"SO" bundle:nil] instantiateViewControllerWithIdentifier:@"ScanServerListViewController"]; servervc.serverlist = self.serverlist; servervc.returnValue = ^(int index) { self.server = self.serverlist[index]; [self.btnSelectServer setTitle:self.server[@"show_name"] forState:UIControlStateNormal]; }; [self.navigationController pushViewController:servervc animated:true]; } - (IBAction)onreloadList:(id)sender { [self loadServerList]; } -(void) loadServerList { // __block UIAlertController * waitalert =[RAUtils waiting_alert:self title:@"Loading Server List" completion:^{ \ PopWaitAlert* pop=[RAUtils waiting_pop:@"Loading Server List" completion:nil]; [RADataProvider request_scan_server:^(NSMutableDictionary *result) { NSMutableDictionary* return_json = result; // [waitalert dismissViewControllerAnimated:YES completion:^{ [pop hide]; if([[return_json valueForKey:@"result"] intValue]==2) { self.serverlist = return_json[@"hostList"]; if(self.serverlist.count>0) { } } else { [RAUtils message_box:@"Load Server List" message:[return_json valueForKey:@"err_msg"] completion:nil]; } // }]; }]; // }]; } /* #pragma mark - Navigation // In a storyboard-based application, you will often want to do a little preparation before navigation - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { // Get the new view controller using [segue destinationViewController]. // Pass the selected object to the new view controller. } */ @end