diff --git a/.gitignore b/.gitignore
index 4a3daa1f..850c9322 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,4 +17,5 @@ testUserData
src/browser/*.png
src/browser/*.svg
-src/browser/*.woff2
\ No newline at end of file
+src/browser/*.woff2
+src/browser/assets/fonts/
\ No newline at end of file
diff --git a/electron-builder.json b/electron-builder.json
index 70cad6e6..5d30301c 100644
--- a/electron-builder.json
+++ b/electron-builder.json
@@ -14,7 +14,9 @@
"main_bundle.js",
"browser/**/*{.html,.css,_bundle.js,.svg,.png}",
"assets/**/*",
+ "browser/assets/fonts/*",
"node_modules/bootstrap/dist/**",
+ "node_modules/font-awesome/{css,fonts}/**",
"node_modules/simple-spellchecker/dict/*.dic"
],
"protocols": [
diff --git a/src/assets/fonts/OpenSans-Light.woff2 b/src/assets/fonts/OpenSans-Light.woff2
new file mode 100644
index 00000000..66962d60
Binary files /dev/null and b/src/assets/fonts/OpenSans-Light.woff2 differ
diff --git a/src/assets/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-300.woff2 b/src/assets/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-300.woff2
new file mode 100644
index 00000000..9a71d1c7
Binary files /dev/null and b/src/assets/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-300.woff2 differ
diff --git a/src/assets/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-300italic.woff2 b/src/assets/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-300italic.woff2
new file mode 100644
index 00000000..ec0bfee7
Binary files /dev/null and b/src/assets/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-300italic.woff2 differ
diff --git a/src/assets/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-600italic.woff2 b/src/assets/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-600italic.woff2
new file mode 100644
index 00000000..2d20d770
Binary files /dev/null and b/src/assets/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-600italic.woff2 differ
diff --git a/src/assets/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-italic.woff2 b/src/assets/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-italic.woff2
new file mode 100644
index 00000000..9a96c63f
Binary files /dev/null and b/src/assets/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-italic.woff2 differ
diff --git a/src/assets/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-regular.woff2 b/src/assets/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-regular.woff2
new file mode 100644
index 00000000..0964c7c4
Binary files /dev/null and b/src/assets/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-regular.woff2 differ
diff --git a/src/browser/components/ExtraBar.jsx b/src/browser/components/ExtraBar.jsx
new file mode 100644
index 00000000..9c9f45dc
--- /dev/null
+++ b/src/browser/components/ExtraBar.jsx
@@ -0,0 +1,50 @@
+// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
+// See LICENSE.txt for license information.
+
+import React from 'react';
+import PropTypes from 'prop-types';
+import {Row, Button} from 'react-bootstrap';
+
+export default class ExtraBar extends React.Component {
+ handleBack = () => {
+ if (this.props.mattermostView) {
+ this.props.mattermostView.goBack();
+ }
+ }
+ render() {
+ let barClass = 'clear-mode';
+ if (!this.props.show) {
+ barClass = 'hidden';
+ } else if (this.props.darkMode) {
+ barClass = 'dark-mode';
+ }
+
+ return (
+
+ );
+ }
+}
+
+ExtraBar.propTypes = {
+ darkMode: PropTypes.bool,
+ mattermostView: PropTypes.object,
+ show: PropTypes.bool,
+};
\ No newline at end of file
diff --git a/src/browser/components/MainPage.jsx b/src/browser/components/MainPage.jsx
index 898c2b85..3e8f04e8 100644
--- a/src/browser/components/MainPage.jsx
+++ b/src/browser/components/MainPage.jsx
@@ -7,7 +7,7 @@
import url from 'url';
-import React from 'react';
+import React, {Fragment} from 'react';
import PropTypes from 'prop-types';
import {CSSTransition, TransitionGroup} from 'react-transition-group';
import {Grid, Row} from 'react-bootstrap';
@@ -29,6 +29,7 @@ import HoveringURL from './HoveringURL.jsx';
import Finder from './Finder.jsx';
import NewTeamModal from './NewTeamModal.jsx';
import SelectCertificateModal from './SelectCertificateModal.jsx';
+import ExtraBar from './ExtraBar.jsx';
export default class MainPage extends React.Component {
constructor(props) {
@@ -604,6 +605,14 @@ export default class MainPage extends React.Component {
});
}
+ showExtraBar = () => {
+ const ref = this.refs[`mattermostView${this.state.key}`];
+ if (typeof ref !== 'undefined') {
+ return !Utils.isTeamUrl(this.props.teams[this.state.key].url, ref.getSrc());
+ }
+ return false;
+ }
+
render() {
const self = this;
const tabsRow = (
@@ -742,12 +751,21 @@ export default class MainPage extends React.Component {
handleInterTeamLink={self.handleInterTeamLink}
ref={id}
active={isActive}
+ allowExtraBar={this.showExtraBar()}
/>);
});
+
const viewsRow = (
-
- {views}
-
);
+
+
+
+ {views}
+
+ );
let request = null;
let authServerURL = null;
diff --git a/src/browser/components/MattermostView.jsx b/src/browser/components/MattermostView.jsx
index 7c47ab12..0d912479 100644
--- a/src/browser/components/MattermostView.jsx
+++ b/src/browser/components/MattermostView.jsx
@@ -338,6 +338,9 @@ export default class MattermostView extends React.Component {
if (!this.props.active) {
classNames.push('mattermostView-hidden');
}
+ if (this.props.allowExtraBar) {
+ classNames.push('allow-extra-bar');
+ }
const loadingImage = !this.state.errorInfo && this.props.active && !this.state.isLoaded ? (
@@ -377,6 +380,7 @@ MattermostView.propTypes = {
useSpellChecker: PropTypes.bool,
onSelectSpellCheckerLocale: PropTypes.func,
handleInterTeamLink: PropTypes.func,
+ allowExtraBar: PropTypes.bool,
};
/* eslint-enable react/no-set-state */
diff --git a/src/browser/css/components/ExtraBar.css b/src/browser/css/components/ExtraBar.css
new file mode 100644
index 00000000..43e497a4
--- /dev/null
+++ b/src/browser/css/components/ExtraBar.css
@@ -0,0 +1,33 @@
+#extra-bar {
+ max-height: 76px;
+ transition: max-height 0.25s ease;
+ background-color: #f5f5f5;
+ -webkit-font-smoothing: antialiased;
+}
+
+#extra-bar div {
+ padding: 0 0.93em 0.2em;
+}
+
+#extra-bar.hidden {
+ max-height: 0px;
+}
+
+span.backLabel {
+ font-family: "Open Sans", sans-serif;
+ font-weight: normal;
+ line-height: 30px;
+ font-size: 14px;
+ padding-top: 0px;
+ padding-bottom: 0px;
+ color: #166de0;
+}
+
+span.backIcon {
+ margin-right: 4px;
+ font-size: 1.6rem;
+}
+
+.container-fluid button:first-child {
+ padding-left: 0px;
+}
\ No newline at end of file
diff --git a/src/browser/css/components/MattermostView.css b/src/browser/css/components/MattermostView.css
index 98ad72d7..c6724975 100644
--- a/src/browser/css/components/MattermostView.css
+++ b/src/browser/css/components/MattermostView.css
@@ -32,3 +32,7 @@
left: 0;
margin: auto;
}
+
+.allow-extra-bar webview {
+ top: 76px;
+}
\ No newline at end of file
diff --git a/src/browser/css/components/index.css b/src/browser/css/components/index.css
index 44417fde..58b039ca 100644
--- a/src/browser/css/components/index.css
+++ b/src/browser/css/components/index.css
@@ -8,4 +8,5 @@
@import url("TeamListItem.css");
@import url("Finder.css");
@import url("UpdaterPage.css");
-@import url("CertificateModal.css");
\ No newline at end of file
+@import url("CertificateModal.css");
+@import url("ExtraBar.css");
diff --git a/src/browser/css/index.css b/src/browser/css/index.css
index 1a75ac25..f3518b79 100644
--- a/src/browser/css/index.css
+++ b/src/browser/css/index.css
@@ -1,4 +1,33 @@
@import url("components/index.css");
+@import '~font-awesome/css/font-awesome.css';
+
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 300;
+ src: url('../../assets/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-300.woff2') format('woff2');
+}
+
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 300;
+ src: url('../../assets/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-300italic.woff2') format('woff2');
+}
+
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 400;
+ src: url('../../assets/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-regular.woff2') format('woff2');
+}
+
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 400;
+ src: url('../../assets/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-italic.woff2') format('woff2');
+}
@font-face {
font-family: 'Open Sans';
@@ -7,6 +36,13 @@
src: url('../../assets/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-600.woff2') format('woff2');
}
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 600;
+ src: url('../../assets/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-600italic.woff2') format('woff2');
+}
+
html {
height: 100%;
}
diff --git a/src/package-lock.json b/src/package-lock.json
index a3efcb8f..5266ba48 100644
--- a/src/package-lock.json
+++ b/src/package-lock.json
@@ -393,6 +393,11 @@
"sort-keys-length": "^1.0.0"
}
},
+ "font-awesome": {
+ "version": "4.7.0",
+ "resolved": "https://registry.npmjs.org/font-awesome/-/font-awesome-4.7.0.tgz",
+ "integrity": "sha1-j6jPBBGhoxr9B7BtKQK7n8gVoTM="
+ },
"fs-extra": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
diff --git a/src/package.json b/src/package.json
index 14b309bf..850e4c24 100644
--- a/src/package.json
+++ b/src/package.json
@@ -17,6 +17,7 @@
"electron-is-dev": "^1.0.1",
"electron-log": "^2.2.17",
"electron-updater": "4.0.6",
+ "font-awesome": "^4.7.0",
"prop-types": "^15.6.2",
"react": "^16.6.3",
"react-bootstrap": "~0.32.4",
diff --git a/webpack.config.renderer.js b/webpack.config.renderer.js
index 5d2008de..a9ecab49 100644
--- a/webpack.config.renderer.js
+++ b/webpack.config.renderer.js
@@ -42,7 +42,7 @@ module.exports = merge(base, {
loader: 'url-loader',
},
}, {
- test: /\.(svg|woff2)$/,
+ test: /\.(svg)$/,
use: [
{
loader: 'file-loader',
@@ -53,6 +53,14 @@ module.exports = merge(base, {
},
{loader: 'image-webpack-loader'},
],
+ }, {
+ test: /\.(eot|ttf|woff|woff2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/,
+ loader: 'file-loader',
+ options: {
+ name: '[name].[ext]',
+ outputPath: '/../assets/fonts',
+ publicPath: './assets/fonts',
+ },
}],
},
node: {