mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-16 10:58:30 -05:00
Create directory when adding a book section from book tree view (#18966)
* create folder when creating a book section * fix test
This commit is contained in:
@@ -460,7 +460,6 @@ export class BookTocManager implements IBookTocManager {
|
||||
|
||||
public async addNewTocEntry(pathDetails: TocEntryPathHandler, bookItem: BookTreeItem, isSection?: boolean): Promise<void> {
|
||||
let findSection: JupyterBookSection | undefined = undefined;
|
||||
await fs.writeFile(pathDetails.filePath, '');
|
||||
if (bookItem.contextValue === BookTreeItemType.section) {
|
||||
findSection = { file: bookItem.book.page.file, title: bookItem.book.page.title };
|
||||
}
|
||||
@@ -470,8 +469,10 @@ export class BookTocManager implements IBookTocManager {
|
||||
};
|
||||
|
||||
if (isSection) {
|
||||
await fs.mkdir(path.dirname(pathDetails.filePath));
|
||||
fileEntryInToc.sections = [];
|
||||
}
|
||||
await fs.writeFile(pathDetails.filePath, '');
|
||||
|
||||
if (bookItem.book.version === BookVersion.v1) {
|
||||
fileEntryInToc = convertTo(BookVersion.v1, fileEntryInToc);
|
||||
|
||||
@@ -99,7 +99,8 @@ export class AddTocEntryDialog {
|
||||
public async createFile(fileName: string, titleName: string): Promise<boolean> {
|
||||
try {
|
||||
const dirPath = this._bookItem.contextValue === BookTreeItemType.savedBook ? this._bookItem.rootContentPath : path.dirname(this._bookItem.book.contentPath);
|
||||
const filePath = path.posix.join(dirPath, fileName).concat(this._extension);
|
||||
// For sections, we pass the name of the section in the path to create a directory with the same name
|
||||
const filePath = this._isSection ? path.posix.join(dirPath, titleName, fileName).concat(this._extension) : path.posix.join(dirPath, fileName).concat(this._extension);
|
||||
await this.validatePath(dirPath, fileName.concat(this._extension));
|
||||
const pathDetails = new TocEntryPathHandler(filePath, this._bookItem.rootContentPath, titleName);
|
||||
await this._tocManager.addNewTocEntry(pathDetails, this._bookItem, this._isSection);
|
||||
|
||||
@@ -576,8 +576,7 @@ describe('BookTocManagerTests', function () {
|
||||
bookTocManager = new BookTocManager(sourceBookModel);
|
||||
const fileBasename = `addSectionTest-${generateGuid()}`;
|
||||
const sectionTitle = 'Section Test';
|
||||
const testFilePath = path.join(run.sectionA.contentFolder, 'sectionA', fileBasename).concat(FileExtension.Markdown);
|
||||
await fs.writeFile(testFilePath, '');
|
||||
const testFilePath = path.join(run.sectionA.contentFolder, 'sectionA', sectionTitle,fileBasename).concat(FileExtension.Markdown);
|
||||
const pathDetails = new TocEntryPathHandler(testFilePath, run.sourceBook.root, sectionTitle);
|
||||
await bookTocManager.addNewTocEntry(pathDetails, sectionA, true);
|
||||
let toc: JupyterBookSection[] = yaml.safeLoad((await fs.promises.readFile(run.sourceBook.tocPath)).toString());
|
||||
|
||||
Reference in New Issue
Block a user