X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/756b55bbffedb6e5fde91f9fbc61f5a382f20705..refs/pull/3072/head:/app/Http/Controllers/PageController.php diff --git a/app/Http/Controllers/PageController.php b/app/Http/Controllers/PageController.php index 4818b5211..7d5d93ffa 100644 --- a/app/Http/Controllers/PageController.php +++ b/app/Http/Controllers/PageController.php @@ -60,7 +60,7 @@ class PageController extends Controller public function createAsGuest(Request $request, string $bookSlug, string $chapterSlug = null) { $this->validate($request, [ - 'name' => 'required|string|max:255', + 'name' => ['required', 'string', 'max:255'], ]); $parent = $this->pageRepo->getParentFromSlugs($bookSlug, $chapterSlug); @@ -107,7 +107,7 @@ class PageController extends Controller public function store(Request $request, string $bookSlug, int $pageId) { $this->validate($request, [ - 'name' => 'required|string|max:255', + 'name' => ['required', 'string', 'max:255'], ]); $draftPage = $this->pageRepo->getById($pageId); $this->checkOwnablePermission('page-create', $draftPage->getParent()); @@ -176,7 +176,7 @@ class PageController extends Controller { $page = $this->pageRepo->getById($pageId); $page->setHidden(array_diff($page->getHidden(), ['html', 'markdown'])); - $page->addHidden(['book']); + $page->makeHidden(['book']); return response()->json($page); } @@ -234,7 +234,7 @@ class PageController extends Controller public function update(Request $request, string $bookSlug, string $pageSlug) { $this->validate($request, [ - 'name' => 'required|string|max:255', + 'name' => ['required', 'string', 'max:255'], ]); $page = $this->pageRepo->getBySlug($bookSlug, $pageSlug); $this->checkOwnablePermission('page-update', $page); @@ -258,32 +258,14 @@ class PageController extends Controller return $this->jsonError(trans('errors.guests_cannot_save_drafts'), 500); } - // Check for active editing or time conflict - $warnings = []; - $jsonResponseWarning = ''; - $editActivity = new PageEditActivity($page); - if ($editActivity->hasActiveEditing()) { - $warnings[] = $editActivity->activeEditingMessage(); - } - $userDraft = $this->pageRepo->getUserDraft($page); - if ($userDraft !== null) { - if ($editActivity->hasPageBeenUpdatedSinceDraftSaved($userDraft)) { - $warnings[] = $editActivity->getEditingActiveDraftMessage($userDraft); - } - } - if (count($warnings) > 0) { - $jsonResponseWarning = implode("\n", $warnings); - } - $draft = $this->pageRepo->updatePageDraft($page, $request->only(['name', 'html', 'markdown'])); - - $updateTime = $draft->updated_at->timestamp; + $warnings = (new PageEditActivity($page))->getWarningMessagesForDraft($draft); return response()->json([ 'status' => 'success', 'message' => trans('entities.pages_edit_draft_save_at'), - 'warning' => $jsonResponseWarning, - 'timestamp' => $updateTime, + 'warning' => implode("\n", $warnings), + 'timestamp' => $draft->updated_at->timestamp, ]); }