+++ /dev/null
-import { prepareRequest } from "WoltLabSuite/Core/Ajax/Backend";
-import { ApiResult, apiResultFromError, apiResultFromValue } from "../Result";
-
-type Response = {
- template: string;
- pages: number;
- totalRows: number;
- filterLabels: ArrayLike<string>;
-};
-
-export async function getRows(
- gridViewClass: string,
- pageNo: number,
- sortField: string = "",
- sortOrder: string = "ASC",
- filters?: Map<string, string>,
- gridViewParameters?: Map<string, string>,
-): Promise<ApiResult<Response>> {
- const url = new URL(`${window.WSC_RPC_API_URL}core/gridViews/rows`);
- url.searchParams.set("gridView", gridViewClass);
- url.searchParams.set("pageNo", pageNo.toString());
- url.searchParams.set("sortField", sortField);
- url.searchParams.set("sortOrder", sortOrder);
- if (filters) {
- filters.forEach((value, key) => {
- url.searchParams.set(`filters[${key}]`, value);
- });
- }
- if (gridViewParameters) {
- gridViewParameters.forEach((value, key) => {
- url.searchParams.set(`gridViewParameters[${key}]`, value);
- });
- }
-
- let response: Response;
- try {
- response = (await prepareRequest(url).get().allowCaching().disableLoadingIndicator().fetchAsJson()) as Response;
- } catch (e) {
- return apiResultFromError(e);
- }
-
- return apiResultFromValue(response);
-}
--- /dev/null
+import { prepareRequest } from "WoltLabSuite/Core/Ajax/Backend";
+import { ApiResult, apiResultFromError, apiResultFromValue } from "../Result";
+
+type Response = {
+ template: string;
+ pages: number;
+ totalRows: number;
+ filterLabels: ArrayLike<string>;
+};
+
+export async function getRows(
+ gridViewClass: string,
+ pageNo: number,
+ sortField: string = "",
+ sortOrder: string = "ASC",
+ filters?: Map<string, string>,
+ gridViewParameters?: Map<string, string>,
+): Promise<ApiResult<Response>> {
+ const url = new URL(`${window.WSC_RPC_API_URL}core/gridviews/rows`);
+ url.searchParams.set("gridView", gridViewClass);
+ url.searchParams.set("pageNo", pageNo.toString());
+ url.searchParams.set("sortField", sortField);
+ url.searchParams.set("sortOrder", sortOrder);
+ if (filters) {
+ filters.forEach((value, key) => {
+ url.searchParams.set(`filters[${key}]`, value);
+ });
+ }
+ if (gridViewParameters) {
+ gridViewParameters.forEach((value, key) => {
+ url.searchParams.set(`gridViewParameters[${key}]`, value);
+ });
+ }
+
+ let response: Response;
+ try {
+ response = (await prepareRequest(url).get().allowCaching().disableLoadingIndicator().fetchAsJson()) as Response;
+ } catch (e) {
+ return apiResultFromError(e);
+ }
+
+ return apiResultFromValue(response);
+}
-import { getRows } from "../Api/GridViews/GetRows";
+import { getRows } from "../Api/Gridviews/GetRows";
import DomChangeListener from "../Dom/Change/Listener";
import DomUtil from "../Dom/Util";
import { promiseMutex } from "../Helper/PromiseMutex";
+++ /dev/null
-define(["require", "exports", "WoltLabSuite/Core/Ajax/Backend", "../Result"], function (require, exports, Backend_1, Result_1) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.getRows = getRows;
- async function getRows(gridViewClass, pageNo, sortField = "", sortOrder = "ASC", filters, gridViewParameters) {
- const url = new URL(`${window.WSC_RPC_API_URL}core/gridViews/rows`);
- url.searchParams.set("gridView", gridViewClass);
- url.searchParams.set("pageNo", pageNo.toString());
- url.searchParams.set("sortField", sortField);
- url.searchParams.set("sortOrder", sortOrder);
- if (filters) {
- filters.forEach((value, key) => {
- url.searchParams.set(`filters[${key}]`, value);
- });
- }
- if (gridViewParameters) {
- gridViewParameters.forEach((value, key) => {
- url.searchParams.set(`gridViewParameters[${key}]`, value);
- });
- }
- let response;
- try {
- response = (await (0, Backend_1.prepareRequest)(url).get().allowCaching().disableLoadingIndicator().fetchAsJson());
- }
- catch (e) {
- return (0, Result_1.apiResultFromError)(e);
- }
- return (0, Result_1.apiResultFromValue)(response);
- }
-});
--- /dev/null
+define(["require", "exports", "WoltLabSuite/Core/Ajax/Backend", "../Result"], function (require, exports, Backend_1, Result_1) {
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ exports.getRows = getRows;
+ async function getRows(gridViewClass, pageNo, sortField = "", sortOrder = "ASC", filters, gridViewParameters) {
+ const url = new URL(`${window.WSC_RPC_API_URL}core/gridviews/rows`);
+ url.searchParams.set("gridView", gridViewClass);
+ url.searchParams.set("pageNo", pageNo.toString());
+ url.searchParams.set("sortField", sortField);
+ url.searchParams.set("sortOrder", sortOrder);
+ if (filters) {
+ filters.forEach((value, key) => {
+ url.searchParams.set(`filters[${key}]`, value);
+ });
+ }
+ if (gridViewParameters) {
+ gridViewParameters.forEach((value, key) => {
+ url.searchParams.set(`gridViewParameters[${key}]`, value);
+ });
+ }
+ let response;
+ try {
+ response = (await (0, Backend_1.prepareRequest)(url).get().allowCaching().disableLoadingIndicator().fetchAsJson());
+ }
+ catch (e) {
+ return (0, Result_1.apiResultFromError)(e);
+ }
+ return (0, Result_1.apiResultFromValue)(response);
+ }
+});
-define(["require", "exports", "tslib", "../Api/GridViews/GetRows", "../Dom/Change/Listener", "../Dom/Util", "../Helper/PromiseMutex", "../Ui/Dropdown/Simple", "./Dialog"], function (require, exports, tslib_1, GetRows_1, Listener_1, Util_1, PromiseMutex_1, Simple_1, Dialog_1) {
+define(["require", "exports", "tslib", "../Api/Gridviews/GetRows", "../Dom/Change/Listener", "../Dom/Util", "../Helper/PromiseMutex", "../Ui/Dropdown/Simple", "./Dialog"], function (require, exports, tslib_1, GetRows_1, Listener_1, Util_1, PromiseMutex_1, Simple_1, Dialog_1) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.GridView = void 0;
$event->register(new \wcf\system\endpoint\controller\core\comments\responses\RenderResponses);
$event->register(new \wcf\system\endpoint\controller\core\comments\responses\UpdateResponse);
$event->register(new \wcf\system\endpoint\controller\core\exceptions\RenderException);
- $event->register(new \wcf\system\endpoint\controller\core\gridViews\GetRows);
+ $event->register(new \wcf\system\endpoint\controller\core\gridviews\GetRows);
$event->register(new \wcf\system\endpoint\controller\core\messages\GetMentionSuggestions);
$event->register(new \wcf\system\endpoint\controller\core\sessions\DeleteSession);
$event->register(new \wcf\system\endpoint\controller\core\users\options\DeleteOption);
+++ /dev/null
-<?php
-
-namespace wcf\system\endpoint\controller\core\gridViews;
-
-use Laminas\Diactoros\Response\JsonResponse;
-use Psr\Http\Message\ResponseInterface;
-use Psr\Http\Message\ServerRequestInterface;
-use wcf\http\Helper;
-use wcf\system\endpoint\GetRequest;
-use wcf\system\endpoint\IController;
-use wcf\system\exception\PermissionDeniedException;
-use wcf\system\exception\UserInputException;
-use wcf\system\gridView\AbstractGridView;
-
-/**
- * Retrieves the rows for a grid view.
- *
- * @author Marcel Werk
- * @copyright 2001-2024 WoltLab GmbH
- * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
- * @since 6.2
- */
-#[GetRequest('/core/gridViews/rows')]
-final class GetRows implements IController
-{
- #[\Override]
- public function __invoke(ServerRequestInterface $request, array $variables): ResponseInterface
- {
- $parameters = Helper::mapApiParameters($request, GetRowsParameters::class);
-
- if (!\is_subclass_of($parameters->gridView, AbstractGridView::class)) {
- throw new UserInputException('gridView', 'invalid');
- }
-
- $view = new $parameters->gridView(...$parameters->gridViewParameters);
- \assert($view instanceof AbstractGridView);
-
- if (!$view->isAccessible()) {
- throw new PermissionDeniedException();
- }
-
- $view->setPageNo($parameters->pageNo);
- if ($parameters->sortField) {
- $view->setSortField($parameters->sortField);
- }
- if ($parameters->sortOrder) {
- $view->setSortOrder($parameters->sortOrder);
- }
-
- if ($parameters->filters !== []) {
- $view->setActiveFilters($parameters->filters);
- }
-
- $filterLabels = [];
- foreach (\array_keys($parameters->filters) as $key) {
- $filterLabels[$key] = $view->getFilterLabel($key);
- }
-
- return new JsonResponse([
- 'template' => $view->renderRows(),
- 'pages' => $view->countPages(),
- 'totalRows' => $view->countRows(),
- 'filterLabels' => $filterLabels,
- ]);
- }
-}
-
-/** @internal */
-final class GetRowsParameters
-{
- public function __construct(
- /** @var non-empty-string */
- public readonly string $gridView,
- public readonly int $pageNo,
- public readonly string $sortField,
- public readonly string $sortOrder,
- /** @var string[] */
- public readonly array $filters,
- /** @var string[] */
- public readonly array $gridViewParameters,
- ) {}
-}
--- /dev/null
+<?php
+
+namespace wcf\system\endpoint\controller\core\gridviews;
+
+use Laminas\Diactoros\Response\JsonResponse;
+use Psr\Http\Message\ResponseInterface;
+use Psr\Http\Message\ServerRequestInterface;
+use wcf\http\Helper;
+use wcf\system\endpoint\GetRequest;
+use wcf\system\endpoint\IController;
+use wcf\system\exception\PermissionDeniedException;
+use wcf\system\exception\UserInputException;
+use wcf\system\gridView\AbstractGridView;
+
+/**
+ * Retrieves the rows for a grid view.
+ *
+ * @author Marcel Werk
+ * @copyright 2001-2024 WoltLab GmbH
+ * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
+ * @since 6.2
+ */
+#[GetRequest('/core/gridviews/rows')]
+final class GetRows implements IController
+{
+ #[\Override]
+ public function __invoke(ServerRequestInterface $request, array $variables): ResponseInterface
+ {
+ $parameters = Helper::mapApiParameters($request, GetRowsParameters::class);
+
+ if (!\is_subclass_of($parameters->gridView, AbstractGridView::class)) {
+ throw new UserInputException('gridView', 'invalid');
+ }
+
+ $view = new $parameters->gridView(...$parameters->gridViewParameters);
+ \assert($view instanceof AbstractGridView);
+
+ if (!$view->isAccessible()) {
+ throw new PermissionDeniedException();
+ }
+
+ $view->setPageNo($parameters->pageNo);
+ if ($parameters->sortField) {
+ $view->setSortField($parameters->sortField);
+ }
+ if ($parameters->sortOrder) {
+ $view->setSortOrder($parameters->sortOrder);
+ }
+
+ if ($parameters->filters !== []) {
+ $view->setActiveFilters($parameters->filters);
+ }
+
+ $filterLabels = [];
+ foreach (\array_keys($parameters->filters) as $key) {
+ $filterLabels[$key] = $view->getFilterLabel($key);
+ }
+
+ return new JsonResponse([
+ 'template' => $view->renderRows(),
+ 'pages' => $view->countPages(),
+ 'totalRows' => $view->countRows(),
+ 'filterLabels' => $filterLabels,
+ ]);
+ }
+}
+
+/** @internal */
+final class GetRowsParameters
+{
+ public function __construct(
+ /** @var non-empty-string */
+ public readonly string $gridView,
+ public readonly int $pageNo,
+ public readonly string $sortField,
+ public readonly string $sortOrder,
+ /** @var string[] */
+ public readonly array $filters,
+ /** @var string[] */
+ public readonly array $gridViewParameters,
+ ) {}
+}