diff --git a/app/Repos/PageRepo.php b/app/Repos/PageRepo.php index 515d18bd9..d3a060363 100644 --- a/app/Repos/PageRepo.php +++ b/app/Repos/PageRepo.php @@ -147,7 +147,7 @@ class PageRepo extends EntityRepo $draftPage->fill($input); // Save page tags if present - if(isset($input['tags'])) { + if (isset($input['tags'])) { $this->tagRepo->saveTagsToEntity($draftPage, $input['tags']); } @@ -308,10 +308,9 @@ class PageRepo extends EntityRepo */ public function updatePage(Page $page, $book_id, $input) { - // Save a revision before updating - if ($page->html !== $input['html'] || $page->name !== $input['name']) { - $this->saveRevision($page, $input['summary']); - } + // Hold the old details to compare later + $oldHtml = $page->html; + $oldName = $page->name; // Prevent slug being updated if no name change if ($page->name !== $input['name']) { @@ -319,7 +318,7 @@ class PageRepo extends EntityRepo } // Save page tags if present - if(isset($input['tags'])) { + if (isset($input['tags'])) { $this->tagRepo->saveTagsToEntity($page, $input['tags']); } @@ -335,6 +334,11 @@ class PageRepo extends EntityRepo // Remove all update drafts for this user & page. $this->userUpdateDraftsQuery($page, $userId)->delete(); + // Save a revision after updating + if ($oldHtml !== $input['html'] || $oldName !== $input['name'] || $input['summary'] !== null) { + $this->saveRevision($page, $input['summary']); + } + return $page; } @@ -360,6 +364,7 @@ class PageRepo extends EntityRepo /** * Saves a page revision into the system. * @param Page $page + * @param null|string $summary * @return $this */ public function saveRevision(Page $page, $summary = null) @@ -406,7 +411,7 @@ class PageRepo extends EntityRepo $draft->fill($data); if (setting('app-editor') !== 'markdown') $draft->markdown = ''; - + $draft->save(); return $draft; } diff --git a/resources/assets/js/directives.js b/resources/assets/js/directives.js index 0119ded42..e50f5c6dd 100644 --- a/resources/assets/js/directives.js +++ b/resources/assets/js/directives.js @@ -157,9 +157,22 @@ module.exports = function (ngApp, events) { return { restrict: 'A', link: function (scope, element, attrs) { - var menu = element.find('ul'); + const menu = element.find('ul'); element.find('[dropdown-toggle]').on('click', function () { menu.show().addClass('anim menuIn'); + let inputs = menu.find('input'); + let hasInput = inputs.length > 0; + if (hasInput) { + inputs.first().focus(); + element.on('keypress', 'input', event => { + if (event.keyCode === 13) { + event.preventDefault(); + menu.hide(); + menu.removeClass('anim menuIn'); + return false; + } + }); + } element.mouseleave(function () { menu.hide(); menu.removeClass('anim menuIn'); diff --git a/resources/assets/sass/_header.scss b/resources/assets/sass/_header.scss index e0b1a99cb..12bd17076 100644 --- a/resources/assets/sass/_header.scss +++ b/resources/assets/sass/_header.scss @@ -155,6 +155,7 @@ form.search-box { text-decoration: none; } } + } .faded span.faded-text { diff --git a/resources/assets/sass/_lists.scss b/resources/assets/sass/_lists.scss index 08f00677e..2658c4689 100644 --- a/resources/assets/sass/_lists.scss +++ b/resources/assets/sass/_lists.scss @@ -375,6 +375,9 @@ ul.pagination { .text-muted { color: #999; } + li.padded { + padding: $-xs $-m; + } a { display: block; padding: $-xs $-m; @@ -384,10 +387,10 @@ ul.pagination { background-color: #EEE; } i { - margin-right: $-m; + margin-right: $-s; padding-right: 0; - display: inline; - width: 22px; + display: inline-block; + width: 16px; } } li.border-bottom { diff --git a/resources/assets/sass/_pages.scss b/resources/assets/sass/_pages.scss index 1d203ef78..49b701dda 100644 --- a/resources/assets/sass/_pages.scss +++ b/resources/assets/sass/_pages.scss @@ -18,9 +18,6 @@ flex: 1; flex-direction: column; } - #summary-input { - width: 140px; - } } .page-style.editor { diff --git a/resources/views/pages/form.blade.php b/resources/views/pages/form.blade.php index c2bdc6692..a5558f8e4 100644 --- a/resources/views/pages/form.blade.php +++ b/resources/views/pages/form.blade.php @@ -22,14 +22,25 @@