Эх сурвалжийг харах

replace table external sites

Marino Faggiana 8 жил өмнө
parent
commit
192271524d

+ 0 - 20
Nextcloud.xcodeproj/project.pbxproj

@@ -100,12 +100,6 @@
 		F732BA0B1D76DBA500E9878B /* CCNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = F732BA041D76CE1500E9878B /* CCNetworking.m */; };
 		F73B4F791E8D3BF800A97F07 /* CCMainTabBarController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F73B4F781E8D3BF800A97F07 /* CCMainTabBarController.swift */; };
 		F73C002F1E55D7DF00EEEFA7 /* CCManageCryptoCloudSecurity.m in Sources */ = {isa = PBXBuildFile; fileRef = F73C002E1E55D7DF00EEEFA7 /* CCManageCryptoCloudSecurity.m */; };
-		F73C41501E82E51F000137C0 /* TableExternalSites+CoreDataClass.m in Sources */ = {isa = PBXBuildFile; fileRef = F73C414D1E82E51F000137C0 /* TableExternalSites+CoreDataClass.m */; };
-		F73C41511E82E51F000137C0 /* TableExternalSites+CoreDataClass.m in Sources */ = {isa = PBXBuildFile; fileRef = F73C414D1E82E51F000137C0 /* TableExternalSites+CoreDataClass.m */; };
-		F73C41521E82E51F000137C0 /* TableExternalSites+CoreDataClass.m in Sources */ = {isa = PBXBuildFile; fileRef = F73C414D1E82E51F000137C0 /* TableExternalSites+CoreDataClass.m */; };
-		F73C41531E82E51F000137C0 /* TableExternalSites+CoreDataProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = F73C414F1E82E51F000137C0 /* TableExternalSites+CoreDataProperties.m */; };
-		F73C41541E82E51F000137C0 /* TableExternalSites+CoreDataProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = F73C414F1E82E51F000137C0 /* TableExternalSites+CoreDataProperties.m */; };
-		F73C41551E82E51F000137C0 /* TableExternalSites+CoreDataProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = F73C414F1E82E51F000137C0 /* TableExternalSites+CoreDataProperties.m */; };
 		F73CC0691E813DFF006E3047 /* BKPasscodeDummyViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F73CC0591E813DFF006E3047 /* BKPasscodeDummyViewController.m */; };
 		F73CC06A1E813DFF006E3047 /* BKPasscodeDummyViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F73CC0591E813DFF006E3047 /* BKPasscodeDummyViewController.m */; };
 		F73CC06B1E813DFF006E3047 /* BKPasscodeDummyViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F73CC0591E813DFF006E3047 /* BKPasscodeDummyViewController.m */; };
