From 56eb34dd058d17d0d8d8922e60511799b2dca336 Mon Sep 17 00:00:00 2001 From: fayzetwin Date: Sun, 2 Aug 2026 19:12:00 +0300 Subject: [PATCH 1/8] feat: Implement group pages feature with management and access controls with markdown support --- Web/Models/Entities/Club.php | 49 +++ Web/Models/Entities/GroupPage.php | 352 ++++++++++++++++ Web/Models/Entities/GroupPageRevision.php | 44 ++ Web/Models/Repositories/GroupPages.php | 143 +++++++ Web/Presenters/GroupPresenter.php | 10 +- Web/Presenters/PagesPresenter.php | 390 ++++++++++++++++++ Web/Presenters/templates/Group/Edit.latte | 13 + Web/Presenters/templates/Group/View.latte | 34 ++ Web/Presenters/templates/Pages/Create.latte | 71 ++++ Web/Presenters/templates/Pages/Edit.latte | 72 ++++ Web/Presenters/templates/Pages/Help.latte | 88 ++++ Web/Presenters/templates/Pages/History.latte | 50 +++ Web/Presenters/templates/Pages/List.latte | 102 +++++ Web/Presenters/templates/Pages/Revision.latte | 31 ++ Web/Presenters/templates/Pages/View.latte | 22 + Web/Presenters/templates/Pages/listTabs.latte | 16 + Web/Presenters/templates/Pages/tabs.latte | 23 ++ Web/Presenters/templates/_includeCSS.latte | 3 + Web/di.yml | 2 + Web/routes.yml | 26 +- Web/static/css/gpages.css | 377 +++++++++++++++++ Web/static/css/main.css | 4 + Web/static/img/icons/wysiwyg.gif | Bin 0 -> 4434 bytes Web/static/js/al_pages.js | 281 +++++++++++++ install/sqls/00064-group-pages.sql | 32 ++ locales/en.strings | 82 ++++ locales/ru.strings | 82 ++++ tests/docker-compose.override.yml | 21 + .../club1-edit-linux.png | Bin 35643 -> 44640 bytes .../groups.spec.ts-snapshots/club1-linux.png | Bin 49436 -> 60336 bytes .../page-1-1-edit-linux.png | Bin 0 -> 20570 bytes .../page-1-1-history-linux.png | Bin 0 -> 14774 bytes .../page-1-1-linux.png | Bin 0 -> 15683 bytes .../page-create-linux.png | Bin 0 -> 13307 bytes .../pages-help-linux.png | Bin 0 -> 27239 bytes .../pages-list-linux.png | Bin 0 -> 19382 bytes tests/e2e/specs/pages.spec.ts | 66 +++ tests/entrypoint.sh | 21 +- tests/seed-data.sql | 12 + 39 files changed, 2513 insertions(+), 6 deletions(-) create mode 100644 Web/Models/Entities/GroupPage.php create mode 100644 Web/Models/Entities/GroupPageRevision.php create mode 100644 Web/Models/Repositories/GroupPages.php create mode 100644 Web/Presenters/PagesPresenter.php create mode 100644 Web/Presenters/templates/Pages/Create.latte create mode 100644 Web/Presenters/templates/Pages/Edit.latte create mode 100644 Web/Presenters/templates/Pages/Help.latte create mode 100644 Web/Presenters/templates/Pages/History.latte create mode 100644 Web/Presenters/templates/Pages/List.latte create mode 100644 Web/Presenters/templates/Pages/Revision.latte create mode 100644 Web/Presenters/templates/Pages/View.latte create mode 100644 Web/Presenters/templates/Pages/listTabs.latte create mode 100644 Web/Presenters/templates/Pages/tabs.latte create mode 100644 Web/static/css/gpages.css create mode 100644 Web/static/img/icons/wysiwyg.gif create mode 100644 Web/static/js/al_pages.js create mode 100644 install/sqls/00064-group-pages.sql create mode 100644 tests/docker-compose.override.yml create mode 100644 tests/e2e/screenshots/pages.spec.ts-snapshots/page-1-1-edit-linux.png create mode 100644 tests/e2e/screenshots/pages.spec.ts-snapshots/page-1-1-history-linux.png create mode 100644 tests/e2e/screenshots/pages.spec.ts-snapshots/page-1-1-linux.png create mode 100644 tests/e2e/screenshots/pages.spec.ts-snapshots/page-create-linux.png create mode 100644 tests/e2e/screenshots/pages.spec.ts-snapshots/pages-help-linux.png create mode 100644 tests/e2e/screenshots/pages.spec.ts-snapshots/pages-list-linux.png create mode 100644 tests/e2e/specs/pages.spec.ts diff --git a/Web/Models/Entities/Club.php b/Web/Models/Entities/Club.php index 35ede6ae8..48cdefcca 100644 --- a/Web/Models/Entities/Club.php +++ b/Web/Models/Entities/Club.php @@ -36,6 +36,10 @@ class Club extends RowModel public const WALL_OPEN = 1; public const WALL_LIMITED = 2; + public const PAGES_DISABLED = 0; + public const PAGES_OPEN = 1; + public const PAGES_LIMITED = 2; + public function getId(): int { return $this->getRecord()->id; @@ -523,6 +527,51 @@ public function canUploadDocs(?User $user): bool return $this->canBeModifiedBy($user); } + public function getPagesType(): int + { + return (int) ($this->getRecord()->pages ?? 0); + } + + public function isPagesEnabled(): bool + { + return $this->getPagesType() !== self::PAGES_DISABLED; + } + + public function setPages(int $type): void + { + if ($type > 2 || $type < 0) { + throw new \LogicException("Invalid pages"); + } + + $this->stateChanges("pages", $type); + } + + public function canManagePages(?User $user): bool + { + if (!$user) { + return false; + } + + return $this->isPagesEnabled() && $this->canBeModifiedBy($user); + } + + public function canCreatePages(?User $user): bool + { + if (!$user || !$this->isPagesEnabled()) { + return false; + } + + if ($this->canBeModifiedBy($user)) { + return true; + } + + if ($this->getPagesType() === self::PAGES_OPEN) { + return (bool) $this->getSubscriptionStatus($user); + } + + return false; + } + public function getAudiosCollectionSize() { return (new \openvk\Web\Models\Repositories\Audios())->getClubCollectionSize($this); diff --git a/Web/Models/Entities/GroupPage.php b/Web/Models/Entities/GroupPage.php new file mode 100644 index 000000000..aea885eaa --- /dev/null +++ b/Web/Models/Entities/GroupPage.php @@ -0,0 +1,352 @@ +getRecord()->id; + } + + public function getVirtualId(): int + { + return (int) $this->getRecord()->virtual_id; + } + + public function getGroupId(): int + { + $record = $this->getRecord(); + if ($record) { + return (int) $record->group; + } + + return (int) ($this->changes["group"] ?? 0); + } + + public function getClub(): Club + { + return (new Clubs())->get($this->getGroupId()); + } + + public function getOwner(): ?User + { + return (new Users())->get((int) $this->getRecord()->owner); + } + + public function getTitle(): string + { + return $this->getRecord()->title; + } + + public function getSource(): string + { + return (string) $this->getRecord()->source; + } + + public function isMain(): bool + { + return (bool) $this->getRecord()->is_main; + } + + public function getViewAccess(): int + { + return (int) $this->getRecord()->view_access; + } + + public function getEditAccess(): int + { + return (int) $this->getRecord()->edit_access; + } + + public function isDeleted(): bool + { + return (bool) $this->getRecord()->deleted; + } + + public function getPrettyId(): string + { + return "-" . $this->getGroupId() . "_" . $this->getVirtualId(); + } + + public function getURL(): string + { + return "/page-" . $this->getGroupId() . "_" . $this->getVirtualId(); + } + + public function getPublicationTime(): DateTime + { + return new DateTime((int) $this->getRecord()->created); + } + + public function getEditTime(): ?DateTime + { + $edited = $this->getRecord()->edited; + return $edited ? new DateTime((int) $edited) : null; + } + + public function getEditor(): ?User + { + $revisions = DatabaseConnection::i()->getContext()->table("group_page_revisions") + ->where("page", $this->getId()) + ->order("created DESC") + ->limit(1) + ->fetch(); + + if (!$revisions) { + return $this->getOwner(); + } + + return (new Users())->get((int) $revisions->editor); + } + + protected function checkAccessLevel(int $level, ?User $user): bool + { + if ($level === self::ACCESS_EVERYONE) { + return true; + } + + if (!$user) { + return false; + } + + $club = $this->getClub(); + if ($club->canBeModifiedBy($user)) { + return true; + } + + if ($level === self::ACCESS_ADMINS) { + return false; + } + + // ACCESS_MEMBERS + return $club->getSubscriptionStatus($user); + } + + public function canBeViewedBy(?User $user = null): bool + { + if ($this->isDeleted()) { + return false; + } + + $club = $this->getClub(); + if (!$club || $club->isBanned() || !$club->isPagesEnabled()) { + return false; + } + + return $this->checkAccessLevel($this->getViewAccess(), $user); + } + + public function canBeEditedBy(?User $user = null): bool + { + if (!$user || $this->isDeleted()) { + return false; + } + + $club = $this->getClub(); + if (!$club || $club->isBanned() || !$club->isPagesEnabled()) { + return false; + } + + return $this->checkAccessLevel($this->getEditAccess(), $user); + } + + public static function renderMarkdown(string $source, Club $club): string + { + $pages = new GroupPages(); + $processed = preg_replace_callback( + '/\[\[([^\]|#]+)(?:\|([^\]]+))?\]\]/u', + function (array $matches) use ($pages, $club): string { + $target = trim($matches[1]); + $label = isset($matches[2]) ? trim($matches[2]) : $target; + $page = $pages->getByTitle($club, $target); + + if ($page) { + return "[" . str_replace(["[", "]"], ["\\[", "\\]"], $label) . "](" . $page->getURL() . ")"; + } + + $createUrl = "/pages-" . $club->getId() . "/create?title=" . rawurlencode($target); + return "[" . str_replace(["[", "]"], ["\\[", "\\]"], $label) . "](" . $createUrl . ")"; + }, + $source + ); + + $html = (new Parsedown())->text($processed ?? $source); + + $html = preg_replace_callback( + '//', + static function (array $m): string { + return ''; + }, + $html + ); + + $config = HTMLPurifier_Config::createDefault(); + $config->set("Attr.AllowedClasses", ["wiki-missing", "underline"]); + $config->set("Attr.DefaultInvalidImageAlt", "Unknown image"); + $config->set("AutoFormat.AutoParagraph", false); + $config->set("AutoFormat.Linkify", true); + $config->set("URI.Base", "//$_SERVER[SERVER_NAME]/"); + $config->set("URI.Munge", "/away.php?xinf=%n.%m:%r&css=%p&to=%s"); + $config->set("URI.MakeAbsolute", true); + $config->set("HTML.Doctype", "XHTML 1.1"); + $config->set("HTML.TidyLevel", "heavy"); + $config->set("HTML.AllowedElements", [ + "div", "h1", "h2", "h3", "h4", "h5", "h6", "p", "i", "b", "em", "strong", + "a", "del", "ins", "sup", "sub", "table", "thead", "tbody", "tr", "td", "th", + "img", "ul", "ol", "li", "hr", "br", "blockquote", "cite", "span", "code", "pre", + ]); + $config->set("HTML.AllowedAttributes", [ + "table.summary", "td.abbr", "th.abbr", "a.href", "a.class", "a.title", + "img.src", "img.alt", "img.style", "div.style", "div.title", "span.class", "p.class", + "td.align", "th.align", "p.align", "div.align", + ]); + $config->set("CSS.AllowedProperties", [ + "float", "height", "width", "max-height", "max-width", "font-weight", "text-align", + ]); + + return (new HTMLPurifier($config))->purify($html); + } + + public function getText(): string + { + $club = $this->getClub(); + if (is_null($this->getRecord())) { + return self::renderMarkdown($this->changes["source"] ?? "", $club); + } + + $cached = $this->getRecord()->cached_html; + if (!$cached) { + $cached = self::renderMarkdown($this->getSource(), $club); + $this->changes["cached_html"] = $cached; + parent::save(false); + } + + return $cached; + } + + private ?int $revisionEditorId = null; + + public function getSourceByteSize(): int + { + return strlen($this->getSource()); + } + + public function delete(bool $softly = true): void + { + if (!$softly) { + parent::delete(false); + return; + } + + $this->setDeleted(1); + $this->setIs_Main(0); + parent::save(false); + } + + public function save(?bool $log = false): void + { + $isNew = is_null($this->getRecord()); + $record = $this->getRecord(); + $groupId = $record ? (int) $record->group : (int) ($this->changes["group"] ?? 0); + if (!$groupId) { + throw new \LogicException("Can't persist page without group"); + } + + // Drop non-column keys before any persistence + $editorId = $this->revisionEditorId; + unset($this->changes["_revision_editor"]); + $this->revisionEditorId = null; + + $titleChanged = isset($this->changes["title"]) + && (!$record || (string) $this->changes["title"] !== (string) $record->title); + $sourceChanged = isset($this->changes["source"]) + && (!$record || (string) $this->changes["source"] !== (string) $record->source); + + // If values were set but identical, drop them so parent::save is a no-op + if (isset($this->changes["title"]) && !$titleChanged && !$isNew) { + unset($this->changes["title"]); + } + if (isset($this->changes["source"]) && !$sourceChanged && !$isNew) { + unset($this->changes["source"]); + } + + $contentChanged = $isNew || $titleChanged || $sourceChanged; + + if ($isNew) { + if (!isset($this->changes["created"])) { + $this->changes["created"] = time(); + } + $count = sizeof(DatabaseConnection::i()->getContext()->table("group_pages")->where("group", $groupId)); + $this->changes["virtual_id"] = $count + 1; + if (!isset($this->changes["view_access"])) { + $this->changes["view_access"] = self::ACCESS_EVERYONE; + } + if (!isset($this->changes["edit_access"])) { + $this->changes["edit_access"] = self::ACCESS_ADMINS; + } + } elseif ($contentChanged) { + // Assign directly: stateChanges() probes ActiveRow and may fail on cached schema + $this->changes["edited"] = time(); + $this->changes["cached_html"] = null; + } + + if (!$isNew && !$contentChanged && empty($this->changes)) { + return; + } + + $revTitle = $contentChanged + ? (string) ($this->changes["title"] ?? ($record->title ?? "")) + : null; + $revSource = $contentChanged + ? (string) ($this->changes["source"] ?? ($record->source ?? "")) + : null; + + parent::save($log); + + if ($contentChanged && $editorId !== null) { + DatabaseConnection::i()->getContext()->table("group_page_revisions")->insert([ + "page" => $this->getId(), + "editor" => (int) $editorId, + "title" => $revTitle, + "source" => $revSource, + "created" => time(), + ]); + } + } + + public function setRevisionEditor(int $userId): void + { + $this->revisionEditorId = $userId; + } + + public function makeMain(): void + { + DatabaseConnection::i()->getContext()->table("group_pages") + ->where([ + "group" => $this->getGroupId(), + "is_main" => 1, + "deleted" => 0, + ]) + ->update(["is_main" => 0]); + + $this->changes["is_main"] = 1; + parent::save(false); + } +} diff --git a/Web/Models/Entities/GroupPageRevision.php b/Web/Models/Entities/GroupPageRevision.php new file mode 100644 index 000000000..18dcb11ec --- /dev/null +++ b/Web/Models/Entities/GroupPageRevision.php @@ -0,0 +1,44 @@ +getRecord()->id; + } + + public function getPageId(): int + { + return (int) $this->getRecord()->page; + } + + public function getEditor(): ?User + { + return (new Users())->get((int) $this->getRecord()->editor); + } + + public function getTitle(): string + { + return (string) $this->getRecord()->title; + } + + public function getSource(): string + { + return (string) $this->getRecord()->source; + } + + public function getCreationTime(): DateTime + { + return new DateTime((int) $this->getRecord()->created); + } +} diff --git a/Web/Models/Repositories/GroupPages.php b/Web/Models/Repositories/GroupPages.php new file mode 100644 index 000000000..facd82e13 --- /dev/null +++ b/Web/Models/Repositories/GroupPages.php @@ -0,0 +1,143 @@ +context = DatabaseConnection::i()->getContext(); + } + + private function pages(): Selection + { + return $this->context->table("group_pages"); + } + + private function revisions(): Selection + { + return $this->context->table("group_page_revisions"); + } + + private function toPage(?ActiveRow $ar): ?GroupPage + { + return is_null($ar) ? null : new GroupPage($ar); + } + + private function toRevision(?ActiveRow $ar): ?GroupPageRevision + { + return is_null($ar) ? null : new GroupPageRevision($ar); + } + + public function get(int $id): ?GroupPage + { + return self::$cache[$id] ??= $this->toPage($this->pages()->get($id)); + } + + public function getPageById(int $clubId, int $virtualId): ?GroupPage + { + return $this->toPage($this->pages()->where([ + "group" => $clubId, + "virtual_id" => $virtualId, + "deleted" => 0, + ])->fetch()); + } + + public function getByTitle(Club $club, string $title): ?GroupPage + { + return $this->toPage($this->pages()->where([ + "group" => $club->getId(), + "title" => $title, + "deleted" => 0, + ])->fetch()); + } + + public function getMainPage(Club $club): ?GroupPage + { + return $this->toPage($this->pages()->where([ + "group" => $club->getId(), + "is_main" => 1, + "deleted" => 0, + ])->order("created ASC")->fetch()); + } + + public function getClubPages(Club $club, int $page = 1, ?int $perPage = null): \Traversable + { + $perPage ??= OPENVK_DEFAULT_PER_PAGE; + $rows = $this->pages()->where([ + "group" => $club->getId(), + "deleted" => 0, + ])->order("is_main DESC, edited DESC, created DESC")->page($page, $perPage); + + foreach ($rows as $row) { + yield $this->toPage($row); + } + } + + public function getClubPagesCount(Club $club): int + { + return sizeof($this->pages()->where([ + "group" => $club->getId(), + "deleted" => 0, + ])); + } + + /** + * Keep at most one main page per club (earliest created wins). + */ + public function ensureSingleMain(Club $club): void + { + $mains = $this->pages()->where([ + "group" => $club->getId(), + "deleted" => 0, + "is_main" => 1, + ])->order("created ASC"); + + $keepId = null; + foreach ($mains as $row) { + if ($keepId === null) { + $keepId = (int) $row->id; + continue; + } + + $row->update(["is_main" => 0]); + unset(self::$cache[(int) $row->id]); + } + } + + public function getRevisions(GroupPage $page, int $pageNum = 1, ?int $perPage = null): \Traversable + { + $perPage ??= OPENVK_DEFAULT_PER_PAGE; + $rows = $this->revisions()->where("page", $page->getId()) + ->order("created DESC") + ->page($pageNum, $perPage); + + foreach ($rows as $row) { + yield $this->toRevision($row); + } + } + + public function getRevisionsCount(GroupPage $page): int + { + return sizeof($this->revisions()->where("page", $page->getId())); + } + + public function getRevision(GroupPage $page, int $revisionId): ?GroupPageRevision + { + return $this->toRevision($this->revisions()->where([ + "id" => $revisionId, + "page" => $page->getId(), + ])->fetch()); + } +} diff --git a/Web/Presenters/GroupPresenter.php b/Web/Presenters/GroupPresenter.php index 9f6b6b7eb..033ba61ac 100644 --- a/Web/Presenters/GroupPresenter.php +++ b/Web/Presenters/GroupPresenter.php @@ -7,7 +7,7 @@ use openvk\Web\Models\Entities\{Club, Photo, Post}; use Nette\InvalidStateException; use openvk\Web\Models\Entities\Notifications\ClubModeratorNotification; -use openvk\Web\Models\Repositories\{Clubs, Users, Albums, Managers, Topics, Audios, Posts, Documents}; +use openvk\Web\Models\Repositories\{Clubs, Users, Albums, Managers, Topics, Audios, Posts, Documents, GroupPages}; use Chandler\Security\Authenticator; use Nette\InvalidStateException as ISE; use Chandler\Session\Session; @@ -42,6 +42,9 @@ public function renderView(int $id): void $this->template->audiosCount = (new Audios())->getClubCollectionSize($club); $this->template->docsCount = $docs->size(); $this->template->docs = $docs->offsetLimit(0, 2); + $groupPages = new GroupPages(); + $this->template->pagesCount = $groupPages->getClubPagesCount($club); + $this->template->mainPage = $groupPages->getMainPage($club); } if (!is_null($this->user->identity) && $club->getWallType() == 2) { @@ -334,6 +337,11 @@ public function renderEdit(int $id): void $club->setEveryone_Can_Create_Topics(empty($this->postParam("everyone_can_create_topics")) ? 0 : 1); $club->setDisplay_Topics_Above_Wall(empty($this->postParam("display_topics_above_wall")) ? 0 : 1); $club->setEveryone_can_upload_audios(empty($this->postParam("upload_audios")) ? 0 : 1); + try { + $club->setPages(empty($this->postParam("pages")) ? 0 : (int) $this->postParam("pages")); + } catch (\Exception $e) { + $this->flashFail("err", tr("error"), tr("error_invalid_pages_value")); + } if (!$club->isHidingFromGlobalFeedEnforced()) { $club->setHide_From_Global_Feed(empty($this->postParam("hide_from_global_feed") ? 0 : 1)); diff --git a/Web/Presenters/PagesPresenter.php b/Web/Presenters/PagesPresenter.php new file mode 100644 index 000000000..e0534c64b --- /dev/null +++ b/Web/Presenters/PagesPresenter.php @@ -0,0 +1,390 @@ +pages = $pages; + $this->clubs = $clubs; + + parent::__construct(); + } + + private function getClubOrFail(int $id) + { + $club = $this->clubs->get($id); + if (!$club || $club->isBanned()) { + $this->notFound(); + } + + return $club; + } + + private function assertPagesEnabled($club): void + { + if (!$club->isPagesEnabled()) { + $this->notFound(); + } + } + + private function getPageOrFail(int $clubId, int $virtualId): GroupPage + { + $page = $this->pages->getPageById($clubId, $virtualId); + if (!$page) { + $this->notFound(); + } + + return $page; + } + + public function renderList(int $clubId): void + { + $club = $this->getClubOrFail($clubId); + $this->assertPagesEnabled($club); + $this->pages->ensureSingleMain($club); + + $perPage = OPENVK_DEFAULT_PER_PAGE; + $page = max(1, (int) ($this->queryParam("p") ?? 1)); + $count = $this->pages->getClubPagesCount($club); + $pageCount = max(1, (int) ceil($count / $perPage)); + if ($page > $pageCount) { + $page = $pageCount; + } + + $this->template->club = $club; + $this->template->pages = $this->pages->getClubPages($club, $page, $perPage); + $this->template->count = $count; + $this->template->page = $page; + $this->template->showingFrom = $count === 0 ? 0 : (($page - 1) * $perPage + 1); + $this->template->showingTo = min($page * $perPage, $count); + $this->template->paginatorConf = (object) [ + "count" => $count, + "page" => $page, + "amount" => null, + "perPage" => $perPage, + "tidy" => true, + "atTop" => true, + "space" => 6, + "pageCount" => $pageCount, + ]; + $this->template->bottomPaginatorConf = clone $this->template->paginatorConf; + $this->template->bottomPaginatorConf->atTop = false; + $this->template->bottomPaginatorConf->atBottom = true; + $this->template->bottomPaginatorConf->tidy = false; + $this->template->bottomPaginatorConf->space = 11; + } + + public function renderCreate(int $clubId): void + { + $this->assertUserLoggedIn(); + + $club = $this->getClubOrFail($clubId); + $this->assertPagesEnabled($club); + + if (!$club->canCreatePages($this->user->identity)) { + $this->flashFail("err", tr("error_access_denied_short"), tr("error_access_denied")); + } + + $this->template->club = $club; + $this->template->prefillTitle = $this->queryParam("title") ?? ""; + + if ($_SERVER["REQUEST_METHOD"] === "POST") { + $this->willExecuteWriteAction(); + $this->assertNoCSRF(); + $title = trim((string) $this->postParam("title")); + $source = (string) ($this->postParam("source") ?? ""); + + if ($title === "") { + $this->flashFail("err", tr("error"), tr("page_no_title")); + } + + if (mb_strlen($title) > 255) { + $this->flashFail("err", tr("error"), tr("page_title_too_long")); + } + + $existing = $this->pages->getByTitle($club, $title); + if ($existing) { + $this->flashFail("err", tr("error"), tr("page_title_exists")); + } + + $isFirst = $this->pages->getClubPagesCount($club) === 0; + $viewAccess = (int) ($this->postParam("view_access") ?? GroupPage::ACCESS_EVERYONE); + $editAccess = (int) ($this->postParam("edit_access") ?? GroupPage::ACCESS_ADMINS); + if ($viewAccess < 0 || $viewAccess > 2 || $editAccess < 0 || $editAccess > 2) { + $this->flashFail("err", tr("error"), tr("error_segmentation")); + } + + $page = new GroupPage(); + $page->setGroup($club->getId()); + $page->setOwner($this->user->id); + $page->setTitle(ovk_proc_strtr($title, 255)); + $page->setSource($source); + $page->setIs_Main($isFirst ? 1 : 0); + $page->setView_Access($viewAccess); + $page->setEdit_Access($editAccess); + $page->setRevisionEditor($this->user->id); + $page->save(); + + if ($isFirst) { + $page->makeMain(); + } + + $this->redirect($page->getURL()); + } + } + + public function renderView(int $clubId, int $virtualId): void + { + $club = $this->getClubOrFail($clubId); + $this->assertPagesEnabled($club); + $page = $this->getPageOrFail($clubId, $virtualId); + + if (!$page->canBeViewedBy($this->user->identity ?? null)) { + $this->flashFail("err", tr("error_access_denied_short"), tr("error_access_denied")); + } + + $this->template->club = $club; + $this->template->page = $page; + $this->template->tab = "view"; + } + + public function renderEdit(int $clubId, int $virtualId): void + { + $this->assertUserLoggedIn(); + + $club = $this->getClubOrFail($clubId); + $this->assertPagesEnabled($club); + $page = $this->getPageOrFail($clubId, $virtualId); + + if (!$page->canBeEditedBy($this->user->identity)) { + $this->flashFail("err", tr("error_access_denied_short"), tr("error_access_denied")); + } + + $this->template->club = $club; + $this->template->page = $page; + $this->template->tab = "edit"; + + if ($_SERVER["REQUEST_METHOD"] === "POST") { + $this->willExecuteWriteAction(); + $this->assertNoCSRF(); + $title = trim((string) $this->postParam("title")); + $source = (string) ($this->postParam("source") ?? ""); + + if ($title === "") { + $this->flashFail("err", tr("error"), tr("page_no_title")); + } + + if (mb_strlen($title) > 255) { + $this->flashFail("err", tr("error"), tr("page_title_too_long")); + } + + $existing = $this->pages->getByTitle($club, $title); + if ($existing && $existing->getId() !== $page->getId()) { + $this->flashFail("err", tr("error"), tr("page_title_exists")); + } + + $page->setTitle(ovk_proc_strtr($title, 255)); + $page->setSource($source); + $page->setRevisionEditor($this->user->id); + $page->save(); + + $this->redirect($page->getURL()); + } + } + + public function renderDelete(int $clubId, int $virtualId): void + { + $this->assertUserLoggedIn(); + $this->willExecuteWriteAction(); + $this->assertNoCSRF(); + + $club = $this->getClubOrFail($clubId); + $this->assertPagesEnabled($club); + $page = $this->getPageOrFail($clubId, $virtualId); + + if (!$page->canBeEditedBy($this->user->identity) && !$club->canManagePages($this->user->identity)) { + $this->flashFail("err", tr("error_access_denied_short"), tr("error_access_denied")); + } + + // Only managers can delete + if (!$club->canBeModifiedBy($this->user->identity)) { + $this->flashFail("err", tr("error_access_denied_short"), tr("error_access_denied")); + } + + $wasMain = $page->isMain(); + $page->delete(); + + if ($wasMain) { + $pages = iterator_to_array($this->pages->getClubPages($club, 1, 1)); + if (isset($pages[0])) { + $pages[0]->makeMain(); + } + } + + $this->flash("succ", tr("page_deleted"), tr("page_deleted_descr")); + $this->redirect("/pages-" . $club->getId()); + } + + public function renderSetMain(int $clubId, int $virtualId): void + { + $this->assertUserLoggedIn(); + $this->willExecuteWriteAction(); + $this->assertNoCSRF(); + + $club = $this->getClubOrFail($clubId); + $this->assertPagesEnabled($club); + $page = $this->getPageOrFail($clubId, $virtualId); + + if (!$club->canManagePages($this->user->identity)) { + $this->flashFail("err", tr("error_access_denied_short"), tr("error_access_denied")); + } + + $page->makeMain(); + $this->flash("succ", tr("success_action"), tr("page_set_main_succ")); + $this->redirect("/pages-" . $club->getId()); + } + + public function renderAccess(int $clubId, int $virtualId): void + { + $this->assertUserLoggedIn(); + $this->willExecuteWriteAction(); + $this->assertNoCSRF(); + + $club = $this->getClubOrFail($clubId); + $this->assertPagesEnabled($club); + $page = $this->getPageOrFail($clubId, $virtualId); + + if (!$club->canManagePages($this->user->identity) && !$page->canBeEditedBy($this->user->identity)) { + $this->flashFail("err", tr("error_access_denied_short"), tr("error_access_denied")); + } + + if ($_SERVER["REQUEST_METHOD"] !== "POST") { + $this->redirect($page->getURL() . "/edit"); + } + + $viewAccess = (int) ($this->postParam("view_access") ?? 0); + $editAccess = (int) ($this->postParam("edit_access") ?? 2); + + if ($viewAccess < 0 || $viewAccess > 2 || $editAccess < 0 || $editAccess > 2) { + $this->flashFail("err", tr("error"), tr("error_segmentation")); + } + + $page->setView_Access($viewAccess); + $page->setEdit_Access($editAccess); + // Avoid creating a content revision for ACL-only change + \Chandler\Database\DatabaseConnection::i()->getContext()->table("group_pages") + ->where("id", $page->getId()) + ->update([ + "view_access" => $viewAccess, + "edit_access" => $editAccess, + ]); + + $this->flash("succ", tr("success_action"), tr("page_access_saved")); + $this->redirect($page->getURL() . "/edit"); + } + + public function renderHistory(int $clubId, int $virtualId): void + { + $club = $this->getClubOrFail($clubId); + $this->assertPagesEnabled($club); + $page = $this->getPageOrFail($clubId, $virtualId); + + if (!$page->canBeViewedBy($this->user->identity ?? null)) { + $this->flashFail("err", tr("error_access_denied_short"), tr("error_access_denied")); + } + + $pageNum = (int) ($this->queryParam("p") ?? 1); + $this->template->club = $club; + $this->template->page = $page; + $this->template->tab = "history"; + $this->template->revisions = $this->pages->getRevisions($page, $pageNum); + $this->template->count = $this->pages->getRevisionsCount($page); + $this->template->paginatorConf = (object) [ + "count" => $this->template->count, + "page" => $pageNum, + "amount" => null, + "perPage" => OPENVK_DEFAULT_PER_PAGE, + "tidy" => false, + "atTop" => false, + ]; + } + + public function renderRevision(int $clubId, int $virtualId, int $revisionId): void + { + $club = $this->getClubOrFail($clubId); + $this->assertPagesEnabled($club); + $page = $this->getPageOrFail($clubId, $virtualId); + + if (!$page->canBeViewedBy($this->user->identity ?? null)) { + $this->flashFail("err", tr("error_access_denied_short"), tr("error_access_denied")); + } + + $revision = $this->pages->getRevision($page, $revisionId); + if (!$revision) { + $this->notFound(); + } + + $this->template->club = $club; + $this->template->page = $page; + $this->template->revision = $revision; + $this->template->tab = "history"; + $this->template->html = GroupPage::renderMarkdown($revision->getSource(), $club); + + if ($_SERVER["REQUEST_METHOD"] === "POST" && $this->postParam("restore") === "1") { + $this->assertUserLoggedIn(); + $this->willExecuteWriteAction(); + $this->assertNoCSRF(); + + if (!$page->canBeEditedBy($this->user->identity)) { + $this->flashFail("err", tr("error_access_denied_short"), tr("error_access_denied")); + } + + $page->setTitle($revision->getTitle()); + $page->setSource($revision->getSource()); + $page->setRevisionEditor($this->user->id); + $page->save(); + + $this->flash("succ", tr("success_action"), tr("page_restored")); + $this->redirect($page->getURL()); + } + } + + public function renderPreview(): void + { + $this->assertUserLoggedIn(); + + if ($_SERVER["REQUEST_METHOD"] !== "POST") { + header("HTTP/1.1 400 Bad Request"); + exit; + } + + $clubId = (int) ($this->postParam("club") ?? 0); + $club = $this->clubs->get($clubId); + if (!$club || !$club->isPagesEnabled()) { + header("HTTP/1.1 404 Not Found"); + exit; + } + + $source = (string) ($this->postParam("source") ?? ""); + header("Content-Type: text/html; charset=utf-8"); + exit(GroupPage::renderMarkdown($source, $club)); + } + + public function renderHelp(int $clubId): void + { + $club = $this->getClubOrFail($clubId); + $this->assertPagesEnabled($club); + $this->template->club = $club; + } +} diff --git a/Web/Presenters/templates/Group/Edit.latte b/Web/Presenters/templates/Group/Edit.latte index 111174a5d..3828101c4 100644 --- a/Web/Presenters/templates/Group/Edit.latte +++ b/Web/Presenters/templates/Group/Edit.latte @@ -124,6 +124,19 @@ {_display_list_of_topics_above_wall} + + + {_materials}: + + + +
{_materials_hint}
+ + {_group_administrators_list}: diff --git a/Web/Presenters/templates/Group/View.latte b/Web/Presenters/templates/Group/View.latte index 5d1057c5a..3bc8d00b6 100644 --- a/Web/Presenters/templates/Group/View.latte +++ b/Web/Presenters/templates/Group/View.latte @@ -81,6 +81,39 @@ + +
+
+ {_group_pages_main} +
+
+ +
+
+ {$mainPage->getTitle()} +
+ {$mainPage->getText()|noescape} +
+
+
+ {_page_access_denied} +
+
+
+ {_create_first_page} + {_pages_empty} +
+
+ {tr("pages_count", $pagesCount)} +
+
+
+
{var $followersCount = $club->getFollowersCount()} @@ -224,6 +257,7 @@ diff --git a/Web/static/css/gpages.css b/Web/static/css/gpages.css index f28a6a166..4041523c0 100644 --- a/Web/static/css/gpages.css +++ b/Web/static/css/gpages.css @@ -44,7 +44,8 @@ .wysiwyg_ich2, .wysiwyg_ich3, .wysiwyg_icwiki, -.wysiwyg_icsource { +.wysiwyg_icsource, +.wysiwyg_ictable { float: left; width: 22px; height: 22px; @@ -104,6 +105,30 @@ .wysiwyg_icsource { background: url("/assets/packages/static/openvk/img/icons/wysiwyg.gif") no-repeat -158px -39px; } .wysiwyg_icsource:hover { background: #fff url("/assets/packages/static/openvk/img/icons/wysiwyg.gif") no-repeat -158px -39px; border: 1px solid #ddd; } +.wysiwyg_ictable { + background: + linear-gradient(#7a8fa8, #7a8fa8) 5px 5px / 12px 1px no-repeat, + linear-gradient(#7a8fa8, #7a8fa8) 5px 10px / 12px 1px no-repeat, + linear-gradient(#7a8fa8, #7a8fa8) 5px 15px / 12px 1px no-repeat, + linear-gradient(#7a8fa8, #7a8fa8) 5px 5px / 1px 11px no-repeat, + linear-gradient(#7a8fa8, #7a8fa8) 11px 5px / 1px 11px no-repeat, + linear-gradient(#7a8fa8, #7a8fa8) 16px 5px / 1px 11px no-repeat; +} +.wysiwyg_ictable:hover { + background-color: #fff; + border: 1px solid #ddd; + background-image: + linear-gradient(#7a8fa8, #7a8fa8), + linear-gradient(#7a8fa8, #7a8fa8), + linear-gradient(#7a8fa8, #7a8fa8), + linear-gradient(#7a8fa8, #7a8fa8), + linear-gradient(#7a8fa8, #7a8fa8), + linear-gradient(#7a8fa8, #7a8fa8); + background-size: 12px 1px, 12px 1px, 12px 1px, 1px 11px, 1px 11px, 1px 11px; + background-position: 5px 5px, 5px 10px, 5px 15px, 5px 5px, 11px 5px, 16px 5px; + background-repeat: no-repeat; +} + .wysiwyg_quote { padding: 10px; background: #f0f0f0; @@ -309,6 +334,37 @@ color: #c00; } +.wiki_page_body table.wiki_md_table, +.page_preview_area table.wiki_md_table, +.wiki_page_body table, +.page_preview_area table { + border-collapse: collapse; + margin: 10px 0; + max-width: 100%; + font-size: 11px; +} + +.wiki_page_body table.wiki_md_table th, +.wiki_page_body table.wiki_md_table td, +.page_preview_area table.wiki_md_table th, +.page_preview_area table.wiki_md_table td, +.wiki_page_body table th, +.wiki_page_body table td, +.page_preview_area table th, +.page_preview_area table td { + border: 1px solid #c0cad5; + padding: 5px 8px; + vertical-align: top; +} + +.wiki_page_body table.wiki_md_table th, +.page_preview_area table.wiki_md_table th, +.wiki_page_body table th, +.page_preview_area table th { + background: #f0f2f5; + font-weight: bold; +} + .pages_help_table { width: 100%; border-collapse: collapse; diff --git a/Web/static/js/al_pages.js b/Web/static/js/al_pages.js index 34cfd383b..4e0df2c57 100644 --- a/Web/static/js/al_pages.js +++ b/Web/static/js/al_pages.js @@ -95,6 +95,25 @@ window.OpenVKPages = (function () { shrinkSource(true); } + function insertTable() { + var ta = getTextarea(); + if (!ta) { + return; + } + + var start = ta.selectionStart; + var end = ta.selectionEnd; + var snippet = "| Header | Header |\n| --- | --- |\n| Cell | Cell |\n"; + if (start > 0 && ta.value.charAt(start - 1) !== "\n") { + snippet = "\n" + snippet; + } + + ta.value = ta.value.substring(0, start) + snippet + ta.value.substring(end); + ta.focus(); + ta.selectionStart = ta.selectionEnd = start + snippet.length; + shrinkSource(true); + } + function togglePreview() { var ta = getTextarea(); var preview = document.getElementById("page_preview"); @@ -265,6 +284,10 @@ window.OpenVKPages = (function () { togglePreview(); return; } + if (toolbarLink.getAttribute("data-action") === "table") { + insertTable(); + return; + } var align = toolbarLink.getAttribute("data-align"); if (align) { wrapAlign(align); diff --git a/locales/en.strings b/locales/en.strings index 864a796e7..e10a8b543 100644 --- a/locales/en.strings +++ b/locales/en.strings @@ -1603,6 +1603,8 @@ "markup_help_image" = "Image"; "markup_help_wiki" = "Link to another community page"; "markup_help_wiki_label" = "Link to a page with custom label"; +"markup_help_table" = "Table"; +"markup_help_table_align" = "Table with column alignment (:--- left, :---: center, ---: right)"; "topic_changes_saved_comment" = "The updated title and settings will appear on the topic page."; diff --git a/locales/ru.strings b/locales/ru.strings index 82bb0aae2..9384fde9f 100644 --- a/locales/ru.strings +++ b/locales/ru.strings @@ -1524,6 +1524,8 @@ "markup_help_image" = "Изображение"; "markup_help_wiki" = "Ссылка на другую страницу сообщества"; "markup_help_wiki_label" = "Ссылка на страницу с другим текстом"; +"markup_help_table" = "Таблица"; +"markup_help_table_align" = "Таблица с выравниванием колонок (:--- слева, :---: по центру, ---: справа)"; "failed_to_create_topic" = "Не удалось создать тему"; "failed_to_change_topic" = "Не удалось изменить тему"; "no_title_specified" = "Заголовок не указан."; diff --git a/tests/e2e/screenshots/groups.spec.ts-snapshots/club1-linux.png b/tests/e2e/screenshots/groups.spec.ts-snapshots/club1-linux.png index d06c416543ffef1a938c3e7c738da2966510f5d0..09bf6accef8c99f4cfceb2d04d4b4bd588de767b 100644 GIT binary patch literal 61728 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 rQ5Yi%9AGf5^(t(@0WS9B+c*!u7j{$ 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

B1(f_oB^3P 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 iOHSgGD!j?YnRR-}1nSzX}bdjXV$NvJH&;~64 diff --git a/tests/e2e/screenshots/pages.spec.ts-snapshots/page-1-1-edit-linux.png b/tests/e2e/screenshots/pages.spec.ts-snapshots/page-1-1-edit-linux.png index 16cf7a0f8b1b5c94e3f3950ed63dc850d21bd7c6..f6aad1ece979f2dce0e450a2b6a7f9f9293eed2c 100644 GIT binary patch literal 21618 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 ThvYup&xTWe!M-$~m}~z8o?U!0 diff --git a/tests/e2e/screenshots/pages.spec.ts-snapshots/page-1-1-history-linux.png b/tests/e2e/screenshots/pages.spec.ts-snapshots/page-1-1-history-linux.png index 7066e759128d6c1ef03481683ae109c125b7378e..bc48b1cff27e4dc7d1c0d281a9eea87c57029fce 100644 GIT binary patch literal 18722 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�r4Z*8Xx0+)m^iJKc3CgB*2i%YTC86*juh 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 OCnKRC4iq)``QHE=-r5QP diff --git a/tests/e2e/screenshots/pages.spec.ts-snapshots/page-1-1-linux.png b/tests/e2e/screenshots/pages.spec.ts-snapshots/page-1-1-linux.png index fef6883af29511dedd7427344009d114c35631ae..f42e3d3d6ab24a41ead30e404438dd825b17d693 100644 GIT binary patch literal 16926 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%0D(_<3|^N>>K9t z292I^t)HTP9+3af{{o!iZBy2fOP)zv%bLYdYv4%D@RXBT()fWO%)D79#w>_S;8PMZ z##9lQ-epuwJI<>C-;NpC+d_o#+jDXom3=pkKq+mOPJ#*;<^N$$;Ids?1WN85E_q9d zRGbJG46myzoHG9o#gC)pWJ%lX*UfI39xJIPz@yrikBlt6o4Y1ly=4;BXIR=M0bMbc zF38QnjttF^eGxMO)XF=KY~}+1Xi6)~N<{>797s^}{exZg-!ZAqTP0M%e|I+Ie-bYG zZ;qM#Z)u8{^wt?%dDO#}jaoctyYGeLybFryXR!VgBLDLXg-J1dhP6jjzRlxfetQlF gss!_&=|V>{Ae=_yTq%)9m7vK=DoIp+`5y3p0M9UPGXMYp literal 15683 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 literal 13307 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 N)K#>Vk&16W{Xb&Y&hP*L diff --git a/tests/e2e/screenshots/pages.spec.ts-snapshots/pages-help-linux.png b/tests/e2e/screenshots/pages.spec.ts-snapshots/pages-help-linux.png index 58fc34ba3f42b3ac87e2fdd19dadad28c790c89c..4879b5308860ed197150b9fd27fa6836e2e3e89a 100644 GIT binary patch literal 45310 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

