mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-14 03:58:33 -05:00
Fix search for pinned notebooks (#12719)
* fix search for pinned notebooks * fix filtering when verifying that a search folder is not a subdirectory from the current folder queries path * Show book node on pinned notebooks search results * fix parent node on pinned notebooks search results * fix search for pinned notebook and modify how pinned notebooks are stored in workspace * update format of pinned notebooks for users that used the september release version * removed unused functions * Address PR comments * fix parent node for legacy version of jupyter books * remove cast from book path
This commit is contained in:
@@ -57,9 +57,9 @@ export class BookTreeViewProvider implements vscode.TreeDataProvider<BookTreeIte
|
||||
|
||||
private async initialize(workspaceFolders: vscode.WorkspaceFolder[]): Promise<void> {
|
||||
if (this.viewId === constants.PINNED_BOOKS_VIEWID) {
|
||||
await Promise.all(getPinnedNotebooks().map(async (notebookPath) => {
|
||||
await Promise.all(getPinnedNotebooks().map(async (notebook) => {
|
||||
try {
|
||||
await this.createAndAddBookModel(notebookPath, true);
|
||||
await this.createAndAddBookModel(notebook.notebookPath, true, notebook.bookPath);
|
||||
} catch {
|
||||
// no-op, not all workspace folders are going to be valid books
|
||||
}
|
||||
@@ -90,7 +90,7 @@ export class BookTreeViewProvider implements vscode.TreeDataProvider<BookTreeIte
|
||||
}
|
||||
|
||||
trustBook(bookTreeItem?: BookTreeItem): void {
|
||||
let bookPathToTrust = bookTreeItem ? bookTreeItem.root : this.currentBook?.bookPath;
|
||||
let bookPathToTrust: string = bookTreeItem ? bookTreeItem.root : this.currentBook?.bookPath;
|
||||
if (bookPathToTrust) {
|
||||
let trustChanged = this._bookTrustManager.setBookAsTrusted(bookPathToTrust);
|
||||
if (trustChanged) {
|
||||
@@ -169,7 +169,8 @@ export class BookTreeViewProvider implements vscode.TreeDataProvider<BookTreeIte
|
||||
async addNotebookToPinnedView(bookItem: BookTreeItem): Promise<void> {
|
||||
let notebookPath: string = bookItem.book.contentPath;
|
||||
if (notebookPath) {
|
||||
await this.createAndAddBookModel(notebookPath, true);
|
||||
let rootPath: string = bookItem.book.root ? bookItem.book.root : '';
|
||||
await this.createAndAddBookModel(notebookPath, true, rootPath);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -215,10 +216,12 @@ export class BookTreeViewProvider implements vscode.TreeDataProvider<BookTreeIte
|
||||
* Creates a model for the specified folder path and adds it to the known list of books if we
|
||||
* were able to successfully parse it.
|
||||
* @param bookPath The path to the book folder to create the model for
|
||||
* @param isNotebook A boolean value to know we are creating a model for a notebook or a book
|
||||
* @param notebookBookRoot For pinned notebooks we need to know if the notebook is part of a book or it's a standalone notebook
|
||||
*/
|
||||
private async createAndAddBookModel(bookPath: string, isNotebook: boolean): Promise<void> {
|
||||
private async createAndAddBookModel(bookPath: string, isNotebook: boolean, notebookBookRoot?: string): Promise<void> {
|
||||
if (!this.books.find(x => x.bookPath === bookPath)) {
|
||||
const book: BookModel = new BookModel(bookPath, this._openAsUntitled, isNotebook, this._extensionContext);
|
||||
const book: BookModel = new BookModel(bookPath, this._openAsUntitled, isNotebook, this._extensionContext, notebookBookRoot);
|
||||
await book.initializeContents();
|
||||
this.books.push(book);
|
||||
if (!this.currentBook) {
|
||||
|
||||
Reference in New Issue
Block a user