This commit is contained in:
José David Guillén 2022-06-25 09:23:59 +00:00
parent 4b53121953
commit 0875406bf8
6 changed files with 20 additions and 20 deletions

View File

@ -13,7 +13,7 @@
<category>organization</category> <category>organization</category>
<bugs>https://git.jd.guillen.io/wiki4nextcloud/issues</bugs> <bugs>https://git.jd.guillen.io/wiki4nextcloud/issues</bugs>
<dependencies> <dependencies>
<nextcloud min-version="12" max-version="24"/> <nextcloud min-version="12" max-version="25"/>
</dependencies> </dependencies>
<navigations> <navigations>
<navigation> <navigation>

View File

@ -5,15 +5,15 @@ li[data-id="wikis"] select {
li[class^="wikiPage-lvl-"] a::before { li[class^="wikiPage-lvl-"] a::before {
display: inline-block; display: inline-block;
} }
.wikiPage-lvl-1 a::before { .wikiPage-lvl-1>a::before {
content: "•"; content: "•";
width: 1em; width: 1em;
} }
.wikiPage-lvl-2 a::before { .wikiPage-lvl-2>a::before {
content: "• •"; content: "• •";
width: 1.5em; width: 1.5em;
} }
.wikiPage-lvl-3 a::before { .wikiPage-lvl-3>a::before {
content: "• • •"; content: "• • •";
width: 2em; width: 2em;
} }

View File

@ -12,6 +12,8 @@ class WikiPages {
clear() { clear() {
this.wikiId = null; this.wikiId = null;
this.ul.querySelectorAll('[data-page-id]').forEach( x=>x.remove() ); this.ul.querySelectorAll('[data-page-id]').forEach( x=>x.remove() );
document.querySelectorAll('#app-navigation .active').forEach(e=>e.class.remove('.active'))
} }
getWikiId() { getWikiId() {
@ -167,6 +169,7 @@ class WikiPages {
} while(nextNode && nextNode.dataset.pid!=parent.dataset.pid); } while(nextNode && nextNode.dataset.pid!=parent.dataset.pid);
} }
let link2folder = OC.generateUrl('/apps/files?fileid='+pageId);
let li = document.createElement("li"); let li = document.createElement("li");
li.classList.add(`wikiPage-lvl-${lvl}`); li.classList.add(`wikiPage-lvl-${lvl}`);
li.dataset.pageId = pageId; li.dataset.pageId = pageId;
@ -190,7 +193,7 @@ class WikiPages {
<div class="app-navigation-entry-menu"> <div class="app-navigation-entry-menu">
<ul> <ul>
<li> <li>
<button data-id="openFolder" class="icon-folder">Open Folder</button> <a data-id="openFolder" class="icon-folder" href="${link2folder}">Open Folder</a>
</li> </li>
<li> <li>
<button data-id="add" class="icon-add">Add Page</button> <button data-id="add" class="icon-add">Add Page</button>

View File

@ -45,12 +45,12 @@ class WikiMapper extends QBMapper {
if ($filter) { if ($filter) {
if (array_key_exists('title',$filter) ) { if (array_key_exists('title',$filter) ) {
$qb->where( $qb->andwhere(
$qb->expr()->eq('title', $qb->createNamedParameter($filter['title'])) $qb->expr()->eq('title', $qb->createNamedParameter($filter['title']))
); );
} }
if (array_key_exists('fileId',$filter) ) { if (array_key_exists('fileId',$filter) ) {
$qb->where( $qb->andwhere(
$qb->expr()->eq('file_id', $qb->createNamedParameter($filter['fileId'])) $qb->expr()->eq('file_id', $qb->createNamedParameter($filter['fileId']))
); );
} }

View File

@ -81,8 +81,7 @@ class WikiHelper {
if ( $this->wikiFolder->nodeExists($path) ) { if ( $this->wikiFolder->nodeExists($path) ) {
$this->getFileByName(self::WIKI_FILE)->putContent($data); $this->getFileByName(self::WIKI_FILE)->putContent($data);
} else { } else {
$this->wikiFolder $this->wikiFolder->newFile(self::WIKI_FILE, $data);
->newFile(self::WIKI_FILE, $data);
} }
} catch(\Exception $ex) { } catch(\Exception $ex) {
return false; return false;
@ -154,11 +153,9 @@ class WikiHelper {
public function getWikiPageContent($id): string { public function getWikiPageContent($id): string {
try { try {
$pageFolder = $this->getFolderById($id); $pageFolder = $this->getFolderById($id);
$path = $pageFolder->getInternalPath().'/'.self::WIKI_FILE_CONTENT; if ( $pageFolder->nodeExists(self::WIKI_FILE_CONTENT) ) {
if ( $this->wikiFolder->nodeExists($path) ) { return $pageFolder->get(self::WIKI_FILE_CONTENT)->getContent();
return $this->getFileByName(self::WIKI_FILE_CONTENT)->getContent();
} }
$this->wikiFolder->newFile(self::WIKI_FILE_CONTENT, '');
} catch(\Exception $ex) { } catch(\Exception $ex) {
return null; return null;
} }
@ -168,12 +165,10 @@ class WikiHelper {
public function update(int $id, string $content) { public function update(int $id, string $content) {
try { try {
$pageFolder = $this->getFolderById($id); $pageFolder = $this->getFolderById($id);
$path = $pageFolder->getInternalPath().'/'.self::WIKI_FILE_CONTENT; if ( $pageFolder->nodeExists(self::WIKI_FILE_CONTENT) ) {
if ( $this->wikiFolder->nodeExists($path) ) { $pageFolder->get(self::WIKI_FILE_CONTENT)->putContent($content);
$this->getFileByName(self::WIKI_FILE_CONTENT)->putContent($content);
} else { } else {
$this->wikiFolder $pageFolder->newFile(self::WIKI_FILE_CONTENT, $content);
->newFile(self::WIKI_FILE_CONTENT, $content);
} }
} catch(\Exception $ex) { } catch(\Exception $ex) {
return false; return false;

View File

@ -45,7 +45,9 @@ class WikiPageService {
public function find(int $wikiId, int $id, string $userId) { public function find(int $wikiId, int $id, string $userId) {
try { try {
$wiki = $this->mapper->find($wikiId, $userId); $wiki = $this->mapper->find($wikiId, $userId);
$wikiPageContent = $this->wikiHelper->setFolderId($wiki->getFileId())->getWikiPageContent($id); $wikiPageContent = $this->wikiHelper
->setFolderId($wiki->getFileId())
->getWikiPageContent($id);
} catch(Exception $e) { } catch(Exception $e) {
$this->handleException($e); $this->handleException($e);
} }