gt(y7Ovm2)jB4L+{W^SML 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 diff --git a/tests/e2e/screenshots/pages.spec.ts-snapshots/pages-list-linux.png b/tests/e2e/screenshots/pages.spec.ts-snapshots/pages-list-linux.png index ec5a6790f17f5bda88ccce12b534800f87d23ac0..1d52af1890ec67573826f395ea0f3cb25dabd046 100644 GIT binary patch literal 23317 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 literal 19382 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 Date: Mon, 3 Aug 2026 22:17:37 +0300 Subject: [PATCH 3/8] feat: fold group wiki pages into notes with optional revisions --- Web/Models/Entities/Note.php | 528 +++++++++++++++--- Web/Models/Entities/NoteRevision.php | 44 ++ Web/Models/Repositories/Notes.php | 124 +++- Web/Presenters/GroupPresenter.php | 8 +- Web/Presenters/PagesPresenter.php | 78 +-- Web/Presenters/templates/Group/View.latte | 8 +- Web/Presenters/templates/Pages/Create.latte | 7 +- Web/Presenters/templates/Pages/Edit.latte | 5 + Web/Presenters/templates/Pages/Help.latte | 2 +- Web/Presenters/templates/Pages/List.latte | 8 +- Web/Presenters/templates/Pages/View.latte | 2 +- Web/Presenters/templates/Pages/listTabs.latte | 6 +- Web/Presenters/templates/Pages/tabs.latte | 8 +- Web/routes.yml | 23 + Web/static/css/gpages.css | 10 + Web/static/js/al_pages.js | 2 +- install/sqls/00065-notes-as-wiki.sql | 68 +++ locales/en.strings | 1 + locales/ru.strings | 1 + tests/docker-compose.override.yml | 6 + .../page-1-1-edit-linux.png | Bin 21618 -> 23188 bytes .../page-create-linux.png | Bin 18580 -> 20164 bytes tests/e2e/specs/pages.spec.ts | 24 +- tests/seed-data.sql | 24 +- 24 files changed, 815 insertions(+), 172 deletions(-) create mode 100644 Web/Models/Entities/NoteRevision.php create mode 100644 install/sqls/00065-notes-as-wiki.sql diff --git a/Web/Models/Entities/Note.php b/Web/Models/Entities/Note.php index b9829822d..f471bf16a 100644 --- a/Web/Models/Entities/Note.php +++ b/Web/Models/Entities/Note.php @@ -7,6 +7,10 @@ use HTMLPurifier_Config; use HTMLPurifier; use HTMLPurifier_Filter; +use Parsedown; +use Chandler\Database\DatabaseConnection; +use openvk\Web\Models\RowModel; +use openvk\Web\Models\Repositories\{Users, Clubs, Notes}; class SecurityFilter extends HTMLPurifier_Filter { @@ -21,11 +25,7 @@ function ($matches) { if (OPENVK_ROOT_CONF["openvk"]["preferences"]["notes"]["disableHotlinking"] ?? true) { if (!str_contains($src, "/image.php?url=")) { $src = '/image.php?url=' . base64_encode($originalSrc); - } /*else { - $src = preg_replace_callback('/(.*)\/image\.php\?url=(.*)/i', function ($matches) { - return base64_decode($matches[2]); - }, $src); - }*/ + } } return str_replace($originalSrc, $src, $matches[0]); @@ -41,6 +41,176 @@ class Note extends Postable { protected $tableName = "notes"; + public const FORMAT_HTML = 0; + public const FORMAT_MARKDOWN = 1; + + public const ACCESS_EVERYONE = 0; + public const ACCESS_MEMBERS = 1; + public const ACCESS_ADMINS = 2; + + private ?int $revisionEditorId = null; + + public function getOwnerId(): int + { + if ($this->getRecord()) { + return (int) $this->getRecord()->owner; + } + + return (int) ($this->changes["owner"] ?? 0); + } + + public function getOwner(bool $real = false): RowModel + { + $oid = $this->getOwnerId(); + if ($oid < 0) { + return (new Clubs())->get(abs($oid)); + } + + return (new Users())->get(abs($oid)); + } + + public function isClubNote(): bool + { + return $this->getOwnerId() < 0; + } + + public function getClub(): ?Club + { + return $this->isClubNote() ? (new Clubs())->get(abs($this->getOwnerId())) : null; + } + + public function getCreatedBy(): ?User + { + $record = $this->getRecord(); + $createdBy = $record ? ($record->created_by ?? null) : ($this->changes["created_by"] ?? null); + if ($createdBy) { + return (new Users())->get((int) $createdBy); + } + + if (!$this->isClubNote()) { + return (new Users())->get(abs($this->getOwnerId())); + } + + return null; + } + + public function getFormat(): int + { + $record = $this->getRecord(); + if ($record && isset($record->format)) { + return (int) $record->format; + } + + return (int) ($this->changes["format"] ?? ($this->isClubNote() ? self::FORMAT_MARKDOWN : self::FORMAT_HTML)); + } + + public function isMarkdown(): bool + { + return $this->getFormat() === self::FORMAT_MARKDOWN; + } + + public function isMain(): bool + { + $record = $this->getRecord(); + if ($record && isset($record->is_main)) { + return (bool) $record->is_main; + } + + return (bool) ($this->changes["is_main"] ?? false); + } + + public function getViewAccess(): int + { + $record = $this->getRecord(); + if ($record && isset($record->view_access)) { + return (int) $record->view_access; + } + + return (int) ($this->changes["view_access"] ?? self::ACCESS_EVERYONE); + } + + public function getEditAccess(): int + { + $record = $this->getRecord(); + if ($record && isset($record->edit_access)) { + return (int) $record->edit_access; + } + + return (int) ($this->changes["edit_access"] ?? self::ACCESS_ADMINS); + } + + public function keepsRevisions(): bool + { + $record = $this->getRecord(); + if ($record && isset($record->keep_revisions)) { + return (bool) $record->keep_revisions; + } + + return (bool) ($this->changes["keep_revisions"] ?? false); + } + + public function getName(): string + { + if ($this->getRecord()) { + return (string) $this->getRecord()->name; + } + + return (string) ($this->changes["name"] ?? ""); + } + + /** Alias used by wiki-style templates. */ + public function getTitle(): string + { + return $this->getName(); + } + + public function getEditor(): ?User + { + $revision = DatabaseConnection::i()->getContext()->table("note_revisions") + ->where("note", $this->getId()) + ->order("created DESC") + ->limit(1) + ->fetch(); + + if (!$revision) { + return $this->getCreatedBy(); + } + + return (new Users())->get((int) $revision->editor); + } + + public function getPreview(int $length = 25): string + { + return ovk_proc_strtr(strip_tags($this->getSource()), $length); + } + + public function getSource(): string + { + if ($this->getRecord()) { + return (string) $this->getRecord()->source; + } + + return (string) ($this->changes["source"] ?? ""); + } + + public function getURL(): string + { + if ($this->isClubNote()) { + return "/note-" . abs($this->getOwnerId()) . "_" . $this->getVirtualId(); + } + + return "/note" . $this->getOwnerId() . "_" . $this->getVirtualId(); + } + + public function getListURL(): string + { + if ($this->isClubNote()) { + return "/notes-" . abs($this->getOwnerId()); + } + + return "/notes" . $this->getOwnerId(); + } + protected function renderHTML(?string $content = null): string { $config = HTMLPurifier_Config::createDefault(); @@ -54,91 +224,130 @@ protected function renderHTML(?string $content = null): string $config->set("HTML.Doctype", "XHTML 1.1"); $config->set("HTML.TidyLevel", "heavy"); $config->set("HTML.AllowedElements", [ - "div", - "h3", - "h4", - "h5", - "h6", - "p", - "i", - "b", - "a", - "del", - "ins", - "sup", - "sub", - "table", - "thead", - "tbody", - "tr", - "td", - "th", - "img", - "ul", - "ol", - "li", - "hr", - "br", - "acronym", - "blockquote", - "cite", - "span", + "div", "h3", "h4", "h5", "h6", "p", "i", "b", "a", "del", "ins", "sup", "sub", + "table", "thead", "tbody", "tr", "td", "th", "img", "ul", "ol", "li", "hr", "br", + "acronym", "blockquote", "cite", "span", ]); $config->set("HTML.AllowedAttributes", [ - "table.summary", - "td.abbr", - "th.abbr", - "a.href", - "img.src", - "img.alt", - "img.style", - "div.style", - "div.title", - "span.class", - "p.class", + "table.summary", "td.abbr", "th.abbr", "a.href", "img.src", "img.alt", "img.style", + "div.style", "div.title", "span.class", "p.class", ]); $config->set("CSS.AllowedProperties", [ - "float", - "height", - "width", - "max-height", - "max-width", - "font-weight", - ]); - $config->set("Attr.AllowedClasses", [ - "underline", + "float", "height", "width", "max-height", "max-width", "font-weight", ]); - $config->set('Filter.Custom', [new SecurityFilter()]); + $config->set("Attr.AllowedClasses", ["underline"]); + $config->set("Filter.Custom", [new SecurityFilter()]); $source = $content; if (!$source) { - if (is_null($this->getRecord())) { - if (isset($this->changes["source"])) { - $source = $this->changes["source"]; - } else { - throw new \LogicException("Can't render note without content set."); - } - } else { - $source = $this->getRecord()->source; + $source = $this->getSource(); + if ($source === "" && is_null($this->getRecord()) && !isset($this->changes["source"])) { + throw new \LogicException("Can't render note without content set."); } } - $purifier = new HTMLPurifier($config); - return $purifier->purify($source); + return (new HTMLPurifier($config))->purify($source); } - public function getName(): string + public static function renderMarkdown(string $source, ?Club $club = null, ?User $userOwner = null): string { - return $this->getRecord()->name; - } + $notes = new Notes(); + $ownerId = $club ? -$club->getId() : ($userOwner ? $userOwner->getId() : 0); + $createBase = $club + ? "/notes-" . $club->getId() . "/create" + : "/notes/create"; - public function getPreview(int $length = 25): string - { - return ovk_proc_strtr(strip_tags($this->getRecord()->source), $length); + $processed = preg_replace_callback( + '/\[\[([^\]|#]+)(?:\|([^\]]+))?\]\]/u', + function (array $matches) use ($notes, $ownerId, $club, $createBase): string { + $target = trim($matches[1]); + $label = isset($matches[2]) ? trim($matches[2]) : $target; + $note = $ownerId !== 0 ? $notes->getByTitle($ownerId, $target) : null; + + if ($note) { + return "[" . str_replace(["[", "]"], ["\\[", "\\]"], $label) . "](" . $note->getURL() . ")"; + } + + $createUrl = $createBase . "?title=" . rawurlencode($target); + return "[" . str_replace(["[", "]"], ["\\[", "\\]"], $label) . "](" . $createUrl . ")"; + }, + $source + ); + + $html = (new Parsedown())->text($processed ?? $source); + + $html = preg_replace_callback( + '/<(t[dh])(\s[^>]*)?\sstyle="text-align:\s*(left|center|right);?"([^>]*)>/i', + static function (array $m): string { + $rest = ($m[2] ?? "") . ($m[4] ?? ""); + $rest = preg_replace('/\sstyle="[^"]*"/i', "", $rest) ?? $rest; + return "<{$m[1]} align=\"{$m[3]}\"{$rest}>"; + }, + $html + ) ?? $html; + + $html = preg_replace_callback( + '//', + static function (array $m): string { + return ''; + }, + $html + ); + + $config = HTMLPurifier_Config::createDefault(); + $config->set("Attr.AllowedClasses", ["wiki-missing", "underline", "wiki_md_table"]); + $config->set("Attr.DefaultInvalidImageAlt", "Unknown image"); + $config->set("AutoFormat.AutoParagraph", false); + $config->set("AutoFormat.Linkify", true); + $config->set("URI.Base", "//$_SERVER[SERVER_NAME]/"); + $config->set("URI.Munge", "/away.php?xinf=%n.%m:%r&css=%p&to=%s"); + $config->set("URI.MakeAbsolute", true); + $config->set("HTML.Doctype", "XHTML 1.1"); + $config->set("HTML.TidyLevel", "heavy"); + $config->set("HTML.AllowedElements", [ + "div", "h1", "h2", "h3", "h4", "h5", "h6", "p", "i", "b", "em", "strong", + "a", "del", "ins", "sup", "sub", "table", "thead", "tbody", "tr", "td", "th", + "img", "ul", "ol", "li", "hr", "br", "blockquote", "cite", "span", "code", "pre", + ]); + $config->set("HTML.AllowedAttributes", [ + "table.summary", "table.class", "td.abbr", "th.abbr", "a.href", "a.class", "a.title", + "img.src", "img.alt", "img.style", "div.style", "div.title", "span.class", "p.class", + "td.align", "th.align", "td.style", "th.style", "p.align", "div.align", + ]); + $config->set("CSS.AllowedProperties", [ + "float", "height", "width", "max-height", "max-width", "font-weight", "text-align", + ]); + $config->set("Filter.Custom", [new SecurityFilter()]); + + $html = (new HTMLPurifier($config))->purify($html); + return preg_replace('/]*\bclass=)/i', 'isMarkdown()) { + if (is_null($this->getRecord())) { + return self::renderMarkdown( + $this->getSource(), + $this->getClub(), + $this->isClubNote() ? null : ($this->getCreatedBy() ?? null) + ); + } + + $cached = $this->getRecord()->cached_content; + if (!$cached) { + $cached = self::renderMarkdown( + $this->getSource(), + $this->getClub(), + $this->isClubNote() ? null : (new Users())->get(abs($this->getOwnerId())) + ); + $this->changes["cached_content"] = $cached; + parent::save(false); + } + + return $cached; + } + if (is_null($this->getRecord())) { return $this->renderHTML(); } @@ -147,37 +356,190 @@ public function getText(): string if (!$cached) { $cached = $this->renderHTML(); $this->setCached_Content($cached); - $this->save(); + parent::save(false); } return $this->renderHTML($cached); } - public function getSource(): string + private function checkAccessLevel(int $level, ?User $user): bool { - return $this->getRecord()->source; + if ($level === self::ACCESS_EVERYONE) { + return true; + } + + if (!$user) { + return false; + } + + $club = $this->getClub(); + if (!$club) { + return false; + } + + if ($level === self::ACCESS_ADMINS) { + return $club->canBeModifiedBy($user); + } + + // members + return $club->getSubscriptionStatus($user) === Club::SUBSCRIBED + || $club->canBeModifiedBy($user); } public function canBeViewedBy(?User $user = null): bool { - if ($this->isDeleted() || $this->getOwner()->isDeleted()) { + if ($this->isDeleted()) { return false; } - return $this->getOwner()->getPrivacyPermission('notes.read', $user) && $this->getOwner()->canBeViewedBy($user); + if ($this->isClubNote()) { + $club = $this->getClub(); + if (!$club || $club->isBanned() || !$club->isPagesEnabled()) { + return false; + } + + return $this->checkAccessLevel($this->getViewAccess(), $user); + } + + $owner = $this->getOwner(); + if (!($owner instanceof User) || $owner->isDeleted()) { + return false; + } + + return $owner->getPrivacyPermission("notes.read", $user) && $owner->canBeViewedBy($user); + } + + public function canBeEditedBy(?User $user = null): bool + { + if (!$user || $this->isDeleted()) { + return false; + } + + if ($this->isClubNote()) { + $club = $this->getClub(); + if (!$club || $club->isBanned() || !$club->isPagesEnabled()) { + return false; + } + + return $this->checkAccessLevel($this->getEditAccess(), $user); + } + + return $this->canBeModifiedBy($user); + } + + public function setRevisionEditor(int $userId): void + { + $this->revisionEditorId = $userId; + } + + public function makeMain(): void + { + if (!$this->isClubNote()) { + return; + } + + DatabaseConnection::i()->getContext()->table("notes") + ->where([ + "owner" => $this->getOwnerId(), + "is_main" => 1, + "deleted" => 0, + ]) + ->update(["is_main" => 0]); + + $this->changes["is_main"] = 1; + parent::save(false); + } + + public function delete(bool $softly = true): void + { + if (!$softly) { + parent::delete(false); + return; + } + + $this->setDeleted(1); + if ($this->isClubNote()) { + $this->changes["is_main"] = 0; + } + parent::save(false); + } + + public function save(?bool $log = false): void + { + $isNew = is_null($this->getRecord()); + $record = $this->getRecord(); + + $editorId = $this->revisionEditorId; + unset($this->changes["_revision_editor"]); + $this->revisionEditorId = null; + + $nameChanged = isset($this->changes["name"]) + && (!$record || (string) $this->changes["name"] !== (string) $record->name); + $sourceChanged = isset($this->changes["source"]) + && (!$record || (string) $this->changes["source"] !== (string) $record->source); + + if (isset($this->changes["name"]) && !$nameChanged && !$isNew) { + unset($this->changes["name"]); + } + if (isset($this->changes["source"]) && !$sourceChanged && !$isNew) { + unset($this->changes["source"]); + } + + $contentChanged = $isNew || $nameChanged || $sourceChanged; + + if ($isNew) { + if (!isset($this->changes["format"])) { + $this->changes["format"] = $this->isClubNote() ? self::FORMAT_MARKDOWN : self::FORMAT_HTML; + } + if ($this->isClubNote()) { + if (!isset($this->changes["view_access"])) { + $this->changes["view_access"] = self::ACCESS_EVERYONE; + } + if (!isset($this->changes["edit_access"])) { + $this->changes["edit_access"] = self::ACCESS_ADMINS; + } + } + } elseif ($contentChanged) { + $this->changes["edited"] = time(); + $this->changes["cached_content"] = null; + } + + $revTitle = $contentChanged + ? (string) ($this->changes["name"] ?? ($record->name ?? "")) + : null; + $revSource = $contentChanged + ? (string) ($this->changes["source"] ?? ($record->source ?? "")) + : null; + + $keepRevisions = $this->keepsRevisions(); + if (isset($this->changes["keep_revisions"])) { + $keepRevisions = (bool) $this->changes["keep_revisions"]; + } + + parent::save($log); + + if ($contentChanged && $editorId !== null && $keepRevisions) { + DatabaseConnection::i()->getContext()->table("note_revisions")->insert([ + "note" => $this->getId(), + "editor" => (int) $editorId, + "title" => $revTitle, + "source" => $revSource, + "created" => time(), + ]); + } } public function toVkApiStruct(): object { $res = (object) []; - $res->id = $this->getVirtualId(); - $res->owner_id = $this->getOwner()->getId(); - $res->title = $this->getName(); - $res->text = $this->getText(); - $res->date = $this->getPublicationTime()->timestamp(); - $res->comments = $this->getCommentsCount(); - $res->view_url = "/note" . $this->getOwner()->getId() . "_" . $this->getVirtualId(); + $res->id = $this->getVirtualId(); + $res->owner_id = $this->getOwnerId(); + $res->title = $this->getName(); + $res->text = $this->getText(); + $res->date = $this->getPublicationTime()->timestamp(); + $res->comments = $this->getCommentsCount(); + $res->view_url = $this->getURL(); return $res; } diff --git a/Web/Models/Entities/NoteRevision.php b/Web/Models/Entities/NoteRevision.php new file mode 100644 index 000000000..c6bde5feb --- /dev/null +++ b/Web/Models/Entities/NoteRevision.php @@ -0,0 +1,44 @@ +getRecord()->id; + } + + public function getNoteId(): int + { + return (int) $this->getRecord()->note; + } + + public function getEditor(): ?User + { + return (new Users())->get((int) $this->getRecord()->editor); + } + + public function getTitle(): string + { + return (string) $this->getRecord()->title; + } + + public function getSource(): string + { + return (string) $this->getRecord()->source; + } + + public function getCreationTime(): DateTime + { + return new DateTime((int) $this->getRecord()->created); + } +} diff --git a/Web/Models/Repositories/Notes.php b/Web/Models/Repositories/Notes.php index 73b2137ac..3492bb199 100644 --- a/Web/Models/Repositories/Notes.php +++ b/Web/Models/Repositories/Notes.php @@ -5,9 +5,9 @@ namespace openvk\Web\Models\Repositories; use Chandler\Database\DatabaseConnection; -use openvk\Web\Models\Entities\Note; -use openvk\Web\Models\Entities\User; +use openvk\Web\Models\Entities\{Note, NoteRevision, User, Club}; use Nette\Database\Table\ActiveRow; +use Nette\Database\Table\Selection; class Notes { @@ -22,36 +22,134 @@ public function __construct() $this->notes = $this->context->table("notes"); } + private function table(): Selection + { + return $this->context->table("notes"); + } + + private function revisions(): Selection + { + return $this->context->table("note_revisions"); + } + private function toNote(?ActiveRow $ar): ?Note { return is_null($ar) ? null : new Note($ar); } + private function toRevision(?ActiveRow $ar): ?NoteRevision + { + return is_null($ar) ? null : new NoteRevision($ar); + } + public function get(int $id): ?Note { - return self::$cache[$id] ??= $this->toNote($this->notes->get($id)); + return self::$cache[$id] ??= $this->toNote($this->table()->get($id)); + } + + public function getNoteById(int $owner, int $note): ?Note + { + return $this->toNote($this->table()->where([ + "owner" => $owner, + "virtual_id" => $note, + "deleted" => 0, + ])->fetch()); + } + + public function getByTitle(int $ownerId, string $title): ?Note + { + return $this->toNote($this->table()->where([ + "owner" => $ownerId, + "name" => $title, + "deleted" => 0, + ])->fetch()); } public function getUserNotes(User $user, int $page = 1, ?int $perPage = null, string $sort = "DESC"): \Traversable { $perPage ??= OPENVK_DEFAULT_PER_PAGE; - foreach ($this->notes->where("owner", $user->getId())->where("deleted", 0)->order("created $sort")->page($page, $perPage) as $album) { - yield new Note($album); + foreach ($this->table()->where("owner", $user->getId())->where("deleted", 0)->order("created $sort")->page($page, $perPage) as $row) { + yield new Note($row); } } - public function getNoteById(int $owner, int $note): ?Note + public function getUserNotesCount(User $user): int { - $note = $this->notes->where(['owner' => $owner, 'virtual_id' => $note])->fetch(); - if (!is_null($note)) { - return new Note($note); - } else { - return null; + return sizeof($this->table()->where("owner", $user->getId())->where("deleted", 0)); + } + + public function getClubNotes(Club $club, int $page = 1, ?int $perPage = null): \Traversable + { + $perPage ??= OPENVK_DEFAULT_PER_PAGE; + $rows = $this->table()->where([ + "owner" => -$club->getId(), + "deleted" => 0, + ])->order("is_main DESC, edited DESC, created DESC")->page($page, $perPage); + + foreach ($rows as $row) { + yield $this->toNote($row); } } - public function getUserNotesCount(User $user): int + public function getClubNotesCount(Club $club): int + { + return sizeof($this->table()->where([ + "owner" => -$club->getId(), + "deleted" => 0, + ])); + } + + public function getMainNote(Club $club): ?Note + { + return $this->toNote($this->table()->where([ + "owner" => -$club->getId(), + "is_main" => 1, + "deleted" => 0, + ])->order("created ASC")->fetch()); + } + + public function ensureSingleMain(Club $club): void + { + $mains = $this->table()->where([ + "owner" => -$club->getId(), + "deleted" => 0, + "is_main" => 1, + ])->order("created ASC"); + + $keepId = null; + foreach ($mains as $row) { + if ($keepId === null) { + $keepId = (int) $row->id; + continue; + } + + $row->update(["is_main" => 0]); + unset(self::$cache[(int) $row->id]); + } + } + + public function getRevisions(Note $note, int $pageNum = 1, ?int $perPage = null): \Traversable + { + $perPage ??= OPENVK_DEFAULT_PER_PAGE; + $rows = $this->revisions()->where("note", $note->getId()) + ->order("created DESC") + ->page($pageNum, $perPage); + + foreach ($rows as $row) { + yield $this->toRevision($row); + } + } + + public function getRevisionsCount(Note $note): int + { + return sizeof($this->revisions()->where("note", $note->getId())); + } + + public function getRevision(Note $note, int $revisionId): ?NoteRevision { - return sizeof($this->notes->where("owner", $user->getId())->where("deleted", 0)); + return $this->toRevision($this->revisions()->where([ + "id" => $revisionId, + "note" => $note->getId(), + ])->fetch()); } } diff --git a/Web/Presenters/GroupPresenter.php b/Web/Presenters/GroupPresenter.php index 033ba61ac..f01b9fa3b 100644 --- a/Web/Presenters/GroupPresenter.php +++ b/Web/Presenters/GroupPresenter.php @@ -7,7 +7,7 @@ use openvk\Web\Models\Entities\{Club, Photo, Post}; use Nette\InvalidStateException; use openvk\Web\Models\Entities\Notifications\ClubModeratorNotification; -use openvk\Web\Models\Repositories\{Clubs, Users, Albums, Managers, Topics, Audios, Posts, Documents, GroupPages}; +use openvk\Web\Models\Repositories\{Clubs, Users, Albums, Managers, Topics, Audios, Posts, Documents, Notes}; use Chandler\Security\Authenticator; use Nette\InvalidStateException as ISE; use Chandler\Session\Session; @@ -42,9 +42,9 @@ public function renderView(int $id): void $this->template->audiosCount = (new Audios())->getClubCollectionSize($club); $this->template->docsCount = $docs->size(); $this->template->docs = $docs->offsetLimit(0, 2); - $groupPages = new GroupPages(); - $this->template->pagesCount = $groupPages->getClubPagesCount($club); - $this->template->mainPage = $groupPages->getMainPage($club); + $notes = new Notes(); + $this->template->pagesCount = $notes->getClubNotesCount($club); + $this->template->mainPage = $notes->getMainNote($club); } if (!is_null($this->user->identity) && $club->getWallType() == 2) { diff --git a/Web/Presenters/PagesPresenter.php b/Web/Presenters/PagesPresenter.php index e0534c64b..e6d5c600c 100644 --- a/Web/Presenters/PagesPresenter.php +++ b/Web/Presenters/PagesPresenter.php @@ -4,18 +4,18 @@ namespace openvk\Web\Presenters; -use openvk\Web\Models\Entities\GroupPage; -use openvk\Web\Models\Repositories\{GroupPages, Clubs}; +use openvk\Web\Models\Entities\Note; +use openvk\Web\Models\Repositories\{Notes, Clubs}; final class PagesPresenter extends OpenVKPresenter { - private GroupPages $pages; + private Notes $notes; private Clubs $clubs; protected $presenterName = "pages"; - public function __construct(GroupPages $pages, Clubs $clubs) + public function __construct(Notes $notes, Clubs $clubs) { - $this->pages = $pages; + $this->notes = $notes; $this->clubs = $clubs; parent::__construct(); @@ -38,9 +38,9 @@ private function assertPagesEnabled($club): void } } - private function getPageOrFail(int $clubId, int $virtualId): GroupPage + private function getPageOrFail(int $clubId, int $virtualId): Note { - $page = $this->pages->getPageById($clubId, $virtualId); + $page = $this->notes->getNoteById(-$clubId, $virtualId); if (!$page) { $this->notFound(); } @@ -52,18 +52,18 @@ public function renderList(int $clubId): void { $club = $this->getClubOrFail($clubId); $this->assertPagesEnabled($club); - $this->pages->ensureSingleMain($club); + $this->notes->ensureSingleMain($club); $perPage = OPENVK_DEFAULT_PER_PAGE; $page = max(1, (int) ($this->queryParam("p") ?? 1)); - $count = $this->pages->getClubPagesCount($club); + $count = $this->notes->getClubNotesCount($club); $pageCount = max(1, (int) ceil($count / $perPage)); if ($page > $pageCount) { $page = $pageCount; } $this->template->club = $club; - $this->template->pages = $this->pages->getClubPages($club, $page, $perPage); + $this->template->pages = $this->notes->getClubNotes($club, $page, $perPage); $this->template->count = $count; $this->template->page = $page; $this->template->showingFrom = $count === 0 ? 0 : (($page - 1) * $perPage + 1); @@ -113,26 +113,30 @@ public function renderCreate(int $clubId): void $this->flashFail("err", tr("error"), tr("page_title_too_long")); } - $existing = $this->pages->getByTitle($club, $title); + $existing = $this->notes->getByTitle(-$club->getId(), $title); if ($existing) { $this->flashFail("err", tr("error"), tr("page_title_exists")); } - $isFirst = $this->pages->getClubPagesCount($club) === 0; - $viewAccess = (int) ($this->postParam("view_access") ?? GroupPage::ACCESS_EVERYONE); - $editAccess = (int) ($this->postParam("edit_access") ?? GroupPage::ACCESS_ADMINS); + $isFirst = $this->notes->getClubNotesCount($club) === 0; + $viewAccess = (int) ($this->postParam("view_access") ?? Note::ACCESS_EVERYONE); + $editAccess = (int) ($this->postParam("edit_access") ?? Note::ACCESS_ADMINS); if ($viewAccess < 0 || $viewAccess > 2 || $editAccess < 0 || $editAccess > 2) { $this->flashFail("err", tr("error"), tr("error_segmentation")); } - $page = new GroupPage(); - $page->setGroup($club->getId()); - $page->setOwner($this->user->id); - $page->setTitle(ovk_proc_strtr($title, 255)); + $keepRevisions = $this->postParam("keep_revisions") === "1" ? 1 : 0; + + $page = new Note(); + $page->setOwner(-$club->getId()); + $page->setCreated_By($this->user->id); + $page->setName(ovk_proc_strtr($title, 255)); $page->setSource($source); + $page->setFormat(Note::FORMAT_MARKDOWN); $page->setIs_Main($isFirst ? 1 : 0); $page->setView_Access($viewAccess); $page->setEdit_Access($editAccess); + $page->setKeep_Revisions($keepRevisions); $page->setRevisionEditor($this->user->id); $page->save(); @@ -189,12 +193,16 @@ public function renderEdit(int $clubId, int $virtualId): void $this->flashFail("err", tr("error"), tr("page_title_too_long")); } - $existing = $this->pages->getByTitle($club, $title); + $existing = $this->notes->getByTitle(-$club->getId(), $title); if ($existing && $existing->getId() !== $page->getId()) { $this->flashFail("err", tr("error"), tr("page_title_exists")); } - $page->setTitle(ovk_proc_strtr($title, 255)); + if ($this->postParam("keep_revisions") !== null) { + $page->setKeep_Revisions($this->postParam("keep_revisions") === "1" ? 1 : 0); + } + + $page->setName(ovk_proc_strtr($title, 255)); $page->setSource($source); $page->setRevisionEditor($this->user->id); $page->save(); @@ -226,14 +234,14 @@ public function renderDelete(int $clubId, int $virtualId): void $page->delete(); if ($wasMain) { - $pages = iterator_to_array($this->pages->getClubPages($club, 1, 1)); + $pages = iterator_to_array($this->notes->getClubNotes($club, 1, 1)); if (isset($pages[0])) { $pages[0]->makeMain(); } } $this->flash("succ", tr("page_deleted"), tr("page_deleted_descr")); - $this->redirect("/pages-" . $club->getId()); + $this->redirect("/notes-" . $club->getId()); } public function renderSetMain(int $clubId, int $virtualId): void @@ -252,7 +260,7 @@ public function renderSetMain(int $clubId, int $virtualId): void $page->makeMain(); $this->flash("succ", tr("success_action"), tr("page_set_main_succ")); - $this->redirect("/pages-" . $club->getId()); + $this->redirect("/notes-" . $club->getId()); } public function renderAccess(int $clubId, int $virtualId): void @@ -280,10 +288,8 @@ public function renderAccess(int $clubId, int $virtualId): void $this->flashFail("err", tr("error"), tr("error_segmentation")); } - $page->setView_Access($viewAccess); - $page->setEdit_Access($editAccess); // Avoid creating a content revision for ACL-only change - \Chandler\Database\DatabaseConnection::i()->getContext()->table("group_pages") + \Chandler\Database\DatabaseConnection::i()->getContext()->table("notes") ->where("id", $page->getId()) ->update([ "view_access" => $viewAccess, @@ -304,12 +310,16 @@ public function renderHistory(int $clubId, int $virtualId): void $this->flashFail("err", tr("error_access_denied_short"), tr("error_access_denied")); } + if (!$page->keepsRevisions()) { + $this->notFound(); + } + $pageNum = (int) ($this->queryParam("p") ?? 1); $this->template->club = $club; $this->template->page = $page; $this->template->tab = "history"; - $this->template->revisions = $this->pages->getRevisions($page, $pageNum); - $this->template->count = $this->pages->getRevisionsCount($page); + $this->template->revisions = $this->notes->getRevisions($page, $pageNum); + $this->template->count = $this->notes->getRevisionsCount($page); $this->template->paginatorConf = (object) [ "count" => $this->template->count, "page" => $pageNum, @@ -330,7 +340,11 @@ public function renderRevision(int $clubId, int $virtualId, int $revisionId): vo $this->flashFail("err", tr("error_access_denied_short"), tr("error_access_denied")); } - $revision = $this->pages->getRevision($page, $revisionId); + if (!$page->keepsRevisions()) { + $this->notFound(); + } + + $revision = $this->notes->getRevision($page, $revisionId); if (!$revision) { $this->notFound(); } @@ -339,7 +353,7 @@ public function renderRevision(int $clubId, int $virtualId, int $revisionId): vo $this->template->page = $page; $this->template->revision = $revision; $this->template->tab = "history"; - $this->template->html = GroupPage::renderMarkdown($revision->getSource(), $club); + $this->template->html = Note::renderMarkdown($revision->getSource(), $club); if ($_SERVER["REQUEST_METHOD"] === "POST" && $this->postParam("restore") === "1") { $this->assertUserLoggedIn(); @@ -350,7 +364,7 @@ public function renderRevision(int $clubId, int $virtualId, int $revisionId): vo $this->flashFail("err", tr("error_access_denied_short"), tr("error_access_denied")); } - $page->setTitle($revision->getTitle()); + $page->setName($revision->getTitle()); $page->setSource($revision->getSource()); $page->setRevisionEditor($this->user->id); $page->save(); @@ -378,7 +392,7 @@ public function renderPreview(): void $source = (string) ($this->postParam("source") ?? ""); header("Content-Type: text/html; charset=utf-8"); - exit(GroupPage::renderMarkdown($source, $club)); + exit(Note::renderMarkdown($source, $club)); } public function renderHelp(int $clubId): void diff --git a/Web/Presenters/templates/Group/View.latte b/Web/Presenters/templates/Group/View.latte index 3bc8d00b6..c88415e61 100644 --- a/Web/Presenters/templates/Group/View.latte +++ b/Web/Presenters/templates/Group/View.latte @@ -90,7 +90,7 @@
{tr("pages_count", $pagesCount)}
@@ -105,11 +105,11 @@
@@ -257,7 +257,7 @@ diff --git a/Web/Presenters/templates/Pages/View.latte b/Web/Presenters/templates/Pages/View.latte index 1e24dad6e..86515464a 100644 --- a/Web/Presenters/templates/Pages/View.latte +++ b/Web/Presenters/templates/Pages/View.latte @@ -5,7 +5,7 @@ {block header} {$club->getName()} » - {_group_pages} + {_group_pages} » {$page->getTitle()} {/block} diff --git a/Web/Presenters/templates/Pages/listTabs.latte b/Web/Presenters/templates/Pages/listTabs.latte index 8ae1ae9d0..7ec5e7aa9 100644 --- a/Web/Presenters/templates/Pages/listTabs.latte +++ b/Web/Presenters/templates/Pages/listTabs.latte @@ -4,13 +4,13 @@ diff --git a/Web/Presenters/templates/Pages/tabs.latte b/Web/Presenters/templates/Pages/tabs.latte index 9ace3fd1a..44a227d76 100644 --- a/Web/Presenters/templates/Pages/tabs.latte +++ b/Web/Presenters/templates/Pages/tabs.latte @@ -5,10 +5,10 @@
{_page_tab_view} @@ -16,8 +16,8 @@ - diff --git a/Web/routes.yml b/Web/routes.yml index 8379fae28..3812f68a9 100644 --- a/Web/routes.yml +++ b/Web/routes.yml @@ -269,6 +269,29 @@ routes: handler: "Topics->edit" - url: "/topic{num}_{num}/delete" handler: "Topics->delete" + - url: "/notes/preview" + handler: "Pages->preview" + - url: "/notes-{num}" + handler: "Pages->list" + - url: "/notes-{num}/create" + handler: "Pages->create" + - url: "/notes-{num}/help" + handler: "Pages->help" + - url: "/note-{num}_{num}" + handler: "Pages->view" + - url: "/note-{num}_{num}/edit" + handler: "Pages->edit" + - url: "/note-{num}_{num}/delete" + handler: "Pages->delete" + - url: "/note-{num}_{num}/setMain" + handler: "Pages->setMain" + - url: "/note-{num}_{num}/access" + handler: "Pages->access" + - url: "/note-{num}_{num}/history" + handler: "Pages->history" + - url: "/note-{num}_{num}/history/{num}" + handler: "Pages->revision" + # Temporary aliases for old group wiki URLs - url: "/pages/preview" handler: "Pages->preview" - url: "/pages-{num}" diff --git a/Web/static/css/gpages.css b/Web/static/css/gpages.css index 4041523c0..8ba09238b 100644 --- a/Web/static/css/gpages.css +++ b/Web/static/css/gpages.css @@ -308,6 +308,16 @@ gap: 12px; } +.page_keep_revisions { + display: inline-flex; + align-items: center; + gap: 4px; + font-size: 11px; + color: #45688E; + margin-right: 4px; + white-space: nowrap; +} + .page_edit_footer_right a { margin-right: 0; } diff --git a/Web/static/js/al_pages.js b/Web/static/js/al_pages.js index 4e0df2c57..12ffd73eb 100644 --- a/Web/static/js/al_pages.js +++ b/Web/static/js/al_pages.js @@ -134,7 +134,7 @@ window.OpenVKPages = (function () { "&source=" + encodeURIComponent(ta.value) + "&hash=" + encodeURIComponent(hash); - fetch("/pages/preview", { + fetch("/notes/preview", { method: "POST", headers: { "Content-Type": "application/x-www-form-urlencoded" }, body: body, diff --git a/install/sqls/00065-notes-as-wiki.sql b/install/sqls/00065-notes-as-wiki.sql new file mode 100644 index 000000000..4534a52d5 --- /dev/null +++ b/install/sqls/00065-notes-as-wiki.sql @@ -0,0 +1,68 @@ +-- Unify group wiki pages into notes (club notes use owner = -group_id). + +ALTER TABLE `notes` + ADD COLUMN `format` TINYINT(1) UNSIGNED NOT NULL DEFAULT 0 AFTER `source`, + ADD COLUMN `created_by` BIGINT(20) UNSIGNED NULL DEFAULT NULL AFTER `owner`, + ADD COLUMN `is_main` TINYINT(1) UNSIGNED NOT NULL DEFAULT 0 AFTER `deleted`, + ADD COLUMN `view_access` TINYINT(1) UNSIGNED NOT NULL DEFAULT 0 AFTER `is_main`, + ADD COLUMN `edit_access` TINYINT(1) UNSIGNED NOT NULL DEFAULT 2 AFTER `view_access`, + ADD COLUMN `keep_revisions` TINYINT(1) UNSIGNED NOT NULL DEFAULT 0 AFTER `edit_access`; + +ALTER TABLE `notes` + ADD KEY `owner_deleted_main` (`owner`, `deleted`, `is_main`); + +CREATE TABLE IF NOT EXISTS `note_revisions` ( + `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, + `note` BIGINT(20) UNSIGNED NOT NULL, + `editor` BIGINT(20) UNSIGNED NOT NULL, + `title` VARCHAR(256) NOT NULL, + `source` LONGTEXT NOT NULL, + `created` BIGINT(20) UNSIGNED NOT NULL, + PRIMARY KEY (`id`), + KEY `note_created` (`note`, `created`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; + +-- Migrate existing group wiki pages into notes (idempotent-ish: skip if already migrated). +INSERT INTO `notes` ( + `owner`, `created_by`, `virtual_id`, `created`, `edited`, `name`, `source`, `cached_content`, + `format`, `deleted`, `is_main`, `view_access`, `edit_access`, `keep_revisions`, `anonymous` +) +SELECT + -CAST(`group` AS SIGNED), + `owner`, + `virtual_id`, + `created`, + `edited`, + `title`, + `source`, + `cached_html`, + 1, + `deleted`, + `is_main`, + `view_access`, + `edit_access`, + 1, + 0 +FROM `group_pages` gp +WHERE NOT EXISTS ( + SELECT 1 FROM `notes` n + WHERE n.`owner` = -CAST(gp.`group` AS SIGNED) + AND n.`virtual_id` = gp.`virtual_id` +); + +INSERT INTO `note_revisions` (`note`, `editor`, `title`, `source`, `created`) +SELECT + n.`id`, + r.`editor`, + r.`title`, + r.`source`, + r.`created` +FROM `group_page_revisions` r +INNER JOIN `group_pages` gp ON gp.`id` = r.`page` +INNER JOIN `notes` n + ON n.`owner` = -CAST(gp.`group` AS SIGNED) + AND n.`virtual_id` = gp.`virtual_id` +WHERE NOT EXISTS ( + SELECT 1 FROM `note_revisions` nr + WHERE nr.`note` = n.`id` AND nr.`created` = r.`created` AND nr.`editor` = r.`editor` +); diff --git a/locales/en.strings b/locales/en.strings index e10a8b543..8b7c1cac6 100644 --- a/locales/en.strings +++ b/locales/en.strings @@ -1537,6 +1537,7 @@ "create_new_page" = "Create a new page"; "page_new_tab" = "New page"; "pages_only_one" = "The only page"; +"note_keep_revisions" = "Keep edit history"; "pages_none" = "No pages"; "pages_empty" = "No pages yet"; "pages_count_zero" = "No pages"; diff --git a/locales/ru.strings b/locales/ru.strings index 9384fde9f..aba7e82d0 100644 --- a/locales/ru.strings +++ b/locales/ru.strings @@ -1459,6 +1459,7 @@ "page_new_tab" = "Новая страница"; "pages_only_one" = "Единственная страница"; "pages_none" = "Нет страниц"; +"note_keep_revisions" = "Сохранять историю правок"; "pages_empty" = "Страниц пока нет"; "pages_count_zero" = "Нет страниц"; "pages_count_one" = "$1 страница"; diff --git a/tests/docker-compose.override.yml b/tests/docker-compose.override.yml index f2cb0521c..813b26fbd 100644 --- a/tests/docker-compose.override.yml +++ b/tests/docker-compose.override.yml @@ -9,6 +9,10 @@ services: - ./seed-data.sql:/opt/chandler/extensions/available/openvk/tests/seed-data.sql:ro - ../Web/Presenters/templates/Pages:/opt/chandler/extensions/available/openvk/Web/Presenters/templates/Pages:ro - ../Web/Presenters/PagesPresenter.php:/opt/chandler/extensions/available/openvk/Web/Presenters/PagesPresenter.php:ro + - ../Web/Presenters/GroupPresenter.php:/opt/chandler/extensions/available/openvk/Web/Presenters/GroupPresenter.php:ro + - ../Web/Models/Entities/Note.php:/opt/chandler/extensions/available/openvk/Web/Models/Entities/Note.php:ro + - ../Web/Models/Entities/NoteRevision.php:/opt/chandler/extensions/available/openvk/Web/Models/Entities/NoteRevision.php:ro + - ../Web/Models/Repositories/Notes.php:/opt/chandler/extensions/available/openvk/Web/Models/Repositories/Notes.php:ro - ../Web/Models/Entities/GroupPage.php:/opt/chandler/extensions/available/openvk/Web/Models/Entities/GroupPage.php:ro - ../Web/Models/Entities/GroupPageRevision.php:/opt/chandler/extensions/available/openvk/Web/Models/Entities/GroupPageRevision.php:ro - ../Web/Models/Repositories/GroupPages.php:/opt/chandler/extensions/available/openvk/Web/Models/Repositories/GroupPages.php:ro @@ -17,5 +21,7 @@ services: - ../Web/static/css/gpages.css:/opt/chandler/extensions/available/openvk/Web/static/css/gpages.css:ro - ../Web/static/js/al_pages.js:/opt/chandler/extensions/available/openvk/Web/static/js/al_pages.js:ro - ../Web/Presenters/templates/_includeCSS.latte:/opt/chandler/extensions/available/openvk/Web/Presenters/templates/_includeCSS.latte:ro + - ../Web/routes.yml:/opt/chandler/extensions/available/openvk/Web/routes.yml:ro + - ../install/sqls/00065-notes-as-wiki.sql:/opt/chandler/extensions/available/openvk/install/sqls/00065-notes-as-wiki.sql:ro - ../locales/ru.strings:/opt/chandler/extensions/available/openvk/locales/ru.strings:ro - ../locales/en.strings:/opt/chandler/extensions/available/openvk/locales/en.strings:ro diff --git a/tests/e2e/screenshots/pages.spec.ts-snapshots/page-1-1-edit-linux.png b/tests/e2e/screenshots/pages.spec.ts-snapshots/page-1-1-edit-linux.png index f6aad1ece979f2dce0e450a2b6a7f9f9293eed2c..3a8d944f9badd579ac7077ff6250461207170973 100644 GIT binary patch literal 23188 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 ZWMzT0I^N`P!vEQ@80wnpR6Tt5_CFF}pJ4z1 literal 21618 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 diff --git a/tests/e2e/specs/pages.spec.ts b/tests/e2e/specs/pages.spec.ts index ce04b0bda..0812e9703 100644 --- a/tests/e2e/specs/pages.spec.ts +++ b/tests/e2e/specs/pages.spec.ts @@ -1,47 +1,47 @@ import { test, expect } from '../fixtures.js'; import { loginAsAlice, loginAsCharlie } from '../helpers.js'; -test.describe('Group wiki pages', () => { +test.describe('Group wiki notes', () => { test.beforeEach(async ({ page }) => { await loginAsAlice(page); }); test('shows pages list', async ({ page }) => { - await page.goto('/pages-1'); + await page.goto('/notes-1'); await expect(page.locator('.page_body')).toHaveScreenshot('pages-list.png', { maxDiffPixels: 200 }); }); test('shows page view', async ({ page }) => { - await page.goto('/page-1_1'); + await page.goto('/note-1_1'); await expect(page.locator('.page_body')).toHaveScreenshot('page-1_1.png', { maxDiffPixels: 200 }); }); test('shows page edit form', async ({ page }) => { - await page.goto('/page-1_1/edit'); + await page.goto('/note-1_1/edit'); await expect(page.locator('.page_body')).toHaveScreenshot('page-1_1-edit.png', { maxDiffPixels: 200 }); }); test('shows create page form', async ({ page }) => { - await page.goto('/pages-1/create'); + await page.goto('/notes-1/create'); await expect(page.locator('.page_body')).toHaveScreenshot('page-create.png', { maxDiffPixels: 200 }); }); test('shows page history', async ({ page }) => { - await page.goto('/page-1_1/history'); + await page.goto('/note-1_1/history'); await expect(page.locator('.page_body')).toHaveScreenshot('page-1_1-history.png', { maxDiffPixels: 200 }); }); test('shows markup help', async ({ page }) => { - await page.goto('/pages-1/help'); + await page.goto('/notes-1/help'); await expect(page.locator('.page_body')).toHaveScreenshot('pages-help.png', { maxDiffPixels: 200 }); }); test('creates a new page', async ({ page }) => { - await page.goto('/pages-1/create'); + await page.goto('/notes-1/create'); await page.fill('input[name="title"]', 'Rules'); await page.fill('textarea[name="source"]', '## Community rules\n\nBe nice.'); await page.click('input[type="submit"]'); - await page.waitForURL(/\/page-1_\d+/); + await page.waitForURL(/\/note-1_\d+/); await expect(page.locator('.wiki_page_title')).toHaveText('Rules'); await expect(page.locator('.wiki_page_body')).toContainText('Be nice'); }); @@ -53,14 +53,14 @@ test.describe('Group wiki pages', () => { }); }); -test.describe('Group wiki pages permissions', () => { +test.describe('Group wiki notes permissions', () => { test('visitor can view open page but not edit', async ({ page }) => { await loginAsCharlie(page); - await page.goto('/page-1_1'); + await page.goto('/note-1_1'); await expect(page.locator('.wiki_page_title')).toHaveText('Welcome Page'); await expect(page.locator('.pages_editor_tab', { hasText: /Edit|Редактирование/ })).toHaveCount(0); - await page.goto('/page-1_1/edit'); + await page.goto('/note-1_1/edit'); await expect(page.locator('.page_body')).toContainText(/access|прав|forbidden|denied/i); }); }); diff --git a/tests/seed-data.sql b/tests/seed-data.sql index a8ce49557..3337d82aa 100644 --- a/tests/seed-data.sql +++ b/tests/seed-data.sql @@ -178,15 +178,15 @@ INSERT INTO group_coadmins (user, club, comment, id) VALUES (2, 1, 'Owner', 1), (3, 1, 'Moderator', 2); --- Enable Materials (wiki pages) for Test Group and seed a main page +-- Enable Materials (wiki notes) for Test Group and seed a main club note UPDATE `groups` SET pages = 1 WHERE id = 1; -INSERT INTO group_pages (id, `group`, virtual_id, owner, title, source, cached_html, is_main, view_access, edit_access, created, edited, deleted) VALUES -(1, 1, 1, 2, 'Welcome Page', '# Hello group\n\nWelcome to our community wiki page!\n\n- Rule one\n- Rule two\n\nSee also [[Rules]].', NULL, 1, 0, 2, @ts_base - 2 * @ts_day, @ts_base - 1 * @ts_hour, 0); +INSERT INTO notes (id, owner, created_by, virtual_id, created, edited, name, source, cached_content, format, deleted, is_main, view_access, edit_access, keep_revisions, anonymous) VALUES +(2, -1, 2, 1, @ts_base - 2 * @ts_day, @ts_base - 1 * @ts_hour, 'Welcome Page', '# Hello group\n\nWelcome to our community wiki page!\n\n- Rule one\n- Rule two\n\nSee also [[Rules]].', NULL, 1, 0, 1, 0, 2, 1, 0); -INSERT INTO group_page_revisions (id, page, editor, title, source, created) VALUES -(1, 1, 2, 'Welcome Page', '# Hello group\n\nWelcome to our community wiki page!', @ts_base - 2 * @ts_day), -(2, 1, 2, 'Welcome Page', '# Hello group\n\nWelcome to our community wiki page!\n\n- Rule one\n- Rule two\n\nSee also [[Rules]].', @ts_base - 1 * @ts_hour); +INSERT INTO note_revisions (id, note, editor, title, source, created) VALUES +(1, 2, 2, 'Welcome Page', '# Hello group\n\nWelcome to our community wiki page!', @ts_base - 2 * @ts_day), +(2, 2, 2, 'Welcome Page', '# Hello group\n\nWelcome to our community wiki page!\n\n- Rule one\n- Rule two\n\nSee also [[Rules]].', @ts_base - 1 * @ts_hour); -- Group wall posts (Bob posts to group, Alice posts as owner) INSERT INTO posts (id, owner, wall, virtual_id, created, edited, content, flags, nsfw, ad, deleted, suggested) VALUES @@ -262,7 +262,12 @@ INSERT INTO ovk_upgrade_history (`level`, `timestamp`, `operator`) VALUES (57, @ts_base - 365 * @ts_day, 'test-seed'), (58, @ts_base - 365 * @ts_day, 'test-seed'), (59, @ts_base - 365 * @ts_day, 'test-seed'), -(60, @ts_base - 365 * @ts_day, 'test-seed'); +(60, @ts_base - 365 * @ts_day, 'test-seed'), +(61, @ts_base - 365 * @ts_day, 'test-seed'), +(62, @ts_base - 365 * @ts_day, 'test-seed'), +(63, @ts_base - 365 * @ts_day, 'test-seed'), +(64, @ts_base - 365 * @ts_day, 'test-seed'), +(65, @ts_base - 365 * @ts_day, 'test-seed'); -- Photos for Alice (profile id = 2, album id = 1) INSERT INTO photos (id, owner, virtual_id, created, edited, hash, deleted, description) VALUES @@ -278,8 +283,8 @@ INSERT INTO videos (id, owner, virtual_id, created, edited, hash, link, deleted, (1, 2, 1, @ts_base - 5 * @ts_day, NULL, '00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', NULL, 0, 'My first video', 'Welcome Video', 120, 720, 1280); -- Note for Alice -INSERT INTO notes (id, owner, virtual_id, created, edited, name, source, cached_content, deleted) VALUES -(1, 2, 1, @ts_base - 3 * @ts_day, NULL, 'My First Note', 'This is the content of my first note on OpenVK. Writing notes is fun!', NULL, 0); +INSERT INTO notes (id, owner, created_by, virtual_id, created, edited, name, source, cached_content, format, deleted, is_main, view_access, edit_access, keep_revisions, anonymous) VALUES +(1, 2, NULL, 1, @ts_base - 3 * @ts_day, NULL, 'My First Note', 'This is the content of my first note on OpenVK. Writing notes is fun!', NULL, 0, 0, 0, 0, 2, 0, 0); -- Topics in Test Group (group id = 1), owned by Bob (profile id = 3) INSERT INTO topics (id, `group`, owner, virtual_id, created, edited, title, closed, pinned, anonymous, flags, deleted) VALUES @@ -418,6 +423,7 @@ ALTER TABLE likes AUTO_INCREMENT = 100; ALTER TABLE photos AUTO_INCREMENT = 100; ALTER TABLE videos AUTO_INCREMENT = 100; ALTER TABLE notes AUTO_INCREMENT = 100; +ALTER TABLE note_revisions AUTO_INCREMENT = 100; ALTER TABLE topics AUTO_INCREMENT = 100; ALTER TABLE group_pages AUTO_INCREMENT = 100; ALTER TABLE group_page_revisions AUTO_INCREMENT = 100; From d097247debb1993ad5db84c8456150cb409818b2 Mon Sep 17 00:00:00 2001 From: fayzetwin Date: Mon, 3 Aug 2026 22:34:09 +0300 Subject: [PATCH 4/8] feat: enhance note creation and editing UI with improved styling and functionality --- Web/Models/Entities/Note.php | 4 +- Web/Presenters/templates/Notes/Create.latte | 18 +++-- Web/Presenters/templates/Notes/Edit.latte | 18 +++-- .../templates/Notes/xhtmlToolbar.latte | 16 ++++ Web/static/js/al_notes.js | 78 +++++++++++++++++++ tests/docker-compose.override.yml | 2 + 6 files changed, 118 insertions(+), 18 deletions(-) create mode 100644 Web/Presenters/templates/Notes/xhtmlToolbar.latte create mode 100644 Web/static/js/al_notes.js diff --git a/Web/Models/Entities/Note.php b/Web/Models/Entities/Note.php index f471bf16a..80c1fedb5 100644 --- a/Web/Models/Entities/Note.php +++ b/Web/Models/Entities/Note.php @@ -230,10 +230,10 @@ protected function renderHTML(?string $content = null): string ]); $config->set("HTML.AllowedAttributes", [ "table.summary", "td.abbr", "th.abbr", "a.href", "img.src", "img.alt", "img.style", - "div.style", "div.title", "span.class", "p.class", + "div.style", "div.title", "div.align", "span.class", "p.class", "p.align", ]); $config->set("CSS.AllowedProperties", [ - "float", "height", "width", "max-height", "max-width", "font-weight", + "float", "height", "width", "max-height", "max-width", "font-weight", "text-align", ]); $config->set("Attr.AllowedClasses", ["underline"]); $config->set("Filter.Custom", [new SecurityFilter()]); diff --git a/Web/Presenters/templates/Notes/Create.latte b/Web/Presenters/templates/Notes/Create.latte index fc659b552..68b579846 100644 --- a/Web/Presenters/templates/Notes/Create.latte +++ b/Web/Presenters/templates/Notes/Create.latte @@ -8,24 +8,26 @@ {block content}
- +

+ {include "xhtmlToolbar.latte"} -
- +
+

{_something_is_supported_from_xhtml|noescape}

- + {_note_preview} - + {script "js/node_modules/monaco-editor/min/vs/loader.js"} {script "js/node_modules/requirejs/bin/r.js"} + {script "js/al_notes.js"} {/block} diff --git a/Web/Presenters/templates/Notes/xhtmlToolbar.latte b/Web/Presenters/templates/Notes/xhtmlToolbar.latte new file mode 100644 index 000000000..f956522d1 --- /dev/null +++ b/Web/Presenters/templates/Notes/xhtmlToolbar.latte @@ -0,0 +1,16 @@ +
+ + + + + + + + + + + + + + +
diff --git a/Web/static/js/al_notes.js b/Web/static/js/al_notes.js new file mode 100644 index 000000000..73f2cb527 --- /dev/null +++ b/Web/static/js/al_notes.js @@ -0,0 +1,78 @@ +window.OpenVKNotesToolbar = (function () { + var SNIPPETS = { + bold: ["", "", "text"], + italic: ["", "", "text"], + underline: ['', "", "text"], + left: ['
\n', "\n
", "text"], + center: ['
\n', "\n
", "text"], + right: ['
\n', "\n
", "text"], + list: ["
    \n
  • ", "
  • \n
", "item"], + h3: ["

", "

", "Heading"], + h4: ["

", "

", "Heading"], + h5: ["
", "
", "Heading"], + quote: ["
", "
", "quote"], + link: ['', "", "text"], + image: ['', '', "alt"], + table: [ + "\n
\n\n\n\n\n\n\n
HeaderHeader
", + "Cell
\n", + "Cell" + ] + }; + + function getEditor() { + return window._editor || null; + } + + function insertSnippet(before, after, emptyFallback) { + var editor = getEditor(); + if (!editor) { + return; + } + + var selection = editor.getSelection(); + var model = editor.getModel(); + if (!selection || !model) { + return; + } + + var selected = model.getValueInRange(selection); + var inner = selected.length ? selected : (emptyFallback || ""); + var text = before + inner + (after || ""); + + editor.executeEdits("notes-toolbar", [{ + range: selection, + text: text, + forceMoveMarkers: true + }]); + editor.focus(); + } + + function handleClick(e) { + var link = e.target.closest("#note_toolbar a[data-action]"); + if (!link) { + return; + } + + e.preventDefault(); + var action = link.getAttribute("data-action"); + var snippet = SNIPPETS[action]; + if (!snippet) { + return; + } + + insertSnippet(snippet[0], snippet[1], snippet[2] || ""); + } + + function init() { + if (document.body.dataset.notesToolbarBound === "1") { + return; + } + document.body.dataset.notesToolbarBound = "1"; + document.addEventListener("click", handleClick); + } + + return { init: init, insertSnippet: insertSnippet }; +})(); + +window.OpenVKNotesToolbar.init(); diff --git a/tests/docker-compose.override.yml b/tests/docker-compose.override.yml index 813b26fbd..aaa30c42f 100644 --- a/tests/docker-compose.override.yml +++ b/tests/docker-compose.override.yml @@ -8,6 +8,7 @@ services: - ./entrypoint.sh:/opt/chandler/extensions/available/openvk/tests/entrypoint.sh:ro - ./seed-data.sql:/opt/chandler/extensions/available/openvk/tests/seed-data.sql:ro - ../Web/Presenters/templates/Pages:/opt/chandler/extensions/available/openvk/Web/Presenters/templates/Pages:ro + - ../Web/Presenters/templates/Notes:/opt/chandler/extensions/available/openvk/Web/Presenters/templates/Notes:ro - ../Web/Presenters/PagesPresenter.php:/opt/chandler/extensions/available/openvk/Web/Presenters/PagesPresenter.php:ro - ../Web/Presenters/GroupPresenter.php:/opt/chandler/extensions/available/openvk/Web/Presenters/GroupPresenter.php:ro - ../Web/Models/Entities/Note.php:/opt/chandler/extensions/available/openvk/Web/Models/Entities/Note.php:ro @@ -20,6 +21,7 @@ services: - ../Web/Presenters/templates/Group/View.latte:/opt/chandler/extensions/available/openvk/Web/Presenters/templates/Group/View.latte:ro - ../Web/static/css/gpages.css:/opt/chandler/extensions/available/openvk/Web/static/css/gpages.css:ro - ../Web/static/js/al_pages.js:/opt/chandler/extensions/available/openvk/Web/static/js/al_pages.js:ro + - ../Web/static/js/al_notes.js:/opt/chandler/extensions/available/openvk/Web/static/js/al_notes.js:ro - ../Web/Presenters/templates/_includeCSS.latte:/opt/chandler/extensions/available/openvk/Web/Presenters/templates/_includeCSS.latte:ro - ../Web/routes.yml:/opt/chandler/extensions/available/openvk/Web/routes.yml:ro - ../install/sqls/00065-notes-as-wiki.sql:/opt/chandler/extensions/available/openvk/install/sqls/00065-notes-as-wiki.sql:ro From fa1d0e70b94a8a2e533c7f0eb399d83b0eb26fee Mon Sep 17 00:00:00 2001 From: fayzetwin Date: Tue, 4 Aug 2026 21:19:50 +0300 Subject: [PATCH 5/8] chore: update playwright tests --- .../note-create-linux.png | Bin 8667 -> 10487 bytes .../note2-1-edit-linux.png | Bin 14117 -> 15914 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/tests/e2e/screenshots/notes.spec.ts-snapshots/note-create-linux.png b/tests/e2e/screenshots/notes.spec.ts-snapshots/note-create-linux.png index 3bac682b922edbb589f1d59c62e44b269df5e08b..70c5f1681a12ef2cb841f52c9c0685b7c15167ea 100644 GIT binary patch literal 10487 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%0A%vb`*p?_#Gh-w@yQhc?Rmn|i<*1& Q7b^fYWi2K6i$DMR4~-lj>Hq)$ literal 8667 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 Qhbw@dw$a^c&Bw3)4cLe<#sB~S diff --git a/tests/e2e/screenshots/notes.spec.ts-snapshots/note2-1-edit-linux.png b/tests/e2e/screenshots/notes.spec.ts-snapshots/note2-1-edit-linux.png index 4efbf1ace3f2381bd1ffcd052dc2b5a03be0567d..8ff3fd281b4cf3a9347cdbc92c62a2c6aafe5847 100644 GIT binary patch literal 15914 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 literal 14117 zcmeHuXH=70w{FzEK}B$@2ul3~DN?0N38;Wb@4ZRyy%UPcMtV`25Q=mNgcd?CD!l}x zlaPS4P(o;dgqmFTz2l5K&bi;Xzt4~J?;UfDca1sMnscr>pY_Z*9W52w+f26s006D( zTO~aJ;CcuEaINy@^(#q4XR{Ij@E1T;>6Jln?hb|~jDEe4ba3nG^INwxQorA)XP`IP z|H)U8P}(rPpeO8}fQr@+=*$g-TNRZ<4-DKI_oRjJ3xOU>vv79kLMUV*VW3al(oC3t zarSxx?@!-*lK--KV!{3Q(+83bdoVD~wJ)iua_`U1Gy4(t*pU1XM=?rBe)iK=x4By5 zhRNfRhXBB@AYYm>vPKw-wC&#~_En3|d3n0)-hI2$_Uvbq>m}?%R6@cu`sdG|+Zd4k zc~0--t7v;c03f`WGS=T8uDNw7-HOjDn{xRR0640QxH3C+E7b@3&+kUs8>w#c!H0$A z3a-2|d&IqQh44C)RJE>C3YmY}zmL={<#4%*WOT?%8rE-nmSM6+h=$OaWqM^(ios*D zTW=kvy-uCCnhK}J9vgmpYtT&=R=7m8FT{_xcM8C|D+Ptg)1=yabClniV$?x(fv)4I z^@C{_rvmxL1>i3P6|Y?lnT%(QOV;!V!Ao^tm^)0x(s)sprL=JVOQf))UQTTxF*<=k zh1D}kN5vrpcsBOCibBY*y#ss=1>ILyfB;WB#56;wrB+XlZveuQj|JTH+h@scmQlgF z?V&D3j=osAg^r|?ud>sj2u$hluPKNc-3 zs|eYRf0Ck*)`5(g^2OrT*wc>E$L$KiTh@%p-OlM>JWWwH=X$bNg3=)EuHD3;zE(AM z7pT)ne1L4Xnapcst508MSq;;KCk#DFQ``OX%dH-CM@P{z4=t;WHAb+M51)WiHS6MSp`{VF?&+# zf&9ZuY$vBR=ew?)>;}?Cg#7e-OGW4RB}UdRDl)RzB6g+1O-bL zE1OPFH9y9(g^2m#H{!((Kk1GBnj-H~?`3uFYkOjAKA+>2%y}hdc05uVIq!jT!UKs)Y(j#+<;pL$C3VgAU2`Y;XMHfwPD*=u zxozb60uKJb>uj7oBU~b=@8_>cj{+gu=ptGt^hpn>TddQ0{GxlK8m1K$L@$e$Lj)=ci4A4tr?A&GXOuVh|Zv9#>+Ln-r+DUgLK57Z-QOt~DOT+UwJ4IfyGI0?E+ zHhUSI={INx5$wQ&H3=_hY-GB5X|9}`e}tjCu?#f1NmDRRIg2Ooh!Sk+abP;t{}9gl zW5@6&okt-`~k0@<-xWK1RH$B_rL1hwlV(wakN1uhiDWmd86jvGzxlSb-o zmu>;Q>2aJz^$zNpl7`Rhgr&okLd}o%C>P&sP#$+Jq-_!G9g&rurrmwSV__kTguPi| z*HMy0yi3H;`x{TDCbc=sEJY>GVj??c(&x}9IzC_v^OPF-Z?_Sz>{-d^Dvg%Yn#odj zPl%ep>5@uT^(hfg@bE~X+j2ARfV+I(Tt1f%bLbSg7@oM15yhNp96WsTxiWgMv%ExY zBT>L&u48X|uyRUmDFWBooPnX`D%WPMY+5MZ2@YOM#C6GwfVw56x`XXs;fDi()oYcm z`N7cS{D2-rR8~Ysz3Ws1V}2NDJtGJs2Zg^69H_W^{$T)fEez>@j;t_1@bKT)+H>#nfm}#^~Ai{+<(qipJ#7p`1vesyzP#E@Lg$Eb^royZe$=x0ipJ zCT%-zs#Q@Xh57S25i-vJDs0%nOTf1`#Z>4ytJUogeRk9?eLeb9*Z58xBa#1*vH zx*AqPp1`0jkDObD+eifp;VaVX4FfFZkv>j`=yUdLkeSulx6@e-*zExnzBmimU1+3> zP@@zj^JyAyIOhMr=oiR4%$MjLUqUjNo0Fi({cV2sDzTc}%uv~e(34YROOXI4RlJ?B zC&k~G4|BMwgMjetMQTxo1t0b&Gz&>!9(1gX{@5Z~a>!#Da4Yl{tTn5zEDRpj z0MC43^~e;5hEh`8GCfe1IhUbr0Sk>^j75)8kqhJt{&5AfiFDbp;S8zyH;h+_^e z%K7*}Z6+P|dr2S0DnF-j| zvUNH5afvr5a$KImOe@@VHo)FFWgzbRGlNho2MS({C|%o`QnyNSM-)7Fu=QCacib1L zWDOzaSp(a)J|eR$bS^L2BTp07YjER3`6L>lQ=}ajCfH)T-b}X}6G%J4pY40_rx#@x zzCBvLy-CMsnC??N{g7Sm96a5zhuKeZ6AmS3C{V&a=!q_WL=xkA5}N3xszC=q3Zc3~ z!t#A9Er&%Dr%?EvdNg6UU~j0S&3>I$ZGd)gsy|O&4XUTbUcSDo)f`bt*}t`sWMu5c z3*0;ULZ%LKS&)gL4;V}!EBE#2gUN^Ie+u(nIips~CYVuMVA$i4ROse8Klx&FZz>3L zlrb7{Y^iVufja_H0jv$AZ7cLTL0-qZs3*hJ(SP2c4~r;q4f3=+UYQbxvIiaC-OyYX z;sxZI1n!_0zf#~|RyZQq4>ycl=Ng!@|Cf6)BqlVh`H|@MvK1)l*`YA zhk);K$v#&#yYE3z#8rKsQ2i(1rBDL{0MJT@uJv%QuEOY-0|4*4e$`r!)LtL6_t5Ij z?LbGY_FGn6iRBwSr<#@(Z&O#^_^L?tAAb&-0RU?pZrA?Pa{onGvrE22No7@E^*|?+ z;E-MW(wNZw=9QEpe*mECZL;Uu5R2%QR-fSjz@YN%b-=$EO=$q{EmYFrHqE9I?L9-Y z<4G+`HIm%p6S5*d7<<6=cdW(-Iq^M9QXH45Ok5^Pkq}H zJdR9$F~;Jk=W1NdCav$qvOZHzn|Lp*bfr}?tQf2~D-h_%L9c3W#eDEq364~@mo%cX zkTibYZlL-JZTkx~qhqWpnc{ZbvSbtRf;F&Qs)2jOPj*MLs?Qb?ffXbP-_C3wrn^%l zrjaa~b-&^!n?V~JP4JGbqDWxiDTgZOJ-*tT0=I+Fi?KB-muxD5a`^o}Y}>8_zSsMu zliVc0Q(x{la65~obwGM-j0_!qKZ+Uoa?^1mENw#P=Zde1L8-YvM(^J3jO@jID)^y} zI714R1-IQdX!WR1R~5&m-&Z;_OL#D!McWeS-Lz|O)We9L2l0KY_iCjLmXlnQeN*hp z7T9^4`z{yj`oNF%WB40iW-APvFao@HSR7^{IWrD3ipxr(VvvA&1j5w0q1~e`_MN4Y z$K*-_dwS{_n5K+zqfrM>CKgYQzBJW0NJBWp8MXk|$+0WmvN8o$496focb|ghA>?N1u7^w}7{?y49<%IhotA)E1SuAouc zBWF_4mSY~5@Q9&(V57F~@kDT-yDM*=#%T`ALpHx&aHj`9Rezbic;=8LkS(EVcIPi+ zkvocsnSzoM_l6eBJZe7J2m*dTk~u4=HI%s5#67dpm_0+}G=O1TCi_?|+@!o_nuI6q z^{)K);Eg`-e_#Q9jzPiKA?;|FpZ&?<)EUD$g zOr-eddPmMRpUh|kTkXhxJ4;{{f>jTi$!7h>m1Rf1y?vkm*ck zH}Kulk8DA`kB?+EuNrh~UW`^xVgR`5;oWB}C3KrpOU$JMVOmv~@{A1Gn^$q2bNt(D zn>E`}kfv{h{%Tb~_ua==$>M)U_x2B#!--3g(5nbuYXieEkvmr_HV*vTK>i0O_* z-zBc+`VK$CgZcPar99D#oma=f9(ll(gS;5Fak_hzfA{~)OiSZzXp(gsD^T#l zqu?vigK`JDYo-JmFv7^vQt-M)$JqGzoH+E`w{ImS_N)C#(b3T>(I!F+W4Y4$9gk#Z z1%4WKc(+>MW}&jUYFMwz=SbVQLFLb}`ehpTm?gb9hVKd2v~3R?RvBsLzR*pV3^`oO zlMRxLsagnEBw!J=e}RQ9PJTXFkJUs;85*>?BSq_fK6c729L(B6vPuNByAhMwfkg?& zy_5cC@iI*#E8H6@_gmmxBx82s{zB4yii|L;gy2j z$Ymq6S98wfhNT7ME6kop+4OcyT_x$FQoje+HlBi|9G@x*jUXM6cHdNXVcF%NVoWXn zV_)rtOgQUH&RwvFUrd^%#{^#Sq7Ni?NF*cU1pgGABWc&zbcUNG_69itCx_Z zs>%4#I5Bo}%K|O0qXoE7^K(=8z$#V!WIZp*@m$ZHu9LVU1bT$~I56dCp8et;RIW{g zp=~5^dSGpnUuGg1djN{r)UDkp{CfO(@KCB_)+E~LRb#VDRZg{$L@URlMRI;DmtoaR zNmDo`_Ro%2J*Tnd)YMiIE|5Z8s3_C^Y0oW1?QL5#9lUE=&s`syFW$ZX*mZo`YVFnlQVd+LIQI2pd7UdD0h@9E5)qH9<4AVo=VXi9Y>L0# zjHsUHW4j~GmeflN*2HUO=d6dp4q}2Qy}uf8K2E_oW|cxoNlMNi6l_RTJ3#3}$W3#u zLfio;iwDehbO4@7-ufni17^f}y)=xYa{pt@lU^Gd@y676dFNjiCIbETquB9524| zL-c%p)IHxLzZ-WD&34xj8*;W@!Rg^3nC22H@Vm)@=Z1$ARSwS$v9y^fOg?fp@L|Ag z37zZS5SCSnu+JUWs-)k&f{ZjFkc+1hWS7uyPgv93$B+zDZ@~i_0eK#x46o2ozC$7AxB!GSJg4@!gHKkPT1LT_GxFSXYv ztu`%jw9S|?Ty@O1c0s1I1IEd*(ZUW+GmKdhEy|< z4-d!pj-b}gBX9EO|2p(;eYS1+>!Pzq_`vkwU0<>4hJHPUxtI*f%d8Pv zzB&ij1EoY-ZAA79LRJ;iX~O+x`QL3hd~W;`l}5PTSG-g7rv zb4f5L8}!24NX$c=?}2KMy~yJ@djfp}YWV|h^RJ-5-!frh{{Fu?78_J(=Lq%l`pLbk zKZJO~&&e(9RcVIWT~h5~QM3lXHndu*C8nQbWdJuDOm}LSt6g7f*atKfeT|+Rb%Z&J zF0g3Dz+(tpo#>9J!1%SBT+n>ctQq%!V9&ZuXix`T`G8_!33TU`$bnPCJZoS=4sCv_ zkYtd_D1!l*9^^;R8ri8(#gygXmm18=ziJq@ zPdV1-h)RDm%aasji02aP6IRO+hLMgsFsgQGsxx>{?=w$7xJLdl@h|qp0L)(MZujHR z5Ht)_+2rQu_^Lma09;?Wbnpq@ZD5}8MsE(uDvjJpU0o?{F|Pu9Ky~@G#wSXKJYh!{ zv2oQ82@^wq51PTgJf4r|a#b&kVQX33{{6j=QJJ=VfKvvEWyq^O_9iT{kygVRwskhV z>P9ckCY#3dyiKbh*i34X-qJeT%{M&dk7ia5=kKpCd1s#X9ONs|PL3dCUCRq=RjW@3 z9rf7*5CRXTiC2hwSVmTX`@u?bys2!kX=zQo1CpbU(GWOsu{)f8o9S%tC_k{N>Sye~ALsnkC6K5)9q$$@V(V#bRD1Ve*>diZ zZi@^q%o^ylY;#n1)3nk}FKv|)^%Cb4o5%l-BipYV&>i0Uyv>(as!vZ3;wHpfR zMJ_oly&8NBgs<)faLq9Gh~J^LxElStA&NwA0;eJ76%YGfnjt?Y?xnsgN;BYO`c!I6 zHk?<={d|7o-0NGTs5}~NLknA6T<eZ|2XP4PeIy@3H$-NBAeZfieCR z@1uq^P3$wX!^>dNb5&6`byp)lB3oW?BwX%&W-JaF63y1B*elSGnfUjjM$VYRCi$DI zPp0h5ua87hftVPg-sJTj-?iz{bRWIOr((JSDDDR0BdZ(n;l^T@sV+9$2ghuVmewq! z)u4u9t5Am^%e^tpk|$19B9!=B%D2yEHzeJXl;-#DD)$K(3(&_too2IQBDwqdL=4Jp zq=j^qOoc3uB2>${9#@|Cs*1o`8IDh1A1KMK zJ&^X#F0NvcX}o%j=u`nsM{x%f%tyAHnN}i&U`IpHa=L)f*mn3H>vo4?GWj3t4b>g} zyp;dNltRVFpwuWWDE8;owMe66KHQiP4Ftu+wpu0Jr&Xp;SWh*Xa1Y8@NF&ELO=Nt& ziFTF+waNZk_vRN%h9bEgeZ|JvdH86d8+J%5mKO<_8s*C_Z@GK4!R&imDgPo7TiB=4 zW^9re(>BzImA*iRBb6rB%GIXMz=7y;#D%JV`A7NV)MF_-zqCs;>90cv+0tA;&V>H0x`h8@g};5OcP@B-3@j~s@6vPe@K$iLL| zYDwUKJ7YvlAOBqKosQkO8xRcBUU!vDp}bN*GQ!QnfV%3@OLlnOv{0S)Nepn?G%fVI zeYOj$Sl_Z-{Gp6|4(s;XUqN0=vePaxM=SqqlZ3hH?|W_+^5-R{>poRdI*x9w{9E2R z46RV7_MS4|rOxbVU|5WaJA(t*wuvo5+TJ%ke2&HZH~!3b_b(1N35Rcwh}jz1xsz>! zs4=>OW$Ky*FDeAL%n$mm3D-^$cVEY}2A+@^+-k%fZKD_wskN3h4>^ z#Ks=!$*Q_WN_6q3V^Mz9_jbLpDzBHZE+$K>B6!iN>~DP{eM{3lBIN_GIb26PlmwF> z0`G+lo}R?NaTx5)uDM;ipfJn(}55MjrzQ8&0^<$t09mTh&7BE2LH~63N zlYiS`{g3d!piKX*HYCh>-|0WFfd2!6{kKx@e^mOPM9)4S50YAD|S6vtCDY zm}|-8E$Zqww>$2gOmJQycE40+Jy1q+CElqr@1^bkzd(J}xhWXcU^_u#KNuIL9A8l9 zw-DljGB=-il4ti5|1W;9qvlC=2q}!Xv9P z@t6_Htimv!co>^+S#|{`g8Bc_elyIfW$h;sS~BX$pRx@Fb6wX0%cjRtqXWSRM~NzF z2$IhV$>OlAH0m^^G4`$q`bFuNgPtIpZbTUiD5Oz1C&D06=_!jQn~UHT_8$~%Hvr85 z>`PDKt7qme50MCcEaoDSl&TA?7Fm0@%I1^ENT50r`0Wi~D)e*Q& zP^M2qI_iN(>a#&hN5#bhAG=O60{uyycqt?ynSqT8O09VcQg!NG&M$?9*lm5 ztA7j<%HOxHnHG+$w|IuY=)&85=1qf^&ft&DrsBJW!%i{~=Tr|fG8tx#Dw{K`ft+C9 zPmfgE_^yg>{^5e7H6Y%++$A1+Xk=n5Z~dG>`>6zY0LKrj6e;Loog7u;$k%~7c>0My zieu)^nzQzlg5!Nfubvkc!k>W3+!LnkXishw+RMEQ4s$>{K#-2ciW7g^Nb%U->T~x@ zGE>%$)y6|@N)o&!q|I&^tkpTkXih_!B{d&%I$0aQa}Y+bL6nI=rRm-DDJ{{Js{QC* z`KPp3(Eh%e9b5Sl)6Gx;SJ54xQ;&%5p^fUdW*VPNRO?&9$)aF3f9cD3Wp(cRZLa); z5R4HQ!%^ssD+DL+c4W4qI+exPds{tuX4y^(bN3xwrf5Om-sFvkWN!|a*h}833U4!| z8yD+~?<|bPVajoCbO~huKwD}1D(XY=SSyKRy?MQhITFs>XzLcJ1V$ZVf5sSp9Ucab zhjatWccYespq|yW}=}JgM zsP>sL+&RbBA2!s@Fvs`WKKcAF4xu~1dk^E*52K5hZwqdxm~}3{9W0I)+5WJl&v}oo zf0Qi+%B3gXzEF8C_e#BW4k@{7AaSomwdZZWvVr*mRcNT*9XAhrkKw~t=tCFLdr|^) z?WQSQiKEYvj0QVeX|4@lC3LlZJ`WOqC$9ARQ=@48g9GPZ9=iU($LbZCJCJNBeLei< zNr|f;_0I|Cmpc^-U&MRWJ~;|ADsIOvF%YP2-F~h+T+(kH{ zP4~&Xr4ZP#<7NoGwdqTKnm3{g$W{4BgYi2X%EFFsw&cMrfzQn!&t88S6hMja=vv3^ zMqUhu6Vl7(C?~xRce@|Y9XBswfPrUgJ~w*9_MVSapi$eOP}@-1##>7{dU8505X0L} zqq*X)@AazoSWQxm;VV&GIE4-hPj|jK*=-!g++32wgmYb;3CaBOn#=IgCcK`oa$xJg zHB&36Ifs{B`x0X1+ zbYq73)j1}ZKD<^0zA`Mf_ARfCkAq6aN@k_<%!5$w3k|v;$LxG@GwUte-ZIv~6nk-j zCKz}@KIM;(aXVDhZAyPP6}o13ByrCQwE5^oXu(#tXzn}0Dg`a<+A2Nj_+E>;G?+pe zMCvrTi?2ogG{Wlm&$thzb9Oo6oxfL@?Fjiz-m%iwJI_EfU=RarFLad5798-(X9mbewq?UBSwlUFPxiijc`PPOnYrQDr3X99 z&^+r8{hW^U+wJOPt^$9`z)BezN@XUp@|We{s#cHtHZrjZN+`W-CdsafGQK@D&MRaB zG~l-=Yjtsa!;3s1-LoC!uHj;*e#msZEvOb(s?_TQ;nRhtr{7V>C*w}_)iRPYXnVL* z=vDb|U(|JNR@>kTgxY(Xi<#eli?}2HFd_K!5VIv*oZ2#Qo_ANw z5$lg2YLqxwBS#Un{(kL9bIxZ}ab>eD;`evGPq}t{p4MC5&TpL`wgzaX?A@vRz*yIVx`}^C}1hA$f;4^4?>q% z2fHVzHi!i|a!oV_6D6zjHF7LIycO_^lx9+Yx*7p8(}8yrY z;V*{@@~!4lFQ394FjziiR#^?!j4TLb{EzYE<2`aIWX&yY1~S|kHIN?rFSLGVE99H~ zPU>h{Kl5=%eQDGuS~U+-c*uyna^(WO*-1o)mP_?wNAbJ0itD9Kt^_)SK~BhRwLkoN z>JGSW9B)I?jbsMrO`wT_f-JnAj}o}l4qj-ozIf|Wtu5i0pAbRX3JB3xyPJE|_g>&5Rmx zt8X2KU{GS#T@o(HCU z+V>XqSC6d^a`K`#K!AS8>Tzs!GFLGDV?bLWX#7ov248msN!a>?5Y$(_ceXYrHwBk! zcg)J19(x?L@qo-v&6^a$HD{$TC*6BO$ef;k#=)d73kl@s+PL!o);=REUpd3D4rPd+bQa-6B(ac)r#tZ*Esb2ImHvJ&KGxrZhbN$-CKCt2aIX)=wWoY!-`!p(f^k0+qq!*oR zk-Z*%kcn>!Hi9E^67=`stqa_S$0i0+(&h!Ko?3OY^y6AMGs~P`7;xf+?<*Y8=0PLG-XkEjjM%51T|FE7KjGDsMG5u|Hjn>2RH$S`AZBx%ApM|K(8J)ddupm0Y>qmvAt1_0LPlNs3tAAuu>*;GB zWU8# zZ<0FaZcyv0gH6HZcY)w(9ItWMvM;~QO~8Qi!VGJ32(D z^+gnqHG|mDaOx0gF(f|y+e7iHk;-)HBCXoXI#tZ5$sE|5S}XONq1l@wYGCctH$%4E z3w={R0p1q}&HpfAK6XF63-~Vb`u`Gb{%=z|gDE(Tds7^FiL-9@#6Vd5I8~B6usLq- zlIBkQECWpe%drS5K$xn3kOhdPM`N1bbW|77>7U8v;^ znAnJH=gR2@ZP*|{P~Xu2lC^b%qVOZ5ZzZm?F_cGPUR9#LZ8&V}lv;Y*c0fV_O;?lI zW6n>5c%}}sD^5&oXdb*WN8)pz?4Gy6VWbn(%Gk6uv=6i=Sf#Py65Sdnm48vN`6;|u zsGYFnq-}b3{t%aRx{)0d`%*B^H*h&~(9z=zE=KAmYzLEG!e{=S)b?Q=1w~V()LBou)(SPKi4!*(~ngDn8?) zZY?&)VlA8}02V7I*Bf6H~S(k ziOe8eMpp&|Scs|x_U_-Lgtum9YU$huA%g;x|vloG=wEBrr7cUJ~_*}bxvs?h`o z%@D=%r2E8Q_?a6c+im&|sR*OB)~TeebGN|VD&(1}=EO-Fftj@HAt1Ag^D9d>$mlX^ z-o=xMiCu>>10_#FkSbqT^JP8r{X&Pn74?9#ZY>b?WaU-)IC(M{?Aa*3n24#PqHRTH zIi3IQZ@?Pp(q9ph2Ht&!B=p{-+CVykcy$uG@igJFE(!N{l!}fkHPy)R!7^<7{K?2)EQ7sUl6L^!0s&HPwXN8k)eM#*D_s!de@fjXrz`U3%aq2;(YvJoKX3ED0#H@!dvm+c zDiCN$<%;aJ$r*K<`ieScfQnElzMAuT`ly6%(Egu^uaZ;B)r=d3!q_&IdG$f{&kc41 Zz^_beH~aAQ%#{S7s;s3{^ZMP#{{ Date: Thu, 13 Aug 2026 14:45:02 +0300 Subject: [PATCH 6/8] chore: changes after code-review (remove dead-code and other unnecessary things) --- Web/Models/Entities/GroupPage.php | 364 ---------------------- Web/Models/Entities/GroupPageRevision.php | 44 --- Web/Models/Entities/Note.php | 2 +- Web/Models/Repositories/GroupPages.php | 143 --------- Web/di.yml | 1 - Web/routes.yml | 23 -- install/sqls/00064-group-pages.sql | 32 -- install/sqls/00065-notes-as-wiki.sql | 49 +-- tests/docker-compose.override.yml | 29 -- tests/entrypoint.sh | 21 +- tests/seed-data.sql | 3 - 11 files changed, 7 insertions(+), 704 deletions(-) delete mode 100644 Web/Models/Entities/GroupPage.php delete mode 100644 Web/Models/Entities/GroupPageRevision.php delete mode 100644 Web/Models/Repositories/GroupPages.php delete mode 100644 install/sqls/00064-group-pages.sql delete mode 100644 tests/docker-compose.override.yml diff --git a/Web/Models/Entities/GroupPage.php b/Web/Models/Entities/GroupPage.php deleted file mode 100644 index b4fff4ce6..000000000 --- a/Web/Models/Entities/GroupPage.php +++ /dev/null @@ -1,364 +0,0 @@ -getRecord()->id; - } - - public function getVirtualId(): int - { - return (int) $this->getRecord()->virtual_id; - } - - public function getGroupId(): int - { - $record = $this->getRecord(); - if ($record) { - return (int) $record->group; - } - - return (int) ($this->changes["group"] ?? 0); - } - - public function getClub(): Club - { - return (new Clubs())->get($this->getGroupId()); - } - - public function getOwner(): ?User - { - return (new Users())->get((int) $this->getRecord()->owner); - } - - public function getTitle(): string - { - return $this->getRecord()->title; - } - - public function getSource(): string - { - return (string) $this->getRecord()->source; - } - - public function isMain(): bool - { - return (bool) $this->getRecord()->is_main; - } - - public function getViewAccess(): int - { - return (int) $this->getRecord()->view_access; - } - - public function getEditAccess(): int - { - return (int) $this->getRecord()->edit_access; - } - - public function isDeleted(): bool - { - return (bool) $this->getRecord()->deleted; - } - - public function getPrettyId(): string - { - return "-" . $this->getGroupId() . "_" . $this->getVirtualId(); - } - - public function getURL(): string - { - return "/page-" . $this->getGroupId() . "_" . $this->getVirtualId(); - } - - public function getPublicationTime(): DateTime - { - return new DateTime((int) $this->getRecord()->created); - } - - public function getEditTime(): ?DateTime - { - $edited = $this->getRecord()->edited; - return $edited ? new DateTime((int) $edited) : null; - } - - public function getEditor(): ?User - { - $revisions = DatabaseConnection::i()->getContext()->table("group_page_revisions") - ->where("page", $this->getId()) - ->order("created DESC") - ->limit(1) - ->fetch(); - - if (!$revisions) { - return $this->getOwner(); - } - - return (new Users())->get((int) $revisions->editor); - } - - protected function checkAccessLevel(int $level, ?User $user): bool - { - if ($level === self::ACCESS_EVERYONE) { - return true; - } - - if (!$user) { - return false; - } - - $club = $this->getClub(); - if ($club->canBeModifiedBy($user)) { - return true; - } - - if ($level === self::ACCESS_ADMINS) { - return false; - } - - // ACCESS_MEMBERS - return $club->getSubscriptionStatus($user); - } - - public function canBeViewedBy(?User $user = null): bool - { - if ($this->isDeleted()) { - return false; - } - - $club = $this->getClub(); - if (!$club || $club->isBanned() || !$club->isPagesEnabled()) { - return false; - } - - return $this->checkAccessLevel($this->getViewAccess(), $user); - } - - public function canBeEditedBy(?User $user = null): bool - { - if (!$user || $this->isDeleted()) { - return false; - } - - $club = $this->getClub(); - if (!$club || $club->isBanned() || !$club->isPagesEnabled()) { - return false; - } - - return $this->checkAccessLevel($this->getEditAccess(), $user); - } - - public static function renderMarkdown(string $source, Club $club): string - { - $pages = new GroupPages(); - $processed = preg_replace_callback( - '/\[\[([^\]|#]+)(?:\|([^\]]+))?\]\]/u', - function (array $matches) use ($pages, $club): string { - $target = trim($matches[1]); - $label = isset($matches[2]) ? trim($matches[2]) : $target; - $page = $pages->getByTitle($club, $target); - - if ($page) { - return "[" . str_replace(["[", "]"], ["\\[", "\\]"], $label) . "](" . $page->getURL() . ")"; - } - - $createUrl = "/pages-" . $club->getId() . "/create?title=" . rawurlencode($target); - return "[" . str_replace(["[", "]"], ["\\[", "\\]"], $label) . "](" . $createUrl . ")"; - }, - $source - ); - - $html = (new Parsedown())->text($processed ?? $source); - - // Parsedown emits style="text-align:…"; map to align= for XHTML purifier. - $html = preg_replace_callback( - '/<(t[dh])(\s[^>]*)?\sstyle="text-align:\s*(left|center|right);?"([^>]*)>/i', - static function (array $m): string { - $rest = ($m[2] ?? "") . ($m[4] ?? ""); - $rest = preg_replace('/\sstyle="[^"]*"/i', "", $rest) ?? $rest; - return "<{$m[1]} align=\"{$m[3]}\"{$rest}>"; - }, - $html - ) ?? $html; - - $html = preg_replace_callback( - '//', - static function (array $m): string { - return ''; - }, - $html - ); - - $config = HTMLPurifier_Config::createDefault(); - $config->set("Attr.AllowedClasses", ["wiki-missing", "underline", "wiki_md_table"]); - $config->set("Attr.DefaultInvalidImageAlt", "Unknown image"); - $config->set("AutoFormat.AutoParagraph", false); - $config->set("AutoFormat.Linkify", true); - $config->set("URI.Base", "//$_SERVER[SERVER_NAME]/"); - $config->set("URI.Munge", "/away.php?xinf=%n.%m:%r&css=%p&to=%s"); - $config->set("URI.MakeAbsolute", true); - $config->set("HTML.Doctype", "XHTML 1.1"); - $config->set("HTML.TidyLevel", "heavy"); - $config->set("HTML.AllowedElements", [ - "div", "h1", "h2", "h3", "h4", "h5", "h6", "p", "i", "b", "em", "strong", - "a", "del", "ins", "sup", "sub", "table", "thead", "tbody", "tr", "td", "th", - "img", "ul", "ol", "li", "hr", "br", "blockquote", "cite", "span", "code", "pre", - ]); - $config->set("HTML.AllowedAttributes", [ - "table.summary", "table.class", "td.abbr", "th.abbr", "a.href", "a.class", "a.title", - "img.src", "img.alt", "img.style", "div.style", "div.title", "span.class", "p.class", - "td.align", "th.align", "td.style", "th.style", "p.align", "div.align", - ]); - $config->set("CSS.AllowedProperties", [ - "float", "height", "width", "max-height", "max-width", "font-weight", "text-align", - ]); - - $html = (new HTMLPurifier($config))->purify($html); - return preg_replace('/]*\bclass=)/i', 'getClub(); - if (is_null($this->getRecord())) { - return self::renderMarkdown($this->changes["source"] ?? "", $club); - } - - $cached = $this->getRecord()->cached_html; - if (!$cached) { - $cached = self::renderMarkdown($this->getSource(), $club); - $this->changes["cached_html"] = $cached; - parent::save(false); - } - - return $cached; - } - - private ?int $revisionEditorId = null; - - public function getSourceByteSize(): int - { - return strlen($this->getSource()); - } - - public function delete(bool $softly = true): void - { - if (!$softly) { - parent::delete(false); - return; - } - - $this->setDeleted(1); - $this->setIs_Main(0); - parent::save(false); - } - - public function save(?bool $log = false): void - { - $isNew = is_null($this->getRecord()); - $record = $this->getRecord(); - $groupId = $record ? (int) $record->group : (int) ($this->changes["group"] ?? 0); - if (!$groupId) { - throw new \LogicException("Can't persist page without group"); - } - - // Drop non-column keys before any persistence - $editorId = $this->revisionEditorId; - unset($this->changes["_revision_editor"]); - $this->revisionEditorId = null; - - $titleChanged = isset($this->changes["title"]) - && (!$record || (string) $this->changes["title"] !== (string) $record->title); - $sourceChanged = isset($this->changes["source"]) - && (!$record || (string) $this->changes["source"] !== (string) $record->source); - - // If values were set but identical, drop them so parent::save is a no-op - if (isset($this->changes["title"]) && !$titleChanged && !$isNew) { - unset($this->changes["title"]); - } - if (isset($this->changes["source"]) && !$sourceChanged && !$isNew) { - unset($this->changes["source"]); - } - - $contentChanged = $isNew || $titleChanged || $sourceChanged; - - if ($isNew) { - if (!isset($this->changes["created"])) { - $this->changes["created"] = time(); - } - $count = sizeof(DatabaseConnection::i()->getContext()->table("group_pages")->where("group", $groupId)); - $this->changes["virtual_id"] = $count + 1; - if (!isset($this->changes["view_access"])) { - $this->changes["view_access"] = self::ACCESS_EVERYONE; - } - if (!isset($this->changes["edit_access"])) { - $this->changes["edit_access"] = self::ACCESS_ADMINS; - } - } elseif ($contentChanged) { - // Assign directly: stateChanges() probes ActiveRow and may fail on cached schema - $this->changes["edited"] = time(); - $this->changes["cached_html"] = null; - } - - if (!$isNew && !$contentChanged && empty($this->changes)) { - return; - } - - $revTitle = $contentChanged - ? (string) ($this->changes["title"] ?? ($record->title ?? "")) - : null; - $revSource = $contentChanged - ? (string) ($this->changes["source"] ?? ($record->source ?? "")) - : null; - - parent::save($log); - - if ($contentChanged && $editorId !== null) { - DatabaseConnection::i()->getContext()->table("group_page_revisions")->insert([ - "page" => $this->getId(), - "editor" => (int) $editorId, - "title" => $revTitle, - "source" => $revSource, - "created" => time(), - ]); - } - } - - public function setRevisionEditor(int $userId): void - { - $this->revisionEditorId = $userId; - } - - public function makeMain(): void - { - DatabaseConnection::i()->getContext()->table("group_pages") - ->where([ - "group" => $this->getGroupId(), - "is_main" => 1, - "deleted" => 0, - ]) - ->update(["is_main" => 0]); - - $this->changes["is_main"] = 1; - parent::save(false); - } -} diff --git a/Web/Models/Entities/GroupPageRevision.php b/Web/Models/Entities/GroupPageRevision.php deleted file mode 100644 index 18dcb11ec..000000000 --- a/Web/Models/Entities/GroupPageRevision.php +++ /dev/null @@ -1,44 +0,0 @@ -getRecord()->id; - } - - public function getPageId(): int - { - return (int) $this->getRecord()->page; - } - - public function getEditor(): ?User - { - return (new Users())->get((int) $this->getRecord()->editor); - } - - public function getTitle(): string - { - return (string) $this->getRecord()->title; - } - - public function getSource(): string - { - return (string) $this->getRecord()->source; - } - - public function getCreationTime(): DateTime - { - return new DateTime((int) $this->getRecord()->created); - } -} diff --git a/Web/Models/Entities/Note.php b/Web/Models/Entities/Note.php index 80c1fedb5..2fe8ac574 100644 --- a/Web/Models/Entities/Note.php +++ b/Web/Models/Entities/Note.php @@ -382,7 +382,7 @@ private function checkAccessLevel(int $level, ?User $user): bool } // members - return $club->getSubscriptionStatus($user) === Club::SUBSCRIBED + return $club->getSubscriptionStatus($user) || $club->canBeModifiedBy($user); } diff --git a/Web/Models/Repositories/GroupPages.php b/Web/Models/Repositories/GroupPages.php deleted file mode 100644 index facd82e13..000000000 --- a/Web/Models/Repositories/GroupPages.php +++ /dev/null @@ -1,143 +0,0 @@ -context = DatabaseConnection::i()->getContext(); - } - - private function pages(): Selection - { - return $this->context->table("group_pages"); - } - - private function revisions(): Selection - { - return $this->context->table("group_page_revisions"); - } - - private function toPage(?ActiveRow $ar): ?GroupPage - { - return is_null($ar) ? null : new GroupPage($ar); - } - - private function toRevision(?ActiveRow $ar): ?GroupPageRevision - { - return is_null($ar) ? null : new GroupPageRevision($ar); - } - - public function get(int $id): ?GroupPage - { - return self::$cache[$id] ??= $this->toPage($this->pages()->get($id)); - } - - public function getPageById(int $clubId, int $virtualId): ?GroupPage - { - return $this->toPage($this->pages()->where([ - "group" => $clubId, - "virtual_id" => $virtualId, - "deleted" => 0, - ])->fetch()); - } - - public function getByTitle(Club $club, string $title): ?GroupPage - { - return $this->toPage($this->pages()->where([ - "group" => $club->getId(), - "title" => $title, - "deleted" => 0, - ])->fetch()); - } - - public function getMainPage(Club $club): ?GroupPage - { - return $this->toPage($this->pages()->where([ - "group" => $club->getId(), - "is_main" => 1, - "deleted" => 0, - ])->order("created ASC")->fetch()); - } - - public function getClubPages(Club $club, int $page = 1, ?int $perPage = null): \Traversable - { - $perPage ??= OPENVK_DEFAULT_PER_PAGE; - $rows = $this->pages()->where([ - "group" => $club->getId(), - "deleted" => 0, - ])->order("is_main DESC, edited DESC, created DESC")->page($page, $perPage); - - foreach ($rows as $row) { - yield $this->toPage($row); - } - } - - public function getClubPagesCount(Club $club): int - { - return sizeof($this->pages()->where([ - "group" => $club->getId(), - "deleted" => 0, - ])); - } - - /** - * Keep at most one main page per club (earliest created wins). - */ - public function ensureSingleMain(Club $club): void - { - $mains = $this->pages()->where([ - "group" => $club->getId(), - "deleted" => 0, - "is_main" => 1, - ])->order("created ASC"); - - $keepId = null; - foreach ($mains as $row) { - if ($keepId === null) { - $keepId = (int) $row->id; - continue; - } - - $row->update(["is_main" => 0]); - unset(self::$cache[(int) $row->id]); - } - } - - public function getRevisions(GroupPage $page, int $pageNum = 1, ?int $perPage = null): \Traversable - { - $perPage ??= OPENVK_DEFAULT_PER_PAGE; - $rows = $this->revisions()->where("page", $page->getId()) - ->order("created DESC") - ->page($pageNum, $perPage); - - foreach ($rows as $row) { - yield $this->toRevision($row); - } - } - - public function getRevisionsCount(GroupPage $page): int - { - return sizeof($this->revisions()->where("page", $page->getId())); - } - - public function getRevision(GroupPage $page, int $revisionId): ?GroupPageRevision - { - return $this->toRevision($this->revisions()->where([ - "id" => $revisionId, - "page" => $page->getId(), - ])->fetch()); - } -} diff --git a/Web/di.yml b/Web/di.yml index 180c518f6..d158c8409 100644 --- a/Web/di.yml +++ b/Web/di.yml @@ -55,7 +55,6 @@ services: - openvk\Web\Models\Repositories\BannedLinks - openvk\Web\Models\Repositories\ChandlerGroups - openvk\Web\Models\Repositories\Documents - - openvk\Web\Models\Repositories\GroupPages - openvk\Web\Models\Repositories\Faves - openvk\Web\Presenters\MaintenancePresenter - openvk\Web\Presenters\NoSpamPresenter diff --git a/Web/routes.yml b/Web/routes.yml index 3812f68a9..eea259b97 100644 --- a/Web/routes.yml +++ b/Web/routes.yml @@ -291,29 +291,6 @@ routes: handler: "Pages->history" - url: "/note-{num}_{num}/history/{num}" handler: "Pages->revision" - # Temporary aliases for old group wiki URLs - - url: "/pages/preview" - handler: "Pages->preview" - - url: "/pages-{num}" - handler: "Pages->list" - - url: "/pages-{num}/create" - handler: "Pages->create" - - url: "/pages-{num}/help" - handler: "Pages->help" - - url: "/page-{num}_{num}" - handler: "Pages->view" - - url: "/page-{num}_{num}/edit" - handler: "Pages->edit" - - url: "/page-{num}_{num}/delete" - handler: "Pages->delete" - - url: "/page-{num}_{num}/setMain" - handler: "Pages->setMain" - - url: "/page-{num}_{num}/access" - handler: "Pages->access" - - url: "/page-{num}_{num}/history" - handler: "Pages->history" - - url: "/page-{num}_{num}/history/{num}" - handler: "Pages->revision" - url: "/im" handler: "Messenger->index" - url: "/im/sel{num}" diff --git a/install/sqls/00064-group-pages.sql b/install/sqls/00064-group-pages.sql deleted file mode 100644 index d108ff302..000000000 --- a/install/sqls/00064-group-pages.sql +++ /dev/null @@ -1,32 +0,0 @@ -ALTER TABLE `groups` ADD COLUMN `pages` TINYINT(1) NOT NULL DEFAULT 0 AFTER `everyone_can_upload_audios`; - -CREATE TABLE `group_pages` ( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `group` BIGINT(20) UNSIGNED NOT NULL, - `virtual_id` BIGINT(20) UNSIGNED NOT NULL, - `owner` BIGINT(20) UNSIGNED NOT NULL, - `title` VARCHAR(255) NOT NULL, - `source` LONGTEXT NOT NULL, - `cached_html` LONGTEXT NULL DEFAULT NULL, - `is_main` TINYINT(1) UNSIGNED NOT NULL DEFAULT 0, - `view_access` TINYINT(1) UNSIGNED NOT NULL DEFAULT 0, - `edit_access` TINYINT(1) UNSIGNED NOT NULL DEFAULT 2, - `created` BIGINT(20) UNSIGNED NOT NULL, - `edited` BIGINT(20) UNSIGNED NULL DEFAULT NULL, - `deleted` TINYINT(1) UNSIGNED NOT NULL DEFAULT 0, - PRIMARY KEY (`id`), - UNIQUE KEY `group_virtual` (`group`, `virtual_id`), - KEY `group_deleted_main` (`group`, `deleted`, `is_main`), - KEY `deleted` (`deleted`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; - -CREATE TABLE `group_page_revisions` ( - `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, - `page` BIGINT(20) UNSIGNED NOT NULL, - `editor` BIGINT(20) UNSIGNED NOT NULL, - `title` VARCHAR(255) NOT NULL, - `source` LONGTEXT NOT NULL, - `created` BIGINT(20) UNSIGNED NOT NULL, - PRIMARY KEY (`id`), - KEY `page_created` (`page`, `created`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; diff --git a/install/sqls/00065-notes-as-wiki.sql b/install/sqls/00065-notes-as-wiki.sql index 4534a52d5..fece4e9f7 100644 --- a/install/sqls/00065-notes-as-wiki.sql +++ b/install/sqls/00065-notes-as-wiki.sql @@ -1,4 +1,6 @@ --- Unify group wiki pages into notes (club notes use owner = -group_id). +-- Club notes (owner = -group_id): wiki fields, optional revisions, and materials flag. + +ALTER TABLE `groups` ADD COLUMN `pages` TINYINT(1) NOT NULL DEFAULT 0 AFTER `everyone_can_upload_audios`; ALTER TABLE `notes` ADD COLUMN `format` TINYINT(1) UNSIGNED NOT NULL DEFAULT 0 AFTER `source`, @@ -21,48 +23,3 @@ CREATE TABLE IF NOT EXISTS `note_revisions` ( PRIMARY KEY (`id`), KEY `note_created` (`note`, `created`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci; - --- Migrate existing group wiki pages into notes (idempotent-ish: skip if already migrated). -INSERT INTO `notes` ( - `owner`, `created_by`, `virtual_id`, `created`, `edited`, `name`, `source`, `cached_content`, - `format`, `deleted`, `is_main`, `view_access`, `edit_access`, `keep_revisions`, `anonymous` -) -SELECT - -CAST(`group` AS SIGNED), - `owner`, - `virtual_id`, - `created`, - `edited`, - `title`, - `source`, - `cached_html`, - 1, - `deleted`, - `is_main`, - `view_access`, - `edit_access`, - 1, - 0 -FROM `group_pages` gp -WHERE NOT EXISTS ( - SELECT 1 FROM `notes` n - WHERE n.`owner` = -CAST(gp.`group` AS SIGNED) - AND n.`virtual_id` = gp.`virtual_id` -); - -INSERT INTO `note_revisions` (`note`, `editor`, `title`, `source`, `created`) -SELECT - n.`id`, - r.`editor`, - r.`title`, - r.`source`, - r.`created` -FROM `group_page_revisions` r -INNER JOIN `group_pages` gp ON gp.`id` = r.`page` -INNER JOIN `notes` n - ON n.`owner` = -CAST(gp.`group` AS SIGNED) - AND n.`virtual_id` = gp.`virtual_id` -WHERE NOT EXISTS ( - SELECT 1 FROM `note_revisions` nr - WHERE nr.`note` = n.`id` AND nr.`created` = r.`created` AND nr.`editor` = r.`editor` -); diff --git a/tests/docker-compose.override.yml b/tests/docker-compose.override.yml deleted file mode 100644 index aaa30c42f..000000000 --- a/tests/docker-compose.override.yml +++ /dev/null @@ -1,29 +0,0 @@ -services: - openvk: - ports: !override - - "18088:80" - volumes: - - ./openvk.test.yml:/opt/chandler/extensions/available/openvk/openvk.yml:ro - - ./chandler.test.yml:/opt/chandler/chandler.yml:ro - - ./entrypoint.sh:/opt/chandler/extensions/available/openvk/tests/entrypoint.sh:ro - - ./seed-data.sql:/opt/chandler/extensions/available/openvk/tests/seed-data.sql:ro - - ../Web/Presenters/templates/Pages:/opt/chandler/extensions/available/openvk/Web/Presenters/templates/Pages:ro - - ../Web/Presenters/templates/Notes:/opt/chandler/extensions/available/openvk/Web/Presenters/templates/Notes:ro - - ../Web/Presenters/PagesPresenter.php:/opt/chandler/extensions/available/openvk/Web/Presenters/PagesPresenter.php:ro - - ../Web/Presenters/GroupPresenter.php:/opt/chandler/extensions/available/openvk/Web/Presenters/GroupPresenter.php:ro - - ../Web/Models/Entities/Note.php:/opt/chandler/extensions/available/openvk/Web/Models/Entities/Note.php:ro - - ../Web/Models/Entities/NoteRevision.php:/opt/chandler/extensions/available/openvk/Web/Models/Entities/NoteRevision.php:ro - - ../Web/Models/Repositories/Notes.php:/opt/chandler/extensions/available/openvk/Web/Models/Repositories/Notes.php:ro - - ../Web/Models/Entities/GroupPage.php:/opt/chandler/extensions/available/openvk/Web/Models/Entities/GroupPage.php:ro - - ../Web/Models/Entities/GroupPageRevision.php:/opt/chandler/extensions/available/openvk/Web/Models/Entities/GroupPageRevision.php:ro - - ../Web/Models/Repositories/GroupPages.php:/opt/chandler/extensions/available/openvk/Web/Models/Repositories/GroupPages.php:ro - - ../Web/Models/Entities/Club.php:/opt/chandler/extensions/available/openvk/Web/Models/Entities/Club.php:ro - - ../Web/Presenters/templates/Group/View.latte:/opt/chandler/extensions/available/openvk/Web/Presenters/templates/Group/View.latte:ro - - ../Web/static/css/gpages.css:/opt/chandler/extensions/available/openvk/Web/static/css/gpages.css:ro - - ../Web/static/js/al_pages.js:/opt/chandler/extensions/available/openvk/Web/static/js/al_pages.js:ro - - ../Web/static/js/al_notes.js:/opt/chandler/extensions/available/openvk/Web/static/js/al_notes.js:ro - - ../Web/Presenters/templates/_includeCSS.latte:/opt/chandler/extensions/available/openvk/Web/Presenters/templates/_includeCSS.latte:ro - - ../Web/routes.yml:/opt/chandler/extensions/available/openvk/Web/routes.yml:ro - - ../install/sqls/00065-notes-as-wiki.sql:/opt/chandler/extensions/available/openvk/install/sqls/00065-notes-as-wiki.sql:ro - - ../locales/ru.strings:/opt/chandler/extensions/available/openvk/locales/ru.strings:ro - - ../locales/en.strings:/opt/chandler/extensions/available/openvk/locales/en.strings:ro diff --git a/tests/entrypoint.sh b/tests/entrypoint.sh index 807fea6e0..e49600d55 100755 --- a/tests/entrypoint.sh +++ b/tests/entrypoint.sh @@ -18,25 +18,10 @@ echo "MariaDB ready." # Run schema migrations (creates all tables + admin user) ./openvkctl upgrade --no-interaction --quick -# Import deterministic test seed data (ignore duplicates on container recreate) +# Import deterministic test seed data echo "Importing seed data..." -if mysql -h "$DB_HOST" -u "$DB_USER" -p"$DB_PASSWORD" "$DB_NAME" --ssl=0 --default-character-set=utf8mb4 < tests/seed-data.sql; then - echo "Seed data imported." -else - echo "Seed data import skipped (database already seeded)." -fi - -# Seed drops UUID triggers first and recreates them at the end. If import -# fails mid-way (e.g. duplicate keys on recreate), login breaks without them. -echo "Ensuring Chandler UUID triggers exist..." -mysql -h "$DB_HOST" -u "$DB_USER" -p"$DB_PASSWORD" "$DB_NAME" --ssl=0 --default-character-set=utf8mb4 <<'SQL' -DROP TRIGGER IF EXISTS bfiu_users; -DROP TRIGGER IF EXISTS bfiu_groups; -DROP TRIGGER IF EXISTS bfiu_tokens; -CREATE TRIGGER bfiu_users BEFORE INSERT ON ChandlerUsers FOR EACH ROW SET new.id = uuid(); -CREATE TRIGGER bfiu_groups BEFORE INSERT ON ChandlerGroups FOR EACH ROW SET new.id = uuid(); -CREATE TRIGGER bfiu_tokens BEFORE INSERT ON ChandlerTokens FOR EACH ROW SET new.token = uuid(); -SQL +mysql -h "$DB_HOST" -u "$DB_USER" -p"$DB_PASSWORD" "$DB_NAME" --ssl=0 --default-character-set=utf8mb4 < tests/seed-data.sql +echo "Seed data imported." # Start Apache exec apache2-foreground diff --git a/tests/seed-data.sql b/tests/seed-data.sql index 3337d82aa..317eef1e4 100644 --- a/tests/seed-data.sql +++ b/tests/seed-data.sql @@ -266,7 +266,6 @@ INSERT INTO ovk_upgrade_history (`level`, `timestamp`, `operator`) VALUES (61, @ts_base - 365 * @ts_day, 'test-seed'), (62, @ts_base - 365 * @ts_day, 'test-seed'), (63, @ts_base - 365 * @ts_day, 'test-seed'), -(64, @ts_base - 365 * @ts_day, 'test-seed'), (65, @ts_base - 365 * @ts_day, 'test-seed'); -- Photos for Alice (profile id = 2, album id = 1) @@ -425,8 +424,6 @@ ALTER TABLE videos AUTO_INCREMENT = 100; ALTER TABLE notes AUTO_INCREMENT = 100; ALTER TABLE note_revisions AUTO_INCREMENT = 100; ALTER TABLE topics AUTO_INCREMENT = 100; -ALTER TABLE group_pages AUTO_INCREMENT = 100; -ALTER TABLE group_page_revisions AUTO_INCREMENT = 100; ALTER TABLE audios AUTO_INCREMENT = 100; ALTER TABLE playlists AUTO_INCREMENT = 100; ALTER TABLE polls AUTO_INCREMENT = 100; From 85c2e69fc80f676205ef8a5d267eae0f452e649f Mon Sep 17 00:00:00 2001 From: fayzetwin1 Date: Thu, 13 Aug 2026 15:57:29 +0300 Subject: [PATCH 7/8] refactor(notes): streamline note access checks and enhance comment permissions --- VKAPI/Handlers/Notes.php | 83 +-- Web/Models/Entities/Note.php | 76 ++- Web/Models/Repositories/Notes.php | 14 + Web/Presenters/CommentPresenter.php | 6 +- Web/Presenters/NotesPresenter.php | 582 ++++++++++++++++-- Web/Presenters/PagesPresenter.php | 404 ------------ Web/Presenters/templates/Group/Edit.latte | 3 + .../Create.latte => Notes/ClubCreate.latte} | 5 +- .../Edit.latte => Notes/ClubEdit.latte} | 6 +- .../Help.latte => Notes/ClubHelp.latte} | 2 +- .../History.latte => Notes/ClubHistory.latte} | 2 +- .../List.latte => Notes/ClubList.latte} | 2 +- .../ClubRevision.latte} | 2 +- .../View.latte => Notes/ClubView.latte} | 14 +- Web/Presenters/templates/Notes/Create.latte | 136 ++-- Web/Presenters/templates/Notes/Edit.latte | 73 ++- Web/Presenters/templates/Notes/PreView.latte | 37 -- Web/Presenters/templates/Notes/View.latte | 3 +- .../clubListTabs.latte} | 0 .../tabs.latte => Notes/clubTabs.latte} | 0 Web/di.yml | 1 - Web/routes.yml | 24 +- Web/static/css/gpages.css | 18 +- Web/static/js/al_pages.js | 207 ++++++- install/sqls/00066-note-comment-access.sql | 2 + locales/en.strings | 7 + locales/ru.strings | 7 + .../club1-edit-linux.png | Bin 44640 -> 46346 bytes .../note-create-linux.png | Bin 10487 -> 15016 bytes .../note2-1-edit-linux.png | Bin 15914 -> 19666 bytes .../page-1-1-edit-linux.png | Bin 23188 -> 22983 bytes .../page-1-1-linux.png | Bin 16926 -> 21763 bytes .../page-create-linux.png | Bin 20164 -> 20026 bytes tests/e2e/specs/notes.spec.ts | 5 +- tests/seed-data.sql | 3 +- 35 files changed, 1069 insertions(+), 655 deletions(-) delete mode 100644 Web/Presenters/PagesPresenter.php rename Web/Presenters/templates/{Pages/Create.latte => Notes/ClubCreate.latte} (94%) rename Web/Presenters/templates/{Pages/Edit.latte => Notes/ClubEdit.latte} (95%) rename Web/Presenters/templates/{Pages/Help.latte => Notes/ClubHelp.latte} (98%) rename Web/Presenters/templates/{Pages/History.latte => Notes/ClubHistory.latte} (96%) rename Web/Presenters/templates/{Pages/List.latte => Notes/ClubList.latte} (98%) rename Web/Presenters/templates/{Pages/Revision.latte => Notes/ClubRevision.latte} (93%) rename Web/Presenters/templates/{Pages/View.latte => Notes/ClubView.latte} (50%) delete mode 100644 Web/Presenters/templates/Notes/PreView.latte rename Web/Presenters/templates/{Pages/listTabs.latte => Notes/clubListTabs.latte} (100%) rename Web/Presenters/templates/{Pages/tabs.latte => Notes/clubTabs.latte} (100%) create mode 100644 install/sqls/00066-note-comment-access.sql diff --git a/VKAPI/Handlers/Notes.php b/VKAPI/Handlers/Notes.php index 8f8314376..fcf604506 100644 --- a/VKAPI/Handlers/Notes.php +++ b/VKAPI/Handlers/Notes.php @@ -9,7 +9,7 @@ use openvk\Web\Models\Repositories\Comments as CommentsRepo; use openvk\Web\Models\Repositories\Photos as PhotosRepo; use openvk\Web\Models\Repositories\Videos as VideosRepo; -use openvk\Web\Models\Entities\{Note, Comment}; +use openvk\Web\Models\Entities\{Note, Comment, User}; final class Notes extends VKAPIRequestHandler { @@ -45,24 +45,9 @@ public function createComment(int $note_id, int $owner_id, string $message, stri } $note = (new NotesRepo())->getNoteById($owner_id, $note_id); + $this->assertNoteAccessible($note); - if (!$note) { - $this->fail(15, "Access denied"); - } - - if ($note->isDeleted()) { - $this->fail(15, "Access denied"); - } - - if ($note->getOwner()->isDeleted()) { - $this->fail(15, "Access denied"); - } - - if (!$note->canBeViewedBy($this->getUser())) { - $this->fail(15, "Access denied"); - } - - if (!$note->getOwner()->getPrivacyPermission('notes.read', $this->getUser())) { + if (!$note->canBeCommentedBy($this->getUser())) { $this->fail(15, "Access denied"); } @@ -186,26 +171,7 @@ public function getById(int $note_id, int $owner_id, bool $need_wiki = false) $this->requireUser(); $note = (new NotesRepo())->getNoteById($owner_id, $note_id); - - if (!$note) { - $this->fail(15, "Access denied"); - } - - if ($note->isDeleted()) { - $this->fail(15, "Access denied"); - } - - if (!$note->getOwner() || $note->getOwner()->isDeleted()) { - $this->fail(15, "Access denied"); - } - - if (!$note->getOwner()->getPrivacyPermission('notes.read', $this->getUser())) { - $this->fail(15, "Access denied"); - } - - if (!$note->canBeViewedBy($this->getUser())) { - $this->fail(15, "Access denied"); - } + $this->assertNoteAccessible($note); return $note->toVkApiStruct(); } @@ -215,36 +181,43 @@ public function getComments(int $note_id, int $owner_id, int $sort = 1, int $off $this->requireUser(); $note = (new NotesRepo())->getNoteById($owner_id, $note_id); + $this->assertNoteAccessible($note); - if (!$note) { - $this->fail(15, "Access denied"); - } + $arr = (object) [ + "count" => $note->getCommentsCount(), + "items" => []]; + $comments = array_slice(iterator_to_array($note->getComments(1, $count + $offset)), $offset); - if ($note->isDeleted()) { - $this->fail(15, "Access denied"); + foreach ($comments as $comment) { + $arr->items[] = $comment->toVkApiStruct($this->getUser(), false, false, $note); } - if (!$note->getOwner()) { - $this->fail(15, "Access denied"); - } + return $arr; + } - if (!$note->getOwner()->getPrivacyPermission('notes.read', $this->getUser())) { + private function assertNoteAccessible(?Note $note): void + { + if (!$note || $note->isDeleted()) { $this->fail(15, "Access denied"); } - if (!$note->canBeViewedBy($this->getUser())) { + $owner = $note->getOwner(); + if (!$owner) { $this->fail(15, "Access denied"); } - $arr = (object) [ - "count" => $note->getCommentsCount(), - "items" => []]; - $comments = array_slice(iterator_to_array($note->getComments(1, $count + $offset)), $offset); + if ($owner instanceof User) { + if ($owner->isDeleted()) { + $this->fail(15, "Access denied"); + } - foreach ($comments as $comment) { - $arr->items[] = $comment->toVkApiStruct($this->getUser(), false, false, $note); + if (!$owner->getPrivacyPermission("notes.read", $this->getUser())) { + $this->fail(15, "Access denied"); + } } - return $arr; + if (!$note->canBeViewedBy($this->getUser())) { + $this->fail(15, "Access denied"); + } } } diff --git a/Web/Models/Entities/Note.php b/Web/Models/Entities/Note.php index 2fe8ac574..7ff11716b 100644 --- a/Web/Models/Entities/Note.php +++ b/Web/Models/Entities/Note.php @@ -10,7 +10,7 @@ use Parsedown; use Chandler\Database\DatabaseConnection; use openvk\Web\Models\RowModel; -use openvk\Web\Models\Repositories\{Users, Clubs, Notes}; +use openvk\Web\Models\Repositories\{Users, Clubs, Notes, Photos}; class SecurityFilter extends HTMLPurifier_Filter { @@ -101,7 +101,7 @@ public function getFormat(): int return (int) $record->format; } - return (int) ($this->changes["format"] ?? ($this->isClubNote() ? self::FORMAT_MARKDOWN : self::FORMAT_HTML)); + return (int) ($this->changes["format"] ?? self::FORMAT_MARKDOWN); } public function isMarkdown(): bool @@ -139,6 +139,16 @@ public function getEditAccess(): int return (int) ($this->changes["edit_access"] ?? self::ACCESS_ADMINS); } + public function getCommentAccess(): int + { + $record = $this->getRecord(); + if ($record && isset($record->comment_access)) { + return (int) $record->comment_access; + } + + return (int) ($this->changes["comment_access"] ?? self::ACCESS_EVERYONE); + } + public function keepsRevisions(): bool { $record = $this->getRecord(); @@ -275,6 +285,7 @@ function (array $matches) use ($notes, $ownerId, $club, $createBase): string { ); $html = (new Parsedown())->text($processed ?? $source); + $html = self::resolvePhotoEmbeds($html); $html = preg_replace_callback( '/<(t[dh])(\s[^>]*)?\sstyle="text-align:\s*(left|center|right);?"([^>]*)>/i', @@ -323,6 +334,27 @@ static function (array $m): string { return preg_replace('/]*\bclass=)/i', '
]*?)src="(?:https?:\/\/[^"]+)?(\/)?photo(-?\d+)_(\d+)"([^>]*)>/i', + static function (array $m): string { + $photo = (new Photos())->getByOwnerAndVID((int) $m[3], (int) $m[4]); + if (!$photo || $photo->isDeleted()) { + return $m[0]; + } + + $src = htmlspecialchars($photo->getURLBySizeId("normal"), ENT_QUOTES); + $href = htmlspecialchars($photo->getPageURL(), ENT_QUOTES); + + return ''; + }, + $html + ); + + return $replaced ?? $html; + } + public function getText(): string { if ($this->isMarkdown()) { @@ -372,18 +404,31 @@ private function checkAccessLevel(int $level, ?User $user): bool return false; } - $club = $this->getClub(); - if (!$club) { + if ($this->isClubNote()) { + $club = $this->getClub(); + if (!$club) { + return false; + } + + if ($level === self::ACCESS_ADMINS) { + return $club->canBeModifiedBy($user); + } + + return $club->getSubscriptionStatus($user) + || $club->canBeModifiedBy($user); + } + + $owner = $this->getOwner(); + if (!($owner instanceof User)) { return false; } if ($level === self::ACCESS_ADMINS) { - return $club->canBeModifiedBy($user); + return $this->canBeModifiedBy($user); } - // members - return $club->getSubscriptionStatus($user) - || $club->canBeModifiedBy($user); + return $owner->getId() === $user->getId() + || $owner->getSubscriptionStatus($user) === User::SUBSCRIPTION_MUTUAL; } public function canBeViewedBy(?User $user = null): bool @@ -427,6 +472,15 @@ public function canBeEditedBy(?User $user = null): bool return $this->canBeModifiedBy($user); } + public function canBeCommentedBy(?User $user = null): bool + { + if (!$user || !$this->canBeViewedBy($user)) { + return false; + } + + return $this->checkAccessLevel($this->getCommentAccess(), $user); + } + public function setRevisionEditor(int $userId): void { $this->revisionEditorId = $userId; @@ -489,7 +543,10 @@ public function save(?bool $log = false): void if ($isNew) { if (!isset($this->changes["format"])) { - $this->changes["format"] = $this->isClubNote() ? self::FORMAT_MARKDOWN : self::FORMAT_HTML; + $this->changes["format"] = self::FORMAT_MARKDOWN; + } + if (!isset($this->changes["comment_access"])) { + $this->changes["comment_access"] = self::ACCESS_EVERYONE; } if ($this->isClubNote()) { if (!isset($this->changes["view_access"])) { @@ -526,6 +583,7 @@ public function save(?bool $log = false): void "source" => $revSource, "created" => time(), ]); + (new Notes())->pruneRevisions($this, 50); } } diff --git a/Web/Models/Repositories/Notes.php b/Web/Models/Repositories/Notes.php index 3492bb199..b730ce175 100644 --- a/Web/Models/Repositories/Notes.php +++ b/Web/Models/Repositories/Notes.php @@ -152,4 +152,18 @@ public function getRevision(Note $note, int $revisionId): ?NoteRevision "note" => $note->getId(), ])->fetch()); } + + public function pruneRevisions(Note $note, int $keep = 50): void + { + $keepIds = []; + foreach ($this->revisions()->where("note", $note->getId())->order("created DESC")->limit($keep) as $row) { + $keepIds[] = (int) $row->id; + } + + if (sizeof($keepIds) === 0) { + return; + } + + $this->revisions()->where("note", $note->getId())->where("id NOT", $keepIds)->delete(); + } } diff --git a/Web/Presenters/CommentPresenter.php b/Web/Presenters/CommentPresenter.php index a860931fc..5c5c8cb2a 100644 --- a/Web/Presenters/CommentPresenter.php +++ b/Web/Presenters/CommentPresenter.php @@ -4,7 +4,7 @@ namespace openvk\Web\Presenters; -use openvk\Web\Models\Entities\{Comment, Notifications\MentionNotification, Photo, Video, User, Topic, Post}; +use openvk\Web\Models\Entities\{Comment, Notifications\MentionNotification, Photo, Video, User, Topic, Post, Note}; use openvk\Web\Models\Entities\Notifications\CommentNotification; use openvk\Web\Models\Repositories\{Comments, Clubs, Videos, Photos, Audios}; use Nette\InvalidStateException as ISE; @@ -66,6 +66,10 @@ public function renderMakeComment(string $repo, int $eId): void $this->flashFail("err", tr("error"), tr("forbidden")); } + if ($entity instanceof Note && !$entity->canBeCommentedBy($this->user->identity)) { + $this->flashFail("err", tr("error"), tr("forbidden")); + } + if ($entity instanceof Topic && $entity->isClosed()) { $this->notFound(); } diff --git a/Web/Presenters/NotesPresenter.php b/Web/Presenters/NotesPresenter.php index 2e0341191..612704245 100644 --- a/Web/Presenters/NotesPresenter.php +++ b/Web/Presenters/NotesPresenter.php @@ -4,28 +4,117 @@ namespace openvk\Web\Presenters; -use openvk\Web\Models\Repositories\{Users, Notes}; -use openvk\Web\Models\Entities\Note; +use Chandler\Database\DatabaseConnection; +use openvk\Web\Models\Entities\{Note, User}; +use openvk\Web\Models\Repositories\{Users, Notes, Clubs}; final class NotesPresenter extends OpenVKPresenter { - private $notes; + private Notes $notes; + private Clubs $clubs; protected $presenterName = "notes"; - public function __construct(Notes $notes) + public function __construct(Notes $notes, Clubs $clubs) { $this->notes = $notes; + $this->clubs = $clubs; parent::__construct(); } + private function isClubNotesRequest(): bool + { + $path = parse_url($_SERVER["REQUEST_URI"] ?? "", PHP_URL_PATH) ?: ""; + + return (bool) preg_match('#^/note(s)?-#', $path); + } + + private function getClubOrFail(int $id) + { + $club = $this->clubs->get($id); + if (!$club || $club->isBanned()) { + $this->notFound(); + } + + return $club; + } + + private function assertPagesEnabled($club): void + { + if (!$club->isPagesEnabled()) { + $this->notFound(); + } + } + + private function getClubNoteOrFail(int $clubId, int $virtualId): Note + { + $page = $this->notes->getNoteById(-$clubId, $virtualId); + if (!$page) { + $this->notFound(); + } + + return $page; + } + + private function postedName(): string + { + $title = trim((string) ($this->postParam("title") ?? "")); + if ($title !== "") { + return $title; + } + + return trim((string) ($this->postParam("name") ?? "")); + } + + private function postedSource(): string + { + if ($this->postedFormat() === Note::FORMAT_HTML) { + $html = $this->postParam("html"); + if ($html !== null) { + return (string) $html; + } + } + + $source = $this->postParam("source"); + if ($source !== null) { + return (string) $source; + } + + return (string) ($this->postParam("html") ?? ""); + } + + private function postedFormat(): int + { + $format = (int) ($this->postParam("format") ?? Note::FORMAT_MARKDOWN); + if ($format !== Note::FORMAT_HTML && $format !== Note::FORMAT_MARKDOWN) { + return Note::FORMAT_MARKDOWN; + } + + return $format; + } + + private function postedAccess(string $field, int $default): int + { + $value = (int) ($this->postParam($field) ?? $default); + if ($value < 0 || $value > 2) { + $this->flashFail("err", tr("error"), tr("error_segmentation")); + } + + return $value; + } + public function renderList(int $owner): void { + if ($this->isClubNotesRequest()) { + $this->renderClubList($owner); + return; + } + $user = (new Users())->get($owner); if (!$user) { $this->notFound(); } - if (!$user->getPrivacyPermission('notes.read', $this->user->identity ?? null)) { + if (!$user->getPrivacyPermission("notes.read", $this->user->identity ?? null)) { $this->flashFail("err", tr("forbidden"), tr("forbidden_comment")); } @@ -37,67 +126,59 @@ public function renderList(int $owner): void public function renderView(int $owner, int $note_id): void { + if ($this->isClubNotesRequest()) { + $this->renderClubView($owner, $note_id); + return; + } + $note = $this->notes->getNoteById($owner, $note_id); - if (!$note || $note->getOwner()->getId() !== $owner || $note->isDeleted()) { + if (!$note || $note->isDeleted()) { $this->notFound(); } - if (!$note->getOwner()->getPrivacyPermission('notes.read', $this->user->identity ?? null)) { + $noteOwner = $note->getOwner(); + if (!($noteOwner instanceof User) || $noteOwner->getId() !== $owner) { + $this->notFound(); + } + if (!$noteOwner->getPrivacyPermission("notes.read", $this->user->identity ?? null)) { $this->flashFail("err", tr("forbidden"), tr("forbidden_comment")); } if (!$note->canBeViewedBy($this->user->identity)) { $this->flashFail("err", tr("forbidden"), tr("forbidden_comment")); } - $this->template->cCount = $note->getCommentsCount(); - $this->template->cPage = (int) ($this->queryParam("p") ?? 1); - $this->template->comments = iterator_to_array($note->getComments($this->template->cPage)); - $this->template->note = $note; + $this->assignComments($note); + $this->template->note = $note; } - public function renderPreView(): void + public function renderCreate(?int $owner = null): void { $this->assertUserLoggedIn(); - $this->willExecuteWriteAction(); - if ($_SERVER["REQUEST_METHOD"] !== "POST") { - header("HTTP/1.1 400 Bad Request"); - exit; + if ($owner !== null && $this->isClubNotesRequest()) { + $this->renderClubCreate($owner); + return; } - if (empty($this->postParam("html")) || empty($this->postParam("title"))) { - header("HTTP/1.1 400 Bad Request"); - exit(tr("note_preview_empty_err")); - } - - $note = new Note(); - $note->setSource($this->postParam("html")); - - $this->flash("info", tr("note_preview_warn"), tr("note_preview_warn_details")); - $this->template->title = $this->postParam("title"); - $this->template->html = $note->getText(); - } - - public function renderCreate(): void - { - $this->assertUserLoggedIn(); - $this->willExecuteWriteAction(); - - $id = $this->user->id; #TODO: when ACL'll be done, allow admins to edit users via ?GUID=(chandler guid) - + $id = $this->user->id; if (!$id) { $this->notFound(); } if ($_SERVER["REQUEST_METHOD"] === "POST") { - if (empty($this->postParam("name"))) { - $this->flashFail("err", tr("error"), tr("error_segmentation")); + $this->willExecuteWriteAction(); + $this->assertNoCSRF(); + $name = $this->postedName(); + if ($name === "") { + $this->flashFail("err", tr("error"), tr("page_no_title")); } $note = new Note(); $note->setOwner($this->user->id); $note->setCreated(time()); - $note->setName($this->postParam("name")); - $note->setSource($this->postParam("html")); + $note->setName(ovk_proc_strtr($name, 255)); + $note->setSource($this->postedSource()); + $note->setFormat($this->postedFormat()); + $note->setComment_Access($this->postedAccess("comment_access", Note::ACCESS_EVERYONE)); $note->setEdited(time()); $note->save(); @@ -108,11 +189,14 @@ public function renderCreate(): void public function renderEdit(int $owner, int $note_id): void { $this->assertUserLoggedIn(); - $this->willExecuteWriteAction(); - $note = $this->notes->getNoteById($owner, $note_id); + if ($this->isClubNotesRequest()) { + $this->renderClubEdit($owner, $note_id); + return; + } - if (!$note || $note->getOwner()->getId() !== $owner || $note->isDeleted()) { + $note = $this->notes->getNoteById($owner, $note_id); + if (!$note || $note->isDeleted()) { $this->notFound(); } if (is_null($this->user->identity) || !$note->canBeModifiedBy($this->user->identity)) { @@ -121,12 +205,16 @@ public function renderEdit(int $owner, int $note_id): void $this->template->note = $note; if ($_SERVER["REQUEST_METHOD"] === "POST") { - if (empty($this->postParam("name"))) { - $this->flashFail("err", tr("error"), tr("error_segmentation")); + $this->willExecuteWriteAction(); + $this->assertNoCSRF(); + $name = $this->postedName(); + if ($name === "") { + $this->flashFail("err", tr("error"), tr("page_no_title")); } - $note->setName($this->postParam("name")); - $note->setSource($this->postParam("html")); + $note->setName(ovk_proc_strtr($name, 255)); + $note->setSource($this->postedSource()); + $note->setComment_Access($this->postedAccess("comment_access", $note->getCommentAccess())); $note->setCached_Content(null); $note->setEdited(time()); $note->save(); @@ -141,6 +229,11 @@ public function renderDelete(int $owner, int $id): void $this->willExecuteWriteAction(); $this->assertNoCSRF(); + if ($this->isClubNotesRequest()) { + $this->renderClubDelete($owner, $id); + return; + } + $note = $this->notes->get($id); if (!$note) { $this->notFound(); @@ -157,4 +250,399 @@ public function renderDelete(int $owner, int $id): void $this->flash("succ", tr("note_is_deleted"), tr("note_x_is_now_deleted", $name)); $this->redirect("/notes" . $this->user->id); } + + public function renderPreview(): void + { + $this->assertUserLoggedIn(); + $this->assertNoCSRF(); + + if ($_SERVER["REQUEST_METHOD"] !== "POST") { + header("HTTP/1.1 400 Bad Request"); + exit; + } + + $source = $this->postedSource(); + $format = $this->postedFormat(); + $clubId = (int) ($this->postParam("club") ?? 0); + + header("Content-Type: text/html; charset=utf-8"); + + if ($clubId > 0) { + $club = $this->clubs->get($clubId); + if (!$club || !$club->isPagesEnabled()) { + header("HTTP/1.1 404 Not Found"); + exit; + } + + exit(Note::renderMarkdown($source, $club)); + } + + if ($format === Note::FORMAT_HTML) { + $note = new Note(); + $note->setFormat(Note::FORMAT_HTML); + $note->setSource($source); + exit($note->getText()); + } + + $user = $this->user->identity instanceof User ? $this->user->identity : null; + exit(Note::renderMarkdown($source, null, $user)); + } + + public function renderSetMain(int $clubId, int $virtualId): void + { + if (!$this->isClubNotesRequest()) { + $this->notFound(); + } + + $this->assertUserLoggedIn(); + $this->willExecuteWriteAction(); + $this->assertNoCSRF(); + + $club = $this->getClubOrFail($clubId); + $this->assertPagesEnabled($club); + $page = $this->getClubNoteOrFail($clubId, $virtualId); + + if (!$club->canManagePages($this->user->identity)) { + $this->flashFail("err", tr("error_access_denied_short"), tr("error_access_denied")); + } + + $page->makeMain(); + $this->flash("succ", tr("success_action"), tr("page_set_main_succ")); + $this->redirect("/notes-" . $club->getId()); + } + + public function renderAccess(int $clubId, int $virtualId): void + { + if (!$this->isClubNotesRequest()) { + $this->notFound(); + } + + $this->assertUserLoggedIn(); + $this->willExecuteWriteAction(); + $this->assertNoCSRF(); + + $club = $this->getClubOrFail($clubId); + $this->assertPagesEnabled($club); + $page = $this->getClubNoteOrFail($clubId, $virtualId); + + if (!$club->canManagePages($this->user->identity) && !$page->canBeEditedBy($this->user->identity)) { + $this->flashFail("err", tr("error_access_denied_short"), tr("error_access_denied")); + } + + if ($_SERVER["REQUEST_METHOD"] !== "POST") { + $this->redirect($page->getURL() . "/edit"); + } + + $viewAccess = $this->postedAccess("view_access", 0); + $editAccess = $this->postedAccess("edit_access", 2); + $commentAccess = $this->postedAccess("comment_access", 0); + + DatabaseConnection::i()->getContext()->table("notes") + ->where("id", $page->getId()) + ->update([ + "view_access" => $viewAccess, + "edit_access" => $editAccess, + "comment_access" => $commentAccess, + ]); + + $this->flash("succ", tr("success_action"), tr("page_access_saved")); + $this->redirect($page->getURL() . "/edit"); + } + + public function renderHistory(int $clubId, int $virtualId): void + { + if (!$this->isClubNotesRequest()) { + $this->notFound(); + } + + $club = $this->getClubOrFail($clubId); + $this->assertPagesEnabled($club); + $page = $this->getClubNoteOrFail($clubId, $virtualId); + + if (!$page->canBeViewedBy($this->user->identity ?? null)) { + $this->flashFail("err", tr("error_access_denied_short"), tr("error_access_denied")); + } + + if (!$page->keepsRevisions()) { + $this->notFound(); + } + + $pageNum = (int) ($this->queryParam("p") ?? 1); + $this->template->_template = "Notes/ClubHistory.latte"; + $this->template->club = $club; + $this->template->page = $page; + $this->template->tab = "history"; + $this->template->revisions = $this->notes->getRevisions($page, $pageNum); + $this->template->count = $this->notes->getRevisionsCount($page); + $this->template->paginatorConf = (object) [ + "count" => $this->template->count, + "page" => $pageNum, + "amount" => null, + "perPage" => OPENVK_DEFAULT_PER_PAGE, + "tidy" => false, + "atTop" => false, + ]; + } + + public function renderRevision(int $clubId, int $virtualId, int $revisionId): void + { + if (!$this->isClubNotesRequest()) { + $this->notFound(); + } + + $club = $this->getClubOrFail($clubId); + $this->assertPagesEnabled($club); + $page = $this->getClubNoteOrFail($clubId, $virtualId); + + if (!$page->canBeViewedBy($this->user->identity ?? null)) { + $this->flashFail("err", tr("error_access_denied_short"), tr("error_access_denied")); + } + + if (!$page->keepsRevisions()) { + $this->notFound(); + } + + $revision = $this->notes->getRevision($page, $revisionId); + if (!$revision) { + $this->notFound(); + } + + $this->template->_template = "Notes/ClubRevision.latte"; + $this->template->club = $club; + $this->template->page = $page; + $this->template->revision = $revision; + $this->template->tab = "history"; + $this->template->html = Note::renderMarkdown($revision->getSource(), $club); + + if ($_SERVER["REQUEST_METHOD"] === "POST" && $this->postParam("restore") === "1") { + $this->assertUserLoggedIn(); + $this->willExecuteWriteAction(); + $this->assertNoCSRF(); + + if (!$page->canBeEditedBy($this->user->identity)) { + $this->flashFail("err", tr("error_access_denied_short"), tr("error_access_denied")); + } + + $page->setName($revision->getTitle()); + $page->setSource($revision->getSource()); + $page->setRevisionEditor($this->user->id); + $page->save(); + + $this->flash("succ", tr("success_action"), tr("page_restored")); + $this->redirect($page->getURL()); + } + } + + public function renderHelp(int $clubId): void + { + if (!$this->isClubNotesRequest()) { + $this->notFound(); + } + + $club = $this->getClubOrFail($clubId); + $this->assertPagesEnabled($club); + $this->template->_template = "Notes/ClubHelp.latte"; + $this->template->club = $club; + } + + private function assignComments(Note $note): void + { + $this->template->cCount = $note->getCommentsCount(); + $this->template->cPage = (int) ($this->queryParam("p") ?? 1); + $this->template->comments = iterator_to_array($note->getComments($this->template->cPage)); + } + + private function renderClubList(int $clubId): void + { + $club = $this->getClubOrFail($clubId); + $this->assertPagesEnabled($club); + $this->notes->ensureSingleMain($club); + + $perPage = OPENVK_DEFAULT_PER_PAGE; + $page = max(1, (int) ($this->queryParam("p") ?? 1)); + $count = $this->notes->getClubNotesCount($club); + $pageCount = max(1, (int) ceil($count / $perPage)); + if ($page > $pageCount) { + $page = $pageCount; + } + + $this->template->_template = "Notes/ClubList.latte"; + $this->template->club = $club; + $this->template->pages = $this->notes->getClubNotes($club, $page, $perPage); + $this->template->count = $count; + $this->template->page = $page; + $this->template->showingFrom = $count === 0 ? 0 : (($page - 1) * $perPage + 1); + $this->template->showingTo = min($page * $perPage, $count); + $this->template->paginatorConf = (object) [ + "count" => $count, + "page" => $page, + "amount" => null, + "perPage" => $perPage, + "tidy" => true, + "atTop" => true, + "space" => 6, + "pageCount" => $pageCount, + ]; + $this->template->bottomPaginatorConf = clone $this->template->paginatorConf; + $this->template->bottomPaginatorConf->atTop = false; + $this->template->bottomPaginatorConf->atBottom = true; + $this->template->bottomPaginatorConf->tidy = false; + $this->template->bottomPaginatorConf->space = 11; + } + + private function renderClubCreate(int $clubId): void + { + $club = $this->getClubOrFail($clubId); + $this->assertPagesEnabled($club); + + if (!$club->canCreatePages($this->user->identity)) { + $this->flashFail("err", tr("error_access_denied_short"), tr("error_access_denied")); + } + + $this->template->_template = "Notes/ClubCreate.latte"; + $this->template->club = $club; + $this->template->prefillTitle = $this->queryParam("title") ?? ""; + + if ($_SERVER["REQUEST_METHOD"] !== "POST") { + return; + } + + $this->willExecuteWriteAction(); + $this->assertNoCSRF(); + $title = $this->postedName(); + $source = $this->postedSource(); + + if ($title === "") { + $this->flashFail("err", tr("error"), tr("page_no_title")); + } + + if (mb_strlen($title) > 255) { + $this->flashFail("err", tr("error"), tr("page_title_too_long")); + } + + $existing = $this->notes->getByTitle(-$club->getId(), $title); + if ($existing) { + $this->flashFail("err", tr("error"), tr("page_title_exists")); + } + + $isFirst = $this->notes->getClubNotesCount($club) === 0; + $viewAccess = $this->postedAccess("view_access", Note::ACCESS_EVERYONE); + $editAccess = $this->postedAccess("edit_access", Note::ACCESS_ADMINS); + $commentAccess = $this->postedAccess("comment_access", Note::ACCESS_EVERYONE); + $keepRevisions = $this->postParam("keep_revisions") === "1" ? 1 : 0; + + $page = new Note(); + $page->setOwner(-$club->getId()); + $page->setCreated_By($this->user->id); + $page->setName(ovk_proc_strtr($title, 255)); + $page->setSource($source); + $page->setFormat(Note::FORMAT_MARKDOWN); + $page->setIs_Main($isFirst ? 1 : 0); + $page->setView_Access($viewAccess); + $page->setEdit_Access($editAccess); + $page->setComment_Access($commentAccess); + $page->setKeep_Revisions($keepRevisions); + $page->setRevisionEditor($this->user->id); + $page->save(); + + if ($isFirst) { + $page->makeMain(); + } + + $this->redirect($page->getURL()); + } + + private function renderClubView(int $clubId, int $virtualId): void + { + $club = $this->getClubOrFail($clubId); + $this->assertPagesEnabled($club); + $page = $this->getClubNoteOrFail($clubId, $virtualId); + + if (!$page->canBeViewedBy($this->user->identity ?? null)) { + $this->flashFail("err", tr("error_access_denied_short"), tr("error_access_denied")); + } + + $this->assignComments($page); + $this->template->_template = "Notes/ClubView.latte"; + $this->template->club = $club; + $this->template->page = $page; + $this->template->tab = "view"; + } + + private function renderClubEdit(int $clubId, int $virtualId): void + { + $club = $this->getClubOrFail($clubId); + $this->assertPagesEnabled($club); + $page = $this->getClubNoteOrFail($clubId, $virtualId); + + if (!$page->canBeEditedBy($this->user->identity)) { + $this->flashFail("err", tr("error_access_denied_short"), tr("error_access_denied")); + } + + $this->template->_template = "Notes/ClubEdit.latte"; + $this->template->club = $club; + $this->template->page = $page; + $this->template->tab = "edit"; + + if ($_SERVER["REQUEST_METHOD"] !== "POST") { + return; + } + + $this->willExecuteWriteAction(); + $this->assertNoCSRF(); + $title = $this->postedName(); + $source = $this->postedSource(); + + if ($title === "") { + $this->flashFail("err", tr("error"), tr("page_no_title")); + } + + if (mb_strlen($title) > 255) { + $this->flashFail("err", tr("error"), tr("page_title_too_long")); + } + + $existing = $this->notes->getByTitle(-$club->getId(), $title); + if ($existing && $existing->getId() !== $page->getId()) { + $this->flashFail("err", tr("error"), tr("page_title_exists")); + } + + if ($this->postParam("keep_revisions") !== null) { + $page->setKeep_Revisions($this->postParam("keep_revisions") === "1" ? 1 : 0); + } + + $page->setName(ovk_proc_strtr($title, 255)); + $page->setSource($source); + $page->setRevisionEditor($this->user->id); + $page->save(); + + $this->redirect($page->getURL()); + } + + private function renderClubDelete(int $clubId, int $virtualId): void + { + $club = $this->getClubOrFail($clubId); + $this->assertPagesEnabled($club); + $page = $this->getClubNoteOrFail($clubId, $virtualId); + + if (!$page->canBeEditedBy($this->user->identity) && !$club->canManagePages($this->user->identity)) { + $this->flashFail("err", tr("error_access_denied_short"), tr("error_access_denied")); + } + + if (!$club->canBeModifiedBy($this->user->identity)) { + $this->flashFail("err", tr("error_access_denied_short"), tr("error_access_denied")); + } + + $wasMain = $page->isMain(); + $page->delete(); + + if ($wasMain) { + $pages = iterator_to_array($this->notes->getClubNotes($club, 1, 1)); + if (isset($pages[0])) { + $pages[0]->makeMain(); + } + } + + $this->flash("succ", tr("page_deleted"), tr("page_deleted_descr")); + $this->redirect("/notes-" . $club->getId()); + } } diff --git a/Web/Presenters/PagesPresenter.php b/Web/Presenters/PagesPresenter.php deleted file mode 100644 index e6d5c600c..000000000 --- a/Web/Presenters/PagesPresenter.php +++ /dev/null @@ -1,404 +0,0 @@ -notes = $notes; - $this->clubs = $clubs; - - parent::__construct(); - } - - private function getClubOrFail(int $id) - { - $club = $this->clubs->get($id); - if (!$club || $club->isBanned()) { - $this->notFound(); - } - - return $club; - } - - private function assertPagesEnabled($club): void - { - if (!$club->isPagesEnabled()) { - $this->notFound(); - } - } - - private function getPageOrFail(int $clubId, int $virtualId): Note - { - $page = $this->notes->getNoteById(-$clubId, $virtualId); - if (!$page) { - $this->notFound(); - } - - return $page; - } - - public function renderList(int $clubId): void - { - $club = $this->getClubOrFail($clubId); - $this->assertPagesEnabled($club); - $this->notes->ensureSingleMain($club); - - $perPage = OPENVK_DEFAULT_PER_PAGE; - $page = max(1, (int) ($this->queryParam("p") ?? 1)); - $count = $this->notes->getClubNotesCount($club); - $pageCount = max(1, (int) ceil($count / $perPage)); - if ($page > $pageCount) { - $page = $pageCount; - } - - $this->template->club = $club; - $this->template->pages = $this->notes->getClubNotes($club, $page, $perPage); - $this->template->count = $count; - $this->template->page = $page; - $this->template->showingFrom = $count === 0 ? 0 : (($page - 1) * $perPage + 1); - $this->template->showingTo = min($page * $perPage, $count); - $this->template->paginatorConf = (object) [ - "count" => $count, - "page" => $page, - "amount" => null, - "perPage" => $perPage, - "tidy" => true, - "atTop" => true, - "space" => 6, - "pageCount" => $pageCount, - ]; - $this->template->bottomPaginatorConf = clone $this->template->paginatorConf; - $this->template->bottomPaginatorConf->atTop = false; - $this->template->bottomPaginatorConf->atBottom = true; - $this->template->bottomPaginatorConf->tidy = false; - $this->template->bottomPaginatorConf->space = 11; - } - - public function renderCreate(int $clubId): void - { - $this->assertUserLoggedIn(); - - $club = $this->getClubOrFail($clubId); - $this->assertPagesEnabled($club); - - if (!$club->canCreatePages($this->user->identity)) { - $this->flashFail("err", tr("error_access_denied_short"), tr("error_access_denied")); - } - - $this->template->club = $club; - $this->template->prefillTitle = $this->queryParam("title") ?? ""; - - if ($_SERVER["REQUEST_METHOD"] === "POST") { - $this->willExecuteWriteAction(); - $this->assertNoCSRF(); - $title = trim((string) $this->postParam("title")); - $source = (string) ($this->postParam("source") ?? ""); - - if ($title === "") { - $this->flashFail("err", tr("error"), tr("page_no_title")); - } - - if (mb_strlen($title) > 255) { - $this->flashFail("err", tr("error"), tr("page_title_too_long")); - } - - $existing = $this->notes->getByTitle(-$club->getId(), $title); - if ($existing) { - $this->flashFail("err", tr("error"), tr("page_title_exists")); - } - - $isFirst = $this->notes->getClubNotesCount($club) === 0; - $viewAccess = (int) ($this->postParam("view_access") ?? Note::ACCESS_EVERYONE); - $editAccess = (int) ($this->postParam("edit_access") ?? Note::ACCESS_ADMINS); - if ($viewAccess < 0 || $viewAccess > 2 || $editAccess < 0 || $editAccess > 2) { - $this->flashFail("err", tr("error"), tr("error_segmentation")); - } - - $keepRevisions = $this->postParam("keep_revisions") === "1" ? 1 : 0; - - $page = new Note(); - $page->setOwner(-$club->getId()); - $page->setCreated_By($this->user->id); - $page->setName(ovk_proc_strtr($title, 255)); - $page->setSource($source); - $page->setFormat(Note::FORMAT_MARKDOWN); - $page->setIs_Main($isFirst ? 1 : 0); - $page->setView_Access($viewAccess); - $page->setEdit_Access($editAccess); - $page->setKeep_Revisions($keepRevisions); - $page->setRevisionEditor($this->user->id); - $page->save(); - - if ($isFirst) { - $page->makeMain(); - } - - $this->redirect($page->getURL()); - } - } - - public function renderView(int $clubId, int $virtualId): void - { - $club = $this->getClubOrFail($clubId); - $this->assertPagesEnabled($club); - $page = $this->getPageOrFail($clubId, $virtualId); - - if (!$page->canBeViewedBy($this->user->identity ?? null)) { - $this->flashFail("err", tr("error_access_denied_short"), tr("error_access_denied")); - } - - $this->template->club = $club; - $this->template->page = $page; - $this->template->tab = "view"; - } - - public function renderEdit(int $clubId, int $virtualId): void - { - $this->assertUserLoggedIn(); - - $club = $this->getClubOrFail($clubId); - $this->assertPagesEnabled($club); - $page = $this->getPageOrFail($clubId, $virtualId); - - if (!$page->canBeEditedBy($this->user->identity)) { - $this->flashFail("err", tr("error_access_denied_short"), tr("error_access_denied")); - } - - $this->template->club = $club; - $this->template->page = $page; - $this->template->tab = "edit"; - - if ($_SERVER["REQUEST_METHOD"] === "POST") { - $this->willExecuteWriteAction(); - $this->assertNoCSRF(); - $title = trim((string) $this->postParam("title")); - $source = (string) ($this->postParam("source") ?? ""); - - if ($title === "") { - $this->flashFail("err", tr("error"), tr("page_no_title")); - } - - if (mb_strlen($title) > 255) { - $this->flashFail("err", tr("error"), tr("page_title_too_long")); - } - - $existing = $this->notes->getByTitle(-$club->getId(), $title); - if ($existing && $existing->getId() !== $page->getId()) { - $this->flashFail("err", tr("error"), tr("page_title_exists")); - } - - if ($this->postParam("keep_revisions") !== null) { - $page->setKeep_Revisions($this->postParam("keep_revisions") === "1" ? 1 : 0); - } - - $page->setName(ovk_proc_strtr($title, 255)); - $page->setSource($source); - $page->setRevisionEditor($this->user->id); - $page->save(); - - $this->redirect($page->getURL()); - } - } - - public function renderDelete(int $clubId, int $virtualId): void - { - $this->assertUserLoggedIn(); - $this->willExecuteWriteAction(); - $this->assertNoCSRF(); - - $club = $this->getClubOrFail($clubId); - $this->assertPagesEnabled($club); - $page = $this->getPageOrFail($clubId, $virtualId); - - if (!$page->canBeEditedBy($this->user->identity) && !$club->canManagePages($this->user->identity)) { - $this->flashFail("err", tr("error_access_denied_short"), tr("error_access_denied")); - } - - // Only managers can delete - if (!$club->canBeModifiedBy($this->user->identity)) { - $this->flashFail("err", tr("error_access_denied_short"), tr("error_access_denied")); - } - - $wasMain = $page->isMain(); - $page->delete(); - - if ($wasMain) { - $pages = iterator_to_array($this->notes->getClubNotes($club, 1, 1)); - if (isset($pages[0])) { - $pages[0]->makeMain(); - } - } - - $this->flash("succ", tr("page_deleted"), tr("page_deleted_descr")); - $this->redirect("/notes-" . $club->getId()); - } - - public function renderSetMain(int $clubId, int $virtualId): void - { - $this->assertUserLoggedIn(); - $this->willExecuteWriteAction(); - $this->assertNoCSRF(); - - $club = $this->getClubOrFail($clubId); - $this->assertPagesEnabled($club); - $page = $this->getPageOrFail($clubId, $virtualId); - - if (!$club->canManagePages($this->user->identity)) { - $this->flashFail("err", tr("error_access_denied_short"), tr("error_access_denied")); - } - - $page->makeMain(); - $this->flash("succ", tr("success_action"), tr("page_set_main_succ")); - $this->redirect("/notes-" . $club->getId()); - } - - public function renderAccess(int $clubId, int $virtualId): void - { - $this->assertUserLoggedIn(); - $this->willExecuteWriteAction(); - $this->assertNoCSRF(); - - $club = $this->getClubOrFail($clubId); - $this->assertPagesEnabled($club); - $page = $this->getPageOrFail($clubId, $virtualId); - - if (!$club->canManagePages($this->user->identity) && !$page->canBeEditedBy($this->user->identity)) { - $this->flashFail("err", tr("error_access_denied_short"), tr("error_access_denied")); - } - - if ($_SERVER["REQUEST_METHOD"] !== "POST") { - $this->redirect($page->getURL() . "/edit"); - } - - $viewAccess = (int) ($this->postParam("view_access") ?? 0); - $editAccess = (int) ($this->postParam("edit_access") ?? 2); - - if ($viewAccess < 0 || $viewAccess > 2 || $editAccess < 0 || $editAccess > 2) { - $this->flashFail("err", tr("error"), tr("error_segmentation")); - } - - // Avoid creating a content revision for ACL-only change - \Chandler\Database\DatabaseConnection::i()->getContext()->table("notes") - ->where("id", $page->getId()) - ->update([ - "view_access" => $viewAccess, - "edit_access" => $editAccess, - ]); - - $this->flash("succ", tr("success_action"), tr("page_access_saved")); - $this->redirect($page->getURL() . "/edit"); - } - - public function renderHistory(int $clubId, int $virtualId): void - { - $club = $this->getClubOrFail($clubId); - $this->assertPagesEnabled($club); - $page = $this->getPageOrFail($clubId, $virtualId); - - if (!$page->canBeViewedBy($this->user->identity ?? null)) { - $this->flashFail("err", tr("error_access_denied_short"), tr("error_access_denied")); - } - - if (!$page->keepsRevisions()) { - $this->notFound(); - } - - $pageNum = (int) ($this->queryParam("p") ?? 1); - $this->template->club = $club; - $this->template->page = $page; - $this->template->tab = "history"; - $this->template->revisions = $this->notes->getRevisions($page, $pageNum); - $this->template->count = $this->notes->getRevisionsCount($page); - $this->template->paginatorConf = (object) [ - "count" => $this->template->count, - "page" => $pageNum, - "amount" => null, - "perPage" => OPENVK_DEFAULT_PER_PAGE, - "tidy" => false, - "atTop" => false, - ]; - } - - public function renderRevision(int $clubId, int $virtualId, int $revisionId): void - { - $club = $this->getClubOrFail($clubId); - $this->assertPagesEnabled($club); - $page = $this->getPageOrFail($clubId, $virtualId); - - if (!$page->canBeViewedBy($this->user->identity ?? null)) { - $this->flashFail("err", tr("error_access_denied_short"), tr("error_access_denied")); - } - - if (!$page->keepsRevisions()) { - $this->notFound(); - } - - $revision = $this->notes->getRevision($page, $revisionId); - if (!$revision) { - $this->notFound(); - } - - $this->template->club = $club; - $this->template->page = $page; - $this->template->revision = $revision; - $this->template->tab = "history"; - $this->template->html = Note::renderMarkdown($revision->getSource(), $club); - - if ($_SERVER["REQUEST_METHOD"] === "POST" && $this->postParam("restore") === "1") { - $this->assertUserLoggedIn(); - $this->willExecuteWriteAction(); - $this->assertNoCSRF(); - - if (!$page->canBeEditedBy($this->user->identity)) { - $this->flashFail("err", tr("error_access_denied_short"), tr("error_access_denied")); - } - - $page->setName($revision->getTitle()); - $page->setSource($revision->getSource()); - $page->setRevisionEditor($this->user->id); - $page->save(); - - $this->flash("succ", tr("success_action"), tr("page_restored")); - $this->redirect($page->getURL()); - } - } - - public function renderPreview(): void - { - $this->assertUserLoggedIn(); - - if ($_SERVER["REQUEST_METHOD"] !== "POST") { - header("HTTP/1.1 400 Bad Request"); - exit; - } - - $clubId = (int) ($this->postParam("club") ?? 0); - $club = $this->clubs->get($clubId); - if (!$club || !$club->isPagesEnabled()) { - header("HTTP/1.1 404 Not Found"); - exit; - } - - $source = (string) ($this->postParam("source") ?? ""); - header("Content-Type: text/html; charset=utf-8"); - exit(Note::renderMarkdown($source, $club)); - } - - public function renderHelp(int $clubId): void - { - $club = $this->getClubOrFail($clubId); - $this->assertPagesEnabled($club); - $this->template->club = $club; - } -} diff --git a/Web/Presenters/templates/Group/Edit.latte b/Web/Presenters/templates/Group/Edit.latte index 3828101c4..0f112b19b 100644 --- a/Web/Presenters/templates/Group/Edit.latte +++ b/Web/Presenters/templates/Group/Edit.latte @@ -135,6 +135,9 @@
{_materials_hint}
+ diff --git a/Web/Presenters/templates/Pages/Create.latte b/Web/Presenters/templates/Notes/ClubCreate.latte similarity index 94% rename from Web/Presenters/templates/Pages/Create.latte rename to Web/Presenters/templates/Notes/ClubCreate.latte index b1f16d79e..ac7f51da7 100644 --- a/Web/Presenters/templates/Pages/Create.latte +++ b/Web/Presenters/templates/Notes/ClubCreate.latte @@ -11,12 +11,13 @@ {/block} {block content} -{include "listTabs.latte", club => $club, mode => 'create'} +{include "clubListTabs.latte", club => $club, mode => 'create'} +
@@ -28,7 +29,7 @@ - + diff --git a/Web/Presenters/templates/Pages/Edit.latte b/Web/Presenters/templates/Notes/ClubEdit.latte similarity index 95% rename from Web/Presenters/templates/Pages/Edit.latte rename to Web/Presenters/templates/Notes/ClubEdit.latte index eeba46dfb..a033ef7d6 100644 --- a/Web/Presenters/templates/Pages/Edit.latte +++ b/Web/Presenters/templates/Notes/ClubEdit.latte @@ -11,7 +11,7 @@ {/block} {block content} -{include "tabs.latte", club => $club, page => $page, tab => $tab} +{include "clubTabs.latte", club => $club, page => $page, tab => $tab} @@ -29,7 +29,7 @@ - + @@ -39,7 +39,7 @@
]*\bclass=)/i', '
]*?)src="(?:https?:\/\/[^"]+)?(\/)?photo(-?\d+)_(\d+)"([^>]*)>/i', - static function (array $m): string { - $photo = (new Photos())->getByOwnerAndVID((int) $m[3], (int) $m[4]); - if (!$photo || $photo->isDeleted()) { + '/]*?)src="(?:(?:https?:)?\/\/[^\/"]+)?\/?photo(-?\d+)_(\d+)"([^>]*)>/i', + static function (array $m) use ($viewer): string { + $photo = (new Photos())->getByOwnerAndVID((int) $m[2], (int) $m[3]); + if (!$photo || $photo->isDeleted() || !$photo->canBeViewedBy($viewer)) { return $m[0]; } $src = htmlspecialchars($photo->getURLBySizeId("normal"), ENT_QUOTES); $href = htmlspecialchars($photo->getPageURL(), ENT_QUOTES); - return ''; + return ''; }, $html ); @@ -355,14 +358,19 @@ static function (array $m): string { return $replaced ?? $html; } - public function getText(): string + public function getText(User|int|null $viewer = null): string { + if (is_int($viewer)) { + $viewer = null; + } + if ($this->isMarkdown()) { if (is_null($this->getRecord())) { return self::renderMarkdown( $this->getSource(), $this->getClub(), - $this->isClubNote() ? null : ($this->getCreatedBy() ?? null) + $this->isClubNote() ? null : ($this->getCreatedBy() ?? null), + $viewer ); } @@ -377,7 +385,7 @@ public function getText(): string parent::save(false); } - return $cached; + return self::resolvePhotoEmbeds($cached, $viewer); } if (is_null($this->getRecord())) { diff --git a/Web/Presenters/NotesPresenter.php b/Web/Presenters/NotesPresenter.php index 612704245..8b6c7492f 100644 --- a/Web/Presenters/NotesPresenter.php +++ b/Web/Presenters/NotesPresenter.php @@ -5,7 +5,7 @@ namespace openvk\Web\Presenters; use Chandler\Database\DatabaseConnection; -use openvk\Web\Models\Entities\{Note, User}; +use openvk\Web\Models\Entities\{Club, Note, User}; use openvk\Web\Models\Repositories\{Users, Notes, Clubs}; final class NotesPresenter extends OpenVKPresenter @@ -66,9 +66,9 @@ private function postedName(): string return trim((string) ($this->postParam("name") ?? "")); } - private function postedSource(): string + private function postedSource(bool $allowHtmlFormat = true): string { - if ($this->postedFormat() === Note::FORMAT_HTML) { + if ($allowHtmlFormat && $this->postedFormat() === Note::FORMAT_HTML) { $html = $this->postParam("html"); if ($html !== null) { return (string) $html; @@ -80,6 +80,10 @@ private function postedSource(): string return (string) $source; } + if (!$allowHtmlFormat) { + return ""; + } + return (string) ($this->postParam("html") ?? ""); } @@ -264,28 +268,32 @@ public function renderPreview(): void $source = $this->postedSource(); $format = $this->postedFormat(); $clubId = (int) ($this->postParam("club") ?? 0); + $viewer = $this->user->identity instanceof User ? $this->user->identity : null; header("Content-Type: text/html; charset=utf-8"); if ($clubId > 0) { $club = $this->clubs->get($clubId); - if (!$club || !$club->isPagesEnabled()) { + if (!$club || $club->isBanned() || !$club->isPagesEnabled()) { header("HTTP/1.1 404 Not Found"); exit; } + if (!$this->canPreviewClubWiki($club)) { + header("HTTP/1.1 403 Forbidden"); + exit; + } - exit(Note::renderMarkdown($source, $club)); + exit(Note::renderMarkdown($source, $club, null, $viewer)); } if ($format === Note::FORMAT_HTML) { $note = new Note(); $note->setFormat(Note::FORMAT_HTML); $note->setSource($source); - exit($note->getText()); + exit($note->getText($viewer)); } - $user = $this->user->identity instanceof User ? $this->user->identity : null; - exit(Note::renderMarkdown($source, null, $user)); + exit(Note::renderMarkdown($source, null, $viewer, $viewer)); } public function renderSetMain(int $clubId, int $virtualId): void @@ -412,7 +420,8 @@ public function renderRevision(int $clubId, int $virtualId, int $revisionId): vo $this->template->page = $page; $this->template->revision = $revision; $this->template->tab = "history"; - $this->template->html = Note::renderMarkdown($revision->getSource(), $club); + $viewer = $this->user->identity instanceof User ? $this->user->identity : null; + $this->template->html = Note::renderMarkdown($revision->getSource(), $club, null, $viewer); if ($_SERVER["REQUEST_METHOD"] === "POST" && $this->postParam("restore") === "1") { $this->assertUserLoggedIn(); @@ -445,6 +454,18 @@ public function renderHelp(int $clubId): void $this->template->club = $club; } + private function canPreviewClubWiki(Club $club): bool + { + $user = $this->user->identity; + if (!$user instanceof User) { + return false; + } + + return $club->canCreatePages($user) + || $club->canManagePages($user) + || $club->getSubscriptionStatus($user); + } + private function assignComments(Note $note): void { $this->template->cCount = $note->getCommentsCount(); @@ -510,7 +531,7 @@ private function renderClubCreate(int $clubId): void $this->willExecuteWriteAction(); $this->assertNoCSRF(); $title = $this->postedName(); - $source = $this->postedSource(); + $source = $this->postedSource(false); if ($title === "") { $this->flashFail("err", tr("error"), tr("page_no_title")); @@ -591,7 +612,7 @@ private function renderClubEdit(int $clubId, int $virtualId): void $this->willExecuteWriteAction(); $this->assertNoCSRF(); $title = $this->postedName(); - $source = $this->postedSource(); + $source = $this->postedSource(false); if ($title === "") { $this->flashFail("err", tr("error"), tr("page_no_title")); diff --git a/Web/Presenters/templates/Group/View.latte b/Web/Presenters/templates/Group/View.latte index 00abeeb4c..36e2085b9 100644 --- a/Web/Presenters/templates/Group/View.latte +++ b/Web/Presenters/templates/Group/View.latte @@ -97,7 +97,7 @@
{$mainPage->getTitle()}
- {$mainPage->getText()|noescape} + {$mainPage->getText($thisUser ?? null)|noescape}
diff --git a/Web/Presenters/templates/Notes/ClubView.latte b/Web/Presenters/templates/Notes/ClubView.latte index 43b0401e5..897d47517 100644 --- a/Web/Presenters/templates/Notes/ClubView.latte +++ b/Web/Presenters/templates/Notes/ClubView.latte @@ -16,7 +16,7 @@

{$page->getTitle()}

- {$page->getText()|noescape} + {$page->getText($thisUser ?? null)|noescape}
diff --git a/Web/Presenters/templates/Notes/List.latte b/Web/Presenters/templates/Notes/List.latte index 4b62f2513..cb99d243f 100644 --- a/Web/Presenters/templates/Notes/List.latte +++ b/Web/Presenters/templates/Notes/List.latte @@ -83,7 +83,7 @@
- {$dat->getText(750)|noescape} + {$dat->getText($thisUser ?? null)|noescape}
- {$note->getText()|noescape} + {$note->getText($thisUser ?? null)|noescape}
diff --git a/Web/Presenters/templates/Report/content/note.latte b/Web/Presenters/templates/Report/content/note.latte index f4f2e054b..87e2da637 100644 --- a/Web/Presenters/templates/Report/content/note.latte +++ b/Web/Presenters/templates/Report/content/note.latte @@ -12,7 +12,7 @@
- {$note->getText()|noescape} + {$note->getText($thisUser ?? null)|noescape}
{/block} diff --git a/Web/static/css/gpages.css b/Web/static/css/gpages.css index a51da079c..842abc543 100644 --- a/Web/static/css/gpages.css +++ b/Web/static/css/gpages.css @@ -311,9 +311,10 @@ align-items: center; width: 100%; max-width: 100%; + box-sizing: border-box; margin-top: 14px; margin-bottom: 6px; - padding-top: 2px; + padding: 2px 10px 6px; } .page_edit_footer_right { diff --git a/Web/static/js/al_pages.js b/Web/static/js/al_pages.js index 16984b311..4477850db 100644 --- a/Web/static/js/al_pages.js +++ b/Web/static/js/al_pages.js @@ -101,22 +101,123 @@ window.OpenVKPages = (function () { } function insertPhoto() { - var raw = window.prompt(tr("page_photo_prompt"), "photo"); - if (raw === null) { + if (typeof CMessageBox === "undefined" || !window.OVKAPI || !window.OVKAPI.call) { + insertMarkdown("![|](url)"); return; } - raw = raw.trim().replace(/^\/+/, ""); - if (!raw) { - return; - } - if (/^-?\d+_\d+$/.test(raw)) { - raw = "photo" + raw; - } - if (/^photo-?\d+_\d+$/i.test(raw)) { - insertMarkdown("![|](/" + raw + ")"); - return; + + var preview = document.getElementById("page_preview"); + var club = Number((preview && preview.getAttribute("data-club")) || 0); + var albumOwner = club ? -Math.abs(club) : window.openvk.current_id; + var photosPerPage = 23; + + var msg = new CMessageBox({ + title: tr("select_photo"), + body: + "
" + + "
" + + "" + + "
" + + "
" + + "

" + tr("is_x_photos", 0) + "

" + + "
" + + "
" + + "
", + buttons: [tr("close")], + callbacks: [Function.noop], + unique_name: "page_photo_picker" + }); + + msg.getNode().attr("style", "width: 630px;"); + msg.getNode().find(".ovk-diag-body").attr("style", "height:335px;padding:0px;"); + + async function receivePhotos(page, album) { + album = album || 0; + u("#gif_loader").remove(); + u("#attachment_insert").append("
"); + var insertPlace = u("#attachment_insert .photosList"); + var photos; + + try { + if (album == 0) { + photos = await window.OVKAPI.call("photos.getAll", { + owner_id: window.openvk.current_id, + photo_sizes: 1, + count: photosPerPage, + offset: page * photosPerPage + }); + } else { + photos = await window.OVKAPI.call("photos.get", { + owner_id: albumOwner, + album_id: album, + photo_sizes: 1, + count: photosPerPage, + offset: page * photosPerPage + }); + } + } catch (e) { + u("#attachment_insert_count h4").html(tr("is_x_photos", -1)); + u("#gif_loader").remove(); + insertPlace.html("Invalid album"); + return; + } + + u("#attachment_insert_count h4").html(tr("is_x_photos", photos.count)); + u("#gif_loader").remove(); + var pagesCount = Math.ceil(Number(photos.count) / photosPerPage); + (photos.items || []).forEach(function (photo) { + var ownerId = Number(photo.owner_id); + var photoId = Number(photo.id); + if (!Number.isFinite(ownerId) || !Number.isFinite(photoId)) { + return; + } + + insertPlace.append( + "" + + "" + + "" + ); + }); + + if (page < pagesCount - 1) { + insertPlace.append( + "
" + + "" + tr("show_more") + "" + + "
" + ); + } } - insertMarkdown("![|](" + raw + ")"); + + u(".ovk-diag-body .attachment_selector").on("change", ".topGrayBlock #albumSelect", function (ev) { + u("#attachment_insert .photosList").html(""); + receivePhotos(0, ev.target.value); + }); + + u(".ovk-diag-body .attachment_selector").on("click", "#show_more", async function (ev) { + var target = u(ev.target).closest("#show_more"); + target.addClass("lagged"); + await receivePhotos(Number(target.nodes[0].dataset.page), u(".topGrayBlock #albumSelect").nodes[0].value); + target.remove(); + }); + + u(".ovk-diag-body .attachment_selector").on("click", ".album-photo", function (ev) { + ev.preventDefault(); + ev.stopPropagation(); + var id = u(ev.target).closest(".album-photo").nodes[0].dataset.attachmentdata; + insertMarkdown("![|](/photo" + id + ")"); + msg.close(); + }); + + receivePhotos(0); + window.OVKAPI.call("photos.getAlbums", { owner_id: albumOwner }).then(function (albums) { + (albums.items || []).forEach(function (item) { + u(".ovk-diag-body #albumSelect").append( + "" + ); + }); + }).catch(Function.noop); } function wrapAlign(align) { @@ -408,7 +509,7 @@ window.OpenVKPages = (function () { if (title.value === "") { e.preventDefault(); title.focus(); - window.alert(tr("page_no_title")); + fastError(tr("page_no_title")); } }); } diff --git a/install/sqls/00065-notes-as-wiki.sql b/install/sqls/00065-notes-as-wiki.sql index fece4e9f7..02fb9c974 100644 --- a/install/sqls/00065-notes-as-wiki.sql +++ b/install/sqls/00065-notes-as-wiki.sql @@ -8,7 +8,8 @@ ALTER TABLE `notes` ADD COLUMN `is_main` TINYINT(1) UNSIGNED NOT NULL DEFAULT 0 AFTER `deleted`, ADD COLUMN `view_access` TINYINT(1) UNSIGNED NOT NULL DEFAULT 0 AFTER `is_main`, ADD COLUMN `edit_access` TINYINT(1) UNSIGNED NOT NULL DEFAULT 2 AFTER `view_access`, - ADD COLUMN `keep_revisions` TINYINT(1) UNSIGNED NOT NULL DEFAULT 0 AFTER `edit_access`; + ADD COLUMN `comment_access` TINYINT(1) UNSIGNED NOT NULL DEFAULT 0 AFTER `edit_access`, + ADD COLUMN `keep_revisions` TINYINT(1) UNSIGNED NOT NULL DEFAULT 0 AFTER `comment_access`; ALTER TABLE `notes` ADD KEY `owner_deleted_main` (`owner`, `deleted`, `is_main`); diff --git a/install/sqls/00066-note-comment-access.sql b/install/sqls/00066-note-comment-access.sql deleted file mode 100644 index 9001b3f15..000000000 --- a/install/sqls/00066-note-comment-access.sql +++ /dev/null @@ -1,2 +0,0 @@ -ALTER TABLE `notes` - ADD COLUMN `comment_access` TINYINT(1) UNSIGNED NOT NULL DEFAULT 0 AFTER `edit_access`; diff --git a/locales/en.strings b/locales/en.strings index ca0e54795..7b6b22c62 100644 --- a/locales/en.strings +++ b/locales/en.strings @@ -1576,7 +1576,6 @@ "note_format" = "Format"; "note_format_markdown" = "Markdown"; "note_format_html" = "HTML"; -"page_photo_prompt" = "Photo ID (photoOWNER_VID):"; "page_access_saved" = "Access settings saved."; "page_access_denied" = "You do not have permission to view this page."; "page_no_revisions" = "No revisions yet."; diff --git a/locales/ru.strings b/locales/ru.strings index d0b8be1a3..de18ac138 100644 --- a/locales/ru.strings +++ b/locales/ru.strings @@ -1497,7 +1497,6 @@ "note_format" = "Формат"; "note_format_markdown" = "Markdown"; "note_format_html" = "HTML"; -"page_photo_prompt" = "ID фото (photoOWNER_VID):"; "page_access_saved" = "Настройки доступа сохранены."; "page_access_denied" = "Недостаточно прав для просмотра этой страницы."; "page_no_revisions" = "История правок пуста."; diff --git a/tests/e2e/screenshots/notes.spec.ts-snapshots/note-create-linux.png b/tests/e2e/screenshots/notes.spec.ts-snapshots/note-create-linux.png index 034ca4739a0e88d61a76e009063b981dc179b485..aefa2e2476d9b8e00f3a241ee3f57975a9e497e5 100644 GIT binary patch literal 15118 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 RxPuvh-UGw?=zGsz{SS^Ye3<|M literal 15016 zcmeHuc~DbZw`Y`#s3>?s0b(u$gH9uC?K;80g)j<2y+M!LYxo<0g;(72*?-$ zGK6^$ka?aGrVtPzKnP(>LJ~-GU)A?szpmF^ulsfX(N*86%Bp>K<(yh|_S$Rx_FBL7 z@tJ|n$>T!D0RX^B-Nz4&0f57S2fx0fhYx0^Z_dU80H*-D5AT}>q^=TpZA_hJer)K7 zIu71H^591d;1Ktj*M!0R^@POHQ5zF{1x|0ut%^3{Kjn`nAf_s-;JY4`6S?u|go2ty z^|tyU?FYgEJojIpI%ITDTe|b+bh8nfh^5}-+o1lZ2=;~=sn?~ux7!%& zW)M;U0Nf+rf-<`BOwf5G5;5;(>C~YpmcX}mpmN3gED0yOI@l)d4(i6ao)}~J&b2Vx zsi6npLjV_1N|d=-n$KveheKggWp1waA;2s1G4n$JfbPk5?B7opC-h$uw+|rhTqZx3G#Cs_B>nrKo;jh7
yuw^7vOeyGk&NTn9GQuHW^}|! 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

ZTg!!WQcW$VAeJe}6-g$dMP5QVV`mL#L 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 WmAt?{)b7CyK=+Zs!{P@o-uyQl>jf?V diff --git a/tests/e2e/screenshots/notes.spec.ts-snapshots/note2-1-edit-linux.png b/tests/e2e/screenshots/notes.spec.ts-snapshots/note2-1-edit-linux.png index 2e365521ec9ba4156b2725ed365f09a5f00c8c0c..84332db130af08ab80d1f66c615d4372fc50dba4 100644 GIT binary patch literal 19694 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 E02y8C1ONa4 literal 19666 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

F0G2_Ap$$^ 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 vb%D|hY5(LI829jr$YTR_F_;bP0l+XkKlYi^g diff --git a/tests/e2e/screenshots/pages.spec.ts-snapshots/page-1-1-edit-linux.png b/tests/e2e/screenshots/pages.spec.ts-snapshots/page-1-1-edit-linux.png index 559797ed6e1480ee5025d3335698e8e8619d4f8c..4c7c660fff861a9bd21054a906abfb8237327f94 100644 GIT binary patch literal 23023 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 literal 22983 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 U1m9~Mr2qf`07*qoM6N<$f)qDh7XSbN literal 20026 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 ZW)RL5PG|d32b5=E@O1TaS?83{1OVHKlnnp? diff --git a/tests/seed-data.sql b/tests/seed-data.sql index f6e3d1b05..317eef1e4 100644 --- a/tests/seed-data.sql +++ b/tests/seed-data.sql @@ -266,8 +266,7 @@ INSERT INTO ovk_upgrade_history (`level`, `timestamp`, `operator`) VALUES (61, @ts_base - 365 * @ts_day, 'test-seed'), (62, @ts_base - 365 * @ts_day, 'test-seed'), (63, @ts_base - 365 * @ts_day, 'test-seed'), -(65, @ts_base - 365 * @ts_day, 'test-seed'), -(66, @ts_base - 365 * @ts_day, 'test-seed'); +(65, @ts_base - 365 * @ts_day, 'test-seed'); -- Photos for Alice (profile id = 2, album id = 1) INSERT INTO photos (id, owner, virtual_id, created, edited, hash, deleted, description) VALUES