From 1bdf43d5cc7df0543ddac20686a0ddc351a2f125 Mon Sep 17 00:00:00 2001 From: Simon Cossar Date: Thu, 18 Jun 2015 19:28:02 -0700 Subject: [PATCH 1/4] Correct user-card positioning for rtl layouts --- .../discourse/views/user-card.js.es6 | 24 +++++++++++++++---- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/app/assets/javascripts/discourse/views/user-card.js.es6 b/app/assets/javascripts/discourse/views/user-card.js.es6 index bdc35d5438..2e3fe8f3ea 100644 --- a/app/assets/javascripts/discourse/views/user-card.js.es6 +++ b/app/assets/javascripts/discourse/views/user-card.js.es6 @@ -84,18 +84,32 @@ export default Discourse.View.extend(CleansUp, { }, _willShow(target) { + //const direction = $('html').css('direction'); if (!target) { return; } const width = this.$().width(); + Ember.run.schedule('afterRender', () => { if (target) { let position = target.offset(); if (position) { - position.left += target.width() + 10; - const overage = ($(window).width() - 50) - (position.left + width); - if (overage < 0) { - position.left += overage; - position.top += target.height() + 48; + // Check for a right to left layout + if (($('html').css('direction')) === 'rtl') { + position.right = $(window).width() - position.left + 10; + position.left = 'auto'; + const overage = ($(window).width() - 50) - (position.right + width); + if (overage < 0) { + position.right += overage; + position.top += target.height() + 48; + } + } else { // The site direction is ltr + position.left += target.width() + 10; + + const overage = ($(window).width() - 50) - (position.left + width); + if (overage < 0) { + position.left += overage; + position.top += target.height() + 48; + } } position.top -= $('#main-outlet').offset().top; From 7d898ff5175c3fc940eeb9dcee60c73864e9a877 Mon Sep 17 00:00:00 2001 From: Simon Cossar Date: Thu, 18 Jun 2015 19:33:23 -0700 Subject: [PATCH 2/4] remove comment --- app/assets/javascripts/discourse/views/user-card.js.es6 | 1 - 1 file changed, 1 deletion(-) diff --git a/app/assets/javascripts/discourse/views/user-card.js.es6 b/app/assets/javascripts/discourse/views/user-card.js.es6 index 2e3fe8f3ea..f95fa1475f 100644 --- a/app/assets/javascripts/discourse/views/user-card.js.es6 +++ b/app/assets/javascripts/discourse/views/user-card.js.es6 @@ -84,7 +84,6 @@ export default Discourse.View.extend(CleansUp, { }, _willShow(target) { - //const direction = $('html').css('direction'); if (!target) { return; } const width = this.$().width(); From aa8b06aed2cf362379aa09213c8c3615135a39ec Mon Sep 17 00:00:00 2001 From: Simon Cossar Date: Fri, 19 Jun 2015 14:43:34 -0700 Subject: [PATCH 3/4] Clean up code --- app/assets/javascripts/discourse/views/user-card.js.es6 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/assets/javascripts/discourse/views/user-card.js.es6 b/app/assets/javascripts/discourse/views/user-card.js.es6 index f95fa1475f..6ed306c453 100644 --- a/app/assets/javascripts/discourse/views/user-card.js.es6 +++ b/app/assets/javascripts/discourse/views/user-card.js.es6 @@ -84,6 +84,7 @@ export default Discourse.View.extend(CleansUp, { }, _willShow(target) { + const rtl = ($('html').css('direction')) === 'rtl'; if (!target) { return; } const width = this.$().width(); @@ -92,8 +93,7 @@ export default Discourse.View.extend(CleansUp, { let position = target.offset(); if (position) { - // Check for a right to left layout - if (($('html').css('direction')) === 'rtl') { + if (rtl) { // The site direction is rtl position.right = $(window).width() - position.left + 10; position.left = 'auto'; const overage = ($(window).width() - 50) - (position.right + width); From 4896a7dec79203cd44265bb2372c2b4a223c3d26 Mon Sep 17 00:00:00 2001 From: Simon Cossar Date: Fri, 19 Jun 2015 15:31:03 -0700 Subject: [PATCH 4/4] Change const to a variable --- app/assets/javascripts/discourse/views/user-card.js.es6 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/assets/javascripts/discourse/views/user-card.js.es6 b/app/assets/javascripts/discourse/views/user-card.js.es6 index 6ed306c453..08b42013a2 100644 --- a/app/assets/javascripts/discourse/views/user-card.js.es6 +++ b/app/assets/javascripts/discourse/views/user-card.js.es6 @@ -96,7 +96,7 @@ export default Discourse.View.extend(CleansUp, { if (rtl) { // The site direction is rtl position.right = $(window).width() - position.left + 10; position.left = 'auto'; - const overage = ($(window).width() - 50) - (position.right + width); + let overage = ($(window).width() - 50) - (position.right + width); if (overage < 0) { position.right += overage; position.top += target.height() + 48; @@ -104,7 +104,7 @@ export default Discourse.View.extend(CleansUp, { } else { // The site direction is ltr position.left += target.width() + 10; - const overage = ($(window).width() - 50) - (position.left + width); + let overage = ($(window).width() - 50) - (position.left + width); if (overage < 0) { position.left += overage; position.top += target.height() + 48;