feat: remove administrate and new room buttons op737 (#55)

develop
c-cal 5 years ago committed by GitHub
parent 472179bfe7
commit 074508d3d7
  1. 4
      public/locales/en/dashboardTab.json
  2. 2
      public/locales/en/roomsTab.json
  3. 4
      public/locales/fr/dashboardTab.json
  4. 2
      public/locales/fr/roomsTab.json
  5. 18
      src/AdministrateButton.js
  6. 39
      src/NewRoomModal.js
  7. 4
      src/RoomsDashboardPanel.js
  8. 45
      src/RoomsTab.js
  9. 4
      src/UsersDashboardPanel.js
  10. 4
      src/css/NewItemButton.scss
  11. 5
      src/css/NewRoomModal.scss
  12. 7
      src/images/new-room-btn.svg

@ -5,7 +5,6 @@
"loggedUsers": "Number of users",
"monthlyUsers": "Connected during the last month",
"weeklyUsers": "Connected during the last week",
"administrateButton": "Administrate users",
"usersPerRole": "Distribution of users",
"connectedUsers": "Users activity",
"otherStatistics": "Other statistics",
@ -15,8 +14,7 @@
"title": "Conversations",
"regularRoomCount": "Number of rooms",
"activeRegularRoomCount": "Number of active rooms",
"administrateButton": "Administrate conversations",
"noRoomsMessage": "<strong>This Watcha installation does not have any conversations yet.<br/>You can create one in the \"Conversations\" tab.</strong>"
"noRoomsMessage": "<strong>This Watcha installation does not have any conversations yet.</strong>"
},
"applicationPanel": {
"title": "Application",

@ -1,7 +1,6 @@
{
"title": "Conversation",
"searchBoxPlaceholder": "Filter conversations",
"button": "New conversation",
"headers": {
"name": "Name",
"creator": "Creator",
@ -23,7 +22,6 @@
"enabled": "Open this conversation in a new tab",
"disabled": "You are not a member of this conversation"
},
"buttonTooltip": "Create a new conversation",
"statusHeaderTooltip": {
"title": "Conversation status",
"content": {

@ -6,7 +6,6 @@
"monthlyUsers": "Connectés au cours du dernier mois",
"weeklyUsers": "Connectés au cours de la dernière semaine",
"pendingInvitationUsers": "Invitations en attente",
"administrateButton": "Administrer les utilisateurs",
"usersPerRole": "Répartition des utilisateurs",
"connectedUsers": "Activité des utilisateurs",
"otherStatistics": "Autres statistiques",
@ -16,8 +15,7 @@
"title": "Conversations",
"regularRoomCount": "Nombre total de salons",
"activeRegularRoomCount": "Nombre total de salons actifs",
"administrateButton": "Administrer les conversations",
"noRoomsMessage": "<strong>Cette installation de Watcha ne compte aucunes conversations.<br/>Vous pouvez en créer un dans l'onglet \"Conversations\".</strong>"
"noRoomsMessage": "<strong>Cette installation de Watcha ne compte aucunes conversations.</strong>"
},
"applicationPanel": {
"title": "Application",

@ -1,7 +1,6 @@
{
"title": "Conversations",
"searchBoxPlaceholder": "Filtrer les conversations",
"button": "Nouvelle conversation",
"headers": {
"name": "Nom",
"creator": "Créateur",
@ -23,7 +22,6 @@
"enabled": "Ouvrir cette conversation dans un nouvel onglet",
"disabled": "Vous n'êtes pas membre de cette conversation"
},
"buttonTooltip": "Créer une nouvelle conversation",
"statusHeaderTooltip": {
"title": "Statut de la conversation",
"content": {

@ -1,18 +0,0 @@
import React from "react";
import Button from "react-bootstrap/Button";
import { useDispatchContext } from "./contexts";
export default ({ children, targetTab }) => {
const dispatch = useDispatchContext();
const onClick = () => {
dispatch({ tab: targetTab });
};
return (
<Button className="AdministrateButton" {...{ onClick }}>
{children}
</Button>
);
};

@ -1,39 +0,0 @@
import React, { Component } from "react";
import { withTranslation } from "react-i18next";
import Modal from "react-bootstrap/Modal";
import "./css/NewRoomModal.scss";
class NewRoomModal extends Component {
componentDidUpdate(prevProps) {
const { onHide, newRoomLocalEcho } = prevProps;
window.onstorage = event => {
if (event.key === "watcha_create_room") {
const roomProperties = event.newValue;
if (roomProperties === "null") {
onHide();
} else if (roomProperties) {
newRoomLocalEcho(JSON.parse(roomProperties));
onHide();
}
}
};
}
render() {
const { show, onHide, t } = this.props;
return (
<Modal centered aria-label={t("button")} {...{ show, onHide }}>
{show && (
<iframe
className="newRoomIframe"
title="Nextcloud"
src="/app/#/new"
/>
)}
</Modal>
);
}
}
export default withTranslation("roomsTab")(NewRoomModal);

@ -2,7 +2,6 @@ import React from "react";
import { Trans, useTranslation } from "react-i18next";
import Card from "react-bootstrap/Card";
import AdministrateButton from "./AdministrateButton";
import LabelTooltip from "./LabelTooltip";
import PanelRow from "./PanelRow";
@ -38,9 +37,6 @@ export default ({ roomsMetrics }) => {
<Card className="DashboardPanel">
<Card.Header>
<span>{t("roomsPanel.title")}</span>
<AdministrateButton targetTab="rooms">
{t("roomsPanel.administrateButton")}
</AdministrateButton>
</Card.Header>
<Card.Body className="DashboardPanel_body">
{regular_room_count === 0 && dm_room_count === 0 ? (

@ -3,8 +3,6 @@ import { Trans, useTranslation } from "react-i18next";
import { useMatrixClientContext } from "./contexts";
import HeaderTooltip from "./HeaderTooltip";
import NewItemButton from "./NewItemButton";
import NewRoomModal from "./NewRoomModal";
import RoomPermalink from "./RoomPermalink";
import Status from "./Status";
import TableTab, { compareLowerCase } from "./TableTab";
@ -15,7 +13,6 @@ export default () => {
const { t } = useTranslation(ns);
const [roomList, setRoomList] = useState(null);
const [modalShow, setModalShow] = useState(false);
const client = useMatrixClientContext();
@ -40,46 +37,6 @@ export default () => {
resolve,
};
const newItemButton = (
<NewItemButton
onClick={() => setModalShow(true)}
className="NewItemButton-room"
{...{ t }}
/>
);
function getRoomCreatorDisplayName(mxRoom) {
const currentState = mxRoom.currentState;
const createEvent = currentState.getStateEvents("m.room.create", "");
if (createEvent) {
const userId = createEvent.getSender();
return getDisplayName(userId);
}
}
const newRoomLocalEcho = ({ roomId, name }) => {
if (!roomList.some(room => room.roomId === roomId)) {
const mxRoom = client.getRoom(roomId);
const room = {
roomId,
name,
creator: getRoomCreatorDisplayName(mxRoom) || "",
memberCount: mxRoom.getInvitedAndJoinedMemberCount(),
status: null,
type: null,
};
setRoomList([...roomList, room]);
}
};
const newItemModal = (
<NewRoomModal
show={modalShow}
onHide={() => setModalShow(false)}
{...{ newRoomLocalEcho }}
/>
);
const typeHeaderPopoverContent = (
<>
<p>
@ -188,8 +145,6 @@ export default () => {
columns,
initialState,
plugins,
newItemButton,
newItemModal,
ns,
}}
/>

@ -2,7 +2,6 @@ import React from "react";
import { Trans, useTranslation } from "react-i18next";
import Card from "react-bootstrap/Card";
import AdministrateButton from "./AdministrateButton";
import AdministratorList from "./AdministratorList";
import LabelTooltip from "./LabelTooltip";
import PanelRow from "./PanelRow";
@ -120,9 +119,6 @@ export default ({ usersMetrics }) => {
<Card className="DashboardPanel">
<Card.Header>
<span>{t(`usersPanel.title`)}</span>
<AdministrateButton targetTab="users">
{t("usersPanel.administrateButton")}
</AdministrateButton>
</Card.Header>
<Card.Body className="DashboardPanel_body">
{usersPerRoleSection}

@ -18,7 +18,3 @@
.NewItemButton-user::before {
mask-image: url("#{$img}/new-user-btn.svg");
}
.NewItemButton-room::before {
mask-image: url("#{$img}/new-room-btn.svg");
}

@ -1,5 +0,0 @@
.newRoomIframe {
width: 510px;
height: 278px;
border: 0;
}

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Svg Vector Icons : http://www.onlinewebfonts.com/icon -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 1000 1000" enable-background="new 0 0 1000 1000" xml:space="preserve">
<metadata> Svg Vector Icons : http://www.onlinewebfonts.com/icon </metadata>
<g><path d="M672.5,427.5c0,16,5.5,29.7,16.6,41c11.1,11.4,24.6,17.1,40.6,17.1s29.7-5.7,41-17.1c11.4-11.4,17.1-25.1,17.1-41s-5.7-29.5-17.1-40.6c-11.4-11.1-25.1-16.6-41-16.6c-16,0-29.5,5.5-40.6,16.6C678,397.9,672.5,411.5,672.5,427.5L672.5,427.5z"/><path d="M441,427.5c0,16,5.8,29.8,17.5,41.5c11.7,11.7,25.5,17.5,41.5,17.5c16.6,0,30.6-5.8,42-17.5c11.4-11.7,17.1-25.5,17.1-41.5c0-16.6-5.7-30.6-17.1-42c-11.4-11.4-25.4-17.1-42-17.1c-16,0-29.8,5.7-41.5,17.1C446.8,396.9,441,410.9,441,427.5L441,427.5z"/><path d="M212.2,426.5c0,16,5.7,29.8,17.1,41.5c11.4,11.7,25.1,17.5,41,17.5c16.6,0,30.6-5.8,42-17.5c11.4-11.7,17.1-25.5,17.1-41.5c0-16-5.7-29.7-17.1-41c-11.4-11.4-25.4-17.1-42-17.1c-16,0-29.7,5.7-41,17.1C217.9,396.9,212.2,410.5,212.2,426.5L212.2,426.5z"/><path d="M883.9,761.5H767.6V645.2c0-20.6-16.8-37.3-37.4-37.3c-20.6,0-37.3,16.7-37.3,37.3v116.3H576.4c-20.6,0-37.3,16.8-37.3,37.4c0,20.6,16.7,37.3,37.3,37.3h116.3v116.3c0,20.6,16.7,37.3,37.3,37.3c20.6,0,37.4-16.7,37.4-37.3V836.3h116.3c20.6,0,37.3-16.7,37.3-37.3C921.2,778.3,904.5,761.5,883.9,761.5z"/><path d="M878.5,260c-22.1-50.3-52.3-93.9-90.6-130.9c-38.3-37-82.7-66.3-133.3-87.8C605.5,20.4,553.1,10,497.4,10c-1.6,0-3.3,0-4.9,0c-57.6,0.6-111.6,12-162.2,34.2c-50.6,22.1-94.6,52.2-131.9,90.1c-37.3,37.9-66.7,82.2-88.2,132.8c-21.5,50.6-31.9,104.7-31.3,162.2c1.3,54.4,11.9,105.2,31.8,152.3c19.9,47.1,46,88.4,78.3,123.8c10.1,11.4,16.3,23.6,18.5,36.5c2.2,13-3,22.9-15.7,29.9c-24,12.7-52.8,21.8-86.3,27.5c-6.3,1.3,6.5,7,38.4,17.1c31.9,10.1,80.8,18.3,146.6,24.7c29.7,3.2,56.5,5.1,80.2,5.7c11.9,0.3,23.2,0.5,33.9,0.5c10.8,0,21-0.2,30.6-0.5c3.1-0.1,5.9-0.3,9-0.4l0-0.5c15.4-2.6,27.1-15.9,27.1-32c0-18-14.6-32.5-32.5-32.5c-0.1,0-0.2,0-0.4,0l0-0.2c-1.3,0-2.5,0.1-3.9,0.2c-8.8,0.3-18.3,0.4-28.1,0.4c-10,0-20.7-0.2-31.8-0.4c-21.7-0.6-46.6-2.4-74.7-5.3c-12.6-1.2-24.1-2.5-34.7-3.7c5.6-14.1,7.4-29.7,4.6-45.8c-4-23.5-14.8-45.2-31.9-64.5l-0.2-0.3l-0.2-0.3c-27.1-29.8-49.4-65.1-66.3-105.1c-16.6-39.2-25.5-82.3-26.6-128c-0.5-48.1,8.3-93.7,26.1-135.7c18.2-42.7,43.3-80.6,74.6-112.5c31.3-31.8,68.8-57.4,111.4-76.1c42.3-18.5,88.3-28.2,136.7-28.7l4.2,0c46.6,0,91,8.8,131.8,26.2c42.9,18.2,81,43.3,113.3,74.5c32,30.9,57.6,68,76.2,110.3c18.5,42,28.1,87.8,28.6,136.2c0.5,45.5-7.3,88.8-23.3,128.7c-3.4,8.5-7.3,16.7-11.2,24.8l0.7,0.4c-4,5.4-6.5,12-6.5,19.3c0,18,14.6,32.5,32.5,32.5c13.4,0,24.9-8.1,29.9-19.7l0.3,0.2c5.4-10.8,10.5-21.8,15.1-33.3c19.3-48.1,28.6-99.3,28-153.7C912.1,364.2,900.7,310.3,878.5,260z"/></g>
</svg>

Before

Width:  |  Height:  |  Size: 2.9 KiB

Loading…
Cancel
Save