mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-16 10:58:30 -05:00
Open books from Github (#10670)
* Add open book option in UI * Add dropdowns option on dialog * Add flow logic * Fetch releases and validate URL * Add class for github books and shared file books * Change code structure * Unblock local copy + stack overflows * Download books from github * Remove unused files * Clean code and use the openNotebookFolder command to open remote book * Checkpoint * Refactor remote book dialog model to only hold data * Remove ApiWrapper and refactor createlocalcopy method * Use sinon js framework instead of typemoq for testing remotebookController * Remove api wrapper * Add some tests * Add more tests and address pr comments * Address PR comments * Fix remotebook broken tests * Add download location in output channel and use openBook command * Address PR comments * Fix typos, print error message and remove failing test * Print error message * Separate tests in different files * Declare controller variable inside extension.tst Co-authored-by: chlafreniere <hichise@gmail.com>
This commit is contained in:
30
extensions/notebook/src/book/remoteBook.ts
Normal file
30
extensions/notebook/src/book/remoteBook.ts
Normal file
@@ -0,0 +1,30 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import * as vscode from 'vscode';
|
||||
import * as utils from '../common/utils';
|
||||
import { IAsset } from './remoteBookController';
|
||||
|
||||
export abstract class RemoteBook {
|
||||
protected _localPath: URL;
|
||||
|
||||
constructor(public remotePath: URL, public outputChannel: vscode.OutputChannel, protected _asset?: IAsset) {
|
||||
this.remotePath = remotePath;
|
||||
}
|
||||
|
||||
public async abstract createLocalCopy(): Promise<void>;
|
||||
|
||||
public setLocalPath(): void {
|
||||
// Save directory on User directory
|
||||
if (vscode.workspace.workspaceFolders !== undefined) {
|
||||
// Get workspace root path
|
||||
let folders = vscode.workspace.workspaceFolders;
|
||||
this._localPath = new URL(folders[0].uri.fsPath);
|
||||
} else {
|
||||
//If no workspace folder is opened then path is Users directory
|
||||
this._localPath = new URL(utils.getUserHome());
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user