@@ -994,10 +988,6 @@
 		F73B4F781E8D3BF800A97F07 /* CCMainTabBarController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CCMainTabBarController.swift; sourceTree = "<group>"; };
 		F73C002D1E55D7DF00EEEFA7 /* CCManageCryptoCloudSecurity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCManageCryptoCloudSecurity.h; sourceTree = "<group>"; };
 		F73C002E1E55D7DF00EEEFA7 /* CCManageCryptoCloudSecurity.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CCManageCryptoCloudSecurity.m; sourceTree = "<group>"; };
-		F73C414C1E82E51F000137C0 /* TableExternalSites+CoreDataClass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "TableExternalSites+CoreDataClass.h"; sourceTree = "<group>"; };
-		F73C414D1E82E51F000137C0 /* TableExternalSites+CoreDataClass.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "TableExternalSites+CoreDataClass.m"; sourceTree = "<group>"; };
-		F73C414E1E82E51F000137C0 /* TableExternalSites+CoreDataProperties.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "TableExternalSites+CoreDataProperties.h"; sourceTree = "<group>"; };
-		F73C414F1E82E51F000137C0 /* TableExternalSites+CoreDataProperties.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "TableExternalSites+CoreDataProperties.m"; sourceTree = "<group>"; };
 		F73CC0581E813DFF006E3047 /* BKPasscodeDummyViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BKPasscodeDummyViewController.h; sourceTree = "<group>"; };
 		F73CC0591E813DFF006E3047 /* BKPasscodeDummyViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BKPasscodeDummyViewController.m; sourceTree = "<group>"; };
 		F73CC05A1E813DFF006E3047 /* BKPasscodeField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BKPasscodeField.h; sourceTree = "<group>"; };
@@ -2806,10 +2796,6 @@
 		F77F86401B4ABF6D009F0A10 /* Table */ = {
 			isa = PBXGroup;
 			children = (
-				F73C414C1E82E51F000137C0 /* TableExternalSites+CoreDataClass.h */,
-				F73C414D1E82E51F000137C0 /* TableExternalSites+CoreDataClass.m */,
-				F73C414E1E82E51F000137C0 /* TableExternalSites+CoreDataProperties.h */,
-				F73C414F1E82E51F000137C0 /* TableExternalSites+CoreDataProperties.m */,
 				F708CF4D1E56E8CB00271D8B /* TableMetadata+CoreDataClass.h */,
 				F708CF4E1E56E8CB00271D8B /* TableMetadata+CoreDataClass.m */,
 				F708CF4F1E56E8CB00271D8B /* TableMetadata+CoreDataProperties.h */,
@@ -3902,7 +3888,6 @@
 			isa = PBXSourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
-				F73C41541E82E51F000137C0 /* TableExternalSites+CoreDataProperties.m in Sources */,
 				F71459B81D12E3B700CAFEEC /* CCError.m in Sources */,
 				F73CC0701E813DFF006E3047 /* BKPasscodeInputView.m in Sources */,
 				F71459BA1D12E3B700CAFEEC /* NSString+TruncateToWidth.m in Sources */,
@@ -3910,7 +3895,6 @@
 				F71459BB1D12E3B700CAFEEC /* NYXProgressiveImageView.m in Sources */,
 				F708CF981E56E8CC00271D8B /* TableAccount+CoreDataClass.m in Sources */,
 				F71459BC1D12E3B700CAFEEC /* Reachability.m in Sources */,
-				F73C41511E82E51F000137C0 /* TableExternalSites+CoreDataClass.m in Sources */,
 				F71459BD1D12E3B700CAFEEC /* UIImage+animatedGIF.m in Sources */,
 				F708CF6E1E56E8CC00271D8B /* TableMetadata+CoreDataClass.m in Sources */,
 				F71459BE1D12E3B700CAFEEC /* UIImage+Reflection.m in Sources */,
@@ -4015,8 +3999,6 @@
 				F73CC0771E813DFF006E3047 /* BKPasscodeViewController.m in Sources */,
 				F743448A1E127FF2001CC831 /* CCHud.m in Sources */,
 				F74344861E127F89001CC831 /* RNEncryptor.m in Sources */,
-				F73C41521E82E51F000137C0 /* TableExternalSites+CoreDataClass.m in Sources */,
-				F73C41551E82E51F000137C0 /* TableExternalSites+CoreDataProperties.m in Sources */,
 				F73CC06B1E813DFF006E3047 /* BKPasscodeDummyViewController.m in Sources */,
 				F708CF991E56E8CC00271D8B /* TableAccount+CoreDataClass.m in Sources */,
 				F7FC88FA1E140558006D0506 /* cryptocloud.xcdatamodeld in Sources */,
@@ -4063,7 +4045,6 @@
 				F7C525A01E3B48B700FFE02C /* CCNotification.swift in Sources */,
 				F77B0DFB1D118A16002130FE /* NYXProgressiveImageView.m in Sources */,
 				F708CF701E56E8CC00271D8B /* TableMetadata+CoreDataProperties.m in Sources */,
-				F73C41531E82E51F000137C0 /* TableExternalSites+CoreDataProperties.m in Sources */,
 				F7F54D0E1E5B14C800E19C62 /* UIImage+MWPhotoBrowser.m in Sources */,
 				F7F54D091E5B14C800E19C62 /* MWPhoto.m in Sources */,
 				F77B0DFF1D118A16002130FE /* OCNetworking.m in Sources */,
@@ -4226,7 +4207,6 @@
 				F7659A661DC0B760004860C4 /* PSTCollectionViewLayout.m in Sources */,
 				F75037511DBFA91A008FB480 /* NSLayoutConstraint+PureLayout.m in Sources */,
 				F762CAFA1EACB66200B38484 /* XLFormDateCell.m in Sources */,
-				F73C41501E82E51F000137C0 /* TableExternalSites+CoreDataClass.m in Sources */,
 				F77B0E871D118A16002130FE /* NSData+Base64.m in Sources */,
 				F77B0E8A1D118A16002130FE /* CCCartaDiCredito.m in Sources */,
 				F762CB181EACB66200B38484 /* XLFormValidationStatus.m in Sources */,

+ 0 - 8
iOSClient/FileSystem/CCCoreData.h

@@ -40,7 +40,6 @@
 #import "TableDirectory+CoreDataClass.h"
 #import "TableLocalFile+CoreDataClass.h"
 #import "TableShare+CoreDataClass.h"
-#import "TableExternalSites+CoreDataClass.h"
 
 @interface CCCoreData : NSObject
 
@@ -187,12 +186,6 @@
 
 + (NSArray *)getHomeOfflineActiveAccount:(NSString *)activeAccount directoryUser:(NSString *)directoryUser fieldOrder:(NSString *)fieldOrder ascending:(BOOL)ascending;
 
-// ===== External Sites =====
-
-+ (void)addExternalSites:(OCExternalSites *)externalSites account:(NSString *)account;
-+ (void)deleteAllExternalSitesForAccount:(NSString *)account;
-+ (NSArray *)getAllTableExternalSitesWithPredicate:(NSPredicate *)predicate;
-
 // ===== File System =====
 
 + (BOOL)downloadFile:(CCMetadata *)metadata directoryUser:(NSString *)directoryUser activeAccount:(NSString *)activeAccount;
@@ -211,7 +204,6 @@
 
 + (void)flushTableAccount:(NSString *)account;
 + (void)flushTableDirectoryAccount:(NSString *)account;
-+ (void)flushTableExternalSitesAccount:(NSString *)account;
 + (void)flushTableLocalFileAccount:(NSString *)account;
 + (void)flushTableMetadataAccount:(NSString *)account;
 + (void)flushTableShareAccount:(NSString *)account;

+ 0 - 59
iOSClient/FileSystem/CCCoreData.m

@@ -1703,49 +1703,6 @@
     return [tableMetadatas sortedArrayUsingDescriptors:[NSArray arrayWithObjects:descriptor, nil]];//[NSArray arrayWithArray:tableMetadatas];
 }
 
-#pragma --------------------------------------------------------------------------------------------
-#pragma mark ===== External Sites =====
-#pragma --------------------------------------------------------------------------------------------
-
-+ (void)addExternalSites:(OCExternalSites *)externalSites account:(NSString *)account
-{
-    [MagicalRecord saveWithBlockAndWait:^(NSManagedObjectContext *localContext) {
-        
-        TableExternalSites *record = [TableExternalSites MR_createEntityInContext:localContext];
-        
-        record.account = account;
-        
-        record.idExternalSite = [NSNumber numberWithInteger:externalSites.idExternalSite];
-        record.icon = externalSites.icon;
-        record.lang = externalSites.lang;
-        record.name = externalSites.name;
-        record.url = externalSites.url;
-        record.type = externalSites.type;
-    }];
-}
-
-+ (void)deleteAllExternalSitesForAccount:(NSString *)account
-{
-    NSManagedObjectContext *context = [NSManagedObjectContext MR_defaultContext];
-    
-    [TableExternalSites MR_deleteAllMatchingPredicate:[NSPredicate predicateWithFormat:@"(account == %@)", account] inContext:context];
-    
-    [context MR_saveToPersistentStoreAndWait];
-}
-
-+ (NSArray *)getAllTableExternalSitesWithPredicate:(NSPredicate *)predicate
-{
-    NSManagedObjectContext *context = [NSManagedObjectContext MR_defaultContext];
-    
-    NSArray *records = [TableExternalSites MR_findAllWithPredicate:predicate inContext:context];
-    
-    if ([records count] == 0) return nil;
-    
-    NSSortDescriptor *descriptor = [[NSSortDescriptor alloc] initWithKey:@"idExternalSite" ascending:YES selector:nil];
-    
-    return [records sortedArrayUsingDescriptors:[NSArray arrayWithObjects:descriptor, nil]];
-}
-
 #pragma --------------------------------------------------------------------------------------------
 #pragma mark ===== File System =====
 #pragma --------------------------------------------------------------------------------------------
@@ -2016,22 +1973,6 @@
     [context MR_saveToPersistentStoreAndWait];
 }
 
