Compare commits

..

109 Commits

Author SHA1 Message Date
Luke Barnard
3d56247ef3 StatusBarArea height of 50px when typing/calling
Change the height of the StatusBar (and for calls, typing) to 48px such that with the StatusAreaBox_line, they add to 50px.
2017-02-20 15:22:56 +00:00
Richard van der Hoff
5c87b8045a Merge remote-tracking branch 'origin/master' into develop 2017-02-20 09:14:22 +00:00
Richard van der Hoff
d8c877fe6e Update ISSUE_TEMPLATE.md 2017-02-20 09:14:01 +00:00
Matthew Hodgson
67a7ed1e34 fix spacing of permalinks to info events 2017-02-20 01:49:11 +02:00
Matthew Hodgson
eabe4f5c29 hopefully fix https://github.com/vector-im/riot-web/issues/3270 2017-02-20 01:48:10 +02:00
Matthew Hodgson
f91f5cb65e fix RTE dark theme 2017-02-20 01:27:05 +02:00
Matthew Hodgson
5951e8fb27 don't try to darktheme scalar for now 2017-02-20 01:18:48 +02:00
Matthew Hodgson
be79ccccf6 fix dark theme room join bar 2017-02-20 01:15:54 +02:00
Matthew Hodgson
aba121aab0 fix cursor 2017-02-19 04:13:29 +02:00
Matthew Hodgson
c146ddf29b turn on rageshake for desktop 2017-02-18 23:59:45 +02:00
Matthew Hodgson
5469270e41 spell out where the PGP key lives for releases 2017-02-18 23:48:58 +02:00
Matthew Hodgson
457b64037d renormalise ringtone to 66% amplitude 2017-02-18 23:04:38 +02:00
David Baker
a0f572c26e Don't hardcode home dir in jenkins script 2017-02-17 19:18:58 +00:00
David Baker
f51669664c Merge pull request #3250 from vector-im/dbkr/support_kick_ban_reasons
CSS for ban / kick reason prompt
2017-02-17 17:39:38 +00:00
David Baker
75f2ba6b19 CSS for ban / kick reason prompt
For https://github.com/matrix-org/matrix-react-sdk/pull/710
2017-02-17 17:29:57 +00:00
David Baker
e8d5e8c8ab Merge pull request #3246 from vector-im/dbkr/allow_forget_ban
Allow forgetting rooms you're banned from
2017-02-17 16:36:19 +00:00
David Baker
6aa5266029 Merge remote-tracking branch 'origin/develop' into dbkr/allow_forget_ban 2017-02-17 16:19:15 +00:00
David Baker
03dd25624f Allow forgetting rooms you're banned from
From the room tag context menu.

Also fix the room tag context menu, which was missing sdk and
modal imports. Switch over the import while we're at it.
2017-02-17 15:52:07 +00:00
David Baker
0d1c53285b Merge pull request #3245 from vector-im/dbkr/fix_manifest_icon_paths
Fix icon paths in manifest
2017-02-17 15:41:49 +00:00
David Baker
aad880b3b5 Fix icon paths in manifest
They are not at the root of the web server, they are at the same
path as the manifest
2017-02-17 15:31:28 +00:00
Kegsay
5c2049935a Merge pull request #3242 from vector-im/kegan/fix-tests-for-indexeddb
Fix broken tests caused by adding IndexedDB support
2017-02-17 14:54:56 +00:00
Kegan Dougal
d876e4482b Fix broken tests caused by adding IndexedDB support
This test assumed that `/sync` would be called immediately after rendering
`<MatrixChat />` but this isn't true in an IndexedDB world: it bounces via
`store.startup()` first.

It looks like the tests resolve this by adding `q.delay(1)` so that's what
I've done: in the future it would be better to extend `HttpBackend` to have
a `waitFor(req) Promise` function so we can removing timing from the tests.
2017-02-17 14:32:08 +00:00
Richard van der Hoff
75097471b6 Merge pull request #3227 from vector-im/dbkr/add_unban_button
CSS for un-ban button in RoomSettings
2017-02-17 12:46:13 +00:00
David Baker
8224d7fc60 Oops - remove empty CSS selector 2017-02-16 15:14:53 +00:00
Luke Barnard
f2654616eb Merge pull request #3239 from vector-im/luke/css-remove-avatar-initial-z-index
Remove z-index property on avatar initials
2017-02-16 13:45:45 +00:00
Luke Barnard
fc0e460222 Remove z-index property on avatar initials
This seemingly doesn't do anything and upsets things when avatars overlap (i.e. for the new typing avatars).

