Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(277)

Unified Diff: ui/login/account_picker/md_user_pod_row.js

Issue 2947933002: Fix style issues for right-to-left languages (Closed)
Patch Set: Address comments Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/login/account_picker/md_user_pod_row.css ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/login/account_picker/md_user_pod_row.js
diff --git a/ui/login/account_picker/md_user_pod_row.js b/ui/login/account_picker/md_user_pod_row.js
index b82bbd0eb0f56177b33b04092e7ee594d33c550b..9be1eddb8c9ea1dbb547b02ec29679c68bf205e6 100644
--- a/ui/login/account_picker/md_user_pod_row.js
+++ b/ui/login/account_picker/md_user_pod_row.js
@@ -161,6 +161,16 @@ cr.define('login', function() {
el.classList.remove(cl);
}
+ /**
+ * Helper function to switch directions for right-to-left languages.
+ * @param {!HTMLElement} el Element whose style needs to change.
+ */
+ function switchDirection(el) {
+ var leftStyle = el.style.left;
+ el.style.left = el.style.right;
+ el.style.right = leftStyle;
+ }
+
/**
* Creates a user pod.
* @constructor
@@ -3885,18 +3895,21 @@ cr.define('login', function() {
handleAfterPodPlacement_: function() {
var pods = this.pods;
for (var pod of pods) {
- if (pods.length > POD_ROW_LIMIT && pod != this.mainPod_)
+ if (pod.getPodStyle() != UserPod.Style.LARGE)
continue;
// Make sure that user name on each large pod is centered and extra
// long names don't exceed maximum pod width.
var nameArea = pod.querySelector('.name-container');
var leftMargin = (CROS_POD_WIDTH - pod.nameElement.offsetWidth) / 2;
- if (leftMargin > 0)
+ if (leftMargin > 0) {
nameArea.style.left = cr.ui.toCssPx(leftMargin);
- else {
+ nameArea.style.right = 'auto';
+ } else {
pod.nameElement.style.width = cr.ui.toCssPx(CROS_POD_WIDTH);
nameArea.style.left = cr.ui.toCssPx(0);
+ nameArea.style.right = 'auto';
}
+
// Update info container area for public session pods.
if (pod.isPublicSessionPod) {
var infoElement = pod.querySelector('.info');
@@ -3905,11 +3918,15 @@ cr.define('login', function() {
var infoLeftMargin = (CROS_POD_WIDTH - totalWidth) / 2;
if (infoLeftMargin > 0) {
infoIcon.style.left = cr.ui.toCssPx(infoLeftMargin);
+ infoIcon.style.right = 'auto';
infoElement.style.left =
cr.ui.toCssPx(infoLeftMargin + PUBLIC_SESSION_ICON_WIDTH);
+ infoElement.style.right = 'auto';
} else {
infoIcon.style.left = cr.ui.toCssPx(0);
+ infoIcon.style.right = 'auto';
infoElement.style.left = cr.ui.toCssPx(PUBLIC_SESSION_ICON_WIDTH);
+ infoElement.style.right = 'auto';
infoElement.style.width = cr.ui.toCssPx(
CROS_POD_WIDTH - PUBLIC_SESSION_ICON_WIDTH -
infoElement.style.paddingLeft);
@@ -3919,6 +3936,7 @@ cr.define('login', function() {
if (pod.expanded)
this.centerPod_(pod, PUBLIC_EXPANDED_WIDTH, PUBLIC_EXPANDED_HEIGHT);
}
+
// Update action box menu position to ensure it doesn't overlap with
// elements outside the pod.
var actionBoxMenu = pod.querySelector('.action-box-menu');
@@ -3944,6 +3962,7 @@ cr.define('login', function() {
actionBoxMenu.style.top =
cr.ui.toCssPx(actionBoxButton.offsetHeight + MENU_TOP_PADDING);
}
+
// Update password container width based on the visibility of the
// custom icon container.
pod.querySelector('.password-container')
@@ -3954,11 +3973,24 @@ cr.define('login', function() {
pod.querySelector('.action-box-button.ripple-circle');
actionBoxRippleEffect.style.left = cr.ui.toCssPx(
pod.nameElement.offsetWidth + actionBoxButton.style.marginLeft);
+ actionBoxRippleEffect.style.right = 'auto';
actionBoxRippleEffect.style.top =
cr.ui.toCssPx(actionBoxButton.style.marginTop);
// Adjust the vertical position of the pod if pin keyboard is shown.
if (pod.isPinShown() && !this.isScreenShrinked_())
pod.top = (this.screenSize.height - CROS_POD_HEIGHT_WITH_PIN) / 2;
+
+ // In the end, switch direction of the above elements if right-to-left
+ // language is used.
+ if (isRTL()) {
+ switchDirection(nameArea);
+ switchDirection(actionBoxMenu);
+ switchDirection(actionBoxRippleEffect);
+ if (pod.isPublicSessionPod) {
+ switchDirection(pod.querySelector('.info'));
+ switchDirection(pod.querySelector('.learn-more'));
+ }
+ }
}
// Update the position of the sign-in banner if it's shown.
if ($('signin-banner').textContent.length != 0) {
« no previous file with comments | « ui/login/account_picker/md_user_pod_row.css ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698