Remove stuff that's going into the base skin
This commit is contained in:
parent
e1a6ede17b
commit
6cc88e4ef3
58 changed files with 6 additions and 2420 deletions
4
.gitignore
vendored
4
.gitignore
vendored
|
@ -1,4 +1,2 @@
|
||||||
node_modules
|
node_modules
|
||||||
build
|
lib
|
||||||
bundle.css
|
|
||||||
bundle.js
|
|
||||||
|
|
|
@ -1,40 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2015 OpenMarket 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';
|
|
||||||
|
|
||||||
var React = require('react');
|
|
||||||
|
|
||||||
var MTextTileController = require("matrix-react-sdk/src/controllers/molecules/MTextTile");
|
|
||||||
|
|
||||||
module.exports = React.createClass({
|
|
||||||
displayName: 'MTextTile',
|
|
||||||
mixins: [MTextTileController],
|
|
||||||
|
|
||||||
render: function() {
|
|
||||||
var content = this.props.mxEvent.getContent();
|
|
||||||
return (
|
|
||||||
<span ref="content" className="mx_MTextTile mx_MessageTile_content" onClick={this.onClick}>
|
|
||||||
{content.body}
|
|
||||||
</span>
|
|
||||||
);
|
|
||||||
},
|
|
||||||
|
|
||||||
onClick: function(ev) {
|
|
||||||
global.alert(this.props.mxEvent.getContent().body);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
matrix-react-example
|
|
||||||
====================
|
|
||||||
|
|
||||||
An example of how to use the Matrix React SDK to build a more customised app
|
|
|
@ -1,12 +0,0 @@
|
||||||
<!doctype html>
|
|
||||||
<html lang="en" style="height: 100%; overflow: hidden">
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<title>Matrix React SDK Custom Example</title>
|
|
||||||
</head>
|
|
||||||
<body style="height: 100%; ">
|
|
||||||
<section id="matrixchat" style="height: 100%; "></section>
|
|
||||||
<script src="bundle.js"></script>
|
|
||||||
<link rel="stylesheet" href="node_modules/matrix-react-sdk/bundle.css">
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,40 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2015 OpenMarket 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';
|
|
||||||
|
|
||||||
// Remember to make your project depend on react directly as soon as
|
|
||||||
// you add a require('react') to any file in your project. Do not rely
|
|
||||||
// on react being pulled in via matrix-react-sdk: browserify breaks
|
|
||||||
// horribly in this situation and can end up pulling in multiple copies
|
|
||||||
// of react.
|
|
||||||
var React = require("react");
|
|
||||||
|
|
||||||
// We pull in the component broker first, separately, as we need to replace
|
|
||||||
// components before the SDK loads.
|
|
||||||
var ComponentBroker = require("matrix-react-sdk/src/ComponentBroker");
|
|
||||||
|
|
||||||
var CustomMTextTile = require('./CustomMTextTile');
|
|
||||||
|
|
||||||
ComponentBroker.set('molecules/MTextTile', CustomMTextTile);
|
|
||||||
|
|
||||||
var MatrixReactSdk = require("matrix-react-sdk");
|
|
||||||
//var MatrixReactSdk = require("../../src/index");
|
|
||||||
|
|
||||||
React.render(
|
|
||||||
<MatrixReactSdk.MatrixChat />,
|
|
||||||
document.getElementById('matrixchat')
|
|
||||||
);
|
|
|
@ -1,29 +0,0 @@
|
||||||
{
|
|
||||||
"name": "matrix-react-example",
|
|
||||||
"version": "0.0.1",
|
|
||||||
"description": "Example usage of matrix-react-sdk",
|
|
||||||
"author": "matrix.org",
|
|
||||||
"repository": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/matrix-org/matrix-react-sdk"
|
|
||||||
},
|
|
||||||
"license": "Apache-2.0",
|
|
||||||
"devDependencies": {
|
|
||||||
"browserify": "^10.2.3",
|
|
||||||
"envify": "^3.4.0",
|
|
||||||
"http-server": "^0.8.0",
|
|
||||||
"matrix-react-sdk": "../../",
|
|
||||||
"npm-css": "^0.2.3",
|
|
||||||
"parallelshell": "^1.2.0",
|
|
||||||
"reactify": "^1.1.1",
|
|
||||||
"uglify-js": "^2.4.23",
|
|
||||||
"watchify": "^3.2.1"
|
|
||||||
},
|
|
||||||
"scripts": {
|
|
||||||
"build": "browserify -t [ envify --NODE_ENV production ] -g reactify index.js | uglifyjs -c -m -o bundle.js",
|
|
||||||
"start": "parallelshell 'watchify -v -d -g reactify index.js -o bundle.js' 'http-server'"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"react": "^0.13.3"
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,4 +0,0 @@
|
||||||
matrix-react-example
|
|
||||||
====================
|
|
||||||
|
|
||||||
A simple example of how to use the Matrix React SDK
|
|
|
@ -1,12 +0,0 @@
|
||||||
<!doctype html>
|
|
||||||
<html lang="en" style="height: 100%; overflow: hidden">
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<title>Matrix React SDK Example</title>
|
|
||||||
</head>
|
|
||||||
<body style="height: 100%;">
|
|
||||||
<section id="matrixchat" style="height: 100%;"></section>
|
|
||||||
<script src="bundle.js"></script>
|
|
||||||
<link rel="stylesheet" href="node_modules/matrix-react-sdk/bundle.css">
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,75 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2015 OpenMarket 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';
|
|
||||||
|
|
||||||
var React = require("react");
|
|
||||||
// In normal usage of the module:
|
|
||||||
//var MatrixReactSdk = require("matrix-react-sdk");
|
|
||||||
// Or to import the source directly from the file system:
|
|
||||||
// (This is useful for debugging the SDK as it seems source
|
|
||||||
// maps cannot pass through two stages).
|
|
||||||
var MatrixReactSdk = require("../../src/index");
|
|
||||||
|
|
||||||
// Here, we do some crude URL analysis to allow
|
|
||||||
// deep-linking. We only support registration
|
|
||||||
// deep-links in this example.
|
|
||||||
function routeUrl(location) {
|
|
||||||
if (location.hash.indexOf('#/register') == 0) {
|
|
||||||
var hashparts = location.hash.split('?');
|
|
||||||
var params = {};
|
|
||||||
if (hashparts.length == 2) {
|
|
||||||
var pairs = hashparts[1].split('&');
|
|
||||||
for (var i = 0; i < pairs.length; ++i) {
|
|
||||||
var parts = pairs[i].split('=');
|
|
||||||
if (parts.length != 2) continue;
|
|
||||||
params[decodeURIComponent(parts[0])] = decodeURIComponent(parts[1]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
window.matrixChat.showScreen('register', params);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var loaded = false;
|
|
||||||
|
|
||||||
window.onload = function() {
|
|
||||||
routeUrl(window.location);
|
|
||||||
loaded = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// This will be called whenever the SDK changes screens,
|
|
||||||
// so a web page can update the URL bar appropriately.
|
|
||||||
var onNewScreen = function(screen) {
|
|
||||||
if (!loaded) return;
|
|
||||||
window.location.hash = '#/'+screen;
|
|
||||||
}
|
|
||||||
|
|
||||||
// We use this to work out what URL the SDK should
|
|
||||||
// pass through when registering to allow the user to
|
|
||||||
// click back to the client having registered.
|
|
||||||
// It's up to us to recognise if we're loaded with
|
|
||||||
// this URL and tell MatrixClient to resume registration.
|
|
||||||
var makeRegistrationUrl = function() {
|
|
||||||
return window.location.protocol + '//' +
|
|
||||||
window.location.host +
|
|
||||||
window.location.pathname +
|
|
||||||
'#/register';
|
|
||||||
}
|
|
||||||
|
|
||||||
window.matrixChat = React.render(
|
|
||||||
<MatrixReactSdk.MatrixChat onNewScreen={onNewScreen} registrationUrl={makeRegistrationUrl()} />,
|
|
||||||
document.getElementById('matrixchat')
|
|
||||||
);
|
|
|
@ -1,25 +0,0 @@
|
||||||
{
|
|
||||||
"name": "matrix-react-example",
|
|
||||||
"version": "0.0.1",
|
|
||||||
"description": "Example usage of matrix-react-sdk",
|
|
||||||
"author": "matrix.org",
|
|
||||||
"repository": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/matrix-org/matrix-react-sdk"
|
|
||||||
},
|
|
||||||
"license": "Apache-2.0",
|
|
||||||
"devDependencies": {
|
|
||||||
"browserify": "^10.2.3",
|
|
||||||
"envify": "^3.4.0",
|
|
||||||
"http-server": "^0.8.0",
|
|
||||||
"matrix-react-sdk": "../../",
|
|
||||||
"parallelshell": "^1.2.0",
|
|
||||||
"reactify": "^1.1.1",
|
|
||||||
"uglify-js": "^2.4.23",
|
|
||||||
"watchify": "^3.2.1"
|
|
||||||
},
|
|
||||||
"scripts": {
|
|
||||||
"build": "browserify --ignore olm -t [ envify --NODE_ENV production ] -t reactify index.js | uglifyjs -c -m -o bundle.js",
|
|
||||||
"start": "parallelshell 'watchify --ignore olm -v -d -t reactify index.js -o bundle.js' 'http-server'"
|
|
||||||
}
|
|
||||||
}
|
|
18
package.json
18
package.json
|
@ -8,17 +8,11 @@
|
||||||
"url": "https://github.com/matrix-org/matrix-react-sdk"
|
"url": "https://github.com/matrix-org/matrix-react-sdk"
|
||||||
},
|
},
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"main": "build/src/index.js",
|
"main": "lib/index.js",
|
||||||
"style": "bundle.css",
|
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build:skins": "jsx skins build/skins",
|
"build": "jsx src lib",
|
||||||
"build:logic": "jsx src build/src",
|
"start": "jsx -w --source-map-inline src lib",
|
||||||
"build:js": "npm run build:skins && npm run build:logic",
|
"clean": "rimraf lib",
|
||||||
"start:js": "jsx -w skins/base/views/ build --source-map-inline",
|
|
||||||
"build:css": "catw 'skins/base/css/**/*.css' -o bundle.css -c uglifycss --no-watch",
|
|
||||||
"start:css": "catw 'skins/base/css/**/*.css' -o bundle.css -v",
|
|
||||||
"build": "npm run build:js && npm run build:css",
|
|
||||||
"start": "parallelshell 'npm run start:js' 'npm run start:css'",
|
|
||||||
"prepublish": "npm run build"
|
"prepublish": "npm run build"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
@ -28,13 +22,11 @@
|
||||||
"matrix-js-sdk": "0.2.0",
|
"matrix-js-sdk": "0.2.0",
|
||||||
"q": "^1.4.1",
|
"q": "^1.4.1",
|
||||||
"react": "^0.13.3",
|
"react": "^0.13.3",
|
||||||
"react-loader": "^1.4.0",
|
|
||||||
"linkifyjs": "^2.0.0-beta.4"
|
"linkifyjs": "^2.0.0-beta.4"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"catw": "^1.0.1",
|
"catw": "^1.0.1",
|
||||||
"parallelshell": "^1.1.1",
|
|
||||||
"react-tools": "^0.13.3",
|
"react-tools": "^0.13.3",
|
||||||
"uglifycss": "0.0.15"
|
"rimraf": "^2.4.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,20 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2015 OpenMarket 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_MessageTimestamp {
|
|
||||||
display: table-cell;
|
|
||||||
white-space: pre;
|
|
||||||
}
|
|
|
@ -1,23 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2015 OpenMarket 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
body {
|
|
||||||
font-family: Helvetica, Arial, Sans-Serif;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.error {
|
|
||||||
color: red;
|
|
||||||
}
|
|
|
@ -1,19 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2015 OpenMarket 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_MImageTile {
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,18 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2015 OpenMarket 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_MNoticeTile {
|
|
||||||
}
|
|
|
@ -1,20 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2015 OpenMarket 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_MTextTile {
|
|
||||||
white-space: pre-wrap;
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,20 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2015 OpenMarket 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_MessageComposer textarea {
|
|
||||||
width: 100%;
|
|
||||||
margin: auto;
|
|
||||||
}
|
|
|
@ -1,35 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2015 OpenMarket 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_MessageTile {
|
|
||||||
display: table-row;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mx_MessageTile_content {
|
|
||||||
display: table-cell;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mx_MessageTile_sending {
|
|
||||||
color: #ddd;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mx_MessageTile_notSent {
|
|
||||||
color: #f11;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mx_MessageTile_highlight {
|
|
||||||
color: #00f;
|
|
||||||
}
|
|
|
@ -1,25 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2015 OpenMarket 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_ProgressBar {
|
|
||||||
height: 5px;
|
|
||||||
border: 1px solid black;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mx_ProgressBar_fill {
|
|
||||||
height: 100%;
|
|
||||||
background-color: #000;
|
|
||||||
}
|
|
|
@ -1,20 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2015 OpenMarket 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_RoomHeader {
|
|
||||||
height: 1em;
|
|
||||||
padding: 0px;
|
|
||||||
}
|
|
|
@ -1,47 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2015 OpenMarket 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_RoomTile {
|
|
||||||
padding: 5px;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mx_RoomTile.selected {
|
|
||||||
text-decoration: underline;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mx_RoomTile_name {
|
|
||||||
}
|
|
||||||
|
|
||||||
.mx_RoomTile div {
|
|
||||||
overflow: hidden;
|
|
||||||
text-overflow: ellipsis;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mx_RoomTile.unread {
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mx_RoomTile.highlight {
|
|
||||||
background-color: lime;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mx_RoomTile.invited {
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mx_RoomTile:hover {
|
|
||||||
}
|
|
|
@ -1,20 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2015 OpenMarket 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_SenderProfile {
|
|
||||||
display: table-cell;
|
|
||||||
padding: 0px 1em 0em 1em;
|
|
||||||
}
|
|
|
@ -1,18 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2015 OpenMarket 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_RoomList {
|
|
||||||
}
|
|
|
@ -1,86 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2015 OpenMarket 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_RoomView {
|
|
||||||
word-wrap: break-word;
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mx_RoomView .mx_RoomHeader {
|
|
||||||
height: 30px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mx_RoomView_roomWrapper {
|
|
||||||
display: -webkit-box;
|
|
||||||
display: -moz-box;
|
|
||||||
display: -ms-flexbox;
|
|
||||||
display: -webkit-flex;
|
|
||||||
display: flex;
|
|
||||||
position: absolute;
|
|
||||||
width: 100%;
|
|
||||||
top: 32px;
|
|
||||||
bottom: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mx_RoomView_messagePanel {
|
|
||||||
-webkit-box-ordinal-group: 1;
|
|
||||||
-moz-box-ordinal-group: 1;
|
|
||||||
-ms-flex-order: 1;
|
|
||||||
-webkit-order: 1;
|
|
||||||
order: 1;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
/* background-color: #ff0; */
|
|
||||||
}
|
|
||||||
|
|
||||||
.mx_RoomView_messageListWrapper {
|
|
||||||
height: 100%;
|
|
||||||
overflow-y: scroll;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mx_RoomView_MessageList {
|
|
||||||
display: table;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mx_RoomView_MessageList_ul {
|
|
||||||
list-style-type: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mx_RoomView_invitePrompt {
|
|
||||||
}
|
|
||||||
|
|
||||||
.mx_RoomView .mx_MemberList {
|
|
||||||
-webkit-box-ordinal-group: 2;
|
|
||||||
-moz-box-ordinal-group: 2;
|
|
||||||
-ms-flex-order: 2;
|
|
||||||
-webkit-order: 2;
|
|
||||||
order: 2;
|
|
||||||
|
|
||||||
/* background-color: #0f0; */
|
|
||||||
width: 250px;
|
|
||||||
overflow-y: scroll;
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mx_RoomView .mx_MemberList ul {
|
|
||||||
margin: 0px;
|
|
||||||
padding: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mx_RoomView .mx_MessageComposer {
|
|
||||||
width: 100%;
|
|
||||||
bottom: 0px;
|
|
||||||
}
|
|
|
@ -1,89 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2015 OpenMarket 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_MatrixChat {
|
|
||||||
position: relative;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mx_MatrixChat_chatWrapper {
|
|
||||||
display: -webkit-box;
|
|
||||||
display: -moz-box;
|
|
||||||
display: -ms-flexbox;
|
|
||||||
display: -webkit-flex;
|
|
||||||
display: flex;
|
|
||||||
position: absolute;
|
|
||||||
width: 100%;
|
|
||||||
top: 0px;
|
|
||||||
bottom: 42px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mx_MatrixChat_leftPanel {
|
|
||||||
-webkit-box-ordinal-group: 1;
|
|
||||||
-moz-box-ordinal-group: 1;
|
|
||||||
-ms-flex-order: 1;
|
|
||||||
-webkit-order: 1;
|
|
||||||
order: 1;
|
|
||||||
|
|
||||||
display: -webkit-box;
|
|
||||||
display: -moz-box;
|
|
||||||
display: -ms-flexbox;
|
|
||||||
display: -webkit-flex;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
-webkit-flex-direction: column;
|
|
||||||
|
|
||||||
/* background-color: #f00; */
|
|
||||||
width: 250px;
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mx_MatrixChat_leftPanel .mx_MatrixToolbar {
|
|
||||||
-webkit-box-ordinal-group: 1;
|
|
||||||
-moz-box-ordinal-group: 1;
|
|
||||||
-ms-flex-order: 1;
|
|
||||||
-webkit-order: 1;
|
|
||||||
order: 1;
|
|
||||||
|
|
||||||
width: 100%;
|
|
||||||
height: 40px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mx_MatrixChat_leftPanel .mx_RoomList {
|
|
||||||
-webkit-box-ordinal-group: 2;
|
|
||||||
-moz-box-ordinal-group: 2;
|
|
||||||
-ms-flex-order: 2;
|
|
||||||
-webkit-order: 2;
|
|
||||||
order: 2;
|
|
||||||
|
|
||||||
/* background-color: #0ff; */
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
overflow-y: scroll;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mx_MatrixChat .mx_RoomView {
|
|
||||||
-webkit-box-ordinal-group: 2;
|
|
||||||
-moz-box-ordinal-group: 2;
|
|
||||||
-ms-flex-order: 2;
|
|
||||||
-webkit-order: 2;
|
|
||||||
order: 2;
|
|
||||||
|
|
||||||
/* background-color: #00f; */
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
|
@ -1,22 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2015 OpenMarket 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_Login {
|
|
||||||
width: 600px;
|
|
||||||
height: 350px;
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,68 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2015 OpenMarket 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';
|
|
||||||
|
|
||||||
var React = require('react');
|
|
||||||
|
|
||||||
var EditableTextController = require("../../../../src/controllers/atoms/EditableText");
|
|
||||||
|
|
||||||
module.exports = React.createClass({
|
|
||||||
displayName: 'EditableText',
|
|
||||||
mixins: [EditableTextController],
|
|
||||||
|
|
||||||
onKeyUp: function(ev) {
|
|
||||||
if (ev.key == "Enter") {
|
|
||||||
this.onFinish(ev);
|
|
||||||
} else if (ev.key == "Escape") {
|
|
||||||
this.cancelEdit();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
onClickDiv: function() {
|
|
||||||
this.setState({
|
|
||||||
phase: this.Phases.Edit,
|
|
||||||
})
|
|
||||||
},
|
|
||||||
|
|
||||||
onFocus: function(ev) {
|
|
||||||
ev.target.setSelectionRange(0, ev.target.value.length);
|
|
||||||
},
|
|
||||||
|
|
||||||
onFinish: function(ev) {
|
|
||||||
this.setValue(ev.target.value);
|
|
||||||
},
|
|
||||||
|
|
||||||
render: function() {
|
|
||||||
var editable_el;
|
|
||||||
|
|
||||||
if (this.state.phase == this.Phases.Display) {
|
|
||||||
editable_el = <div ref="display_div" onClick={this.onClickDiv}>{this.state.value}</div>;
|
|
||||||
} else if (this.state.phase == this.Phases.Edit) {
|
|
||||||
editable_el = (
|
|
||||||
<div>
|
|
||||||
<input type="text" defaultValue={this.state.value} onKeyUp={this.onKeyUp} onFocus={this.onFocus} onBlur={this.onFinish} autoFocus/>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
return (
|
|
||||||
<div className="mx_EditableText">
|
|
||||||
{editable_el}
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
});
|
|
|
@ -1,38 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2015 OpenMarket 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';
|
|
||||||
|
|
||||||
var React = require('react');
|
|
||||||
|
|
||||||
var EnableNotificationsButtonController = require("../../../../src/controllers/atoms/EnableNotificationsButton");
|
|
||||||
|
|
||||||
module.exports = React.createClass({
|
|
||||||
displayName: 'EnableNotificationsButton',
|
|
||||||
mixins: [EnableNotificationsButtonController],
|
|
||||||
|
|
||||||
render: function() {
|
|
||||||
if (this.enabled()) {
|
|
||||||
return (
|
|
||||||
<button className="mx_EnableNotificationsButton" onClick={this.onClick}>Disable Notifications</button>
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
return (
|
|
||||||
<button className="mx_EnableNotificationsButton" onClick={this.onClick}>Enable Notifications</button>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
|
@ -1,32 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2015 OpenMarket 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';
|
|
||||||
|
|
||||||
var React = require('react');
|
|
||||||
|
|
||||||
var LogoutButtonController = require("../../../../src/controllers/atoms/LogoutButton");
|
|
||||||
|
|
||||||
module.exports = React.createClass({
|
|
||||||
displayName: 'LogoutButton',
|
|
||||||
mixins: [LogoutButtonController],
|
|
||||||
|
|
||||||
render: function() {
|
|
||||||
return (
|
|
||||||
<button className="mx_LogoutButton" onClick={this.onClick}>Sign out</button>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
});
|
|
|
@ -1,36 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2015 OpenMarket 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';
|
|
||||||
|
|
||||||
var React = require('react');
|
|
||||||
|
|
||||||
var MessageTimestampController = require("../../../../src/controllers/atoms/MessageTimestamp");
|
|
||||||
|
|
||||||
module.exports = React.createClass({
|
|
||||||
displayName: 'MessageTimestamp',
|
|
||||||
mixins: [MessageTimestampController],
|
|
||||||
|
|
||||||
render: function() {
|
|
||||||
var date = new Date(this.props.ts);
|
|
||||||
return (
|
|
||||||
<span className="mx_MessageTimestamp">
|
|
||||||
{date.toLocaleTimeString()}
|
|
||||||
</span>
|
|
||||||
);
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
|
@ -1,32 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2015 OpenMarket 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';
|
|
||||||
|
|
||||||
var React = require('react');
|
|
||||||
|
|
||||||
var CreateRoomButtonController = require("../../../../../src/controllers/atoms/create_room/CreateRoomButton");
|
|
||||||
|
|
||||||
module.exports = React.createClass({
|
|
||||||
displayName: 'CreateRoomButton',
|
|
||||||
mixins: [CreateRoomButtonController],
|
|
||||||
|
|
||||||
render: function() {
|
|
||||||
return (
|
|
||||||
<button className="mx_CreateRoomButton" onClick={this.onClick}>Create Room</button>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
});
|
|
|
@ -1,39 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2015 OpenMarket 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';
|
|
||||||
|
|
||||||
var React = require('react');
|
|
||||||
|
|
||||||
var PresetsController = require("../../../../../src/controllers/atoms/create_room/Presets");
|
|
||||||
|
|
||||||
module.exports = React.createClass({
|
|
||||||
displayName: 'CreateRoomPresets',
|
|
||||||
mixins: [PresetsController],
|
|
||||||
|
|
||||||
onValueChanged: function(ev) {
|
|
||||||
this.setState({preset: ev.target.value})
|
|
||||||
},
|
|
||||||
|
|
||||||
render: function() {
|
|
||||||
return (
|
|
||||||
<select className="mx_Presets" onChange={this.onValueChanged} defaultValue={this.state.preset}>
|
|
||||||
<option value="private_chat">Private Chat</option>
|
|
||||||
<option value="public_chat">Public Chat</option>
|
|
||||||
</select>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
});
|
|
|
@ -1,36 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2015 OpenMarket 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';
|
|
||||||
|
|
||||||
var React = require('react');
|
|
||||||
|
|
||||||
var RoomNameTextboxController = require("../../../../../src/controllers/atoms/create_room/RoomNameTextbox");
|
|
||||||
|
|
||||||
module.exports = React.createClass({
|
|
||||||
displayName: 'RoomNameTextbox',
|
|
||||||
mixins: [RoomNameTextboxController],
|
|
||||||
|
|
||||||
onValueChanged: function(ev) {
|
|
||||||
this.setState({room_name: ev.target.value})
|
|
||||||
},
|
|
||||||
|
|
||||||
render: function() {
|
|
||||||
return (
|
|
||||||
<input type="text" className="mx_RoomNameTextbox" placeholder="ex. MyNewRoom" onChange={this.onValueChanged}/>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
});
|
|
|
@ -1,38 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2015 OpenMarket 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';
|
|
||||||
|
|
||||||
var React = require('react');
|
|
||||||
|
|
||||||
var MEmoteTileController = require("../../../../src/controllers/molecules/MEmoteTile");
|
|
||||||
|
|
||||||
module.exports = React.createClass({
|
|
||||||
displayName: 'MEmoteTile',
|
|
||||||
mixins: [MEmoteTileController],
|
|
||||||
|
|
||||||
render: function() {
|
|
||||||
var mxEvent = this.props.mxEvent;
|
|
||||||
var content = mxEvent.getContent();
|
|
||||||
var name = mxEvent.sender ? mxEvent.sender.name : mxEvent.getSender();
|
|
||||||
return (
|
|
||||||
<li className="mx_MEmoteTile mx_MessageTile_content">
|
|
||||||
* {name} {content.body}
|
|
||||||
</li>
|
|
||||||
);
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
|
@ -1,41 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2015 OpenMarket 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';
|
|
||||||
|
|
||||||
var React = require('react');
|
|
||||||
|
|
||||||
var MFileTileController = require("../../../../src/controllers/molecules/MFileTile");
|
|
||||||
|
|
||||||
var MatrixClientPeg = require('../../../../src/MatrixClientPeg');
|
|
||||||
|
|
||||||
module.exports = React.createClass({
|
|
||||||
displayName: 'MFileTile',
|
|
||||||
mixins: [MFileTileController],
|
|
||||||
|
|
||||||
render: function() {
|
|
||||||
var content = this.props.mxEvent.getContent();
|
|
||||||
var cli = MatrixClientPeg.get();
|
|
||||||
|
|
||||||
return (
|
|
||||||
<li className="mx_MFileTile">
|
|
||||||
<a href={cli.mxcUrlToHttp(content.url)} target="_blank">
|
|
||||||
{this.presentableTextForFile(content)}
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
);
|
|
||||||
},
|
|
||||||
});
|
|
|
@ -1,69 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2015 OpenMarket 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';
|
|
||||||
|
|
||||||
var React = require('react');
|
|
||||||
|
|
||||||
var MImageTileController = require("../../../../src/controllers/molecules/MImageTile");
|
|
||||||
|
|
||||||
var MatrixClientPeg = require('../../../../src/MatrixClientPeg');
|
|
||||||
|
|
||||||
module.exports = React.createClass({
|
|
||||||
displayName: 'MImageTile',
|
|
||||||
mixins: [MImageTileController],
|
|
||||||
|
|
||||||
thumbHeight: function(fullWidth, fullHeight, thumbWidth, thumbHeight) {
|
|
||||||
if (!fullWidth || !fullHeight) {
|
|
||||||
// Cannot calculate thumbnail height for image: missing w/h in metadata. We can't even
|
|
||||||
// log this because it's spammy
|
|
||||||
return undefined;
|
|
||||||
}
|
|
||||||
if (fullWidth < thumbWidth && fullHeight < thumbHeight) {
|
|
||||||
// no scaling needs to be applied
|
|
||||||
return fullHeight;
|
|
||||||
}
|
|
||||||
var widthMulti = thumbWidth / fullWidth;
|
|
||||||
var heightMulti = thumbHeight / fullHeight;
|
|
||||||
if (widthMulti < heightMulti) {
|
|
||||||
// width is the dominant dimension so scaling will be fixed on that
|
|
||||||
return Math.floor(widthMulti * fullHeight);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
// height is the dominant dimension so scaling will be fixed on that
|
|
||||||
return Math.floor(heightMulti * fullHeight);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
render: function() {
|
|
||||||
var content = this.props.mxEvent.getContent();
|
|
||||||
var cli = MatrixClientPeg.get();
|
|
||||||
|
|
||||||
var thumbHeight = null;
|
|
||||||
if (content.info) thumbHeight = this.thumbHeight(content.info.w, content.info.h, 320, 240);
|
|
||||||
|
|
||||||
var imgStyle = {};
|
|
||||||
if (thumbHeight) imgStyle['height'] = thumbHeight;
|
|
||||||
|
|
||||||
return (
|
|
||||||
<li className="mx_MImageTile">
|
|
||||||
<a href={cli.mxcUrlToHttp(content.url)} target="_blank">
|
|
||||||
<img src={cli.mxcUrlToHttp(content.url, 320, 240)} alt={content.body} style={imgStyle} />
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
);
|
|
||||||
},
|
|
||||||
});
|
|
|
@ -1,36 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2015 OpenMarket 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';
|
|
||||||
|
|
||||||
var React = require('react');
|
|
||||||
|
|
||||||
var MNoticeTileController = require("../../../../src/controllers/molecules/MNoticeTile");
|
|
||||||
|
|
||||||
module.exports = React.createClass({
|
|
||||||
displayName: 'MNoticeTile',
|
|
||||||
mixins: [MNoticeTileController],
|
|
||||||
|
|
||||||
render: function() {
|
|
||||||
var content = this.props.mxEvent.getContent();
|
|
||||||
return (
|
|
||||||
<span ref="content" className="mx_MNoticeTile mx_MessageTile_content">
|
|
||||||
{content.body}
|
|
||||||
</span>
|
|
||||||
);
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
|
@ -1,57 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2015 OpenMarket 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';
|
|
||||||
|
|
||||||
var React = require('react');
|
|
||||||
|
|
||||||
var MRoomMemberTileController = require("../../../../src/controllers/molecules/MRoomMemberTile");
|
|
||||||
|
|
||||||
var ComponentBroker = require('../../../../src/ComponentBroker');
|
|
||||||
var MessageTimestamp = ComponentBroker.get('atoms/MessageTimestamp');
|
|
||||||
|
|
||||||
module.exports = React.createClass({
|
|
||||||
displayName: 'MRoomMemberTile',
|
|
||||||
mixins: [MRoomMemberTileController],
|
|
||||||
|
|
||||||
getMemberEventText: function() {
|
|
||||||
var ev = this.props.mxEvent;
|
|
||||||
// XXX: SYJS-16
|
|
||||||
var senderName = ev.sender ? ev.sender.name : "Someone";
|
|
||||||
switch (ev.getContent().membership) {
|
|
||||||
case 'invite':
|
|
||||||
return senderName + " invited " + ev.target.name + ".";
|
|
||||||
case 'join':
|
|
||||||
return senderName + " joined the room.";
|
|
||||||
case 'leave':
|
|
||||||
return senderName + " left the room.";
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
render: function() {
|
|
||||||
// XXX: for now, just cheekily borrow the css from message tile...
|
|
||||||
return (
|
|
||||||
<div className="mx_MessageTile">
|
|
||||||
<MessageTimestamp ts={this.props.mxEvent.getTs()} />
|
|
||||||
<span className="mx_SenderProfile"></span>
|
|
||||||
<span className="mx_MessageTile_content">
|
|
||||||
{this.getMemberEventText()}
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
|
@ -1,36 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2015 OpenMarket 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';
|
|
||||||
|
|
||||||
var React = require('react');
|
|
||||||
|
|
||||||
var MTextTileController = require("../../../../src/controllers/molecules/MTextTile");
|
|
||||||
|
|
||||||
module.exports = React.createClass({
|
|
||||||
displayName: 'MTextTile',
|
|
||||||
mixins: [MTextTileController],
|
|
||||||
|
|
||||||
render: function() {
|
|
||||||
var content = this.props.mxEvent.getContent();
|
|
||||||
return (
|
|
||||||
<span ref="content" className="mx_MTextTile mx_MessageTile_content">
|
|
||||||
{content.body}
|
|
||||||
</span>
|
|
||||||
);
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
|
@ -1,41 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2015 OpenMarket 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';
|
|
||||||
|
|
||||||
var React = require('react');
|
|
||||||
|
|
||||||
var ComponentBroker = require('../../../../src/ComponentBroker');
|
|
||||||
|
|
||||||
var LogoutButton = ComponentBroker.get("atoms/LogoutButton");
|
|
||||||
var EnableNotificationsButton = ComponentBroker.get("atoms/EnableNotificationsButton");
|
|
||||||
|
|
||||||
var MatrixToolbarController = require("../../../../src/controllers/molecules/MatrixToolbar");
|
|
||||||
|
|
||||||
module.exports = React.createClass({
|
|
||||||
displayName: 'MatrixToolbar',
|
|
||||||
mixins: [MatrixToolbarController],
|
|
||||||
|
|
||||||
render: function() {
|
|
||||||
return (
|
|
||||||
<div className="mx_MatrixToolbar">
|
|
||||||
<LogoutButton />
|
|
||||||
<EnableNotificationsButton />
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
|
@ -1,33 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2015 OpenMarket 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';
|
|
||||||
|
|
||||||
var React = require('react');
|
|
||||||
|
|
||||||
var MemberTileController = require("../../../../src/controllers/molecules/MemberTile");
|
|
||||||
|
|
||||||
module.exports = React.createClass({
|
|
||||||
displayName: 'MemberTile',
|
|
||||||
mixins: [MemberTileController],
|
|
||||||
render: function() {
|
|
||||||
return (
|
|
||||||
<div className="mx_MemberTile">
|
|
||||||
<div className="mx_MemberTile_name">{this.props.member.name}</div>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
});
|
|
|
@ -1,35 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2015 OpenMarket 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';
|
|
||||||
|
|
||||||
var React = require('react');
|
|
||||||
|
|
||||||
var MessageComposerController = require("../../../../src/controllers/molecules/MessageComposer");
|
|
||||||
|
|
||||||
module.exports = React.createClass({
|
|
||||||
displayName: 'MessageComposer',
|
|
||||||
mixins: [MessageComposerController],
|
|
||||||
|
|
||||||
render: function() {
|
|
||||||
return (
|
|
||||||
<div className="mx_MessageComposer">
|
|
||||||
<textarea ref="textarea" onKeyDown={this.onKeyDown} />
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
|
@ -1,66 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2015 OpenMarket 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';
|
|
||||||
|
|
||||||
var React = require('react');
|
|
||||||
|
|
||||||
var classNames = require("classnames");
|
|
||||||
|
|
||||||
var ComponentBroker = require('../../../../src/ComponentBroker');
|
|
||||||
|
|
||||||
var MessageTimestamp = ComponentBroker.get('atoms/MessageTimestamp');
|
|
||||||
var SenderProfile = ComponentBroker.get('molecules/SenderProfile');
|
|
||||||
|
|
||||||
var UnknownMessageTile = ComponentBroker.get('molecules/UnknownMessageTile');
|
|
||||||
|
|
||||||
var tileTypes = {
|
|
||||||
'm.text': ComponentBroker.get('molecules/MTextTile'),
|
|
||||||
'm.notice': ComponentBroker.get('molecules/MNoticeTile'),
|
|
||||||
'm.emote': ComponentBroker.get('molecules/MEmoteTile'),
|
|
||||||
'm.image': ComponentBroker.get('molecules/MImageTile'),
|
|
||||||
'm.file': ComponentBroker.get('molecules/MFileTile')
|
|
||||||
};
|
|
||||||
|
|
||||||
var MessageTileController = require("../../../../src/controllers/molecules/MessageTile");
|
|
||||||
|
|
||||||
module.exports = React.createClass({
|
|
||||||
displayName: 'MessageTile',
|
|
||||||
mixins: [MessageTileController],
|
|
||||||
|
|
||||||
render: function() {
|
|
||||||
var content = this.props.mxEvent.getContent();
|
|
||||||
var msgtype = content.msgtype;
|
|
||||||
var TileType = UnknownMessageTile;
|
|
||||||
if (msgtype && tileTypes[msgtype]) {
|
|
||||||
TileType = tileTypes[msgtype];
|
|
||||||
}
|
|
||||||
var classes = classNames({
|
|
||||||
mx_MessageTile: true,
|
|
||||||
mx_MessageTile_sending: this.props.mxEvent.status == 'sending',
|
|
||||||
mx_MessageTile_notSent: this.props.mxEvent.status == 'not_sent',
|
|
||||||
mx_MessageTile_highlight: this.shouldHighlight()
|
|
||||||
});
|
|
||||||
return (
|
|
||||||
<li className={classes}>
|
|
||||||
<MessageTimestamp ts={this.props.mxEvent.getTs()} />
|
|
||||||
<SenderProfile mxEvent={this.props.mxEvent} />
|
|
||||||
<TileType mxEvent={this.props.mxEvent} />
|
|
||||||
</li>
|
|
||||||
);
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
|
@ -1,37 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2015 OpenMarket 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';
|
|
||||||
|
|
||||||
var React = require('react');
|
|
||||||
|
|
||||||
var ProgressBarController = require("../../../../src/controllers/molecules/ProgressBar");
|
|
||||||
|
|
||||||
module.exports = React.createClass({
|
|
||||||
displayName: 'ProgressBar',
|
|
||||||
mixins: [ProgressBarController],
|
|
||||||
|
|
||||||
render: function() {
|
|
||||||
// Would use an HTML5 progress tag but if that doesn't animate if you
|
|
||||||
// use the HTML attributes rather than styles
|
|
||||||
var progressStyle = {
|
|
||||||
width: ((this.props.value / this.props.max) * 100)+"%"
|
|
||||||
};
|
|
||||||
return (
|
|
||||||
<div className="mx_ProgressBar"><div className="mx_ProgressBar_fill" style={progressStyle}></div></div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
});
|
|
|
@ -1,35 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2015 OpenMarket 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';
|
|
||||||
|
|
||||||
var React = require('react');
|
|
||||||
|
|
||||||
var RoomHeaderController = require("../../../../src/controllers/molecules/RoomHeader");
|
|
||||||
|
|
||||||
module.exports = React.createClass({
|
|
||||||
displayName: 'RoomHeader',
|
|
||||||
mixins: [RoomHeaderController],
|
|
||||||
|
|
||||||
render: function() {
|
|
||||||
return (
|
|
||||||
<div className="mx_RoomHeader">
|
|
||||||
{this.props.room.name}
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
|
@ -1,44 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2015 OpenMarket 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';
|
|
||||||
|
|
||||||
var React = require('react');
|
|
||||||
var classNames = require('classnames');
|
|
||||||
|
|
||||||
var RoomTileController = require("../../../../src/controllers/molecules/RoomTile");
|
|
||||||
|
|
||||||
var MatrixClientPeg = require("../../../../src/MatrixClientPeg");
|
|
||||||
|
|
||||||
module.exports = React.createClass({
|
|
||||||
displayName: 'RoomTile',
|
|
||||||
mixins: [RoomTileController],
|
|
||||||
render: function() {
|
|
||||||
var myUserId = MatrixClientPeg.get().credentials.userId;
|
|
||||||
var classes = classNames({
|
|
||||||
'mx_RoomTile': true,
|
|
||||||
'selected': this.props.selected,
|
|
||||||
'unread': this.props.unread,
|
|
||||||
'highlight': this.props.highlight,
|
|
||||||
'invited': this.props.room.currentState.members[myUserId].membership == 'invite'
|
|
||||||
});
|
|
||||||
return (
|
|
||||||
<div className={classes} onClick={this.onClick}>
|
|
||||||
<div className="mx_RoomTile_name">{this.props.room.name}</div>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
});
|
|
|
@ -1,42 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2015 OpenMarket 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';
|
|
||||||
|
|
||||||
var React = require('react');
|
|
||||||
|
|
||||||
var SenderProfileController = require("../../../../src/controllers/molecules/SenderProfile");
|
|
||||||
|
|
||||||
module.exports = React.createClass({
|
|
||||||
displayName: 'SenderProfile',
|
|
||||||
mixins: [SenderProfileController],
|
|
||||||
|
|
||||||
render: function() {
|
|
||||||
var mxEvent = this.props.mxEvent;
|
|
||||||
var name = mxEvent.sender ? mxEvent.sender.name : mxEvent.getSender();
|
|
||||||
|
|
||||||
var msgtype = mxEvent.getContent().msgtype;
|
|
||||||
if (msgtype && msgtype == 'm.emote') {
|
|
||||||
name = ''; // emote message must include the name so don't duplicate it
|
|
||||||
}
|
|
||||||
return (
|
|
||||||
<span className="mx_SenderProfile">
|
|
||||||
{name}
|
|
||||||
</span>
|
|
||||||
);
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
|
@ -1,43 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2015 OpenMarket 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';
|
|
||||||
|
|
||||||
var React = require('react');
|
|
||||||
|
|
||||||
var ServerConfigController = require("../../../../src/controllers/molecules/ServerConfig");
|
|
||||||
|
|
||||||
module.exports = React.createClass({
|
|
||||||
displayName: 'ServerConfig',
|
|
||||||
mixins: [ServerConfigController],
|
|
||||||
|
|
||||||
render: function() {
|
|
||||||
return (
|
|
||||||
<div className="HomeServerTextBox">
|
|
||||||
<table className="serverConfig">
|
|
||||||
<tr>
|
|
||||||
<td>Home Server URL</td>
|
|
||||||
<td><input type="text" value={this.state.hs_url} onChange={this.hsChanged} /></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>Identity Server URL</td>
|
|
||||||
<td><input type="text" value={this.state.is_url} onChange={this.isChanged} /></td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
});
|
|
|
@ -1,34 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2015 OpenMarket 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';
|
|
||||||
|
|
||||||
var React = require('react');
|
|
||||||
|
|
||||||
var UnknownMessageTileController = require("../../../../src/controllers/molecules/UnknownMessageTile");
|
|
||||||
|
|
||||||
module.exports = React.createClass({
|
|
||||||
displayName: 'UnknownMessageTile',
|
|
||||||
mixins: [UnknownMessageTileController],
|
|
||||||
|
|
||||||
render: function() {
|
|
||||||
return (
|
|
||||||
<span className="mx_UnknownMessageTile">
|
|
||||||
?
|
|
||||||
</span>
|
|
||||||
);
|
|
||||||
},
|
|
||||||
});
|
|
|
@ -1,44 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2015 OpenMarket 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';
|
|
||||||
|
|
||||||
var React = require('react');
|
|
||||||
|
|
||||||
var UserSelectorController = require("../../../../src/controllers/molecules/UserSelector");
|
|
||||||
|
|
||||||
module.exports = React.createClass({
|
|
||||||
displayName: 'UserSelector',
|
|
||||||
mixins: [UserSelectorController],
|
|
||||||
|
|
||||||
onAddUserId: function() {
|
|
||||||
this.addUser(this.refs.user_id_input.getDOMNode().value);
|
|
||||||
},
|
|
||||||
|
|
||||||
render: function() {
|
|
||||||
return (
|
|
||||||
<div>
|
|
||||||
<ul className="mx_UserSelector_UserIdList" ref="list">
|
|
||||||
{this.state.selected_users.map(function(user_id, i) {
|
|
||||||
return <li key={user_id}>{user_id}</li>
|
|
||||||
})}
|
|
||||||
</ul>
|
|
||||||
<input type="text" ref="user_id_input" className="mx_UserSelector_userIdInput" placeholder="ex. @bob:example.com"/>
|
|
||||||
<button onClick={this.onAddUserId} className="mx_UserSelector_AddUserId">Add User</button>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
});
|
|
|
@ -1,73 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2015 OpenMarket 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';
|
|
||||||
|
|
||||||
var React = require('react');
|
|
||||||
|
|
||||||
var CreateRoomController = require("../../../../src/controllers/organisms/CreateRoom");
|
|
||||||
|
|
||||||
var ComponentBroker = require('../../../../src/ComponentBroker');
|
|
||||||
|
|
||||||
var CreateRoomButton = ComponentBroker.get("atoms/create_room/CreateRoomButton");
|
|
||||||
var RoomNameTextbox = ComponentBroker.get("atoms/create_room/RoomNameTextbox");
|
|
||||||
var Presets = ComponentBroker.get("atoms/create_room/Presets");
|
|
||||||
var UserSelector = ComponentBroker.get("molecules/UserSelector");
|
|
||||||
|
|
||||||
|
|
||||||
module.exports = React.createClass({
|
|
||||||
displayName: 'CreateRoom',
|
|
||||||
mixins: [CreateRoomController],
|
|
||||||
|
|
||||||
getPreset: function() {
|
|
||||||
return this.refs.presets.getPreset();
|
|
||||||
},
|
|
||||||
|
|
||||||
getName: function() {
|
|
||||||
return this.refs.name_textbox.getName();
|
|
||||||
},
|
|
||||||
|
|
||||||
getInvitedUsers: function() {
|
|
||||||
return this.refs.user_selector.getUserIds();
|
|
||||||
},
|
|
||||||
|
|
||||||
render: function() {
|
|
||||||
var curr_phase = this.state.phase;
|
|
||||||
if (curr_phase == this.phases.CREATING) {
|
|
||||||
return (
|
|
||||||
<div>Creating...</div>
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
var error_box = "";
|
|
||||||
if (curr_phase == this.phases.ERROR) {
|
|
||||||
error_box = (
|
|
||||||
<div className="mx_Error">
|
|
||||||
An error occured: {this.state.error_string}
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
return (
|
|
||||||
<div className="mx_CreateRoom">
|
|
||||||
<label>Room Name <RoomNameTextbox ref="name_textbox" /></label>
|
|
||||||
<Presets ref="presets"/>
|
|
||||||
<UserSelector ref="user_selector"/>
|
|
||||||
<CreateRoomButton onCreateRoom={this.onCreateRoom} />
|
|
||||||
{error_box}
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
|
@ -1,56 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2015 OpenMarket 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';
|
|
||||||
|
|
||||||
var React = require('react');
|
|
||||||
|
|
||||||
var MemberListController = require("../../../../src/controllers/organisms/MemberList");
|
|
||||||
|
|
||||||
var ComponentBroker = require('../../../../src/ComponentBroker');
|
|
||||||
|
|
||||||
var MemberTile = ComponentBroker.get("molecules/MemberTile");
|
|
||||||
|
|
||||||
|
|
||||||
module.exports = React.createClass({
|
|
||||||
displayName: 'MemberList',
|
|
||||||
mixins: [MemberListController],
|
|
||||||
|
|
||||||
makeMemberTiles: function() {
|
|
||||||
var that = this;
|
|
||||||
return Object.keys(that.state.memberDict).map(function(userId) {
|
|
||||||
var m = that.state.memberDict[userId];
|
|
||||||
return (
|
|
||||||
<li key={userId}>
|
|
||||||
<MemberTile
|
|
||||||
member={m}
|
|
||||||
/>
|
|
||||||
</li>
|
|
||||||
);
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
render: function() {
|
|
||||||
return (
|
|
||||||
<div className="mx_MemberList">
|
|
||||||
<ul>
|
|
||||||
{this.makeMemberTiles()}
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
|
@ -1,102 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2015 OpenMarket 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';
|
|
||||||
|
|
||||||
var NotifierController = require("../../../../src/controllers/organisms/Notifier");
|
|
||||||
|
|
||||||
var MatrixClientPeg = require("../../../../src/MatrixClientPeg");
|
|
||||||
var extend = require("../../../../src/extend");
|
|
||||||
var dis = require("../../../../src/dispatcher");
|
|
||||||
|
|
||||||
|
|
||||||
var NotifierView = {
|
|
||||||
notificationMessageForEvent: function(ev) {
|
|
||||||
var senderDisplayName = ev.sender ? ev.sender.name : '';
|
|
||||||
var message = null;
|
|
||||||
|
|
||||||
if (ev.event.type === "m.room.message") {
|
|
||||||
message = ev.getContent().body;
|
|
||||||
if (ev.getContent().msgtype === "m.emote") {
|
|
||||||
message = "* " + senderDisplayName + " " + message;
|
|
||||||
} else if (ev.getContent().msgtype === "m.image") {
|
|
||||||
message = senderDisplayName + " sent an image.";
|
|
||||||
}
|
|
||||||
} else if (ev.event.type == "m.room.member") {
|
|
||||||
if (ev.event.state_key !== MatrixClientPeg.get().credentials.userId && "join" === ev.getContent().membership) {
|
|
||||||
// Notify when another user joins
|
|
||||||
message = senderDisplayName + " joined";
|
|
||||||
} else if (ev.event.state_key === MatrixClientPeg.get().credentials.userId && "invite" === ev.getContent().membership) {
|
|
||||||
// notify when you are invited
|
|
||||||
message = senderDisplayName + " invited you to a room";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return message;
|
|
||||||
},
|
|
||||||
|
|
||||||
displayNotification: function(ev, room) {
|
|
||||||
if (!global.Notification || global.Notification.permission != 'granted') {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (global.document.hasFocus()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var msg = this.notificationMessageForEvent(ev);
|
|
||||||
if (!msg) return;
|
|
||||||
|
|
||||||
var title;
|
|
||||||
if (!ev.sender || room.name == ev.sender.name) {
|
|
||||||
title = room.name;
|
|
||||||
} else if (ev.sender) {
|
|
||||||
title = ev.sender.name + " (" + room.name + ")";
|
|
||||||
}
|
|
||||||
|
|
||||||
var notification = new global.Notification(
|
|
||||||
title,
|
|
||||||
{
|
|
||||||
"body": msg,
|
|
||||||
"icon": MatrixClientPeg.get().getAvatarUrlForMember(ev.sender)
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
notification.onclick = function() {
|
|
||||||
dis.dispatch({
|
|
||||||
action: 'view_room',
|
|
||||||
room_id: room.roomId
|
|
||||||
});
|
|
||||||
global.focus();
|
|
||||||
};
|
|
||||||
|
|
||||||
/*var audioClip;
|
|
||||||
|
|
||||||
if (audioNotification) {
|
|
||||||
audioClip = playAudio(audioNotification);
|
|
||||||
}*/
|
|
||||||
|
|
||||||
global.setTimeout(function() {
|
|
||||||
notification.close();
|
|
||||||
}, 5 * 1000);
|
|
||||||
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
var NotifierClass = function() {};
|
|
||||||
extend(NotifierClass.prototype, NotifierController);
|
|
||||||
extend(NotifierClass.prototype, NotifierView);
|
|
||||||
|
|
||||||
module.exports = new NotifierClass();
|
|
||||||
|
|
|
@ -1,36 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2015 OpenMarket 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';
|
|
||||||
|
|
||||||
var React = require('react');
|
|
||||||
|
|
||||||
var RoomListController = require("../../../../src/controllers/organisms/RoomList");
|
|
||||||
|
|
||||||
|
|
||||||
module.exports = React.createClass({
|
|
||||||
displayName: 'RoomList',
|
|
||||||
mixins: [RoomListController],
|
|
||||||
|
|
||||||
render: function() {
|
|
||||||
return (
|
|
||||||
<div className="mx_RoomList">
|
|
||||||
{this.makeRoomTiles()}
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
|
@ -1,99 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2015 OpenMarket 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';
|
|
||||||
|
|
||||||
var React = require('react');
|
|
||||||
|
|
||||||
var MatrixClientPeg = require("../../../../src/MatrixClientPeg");
|
|
||||||
|
|
||||||
var ComponentBroker = require('../../../../src/ComponentBroker');
|
|
||||||
var classNames = require("classnames");
|
|
||||||
|
|
||||||
var MessageTile = ComponentBroker.get('molecules/MessageTile');
|
|
||||||
var RoomHeader = ComponentBroker.get('molecules/RoomHeader');
|
|
||||||
var MemberList = ComponentBroker.get('organisms/MemberList');
|
|
||||||
var MessageComposer = ComponentBroker.get('molecules/MessageComposer');
|
|
||||||
|
|
||||||
var RoomViewController = require("../../../../src/controllers/organisms/RoomView");
|
|
||||||
|
|
||||||
var Loader = require("react-loader");
|
|
||||||
|
|
||||||
|
|
||||||
module.exports = React.createClass({
|
|
||||||
displayName: 'RoomView',
|
|
||||||
mixins: [RoomViewController],
|
|
||||||
|
|
||||||
render: function() {
|
|
||||||
if (!this.state.room) {
|
|
||||||
return (
|
|
||||||
<div />
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
var myUserId = MatrixClientPeg.get().credentials.userId;
|
|
||||||
if (this.state.room.currentState.members[myUserId].membership == 'invite') {
|
|
||||||
if (this.state.joining) {
|
|
||||||
return (
|
|
||||||
<div className="mx_RoomView">
|
|
||||||
<Loader />
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
var inviteEvent = this.state.room.currentState.members[myUserId].events.member.event;
|
|
||||||
// XXX: Leaving this intentionally basic for now because invites are about to change totally
|
|
||||||
var joinErrorText = this.state.joinError ? "Failed to join room!" : "";
|
|
||||||
return (
|
|
||||||
<div className="mx_RoomView">
|
|
||||||
<div className="mx_RoomView_invitePrompt">
|
|
||||||
<div>{inviteEvent.user_id} has invited you to a room</div>
|
|
||||||
<button ref="joinButton" onClick={this.onJoinButtonClicked}>Join</button>
|
|
||||||
<div className="error">{joinErrorText}</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
var scrollheader_classes = classNames({
|
|
||||||
mx_RoomView_scrollheader: true,
|
|
||||||
loading: this.state.paginating
|
|
||||||
});
|
|
||||||
return (
|
|
||||||
<div className="mx_RoomView">
|
|
||||||
<RoomHeader room={this.state.room} />
|
|
||||||
<div className="mx_RoomView_roomWrapper">
|
|
||||||
<main className="mx_RoomView_messagePanel">
|
|
||||||
<div ref="messageWrapper" className="mx_RoomView_messageListWrapper" onScroll={this.onMessageListScroll}>
|
|
||||||
<div className="mx_RoomView_MessageList">
|
|
||||||
<div className={scrollheader_classes}>
|
|
||||||
</div>
|
|
||||||
<ul className="mx_RoomView_MessageList_ul" aria-live="polite">
|
|
||||||
{this.getEventTiles()}
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<MessageComposer roomId={this.props.roomId} />
|
|
||||||
</main>
|
|
||||||
<aside>
|
|
||||||
<MemberList roomId={this.props.roomId} key={this.props.roomId} />
|
|
||||||
</aside>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
|
@ -1,70 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2015 OpenMarket 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';
|
|
||||||
|
|
||||||
var React = require('react');
|
|
||||||
var ComponentBroker = require('../../../../src/ComponentBroker');
|
|
||||||
|
|
||||||
var RoomList = ComponentBroker.get('organisms/RoomList');
|
|
||||||
var RoomView = ComponentBroker.get('organisms/RoomView');
|
|
||||||
var MatrixToolbar = ComponentBroker.get('molecules/MatrixToolbar');
|
|
||||||
var Login = ComponentBroker.get('templates/Login');
|
|
||||||
var Register = ComponentBroker.get('templates/Register');
|
|
||||||
|
|
||||||
var MatrixChatController = require("../../../../src/controllers/pages/MatrixChat");
|
|
||||||
|
|
||||||
// should be atomised
|
|
||||||
var Loader = require("react-loader");
|
|
||||||
|
|
||||||
|
|
||||||
module.exports = React.createClass({
|
|
||||||
displayName: 'MatrixChat',
|
|
||||||
mixins: [MatrixChatController],
|
|
||||||
|
|
||||||
render: function() {
|
|
||||||
if (this.state.logged_in && this.state.ready) {
|
|
||||||
return (
|
|
||||||
<div className="mx_MatrixChat">
|
|
||||||
<div className="mx_MatrixChat_chatWrapper">
|
|
||||||
<aside className="mx_MatrixChat_leftPanel">
|
|
||||||
<RoomList selectedRoom={this.state.currentRoom} />
|
|
||||||
<MatrixToolbar />
|
|
||||||
</aside>
|
|
||||||
<RoomView roomId={this.state.currentRoom} key={this.state.currentRoom} />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
} else if (this.state.logged_in) {
|
|
||||||
return (
|
|
||||||
<Loader />
|
|
||||||
);
|
|
||||||
} else if (this.state.screen == 'register') {
|
|
||||||
return (
|
|
||||||
<Register onLoggedIn={this.onLoggedIn} clientSecret={this.state.register_client_secret}
|
|
||||||
sessionId={this.state.register_session_id} idSid={this.state.register_id_sid}
|
|
||||||
hsUrl={this.state.register_hs_url} isUrl={this.state.register_is_url}
|
|
||||||
registrationUrl={this.props.registrationUrl}
|
|
||||||
/>
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
return (
|
|
||||||
<Login onLoggedIn={this.onLoggedIn} />
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
|
@ -1,102 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2015 OpenMarket 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';
|
|
||||||
|
|
||||||
var React = require('react');
|
|
||||||
|
|
||||||
var ComponentBroker = require("../../../../src/ComponentBroker");
|
|
||||||
|
|
||||||
var ProgressBar = ComponentBroker.get("molecules/ProgressBar");
|
|
||||||
var Loader = require("react-loader");
|
|
||||||
|
|
||||||
var LoginController = require("../../../../src/controllers/templates/Login");
|
|
||||||
|
|
||||||
var ServerConfig = ComponentBroker.get("molecules/ServerConfig");
|
|
||||||
|
|
||||||
module.exports = React.createClass({
|
|
||||||
displayName: 'Login',
|
|
||||||
mixins: [LoginController],
|
|
||||||
|
|
||||||
getHsUrl: function() {
|
|
||||||
return this.refs.serverConfig.getHsUrl();
|
|
||||||
},
|
|
||||||
|
|
||||||
getIsUrl: function() {
|
|
||||||
return this.refs.serverConfig.getIsUrl();
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the form field values for the current login stage
|
|
||||||
*/
|
|
||||||
getFormVals: function() {
|
|
||||||
return {
|
|
||||||
'username': this.refs.user.getDOMNode().value,
|
|
||||||
'password': this.refs.pass.getDOMNode().value
|
|
||||||
};
|
|
||||||
},
|
|
||||||
|
|
||||||
componentForStep: function(step) {
|
|
||||||
switch (step) {
|
|
||||||
case 'choose_hs':
|
|
||||||
return (
|
|
||||||
<div>
|
|
||||||
<form onSubmit={this.onHSChosen}>
|
|
||||||
<ServerConfig ref="serverConfig" />
|
|
||||||
<input type="submit" value="Continue" />
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
// XXX: clearly these should be separate organisms
|
|
||||||
case 'stage_m.login.password':
|
|
||||||
return (
|
|
||||||
<div>
|
|
||||||
<form onSubmit={this.onUserPassEntered}>
|
|
||||||
<input ref="user" type="text" placeholder="username" /><br />
|
|
||||||
<input ref="pass" type="password" placeholder="password" /><br />
|
|
||||||
<input type="submit" value="Log in" />
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
loginContent: function() {
|
|
||||||
if (this.state.busy) {
|
|
||||||
return (
|
|
||||||
<Loader />
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
return (
|
|
||||||
<div>
|
|
||||||
<h1>Please log in:</h1>
|
|
||||||
{this.componentForStep(this.state.step)}
|
|
||||||
<div className="error">{this.state.errorText}</div>
|
|
||||||
<a onClick={this.showRegister} href="#">Create a new account</a>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
render: function() {
|
|
||||||
return (
|
|
||||||
<div className="mx_Login">
|
|
||||||
<ProgressBar value={this.state.currentStep} max={this.state.totalSteps} />
|
|
||||||
{this.loginContent()}
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
});
|
|
|
@ -1,131 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2015 OpenMarket 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';
|
|
||||||
|
|
||||||
var React = require('react');
|
|
||||||
|
|
||||||
var ComponentBroker = require("../../../../src/ComponentBroker");
|
|
||||||
|
|
||||||
var Loader = require("react-loader");
|
|
||||||
|
|
||||||
var RegisterController = require("../../../../src/controllers/templates/Register");
|
|
||||||
|
|
||||||
var ServerConfig = ComponentBroker.get("molecules/ServerConfig");
|
|
||||||
|
|
||||||
module.exports = React.createClass({
|
|
||||||
displayName: 'Register',
|
|
||||||
mixins: [RegisterController],
|
|
||||||
|
|
||||||
getRegFormVals: function() {
|
|
||||||
return {
|
|
||||||
email: this.refs.email.getDOMNode().value,
|
|
||||||
username: this.refs.username.getDOMNode().value,
|
|
||||||
password: this.refs.password.getDOMNode().value,
|
|
||||||
confirmPassword: this.refs.confirmPassword.getDOMNode().value
|
|
||||||
};
|
|
||||||
},
|
|
||||||
|
|
||||||
getHsUrl: function() {
|
|
||||||
return this.refs.serverConfig.getHsUrl();
|
|
||||||
},
|
|
||||||
|
|
||||||
getIsUrl: function() {
|
|
||||||
return this.refs.serverConfig.getIsUrl();
|
|
||||||
},
|
|
||||||
|
|
||||||
componentForStep: function(step) {
|
|
||||||
switch (step) {
|
|
||||||
case 'initial':
|
|
||||||
return (
|
|
||||||
<div>
|
|
||||||
<form onSubmit={this.onInitialStageSubmit}>
|
|
||||||
Email: <input type="text" ref="email" defaultValue={this.savedParams.email} /><br />
|
|
||||||
Username: <input type="text" ref="username" defaultValue={this.savedParams.username} /><br />
|
|
||||||
Password: <input type="password" ref="password" defaultValue={this.savedParams.password} /><br />
|
|
||||||
Confirm Password: <input type="password" ref="confirmPassword" defaultValue={this.savedParams.confirmPassword} /><br />
|
|
||||||
<ServerConfig ref="serverConfig" />
|
|
||||||
<input type="submit" value="Continue" />
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
// XXX: clearly these should be separate organisms
|
|
||||||
case 'stage_m.login.email.identity':
|
|
||||||
return (
|
|
||||||
<div>
|
|
||||||
Please check your email to continue registration.
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
case 'stage_m.login.recaptcha':
|
|
||||||
return (
|
|
||||||
<div ref="recaptchaContainer">
|
|
||||||
This Home Server would like to make sure you're not a robot
|
|
||||||
<div id="mx_recaptcha"></div>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
registerContent: function() {
|
|
||||||
if (this.state.busy) {
|
|
||||||
return (
|
|
||||||
<Loader />
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
return (
|
|
||||||
<div>
|
|
||||||
<h1>Create a new account:</h1>
|
|
||||||
{this.componentForStep(this.state.step)}
|
|
||||||
<div className="error">{this.state.errorText}</div>
|
|
||||||
<a onClick={this.showLogin} href="#">Sign in with existing account</a>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
onBadFields: function(bad) {
|
|
||||||
var keys = Object.keys(bad);
|
|
||||||
var strings = [];
|
|
||||||
for (var i = 0; i < keys.length; ++i) {
|
|
||||||
switch (bad[keys[i]]) {
|
|
||||||
case this.FieldErrors.PasswordMismatch:
|
|
||||||
strings.push("Passwords don't match");
|
|
||||||
break;
|
|
||||||
case this.FieldErrors.Missing:
|
|
||||||
strings.push("Missing "+keys[i]);
|
|
||||||
break;
|
|
||||||
case this.FieldErrors.TooShort:
|
|
||||||
strings.push(keys[i]+" is too short");
|
|
||||||
break;
|
|
||||||
case this.FieldErrors.InUse:
|
|
||||||
strings.push(keys[i]+" is already taken");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var errtxt = strings.join(', ');
|
|
||||||
this.setState({
|
|
||||||
errorText: errtxt
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
render: function() {
|
|
||||||
return (
|
|
||||||
<div className="mx_Register">
|
|
||||||
{this.registerContent()}
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
});
|
|
Loading…
Reference in a new issue