Remove repeated code, fix loaded buttons on chr...

...ome and fix getting suggested posts via API.Wall.getPost
This commit is contained in:
lalka2016 2023-08-09 12:53:36 +03:00
parent 222601383d
commit ccf618a5ab
7 changed files with 28 additions and 51 deletions

View file

@ -2,7 +2,7 @@
namespace openvk\ServiceAPI; namespace openvk\ServiceAPI;
use openvk\Web\Models\Entities\Post; use openvk\Web\Models\Entities\Post;
use openvk\Web\Models\Entities\User; use openvk\Web\Models\Entities\User;
use openvk\Web\Models\Entities\Notifications\{PostAcceptedNotification}; use openvk\Web\Models\Entities\Notifications\PostAcceptedNotification;
use openvk\Web\Models\Repositories\{Posts, Notes}; use openvk\Web\Models\Repositories\{Posts, Notes};
class Wall implements Handler class Wall implements Handler
@ -22,7 +22,10 @@ class Wall implements Handler
{ {
$post = $this->posts->get($id); $post = $this->posts->get($id);
if(!$post || $post->isDeleted()) if(!$post || $post->isDeleted())
$reject("No post with id=$id"); $reject(53, "No post with id=$id");
if($post->getSuggestionType() != 0)
$reject(25, "Can't get suggested post");
$res = (object) []; $res = (object) [];
$res->id = $post->getId(); $res->id = $post->getId();

View file

@ -410,7 +410,7 @@ final class GroupPresenter extends OpenVKPresenter
$this->flashFail("succ", tr("information_-1"), tr("group_owner_setted", $newOwner->getCanonicalName(), $club->getName())); $this->flashFail("succ", tr("information_-1"), tr("group_owner_setted", $newOwner->getCanonicalName(), $club->getName()));
} }
function renderSuggestedThisUser(int $id) function renderSuggested(int $id): void
{ {
$this->assertUserLoggedIn(); $this->assertUserLoggedIn();
@ -420,57 +420,26 @@ final class GroupPresenter extends OpenVKPresenter
else else
$this->template->club = $club; $this->template->club = $club;
if($club->getWallType() == 1) { if($club->getWallType() == 0) {
$this->flash("err", tr("error_suggestions"), tr("error_suggestions_closed")); $this->flash("err", tr("error_suggestions"), tr("error_suggestions_closed"));
$this->redirect("/club".$club->getId()); $this->redirect("/club".$club->getId());
} }
if($club->getWallType() == 0) {
$this->flash("err", tr("error_suggestions"), tr("error_suggestions_open"));
$this->redirect("/club".$club->getId());
}
if($club->canBeModifiedBy($this->user->identity)) {
$this->flash("err", tr("error_suggestions"), "No sense");
$this->redirect("/club".$club->getId());
}
$this->template->posts = (new Posts)->getSuggestedPostsByUser($club->getId(), $this->user->id, (int) ($this->queryParam("p") ?? 1));
$this->template->count = (new Posts)->getSuggestedPostsCountByUser($club->getId(), $this->user->id);
$this->template->type = "my";
$this->template->page = (int) ($this->queryParam("p") ?? 1);
$this->template->_template = "Group/Suggested.xml";
}
function renderSuggestedAll(int $id)
{
$this->assertUserLoggedIn();
$club = $this->clubs->get($id);
if(!$club)
$this->notFound();
else
$this->template->club = $club;
if($club->getWallType() == 1) { if($club->getWallType() == 1) {
$this->flash("err", tr("error_suggestions"), tr("error_suggestions_closed"));
$this->redirect("/club".$club->getId());
}
if($club->getWallType() == 0) {
$this->flash("err", tr("error_suggestions"), tr("error_suggestions_open")); $this->flash("err", tr("error_suggestions"), tr("error_suggestions_open"));
$this->redirect("/club".$club->getId()); $this->redirect("/club".$club->getId());
} }
if(!$club->canBeModifiedBy($this->user->identity)) { if(!$club->canBeModifiedBy($this->user->identity)) {
$this->flash("err", tr("error_suggestions"), tr("error_suggestions_access")); $this->template->posts = (new Posts)->getSuggestedPostsByUser($club->getId(), $this->user->id, (int) ($this->queryParam("p") ?? 1));
$this->redirect("/club".$club->getId()); $this->template->count = (new Posts)->getSuggestedPostsCountByUser($club->getId(), $this->user->id);
} $this->template->type = "my";
} else {
$this->template->posts = (new Posts)->getSuggestedPosts($club->getId(), (int) ($this->queryParam("p") ?? 1)); $this->template->posts = (new Posts)->getSuggestedPosts($club->getId(), (int) ($this->queryParam("p") ?? 1));
$this->template->count = (new Posts)->getSuggestedPostsCount($club->getId()); $this->template->count = (new Posts)->getSuggestedPostsCount($club->getId());
$this->template->type = "everyone"; $this->template->type = "everyone";
}
$this->template->page = (int) ($this->queryParam("p") ?? 1); $this->template->page = (int) ($this->queryParam("p") ?? 1);
$this->template->_template = "Group/Suggested.xml";
} }
} }

