fix sidebar and rtl

pull/8154/head
Karl Prieb 8 years ago
parent 7100709494
commit 026dffacad
  1. 5
      packages/rocketchat-livechat/app/client/lib/tapi18n.js
  2. 2
      packages/rocketchat-livechat/client/stylesheets/livechat.less
  3. 2
      packages/rocketchat-livechat/client/views/sideNav/livechat.html
  4. 5
      packages/rocketchat-theme/client/imports/components/messages.css
  5. 13
      packages/rocketchat-theme/client/imports/components/modal/create-channel.css
  6. 12
      packages/rocketchat-theme/client/imports/components/modal/full-modal.css
  7. 7
      packages/rocketchat-theme/client/imports/components/popover.css
  8. 10
      packages/rocketchat-theme/client/imports/components/sidebar/rooms-list.css
  9. 11
      packages/rocketchat-theme/client/imports/components/sidebar/sidebar-account.css
  10. 10
      packages/rocketchat-theme/client/imports/components/sidebar/sidebar-flex.css
  11. 1
      packages/rocketchat-theme/client/imports/components/sidebar/sidebar-item.css
  12. 2
      packages/rocketchat-theme/client/imports/components/sidebar/toolbar.css
  13. 2
      packages/rocketchat-theme/client/imports/general/rtl.css
  14. 3
      packages/rocketchat-theme/client/imports/general/variables.css
  15. 6
      packages/rocketchat-ui-message/client/messageBox.js
  16. 13
      packages/rocketchat-ui-sidenav/client/accountBox.js
  17. 2
      packages/rocketchat-ui-sidenav/client/roomList.html
  18. 1
      packages/rocketchat-ui/client/lib/menu.js
  19. 5
      packages/rocketchat-ui/client/lib/tapi18n.js
  20. 2
      packages/rocketchat-ui/client/views/app/createChannel.html
  21. 2
      packages/rocketchat-ui/client/views/app/popover.html
  22. 28
      packages/rocketchat-ui/client/views/app/popover.js

@ -20,4 +20,7 @@ this.tr = function(key, options, ...replaces) {
}
};
this.isRtl = (language) => language != null && ['ar', 'dv', 'fa', 'he', 'ku', 'ps', 'sd', 'ug', 'ur', 'yi'].includes(language.split('-').shift().toLowerCase());
this.isRtl = (lang) => {
const language = lang ? lang : localStorage.getItem('userLanguage');
return ['ar', 'dv', 'fa', 'he', 'ku', 'ps', 'sd', 'ug', 'ur', 'yi'].includes(language.split('-').shift().toLowerCase());
};