See https://github.com/matrix-org/matrix-react-sdk/pull/699
2017-02-16 11:42:32 +00:00
Luke Barnard
827692b9b0 Merge pull request #3233 from vector-im/luke/css-status-bar-icon-positioning
Reposition certain icons in the status bar
2017-02-15 15:56:41 +00:00
Luke Barnard
bfad7612c6 Re-position certain icons in the status bar
Also, make sure the typing avatars line up with the arrow to jump to the bottom of the timeline.
Also, get rid of any height jumps when a call starts. border 1px hidden does not add any height to an element, it is effectively the same as none.
2017-02-15 15:45:24 +00:00
David Baker
f1f54c95ab Copyright 2017-02-14 18:11:36 +00:00
David Baker
5ecf560675 CSS for un-ban button in RoomSettings 2017-02-14 17:56:42 +00:00
David Baker
b9dd419d04 Merge pull request #3224 from vector-im/dbkr/confirm_ban
CSS for kick/ban confirmation dialog
2017-02-14 17:31:44 +00:00
David Baker
324e596e28 CSS for kick/ban confirmation dialog 2017-02-14 13:42:06 +00:00
David Baker
1bc9ba46c7 Merge pull request #3217 from vector-im/dbkr/interactive_auth_nondialog
Style for split-out interactive auth
2017-02-14 10:55:01 +00:00
David Baker
c6ccfa0616 Copyright 2017-02-13 16:15:27 +00:00
David Baker
9e2793dfed Style for split-out interactive auth
For https://github.com/matrix-org/matrix-react-sdk/pull/691
2017-02-13 16:10:43 +00:00
Matthew Hodgson
6a7daaf6c4 remove GA, given it's increasingly useless given Riot/Desktop doesn't use it, plus it obviously has privacy implications. It may get re-added as opt-in in future, so we're not sailing entirely blind on how folks use the app, or we may switch to Piwik etc instead. 2017-02-10 17:21:02 +00:00
David Baker
b6741d9b10 Merge pull request #3196 from vector-im/luke/rts-thread-team-token
Use the teamToken threaded through from react sdk
2017-02-10 10:43:24 +00:00
Luke Barnard
78aaf6b47e Use the teamToken threaded through from react sdk
The bottom left menu now uses the same teamToken that the rest of the components use. This will require changes to react-sdk: https://github.com/matrix-org/matrix-react-sdk/pull/684
2017-02-10 09:56:15 +00:00
Matthew Hodgson
f2a6d2cc5a fix selector color 2017-02-09 12:01:00 +00:00
Matthew Hodgson
22b7b8efea tweak sending color some more 2017-02-09 11:02:42 +00:00
Matthew Hodgson
e392d6c16b fix CSS for import/export buttons 2017-02-09 02:00:23 +00:00
Matthew Hodgson
2eec9b10ef fix dark skin event sending color 2017-02-09 01:42:36 +00:00
Matthew Hodgson
64f0beb1eb fix https://github.com/vector-im/riot-web/issues/3136 2017-02-09 01:33:26 +00:00
Matthew Hodgson
f6b6673a41 fix selection text colour in dark theme 2017-02-09 01:20:30 +00:00
Matthew Hodgson
d8042b193b be more specific on flex 2017-02-09 00:10:57 +00:00
Matthew Hodgson
5f745ff733 hopefully fix TopRight layout bug 2017-02-09 00:10:45 +00:00
Matthew Hodgson
bac142ad26 fix tintability of home button 2017-02-08 23:28:30 +00:00
Matthew Hodgson
caa30a742b fix table visuals in dark skin 2017-02-08 23:19:05 +00:00
Richard van der Hoff
d7bc47c357 Merge pull request #3169 from vector-im/kegan/bugs-file-server
rageshake: Add file server with basic auth
2017-02-08 10:37:35 +00:00
Kegan Dougal
5f678eb838 Review comments: change realm name 2017-02-08 10:36:39 +00:00
Kegan Dougal
64eb1f08a9 rageshake: Add file server with basic auth
Set via environment variables on startup.
2017-02-08 09:59:41 +00:00
David Baker
85e6057598 Merge pull request #3162 from vector-im/luke/rts-fix-blm-team-token
Fix bug with home icon not appearing when logged in as team member
2017-02-08 09:54:33 +00:00
Richard van der Hoff
b080e5797b Merge remote-tracking branch 'origin/master' into develop 2017-02-07 21:46:08 +00:00
Richard van der Hoff
f629b2f631 CONTRIBUTING: s/vector/riot/ 2017-02-07 21:45:34 +00:00
Richard van der Hoff
c4ee47aa15 Merge branch 'master' into develop 2017-02-07 21:40:18 +00:00
Richard van der Hoff
0c7c31e3bb Merge branch 'master' into rav/issue_template 2017-02-07 21:29:35 +00:00
Richard van der Hoff
0442258865 More issue_template tweaks
Encourage rageshaking

don't insist on version for the web app
2017-02-07 21:25:58 +00:00
Richard van der Hoff
95f529f9a4 Tweak ISSUE_TEMPLATE 2017-02-07 20:35:14 +00:00
David Baker
be71da5657 Merge pull request #3150 from vector-im/kegan/dir-per-bug
Store bug reports in separate directories
2017-02-07 16:18:00 +00:00
Kegan Dougal
f16bb85f9b Review comments 2017-02-07 16:04:06 +00:00
Luke Barnard
5b239adfb8 Fix bug with home icon not appearing when logged in as team member 2017-02-07 14:58:25 +00:00
David Baker
2f54034afe Merge pull request #3103 from vector-im/luke/rts-welcome-pages
RTS Welcome Pages
2017-02-07 11:52:59 +00:00
Luke Barnard
fa552ad5af Merge branch 'develop' into luke/rts-welcome-pages 2017-02-07 12:41:52 +01:00
Luke Barnard
35bc384c51 Set team token in state on mount 2017-02-07 11:39:31 +00:00
Luke Barnard
d490bd8638 Use home.html rather than welcome.html 2017-02-07 11:35:17 +00:00
Luke Barnard
8d4f81ff67 Remove redundant inline style 2017-02-07 11:34:49 +00:00
Luke Barnard
648204b6f9 Use import 2017-02-07 11:34:34 +00:00
Luke Barnard
3f49f020cf Copyright 2017-02-07 11:19:01 +00:00
Kegan Dougal
678eccf33d Store bug reports in separate directories 2017-02-06 16:18:08 +00:00
Kegsay
1f0b4853be Merge pull request #3149 from vector-im/kegan/go-stds
rageshake: Abide by Go standards
2017-02-06 15:40:58 +00:00
Kegan Dougal
db31f0a087 Host API under /api. Use filepath.Join rather than string concatenation 2017-02-06 15:31:53 +00:00
Kegan Dougal
d4247e0179 Dump to bugs subdirectory 2017-02-06 14:56:06 +00:00
Richard van der Hoff
af765c7522 Merge branch 'master' into develop
(Keep react-sdk and js-sdk on develop)
2017-02-04 11:04:25 +00:00
Richard van der Hoff
dc1a0c554f v0.9.7 2017-02-04 10:55:46 +00:00
Richard van der Hoff
08cdf21aee Prepare changelog for v0.9.7 2017-02-04 10:55:46 +00:00
Richard van der Hoff
cd7bc3bfd3 Bump to js-sdk 0.7.5 and react-sdk 0.8.6 2017-02-04 10:52:41 +00:00
Kegsay
18ac71e8c0 Merge pull request #3072 from vector-im/kegan/rageshake-server
Bug report server script
2017-02-03 17:33:51 +00:00
Richard van der Hoff
dea557619c v0.9.7-rc.3 2017-02-03 15:44:37 +00:00
Richard van der Hoff
961f279a82 Prepare changelog for v0.9.7-rc.3 2017-02-03 15:44:37 +00:00
David Baker
e0be012737 Bump olm version
Looks like this is causing pickle errors on packaged builds.
2017-02-03 15:35:20 +00:00
Richard van der Hoff
d176e83e94 Bump matrix-js-sdk and react-sdk 2017-02-03 15:34:15 +00:00
Richard van der Hoff
541eb45e1a Jenkins: use default olm
... to stop us making a release and realising we forgot to bump the olm version
in vector-web.
2017-02-03 15:06:03 +00:00
Richard van der Hoff
53e5c7eebe Unpin js-sdk & react-sdk 2017-02-03 14:39:11 +00:00
Richard van der Hoff
640beeedda Merge pull request #3125 from vector-im/dbkr/olm_version
Bump olm version
2017-02-03 13:52:37 +00:00
David Baker
5285d56a45 Bump olm version
Looks like this is causing pickle errors on packaged builds.
2017-02-03 13:51:02 +00:00
Luke Barnard
e77709bc71 Merge branch 'develop' into luke/rts-welcome-pages
Conflicts:
	src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomPreviewBar.scss
