Developer Area

Changeset 789 for apps/iphone

Show
Ignore:
Timestamp:
01/26/11 13:37:09 (4 years ago)
Author:
henri
Message:

Global items should now remain global.
Preparation for allowing modifications of global items.

Location:
apps/iphone/my.tel/trunk/Classes
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • apps/iphone/my.tel/trunk/Classes/ProfileRecordsViewController.h

    r772 r789  
    5757- (void)storeTextHeader:(NSString *)newHeader; 
    5858- (void)getRecords; 
    59 - (void)enableRecords; 
    60 - (void)disableRecords; 
     59- (void)enableRecordsUsingGlobal:(BOOL)isGlobal; 
     60- (void)disableRecordsUsingGlobal:(BOOL)isGlobal; 
    6161 
    6262- (void)updateEditButtonAndDoNothing:(NSDictionary *)parsedJson; 
  • apps/iphone/my.tel/trunk/Classes/ProfileRecordsViewController.m

    r777 r789  
    275275        if (editing) { 
    276276                [self displayDisabledRecords:YES]; 
    277                 buttonEditCount = 2; 
    278277                self.navigationItem.leftBarButtonItem = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel 
    279278                                                                                                                                                                                           target:self  
     
    284283                        // Clicked "Done", not "Cancel" 
    285284                        // The Cancel leftBarButtonItem button was removed in didClickCancel 
     285                        buttonEditCount = 4; 
    286286                        self.navigationItem.leftBarButtonItem = nil; 
    287                         [self enableRecords]; 
     287                        [self enableRecordsUsingGlobal:NO]; 
    288288                        [self getRecords]; 
    289289                } 
     
    350350        // 1- that all enable-disable actions are done in serial order 
    351351        // 2- that the user cannot re-edit the table before all is done 
    352         // call enableRecords, and all goes from there automatically 
     352        // call enableRecordsUsingGlobal:NO, and all goes from there automatically 
    353353        if (parsedJson) { 
    354354                [[MyTelConnect sharedInstance] doNothing:parsedJson]; 
    355355        } 
    356356        switch (buttonEditCount) { 
    357                 case 2: // This case should be skipped if you start by calling enableRecords 
    358                         [self enableRecords]; 
     357                case 4: // This case will be skipped if you start by calling enableRecordsUsingGlobal:NO 
     358                        [self enableRecordsUsingGlobal:NO]; 
     359                        break; 
     360                case 3: 
     361                        [self enableRecordsUsingGlobal:YES]; 
     362                        break; 
     363                case 2: 
     364                        [self disableRecordsUsingGlobal:NO]; 
    359365                        break; 
    360366                case 1: 
    361                         [self disableRecords]; 
     367                        [self disableRecordsUsingGlobal:YES]; 
    362368                        break; 
    363369                case 0: 
     
    764770} 
    765771 
    766 - (void)enableRecords { 
     772- (void)enableRecordsUsingGlobal:(BOOL)isGlobal { 
    767773//      inputRecords = { 
    768774//      domainName: "cartman.tel", 
     
    778784//      };  
    779785 
     786        buttonEditCount--; 
    780787        NSMutableArray *apiIdArray = [NSMutableArray arrayWithCapacity:[uiArray count]]; 
    781788        for (NSDictionary *theRow in uiArray) { 
    782                 if ([[theRow valueForKey:@"global"] integerValue] == 1) { 
    783                                 // We don't modify global records 
    784                                 // TODO: Show the user that global records can't be modified 
     789                if ([[theRow valueForKey:@"global"] integerValue] != isGlobal) { 
     790                                // We don't modify records that are not what we're asking for: either global or profile-specific 
    785791                        continue; 
    786792                } 
    787793                if ([[theRow valueForKey:@"enabled"] integerValue] == 1) { 
    788                         if ([[theRow valueForKey:@"terminal"] integerValue] == 1) { 
    789                                 // Only handle terminal records 
    790                                 [apiIdArray addObject:[theRow objectForKey:@"apiId"]]; 
    791                         } 
     794                        [apiIdArray addObject:[theRow objectForKey:@"apiId"]]; 
    792795                } 
    793796        } 
    794797        if ([apiIdArray count] == 0) { 
    795                 buttonEditCount--; 
    796798                [self performSelector:@selector(updateEditButtonAndDoNothing:) withObject:nil]; 
    797799                return; 
     
    805807        NSMutableDictionary *requestData = [[NSMutableDictionary dictionaryWithCapacity:3] retain]; 
    806808        [requestData setObject:[self.delegate domain] forKey:@"domainName"]; 
    807         NSArray *profiles = [NSArray arrayWithObject:[self.theProfile objectForKey:@"id"]]; 
     809        NSArray *profiles; 
     810        if (isGlobal) { 
     811                profiles = [NSArray arrayWithObject:@"-1"];     // global profile 
     812        } else { 
     813                profiles = [NSArray arrayWithObject:[self.theProfile objectForKey:@"id"]]; 
     814        } 
    808815        [requestData setObject:profiles forKey:@"profiles"]; 
    809816                 
     
    813820        [conn performLookup:TRUE]; 
    814821        [requestData release]; 
    815         buttonEditCount--; 
    816 } 
    817  
    818 - (void)disableRecords { 
     822} 
     823 
     824- (void)disableRecordsUsingGlobal:(BOOL)isGlobal { 
    819825//      inputRecords = { 
    820826//      domainName: "cartman.tel", 
     
    830836//      };  
    831837 
     838        buttonEditCount--; 
    832839        NSMutableArray *apiIdArray = [NSMutableArray arrayWithCapacity:[uiArray count]]; 
    833840        for (NSDictionary *theRow in uiArray) { 
    834                 if ([[theRow valueForKey:@"enabled"] integerValue] == 0) { 
    835                         if ([[theRow valueForKey:@"terminal"] integerValue] == 1) { 
    836                                 // Only handle terminal records 
    837                                 [apiIdArray addObject:[theRow objectForKey:@"apiId"]]; 
    838                         } 
     841                if ([[theRow valueForKey:@"global"] integerValue] != isGlobal) { 
     842                        // We don't modify records that are not what we're asking for: either global or profile-specific 
     843                        continue; 
     844                } 
     845                if ([[theRow valueForKey:@"enabled"] integerValue] == 1) { 
     846                        [apiIdArray addObject:[theRow objectForKey:@"apiId"]]; 
    839847                } 
    840848        } 
    841849        if ([apiIdArray count] == 0) { 
    842                 buttonEditCount--; 
    843850                [self performSelector:@selector(updateEditButtonAndDoNothing:) withObject:nil]; 
    844851                return; 
     
    852859        NSMutableDictionary *requestData = [[NSMutableDictionary dictionaryWithCapacity:3] retain]; 
    853860        [requestData setObject:[self.delegate domain] forKey:@"domainName"]; 
    854         NSArray *profiles = [NSArray arrayWithObject:[self.theProfile objectForKey:@"id"]]; 
     861        NSArray *profiles; 
     862        if (isGlobal) { 
     863                profiles = [NSArray arrayWithObject:@"-1"];     // global profile 
     864        } else { 
     865                profiles = [NSArray arrayWithObject:[self.theProfile objectForKey:@"id"]]; 
     866        } 
    855867        [requestData setObject:profiles forKey:@"profiles"]; 
    856868                 
     
    860872        [conn performLookup:TRUE]; 
    861873        [requestData release]; 
    862         buttonEditCount--; 
    863874} 
    864875 
Telnic
Search This Site
Partners
Neustar
ICANN
Main site | WHOIS | Sell .tel | FAQ | Archived Site | About Telnic | Contact Us