@ -625,8 +625,6 @@
}
.livechat-status {
float: right;
margin-right: 16px;
font-size: 20px;
line-height: 18px;
color: #9d9fa3;

@ -1,10 +1,10 @@
<template name="livechat">
<div class="livechat-section">
<h3 class="rooms-list__type {{isActive}}">
<span class="rooms-list__type-text--livechat">{{_ "Livechat"}}</span>
{{#with available}}
<i class="livechat-status {{status}} {{icon}}" title="{{hint}}"></i>
{{/with}}
{{_ "Livechat"}}
</h3>
{{#if guestPool}}

@ -91,3 +91,8 @@
.first-unread .message-actions {
top: 18px;
}
.rtl .message-actions {
right: auto;
left: 2px;
}

@ -27,6 +27,7 @@
&__switches {
display: flex;
flex-wrap: wrap;
}
& .rc-switch {
@ -47,3 +48,15 @@
opacity: 1;
}
}
@media (width <= 400px) {
.create-channel {
& .rc-switch {
width: 100%;
&:not(:last-child) {
margin-bottom: 2rem;
}
}
}
}

@ -41,5 +41,17 @@
@media (width < 1024px) {
.full-modal {
padding: 50px;
&__wrapper {
margin: 0;
}
}
}
@media (width <= 400px) {
.full-modal {
&__back-button {
top: -1.5rem;
}
}
}

@ -174,3 +174,10 @@
opacity: 1;
}
}
.rtl .rc-popover {
&__item-text {
margin-right: 0.25rem;
margin-left: auto;
}
}

@ -23,13 +23,13 @@
font-size: var(--rooms-list-title-text-size);
align-items: center;
&-text {
margin: 0 8px;
&-text--livechat {
flex: 1;
}
}
&__empty-room {
margin-left: calc(var(--sidebar-default-padding) - calc(var(--sidebar-default-padding) / 3));
padding-left: var(--sidebar-default-padding);
color: var(--rooms-list-empty-text-color);
@ -62,10 +62,6 @@
.rooms-list {
&__type,
&__empty-room {
margin-left: 0;
}
&__type {
padding: 0 calc(var(--sidebar-small-default-padding) - 4px) 0.5rem calc(var(--sidebar-small-default-padding) - 4px);
}

@ -1,9 +1,9 @@
.sidebar__account {
display: flex;
margin: calc(var(--sidebar-default-padding) / 2) 0;
margin: 0 0 var(--sidebar-header-small-padding);
padding: calc(var(--sidebar-default-padding) / 2) var(--sidebar-default-padding);
padding: var(--sidebar-header-small-padding) var(--sidebar-default-padding) var(--sidebar-header-small-padding);
align-items: center;
@ -21,6 +21,10 @@
& .sidebar__account-menu {
fill: var(--sidebar-account-username-color-darker);
}
&.active:hover {
background-color: var(--sidebar-background-light-hover);
}
}
&-thumb {
@ -29,7 +33,7 @@
width: var(--sidebar-account-thumb-size);
height: var(--sidebar-account-thumb-size);
margin: 0 0.5rem;
margin: 0 0.5rem 0 0;
}
&-data {
@ -144,6 +148,7 @@
@media (width <= 400px) {
.sidebar__account {
margin: 0 0 5px;
padding: var(--sidebar-header-small-padding) calc(var(--sidebar-small-default-padding) - 8px) var(--sidebar-header-small-padding);
&-thumb {

@ -5,6 +5,8 @@
color: var(--sidebar-flex-back-button-color);
font-size: 1rem;
padding: 1rem var(--sidebar-default-padding) 1.5rem;
}
&__back-icon {
@ -36,3 +38,11 @@
}
}
}
@media (width <= 400px) {
.sidebar-flex {
&__back-button {
padding: 1rem calc(var(--sidebar-small-default-padding) - 8px) 1.5rem;
}
}
}

@ -120,6 +120,7 @@
text-overflow: ellipsis;
font-size: var(--sidebar-item-text-size);
line-height: var(--sidebar-item-height);
}
}

@ -104,6 +104,6 @@
@media (width <= 400px) {
.toolbar {
padding: 0 var(--sidebar-small-default-padding) var(--sidebar-small-default-padding);
padding: 0 calc(var(--sidebar-small-default-padding) - 8px) var(--sidebar-small-default-padding);
}
}

@ -237,7 +237,7 @@
}
& .messages-box {
margin: 60px 0 0 20px;
margin: 60px 0 0;
& .new-message {
right: 50%;

@ -134,7 +134,8 @@
--sidebar-background-light-hover: var(--color-gray-light);
--sidebar-default-padding: 24px;
--sidebar-small-default-padding: 16px;
--sidebar-header-padding: var(--sidebar-default-padding);
--sidebar-header-padding: 16px;
--sidebar-header-small-padding: 12px;
--sidebar-footer-height: 70px;
--sidebar-footer-padding: var(--sidebar-header-padding);
--sidebar-small-header-padding: var(--sidebar-small-default-padding);

@ -1,4 +1,4 @@
/* globals fileUpload KonchatNotification chatMessages popover */
/* globals fileUpload KonchatNotification chatMessages popover isRtl */
import toastr from 'toastr';
import moment from 'moment';
@ -425,6 +425,7 @@ Template.messageBox.events({
},
'click .rc-message-box__action-menu'(e) {
const groups = RocketChat.messageBox.actions.get();
const textArea = document.querySelector('.rc-message-box__textarea');
const config = {
popoverClass: 'message-box',
@ -451,6 +452,9 @@ Template.messageBox.events({
x: document.querySelector('.rc-message-box__textarea').getBoundingClientRect().right + 10,
y: document.querySelector('.rc-message-box__textarea').getBoundingClientRect().top
},
customCSSProperties: {
left: isRtl() ? `${ textArea.getBoundingClientRect().left - 10 }px` : `${ textArea.getBoundingClientRect().right + 10 }px`
},
data: {
rid: this._id
},

@ -1,4 +1,4 @@
/* globals popover */
/* globals popover isRtl */
Template.accountBox.helpers({
myUserInfo() {
@ -93,7 +93,9 @@ Template.accountBox.events({
icon: item.icon,
name: t(item.name),
type: 'open',
id: item.name
id: item.name,
href: item.href,
sideNav: item.sideNav
};
}).concat([
adminOption,
@ -116,11 +118,12 @@ Template.accountBox.events({
}
],
position: {
top: accountBox.offsetHeight + parseInt(getComputedStyle(accountBox)['padding-bottom'].replace('px', '')),
left: parseInt(getComputedStyle(accountBox)['padding-left'].replace('px', ''))
top: accountBox.offsetHeight
},
customCSSProperties: {
width: `${ accountBox.offsetWidth - parseInt(getComputedStyle(accountBox)['padding-left'].replace('px', '')) * 2 }px`
width: `${ accountBox.offsetWidth - parseInt(getComputedStyle(accountBox)['padding-left'].replace('px', '')) * 2 }px`,
left: isRtl() ? 'auto' : getComputedStyle(accountBox)['padding-left'],
right: isRtl() ? getComputedStyle(accountBox)['padding-right'] : 'auto'
}
};

@ -5,7 +5,7 @@
{{#with rooms}}
{{#if shouldAppear .. .}}
<h3 class="rooms-list__type">
<div class="rooms-list__type-text">{{_ ../label}}</div>
<span class="rooms-list__type-text">{{_ ../label}}</span>
{{#with count}}
{{#if .}}
<span class="badge">{{.}}</span>

@ -124,7 +124,6 @@ this.menu = new class extends EventEmitter {
this.wrapper.css('overflow', 'hidden');
this.sidebarWrap.css('background-color', '#000');
this.sidebarWrap.css('opacity', map((Math.abs(diff) / width), 0, 1, -.1, .8).toFixed(2));
console.log(sideNavW, diff);
this.isRtl ? this.sidebar.css('transform', `translate3d(${ (sideNavW + diff).toFixed(3) }px, 0 , 0)`) : this.sidebar.css('transform', `translate3d(${ (diff - sideNavW).toFixed(3) }px, 0 , 0)`);
}
touchend() {

@ -20,4 +20,7 @@ this.tr = function(key, options, ...replaces) {
}
};
this.isRtl = (language) => language != null && ['ar', 'dv', 'fa', 'he', 'ku', 'ps', 'sd', 'ug', 'ur', 'yi'].includes(language.split('-').shift().toLowerCase());
this.isRtl = (lang) => {
const language = lang ? lang : localStorage.getItem('userLanguage');
return ['ar', 'dv', 'fa', 'he', 'ku', 'ps', 'sd', 'ug', 'ur', 'yi'].includes(language.split('-').shift().toLowerCase());
};

@ -8,7 +8,7 @@
<div class="create-channel__switches">
<div class="rc-switch">
<label class="rc-switch__label" tabindex="-1">
<input type="checkbox" class="rc-switch__input" name="type" value="d" checked>
<input type="checkbox" class="rc-switch__input" name="type" value="d">
<span class="rc-switch__button">
<span class="rc-switch__button-inside"></span>
</span>

@ -9,7 +9,7 @@
{{/if}}
<ul class="rc-popover__list">
{{#each item in group.items}}
<li class="rc-popover__item rc-popover__item--{{item.class}}" data-type={{item.type}} data-id={{item.id}} >
<li class="rc-popover__item rc-popover__item--{{item.class}}" data-type={{item.type}} data-id={{item.id.toLowerCase}} data-href={{item.href}} data-sidenav={{item.sideNav}}>
{{#if item.icon}}
<span class="rc-popover__icon">
{{> icon block="rc-popover__icon-element" icon=item.icon }}

@ -1,4 +1,4 @@
/* globals popover */
/* globals popover isRtl */
this.popover = {
renderedPopover: null,
@ -39,7 +39,7 @@ Template.popover.onRendered(function() {
const mousePosition = this.data.mousePosition;
let top;
if (mousePosition.y <= popoverHeight) {
if (mousePosition.y <= popoverHeightHalf) {
top = 10;
} else if (mousePosition.y + popoverHeightHalf > windowHeight) {
top = windowHeight - popoverHeight - 10;
@ -47,19 +47,19 @@ Template.popover.onRendered(function() {
top = mousePosition.y - popoverHeightHalf;
}
let right;
let left;
if (mousePosition.x + popoverWidth >= windowWidth) {
right = mousePosition.x - popoverWidth;
left = mousePosition.x - popoverWidth;
} else if (mousePosition.x <= popoverWidth) {
right = 10;
left = isRtl() ? mousePosition.x + 10 : 10;
} else if (mousePosition.x <= windowWidth / 2) {
right = mousePosition.x;
left = mousePosition.x;
} else {
right = mousePosition.x - popoverWidth;
left = mousePosition.x - popoverWidth;
}
popoverContent.style.top = `${ top }px`;
popoverContent.style.left = `${ right }px`;
popoverContent.style.left = `${ left }px`;
}
if (customCSSProperties) {
@ -96,9 +96,9 @@ Template.popover.events({
popover.close();
},
'click [data-type="open"]'(e) {
const open = e.currentTarget.dataset.id;
const data = e.currentTarget.dataset;
switch (open) {
switch (data.id) {
case 'account':
SideNav.setFlex('accountFlex');
SideNav.openFlex();
@ -119,12 +119,12 @@ Template.popover.events({
break;
}
if (this.href) {
FlowRouter.go(this.href);
if (data.href) {
FlowRouter.go(data.href);
}
if (this.sideNav != null) {
SideNav.setFlex(this.sideNav);
if (data.sideNav) {
SideNav.setFlex(data.sideNav);
SideNav.openFlex();
}

Loading…
Cancel
Save