View file

@ -219,7 +219,7 @@
{$club->getName()} {$club->getName()}
<object type="internal/link" style="white-space: normal;" id="sug{$club->getId()}" n:if="$club->getSuggestedPostsCount() > 0 && $club->getWallType() == 2"> <object type="internal/link" style="white-space: normal;" id="sug{$club->getId()}" n:if="$club->getSuggestedPostsCount() > 0 && $club->getWallType() == 2">
<a href="{$club->getURL()}/suggested/all"> <a href="{$club->getURL()}/suggested">
(<b>{$club->getSuggestedPostsCount()}</b>) (<b>{$club->getSuggestedPostsCount()}</b>)
</a> </a>
</object> </object>

View file

@ -96,7 +96,7 @@
</div> </div>
<div n:if="!is_null($suggestedPostsCountByEveryone) && $suggestedPostsCountByEveryone > 0" class="sugglist"> <div n:if="!is_null($suggestedPostsCountByEveryone) && $suggestedPostsCountByEveryone > 0" class="sugglist">
<a href="/club{$club->getId()}/suggested/all">{tr("suggested_by_everyone", $suggestedPostsCountByEveryone)}</a> <a href="/club{$club->getId()}/suggested">{tr("suggested_by_everyone", $suggestedPostsCountByEveryone)}</a>
</div> </div>
{presenter "openvk!Wall->wallEmbedded", -$club->getId()} {presenter "openvk!Wall->wallEmbedded", -$club->getId()}

View file

@ -1,5 +1,5 @@
{var $club = $notification->getModel(1)} {var $club = $notification->getModel(1)}
{_nt_in_club} {_nt_in_club}
<a href="{$club->getURL()}/suggested/all"><b>{$club->getName()}</b></a> <a href="{$club->getURL()}/suggested"><b>{$club->getName()}</b></a>
{_nt_new_suggested_posts} {_nt_new_suggested_posts}

View file

@ -202,9 +202,7 @@ routes:
- url: "/club{num}/setAdmin" - url: "/club{num}/setAdmin"
handler: "Group->modifyAdmin" handler: "Group->modifyAdmin"
- url: "/club{num}/suggested" - url: "/club{num}/suggested"
handler: "Group->suggestedThisUser" handler: "Group->suggested"
- url: "/club{num}/suggested/all"
handler: "Group->suggestedAll"
- url: "/groups{num}" - url: "/groups{num}"
handler: "User->groups" handler: "User->groups"
- url: "/groups_pin" - url: "/groups_pin"

View file

@ -2717,5 +2717,12 @@ body.article .floating_sidebar, body.article .page_content {
.button.loaded { .button.loaded {
background: #595959 url("/assets/packages/static/openvk/img/loading_mini.gif") no-repeat 50% 50%; background: #595959 url("/assets/packages/static/openvk/img/loading_mini.gif") no-repeat 50% 50%;
padding: 16px 40px 6px 4px; padding: 2px 9px 7px 39px;
margin-bottom: -6px;
}
@-moz-document url-prefix() {
.button.loaded {
padding: 16px 40px 6px 4px !important;
}
} }