protected $rules = [
'all' => [
- 'query' => ['required'],
- 'page' => ['integer', 'min:1'],
+ 'query' => ['required'],
+ 'page' => ['integer', 'min:1'],
'count' => ['integer', 'min:1', 'max:100'],
],
];
}
return response()->json([
- 'data' => $results['results'],
+ 'data' => $results['results'],
'total' => $results['total'],
]);
}
-
-
}
use BookStack\Uploads\AttachmentService;
use Exception;
use Illuminate\Contracts\Filesystem\FileNotFoundException;
-use Illuminate\Foundation\Http\Middleware\ValidatePostSize;
use Illuminate\Http\Request;
use Illuminate\Support\MessageBag;
use Illuminate\Validation\ValidationException;
<div class="grid third no-break v-center">
<div class="action-buttons text-left px-m py-xs">
- <a href="{{ back()->getTargetUrl() }}" class="text-button text-primary">@icon('back')<span class="hide-under-l">{{ trans('common.back') }}</span></a>
+ <a href="{{ $page->draft ? $page->getParent()->getUrl() : $page->getUrl() }}"
+ class="text-button text-primary">@icon('back')<span class="hide-under-l">{{ trans('common.back') }}</span></a>
</div>
<div class="text-center px-m py-xs">
namespace Tests\Entity;
use BookStack\Entities\Models\Book;
+use BookStack\Entities\Models\Chapter;
use BookStack\Entities\Models\Page;
use Tests\TestCase;
'draft' => false,
]);
}
+
+ public function test_back_link_in_editor_has_correct_url()
+ {
+ /** @var Book $book */
+ $book = Book::query()->whereHas('pages')->whereHas('chapters')->firstOrFail();
+ $this->asEditor()->get($book->getUrl('/create-page'));
+ /** @var Chapter $chapter */
+ $chapter = $book->chapters()->firstOrFail();
+ /** @var Page $draft */
+ $draft = $book->pages()->where('draft', '=', true)->firstOrFail();
+
+ // Book draft goes back to book
+ $resp = $this->get($book->getUrl("/draft/{$draft->id}"));
+ $resp->assertElementContains('a[href="' . $book->getUrl() . '"]', 'Back');
+
+ // Chapter draft goes back to chapter
+ $draft->chapter_id = $chapter->id;
+ $draft->save();
+ $resp = $this->get($book->getUrl("/draft/{$draft->id}"));
+ $resp->assertElementContains('a[href="' . $chapter->getUrl() . '"]', 'Back');
+
+ // Saved page goes back to page
+ $this->post($book->getUrl("/draft/{$draft->id}"), ['name' => 'Updated', 'html' => 'Updated']);
+ $draft->refresh();
+ $resp = $this->get($draft->getUrl('/edit'));
+ $resp->assertElementContains('a[href="' . $draft->getUrl() . '"]', 'Back');
+ }
}