2017-02-02 14:03:21 +00:00
Luke Barnard
a2622a556c Remove SdkConfig dep 2017-02-02 14:01:12 +00:00
Luke Barnard
6a9e5deb7b Remove commented code 2017-02-02 14:00:21 +00:00
Luke Barnard
20a7e3adf9 Migrate existing pages over to RTS
See matrix-org/riot-team-server#14
2017-02-02 13:58:22 +00:00
Luke Barnard
f2e62ff439 Use RTS URL passed through 2017-02-02 11:58:20 +00:00
Luke Barnard
4a34bee2dc Use localStorage mx_team_token to decide welcome page 2017-02-02 11:12:43 +00:00
Luke Barnard
40609d7da3 then->done 2017-02-01 11:39:23 +00:00
Luke Barnard
1f3ab4425a Merge branch 'develop' into matthew/homepages
Conflicts:
	src/component-index.js
	src/skins/vector/css/matrix-react-sdk/views/rooms/_RoomPreviewBar.scss
2017-02-01 11:34:24 +00:00
Kegan Dougal
22bb0f9d30 UTC please 2017-01-26 12:17:47 +00:00
Kegan Dougal
6a40ad8a20 Fail the request if we clash files
Rather than make the file names incredibly long (by adding ms),
just 500 it and expect the user to resend.
2017-01-26 11:57:56 +00:00
Kegan Dougal
aae62ff94e store logs 2017-01-26 11:44:07 +00:00
Kegan Dougal
e8c51a0b54 gzip bug reports when storing on disk. Set max payload size 2017-01-26 11:28:38 +00:00
Kegan Dougal
646ace6e59 Merge branch 'develop' into kegan/rageshake-server 2017-01-26 10:48:40 +00:00
Kegan Dougal
9d034c77a5 Initial rageshake server 2017-01-25 17:27:07 +00:00
Kevin McDonald
650269d356 Add ISSUE_TEMPLATE 2016-12-26 21:33:27 -07:00
Matthew Hodgson
3155d79a7e chatbot summit stuff 2016-11-17 13:35:36 +02:00
Matthew Hodgson
1599f3a666 make logo scale 2016-11-14 01:46:42 +00:00
Matthew Hodgson
f911f0cfca geektime verbiage tweaks 2016-11-13 20:18:19 +00:00
Matthew Hodgson
1fb14d5a40 plug mobile apps 2016-11-13 14:32:00 +00:00
Matthew Hodgson
616c20fc1e fix img path 2016-11-13 14:26:54 +00:00
Matthew Hodgson
6cf14e6a2a fix room alias 2016-11-13 14:19:55 +00:00
Matthew Hodgson
9f812b7069 fix img path 2016-11-13 14:18:31 +00:00
Matthew Hodgson
efabf35613 make room previews more obvious 2016-11-13 14:13:32 +00:00
Matthew Hodgson
3f640139d2 quick and dirty support for custom welcome pages, with an example for geektime techfest 2016-11-13 14:10:33 +00:00
39 changed files with 515 additions and 79 deletions

44
.github/ISSUE_TEMPLATE.md vendored Normal file
View File

@@ -0,0 +1,44 @@
<!-- This is a bug report template. By following the instructions below and
filling out the sections with your information, you will help the us to get all
the necessary data to fix your issue.
You can also preview your report before submitting it. You may remove sections
that aren't relevant to your particular case.
Text between <!-- and --> marks will be invisible in the report.
-->
### Description
Describe here the problem that you are experiencing, or the feature you are requesting.
### Steps to reproduce
- For bugs, list the steps
- that reproduce the bug
- using hyphens as bullet points
Describe how what happens differs from what you expected.
Log: sent/not sent? <!-- You can send us the app's logs via the 'Report bug'
link on the 'Settings' page. Very important for hard-to-reproduce bugs. Please
file a bug here too! -->
<!-- Include screenshots if possible: you can drag and drop images below. -->
### Version information
<!-- IMPORTANT: please answer the following questions, to help us narrow down the problem -->
- **Platform**: web (in-browser) or desktop?
For the web app:
- **Browser**: Chrome, Safari, Firefox? which version?
- **OS**: Windows, macOS, Ubuntu, Arch Linux, etc?
- **URL**: riot.im/develop / riot.im/app / somewhere else? If a private server, what version of riot-web?
For the desktop app:
- **OS**: Windows, macOS, Ubuntu, Arch Linux, etc?
- **Version**: 0.x.y <!-- check the user settings panel if unsure -->

View File

