diff --git a/.gitignore b/.gitignore
index 6dd2b988..7f753927 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,13 +5,12 @@
/key.pem
/lib
/node_modules
-/electron/node_modules
+/electron_app/node_modules
+/electron_app/dist
/packages/
/webapp
/.npmrc
.DS_Store
npm-debug.log
-electron/dist
-electron/pub
/config.json
/src/component-index.js
diff --git a/.modernizr.json b/.modernizr.json
index 29e620a5..06be8b4f 100644
--- a/.modernizr.json
+++ b/.modernizr.json
@@ -9,6 +9,8 @@
"test/css/flexbox",
"test/es5/specification",
"test/css/objectfit",
- "test/storage/localstorage"
+ "test/storage/localstorage",
+ "test/workers/webworkers",
+ "test/indexeddb"
]
-}
\ No newline at end of file
+}
diff --git a/.travis.yml b/.travis.yml
index 9720d887..ff58bf37 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -2,6 +2,5 @@ language: node_js
node_js:
- 6 # node v6, to match jenkins
install:
+ - scripts/fetch-develop.deps.sh
- npm install
- - (cd node_modules/matrix-js-sdk && npm install)
- - (cd node_modules/matrix-react-sdk && npm install)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index ea63ee66..21657005 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,111 @@
+Changes in [0.9.10](https://github.com/vector-im/riot-web/releases/tag/v0.9.10) (2017-05-22)
+============================================================================================
+[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.9.10-rc.1...v0.9.10)
+
+ * No changes
+
+
+Changes in [0.9.10-rc.1](https://github.com/vector-im/riot-web/releases/tag/v0.9.10-rc.1) (2017-05-19)
+======================================================================================================
+[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.9.9...v0.9.10-rc.1)
+
+ * CSS for left_aligned Dropdowns, and adjustments for Country dd in Login
+ [\#3959](https://github.com/vector-im/riot-web/pull/3959)
+ * Add square flag pngs /w genflags.sh script
+ [\#3953](https://github.com/vector-im/riot-web/pull/3953)
+ * Add config for riot-bot on desktop app build
+ [\#3954](https://github.com/vector-im/riot-web/pull/3954)
+ * Desktop: 'copy link address'
+ [\#3952](https://github.com/vector-im/riot-web/pull/3952)
+ * Reduce rageshake log size to 1MB
+ [\#3943](https://github.com/vector-im/riot-web/pull/3943)
+ * CSS for putting country dd on same line as phone input
+ [\#3942](https://github.com/vector-im/riot-web/pull/3942)
+ * fix #3894
+ [\#3919](https://github.com/vector-im/riot-web/pull/3919)
+ * change vector->riot on the surface
+ [\#3894](https://github.com/vector-im/riot-web/pull/3894)
+ * move manifest.json outward so it is scoped properly
+ [\#3888](https://github.com/vector-im/riot-web/pull/3888)
+ * add to manifest
+ [\#3799](https://github.com/vector-im/riot-web/pull/3799)
+ * Automatically update component-index
+ [\#3886](https://github.com/vector-im/riot-web/pull/3886)
+ * move electron -> electron_app because npm smart
+ [\#3877](https://github.com/vector-im/riot-web/pull/3877)
+ * Fix bug report endpoint in config.sample.json.
+ [\#3863](https://github.com/vector-im/riot-web/pull/3863)
+ * Update 2 missed icons to the new icon
+ [\#3851](https://github.com/vector-im/riot-web/pull/3851)
+ * Make left panel better for new users (mk II)
+ [\#3804](https://github.com/vector-im/riot-web/pull/3804)
+ * match primary package.json
+ [\#3839](https://github.com/vector-im/riot-web/pull/3839)
+ * Re-add productName
+ [\#3829](https://github.com/vector-im/riot-web/pull/3829)
+ * Remove leading v in /version file, for SemVer and to match Electron ver
+ [\#3683](https://github.com/vector-im/riot-web/pull/3683)
+ * Fix scope of callback
+ [\#3790](https://github.com/vector-im/riot-web/pull/3790)
+ * Remember and Recall window layout/position state
+ [\#3622](https://github.com/vector-im/riot-web/pull/3622)
+ * Remove babelcheck
+ [\#3808](https://github.com/vector-im/riot-web/pull/3808)
+ * Include MXID and device id in rageshakes
+ [\#3809](https://github.com/vector-im/riot-web/pull/3809)
+ * import Modal
+ [\#3791](https://github.com/vector-im/riot-web/pull/3791)
+ * Pin filesize ver to fix break upstream
+ [\#3775](https://github.com/vector-im/riot-web/pull/3775)
+ * Improve Room Directory Look & Feel
+ [\#3751](https://github.com/vector-im/riot-web/pull/3751)
+ * Fix emote RRs alignment
+ [\#3742](https://github.com/vector-im/riot-web/pull/3742)
+ * Remove unused `placeholder` prop on RoomDropTarget
+ [\#3741](https://github.com/vector-im/riot-web/pull/3741)
+ * Modify CSS for matrix-org/matrix-react-sdk#833
+ [\#3732](https://github.com/vector-im/riot-web/pull/3732)
+ * Warn when exiting due to single-instance
+ [\#3727](https://github.com/vector-im/riot-web/pull/3727)
+ * Electron forgets it was maximized when you click on a notification
+ [\#3709](https://github.com/vector-im/riot-web/pull/3709)
+ * CSS to make h1 and h2 the same size as h1.
+ [\#3719](https://github.com/vector-im/riot-web/pull/3719)
+ * Prevent long room names/topics from pushing UI of the screen
+ [\#3721](https://github.com/vector-im/riot-web/pull/3721)
+ * Disable dropdown highlight on focus
+ [\#3717](https://github.com/vector-im/riot-web/pull/3717)
+ * Escape HTML Tags from Linux Notifications (electron)
+ [\#3564](https://github.com/vector-im/riot-web/pull/3564)
+ * styling for spoilerized access token view in Settings
+ [\#3651](https://github.com/vector-im/riot-web/pull/3651)
+ * Fix Webpack conf
+ [\#3690](https://github.com/vector-im/riot-web/pull/3690)
+ * Add config.json to .gitignore
+ [\#3599](https://github.com/vector-im/riot-web/pull/3599)
+ * add command line arg (--hidden) for electron app
+ [\#3641](https://github.com/vector-im/riot-web/pull/3641)
+ * fix ImageView Download functionality
+ [\#3640](https://github.com/vector-im/riot-web/pull/3640)
+ * Add cross-env into the mix
+ [\#3693](https://github.com/vector-im/riot-web/pull/3693)
+ * Remember acceptance for unsupported browsers.
+ [\#3694](https://github.com/vector-im/riot-web/pull/3694)
+ * Cosmetics to go with matrix-org/matrix-react-sdk#811
+ [\#3692](https://github.com/vector-im/riot-web/pull/3692)
+ * Cancel quicksearch on ESC
+ [\#3680](https://github.com/vector-im/riot-web/pull/3680)
+ * Optimise RoomList and implement quick-search functionality on it.
+ [\#3654](https://github.com/vector-im/riot-web/pull/3654)
+ * Progress updates for rageshake uploads
+ [\#3648](https://github.com/vector-im/riot-web/pull/3648)
+ * Factor out rageshake upload to a separate file
+ [\#3645](https://github.com/vector-im/riot-web/pull/3645)
+ * rageshake: fix race when collecting logs
+ [\#3644](https://github.com/vector-im/riot-web/pull/3644)
+ * Fix a flaky test
+ [\#3649](https://github.com/vector-im/riot-web/pull/3649)
+
Changes in [0.9.9](https://github.com/vector-im/riot-web/releases/tag/v0.9.9) (2017-04-25)
==========================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.9.9-rc.2...v0.9.9)
diff --git a/README.md b/README.md
index 55463a37..34107873 100644
--- a/README.md
+++ b/README.md
@@ -58,27 +58,35 @@ to build.
1. Install or update `node.js` so that your `npm` is at least at version `2.0.0`
1. Clone the repo: `git clone https://github.com/vector-im/riot-web.git`
1. Switch to the riot-web directory: `cd riot-web`
-1. Install the prerequisites: `npm install`
-1. If you are using the `develop` branch of vector-web, you will probably need
- to rebuild some of the dependencies, due to
- https://github.com/npm/npm/issues/3055:
-
+1. If you're using the `develop` branch, install the develop versions of the
+ dependencies, as the released ones will be too old:
```
- (cd node_modules/matrix-js-sdk && npm install)
- (cd node_modules/matrix-react-sdk && npm install)
+ scripts/fetch-develop-deps.sh
```
Whenever you git pull on riot-web you will also probably need to force an update
- to these dependencies - the easiest way is probably:
+ to these dependencies - the simplest way is to re-run the script, but you can also
+ manually update and reuild them:
```
- rm -rf node_modules/matrjx-{js,react}-sdk && npm i
- (cd node_modules/matrix-js-sdk && npm install)
- (cd node_modules/matrix-react-sdk && npm install)
+ cd matrix-js-sdk
+ git pull
+ npm install # re-run to pull in any new dependencies
+ # Depending on your version of npm, npm run build may happen as part of
+ # the npm install above (https://docs.npmjs.com/misc/scripts#prepublish-and-prepare)
+ # If in doubt, run it anyway:
+ npm run build
+ cd ../matrix-react-sdk
+ git pull
+ npm install
+ npm run build
```
However, we recommend setting up a proper development environment (see "Setting
up a development environment" below) if you want to run your own copy of the
`develop` branch, as it makes it much easier to keep these dependencies
up-to-date. Or just use https://riot.im/develop - the continuous integration
release of the develop branch.
+ (Note that we don't reference the develop versions in git directly due to
+ https://github.com/npm/npm/issues/3055)
+1. Install the prerequisites: `npm install`
1. Configure the app by copying `config.sample.json` to `config.json` and
modifying it (see below for details)
1. `npm run dist` to build a tarball to deploy. Untaring this file will give
diff --git a/electron_app/package.json b/electron_app/package.json
index 99651cc1..df9c3bd2 100644
--- a/electron_app/package.json
+++ b/electron_app/package.json
@@ -2,7 +2,7 @@
"name": "riot-web",
"productName": "Riot",
"main": "src/electron-main.js",
- "version": "0.9.9",
+ "version": "0.9.10",
"description": "A feature-rich client for Matrix.org",
"author": "Vector Creations Ltd.",
"dependencies": {
diff --git a/electron_app/riot.im/config.json b/electron_app/riot.im/config.json
index c5bc65e1..80526f4a 100644
--- a/electron_app/riot.im/config.json
+++ b/electron_app/riot.im/config.json
@@ -6,68 +6,11 @@
"integrations_ui_url": "https://scalar.vector.im/",
"integrations_rest_url": "https://scalar.vector.im/api",
"bug_report_endpoint_url": "https://riot.im/bugreports/submit",
+ "welcomeUserId": "@riot-bot:matrix.org",
"enableLabs": true,
"roomDirectory": {
"servers": [
"matrix.org"
- ],
- "serverConfig": {
- "matrix.org": {
- "networks": [
- "_matrix",
- "gitter",
- "irc:freenode",
- "irc:mozilla",
- "irc:snoonet",
- "irc:oftc"
- ]
- }
- },
- "networks": {
- "gitter": {
- "protocol": "gitter",
- "portalRoomPattern": "#gitter_.*:matrix.org",
- "name": "Gitter",
- "icon": "https://gitter.im/favicon.ico",
- "example": "org/community",
- "nativePattern": "[^\\s]+/[^\\s]+$"
- },
- "irc:freenode": {
- "protocol": "irc",
- "domain": "chat.freenode.net",
- "portalRoomPattern": "#freenode_.*:matrix.org",
- "name": "Freenode",
- "icon": "https://matrix.org/_matrix/media/v1/download/matrix.org/DHLHpDDgWNNejFmrewvwEAHX",
- "example": "#channel",
- "nativePattern": "^#[^\\s]+$"
- },
- "irc:mozilla": {
- "protocol": "irc",
- "domain": "chat.freenode.net",
- "portalRoomPattern": "#mozilla_.*:matrix.org",
- "name": "Mozilla",
- "icon": "https://matrix.org/_matrix/media/v1/download/matrix.org/DHLHpDDgWNNejFmrewvwEAHX",
- "example": "#channel",
- "nativePattern": "^#[^\\s]+$"
- },
- "irc:snoonet": {
- "protocol": "irc",
- "domain": "ipv6-irc.snoonet.org",
- "portalRoomPattern": "#_snoonet_.*:matrix.org",
- "name": "Snoonet",
- "icon": "https://matrix.org/_matrix/media/v1/download/matrix.org/DHLHpDDgWNNejFmrewvwEAHX",
- "example": "#channel",
- "nativePattern": "^#[^\\s]+$"
- },
- "irc:oftc": {
- "protocol": "irc",
- "domain": "irc.oftc.net",
- "portalRoomPattern": "#_oftc_.*:matrix.org",
- "name": "OFTC",
- "icon": "https://matrix.org/_matrix/media/v1/download/matrix.org/DHLHpDDgWNNejFmrewvwEAHX",
- "example": "#channel",
- "nativePattern": "^#[^\\s]+$"
- }
- }
+ ]
}
}
diff --git a/electron_app/src/electron-main.js b/electron_app/src/electron-main.js
index 32e305d8..ab844bd3 100644
--- a/electron_app/src/electron-main.js
+++ b/electron_app/src/electron-main.js
@@ -86,6 +86,12 @@ function onLinkContextMenu(ev, params) {
safeOpenURL(params.linkURL);
},
}));
+ popup_menu.append(new electron.MenuItem({
+ label: 'Copy Link Address',
+ click() {
+ electron.clipboard.writeText(params.linkURL);
+ },
+ }));
popup_menu.popup();
ev.preventDefault();
}
@@ -155,12 +161,31 @@ function startAutoUpdate(update_base_url) {
// no other way to catch this error).
// Assuming we generally run from the console when developing,
// this is far preferable.
-process.on('uncaughtException', function (error) {
+process.on('uncaughtException', function(error) {
console.log("Unhandled exception", error);
});
electron.ipcMain.on('install_update', installUpdate);
+let focusHandlerAttached = false;
+electron.ipcMain.on('setBadgeCount', function(ev, count) {
+ electron.app.setBadgeCount(count);
+ if (process.platform === 'win32' && mainWindow && !mainWindow.isFocused()) {
+ if (count > 0) {
+ if (!focusHandlerAttached) {
+ mainWindow.once('focus', () => {
+ mainWindow.flashFrame(false);
+ focusHandlerAttached = false;
+ });
+ focusHandlerAttached = true;
+ }
+ mainWindow.flashFrame(true);
+ } else {
+ mainWindow.flashFrame(false);
+ }
+ }
+});
+
electron.app.commandLine.appendSwitch('--enable-usermedia-screen-capturing');
const shouldQuit = electron.app.makeSingleInstance((commandLine, workingDirectory) => {
diff --git a/electron_app/src/tray.js b/electron_app/src/tray.js
index 2ccdf40c..5409194d 100644
--- a/electron_app/src/tray.js
+++ b/electron_app/src/tray.js
@@ -15,26 +15,21 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
-const path = require('path');
-const electron = require('electron');
-
-const app = electron.app;
-const Tray = electron.Tray;
-const MenuItem = electron.MenuItem;
+const {app, Tray, Menu, nativeImage} = require('electron');
let trayIcon = null;
exports.hasTray = function hasTray() {
return (trayIcon !== null);
-}
+};
-exports.create = function (win, config) {
+exports.create = function(win, config) {
// no trays on darwin
if (process.platform === 'darwin' || trayIcon) {
return;
}
- const toggleWin = function () {
+ const toggleWin = function() {
if (win.isVisible() && !win.isMinimized()) {
win.hide();
} else {
@@ -44,24 +39,48 @@ exports.create = function (win, config) {
}
};
- const contextMenu = electron.Menu.buildFromTemplate([
+ const contextMenu = Menu.buildFromTemplate([
{
label: 'Show/Hide ' + config.brand,
- click: toggleWin
+ click: toggleWin,
},
{
- type: 'separator'
+ type: 'separator',
},
{
label: 'Quit',
- click: function () {
+ click: function() {
app.quit();
- }
- }
+ },
+ },
]);
trayIcon = new Tray(config.icon_path);
trayIcon.setToolTip(config.brand);
trayIcon.setContextMenu(contextMenu);
trayIcon.on('click', toggleWin);
+
+ let lastFavicon = null;
+ win.webContents.on('page-favicon-updated', function(ev, favicons) {
+ let newFavicon = config.icon_path;
+ if (favicons && favicons.length > 0 && favicons[0].startsWith('data:')) {
+ newFavicon = favicons[0];
+ }
+
+ // No need to change, shortcut
+ if (newFavicon === lastFavicon) return;
+ lastFavicon = newFavicon;
+
+ // if its not default we have to construct into nativeImage
+ if (newFavicon !== config.icon_path) {
+ newFavicon = nativeImage.createFromDataURL(favicons[0]);
+ }
+
+ trayIcon.setImage(newFavicon);
+ win.setIcon(newFavicon);
+ });
+
+ win.webContents.on('page-title-updated', function(ev, title) {
+ trayIcon.setToolTip(title);
+ });
};
diff --git a/package.json b/package.json
index a1f06b00..f95a032a 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
"name": "riot-web",
"productName": "Riot",
"main": "electron_app/src/electron-main.js",
- "version": "0.9.9",
+ "version": "0.9.10",
"description": "A feature-rich client for Matrix.org",
"author": "Vector Creations Ltd.",
"repository": {
@@ -61,11 +61,12 @@
"favico.js": "^0.3.10",
"filesize": "3.5.6",
"flux": "~2.0.3",
+ "gemini-scrollbar": "matrix-org/gemini-scrollbar#b302279",
"gfm.css": "^1.1.1",
"highlight.js": "^9.0.0",
"linkifyjs": "^2.1.3",
- "matrix-js-sdk": "matrix-org/matrix-js-sdk#develop",
- "matrix-react-sdk": "matrix-org/matrix-react-sdk#develop",
+ "matrix-js-sdk": "0.7.8",
+ "matrix-react-sdk": "0.8.9",
"modernizr": "^3.1.0",
"pako": "^1.0.5",
"q": "^1.4.1",
@@ -73,7 +74,7 @@
"react-dnd": "^2.1.4",
"react-dnd-html5-backend": "^2.1.2",
"react-dom": "^15.4.0",
- "react-gemini-scrollbar": "matrix-org/react-gemini-scrollbar#39d858c",
+ "react-gemini-scrollbar": "matrix-org/react-gemini-scrollbar#5e97aef",
"sanitize-html": "^1.11.1",
"ua-parser-js": "^0.7.10",
"url": "^0.11.0"
@@ -142,7 +143,7 @@
"build": {
"appId": "im.riot.app",
"category": "Network",
- "electronVersion": "1.6.2",
+ "electronVersion": "1.6.8",
"//asar=false": "https://github.com/electron-userland/electron-builder/issues/675",
"asar": false,
"dereference": true,
diff --git a/release.sh b/release.sh
index c2454560..8ae307f7 100755
--- a/release.sh
+++ b/release.sh
@@ -9,6 +9,22 @@ set -e
cd `dirname $0`
+for i in matrix-js-sdk matrix-react-sdk
+do
+ depver=`cat package.json | jq -r .dependencies.\"$i\"`
+ latestver=`npm show $i version`
+ if [ "$depver" != "$latestver" ]
+ then
+ echo "The latest version of $i is $latestver but package.json depends on $depver"
+ echo -n "Type 'Yes' to continue anyway: "
+ read resp
+ if [ "$resp" != "Yes" ]
+ then
+ echo "OK, never mind."
+ exit 1
+ fi
+ fi
+done
# bump Electron's package.json first
release="${1#v}"
diff --git a/res/flags/AD.png b/res/flags/AD.png
new file mode 100644
index 00000000..8e777b98
Binary files /dev/null and b/res/flags/AD.png differ
diff --git a/res/flags/AE.png b/res/flags/AE.png
new file mode 100644
index 00000000..1c4a2bb7
Binary files /dev/null and b/res/flags/AE.png differ
diff --git a/res/flags/AF.png b/res/flags/AF.png
new file mode 100644
index 00000000..7d369371
Binary files /dev/null and b/res/flags/AF.png differ
diff --git a/res/flags/AG.png b/res/flags/AG.png
new file mode 100644
index 00000000..78c03626
Binary files /dev/null and b/res/flags/AG.png differ
diff --git a/res/flags/AI.png b/res/flags/AI.png
new file mode 100644
index 00000000..8a707823
Binary files /dev/null and b/res/flags/AI.png differ
diff --git a/res/flags/AL.png b/res/flags/AL.png
new file mode 100644
index 00000000..b19c7bc5
Binary files /dev/null and b/res/flags/AL.png differ
diff --git a/res/flags/AM.png b/res/flags/AM.png
new file mode 100644
index 00000000..b39695fd
Binary files /dev/null and b/res/flags/AM.png differ
diff --git a/res/flags/AO.png b/res/flags/AO.png
new file mode 100644
index 00000000..5aee75af
Binary files /dev/null and b/res/flags/AO.png differ
diff --git a/res/flags/AQ.png b/res/flags/AQ.png
new file mode 100644
index 00000000..fa76fbb2
Binary files /dev/null and b/res/flags/AQ.png differ
diff --git a/res/flags/AR.png b/res/flags/AR.png
new file mode 100644
index 00000000..28750f42
Binary files /dev/null and b/res/flags/AR.png differ
diff --git a/res/flags/AS.png b/res/flags/AS.png
new file mode 100644
index 00000000..36ba9b34
Binary files /dev/null and b/res/flags/AS.png differ
diff --git a/res/flags/AT.png b/res/flags/AT.png
new file mode 100644
index 00000000..487fee82
Binary files /dev/null and b/res/flags/AT.png differ
diff --git a/res/flags/AU.png b/res/flags/AU.png
new file mode 100644
index 00000000..7004861f
Binary files /dev/null and b/res/flags/AU.png differ
diff --git a/res/flags/AW.png b/res/flags/AW.png
new file mode 100644
index 00000000..238084e4
Binary files /dev/null and b/res/flags/AW.png differ
diff --git a/res/flags/AX.png b/res/flags/AX.png
new file mode 100644
index 00000000..07ac7742
Binary files /dev/null and b/res/flags/AX.png differ
diff --git a/res/flags/AZ.png b/res/flags/AZ.png
new file mode 100644
index 00000000..686dbed7
Binary files /dev/null and b/res/flags/AZ.png differ
diff --git a/res/flags/BA.png b/res/flags/BA.png
new file mode 100644
index 00000000..5cfbb6d6
Binary files /dev/null and b/res/flags/BA.png differ
diff --git a/res/flags/BB.png b/res/flags/BB.png
new file mode 100644
index 00000000..dcdbae7a
Binary files /dev/null and b/res/flags/BB.png differ
diff --git a/res/flags/BD.png b/res/flags/BD.png
new file mode 100644
index 00000000..3bd977a4
Binary files /dev/null and b/res/flags/BD.png differ
diff --git a/res/flags/BE.png b/res/flags/BE.png
new file mode 100644
index 00000000..555ac8bb
Binary files /dev/null and b/res/flags/BE.png differ
diff --git a/res/flags/BF.png b/res/flags/BF.png
new file mode 100644
index 00000000..5a80be2a
Binary files /dev/null and b/res/flags/BF.png differ
diff --git a/res/flags/BG.png b/res/flags/BG.png
new file mode 100644
index 00000000..6d8be358
Binary files /dev/null and b/res/flags/BG.png differ
diff --git a/res/flags/BH.png b/res/flags/BH.png
new file mode 100644
index 00000000..0d98e0e0
Binary files /dev/null and b/res/flags/BH.png differ
diff --git a/res/flags/BI.png b/res/flags/BI.png
new file mode 100644
index 00000000..e2659e3b
Binary files /dev/null and b/res/flags/BI.png differ
diff --git a/res/flags/BJ.png b/res/flags/BJ.png
new file mode 100644
index 00000000..13fa3c91
Binary files /dev/null and b/res/flags/BJ.png differ
diff --git a/res/flags/BL.png b/res/flags/BL.png
new file mode 100644
index 00000000..8e50a796
Binary files /dev/null and b/res/flags/BL.png differ
diff --git a/res/flags/BM.png b/res/flags/BM.png
new file mode 100644
index 00000000..53de7c39
Binary files /dev/null and b/res/flags/BM.png differ
diff --git a/res/flags/BN.png b/res/flags/BN.png
new file mode 100644
index 00000000..3ed976eb
Binary files /dev/null and b/res/flags/BN.png differ
diff --git a/res/flags/BO.png b/res/flags/BO.png
new file mode 100644
index 00000000..8e20ea8c
Binary files /dev/null and b/res/flags/BO.png differ
diff --git a/res/flags/BQ.png b/res/flags/BQ.png
new file mode 100644
index 00000000..15472266
Binary files /dev/null and b/res/flags/BQ.png differ
diff --git a/res/flags/BR.png b/res/flags/BR.png
new file mode 100644
index 00000000..7a2bc17a
Binary files /dev/null and b/res/flags/BR.png differ
diff --git a/res/flags/BS.png b/res/flags/BS.png
new file mode 100644
index 00000000..2a152575
Binary files /dev/null and b/res/flags/BS.png differ
diff --git a/res/flags/BT.png b/res/flags/BT.png
new file mode 100644
index 00000000..4782cf34
Binary files /dev/null and b/res/flags/BT.png differ
diff --git a/res/flags/BV.png b/res/flags/BV.png
new file mode 100644
index 00000000..991a6cd7
Binary files /dev/null and b/res/flags/BV.png differ
diff --git a/res/flags/BW.png b/res/flags/BW.png
new file mode 100644
index 00000000..cd788955
Binary files /dev/null and b/res/flags/BW.png differ
diff --git a/res/flags/BY.png b/res/flags/BY.png
new file mode 100644
index 00000000..40cdd8a7
Binary files /dev/null and b/res/flags/BY.png differ
diff --git a/res/flags/BZ.png b/res/flags/BZ.png
new file mode 100644
index 00000000..5de79b76
Binary files /dev/null and b/res/flags/BZ.png differ
diff --git a/res/flags/CA.png b/res/flags/CA.png
new file mode 100644
index 00000000..68bcac99
Binary files /dev/null and b/res/flags/CA.png differ
diff --git a/res/flags/CC.png b/res/flags/CC.png
new file mode 100644
index 00000000..13fe2b7f
Binary files /dev/null and b/res/flags/CC.png differ
diff --git a/res/flags/CD.png b/res/flags/CD.png
new file mode 100644
index 00000000..c1930409
Binary files /dev/null and b/res/flags/CD.png differ
diff --git a/res/flags/CF.png b/res/flags/CF.png
new file mode 100644
index 00000000..6df77507
Binary files /dev/null and b/res/flags/CF.png differ
diff --git a/res/flags/CG.png b/res/flags/CG.png
new file mode 100644
index 00000000..2d37cd50
Binary files /dev/null and b/res/flags/CG.png differ
diff --git a/res/flags/CH.png b/res/flags/CH.png
new file mode 100644
index 00000000..00d38717
Binary files /dev/null and b/res/flags/CH.png differ
diff --git a/res/flags/CI.png b/res/flags/CI.png
new file mode 100644
index 00000000..82c7606e
Binary files /dev/null and b/res/flags/CI.png differ
diff --git a/res/flags/CK.png b/res/flags/CK.png
new file mode 100644
index 00000000..26bca5f9
Binary files /dev/null and b/res/flags/CK.png differ
diff --git a/res/flags/CL.png b/res/flags/CL.png
new file mode 100644
index 00000000..317ec573
Binary files /dev/null and b/res/flags/CL.png differ
diff --git a/res/flags/CM.png b/res/flags/CM.png
new file mode 100644
index 00000000..c5605d63
Binary files /dev/null and b/res/flags/CM.png differ
diff --git a/res/flags/CN.png b/res/flags/CN.png
new file mode 100644
index 00000000..1c25ab86
Binary files /dev/null and b/res/flags/CN.png differ
diff --git a/res/flags/CO.png b/res/flags/CO.png
new file mode 100644
index 00000000..b328c1ea
Binary files /dev/null and b/res/flags/CO.png differ
diff --git a/res/flags/CR.png b/res/flags/CR.png
new file mode 100644
index 00000000..df959197
Binary files /dev/null and b/res/flags/CR.png differ
diff --git a/res/flags/CU.png b/res/flags/CU.png
new file mode 100644
index 00000000..60f6a8c8
Binary files /dev/null and b/res/flags/CU.png differ
diff --git a/res/flags/CV.png b/res/flags/CV.png
new file mode 100644
index 00000000..2dfe516d
Binary files /dev/null and b/res/flags/CV.png differ
diff --git a/res/flags/CW.png b/res/flags/CW.png
new file mode 100644
index 00000000..2380de15
Binary files /dev/null and b/res/flags/CW.png differ
diff --git a/res/flags/CX.png b/res/flags/CX.png
new file mode 100644
index 00000000..49a51c16
Binary files /dev/null and b/res/flags/CX.png differ
diff --git a/res/flags/CY.png b/res/flags/CY.png
new file mode 100644
index 00000000..08a0e372
Binary files /dev/null and b/res/flags/CY.png differ
diff --git a/res/flags/CZ.png b/res/flags/CZ.png
new file mode 100644
index 00000000..90ceaa24
Binary files /dev/null and b/res/flags/CZ.png differ
diff --git a/res/flags/DE.png b/res/flags/DE.png
new file mode 100644
index 00000000..90cab7e9
Binary files /dev/null and b/res/flags/DE.png differ
diff --git a/res/flags/DJ.png b/res/flags/DJ.png
new file mode 100644
index 00000000..c424a807
Binary files /dev/null and b/res/flags/DJ.png differ
diff --git a/res/flags/DK.png b/res/flags/DK.png
new file mode 100644
index 00000000..5a3845ad
Binary files /dev/null and b/res/flags/DK.png differ
diff --git a/res/flags/DM.png b/res/flags/DM.png
new file mode 100644
index 00000000..e7fb60c0
Binary files /dev/null and b/res/flags/DM.png differ
diff --git a/res/flags/DO.png b/res/flags/DO.png
new file mode 100644
index 00000000..03c2f1b9
Binary files /dev/null and b/res/flags/DO.png differ
diff --git a/res/flags/DZ.png b/res/flags/DZ.png
new file mode 100644
index 00000000..9d63939e
Binary files /dev/null and b/res/flags/DZ.png differ
diff --git a/res/flags/EC.png b/res/flags/EC.png
new file mode 100644
index 00000000..92e2a9e9
Binary files /dev/null and b/res/flags/EC.png differ
diff --git a/res/flags/EE.png b/res/flags/EE.png
new file mode 100644
index 00000000..08156869
Binary files /dev/null and b/res/flags/EE.png differ
diff --git a/res/flags/EG.png b/res/flags/EG.png
new file mode 100644
index 00000000..7e9d6c5c
Binary files /dev/null and b/res/flags/EG.png differ
diff --git a/res/flags/EH.png b/res/flags/EH.png
new file mode 100644
index 00000000..f8e59b21
Binary files /dev/null and b/res/flags/EH.png differ
diff --git a/res/flags/ER.png b/res/flags/ER.png
new file mode 100644
index 00000000..ffeb28da
Binary files /dev/null and b/res/flags/ER.png differ
diff --git a/res/flags/ES.png b/res/flags/ES.png
new file mode 100644
index 00000000..3ce59fe8
Binary files /dev/null and b/res/flags/ES.png differ
diff --git a/res/flags/ET.png b/res/flags/ET.png
new file mode 100644
index 00000000..f9d92859
Binary files /dev/null and b/res/flags/ET.png differ
diff --git a/res/flags/FI.png b/res/flags/FI.png
new file mode 100644
index 00000000..0930988c
Binary files /dev/null and b/res/flags/FI.png differ
diff --git a/res/flags/FJ.png b/res/flags/FJ.png
new file mode 100644
index 00000000..2a78075d
Binary files /dev/null and b/res/flags/FJ.png differ
diff --git a/res/flags/FK.png b/res/flags/FK.png
new file mode 100644
index 00000000..52543390
Binary files /dev/null and b/res/flags/FK.png differ
diff --git a/res/flags/FM.png b/res/flags/FM.png
new file mode 100644
index 00000000..0ba546ed
Binary files /dev/null and b/res/flags/FM.png differ
diff --git a/res/flags/FO.png b/res/flags/FO.png
new file mode 100644
index 00000000..2a0cd645
Binary files /dev/null and b/res/flags/FO.png differ
diff --git a/res/flags/FR.png b/res/flags/FR.png
new file mode 100644
index 00000000..ef05d74b
Binary files /dev/null and b/res/flags/FR.png differ
diff --git a/res/flags/GA.png b/res/flags/GA.png
new file mode 100644
index 00000000..6539d6dd
Binary files /dev/null and b/res/flags/GA.png differ
diff --git a/res/flags/GB.png b/res/flags/GB.png
new file mode 100644
index 00000000..2938e61b
Binary files /dev/null and b/res/flags/GB.png differ
diff --git a/res/flags/GD.png b/res/flags/GD.png
new file mode 100644
index 00000000..a55638e7
Binary files /dev/null and b/res/flags/GD.png differ
diff --git a/res/flags/GE.png b/res/flags/GE.png
new file mode 100644
index 00000000..c6cfd2b0
Binary files /dev/null and b/res/flags/GE.png differ
diff --git a/res/flags/GF.png b/res/flags/GF.png
new file mode 100644
index 00000000..dfc1badf
Binary files /dev/null and b/res/flags/GF.png differ
diff --git a/res/flags/GG.png b/res/flags/GG.png
new file mode 100644
index 00000000..a79f8c1f
Binary files /dev/null and b/res/flags/GG.png differ
diff --git a/res/flags/GH.png b/res/flags/GH.png
new file mode 100644
index 00000000..bda5d6f6
Binary files /dev/null and b/res/flags/GH.png differ
diff --git a/res/flags/GI.png b/res/flags/GI.png
new file mode 100644
index 00000000..620b50b3
Binary files /dev/null and b/res/flags/GI.png differ
diff --git a/res/flags/GL.png b/res/flags/GL.png
new file mode 100644
index 00000000..c3d6bcf3
Binary files /dev/null and b/res/flags/GL.png differ
diff --git a/res/flags/GM.png b/res/flags/GM.png
new file mode 100644
index 00000000..fa2d771e
Binary files /dev/null and b/res/flags/GM.png differ
diff --git a/res/flags/GN.png b/res/flags/GN.png
new file mode 100644
index 00000000..dabe7ce4
Binary files /dev/null and b/res/flags/GN.png differ
diff --git a/res/flags/GP.png b/res/flags/GP.png
new file mode 100644
index 00000000..7bf76956
Binary files /dev/null and b/res/flags/GP.png differ
diff --git a/res/flags/GQ.png b/res/flags/GQ.png
new file mode 100644
index 00000000..edae61e9
Binary files /dev/null and b/res/flags/GQ.png differ
diff --git a/res/flags/GR.png b/res/flags/GR.png
new file mode 100644
index 00000000..5abc59d3
Binary files /dev/null and b/res/flags/GR.png differ
diff --git a/res/flags/GS.png b/res/flags/GS.png
new file mode 100644
index 00000000..baa930d0
Binary files /dev/null and b/res/flags/GS.png differ
diff --git a/res/flags/GT.png b/res/flags/GT.png
new file mode 100644
index 00000000..10ef0cdd
Binary files /dev/null and b/res/flags/GT.png differ
diff --git a/res/flags/GU.png b/res/flags/GU.png
new file mode 100644
index 00000000..166c121e
Binary files /dev/null and b/res/flags/GU.png differ
diff --git a/res/flags/GW.png b/res/flags/GW.png
new file mode 100644
index 00000000..fb59de83
Binary files /dev/null and b/res/flags/GW.png differ
diff --git a/res/flags/GY.png b/res/flags/GY.png
new file mode 100644
index 00000000..65499a7c
Binary files /dev/null and b/res/flags/GY.png differ
diff --git a/res/flags/HK.png b/res/flags/HK.png
new file mode 100644
index 00000000..39588384
Binary files /dev/null and b/res/flags/HK.png differ
diff --git a/res/flags/HM.png b/res/flags/HM.png
new file mode 100644
index 00000000..26a61cbf
Binary files /dev/null and b/res/flags/HM.png differ
diff --git a/res/flags/HN.png b/res/flags/HN.png
new file mode 100644
index 00000000..bf923cb8
Binary files /dev/null and b/res/flags/HN.png differ
diff --git a/res/flags/HR.png b/res/flags/HR.png
new file mode 100644
index 00000000..139e143b
Binary files /dev/null and b/res/flags/HR.png differ
diff --git a/res/flags/HT.png b/res/flags/HT.png
new file mode 100644
index 00000000..2583da39
Binary files /dev/null and b/res/flags/HT.png differ
diff --git a/res/flags/HU.png b/res/flags/HU.png
new file mode 100644
index 00000000..625846af
Binary files /dev/null and b/res/flags/HU.png differ
diff --git a/res/flags/ID.png b/res/flags/ID.png
new file mode 100644
index 00000000..f88d48af
Binary files /dev/null and b/res/flags/ID.png differ
diff --git a/res/flags/IE.png b/res/flags/IE.png
new file mode 100644
index 00000000..17f255fc
Binary files /dev/null and b/res/flags/IE.png differ
diff --git a/res/flags/IL.png b/res/flags/IL.png
new file mode 100644
index 00000000..6c9a6b57
Binary files /dev/null and b/res/flags/IL.png differ
diff --git a/res/flags/IM.png b/res/flags/IM.png
new file mode 100644
index 00000000..936e801d
Binary files /dev/null and b/res/flags/IM.png differ
diff --git a/res/flags/IN.png b/res/flags/IN.png
new file mode 100644
index 00000000..ecba2f9c
Binary files /dev/null and b/res/flags/IN.png differ
diff --git a/res/flags/IO.png b/res/flags/IO.png
new file mode 100644
index 00000000..b0edb161
Binary files /dev/null and b/res/flags/IO.png differ
diff --git a/res/flags/IQ.png b/res/flags/IQ.png
new file mode 100644
index 00000000..19055f14
Binary files /dev/null and b/res/flags/IQ.png differ
diff --git a/res/flags/IR.png b/res/flags/IR.png
new file mode 100644
index 00000000..9056d21e
Binary files /dev/null and b/res/flags/IR.png differ
diff --git a/res/flags/IS.png b/res/flags/IS.png
new file mode 100644
index 00000000..06be01a8
Binary files /dev/null and b/res/flags/IS.png differ
diff --git a/res/flags/IT.png b/res/flags/IT.png
new file mode 100644
index 00000000..50e17b22
Binary files /dev/null and b/res/flags/IT.png differ
diff --git a/res/flags/JE.png b/res/flags/JE.png
new file mode 100644
index 00000000..456a1a83
Binary files /dev/null and b/res/flags/JE.png differ
diff --git a/res/flags/JM.png b/res/flags/JM.png
new file mode 100644
index 00000000..5e4e73d3
Binary files /dev/null and b/res/flags/JM.png differ
diff --git a/res/flags/JO.png b/res/flags/JO.png
new file mode 100644
index 00000000..5982705b
Binary files /dev/null and b/res/flags/JO.png differ
diff --git a/res/flags/JP.png b/res/flags/JP.png
new file mode 100644
index 00000000..009a990a
Binary files /dev/null and b/res/flags/JP.png differ
diff --git a/res/flags/KE.png b/res/flags/KE.png
new file mode 100644
index 00000000..b5a9f733
Binary files /dev/null and b/res/flags/KE.png differ
diff --git a/res/flags/KG.png b/res/flags/KG.png
new file mode 100644
index 00000000..acf6646b
Binary files /dev/null and b/res/flags/KG.png differ
diff --git a/res/flags/KH.png b/res/flags/KH.png
new file mode 100644
index 00000000..58ad9c61
Binary files /dev/null and b/res/flags/KH.png differ
diff --git a/res/flags/KI.png b/res/flags/KI.png
new file mode 100644
index 00000000..49902d25
Binary files /dev/null and b/res/flags/KI.png differ
diff --git a/res/flags/KM.png b/res/flags/KM.png
new file mode 100644
index 00000000..9fa9a454
Binary files /dev/null and b/res/flags/KM.png differ
diff --git a/res/flags/KN.png b/res/flags/KN.png
new file mode 100644
index 00000000..3b39f8f7
Binary files /dev/null and b/res/flags/KN.png differ
diff --git a/res/flags/KP.png b/res/flags/KP.png
new file mode 100644
index 00000000..eacc3ad0
Binary files /dev/null and b/res/flags/KP.png differ
diff --git a/res/flags/KR.png b/res/flags/KR.png
new file mode 100644
index 00000000..a0df8da0
Binary files /dev/null and b/res/flags/KR.png differ
diff --git a/res/flags/KW.png b/res/flags/KW.png
new file mode 100644
index 00000000..c6839950
Binary files /dev/null and b/res/flags/KW.png differ
diff --git a/res/flags/KY.png b/res/flags/KY.png
new file mode 100644
index 00000000..3f82fa74
Binary files /dev/null and b/res/flags/KY.png differ
diff --git a/res/flags/KZ.png b/res/flags/KZ.png
new file mode 100644
index 00000000..4b436212
Binary files /dev/null and b/res/flags/KZ.png differ
diff --git a/res/flags/LA.png b/res/flags/LA.png
new file mode 100644
index 00000000..ee9c41ea
Binary files /dev/null and b/res/flags/LA.png differ
diff --git a/res/flags/LB.png b/res/flags/LB.png
new file mode 100644
index 00000000..7b4d6653
Binary files /dev/null and b/res/flags/LB.png differ
diff --git a/res/flags/LC.png b/res/flags/LC.png
new file mode 100644
index 00000000..d97f8d8d
Binary files /dev/null and b/res/flags/LC.png differ
diff --git a/res/flags/LI.png b/res/flags/LI.png
new file mode 100644
index 00000000..c75a229f
Binary files /dev/null and b/res/flags/LI.png differ
diff --git a/res/flags/LK.png b/res/flags/LK.png
new file mode 100644
index 00000000..2ca1a0c1
Binary files /dev/null and b/res/flags/LK.png differ
diff --git a/res/flags/LR.png b/res/flags/LR.png
new file mode 100644
index 00000000..41bf4a96
Binary files /dev/null and b/res/flags/LR.png differ
diff --git a/res/flags/LS.png b/res/flags/LS.png
new file mode 100644
index 00000000..10cf81b0
Binary files /dev/null and b/res/flags/LS.png differ
diff --git a/res/flags/LT.png b/res/flags/LT.png
new file mode 100644
index 00000000..17a36c71
Binary files /dev/null and b/res/flags/LT.png differ
diff --git a/res/flags/LU.png b/res/flags/LU.png
new file mode 100644
index 00000000..675a891d
Binary files /dev/null and b/res/flags/LU.png differ
diff --git a/res/flags/LV.png b/res/flags/LV.png
new file mode 100644
index 00000000..763a6120
Binary files /dev/null and b/res/flags/LV.png differ
diff --git a/res/flags/LY.png b/res/flags/LY.png
new file mode 100644
index 00000000..5211a902
Binary files /dev/null and b/res/flags/LY.png differ
diff --git a/res/flags/MA.png b/res/flags/MA.png
new file mode 100644
index 00000000..098db500
Binary files /dev/null and b/res/flags/MA.png differ
diff --git a/res/flags/MC.png b/res/flags/MC.png
new file mode 100644
index 00000000..8d1a9813
Binary files /dev/null and b/res/flags/MC.png differ
diff --git a/res/flags/MD.png b/res/flags/MD.png
new file mode 100644
index 00000000..6ca6f734
Binary files /dev/null and b/res/flags/MD.png differ
diff --git a/res/flags/ME.png b/res/flags/ME.png
new file mode 100644
index 00000000..c7fccac3
Binary files /dev/null and b/res/flags/ME.png differ
diff --git a/res/flags/MF.png b/res/flags/MF.png
new file mode 100644
index 00000000..7f6824e0
Binary files /dev/null and b/res/flags/MF.png differ
diff --git a/res/flags/MG.png b/res/flags/MG.png
new file mode 100644
index 00000000..55bc8985
Binary files /dev/null and b/res/flags/MG.png differ
diff --git a/res/flags/MH.png b/res/flags/MH.png
new file mode 100644
index 00000000..44849779
Binary files /dev/null and b/res/flags/MH.png differ
diff --git a/res/flags/MK.png b/res/flags/MK.png
new file mode 100644
index 00000000..ef8d2e55
Binary files /dev/null and b/res/flags/MK.png differ
diff --git a/res/flags/ML.png b/res/flags/ML.png
new file mode 100644
index 00000000..b8c5737f
Binary files /dev/null and b/res/flags/ML.png differ
diff --git a/res/flags/MM.png b/res/flags/MM.png
new file mode 100644
index 00000000..afac4940
Binary files /dev/null and b/res/flags/MM.png differ
diff --git a/res/flags/MN.png b/res/flags/MN.png
new file mode 100644
index 00000000..6e3de338
Binary files /dev/null and b/res/flags/MN.png differ
diff --git a/res/flags/MO.png b/res/flags/MO.png
new file mode 100644
index 00000000..02118edf
Binary files /dev/null and b/res/flags/MO.png differ
diff --git a/res/flags/MP.png b/res/flags/MP.png
new file mode 100644
index 00000000..a85be51b
Binary files /dev/null and b/res/flags/MP.png differ
diff --git a/res/flags/MQ.png b/res/flags/MQ.png
new file mode 100644
index 00000000..92eb0727
Binary files /dev/null and b/res/flags/MQ.png differ
diff --git a/res/flags/MR.png b/res/flags/MR.png
new file mode 100644
index 00000000..95a52726
Binary files /dev/null and b/res/flags/MR.png differ
diff --git a/res/flags/MS.png b/res/flags/MS.png
new file mode 100644
index 00000000..a811c5bd
Binary files /dev/null and b/res/flags/MS.png differ
diff --git a/res/flags/MT.png b/res/flags/MT.png
new file mode 100644
index 00000000..857672bf
Binary files /dev/null and b/res/flags/MT.png differ
diff --git a/res/flags/MU.png b/res/flags/MU.png
new file mode 100644
index 00000000..8f6abb73
Binary files /dev/null and b/res/flags/MU.png differ
diff --git a/res/flags/MV.png b/res/flags/MV.png
new file mode 100644
index 00000000..bdb8119f
Binary files /dev/null and b/res/flags/MV.png differ
diff --git a/res/flags/MW.png b/res/flags/MW.png
new file mode 100644
index 00000000..c684776a
Binary files /dev/null and b/res/flags/MW.png differ
diff --git a/res/flags/MX.png b/res/flags/MX.png
new file mode 100644
index 00000000..aee282de
Binary files /dev/null and b/res/flags/MX.png differ
diff --git a/res/flags/MY.png b/res/flags/MY.png
new file mode 100644
index 00000000..3941aa8c
Binary files /dev/null and b/res/flags/MY.png differ
diff --git a/res/flags/MZ.png b/res/flags/MZ.png
new file mode 100644
index 00000000..dd497c23
Binary files /dev/null and b/res/flags/MZ.png differ
diff --git a/res/flags/NA.png b/res/flags/NA.png
new file mode 100644
index 00000000..68e4aeab
Binary files /dev/null and b/res/flags/NA.png differ
diff --git a/res/flags/NC.png b/res/flags/NC.png
new file mode 100644
index 00000000..ffcc2166
Binary files /dev/null and b/res/flags/NC.png differ
diff --git a/res/flags/NE.png b/res/flags/NE.png
new file mode 100644
index 00000000..08950d2f
Binary files /dev/null and b/res/flags/NE.png differ
diff --git a/res/flags/NF.png b/res/flags/NF.png
new file mode 100644
index 00000000..2728ed54
Binary files /dev/null and b/res/flags/NF.png differ
diff --git a/res/flags/NG.png b/res/flags/NG.png
new file mode 100644
index 00000000..5812b2d2
Binary files /dev/null and b/res/flags/NG.png differ
diff --git a/res/flags/NI.png b/res/flags/NI.png
new file mode 100644
index 00000000..d09e1329
Binary files /dev/null and b/res/flags/NI.png differ
diff --git a/res/flags/NL.png b/res/flags/NL.png
new file mode 100644
index 00000000..f9203282
Binary files /dev/null and b/res/flags/NL.png differ
diff --git a/res/flags/NO.png b/res/flags/NO.png
new file mode 100644
index 00000000..0bedee3f
Binary files /dev/null and b/res/flags/NO.png differ
diff --git a/res/flags/NP.png b/res/flags/NP.png
new file mode 100644
index 00000000..e7775c25
Binary files /dev/null and b/res/flags/NP.png differ
diff --git a/res/flags/NR.png b/res/flags/NR.png
new file mode 100644
index 00000000..4760404b
Binary files /dev/null and b/res/flags/NR.png differ
diff --git a/res/flags/NU.png b/res/flags/NU.png
new file mode 100644
index 00000000..7c130d5b
Binary files /dev/null and b/res/flags/NU.png differ
diff --git a/res/flags/NZ.png b/res/flags/NZ.png
new file mode 100644
index 00000000..67c98728
Binary files /dev/null and b/res/flags/NZ.png differ
diff --git a/res/flags/OM.png b/res/flags/OM.png
new file mode 100644
index 00000000..a6762503
Binary files /dev/null and b/res/flags/OM.png differ
diff --git a/res/flags/PA.png b/res/flags/PA.png
new file mode 100644
index 00000000..ed18bdda
Binary files /dev/null and b/res/flags/PA.png differ
diff --git a/res/flags/PE.png b/res/flags/PE.png
new file mode 100644
index 00000000..7485279c
Binary files /dev/null and b/res/flags/PE.png differ
diff --git a/res/flags/PF.png b/res/flags/PF.png
new file mode 100644
index 00000000..6623f413
Binary files /dev/null and b/res/flags/PF.png differ
diff --git a/res/flags/PG.png b/res/flags/PG.png
new file mode 100644
index 00000000..92504c51
Binary files /dev/null and b/res/flags/PG.png differ
diff --git a/res/flags/PH.png b/res/flags/PH.png
new file mode 100644
index 00000000..d6d67621
Binary files /dev/null and b/res/flags/PH.png differ
diff --git a/res/flags/PK.png b/res/flags/PK.png
new file mode 100644
index 00000000..f7c8bb94
Binary files /dev/null and b/res/flags/PK.png differ
diff --git a/res/flags/PL.png b/res/flags/PL.png
new file mode 100644
index 00000000..8303b1ea
Binary files /dev/null and b/res/flags/PL.png differ
diff --git a/res/flags/PM.png b/res/flags/PM.png
new file mode 100644
index 00000000..2507c86e
Binary files /dev/null and b/res/flags/PM.png differ
diff --git a/res/flags/PN.png b/res/flags/PN.png
new file mode 100644
index 00000000..c5e1d884
Binary files /dev/null and b/res/flags/PN.png differ
diff --git a/res/flags/PR.png b/res/flags/PR.png
new file mode 100644
index 00000000..938c8350
Binary files /dev/null and b/res/flags/PR.png differ
diff --git a/res/flags/PS.png b/res/flags/PS.png
new file mode 100644
index 00000000..d106ba89
Binary files /dev/null and b/res/flags/PS.png differ
diff --git a/res/flags/PT.png b/res/flags/PT.png
new file mode 100644
index 00000000..168f0605
Binary files /dev/null and b/res/flags/PT.png differ
diff --git a/res/flags/PW.png b/res/flags/PW.png
new file mode 100644
index 00000000..2d6e5d5b
Binary files /dev/null and b/res/flags/PW.png differ
diff --git a/res/flags/PY.png b/res/flags/PY.png
new file mode 100644
index 00000000..9cae9a78
Binary files /dev/null and b/res/flags/PY.png differ
diff --git a/res/flags/QA.png b/res/flags/QA.png
new file mode 100644
index 00000000..ce9d31ed
Binary files /dev/null and b/res/flags/QA.png differ
diff --git a/res/flags/RE.png b/res/flags/RE.png
new file mode 100644
index 00000000..85c25710
Binary files /dev/null and b/res/flags/RE.png differ
diff --git a/res/flags/RO.png b/res/flags/RO.png
new file mode 100644
index 00000000..e77996d5
Binary files /dev/null and b/res/flags/RO.png differ
diff --git a/res/flags/RS.png b/res/flags/RS.png
new file mode 100644
index 00000000..fc7a2ab7
Binary files /dev/null and b/res/flags/RS.png differ
diff --git a/res/flags/RU.png b/res/flags/RU.png
new file mode 100644
index 00000000..8b3df779
Binary files /dev/null and b/res/flags/RU.png differ
diff --git a/res/flags/RW.png b/res/flags/RW.png
new file mode 100644
index 00000000..87f71867
Binary files /dev/null and b/res/flags/RW.png differ
diff --git a/res/flags/SA.png b/res/flags/SA.png
new file mode 100644
index 00000000..d93b91c7
Binary files /dev/null and b/res/flags/SA.png differ
diff --git a/res/flags/SB.png b/res/flags/SB.png
new file mode 100644
index 00000000..e9a2a8f3
Binary files /dev/null and b/res/flags/SB.png differ
diff --git a/res/flags/SC.png b/res/flags/SC.png
new file mode 100644
index 00000000..488ac3be
Binary files /dev/null and b/res/flags/SC.png differ
diff --git a/res/flags/SD.png b/res/flags/SD.png
new file mode 100644
index 00000000..6ba8c5ca
Binary files /dev/null and b/res/flags/SD.png differ
diff --git a/res/flags/SE.png b/res/flags/SE.png
new file mode 100644
index 00000000..e7bd806f
Binary files /dev/null and b/res/flags/SE.png differ
diff --git a/res/flags/SG.png b/res/flags/SG.png
new file mode 100644
index 00000000..797069fc
Binary files /dev/null and b/res/flags/SG.png differ
diff --git a/res/flags/SH.png b/res/flags/SH.png
new file mode 100644
index 00000000..b2c589d0
Binary files /dev/null and b/res/flags/SH.png differ
diff --git a/res/flags/SI.png b/res/flags/SI.png
new file mode 100644
index 00000000..be8e7a89
Binary files /dev/null and b/res/flags/SI.png differ
diff --git a/res/flags/SJ.png b/res/flags/SJ.png
new file mode 100644
index 00000000..1dd7e786
Binary files /dev/null and b/res/flags/SJ.png differ
diff --git a/res/flags/SK.png b/res/flags/SK.png
new file mode 100644
index 00000000..be3d10f2
Binary files /dev/null and b/res/flags/SK.png differ
diff --git a/res/flags/SL.png b/res/flags/SL.png
new file mode 100644
index 00000000..b3f997b1
Binary files /dev/null and b/res/flags/SL.png differ
diff --git a/res/flags/SM.png b/res/flags/SM.png
new file mode 100644
index 00000000..b30f77ad
Binary files /dev/null and b/res/flags/SM.png differ
diff --git a/res/flags/SN.png b/res/flags/SN.png
new file mode 100644
index 00000000..b5cdb210
Binary files /dev/null and b/res/flags/SN.png differ
diff --git a/res/flags/SO.png b/res/flags/SO.png
new file mode 100644
index 00000000..5f808508
Binary files /dev/null and b/res/flags/SO.png differ
diff --git a/res/flags/SR.png b/res/flags/SR.png
new file mode 100644
index 00000000..a2d124e9
Binary files /dev/null and b/res/flags/SR.png differ
diff --git a/res/flags/SS.png b/res/flags/SS.png
new file mode 100644
index 00000000..19c65899
Binary files /dev/null and b/res/flags/SS.png differ
diff --git a/res/flags/ST.png b/res/flags/ST.png
new file mode 100644
index 00000000..1d2befe4
Binary files /dev/null and b/res/flags/ST.png differ
diff --git a/res/flags/SV.png b/res/flags/SV.png
new file mode 100644
index 00000000..fc3a9ca4
Binary files /dev/null and b/res/flags/SV.png differ
diff --git a/res/flags/SX.png b/res/flags/SX.png
new file mode 100644
index 00000000..6051aaa6
Binary files /dev/null and b/res/flags/SX.png differ
diff --git a/res/flags/SY.png b/res/flags/SY.png
new file mode 100644
index 00000000..0d51d071
Binary files /dev/null and b/res/flags/SY.png differ
diff --git a/res/flags/SZ.png b/res/flags/SZ.png
new file mode 100644
index 00000000..a7366cb6
Binary files /dev/null and b/res/flags/SZ.png differ
diff --git a/res/flags/TC.png b/res/flags/TC.png
new file mode 100644
index 00000000..39971bb9
Binary files /dev/null and b/res/flags/TC.png differ
diff --git a/res/flags/TD.png b/res/flags/TD.png
new file mode 100644
index 00000000..1fb647d4
Binary files /dev/null and b/res/flags/TD.png differ
diff --git a/res/flags/TF.png b/res/flags/TF.png
new file mode 100644
index 00000000..41bd9334
Binary files /dev/null and b/res/flags/TF.png differ
diff --git a/res/flags/TG.png b/res/flags/TG.png
new file mode 100644
index 00000000..560fc098
Binary files /dev/null and b/res/flags/TG.png differ
diff --git a/res/flags/TH.png b/res/flags/TH.png
new file mode 100644
index 00000000..9ee5ce89
Binary files /dev/null and b/res/flags/TH.png differ
diff --git a/res/flags/TJ.png b/res/flags/TJ.png
new file mode 100644
index 00000000..ca4be077
Binary files /dev/null and b/res/flags/TJ.png differ
diff --git a/res/flags/TK.png b/res/flags/TK.png
new file mode 100644
index 00000000..88a7eb1a
Binary files /dev/null and b/res/flags/TK.png differ
diff --git a/res/flags/TL.png b/res/flags/TL.png
new file mode 100644
index 00000000..fa6c365b
Binary files /dev/null and b/res/flags/TL.png differ
diff --git a/res/flags/TM.png b/res/flags/TM.png
new file mode 100644
index 00000000..6cc0539d
Binary files /dev/null and b/res/flags/TM.png differ
diff --git a/res/flags/TN.png b/res/flags/TN.png
new file mode 100644
index 00000000..1cc09ec6
Binary files /dev/null and b/res/flags/TN.png differ
diff --git a/res/flags/TO.png b/res/flags/TO.png
new file mode 100644
index 00000000..44c42ce0
Binary files /dev/null and b/res/flags/TO.png differ
diff --git a/res/flags/TR.png b/res/flags/TR.png
new file mode 100644
index 00000000..4e63d61b
Binary files /dev/null and b/res/flags/TR.png differ
diff --git a/res/flags/TT.png b/res/flags/TT.png
new file mode 100644
index 00000000..3831347f
Binary files /dev/null and b/res/flags/TT.png differ
diff --git a/res/flags/TV.png b/res/flags/TV.png
new file mode 100644
index 00000000..2f24fbf7
Binary files /dev/null and b/res/flags/TV.png differ
diff --git a/res/flags/TW.png b/res/flags/TW.png
new file mode 100644
index 00000000..cda05c9b
Binary files /dev/null and b/res/flags/TW.png differ
diff --git a/res/flags/TZ.png b/res/flags/TZ.png
new file mode 100644
index 00000000..a60d5b3f
Binary files /dev/null and b/res/flags/TZ.png differ
diff --git a/res/flags/UA.png b/res/flags/UA.png
new file mode 100644
index 00000000..f62089b6
Binary files /dev/null and b/res/flags/UA.png differ
diff --git a/res/flags/UG.png b/res/flags/UG.png
new file mode 100644
index 00000000..8fb590e8
Binary files /dev/null and b/res/flags/UG.png differ
diff --git a/res/flags/US.png b/res/flags/US.png
new file mode 100644
index 00000000..f6b7ab98
Binary files /dev/null and b/res/flags/US.png differ
diff --git a/res/flags/UY.png b/res/flags/UY.png
new file mode 100644
index 00000000..11abe8c1
Binary files /dev/null and b/res/flags/UY.png differ
diff --git a/res/flags/UZ.png b/res/flags/UZ.png
new file mode 100644
index 00000000..5d9168a3
Binary files /dev/null and b/res/flags/UZ.png differ
diff --git a/res/flags/VA.png b/res/flags/VA.png
new file mode 100644
index 00000000..4e5a92bd
Binary files /dev/null and b/res/flags/VA.png differ
diff --git a/res/flags/VC.png b/res/flags/VC.png
new file mode 100644
index 00000000..4a8dfa41
Binary files /dev/null and b/res/flags/VC.png differ
diff --git a/res/flags/VE.png b/res/flags/VE.png
new file mode 100644
index 00000000..3632def0
Binary files /dev/null and b/res/flags/VE.png differ
diff --git a/res/flags/VG.png b/res/flags/VG.png
new file mode 100644
index 00000000..15a5e5fa
Binary files /dev/null and b/res/flags/VG.png differ
diff --git a/res/flags/VI.png b/res/flags/VI.png
new file mode 100644
index 00000000..986a53d2
Binary files /dev/null and b/res/flags/VI.png differ
diff --git a/res/flags/VN.png b/res/flags/VN.png
new file mode 100644
index 00000000..f19db790
Binary files /dev/null and b/res/flags/VN.png differ
diff --git a/res/flags/VU.png b/res/flags/VU.png
new file mode 100644
index 00000000..a322030a
Binary files /dev/null and b/res/flags/VU.png differ
diff --git a/res/flags/WF.png b/res/flags/WF.png
new file mode 100644
index 00000000..5f6e2bed
Binary files /dev/null and b/res/flags/WF.png differ
diff --git a/res/flags/WS.png b/res/flags/WS.png
new file mode 100644
index 00000000..de43a373
Binary files /dev/null and b/res/flags/WS.png differ
diff --git a/res/flags/YE.png b/res/flags/YE.png
new file mode 100644
index 00000000..b132bc13
Binary files /dev/null and b/res/flags/YE.png differ
diff --git a/res/flags/YT.png b/res/flags/YT.png
new file mode 100644
index 00000000..5c450dfb
Binary files /dev/null and b/res/flags/YT.png differ
diff --git a/res/flags/ZA.png b/res/flags/ZA.png
new file mode 100644
index 00000000..adec062d
Binary files /dev/null and b/res/flags/ZA.png differ
diff --git a/res/flags/ZM.png b/res/flags/ZM.png
new file mode 100644
index 00000000..56287f58
Binary files /dev/null and b/res/flags/ZM.png differ
diff --git a/res/flags/ZW.png b/res/flags/ZW.png
new file mode 100644
index 00000000..e58dff38
Binary files /dev/null and b/res/flags/ZW.png differ
diff --git a/scripts/copy-res.js b/scripts/copy-res.js
index 5a43c4e6..d3a2ee5e 100755
--- a/scripts/copy-res.js
+++ b/scripts/copy-res.js
@@ -9,6 +9,7 @@
const COPY_LIST = [
["res/manifest.json", "webapp"],
["res/{media,vector-icons}/**", "webapp"],
+ ["res/flags/*", "webapp/flags/"],
["src/skins/vector/{fonts,img}/**", "webapp"],
["node_modules/emojione/assets/svg/*", "webapp/emojione/svg/"],
["node_modules/emojione/assets/png/*", "webapp/emojione/png/"],
diff --git a/scripts/electron-package.sh b/scripts/electron-package.sh
index a5718df8..973ea45e 100755
--- a/scripts/electron-package.sh
+++ b/scripts/electron-package.sh
@@ -63,7 +63,7 @@ fi
if [ ! -f package.json ]; then
echo "No package.json found. This script must be run from"
- echo "the vector-web directory."
+ echo "the riot-web directory."
exit
fi
diff --git a/scripts/fetch-develop.deps.sh b/scripts/fetch-develop.deps.sh
new file mode 100755
index 00000000..c3bfb4e1
--- /dev/null
+++ b/scripts/fetch-develop.deps.sh
@@ -0,0 +1,61 @@
+#!/bin/bash
+
+# Fetches the js-sdk and matrix-react-sdk dependencies for development
+# or testing purposes
+# If there exists a branch of that dependency with the same name as
+# the branch the current checkout is on, use that branch. Otherwise,
+# use develop.
+
+# Look in the many different CI env vars for which branch we're
+# building
+if [[ "$TRAVIS" == true ]]; then
+ curbranch="${TRAVIS_PULL_REQUEST_BRANCH:-$TRAVIS_BRANCH}"
+else
+ # ghprbSourceBranch for jenkins github pull request builder
+ # GIT_BRANCH for other jenkins builds
+ curbranch="${ghprbSourceBranch:-$GIT_BRANCH}"
+ # Otherwise look at the actual branch we're on
+ if [ -z "$curbranch" ]
+ then
+ curbranch=`git rev-parse --abbrev-ref HEAD`
+ fi
+fi
+
+echo "Determined branch to be $curbranch"
+
+function dodep() {
+ org=$1
+ repo=$2
+ rm -rf $repo || true
+ git clone https://github.com/$org/$repo.git $repo
+ pushd $repo
+ git checkout $curbranch || git checkout develop
+ echo "$repo set to branch "`git rev-parse --abbrev-ref HEAD`
+ popd
+}
+
+dodep matrix-org matrix-js-sdk
+dodep matrix-org matrix-react-sdk
+
+mkdir -p node_modules
+cd node_modules
+
+ln -s ../matrix-js-sdk ./
+pushd matrix-js-sdk
+npm install
+popd
+
+ln -s ../matrix-react-sdk ./
+pushd matrix-react-sdk
+mkdir -p node_modules
+cd node_modules
+ln -s ../../matrix-js-sdk matrix-js-sdk
+cd ..
+npm install
+popd
+# Link the reskindex binary in place: if we used npm link,
+# npm would do this for us, but we don't because we'd have
+# to define the npm prefix somewhere so it could put the
+# intermediate symlinks there. Instead, we do it ourselves.
+mkdir -p .bin
+ln -sf ../matrix-react-sdk/scripts/reskindex.js .bin/reskindex
diff --git a/scripts/genflags.sh b/scripts/genflags.sh
new file mode 100755
index 00000000..826a0299
--- /dev/null
+++ b/scripts/genflags.sh
@@ -0,0 +1,66 @@
+# Copyright 2017 Vector Creations Ltd
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# genflags.sh - Generates pngs for use with CountryDropdown.js
+#
+# Dependencies:
+# - imagemagick --with-rsvg (because default imagemagick SVG
+# renderer does not produce accurate results)
+#
+# This will clone the googlei18n flag repo before converting
+# all phonenumber.js-supported country flags (as SVGs) into
+# PNGs that can be used by CountryDropdown.js.
+
+# Allow CTRL+C to terminate the script
+trap "echo Exited!; exit;" SIGINT SIGTERM
+
+# git clone the google repo to get flag SVGs
+git clone git@github.com:googlei18n/region-flags
+for f in region-flags/svg/*.svg; do
+ # Skip state flags
+ if [[ $f =~ [A-Z]{2}-[A-Z]{2,3}.svg ]] ; then
+ echo "Skipping state flag "$f
+ continue
+ fi
+
+ # Skip countries not included in phonenumber.js
+ if [[ $f =~ (AC|CP|DG|EA|EU|IC|TA|UM|UN|XK).svg ]] ; then
+ echo "Skipping non-phonenumber supported flag "$f
+ continue
+ fi
+
+ # Run imagemagick convert
+ # -background none : transparent background
+ # -thumbnail 25x15 : resize the flag to have a height of 15.
+ # By default, aspect ratio is respected so the width will
+ # be correct and not necessarily 25px.
+ # -gravity Center : keep the image central when adding an -extent
+ # -border 1 : add a 1px border around the flag
+ # -bordercolor : set the border colour
+ # -extent 27x27 : surround the image with padding so that it
+ # has the dimensions 27x27.
+ convert $f -background none -thumbnail 25x15 \
+ -gravity Center -border 1 -bordercolor \#e0e0e0 \
+ -extent 27x27 $f.png
+
+ # $f.png will be region-flags/svg/XX.svg.png at this point
+
+ # Extract filename from path $f
+ newname=${f##*/}
+ # Replace .svg with .png
+ newname=${newname%.svg}.png
+ # Move the file to flags directory
+ mv $f.png res/flags/$newname
+ echo "Generated res/flags/"$newname
+done
diff --git a/scripts/issues-burndown.pl b/scripts/issues-burndown.pl
index 67c05673..03af5ed7 100755
--- a/scripts/issues-burndown.pl
+++ b/scripts/issues-burndown.pl
@@ -18,7 +18,7 @@ my $gh = Net::GitHub->new(
login => 'ara4n', pass => read_password("github password: "),
);
-$gh->set_default_user_repo('vector-im', 'vector-web');
+$gh->set_default_user_repo('vector-im', 'riot-web');
#my @issues = $gh->issue->repos_issues({ state => 'all', milestone => 3 });
my @issues = $gh->issue->repos_issues({ state => 'all' });
diff --git a/scripts/issues-no-state.pl b/scripts/issues-no-state.pl
index 9b07ed27..748809c5 100755
--- a/scripts/issues-no-state.pl
+++ b/scripts/issues-no-state.pl
@@ -18,7 +18,7 @@ my $gh = Net::GitHub->new(
login => 'ara4n', pass => read_password("github password: "),
);
-$gh->set_default_user_repo('vector-im', 'vector-web');
+$gh->set_default_user_repo('vector-im', 'riot-web');
#my @issues = $gh->issue->repos_issues({ state => 'all', milestone => 3 });
my @issues = $gh->issue->repos_issues({ state => 'all' });
@@ -42,7 +42,7 @@ my $now = DateTime->now();
foreach my $issue (@issues) {
next if ($issue->{pull_request});
-
+
use Data::Dumper;
print STDERR Dumper($issue);
diff --git a/scripts/jenkins.sh b/scripts/jenkins.sh
index 0d441cdd..17f86fe1 100755
--- a/scripts/jenkins.sh
+++ b/scripts/jenkins.sh
@@ -8,10 +8,13 @@ nvm use 6
set -x
+# check out corresponding branches of dependencies
+`dirname $0`/fetch-develop.deps.sh
+
npm install
# apparently npm 3.10.3 on node 6.4.0 doesn't upgrade #develop target with npm install unless explicitly asked.
-npm install matrix-react-sdk matrix-js-sdk olm
+npm install olm
# install olm. A naive 'npm i ./olm/olm-*.tgz' fails because it uses the url
# from our package.json (or even matrix-js-sdk's) in preference.
@@ -23,18 +26,13 @@ npm install matrix-react-sdk matrix-js-sdk olm
#rm -r node_modules/olm
#cp -r olm/package node_modules/olm
-
-# we may be using dev branches of js-sdk and react-sdk, in which case we need to build them
-(cd node_modules/matrix-js-sdk && npm install)
-(cd node_modules/matrix-react-sdk && npm install)
-
# run the mocha tests
npm run test
# run eslint
npm run lintall -- -f checkstyle -o eslint.xml || true
-rm dist/vector-*.tar.gz || true # rm previous artifacts without failing if it doesn't exist
+rm dist/riot-*.tar.gz || true # rm previous artifacts without failing if it doesn't exist
# node_modules deps from 'npm install' don't have a .git dir so can't
# rev-parse; but they do set the commit in package.json under 'gitHead' which
diff --git a/scripts/package.sh b/scripts/package.sh
index b3bc00bf..23d0925b 100755
--- a/scripts/package.sh
+++ b/scripts/package.sh
@@ -21,17 +21,17 @@ npm run build$dev
cp config.sample.json webapp/
mkdir -p dist
-cp -r webapp vector-$version
+cp -r webapp riot-$version
# if $version looks like semver with leading v, strip it before writing to file
if [[ ${version} =~ ^v[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+(-.+)?$ ]]; then
- echo ${version:1} > vector-$version/version
+ echo ${version:1} > riot-$version/version
else
- echo ${version} > vector-$version/version
+ echo ${version} > riot-$version/version
fi
-tar chvzf dist/vector-$version.tar.gz vector-$version
-rm -r vector-$version
+tar chvzf dist/riot-$version.tar.gz riot-$version
+rm -r riot-$version
echo
-echo "Packaged dist/vector-$version.tar.gz"
+echo "Packaged dist/riot-$version.tar.gz"
diff --git a/src/components/structures/BottomLeftMenu.js b/src/components/structures/BottomLeftMenu.js
index 63dfac60..f378cac6 100644
--- a/src/components/structures/BottomLeftMenu.js
+++ b/src/components/structures/BottomLeftMenu.js
@@ -1,6 +1,5 @@
/*
Copyright 2015, 2016 OpenMarket Ltd
-Copyright 2017 Vector Creations Ltd
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -15,8 +14,13 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
-import React from 'react';
-import sdk from 'matrix-react-sdk';
+'use strict';
+
+var React = require('react');
+var ReactDOM = require('react-dom');
+var sdk = require('matrix-react-sdk')
+var dis = require('matrix-react-sdk/lib/dispatcher');
+var AccessibleButton = require('matrix-react-sdk/lib/components/views/elements/AccessibleButton');
module.exports = React.createClass({
displayName: 'BottomLeftMenu',
@@ -26,28 +30,121 @@ module.exports = React.createClass({
teamToken: React.PropTypes.string,
},
+ getInitialState: function() {
+ return({
+ directoryHover : false,
+ roomsHover : false,
+ homeHover: false,
+ peopleHover : false,
+ settingsHover : false,
+ });
+ },
+
+ // Room events
+ onDirectoryClick: function() {
+ dis.dispatch({ action: 'view_room_directory' });
+ },
+
+ onDirectoryMouseEnter: function() {
+ this.setState({ directoryHover: true });
+ },
+
+ onDirectoryMouseLeave: function() {
+ this.setState({ directoryHover: false });
+ },
+
+ onRoomsClick: function() {
+ dis.dispatch({ action: 'view_create_room' });
+ },
+
+ onRoomsMouseEnter: function() {
+ this.setState({ roomsHover: true });
+ },
+
+ onRoomsMouseLeave: function() {
+ this.setState({ roomsHover: false });
+ },
+
+ // Home button events
+ onHomeClick: function() {
+ dis.dispatch({ action: 'view_home_page' });
+ },
+
+ onHomeMouseEnter: function() {
+ this.setState({ homeHover: true });
+ },
+
+ onHomeMouseLeave: function() {
+ this.setState({ homeHover: false });
+ },
+
+ // People events
+ onPeopleClick: function() {
+ dis.dispatch({ action: 'view_create_chat' });
+ },
+
+ onPeopleMouseEnter: function() {
+ this.setState({ peopleHover: true });
+ },
+
+ onPeopleMouseLeave: function() {
+ this.setState({ peopleHover: false });
+ },
+
+ // Settings events
+ onSettingsClick: function() {
+ dis.dispatch({ action: 'view_user_settings' });
+ },
+
+ onSettingsMouseEnter: function() {
+ this.setState({ settingsHover: true });
+ },
+
+ onSettingsMouseLeave: function() {
+ this.setState({ settingsHover: false });
+ },
+
+ // Get the label/tooltip to show
+ getLabel: function(label, show) {
+ if (show) {
+ var RoomTooltip = sdk.getComponent("rooms.RoomTooltip");
+ return