Explorar o código

Clean up some path handling.

Ian Rose %!s(int64=8) %!d(string=hai) anos
pai
achega
5a9044afe7
Modificáronse 2 ficheiros con 12 adicións e 6 borrados
  1. 3 0
      packages/coreutils/src/path.ts
  2. 9 6
      packages/services/src/contents/index.ts

+ 3 - 0
packages/coreutils/src/path.ts

@@ -130,7 +130,10 @@ namespace PathExt {
 
   /**
    * Remove the leading slash from a path.
+   *
+   * @param path: the path from which to remove a leading slash.
    */
+  export
   function removeSlash(path: string): string {
     if (path.indexOf('/') === 0) {
       path = path.slice(1);

+ 9 - 6
packages/services/src/contents/index.ts

@@ -576,13 +576,13 @@ class ContentsManager implements Contents.IManager {
         });
         return {
           ...contentsModel,
-          path: Private.normalize(path),
+          path: this._toGlobalPath(drive, localPath),
           content: listing
         } as Contents.IModel;
       } else {
         return {
           ...contentsModel,
-          path: Private.normalize(path)
+          path: this._toGlobalPath(drive, localPath)
         } as Contents.IModel;
       }
     }); 
@@ -653,7 +653,10 @@ class ContentsManager implements Contents.IManager {
       throw Error('ContentsManager: renaming files must occur within a Drive');
     }
     return drive1.rename(path1, path2).then(contentsModel => {
-      return { ...contentsModel, path: path } as Contents.IModel;
+      return {
+        ...contentsModel,
+        path: this._toGlobalPath(drive1, path2)
+      } as Contents.IModel;
     });
   }
 
@@ -771,9 +774,9 @@ class ContentsManager implements Contents.IManager {
    */
   private _toGlobalPath(drive: Contents.IDrive, localPath: string): string {
     if (drive === this._defaultDrive) {
-      return PathExt.normalize(localPath);
+      return PathExt.removeSlash(localPath);
     } else {
-      return drive.name + ':' + PathExt.normalize(localPath);
+      return drive.name + ':' + PathExt.removeSlash(localPath);
     }
   }
 
@@ -1042,7 +1045,7 @@ class Drive implements Contents.IDrive {
     let request = {
       url: this._getUrl(oldLocalPath),
       method: 'PATCH',
-      data: JSON.stringify({ localPath: newLocalPath })
+      data: JSON.stringify({ path: newLocalPath })
     };
     return ServerConnection.makeRequest(request, this.serverSettings).then(response => {
       if (response.xhr.status !== 200) {