WikiNavigation, rename/delete

This commit is contained in:
2022-03-29 22:24:32 +00:00
parent 296ad3a2ce
commit 7365248bf3
4 changed files with 86 additions and 43 deletions

View File

@ -60,16 +60,10 @@ class WikiHelper {
return $this;
}
private function isWiki() :bool {
private function isWikiable() :bool {
return $this->wikiFolder && $this->wikiFolder->getType() == \OCP\Files\Node::TYPE_FOLDER;
}
public function reloadWikiTree(): array {
$wiki = $this->getWikiData();
$wiki['pages'] = $this->rebuildWikiTree();
$this->setWikiData($wiki);
return $wiki;
}
public function getWikiData(): ?array {
try {
@ -96,24 +90,33 @@ class WikiHelper {
return true;
}
public function createWikiData(): array {
$wiki = [
"title"=>$this->wikiFolder->getName(),
"folderId"=>$this->wikiFolder->getId(),
"pages"=>[]
];
$wiki['pages'] = $this->rebuildWikiTree();
return $wiki;
}
public function rebuildWiki($title): ?array {
$wiki = $this->createWikiData(true);
$wiki['title'] = $title;
return $this->setWikiData($wiki) ? $wiki : null;
}
public function initWiki(string $folderPath, string $title) :?int {
$this->wikiFolder = $this->userFolder->get($folderPath);
if ( !$this->isWiki() ) {
if ( !$this->isWikiable() ) {
return null;
}
$folderId = $this->wikiFolder->getId();
if ( $this->getWikiData() === null ) {
$wiki = [
"title"=>$title,
"folderId"=>$folderId,
"pages"=>$this->rebuildWikiTree()
];
if ( !$this->setWikiData($wiki) ) {
if ( $this->rebuildWiki($title) === null ) {
return null;
}
}
return $folderId;
return $this->wikiFolder->getId();
}
public function add(int $parentId, string $title) {