-+ (void)flushTableExternalSitesAccount:(NSString *)account
-{
-    NSManagedObjectContext *context = [NSManagedObjectContext MR_defaultContext];
-    
-    if (account) {
-        
-        [TableExternalSites MR_deleteAllMatchingPredicate:[NSPredicate predicateWithFormat:@"(account == %@)", account] inContext:context];
-        
-    } else {
-        
-        [TableExternalSites MR_truncateAllInContext:context];
-    }
-    
-    [context MR_saveToPersistentStoreAndWait];
-}
-
 + (void)flushTableLocalFileAccount:(NSString *)account
 {
     NSManagedObjectContext *context = [NSManagedObjectContext MR_defaultContext];

+ 11 - 0
iOSClient/FileSystem/NCDatabase.swift

@@ -58,6 +58,17 @@ class tableCertificates: Object {
     dynamic var certificateLocation = ""
 }
 
+class tableExternalSites: Object {
+    
+    dynamic var account = ""
+    dynamic var icon = ""
+    dynamic var idExternalSite : Int = 0
+    dynamic var lang = ""
+    dynamic var name = ""
+    dynamic var type = ""
+    dynamic var url = ""
+}
+
 class tableGPS: Object {
     
     dynamic var latitude = ""

+ 42 - 0
iOSClient/FileSystem/NCManageDatabase.swift

@@ -349,6 +349,48 @@ class NCManageDatabase: NSObject {
         return arraycertificatePath
     }
 
+    //MARK: -
+    //MARK: Table External Sites
+    
+    func addExternalSites(_ externalSites: OCExternalSites, account: String) {
+        
+        let realm = try! Realm()
+        
+        try! realm.write {
+            
+            let addExternalSite = tableExternalSites()
+            
+            addExternalSite.account = account
+            addExternalSite.idExternalSite = externalSites.idExternalSite
+            addExternalSite.icon = externalSites.icon
+            addExternalSite.lang = externalSites.lang
+            addExternalSite.name = externalSites.name
+            addExternalSite.url = externalSites.url
+            addExternalSite.type = externalSites.type
+           
+            realm.add(addExternalSite)
+        }
+    }
+
+    func deleteAllExternalSitesForAccount(_ account: String) {
+        
+        let realm = try! Realm()
+        
+        let results = realm.objects(tableExternalSites.self).filter("account = '\(account)')")
+        try! realm.write {
+            realm.delete(results)
+        }
+    }
+    
+    func getAllExternalSitesWithPredicate(_ predicate: NSPredicate) -> [tableExternalSites] {
+        
+        let realm = try! Realm()
+        
+        let results = realm.objects(tableExternalSites.self).filter(predicate).sorted(byKeyPath: "idExternalSite", ascending: true)
+        
+        return Array(results)
+    }
+
     //MARK: -
     //MARK: Table GPS
     

+ 0 - 20
iOSClient/FileSystem/TableExternalSites+CoreDataClass.h

@@ -1,20 +0,0 @@
-//
-//  TableExternalSites+CoreDataClass.h
-//  Nextcloud
-//
-//  Created by Marino Faggiana on 22/03/17.
-//  Copyright © 2017 TWS. All rights reserved.
-//
-
-#import <Foundation/Foundation.h>
-#import <CoreData/CoreData.h>
-
-NS_ASSUME_NONNULL_BEGIN
-
-@interface TableExternalSites : NSManagedObject
-
-@end
-
-NS_ASSUME_NONNULL_END
-
-#import "TableExternalSites+CoreDataProperties.h"

+ 0 - 13
iOSClient/FileSystem/TableExternalSites+CoreDataClass.m

@@ -1,13 +0,0 @@
-//
-//  TableExternalSites+CoreDataClass.m
-//  Nextcloud
-//
-//  Created by Marino Faggiana on 22/03/17.
-//  Copyright © 2017 TWS. All rights reserved.
-//
-
-#import "TableExternalSites+CoreDataClass.h"
-
-@implementation TableExternalSites
-
-@end

+ 0 - 28
iOSClient/FileSystem/TableExternalSites+CoreDataProperties.h

@@ -1,28 +0,0 @@
-//
-//  TableExternalSites+CoreDataProperties.h
-//  Nextcloud
-//
-//  Created by Marino Faggiana on 22/03/17.
-//  Copyright © 2017 TWS. All rights reserved.
-//
-
-#import "TableExternalSites+CoreDataClass.h"
-
-
-NS_ASSUME_NONNULL_BEGIN
-
-@interface TableExternalSites (CoreDataProperties)
-
-+ (NSFetchRequest<TableExternalSites *> *)fetchRequest;
-
-@property (nullable, nonatomic, copy) NSString *account;
-@property (nullable, nonatomic, copy) NSNumber *idExternalSite;
-@property (nullable, nonatomic, copy) NSString *name;
-@property (nullable, nonatomic, copy) NSString *url;
-@property (nullable, nonatomic, copy) NSString *lang;
-@property (nullable, nonatomic, copy) NSString *icon;
-@property (nullable, nonatomic, copy) NSString *type;
-
-@end
-
-NS_ASSUME_NONNULL_END

+ 0 - 25
iOSClient/FileSystem/TableExternalSites+CoreDataProperties.m

@@ -1,25 +0,0 @@
-//
-//  TableExternalSites+CoreDataProperties.m
-//  Nextcloud
-//
-//  Created by Marino Faggiana on 22/03/17.
-//  Copyright © 2017 TWS. All rights reserved.
-//
-
-#import "TableExternalSites+CoreDataProperties.h"
-
-@implementation TableExternalSites (CoreDataProperties)
-
-+ (NSFetchRequest<TableExternalSites *> *)fetchRequest {
-	return [[NSFetchRequest alloc] initWithEntityName:@"TableExternalSites"];
-}
-
-@dynamic account;
-@dynamic idExternalSite;
-@dynamic name;
-@dynamic url;
-@dynamic lang;
-@dynamic icon;
-@dynamic type;
-
-@end

+ 2 - 2
iOSClient/Main/CCMain.m

@@ -1081,10 +1081,10 @@
 
 - (void)getExternalSitesServerSuccess:(NSArray *)listOfExternalSites
 {
-    [CCCoreData deleteAllExternalSitesForAccount:app.activeAccount];
+    [[NCManageDatabase sharedInstance] deleteAllExternalSitesForAccount:app.activeAccount];
     
     for (OCExternalSites *tableExternalSites in listOfExternalSites)
-        [CCCoreData addExternalSites:tableExternalSites account:app.activeAccount];
+        [[NCManageDatabase sharedInstance] addExternalSites:tableExternalSites account:app.activeAccount];
 }
 
 - (void)getExternalSitesServerFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode

+ 2 - 2
iOSClient/Main/CCMore.swift

@@ -40,7 +40,7 @@ class CCMore: UIViewController, UITableViewDelegate, UITableViewDataSource {
 
     let appDelegate = UIApplication.shared.delegate as! AppDelegate
     
-    var menuExternalSite: [TableExternalSites]?
+    var menuExternalSite: [tableExternalSites]?
     var tableAccont : TableAccount?
     
     override func viewDidLoad() {
@@ -105,7 +105,7 @@ class CCMore: UIViewController, UITableViewDelegate, UITableViewDataSource {
         settingsMenu.append(item)
 
         // External 
-        menuExternalSite = CCCoreData.getAllTableExternalSites(with:  NSPredicate(format: "(account == '\(appDelegate.activeAccount!)')")) as? [TableExternalSites]
+        menuExternalSite = NCManageDatabase.sharedInstance.getAllExternalSitesWithPredicate(NSPredicate(format: "(account == '\(appDelegate.activeAccount!)')"))
         
         if (menuExternalSite != nil) {
             for table in menuExternalSite! {

+ 2 - 2
iOSClient/Settings/CCAdvanced.m

@@ -324,8 +324,8 @@
             [[NCManageDatabase sharedInstance] clearTable:[tableCapabilities class] account:app.activeAccount];
             
             [CCCoreData flushTableDirectoryAccount:app.activeAccount];
-            [CCCoreData flushTableExternalSitesAccount:app.activeAccount];
-                        
+
+            [[NCManageDatabase sharedInstance] clearTable:[tableExternalSites class] account:app.activeAccount];
             [[NCManageDatabase sharedInstance] clearTable:[tableGPS class] account:app.activeAccount];
             
             [CCCoreData flushTableLocalFileAccount:app.activeAccount];

+ 2 - 2
iOSClient/Settings/CCManageAccount.m

@@ -327,9 +327,9 @@
     [[NCManageDatabase sharedInstance] clearTable:[tableActivity class] account:account];
     [[NCManageDatabase sharedInstance] clearTable:[tableAutomaticUpload class] account:app.activeAccount];
     [[NCManageDatabase sharedInstance] clearTable:[tableCapabilities class] account:app.activeAccount];
-    
+    [[NCManageDatabase sharedInstance] clearTable:[tableExternalSites class] account:app.activeAccount];
+
     [CCCoreData flushTableDirectoryAccount:account];
-    [CCCoreData flushTableExternalSitesAccount:account];
     [CCCoreData flushTableLocalFileAccount:account];
     [CCCoreData flushTableMetadataAccount:account];
     [CCCoreData flushTableShareAccount:account];

+ 0 - 10
iOSClient/cryptocloud.xcdatamodeld/cryptocloud 9.xcdatamodel/contents

@@ -48,15 +48,6 @@
         <attribute name="serverUrl" optional="YES" attributeType="String" syncable="YES"/>
         <attribute name="synchronized" optional="YES" attributeType="Boolean" defaultValueString="NO" usesScalarValueType="NO" syncable="YES"/>
     </entity>
-    <entity name="TableExternalSites" representedClassName="TableExternalSites" syncable="YES">
-        <attribute name="account" optional="YES" attributeType="String" syncable="YES"/>
-        <attribute name="icon" optional="YES" attributeType="String" syncable="YES"/>
-        <attribute name="idExternalSite" optional="YES" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
-        <attribute name="lang" optional="YES" attributeType="String" syncable="YES"/>
-        <attribute name="name" optional="YES" attributeType="String" syncable="YES"/>
-        <attribute name="type" optional="YES" attributeType="String" syncable="YES"/>
-        <attribute name="url" optional="YES" attributeType="String" syncable="YES"/>
-    </entity>
     <entity name="TableLocalFile" representedClassName="TableLocalFile" syncable="YES">
         <attribute name="account" optional="YES" attributeType="String" syncable="YES"/>
         <attribute name="date" optional="YES" attributeType="Date" usesScalarValueType="NO" syncable="YES"/>
@@ -114,7 +105,6 @@
     <elements>
         <element name="TableAccount" positionX="-6597" positionY="111" width="171" height="540"/>
         <element name="TableDirectory" positionX="-6372" positionY="111" width="162" height="210"/>
-        <element name="TableExternalSites" positionX="-6399" positionY="252" width="128" height="150"/>
         <element name="TableLocalFile" positionX="-6138" positionY="111" width="162" height="225"/>
         <element name="TableMetadata" positionX="-6138" positionY="402" width="162" height="510"/>
         <element name="TableShare" positionX="-6597" positionY="558" width="128" height="120"/>