@@ -1,3 +1,18 @@
Changes in [0.9.7](https://github.com/vector-im/riot-web/releases/tag/v0.9.7) (2017-02-04)
==========================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.9.7-rc.3...v0.9.7)
* Update to matrix-js-sdk 0.7.5 (no changes from 0.7.5-rc.3)
* Update to matrix-react-sdk 0.8.6 (no changes from 0.8.6-rc.3)
Changes in [0.9.7-rc.3](https://github.com/vector-im/riot-web/releases/tag/v0.9.7-rc.3) (2017-02-03)
====================================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.9.7-rc.2...v0.9.7-rc.3)
* Update to latest Olm to fix key import/export and use of megolm sessions
created on more recent versions
* Update to latest matrix-react-sdk and matrix-js-sdk to fix e2e device
handling
Changes in [0.9.7-rc.2](https://github.com/vector-im/riot-web/releases/tag/v0.9.7-rc.2) (2017-02-03)
====================================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.9.7-rc.1...v0.9.7-rc.2)
@@ -5,7 +20,6 @@ Changes in [0.9.7-rc.2](https://github.com/vector-im/riot-web/releases/tag/v0.9.
* Update matrix-js-sdk to get new device change
notifications interface for more reliable e2e crypto
Changes in [0.9.7-rc.1](https://github.com/vector-im/riot-web/releases/tag/v0.9.7-rc.1) (2017-02-03)
====================================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.9.6...v0.9.7-rc.1)

View File

@@ -1,4 +1,4 @@
Contributing code to Vector
===========================
Contributing code to Riot
=========================
Vector follows the same pattern as https://github.com/matrix-org/synapse/blob/master/CONTRIBUTING.rst
Riot follows the same pattern as https://github.com/matrix-org/synapse/blob/master/CONTRIBUTING.rst.

View File

@@ -21,6 +21,9 @@ released version of Riot:
as desired. See below for details.
1. Enter the URL into your browser and log into Riot!
Releases are signed by PGP, and can be checked against the public key
at https://riot.im/packages/keys/riot-master.asc
Note that Chrome does not allow microphone or webcam access for sites served
over http (except localhost), so for working VoIP you will need to serve Riot
over https.

View File

@@ -5,6 +5,7 @@
"brand": "Riot",
"integrations_ui_url": "https://scalar.vector.im/",
"integrations_rest_url": "https://scalar.vector.im/api",
"bug_report_endpoint_url": "https://riot.im/bugreports/submit",
"enableLabs": true,
"roomDirectory": {
"servers": [

View File

@@ -2,7 +2,7 @@
"name": "riot-web",
"productName": "Riot",
"main": "electron/src/electron-main.js",
"version": "0.9.7-rc.2",
"version": "0.9.7",
"description": "A feature-rich client for Matrix.org",
"author": "Vector Creations Ltd.",
"repository": {
@@ -62,8 +62,8 @@
"gfm.css": "^1.1.1",
"highlight.js": "^9.0.0",
"linkifyjs": "^2.1.3",
"matrix-js-sdk": "0.7.5-rc.2",
"matrix-react-sdk": "0.8.6-rc.2",
"matrix-js-sdk": "matrix-org/matrix-js-sdk#develop",
"matrix-react-sdk": "matrix-org/matrix-react-sdk#develop",
"modernizr": "^3.1.0",
"q": "^1.4.1",
"react": "^15.4.0",
@@ -133,7 +133,7 @@
"webpack-dev-server": "^1.16.2"
},
"optionalDependencies": {
"olm": "https://matrix.org/packages/npm/olm/olm-2.1.0.tgz"
"olm": "https://matrix.org/packages/npm/olm/olm-2.2.1.tgz"
},
"build": {
"appId": "im.riot.app",

Binary file not shown.

Binary file not shown.

View File

@@ -2,37 +2,37 @@
"name": "Riot",
"icons": [
{
"src": "\/icons\/android-chrome-36x36.png",
"src": "android-chrome-36x36.png",
"sizes": "36x36",
"type": "image\/png",
"density": "0.75"
},
{
"src": "\/icons\/android-chrome-48x48.png",
"src": "android-chrome-48x48.png",
"sizes": "48x48",
"type": "image\/png",
"density": "1.0"
},
{
"src": "\/icons\/android-chrome-72x72.png",
"src": "android-chrome-72x72.png",
"sizes": "72x72",
"type": "image\/png",
"density": "1.5"
},
{
"src": "\/icons\/android-chrome-96x96.png",
"src": "android-chrome-96x96.png",
"sizes": "96x96",
"type": "image\/png",
"density": "2.0"
},
{
"src": "\/icons\/android-chrome-144x144.png",
"src": "android-chrome-144x144.png",
"sizes": "144x144",
"type": "image\/png",
"density": "3.0"
},
{
"src": "\/icons\/android-chrome-192x192.png",
"src": "android-chrome-192x192.png",
"sizes": "192x192",
"type": "image\/png",
"density": "4.0"

View File

@@ -2,7 +2,7 @@
set -e
export NVM_DIR="/home/jenkins/.nvm"
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
nvm use 6
@@ -11,13 +11,18 @@ set -x
npm install
# apparently npm 3.10.3 on node 6.4.0 doesn't upgrade #develop target with npm install unless explicitly asked.
npm install matrix-react-sdk matrix-js-sdk
npm install matrix-react-sdk matrix-js-sdk olm
# install olm. A naive 'npm i ./olm/olm-*.tgz' fails because it uses the url
# from our package.json (or even matrix-js-sdk's) in preference.
tar -C olm -xz < olm/olm-*.tgz
rm -r node_modules/olm
cp -r olm/package node_modules/olm
#
# disabled for now, to avoid the annoying scenario of a release doing something
# different to /develop. Instead, add it to the 'npm install' list above.
# -- rav 2016/02/03
#tar -C olm -xz < olm/olm-*.tgz
#rm -r node_modules/olm
#cp -r olm/package node_modules/olm
# we may be using dev branches of js-sdk and react-sdk, in which case we need to build them
(cd node_modules/matrix-js-sdk && npm install)

146
scripts/rageshake.go Normal file
View File

@@ -0,0 +1,146 @@
// Run a web server capable of dumping bug reports sent by Riot.
// Requires Go 1.5+
// Usage: BUGS_USER=user BUGS_PASS=password go run rageshake.go PORT
// Example: BUGS_USER=alice BUGS_PASS=secret go run rageshake.go 8080
package main
import (
"bytes"
"compress/gzip"
"crypto/subtle"
"encoding/json"
"fmt"
"io/ioutil"
"log"
"net/http"
"os"
"path/filepath"
"strconv"
"time"
)
var maxPayloadSize = 1024 * 1024 * 55 // 55 MB
type LogEntry struct {
ID string `json:"id"`
Lines string `json:"lines"`
}
type Payload struct {
Text string `json:"text"`
Version string `json:"version"`
UserAgent string `json:"user_agent"`
Logs []LogEntry `json:"logs"`
}
func respond(code int, w http.ResponseWriter) {
w.WriteHeader(code)
w.Write([]byte("{}"))
}
func gzipAndSave(data []byte, dirname, fpath string) error {
_ = os.MkdirAll(filepath.Join("bugs", dirname), os.ModePerm)
fpath = filepath.Join("bugs", dirname, fpath)
if _, err := os.Stat(fpath); err == nil {
return fmt.Errorf("file already exists") // the user can just retry
}
var b bytes.Buffer
gz := gzip.NewWriter(&b)
if _, err := gz.Write(data); err != nil {
return err
}
if err := gz.Flush(); err != nil {
return err
}
if err := gz.Close(); err != nil {
return err
}
if err := ioutil.WriteFile(fpath, b.Bytes(), 0644); err != nil {
return err
}
return nil
}
func basicAuth(handler http.Handler, username, password, realm string) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
user, pass, ok := r.BasicAuth() // pull creds from the request
// check user and pass securely
if !ok || subtle.ConstantTimeCompare([]byte(user), []byte(username)) != 1 || subtle.ConstantTimeCompare([]byte(pass), []byte(password)) != 1 {
w.Header().Set("WWW-Authenticate", `Basic realm="`+realm+`"`)
w.WriteHeader(401)
w.Write([]byte("Unauthorised.\n"))
return
}
handler.ServeHTTP(w, r)
})
}
func main() {
http.HandleFunc("/api/submit", func(w http.ResponseWriter, req *http.Request) {
if req.Method != "POST" && req.Method != "OPTIONS" {
respond(405, w)
return
}
// Set CORS
w.Header().Set("Access-Control-Allow-Origin", "*")
w.Header().Set("Access-Control-Allow-Methods", "POST, OPTIONS")
w.Header().Set("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept")
if req.Method == "OPTIONS" {
respond(200, w)
return
}
if length, err := strconv.Atoi(req.Header.Get("Content-Length")); err != nil || length > maxPayloadSize {
respond(413, w)
return
}
var p Payload
if err := json.NewDecoder(req.Body).Decode(&p); err != nil {
respond(400, w)
return
}
// Dump bug report to disk as form:
// "bugreport-20170115-112233.log.gz" => user text, version, user agent, # logs
// "bugreport-20170115-112233-0.log.gz" => most recent log
// "bugreport-20170115-112233-1.log.gz" => ...
// "bugreport-20170115-112233-N.log.gz" => oldest log
t := time.Now().UTC()
prefix := t.Format("2006-01-02/150405")
summary := fmt.Sprintf(
"%s\n\nNumber of logs: %d\nVersion: %s\nUser-Agent: %s\n", p.Text, len(p.Logs), p.Version, p.UserAgent,
)
if err := gzipAndSave([]byte(summary), prefix, "details.log.gz"); err != nil {
respond(500, w)
return
}
for i, log := range p.Logs {
if err := gzipAndSave([]byte(log.Lines), prefix, fmt.Sprintf("logs-%d.log.gz", i)); err != nil {
respond(500, w)
return // TODO: Rollback?
}
}
respond(200, w)
})
// Make sure bugs directory exists
_ = os.Mkdir("bugs", os.ModePerm)
// serve files under "bugs"
fs := http.FileServer(http.Dir("bugs"))
fs = http.StripPrefix("/api/listing/", fs)
// set auth if env vars exist
usr := os.Getenv("BUGS_USER")
pass := os.Getenv("BUGS_PASS")
if usr == "" || pass == "" {
fmt.Println("BUGS_USER and BUGS_PASS env vars not found. No authentication is running for /api/listing")
} else {
fs = basicAuth(fs, usr, pass, "Riot bug reports")
}
http.Handle("/api/listing/", fs)
port := os.Args[1]
log.Fatal(http.ListenAndServe(":"+port, nil))
}

View File

@@ -34,6 +34,8 @@ import structures$LeftPanel from './components/structures/LeftPanel';
structures$LeftPanel && (module.exports.components['structures.LeftPanel'] = structures$LeftPanel);
import structures$RightPanel from './components/structures/RightPanel';
structures$RightPanel && (module.exports.components['structures.RightPanel'] = structures$RightPanel);
import structures$HomePage from './components/structures/HomePage';
structures$HomePage && (module.exports.components['structures.HomePage'] = structures$HomePage);
import structures$RoomDirectory from './components/structures/RoomDirectory';
structures$RoomDirectory && (module.exports.components['structures.RoomDirectory'] = structures$RoomDirectory);
import structures$RoomSubList from './components/structures/RoomSubList';

View File

@@ -27,12 +27,14 @@ module.exports = React.createClass({
propTypes: {
collapsed: React.PropTypes.bool.isRequired,
teamToken: React.PropTypes.string,
},
getInitialState: function() {
return({
directoryHover : false,
roomsHover : false,
homeHover: false,
peopleHover : false,
settingsHover : false,
});
@@ -63,6 +65,19 @@ module.exports = React.createClass({
this.setState({ roomsHover: false });
},
// Home button events
onHomeClick: function() {
dis.dispatch({ action: 'view_home_page' });
},
onHomeMouseEnter: function() {
this.setState({ homeHover: true });
},
onHomeMouseLeave: function() {
this.setState({ homeHover: false });
},
// People events
onPeopleClick: function() {
dis.dispatch({ action: 'view_create_chat' });
@@ -99,9 +114,21 @@ module.exports = React.createClass({
render: function() {
var TintableSvg = sdk.getComponent('elements.TintableSvg');
var homeButton;
if (this.props.teamToken) {
homeButton = (
<AccessibleButton className="mx_BottomLeftMenu_homePage" onClick={ this.onHomeClick } onMouseEnter={ this.onHomeMouseEnter } onMouseLeave={ this.onHomeMouseLeave } >
<TintableSvg src="img/icons-home.svg" width="25" height="25" />
{ this.getLabel("Welcome page", this.state.homeHover) }
</AccessibleButton>
);
}
return (
<div className="mx_BottomLeftMenu">
<div className="mx_BottomLeftMenu_options">
{ homeButton }
<AccessibleButton className="mx_BottomLeftMenu_people" onClick={ this.onPeopleClick } onMouseEnter={ this.onPeopleMouseEnter } onMouseLeave={ this.onPeopleMouseLeave } >
<TintableSvg src="img/icons-people.svg" width="25" height="25" />
{ this.getLabel("Start chat", this.state.peopleHover) }

View File

@@ -0,0 +1,40 @@
/*
Copyright 2016 OpenMarket Ltd
Copyright 2017 Vector Creations Ltd
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
'use strict';
import React from 'react';
import MatrixClientPeg from 'matrix-react-sdk/lib/MatrixClientPeg';
import sdk from 'matrix-react-sdk';
module.exports = React.createClass({
displayName: 'HomePage',
propTypes: {
teamServerUrl: React.PropTypes.string.isRequired,
teamToken: React.PropTypes.string.isRequired,
collapsedRhs: React.PropTypes.bool,
},
render: function() {
return (
<div className="mx_HomePage">
<iframe src={`${this.props.teamServerUrl}/static/${this.props.teamToken}/home.html`}/>
</div>
);
}
});

View File

@@ -28,6 +28,11 @@ var CallHandler = require("matrix-react-sdk/lib/CallHandler");
var LeftPanel = React.createClass({
displayName: 'LeftPanel',
propTypes: {
collapsed: React.PropTypes.bool.isRequired,
teamToken: React.PropTypes.string,
},
getInitialState: function() {
return {
showCallElement: null,
@@ -124,7 +129,7 @@ var LeftPanel = React.createClass({
collapsed={this.props.collapsed}
searchFilter={this.state.searchFilter}
ConferenceHandler={VectorConferenceHandler} />
<BottomLeftMenu collapsed={this.props.collapsed}/>
<BottomLeftMenu collapsed={this.props.collapsed} teamToken={this.props.teamToken}/>
</aside>
);
}

View File

@@ -16,13 +16,15 @@ limitations under the License.
'use strict';
var q = require("q");
var React = require('react');
var classNames = require('classnames');
var MatrixClientPeg = require('matrix-react-sdk/lib/MatrixClientPeg');
var dis = require('matrix-react-sdk/lib/dispatcher');
var DMRoomMap = require('matrix-react-sdk/lib/utils/DMRoomMap');
var Rooms = require('matrix-react-sdk/lib/Rooms');
import q from 'q';
import React from 'react';
import classNames from 'classnames';
import sdk from 'matrix-react-sdk';
import MatrixClientPeg from 'matrix-react-sdk/lib/MatrixClientPeg';
import dis from 'matrix-react-sdk/lib/dispatcher';
import DMRoomMap from 'matrix-react-sdk/lib/utils/DMRoomMap';
import Rooms from 'matrix-react-sdk/lib/Rooms';
import Modal from 'matrix-react-sdk/lib/Modal';
module.exports = React.createClass({
displayName: 'RoomTagContextMenu',
@@ -214,7 +216,7 @@ module.exports = React.createClass({
'mx_RoomTagContextMenu_fieldDisabled': false,
});
if (myMember && myMember.membership === "leave") {
if (myMember && (myMember.membership === "leave" || myMember.membership === "ban")) {
return (
<div>
<div className={ leaveClasses } onClick={ this._onClickForget } >

View File

@@ -1,5 +1,6 @@
/*
Copyright 2015, 2016 OpenMarket Ltd
Copyright 2017 Vector Creations Ltd
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -152,6 +153,7 @@ textarea {
font-size: 15px;
position: relative;
padding-left: 58px;
padding-bottom: 36px;
width: 60%;
max-width: 704px;
box-shadow: 0 1px 0 0 rgba(0, 0, 0, 0.2);
@@ -184,6 +186,13 @@ textarea {
pointer-events: none;
}
.mx_Dialog_cancelButton {
float: right;
margin-top: 5px;
margin-right: 5px;
cursor: pointer;
}
.mx_Dialog_content {
margin: 24px 58px 68px 0;
font-size: 14px;
@@ -191,10 +200,6 @@ textarea {
word-wrap: break-word;
}
.mx_Dialog_buttons {
padding-bottom: 36px;
}
.mx_Dialog button, .mx_Dialog input[type="submit"] {
border: 0px;
height: 36px;
@@ -286,6 +291,10 @@ textarea {
display: inline;
}
.mx_button_row {
margin-top: 69px;
}
.changelog_text {
font-family: 'Open Sans', Arial, Helvetica, Sans-Serif;
}

View File

@@ -14,6 +14,7 @@
@import "./matrix-react-sdk/views/avatars/_BaseAvatar.scss";
@import "./matrix-react-sdk/views/dialogs/_BugReportDialog.scss";
@import "./matrix-react-sdk/views/dialogs/_ChatInviteDialog.scss";
@import "./matrix-react-sdk/views/dialogs/_ConfirmUserActionDialog.scss";
@import "./matrix-react-sdk/views/dialogs/_EncryptedEventDialog.scss";
@import "./matrix-react-sdk/views/dialogs/_SetDisplayNameDialog.scss";
@import "./matrix-react-sdk/views/dialogs/_UnknownDeviceDialog.scss";
@@ -53,6 +54,7 @@
@import "./matrix-react-sdk/views/voip/_VideoView.scss";
@import "./vector-web/_fonts.scss";
@import "./vector-web/structures/_CompatibilityPage.scss";
@import "./vector-web/structures/_HomePage.scss";
@import "./vector-web/structures/_LeftPanel.scss";
@import "./vector-web/structures/_RightPanel.scss";
@import "./vector-web/structures/_RoomDirectory.scss";

View File

@@ -16,7 +16,7 @@ limitations under the License.
.mx_RoomStatusBar {
margin-left: 65px;
min-height: 34px;
min-height: 48px;
}
/* position the indicator in the same place horizontally as .mx_EventTile_avatar. */
@@ -24,15 +24,15 @@ limitations under the License.
padding-left: 17px;
padding-right: 12px;
margin-left: -73px;
margin-top: 8px;
margin-top: 15px;
float: left;
width: 24px;
text-align: center;
}
.mx_RoomStatusBar_callBar {
height: 50px;
line-height: 50px;
height: 48px;
line-height: 48px;
}
.mx_RoomStatusBar_placeholderIndicator span {
@@ -72,6 +72,7 @@ limitations under the License.
.mx_RoomStatusBar_typingIndicatorAvatars {
width: 52px;
margin-top: -1px;
text-align: left;
}
@@ -102,6 +103,7 @@ limitations under the License.
.mx_RoomStatusBar_scrollDownIndicator {
cursor: pointer;
padding-left: 1px;
}
.mx_RoomStatusBar_unreadMessagesBar {
@@ -112,7 +114,7 @@ limitations under the License.
.mx_RoomStatusBar_connectionLostBar {
margin-top: 19px;
height: 58px;
min-height: 58px;
}
.mx_RoomStatusBar_connectionLostBar img {
@@ -144,7 +146,9 @@ limitations under the License.
}
.mx_RoomStatusBar_typingBar {
padding-top: 10px;
height: 48px;
line-height: 48px;
color: $primary-fg-color;
opacity: 0.5;
overflow-y: hidden;

View File

@@ -207,10 +207,12 @@ hr.mx_RoomView_myReadMarker {
.mx_RoomView_inCall .mx_RoomView_statusAreaBox_line {
border-top: 1px hidden;
padding-top: 1px;
}
.mx_RoomView_inCall .mx_MessageComposer_wrapper {
border-top: 2px hidden;
padding-top: 1px;
}
.mx_RoomView_inCall .mx_RoomView_statusAreaBox {

View File

@@ -101,6 +101,15 @@ limitations under the License.
padding-right: 1em;
}
.mx_UserSettings_importExportButtons {
padding-top: 10px;
padding-left: 40px;
}
.mx_UserSettings_importExportButtons .mx_UserSettings_button {
margin-right: 1em;
}
.mx_UserSettings_toggle input {
width: 16px;
margin-right: 8px;

View File

@@ -20,7 +20,6 @@ limitations under the License.
.mx_BaseAvatar_initial {
position: absolute;
z-index: 1;
color: $avatar-initial-color;
text-align: center;
speak: none;

View File

@@ -0,0 +1,35 @@
/*
Copyright 2017 Vector Creations Ltd.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
.mx_ConfirmUserActionDialog_avatar {
float: left;
margin-right: 20px;
}
.mx_ConfirmUserActionDialog_name {
font-size: 150%;
}
.mx_ConfirmUserActionDialog_userId {
font-style: italic;
}
.mx_ConfirmUserActionDialog_reasonField {
margin-bottom: 40px;
width: 90%;
font-size: 120%;
height: 35px;
}

View File

@@ -1,3 +1,7 @@
// XXX: bleurgh, what is this? These classes totally break the component
// naming scheme; it's completely unclear where or how they're being used
// --Matthew
.mx_UserPill {
color: white;
background-color: $accent-color;
@@ -25,13 +29,13 @@
padding: .2em 0;
margin: 0;
font-size: 85%;
background-color: rgba(0,0,0,.04);
background-color: $rte-code-bg-color;
border-radius: 3px;
}
.mx_Markdown_HR {
display: block;
background: #e7e7e7;
background: $rte-bg-color;
}
.mx_Markdown_STRIKETHROUGH {

View File

@@ -251,6 +251,12 @@ limitations under the License.
padding-left: 60px;
}
.mx_EventTile_selected .mx_EventTile_info .mx_EventTile_line,
.mx_EventTile:hover.mx_EventTile_verified .mx_EventTile_info .mx_EventTile_line,
.mx_EventTile:hover.mx_EventTile_unverified .mx_EventTile_info .mx_EventTile_line {
padding-left: 78px;
}
.mx_EventTile:hover.mx_EventTile_verified .mx_EventTile_line {
border-left: $e2e-verified-color 5px solid;
}

View File

@@ -48,11 +48,10 @@ limitations under the License.
}
.mx_MemberInfo_avatar .mx_BaseAvatar {
cursor: not-allowed;
}
.mx_MemberInfo_avatar .mx_BaseAvatar.mx_BaseAvatar_image {
cursor: pointer;
cursor: zoom-in;
}
.mx_MemberInfo_profile {

View File

@@ -28,7 +28,7 @@ limitations under the License.
}
.mx_MemberList .mx_Spinner {
flex: 0;
flex: 0 0 auto;
}
.mx_MemberList_chevron {

View File

@@ -22,6 +22,8 @@ limitations under the License.
flex-direction: column;
justify-content: center;
display: flex;
background-color: $preview-bar-bg-color;
-webkit-align-items: center;
}
.mx_RoomPreviewBar_wrapper {

View File

@@ -1,5 +1,6 @@
/*
Copyright 2015, 2016 OpenMarket Ltd
Copyright 2017 Vector Creations Ltd
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -20,6 +21,7 @@ limitations under the License.
}
.mx_RoomSettings_leaveButton,
.mx_RoomSettings_unbanButton,
.mx_RoomSettings_integrationsButton,
.mx_RoomSettings_integrationsButton_error {
position: relative;
@@ -30,11 +32,15 @@ limitations under the License.
color: $accent-fg-color;
line-height: 34px;
text-align: center;
float: right;
cursor: pointer;
padding-left: 12px;
padding-right: 12px;
}
.mx_RoomSettings_leaveButton,
.mx_RoomSettings_integrationsButton,
.mx_RoomSettings_integrationsButton_error {
float: right;
}
.mx_RoomSettings_integrationsButton_error {
pointer: not-allowed;
}
@@ -50,6 +56,9 @@ limitations under the License.
background-color: $accent-color;
color: $accent-fg-color;
}
.mx_RoomSettings_unbanButton {
display: inline;
}
.mx_RoomSettings_e2eIcon {
padding-left: 4px;
@@ -227,4 +236,4 @@ limitations under the License.
padding: 6px;
padding-left: 1em;
padding-right: 1em;
}
}

View File

@@ -24,7 +24,7 @@ limitations under the License.
}
.mx_IntegrationsManager iframe {
background-color: $primary-bg-color;
background-color: #fff;
border: 0px;
width: 100%;
height: 100%;

View File

@@ -18,6 +18,8 @@ $selection-fg-color: $primary-bg-color;
// red warning colour
$warning-color: #ff0064;
$preview-bar-bg-color: #f7f7f7;
// left-panel style muted accent color
$secondary-accent-color: #eaf5f0;
@@ -72,6 +74,9 @@ $settings-grey-fg-color: #a2a2a2;
$voip-decline-color: #f48080;
$voip-accept-color: #80f480;
$rte-bg-color: #e9e9e9;
$rte-code-bg-color: rgba(0, 0, 0, 0.04);
// ********************
$roomtile-name-color: rgba(69, 69, 69, 0.8);

View File

@@ -13,11 +13,13 @@ $light-fg-color: #747474;
$accent-fg-color: $primary-bg-color;
$accent-color: #76CFA6;
$selection-fg-color: $primary-bg-color;
$selection-fg-color: $primary-fg-color;
// red warning colour
$warning-color: #ff0064;
$preview-bar-bg-color: #333;
// left-panel style muted accent color
$secondary-accent-color: $primary-bg-color;
@@ -28,7 +30,7 @@ $plinth-bg-color: #474747;
$droptarget-bg-color: rgba(45,45,45,0.5);
// used by AddressSelector
$selected-color: #eaf5f0;
$selected-color: #000000;
// selected for hoverover & selected event tiles
$event-selected-color: #353535;
@@ -72,6 +74,9 @@ $settings-grey-fg-color: #a2a2a2;
$voip-decline-color: #f48080;
$voip-accept-color: #80f480;
$rte-bg-color: #353535;
$rte-code-bg-color: #000;
// ********************
$roomtile-name-color: rgba(186, 186, 186, 0.8);
@@ -85,7 +90,7 @@ $roomsublist-label-bg-color: #454545;
// event tile lifecycle
$event-encrypting-color: rgba(171, 221, 188, 0.4);
$event-sending-color: #ddd;
$event-sending-color: #888;
$event-notsent-color: #f44;
// event timestamp
@@ -117,11 +122,23 @@ $progressbar-color: #000;
filter: invert();
}
.mx_EventTile_content .markdown-body pre,
.mx_EventTile_content .markdown-body code {
filter: invert();
}
// markdown overrides:
.mx_EventTile_content .markdown-body {
pre, code {
filter: invert();
}
.mx_EventTile_content .markdown-body pre code {
filter: none;
}
pre code {
filter: none;
}
table {
tr {
background-color: #000000;
}
tr:nth-child(2n) {
background-color: #080808;
}
}
}

View File

@@ -0,0 +1,32 @@
/*
Copyright 2016 OpenMarket Ltd
Copyright 2017 Vector Creations Ltd
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
.mx_HomePage {
max-width: 960px;
width: 100%;
margin-left: auto;
margin-right: auto;
}
.mx_HomePage iframe {
width: 100%;
height: 90%;
border: 0px;
}
.mx_HomePage_body {
margin-left: 63px;
}

View File

@@ -64,6 +64,7 @@ limitations under the License.
pointer-events: none;
}
.mx_LeftPanel .mx_BottomLeftMenu_homePage,
.mx_LeftPanel .mx_BottomLeftMenu_directory,
.mx_LeftPanel .mx_BottomLeftMenu_createRoom,
.mx_LeftPanel .mx_BottomLeftMenu_people,
@@ -72,6 +73,7 @@ limitations under the License.
cursor: pointer;
}
.collapsed .mx_BottomLeftMenu_homePage,
.collapsed .mx_BottomLeftMenu_directory,
.collapsed .mx_BottomLeftMenu_createRoom,
.collapsed .mx_BottomLeftMenu_people,
@@ -81,6 +83,7 @@ limitations under the License.
padding-bottom: 3px ! important;
}
.mx_LeftPanel .mx_BottomLeftMenu_homePage,
.mx_LeftPanel .mx_BottomLeftMenu_directory,
.mx_LeftPanel .mx_BottomLeftMenu_createRoom,
.mx_LeftPanel .mx_BottomLeftMenu_people {

View File

@@ -42,7 +42,7 @@ limitations under the License.
.mx_RightPanel_headerButton {
cursor: pointer;
flex: 0;
flex: 0 0 auto;
vertical-align: top;
padding-left: 4px;
padding-right: 5px;

View File

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<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 25 25" style="enable-background:new 0 0 25 25;" xml:space="preserve">
<style type="text/css">
.st1{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
</style>
<g id="Layer_1">
<title>81230A28-D944-4572-B5DB-C03CAA2B1FCA</title>
<desc>Created with sketchtool.</desc>
<g id="Symbols">
<g id="Left-nav-default" transform="translate(-50.000000, -725.000000)">
<g id="Left-panel">
<g>
<g id="icons_people" transform="translate(50.000000, 725.000000)">
<path id="Oval-1-Copy-7" fill="#76cfa6" d="M12.5,25C19.4,25,25,19.4,25,12.5S19.4,0,12.5,0S0,5.6,0,12.5S5.6,25,12.5,25z"/>
</g>
</g>
</g>
</g>
</g>
</g>
<g id="Layer_2">
<rect x="7.8" y="10.7" class="st1" stroke="#ffffff" width="9.4" height="7.4"/>
<polygon class="st1" stroke="#ffffff" points="12.5,6 6.2,10.7 18.8,10.7 "/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -62,24 +62,5 @@
<source src="media/busy.mp3" type="audio/mpeg" />
</audio>
<audio id="remoteAudio"/>
<script>
if (
window.location.host === 'www.vector.im' ||
window.location.host === 'vector.im' ||
window.location.host === 'www.riot.im' ||
window.location.host === 'riot.im'
) {
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-54779209-2', 'auto');
ga('send', 'pageview', window.location.pathname + window.location.search + window.location.hash);
}
else {
var ga = null;
}
</script>
</body>
</html>

View File

@@ -135,7 +135,6 @@ var onNewScreen = function(screen) {
var hash = '#/' + screen;
lastLocationHashSet = hash;
window.location.hash = hash;
if (ga) ga('send', 'pageview', window.location.pathname + window.location.search + window.location.hash);
}
}

View File

@@ -95,7 +95,10 @@ describe('joining a room', function () {
});
var roomView;
httpBackend.flush().then(() => {
// wait for /sync to happen
return q.delay(1).then(() => {
return httpBackend.flush();
}).then(() => {
var roomDir = ReactTestUtils.findRenderedComponentWithType(
matrixChat, RoomDirectory);