diff options
| author | Christophe Simonis <chs@odoo.com> | 2019-08-14 16:48:10 +0200 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2019-08-14 16:48:10 +0200 |
| commit | 140ee6b8f0b0de7ddcc816496269963612c5d0c6 (patch) | |
| tree | 7bdaa065d215b88fea4fa56adbfa79cdc24deb69 /addons/website_forum/static | |
| parent | 839696d2d7dd574fd8958d17726379926e94d590 (diff) | |
| parent | 98a55917a602c0c47093b4270ebc4e8b416ecf32 (diff) | |
[MERGE] forward port branch saas-12.4 up to 98a55917a60
Diffstat (limited to 'addons/website_forum/static')
| -rw-r--r-- | addons/website_forum/static/src/js/website_forum.js | 33 | ||||
| -rw-r--r-- | addons/website_forum/static/src/scss/website_forum.scss | 29 |
2 files changed, 48 insertions, 14 deletions
diff --git a/addons/website_forum/static/src/js/website_forum.js b/addons/website_forum/static/src/js/website_forum.js index b364a3f9d1c..d945f2a5c47 100644 --- a/addons/website_forum/static/src/js/website_forum.js +++ b/addons/website_forum/static/src/js/website_forum.js @@ -24,6 +24,9 @@ publicWidget.registry.websiteForum = publicWidget.Widget.extend({ 'click .vote_up:not(.karma_required), .vote_down:not(.karma_required)': '_onVotePostClick', 'click .o_js_validation_queue a[href*="/validate"]': '_onValidationQueueClick', 'click .accept_answer:not(.karma_required)': '_onAcceptAnswerClick', + 'click .validate_answer [data-href]': '_onAcceptAnswerClick', + 'mouseenter .validate_answer [data-href]': '_onRemoveValidAnswerMouse', + 'mouseleave .validate_answer [data-href]': '_onRemoveValidAnswerMouse', 'click .favourite_question': '_onFavoriteQuestionClick', 'click .comment_delete': '_onDeleteCommentClick', 'click .js_close_intro': '_onCloseIntroClick', @@ -337,6 +340,8 @@ publicWidget.registry.websiteForum = publicWidget.Widget.extend({ _onAcceptAnswerClick: function (ev) { var self = this; ev.preventDefault(); + var self = this; + var $acceptAnswerLinks = this.$('.accept_answer'); var $link = $(ev.currentTarget); this._rpc({ route: $link.data('href'), @@ -352,19 +357,41 @@ publicWidget.registry.websiteForum = publicWidget.Widget.extend({ sticky: false, }); } else { + $acceptAnswerLinks.removeClass('oe_answer_true') + .addClass('oe_answer_false'); $link.toggleClass('oe_answer_true', !!data) .toggleClass('oe_answer_false', !data); + + // TODO in master, review the utility of this function... + self._onCheckAnswerStatus(ev); + + // If we are removing an accepted answer, reload the page as the + // design is quite different with or without an accepted answer. + if ($link.closest('.validate_answer').length) { + window.location.reload(); + } } }); - this._onCheckAnswerStatus(ev); + }, + /** + * @private + * @param {Event} ev + */ + _onRemoveValidAnswerMouse: function (ev) { + var hover = (ev.type === 'mouseenter'); + $(ev.currentTarget).find('.fa') + .toggleClass('fa-times-circle text-danger', hover) + .toggleClass('fa-check-circle text-success', !hover); }, /** * @private * @param {Event} ev */ _onCheckAnswerStatus: function (ev) { - var $link = $(ev.currentTarget); - $link.toggleClass('text-success', !$link.hasClass('oe_answer_true')); + _.each(this.$('.accept_answer'), function (link) { + var $link = $(link); + $link.toggleClass('text-success', $link.hasClass('oe_answer_true')); + }); }, /** * @private diff --git a/addons/website_forum/static/src/scss/website_forum.scss b/addons/website_forum/static/src/scss/website_forum.scss index b6186a77d6e..8694ecc77ab 100644 --- a/addons/website_forum/static/src/scss/website_forum.scss +++ b/addons/website_forum/static/src/scss/website_forum.scss @@ -47,16 +47,23 @@ $bronze: #eea91e; } .validate_answer { - @include o-position-absolute(0,0,0,0); + @include o-position-absolute(0, auto, 0, 0); + width: 4px; height: 100%; - .bg-success { - @include o-position-absolute(0,0,0,0); - height: 100%; - width: 4px; + z-index: 1; // On top of card content if an alert is displayed inside + + > .bg-success { + @include o-position-absolute(0, 0, 0, 0); } - span { - @include o-position-absolute(10px,0,0,-9px); + > span { + @include o-position-absolute(10px, 50%); + transform: translateX(50%); font-size: 20px; + + &[data-href] { + cursor: pointer; + } + i { padding: 2px 3px; border-radius: 100%; @@ -85,6 +92,10 @@ $bronze: #eea91e; .favourite_question { color: $gray-400 !important; + + &.forum_favourite_question { + color: $gold !important; + } } .oe_grey { @@ -180,10 +191,6 @@ img.o_forum_avatar_big { width: auto; } -.forum_favourite_question { - color: $gold !important; -} - .o_forum_user_bio_expand { position: absolute; display: none; |
