Merge pull request #4039 from vector-im/new-guest-access
New guest access
@@ -11,6 +11,7 @@
|
||||
"matrix.org"
|
||||
]
|
||||
},
|
||||
"welcomeUserId": "@riot-bot:matrix.org",
|
||||
"piwik": {
|
||||
"url": "https://piwik.riot.im/",
|
||||
"siteId": 1
|
||||
|
||||
@@ -77,7 +77,8 @@
|
||||
"react-gemini-scrollbar": "matrix-org/react-gemini-scrollbar#5e97aef",
|
||||
"sanitize-html": "^1.11.1",
|
||||
"ua-parser-js": "^0.7.10",
|
||||
"url": "^0.11.0"
|
||||
"url": "^0.11.0",
|
||||
"velocity-vector": "vector-im/velocity#059e3b2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"autoprefixer": "^6.6.0",
|
||||
|
||||
BIN
res/flags/AD.png
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 2.5 KiB |
BIN
res/flags/AE.png
|
Before Width: | Height: | Size: 841 B After Width: | Height: | Size: 1015 B |
BIN
res/flags/AF.png
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 2.5 KiB |
BIN
res/flags/AG.png
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 4.1 KiB |
BIN
res/flags/AI.png
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 4.7 KiB |
BIN
res/flags/AL.png
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 3.0 KiB |
BIN
res/flags/AM.png
|
Before Width: | Height: | Size: 744 B After Width: | Height: | Size: 654 B |
BIN
res/flags/AO.png
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 2.4 KiB |
BIN
res/flags/AQ.png
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 3.8 KiB |
BIN
res/flags/AR.png
|
Before Width: | Height: | Size: 955 B After Width: | Height: | Size: 1.6 KiB |
BIN
res/flags/AS.png
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 3.9 KiB |
BIN
res/flags/AT.png
|
Before Width: | Height: | Size: 701 B After Width: | Height: | Size: 655 B |
BIN
res/flags/AU.png
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 5.1 KiB |
BIN
res/flags/AW.png
|
Before Width: | Height: | Size: 938 B After Width: | Height: | Size: 1.6 KiB |
BIN
res/flags/AX.png
|
Before Width: | Height: | Size: 900 B After Width: | Height: | Size: 1.8 KiB |
BIN
res/flags/AZ.png
|
Before Width: | Height: | Size: 978 B After Width: | Height: | Size: 1.7 KiB |
BIN
res/flags/BA.png
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 3.0 KiB |
BIN
res/flags/BB.png
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 2.0 KiB |
BIN
res/flags/BD.png
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 2.8 KiB |
BIN
res/flags/BE.png
|
Before Width: | Height: | Size: 689 B After Width: | Height: | Size: 558 B |
BIN
res/flags/BF.png
|
Before Width: | Height: | Size: 954 B After Width: | Height: | Size: 1.6 KiB |
BIN
res/flags/BG.png
|
Before Width: | Height: | Size: 737 B After Width: | Height: | Size: 659 B |
BIN
res/flags/BH.png
|
Before Width: | Height: | Size: 842 B After Width: | Height: | Size: 1.3 KiB |
BIN
res/flags/BI.png
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 5.5 KiB |
BIN
res/flags/BJ.png
|
Before Width: | Height: | Size: 777 B After Width: | Height: | Size: 811 B |
BIN
res/flags/BL.png
|
Before Width: | Height: | Size: 692 B After Width: | Height: | Size: 566 B |
BIN
res/flags/BM.png
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 5.2 KiB |
BIN
res/flags/BN.png
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 5.2 KiB |
BIN
res/flags/BO.png
|
Before Width: | Height: | Size: 733 B After Width: | Height: | Size: 668 B |
BIN
res/flags/BQ.png
|
Before Width: | Height: | Size: 726 B After Width: | Height: | Size: 672 B |
BIN
res/flags/BR.png
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 4.7 KiB |
BIN
res/flags/BS.png
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 2.2 KiB |
BIN
res/flags/BT.png
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 4.8 KiB |
BIN
res/flags/BV.png
|
Before Width: | Height: | Size: 866 B After Width: | Height: | Size: 1.7 KiB |
BIN
res/flags/BW.png
|
Before Width: | Height: | Size: 697 B After Width: | Height: | Size: 669 B |
BIN
res/flags/BY.png
|
Before Width: | Height: | Size: 950 B After Width: | Height: | Size: 2.0 KiB |
BIN
res/flags/BZ.png
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 5.2 KiB |
BIN
res/flags/CA.png
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 2.2 KiB |
BIN
res/flags/CC.png
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 3.6 KiB |
BIN
res/flags/CD.png
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 3.6 KiB |
BIN
res/flags/CF.png
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 2.6 KiB |
BIN
res/flags/CG.png
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.3 KiB |
BIN
res/flags/CH.png
|
Before Width: | Height: | Size: 800 B After Width: | Height: | Size: 1.5 KiB |
BIN
res/flags/CI.png
|
Before Width: | Height: | Size: 692 B After Width: | Height: | Size: 568 B |
BIN
res/flags/CK.png
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 5.9 KiB |
BIN
res/flags/CL.png
|
Before Width: | Height: | Size: 964 B After Width: | Height: | Size: 1.6 KiB |
BIN
res/flags/CM.png
|
Before Width: | Height: | Size: 908 B After Width: | Height: | Size: 1.4 KiB |
BIN
res/flags/CN.png
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 2.2 KiB |
BIN
res/flags/CO.png
|
Before Width: | Height: | Size: 726 B After Width: | Height: | Size: 668 B |
BIN
res/flags/CR.png
|
Before Width: | Height: | Size: 734 B After Width: | Height: | Size: 785 B |
BIN
res/flags/CU.png
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 3.0 KiB |
BIN
res/flags/CV.png
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 2.6 KiB |
BIN
res/flags/CW.png
|
Before Width: | Height: | Size: 970 B After Width: | Height: | Size: 1.7 KiB |
BIN
res/flags/CX.png
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 5.0 KiB |
BIN
res/flags/CY.png
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 3.5 KiB |
BIN
res/flags/CZ.png
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.7 KiB |
BIN
res/flags/DE.png
|
Before Width: | Height: | Size: 734 B After Width: | Height: | Size: 568 B |
BIN
res/flags/DJ.png
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 3.5 KiB |
BIN
res/flags/DK.png
|
Before Width: | Height: | Size: 797 B After Width: | Height: | Size: 1.2 KiB |
BIN
res/flags/DM.png
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 2.6 KiB |
BIN
res/flags/DO.png
|
Before Width: | Height: | Size: 946 B After Width: | Height: | Size: 1.6 KiB |
BIN
res/flags/DZ.png
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 2.4 KiB |
BIN
res/flags/EC.png
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 2.8 KiB |
BIN
res/flags/EE.png
|
Before Width: | Height: | Size: 723 B After Width: | Height: | Size: 641 B |
BIN
res/flags/EG.png
|
Before Width: | Height: | Size: 914 B After Width: | Height: | Size: 1.6 KiB |
BIN
res/flags/EH.png
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 2.6 KiB |
BIN
res/flags/ER.png
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 4.0 KiB |
BIN
res/flags/ES.png
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 2.1 KiB |
BIN
res/flags/ET.png
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 3.4 KiB |
BIN
res/flags/FI.png
|
Before Width: | Height: | Size: 841 B After Width: | Height: | Size: 1.5 KiB |
BIN
res/flags/FJ.png
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 4.9 KiB |
BIN
res/flags/FK.png
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 5.1 KiB |
BIN
res/flags/FM.png
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 2.4 KiB |
BIN
res/flags/FO.png
|
Before Width: | Height: | Size: 834 B After Width: | Height: | Size: 1.7 KiB |
BIN
res/flags/FR.png
|
Before Width: | Height: | Size: 692 B After Width: | Height: | Size: 566 B |
BIN
res/flags/GA.png
|
Before Width: | Height: | Size: 753 B After Width: | Height: | Size: 661 B |
BIN
res/flags/GB.png
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 6.2 KiB |
BIN
res/flags/GD.png
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 5.6 KiB |
BIN
res/flags/GE.png
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 2.5 KiB |
BIN
res/flags/GF.png
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 2.3 KiB |
BIN
res/flags/GG.png
|
Before Width: | Height: | Size: 1001 B After Width: | Height: | Size: 2.7 KiB |
BIN
res/flags/GH.png
|
Before Width: | Height: | Size: 1010 B After Width: | Height: | Size: 1.8 KiB |
BIN
res/flags/GI.png
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 2.7 KiB |
BIN
res/flags/GL.png
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 3.0 KiB |
BIN
res/flags/GM.png
|
Before Width: | Height: | Size: 743 B After Width: | Height: | Size: 709 B |
BIN
res/flags/GN.png
|
Before Width: | Height: | Size: 699 B After Width: | Height: | Size: 560 B |
BIN
res/flags/GP.png
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 5.5 KiB |
BIN
res/flags/GQ.png
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 3.0 KiB |
BIN
res/flags/GR.png
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 2.0 KiB |
BIN
res/flags/GS.png
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 5.6 KiB |
BIN
res/flags/GT.png
|
Before Width: | Height: | Size: 949 B After Width: | Height: | Size: 1.8 KiB |
BIN
res/flags/GU.png
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 2.5 KiB |
BIN
res/flags/GW.png
|
Before Width: | Height: | Size: 972 B After Width: | Height: | Size: 1.6 KiB |
BIN
res/flags/GY.png
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 5.0 KiB |
BIN
res/flags/HK.png
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 2.9 KiB |
BIN
res/flags/HM.png
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 5.1 KiB |
BIN
res/flags/HN.png
|
Before Width: | Height: | Size: 971 B After Width: | Height: | Size: 1.6 KiB |
BIN
res/flags/HR.png
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 2.4 KiB |
BIN
res/flags/HT.png
|
Before Width: | Height: | Size: 951 B After Width: | Height: | Size: 1.9 KiB |
BIN
res/flags/HU.png
|
Before Width: | Height: | Size: 728 B After Width: | Height: | Size: 677 B |
BIN
res/flags/ID.png
|
Before Width: | Height: | Size: 685 B After Width: | Height: | Size: 579 B |
BIN
res/flags/IE.png
|
Before Width: | Height: | Size: 694 B After Width: | Height: | Size: 553 B |
BIN
res/flags/IL.png
|
Before Width: | Height: | Size: 1006 B After Width: | Height: | Size: 1.8 KiB |
BIN
res/flags/IM.png
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 2.5 KiB |
BIN
res/flags/IN.png
|
Before Width: | Height: | Size: 914 B After Width: | Height: | Size: 1.6 KiB |
BIN
res/flags/IO.png
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 7.9 KiB |
BIN
res/flags/IQ.png
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 2.1 KiB |
BIN
res/flags/IR.png
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 3.9 KiB |
BIN
res/flags/IS.png
|
Before Width: | Height: | Size: 851 B After Width: | Height: | Size: 1.4 KiB |
BIN
res/flags/IT.png
|
Before Width: | Height: | Size: 694 B After Width: | Height: | Size: 572 B |
BIN
res/flags/JE.png
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 3.0 KiB |
BIN
res/flags/JM.png
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 3.6 KiB |
BIN
res/flags/JO.png
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 2.5 KiB |
BIN
res/flags/JP.png
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 2.3 KiB |
BIN
res/flags/KE.png
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 2.7 KiB |
BIN
res/flags/KG.png
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 3.2 KiB |
BIN
res/flags/KH.png
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 2.8 KiB |
BIN
res/flags/KI.png
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 3.6 KiB |
BIN
res/flags/KM.png
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 3.9 KiB |
BIN
res/flags/KN.png
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 4.1 KiB |
BIN
res/flags/KP.png
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 2.2 KiB |
BIN
res/flags/KR.png
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 4.7 KiB |
BIN
res/flags/KW.png
|
Before Width: | Height: | Size: 985 B After Width: | Height: | Size: 1.6 KiB |
BIN
res/flags/KY.png
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 5.2 KiB |
BIN
res/flags/KZ.png
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 3.4 KiB |
BIN
res/flags/LA.png
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 2.1 KiB |
BIN
res/flags/LB.png
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 2.5 KiB |
BIN
res/flags/LC.png
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 2.4 KiB |
BIN
res/flags/LI.png
|
Before Width: | Height: | Size: 973 B After Width: | Height: | Size: 1.7 KiB |
BIN
res/flags/LK.png
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 5.0 KiB |
BIN
res/flags/LR.png
|
Before Width: | Height: | Size: 960 B After Width: | Height: | Size: 1.9 KiB |
BIN
res/flags/LS.png
|
Before Width: | Height: | Size: 938 B After Width: | Height: | Size: 1.8 KiB |
BIN
res/flags/LT.png
|
Before Width: | Height: | Size: 745 B After Width: | Height: | Size: 640 B |
BIN
res/flags/LU.png
|
Before Width: | Height: | Size: 729 B After Width: | Height: | Size: 677 B |
BIN
res/flags/LV.png
|
Before Width: | Height: | Size: 701 B After Width: | Height: | Size: 641 B |
BIN
res/flags/LY.png
|
Before Width: | Height: | Size: 891 B After Width: | Height: | Size: 1.2 KiB |
BIN
res/flags/MA.png
|
Before Width: | Height: | Size: 908 B After Width: | Height: | Size: 1.4 KiB |
BIN
res/flags/MC.png
|
Before Width: | Height: | Size: 684 B After Width: | Height: | Size: 574 B |
BIN
res/flags/MD.png
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 2.2 KiB |
BIN
res/flags/ME.png
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 2.9 KiB |
BIN
res/flags/MF.png
|
Before Width: | Height: | Size: 692 B After Width: | Height: | Size: 566 B |
BIN
res/flags/MG.png
|
Before Width: | Height: | Size: 759 B After Width: | Height: | Size: 823 B |
BIN
res/flags/MH.png
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 5.5 KiB |
BIN
res/flags/MK.png
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 4.9 KiB |
BIN
res/flags/ML.png
|
Before Width: | Height: | Size: 699 B After Width: | Height: | Size: 552 B |
BIN
res/flags/MM.png
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 3.0 KiB |
BIN
res/flags/MN.png
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 2.3 KiB |
BIN
res/flags/MO.png
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 2.9 KiB |
BIN
res/flags/MP.png
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 4.5 KiB |
BIN
res/flags/MQ.png
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 5.7 KiB |
BIN
res/flags/MR.png
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 2.8 KiB |
BIN
res/flags/MS.png
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 4.9 KiB |
BIN
res/flags/MT.png
|
Before Width: | Height: | Size: 826 B After Width: | Height: | Size: 1.3 KiB |
BIN
res/flags/MU.png
|
Before Width: | Height: | Size: 759 B After Width: | Height: | Size: 723 B |
BIN
res/flags/MV.png
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 2.0 KiB |
BIN
res/flags/MW.png
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 2.1 KiB |
BIN
res/flags/MX.png
|
Before Width: | Height: | Size: 994 B After Width: | Height: | Size: 2.1 KiB |
BIN
res/flags/MY.png
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 3.0 KiB |
BIN
res/flags/MZ.png
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 3.3 KiB |
BIN
res/flags/NA.png
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 3.6 KiB |
BIN
res/flags/NC.png
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 3.2 KiB |
BIN
res/flags/NE.png
|
Before Width: | Height: | Size: 970 B After Width: | Height: | Size: 1.6 KiB |
BIN
res/flags/NF.png
|
Before Width: | Height: | Size: 1019 B After Width: | Height: | Size: 2.5 KiB |
BIN
res/flags/NG.png
|
Before Width: | Height: | Size: 682 B After Width: | Height: | Size: 563 B |
BIN
res/flags/NI.png
|
Before Width: | Height: | Size: 961 B After Width: | Height: | Size: 1.7 KiB |
BIN
res/flags/NL.png
|
Before Width: | Height: | Size: 726 B After Width: | Height: | Size: 672 B |
BIN
res/flags/NO.png
|
Before Width: | Height: | Size: 866 B After Width: | Height: | Size: 1.7 KiB |
BIN
res/flags/NP.png
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 3.9 KiB |
BIN
res/flags/NR.png
|
Before Width: | Height: | Size: 941 B After Width: | Height: | Size: 1.6 KiB |
BIN
res/flags/NU.png
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 3.2 KiB |
BIN
res/flags/NZ.png
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 4.6 KiB |
BIN
res/flags/OM.png
|
Before Width: | Height: | Size: 989 B After Width: | Height: | Size: 1.8 KiB |
BIN
res/flags/PA.png
|
Before Width: | Height: | Size: 987 B After Width: | Height: | Size: 2.2 KiB |
BIN
res/flags/PE.png
|
Before Width: | Height: | Size: 680 B After Width: | Height: | Size: 556 B |
BIN
res/flags/PF.png
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 2.3 KiB |
BIN
res/flags/PG.png
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 4.3 KiB |
BIN
res/flags/PH.png
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 3.1 KiB |
BIN
res/flags/PK.png
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 3.1 KiB |
BIN
res/flags/PL.png
|
Before Width: | Height: | Size: 689 B After Width: | Height: | Size: 567 B |
BIN
res/flags/PM.png
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 8.4 KiB |
BIN
res/flags/PN.png
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 5.8 KiB |
BIN
res/flags/PR.png
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 3.6 KiB |
BIN
res/flags/PS.png
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 2.1 KiB |
BIN
res/flags/PT.png
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 2.6 KiB |
BIN
res/flags/PW.png
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 2.7 KiB |
BIN
res/flags/PY.png
|
Before Width: | Height: | Size: 924 B After Width: | Height: | Size: 1.5 KiB |
BIN
res/flags/QA.png
|
Before Width: | Height: | Size: 844 B After Width: | Height: | Size: 1.5 KiB |
BIN
res/flags/RE.png
|
Before Width: | Height: | Size: 692 B After Width: | Height: | Size: 566 B |
BIN
res/flags/RO.png
|
Before Width: | Height: | Size: 699 B After Width: | Height: | Size: 555 B |
BIN
res/flags/RS.png
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 3.3 KiB |
BIN
res/flags/RU.png
|
Before Width: | Height: | Size: 734 B After Width: | Height: | Size: 662 B |
BIN
res/flags/RW.png
|
Before Width: | Height: | Size: 1003 B After Width: | Height: | Size: 1.7 KiB |
BIN
res/flags/SA.png
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 3.7 KiB |
BIN
res/flags/SB.png
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 3.3 KiB |
BIN
res/flags/SC.png
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 3.6 KiB |
BIN
res/flags/SD.png
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 2.1 KiB |
BIN
res/flags/SE.png
|
Before Width: | Height: | Size: 780 B After Width: | Height: | Size: 1.2 KiB |
BIN
res/flags/SG.png
|
Before Width: | Height: | Size: 1021 B After Width: | Height: | Size: 2.2 KiB |
BIN
res/flags/SH.png
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 4.5 KiB |
BIN
res/flags/SI.png
|
Before Width: | Height: | Size: 933 B After Width: | Height: | Size: 1.6 KiB |
BIN
res/flags/SJ.png
|
Before Width: | Height: | Size: 866 B After Width: | Height: | Size: 1.7 KiB |
BIN
res/flags/SK.png
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 2.9 KiB |
BIN
res/flags/SL.png
|
Before Width: | Height: | Size: 726 B After Width: | Height: | Size: 676 B |
BIN
res/flags/SM.png
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 2.9 KiB |
BIN
res/flags/SN.png
|
Before Width: | Height: | Size: 963 B After Width: | Height: | Size: 1.5 KiB |
BIN
res/flags/SO.png
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.9 KiB |
BIN
res/flags/SR.png
|
Before Width: | Height: | Size: 1003 B After Width: | Height: | Size: 1.9 KiB |
BIN
res/flags/SS.png
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 3.0 KiB |
BIN
res/flags/ST.png
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 2.9 KiB |
BIN
res/flags/SV.png
|
Before Width: | Height: | Size: 942 B After Width: | Height: | Size: 1.6 KiB |
BIN
res/flags/SX.png
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 3.4 KiB |
BIN
res/flags/SY.png
|
Before Width: | Height: | Size: 1002 B After Width: | Height: | Size: 1.2 KiB |
BIN
res/flags/SZ.png
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 4.0 KiB |
BIN
res/flags/TC.png
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 4.5 KiB |
BIN
res/flags/TD.png
|
Before Width: | Height: | Size: 699 B After Width: | Height: | Size: 567 B |
BIN
res/flags/TF.png
|
Before Width: | Height: | Size: 692 B After Width: | Height: | Size: 566 B |
BIN
res/flags/TG.png
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 2.5 KiB |
BIN
res/flags/TH.png
|
Before Width: | Height: | Size: 731 B After Width: | Height: | Size: 764 B |
BIN
res/flags/TJ.png
|
Before Width: | Height: | Size: 993 B After Width: | Height: | Size: 1.6 KiB |
BIN
res/flags/TK.png
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 4.7 KiB |
BIN
res/flags/TL.png
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 3.0 KiB |
BIN
res/flags/TM.png
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 3.8 KiB |
BIN
res/flags/TN.png
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 2.6 KiB |
BIN
res/flags/TO.png
|
Before Width: | Height: | Size: 919 B After Width: | Height: | Size: 1.6 KiB |
BIN
res/flags/TR.png
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 2.8 KiB |
BIN
res/flags/TT.png
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 5.1 KiB |
BIN
res/flags/TV.png
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 5.8 KiB |
BIN
res/flags/TW.png
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 2.1 KiB |
BIN
res/flags/TZ.png
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 2.2 KiB |
BIN
res/flags/UA.png
|
Before Width: | Height: | Size: 694 B After Width: | Height: | Size: 568 B |
BIN
res/flags/UG.png
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.9 KiB |
BIN
res/flags/US.png
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 2.8 KiB |
BIN
res/flags/UY.png
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 2.5 KiB |
BIN
res/flags/UZ.png
|
Before Width: | Height: | Size: 942 B After Width: | Height: | Size: 1.7 KiB |
BIN
res/flags/VA.png
|
Before Width: | Height: | Size: 977 B After Width: | Height: | Size: 2.2 KiB |
BIN
res/flags/VC.png
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 2.1 KiB |
BIN
res/flags/VE.png
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 2.1 KiB |
BIN
res/flags/VG.png
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 5.3 KiB |
BIN
res/flags/VI.png
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 5.8 KiB |
BIN
res/flags/VN.png
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 2.3 KiB |
BIN
res/flags/VU.png
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 4.0 KiB |
BIN
res/flags/WF.png
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 2.5 KiB |
BIN
res/flags/WS.png
|
Before Width: | Height: | Size: 1004 B After Width: | Height: | Size: 1.9 KiB |
BIN
res/flags/YE.png
|
Before Width: | Height: | Size: 715 B After Width: | Height: | Size: 652 B |
BIN
res/flags/YT.png
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 5.6 KiB |
BIN
res/flags/ZA.png
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 3.5 KiB |
BIN
res/flags/ZM.png
|
Before Width: | Height: | Size: 991 B After Width: | Height: | Size: 1.7 KiB |
BIN
res/flags/ZW.png
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 2.7 KiB |
174
res/home.html
Normal file
@@ -0,0 +1,174 @@
|
||||
<link href="home/css/welcome.css" rel="stylesheet">
|
||||
<div style="display: none" class="mx_HomePage_container">
|
||||
<div class="mx_HomePage_col mx_HomePage_header">
|
||||
<a href="https://riot.im"><img src="home/images/logo.svg" class="mx_HomePage_logo"></a>
|
||||
<div>
|
||||
<h1>_t("Welcome to Riot.im")</h1>
|
||||
<h2>_t("Decentralised, encrypted chat & collaboration powered by") <a href="https://matrix.org"><img width="79" height="34" alt="[matrix]" style="padding-left: 1px;vertical-align: middle" src="home/images/matrix.svg"/></a></h2>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mx_HomePage_col mx_HomePage_toprow">
|
||||
<div class="mx_HomePage_row">
|
||||
<div>
|
||||
<h3>_t("Search the room directory")</h3>
|
||||
<a class="mx_HomePage_room" href="#/directory">
|
||||
<img class="mx_HomePage_icon" src="img/icons-directory.svg">
|
||||
</a>
|
||||
<span class="mx_HomePage_comment">
|
||||
_t("Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!")
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mx_HomePage_row">
|
||||
<div>
|
||||
<h3>_t("Chat with Riot Bot")</h3>
|
||||
<a class="mx_HomePage_room" href="#/user/@riot-bot:matrix.org?action=chat">
|
||||
<img class="mx_HomePage_icon" src="home/rooms/riot-bot.png">
|
||||
</a>
|
||||
<span class="mx_HomePage_comment">
|
||||
_t("Get started with some tips from Riot Bot!")
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h3>_t("General discussion about Matrix")</h3>
|
||||
|
||||
<div class="mx_HomePage_row">
|
||||
<div class="mx_HomePage_room">
|
||||
<a href="#/room/#matrix:matrix.org">
|
||||
<img class="mx_HomePage_icon" src="home/rooms/matrix.png">
|
||||
<span class="mx_HomePage_name">Matrix HQ</span>
|
||||
</a>
|
||||
<span class="mx_HomePage_desc">_t("Discussion of all things Matrix!")</span>
|
||||
</div>
|
||||
<div class="mx_HomePage_room">
|
||||
<a href="#/room/#riot:matrix.org">
|
||||
<img class="mx_HomePage_icon" src="home/rooms/riot.png">
|
||||
<span class="mx_HomePage_name">Riot</span>
|
||||
</a>
|
||||
<span class="mx_HomePage_desc">_t("Riot/Web & Desktop chat")</span>
|
||||
</div>
|
||||
<div class="mx_HomePage_room">
|
||||
<a href="#/room/#riot-ios:matrix.org">
|
||||
<img class="mx_HomePage_icon" src="home/rooms/riot-ios.png">
|
||||
<span class="mx_HomePage_name">#riot-ios</span>
|
||||
</a>
|
||||
<span class="mx_HomePage_desc">_t("Riot/iOS & matrix-ios-sdk chat")</span>
|
||||
</div>
|
||||
<div class="mx_HomePage_room">
|
||||
<a href="#/room/#riot-android:matrix.org">
|
||||
<img class="mx_HomePage_icon" src="home/rooms/riot-android.png">
|
||||
<span class="mx_HomePage_name">#riot-android</span>
|
||||
</a>
|
||||
<span class="mx_HomePage_desc">_t("Riot/Android & matrix-android-sdk chat")</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h3>_t("Matrix technical discussions")</h3>
|
||||
<h4>_t("Running Matrix services")</h4>
|
||||
|
||||
<div class="mx_HomePage_row">
|
||||
<div class="mx_HomePage_room">
|
||||
<a href="#/room/#synapse:matrix.org">
|
||||
<img class="mx_HomePage_icon" src="home/rooms/matrix.png">
|
||||
<span class="mx_HomePage_name">Synapse Support Community</span>
|
||||
</a>
|
||||
<span class="mx_HomePage_desc">_t("Community-run support for Synapse")</span>
|
||||
</div>
|
||||
<div class="mx_HomePage_room">
|
||||
<a href="#/room/#dendrite:matrix.org">
|
||||
<img class="mx_HomePage_icon" src="home/rooms/dendrite.png">
|
||||
<span class="mx_HomePage_name">#dendrite:matrix.org</span>
|
||||
</a>
|
||||
<span class="mx_HomePage_desc">_t("Admin support for Dendrite")</span>
|
||||
</div>
|
||||
<div class="mx_HomePage_room">
|
||||
<a href="#/room/#homeowners:matrix.org">
|
||||
<img class="mx_HomePage_icon" src="home/rooms/homeowners.png">
|
||||
<span class="mx_HomePage_name">Synapse Homeowners</span>
|
||||
</a>
|
||||
<span class="mx_HomePage_desc">_t("Announcements about Synapse releases")</span>
|
||||
</div>
|
||||
<div class="mx_HomePage_room">
|
||||
<a href="#/room/#irc:matrix.org">
|
||||
<img class="mx_HomePage_icon" src="home/rooms/irc.png">
|
||||
<span class="mx_HomePage_name">IRC Matrix Bridges</span>
|
||||
</a>
|
||||
<span class="mx_HomePage_desc">_t("Support for those using and running matrix-appservice-irc")</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h4>_t("Building services on Matrix")</h4>
|
||||
|
||||
<div class="mx_HomePage_row">
|
||||
<div class="mx_HomePage_room">
|
||||
<a href="#/room/#matrix-dev:matrix.org">
|
||||
<img class="mx_HomePage_icon" src="home/rooms/matrix-dev.png">
|
||||
<span class="mx_HomePage_name">#matrix-dev:matrix.org</span>
|
||||
</a>
|
||||
<span class="mx_HomePage_desc">_t("Support for those using the Matrix spec")</span>
|
||||
</div>
|
||||
<div class="mx_HomePage_room">
|
||||
<a href="#/room/#e2e:matrix.org">
|
||||
<img class="mx_HomePage_icon" src="home/rooms/e2e.png">
|
||||
<span class="mx_HomePage_name">End-to-end crypto in Matrix</span>
|
||||
</a>
|
||||
<span class="mx_HomePage_desc">_t("Design and implementation of E2E in Matrix")</span>
|
||||
</div>
|
||||
<div class="mx_HomePage_room">
|
||||
<a href="#/room/#vr:matrix.org">
|
||||
<img class="mx_HomePage_icon" src="home/rooms/vr.png">
|
||||
<span class="mx_HomePage_name">#vr:matrix.org</span>
|
||||
</a>
|
||||
<span class="mx_HomePage_desc">_t("Implementing VR services with Matrix")</span>
|
||||
</div>
|
||||
<div class="mx_HomePage_room">
|
||||
<a href="#/room/#webrtc:matrix.org">
|
||||
<img class="mx_HomePage_icon" src="home/rooms/webrtc.png">
|
||||
<span class="mx_HomePage_name">#webrtc:matrix.org</span>
|
||||
</a>
|
||||
<span class="mx_HomePage_desc">_t("Implementing VoIP services with Matrix")</span>
|
||||
</div>
|
||||
<div class="mx_HomePage_room">
|
||||
<a href="#/room/#identity:matrix.org">
|
||||
<img class="mx_HomePage_icon" src="home/rooms/identity.jpg">
|
||||
<span class="mx_HomePage_name">Matrix Identity</span>
|
||||
</a>
|
||||
<span class="mx_HomePage_desc">_t("Discussion of the Identity Service API")</span>
|
||||
</div>
|
||||
<div class="mx_HomePage_room">
|
||||
<a href="#/room/#bridging:matrix.org">
|
||||
<img class="mx_HomePage_icon" src="home/rooms/bridging.png">
|
||||
<span class="mx_HomePage_name">Matrix Bridging</span>
|
||||
</a>
|
||||
<span class="mx_HomePage_desc">_t("Support for those using, running and writing other bridges")</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h4>_t("Contributing code to Matrix and Riot")</h4>
|
||||
|
||||
<div class="mx_HomePage_row">
|
||||
<div class="mx_HomePage_room">
|
||||
<a href="#/room/#riot-dev:matrix.org">
|
||||
<img class="mx_HomePage_icon" src="home/rooms/riot-dev.png">
|
||||
<span class="mx_HomePage_name">#riot-dev</span>
|
||||
</a>
|
||||
<span class="mx_HomePage_desc">_t("Dev chat for the Riot/Web dev team")</span>
|
||||
</div>
|
||||
<div class="mx_HomePage_room">
|
||||
<a href="#/room/#dendrite-dev:matrix.org">
|
||||
<img class="mx_HomePage_icon" src="home/rooms/dendrite-dev.png">
|
||||
<span class="mx_HomePage_name">#dendrite-dev</span>
|
||||
</a>
|
||||
<span class="mx_HomePage_desc">_t("Dev chat for the Dendrite dev team")</span>
|
||||
</div>
|
||||
<div class="mx_HomePage_room">
|
||||
<a href="#/room/#riotweb-translations:matrix.org">
|
||||
<img class="mx_HomePage_icon" src="home/rooms/riot-translations.png">
|
||||
<span class="mx_HomePage_name">Riot-Web Translations</span>
|
||||
</a>
|
||||
<span class="mx_HomePage_desc">_t("Co-ordination for Riot/Web translators")</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
106
res/home/css/welcome.css
Normal file
@@ -0,0 +1,106 @@
|
||||
.mx_HomePage_header h1 {
|
||||
margin-left: 0px;
|
||||
margin-bottom: 0px;
|
||||
margin-top: 20px;
|
||||
margin-right: 20px;
|
||||
}
|
||||
|
||||
.mx_HomePage_header h2 {
|
||||
margin-left: 0px;
|
||||
margin-top: 5px;
|
||||
margin-bottom: 20px;
|
||||
margin-right: 20px;
|
||||
}
|
||||
|
||||
.mx_HomePage h3 {
|
||||
margin-top: 30px;
|
||||
}
|
||||
|
||||
.mx_HomePage_header {
|
||||
border: 1px solid #76CFA6;
|
||||
background-color: #eaf5f0;
|
||||
border-radius: 5px;
|
||||
color: #454545;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.mx_HomePage_col {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
}
|
||||
|
||||
.mx_HomePage_toprow {
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.mx_HomePage_row {
|
||||
flex: 1 1 0;
|
||||
margin-right: 20px;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.mx_HomePage_logo {
|
||||
margin-top: 20px;
|
||||
margin-left: 40px;
|
||||
margin-right: 40px;
|
||||
margin-bottom: 20px;
|
||||
display: inline;
|
||||
height: 100px;
|
||||
}
|
||||
|
||||
.mx_HomePage_room {
|
||||
cursor: pointer;
|
||||
float: left;
|
||||
text-decoration: none;
|
||||
text-align: center;
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
width: 120px;
|
||||
}
|
||||
|
||||
.mx_HomePage_toprow .mx_HomePage_room {
|
||||
width: 64px;
|
||||
}
|
||||
|
||||
|
||||
.mx_HomePage_room .mx_HomePage_icon {
|
||||
border-radius: 50%;
|
||||
width: 64px;
|
||||
height: 64px;
|
||||
}
|
||||
|
||||
.mx_HomePage_room .mx_HomePage_name {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.mx_HomePage_room .mx_HomePage_desc {
|
||||
display: block;
|
||||
font-size: 12px;
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
.mx_HomePage_comment {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-left: 100px;
|
||||
min-height: 64px;
|
||||
}
|
||||
|
||||
.mx_HomePage_container h3::after,
|
||||
.mx_HomePage_container h4::after {
|
||||
content: ":";
|
||||
}
|
||||
|
||||
.mx_HomePage_container {
|
||||
display: block ! important;
|
||||
margin: 20px;
|
||||
}
|
||||
|
||||
.mx_HomePage_container h1,
|
||||
.mx_HomePage_container h2,
|
||||
.mx_HomePage_container h3,
|
||||
.mx_HomePage_container h4 {
|
||||
font-weight: 600;
|
||||
}
|
||||
76
res/home/images/logo.svg
Normal file
@@ -0,0 +1,76 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 173.6 146.6" style="enable-background:new 0 0 173.6 146.6;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:#7DC8A2;}
|
||||
.st1{fill:#AFDBC5;}
|
||||
.st2{fill:#764D80;}
|
||||
.st3{enable-background:new ;}
|
||||
.st4{fill:none;stroke:#764D80;stroke-miterlimit:10;}
|
||||
</style>
|
||||
<title>New_logo</title>
|
||||
<g id="Design">
|
||||
<path class="st0" d="M62.3,0H21.2C9.9,0,0.7,9.2,0.7,20.6v102.8c0,11.4,9.2,20.6,20.6,20.6c11.3,0,20.5-9.2,20.6-20.6v-20.6h20.5
|
||||
c28.4,0,51.4-23,51.4-51.4S90.7,0,62.3,0z"/>
|
||||
<path class="st1" d="M21.2,138.8c-8.5,0-15.4-6.9-15.4-15.4V20.6c0-8.5,6.8-15.3,15.3-15.4h41.2c25.5,0.4,46,21.4,45.6,46.9
|
||||
c-0.4,25-20.6,45.2-45.6,45.6H36.6v25.7C36.6,131.9,29.7,138.8,21.2,138.8z"/>
|
||||
<path class="st0" d="M21.2,133.7c-5.7,0-10.3-4.6-10.3-10.3V20.6c0-5.6,4.5-10.2,10.1-10.3h41.3c22.7,0,41.1,18.4,41.1,41.1
|
||||
S85.1,92.5,62.4,92.5H31.5v30.8C31.5,129.1,26.9,133.7,21.2,133.7z"/>
|
||||
<path class="st1" d="M21.2,128.6c-2.9,0-5.2-2.3-5.2-5.2V20.6c0-2.8,2.2-5.1,5-5.2h41.3c19.9,0,36,16.1,36,36s-16.1,36-36,36h-36
|
||||
v36C26.4,126.3,24.1,128.6,21.2,128.6z"/>
|
||||
<path class="st0" d="M21.3,82.3h41.1c17.1,0,30.9-13.8,30.9-30.9S79.4,20.5,62.3,20.5H21.2L21.3,82.3z"/>
|
||||
<path class="st1" d="M26.4,77.2V25.7h36c14.2,0.3,25.5,12,25.2,26.3c-0.3,13.8-11.4,25-25.2,25.2H26.4z"/>
|
||||
<path class="st0" d="M31.5,72V30.8h30.8c11.4,0.3,20.4,9.7,20.2,21.1c-0.2,11-9.1,19.9-20.2,20.2H31.5z"/>
|
||||
<path class="st1" d="M36.6,66.9v-31h25.7c8.6,0,15.5,6.9,15.5,15.5s-6.9,15.5-15.5,15.5H36.6z"/>
|
||||
<path class="st0" d="M41.8,61.8V41.1h20.6c5.7,0,10.4,4.7,10.3,10.4c0,5.7-4.6,10.3-10.3,10.3H41.8z"/>
|
||||
<path class="st1" d="M46.9,56.6V46.2h15.5c2.9,0,5.2,2.3,5.2,5.2s-2.3,5.2-5.2,5.2L46.9,56.6z"/>
|
||||
<ellipse transform="matrix(0.8192 -0.5736 0.5736 0.8192 -8.0825 15.5141)" class="st2" cx="20.6" cy="20.6" rx="20.6" ry="20.6"/>
|
||||
<path class="st2" d="M109.3,111.6c6.7,9.2,4.6,22-4.6,28.7s-22,4.6-28.7-4.6c-0.1-0.2-0.3-0.4-0.4-0.6l-30.8-44
|
||||
c-6.5-9.3-4.3-22.1,5-28.6s22.1-4.3,28.6,5L109.3,111.6z"/>
|
||||
</g>
|
||||
<g id="Layer_3">
|
||||
<path class="st2" d="M145.3,32.7h16.4c0.9,0,1.6-0.7,1.6-1.6c0-0.9-0.7-1.6-1.6-1.6h-16.4c-0.9,0-1.6,0.7-1.6,1.6
|
||||
C143.7,32,144.4,32.7,145.3,32.7z"/>
|
||||
<path class="st2" d="M145.3,3.3h4.9v5l0,0l-5.8,4c-0.7,0.5-0.9,1.5-0.4,2.3c0.5,0.7,1.5,0.9,2.3,0.4l4.6-3.2c1.6,3.2,5.5,4.6,8.8,3
|
||||
c2.2-1.1,3.7-3.4,3.6-5.9V1.7l0,0c0-0.9-0.7-1.6-1.6-1.6l0,0h-16.4c-0.9,0-1.6,0.7-1.6,1.6C143.7,2.6,144.4,3.3,145.3,3.3
|
||||
L145.3,3.3z M160,8.9c0,1.8-1.5,3.3-3.3,3.3s-3.3-1.5-3.3-3.3V3.3h6.5V8.9z"/>
|
||||
<path class="st2" d="M161.7,75.6c-0.9,0-1.6,0.7-1.6,1.6l0,0v4.9h-14.7c-0.9,0-1.6,0.7-1.6,1.6l0,0l0,0c0,0.9,0.7,1.6,1.6,1.6l0,0
|
||||
H160v5c0,0.9,0.7,1.6,1.6,1.6s1.6-0.7,1.6-1.6v-6.6l0,0v-6.5C163.4,76.4,162.6,75.7,161.7,75.6C161.7,75.6,161.7,75.6,161.7,75.6z"
|
||||
/>
|
||||
<path class="st2" d="M153.5,46.4c-5.5,0-10,4.5-10,10s4.5,10,10,10s10-4.5,10-10S159.1,46.4,153.5,46.4z M153.5,63.2
|
||||
c-3.7,0-6.7-3-6.7-6.7c0-3.7,3-6.7,6.7-6.7c3.7,0,6.7,3,6.7,6.7v0C160.2,60.2,157.2,63.2,153.5,63.2L153.5,63.2z"/>
|
||||
<g class="st3">
|
||||
<path class="st2" d="M145.2,109h16.5c0.3,0,0.5,0.1,0.7,0.3c0.2,0.2,0.3,0.4,0.3,0.7c0,0.3-0.1,0.5-0.3,0.7
|
||||
c-0.2,0.2-0.5,0.3-0.7,0.3h-16.5c-0.3,0-0.5-0.1-0.7-0.3c-0.2-0.2-0.3-0.4-0.3-0.7c0-0.3,0.1-0.5,0.3-0.7
|
||||
C144.7,109.1,144.9,109,145.2,109z"/>
|
||||
</g>
|
||||
<g class="st3">
|
||||
<path class="st4" d="M145.2,109h16.5c0.3,0,0.5,0.1,0.7,0.3c0.2,0.2,0.3,0.4,0.3,0.7c0,0.3-0.1,0.5-0.3,0.7
|
||||
c-0.2,0.2-0.5,0.3-0.7,0.3h-16.5c-0.3,0-0.5-0.1-0.7-0.3c-0.2-0.2-0.3-0.4-0.3-0.7c0-0.3,0.1-0.5,0.3-0.7
|
||||
C144.7,109.1,144.9,109,145.2,109z"/>
|
||||
</g>
|
||||
<g class="st3">
|
||||
<path class="st2" d="M145.2,126h16.5c0.3,0,0.5,0.1,0.7,0.3c0.2,0.2,0.3,0.4,0.3,0.7v0.2c0,0.4-0.2,0.7-0.5,1l-9.8,6.5l9.8,6.5
|
||||
c0.4,0.2,0.5,0.5,0.5,1v0.2c0,0.3-0.1,0.5-0.3,0.7c-0.2,0.2-0.4,0.3-0.7,0.3h-16.5c-0.3,0-0.5-0.1-0.7-0.3
|
||||
c-0.2-0.2-0.3-0.4-0.3-0.7s0.1-0.5,0.3-0.7c0.2-0.2,0.5-0.3,0.7-0.3h13.7l-8.6-5.9c-0.3-0.2-0.5-0.5-0.5-0.9
|
||||
c0-0.3,0.2-0.6,0.5-0.9l8.6-5.8h-13.7c-0.3,0-0.5-0.1-0.7-0.3c-0.2-0.2-0.3-0.4-0.3-0.7c0-0.3,0.1-0.5,0.3-0.7
|
||||
C144.7,126.1,144.9,126,145.2,126z"/>
|
||||
</g>
|
||||
<g class="st3">
|
||||
<path class="st4" d="M145.2,126h16.5c0.3,0,0.5,0.1,0.7,0.3c0.2,0.2,0.3,0.4,0.3,0.7v0.2c0,0.4-0.2,0.7-0.5,1l-9.8,6.5l9.8,6.5
|
||||
c0.4,0.2,0.5,0.5,0.5,1v0.2c0,0.3-0.1,0.5-0.3,0.7c-0.2,0.2-0.4,0.3-0.7,0.3h-16.5c-0.3,0-0.5-0.1-0.7-0.3
|
||||
c-0.2-0.2-0.3-0.4-0.3-0.7s0.1-0.5,0.3-0.7c0.2-0.2,0.5-0.3,0.7-0.3h13.7l-8.6-5.9c-0.3-0.2-0.5-0.5-0.5-0.9
|
||||
c0-0.3,0.2-0.6,0.5-0.9l8.6-5.8h-13.7c-0.3,0-0.5-0.1-0.7-0.3c-0.2-0.2-0.3-0.4-0.3-0.7c0-0.3,0.1-0.5,0.3-0.7
|
||||
C144.7,126.1,144.9,126,145.2,126z"/>
|
||||
</g>
|
||||
<g class="st3">
|
||||
<path class="st2" d="M152.5,98.1c0.3,0,0.6,0.1,0.9,0.4s0.4,0.5,0.4,0.9c0,0.3-0.1,0.6-0.4,0.9c-0.2,0.2-0.5,0.4-0.9,0.4h-0.5
|
||||
c-0.3,0-0.6-0.1-0.9-0.4c-0.2-0.2-0.4-0.5-0.4-0.9c0-0.4,0.1-0.7,0.4-0.9s0.5-0.4,0.9-0.4H152.5z"/>
|
||||
</g>
|
||||
<g class="st3">
|
||||
<path class="st4" d="M152.5,98.1c0.3,0,0.6,0.1,0.9,0.4s0.4,0.5,0.4,0.9c0,0.3-0.1,0.6-0.4,0.9c-0.2,0.2-0.5,0.4-0.9,0.4h-0.5
|
||||
c-0.3,0-0.6-0.1-0.9-0.4c-0.2-0.2-0.4-0.5-0.4-0.9c0-0.4,0.1-0.7,0.4-0.9s0.5-0.4,0.9-0.4H152.5z"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 5.2 KiB |
153
res/home/images/matrix.svg
Normal file
@@ -0,0 +1,153 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14576) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
width="793.322px" height="340.809px" viewBox="0 0 793.322 340.809" enable-background="new 0 0 793.322 340.809"
|
||||
xml:space="preserve">
|
||||
<path opacity="0.5" fill="#FFFFFF" d="M34.004,340.809H2c-1.104,0-2-0.896-2-2V2c0-1.104,0.896-2,2-2h32.004c1.104,0,2,0.896,2,2
|
||||
v7.71c0,1.104-0.896,2-2,2h-21.13v317.386h21.13c1.104,0,2,0.896,2,2.001v7.712C36.004,339.913,35.108,340.809,34.004,340.809
|
||||
L34.004,340.809z"/>
|
||||
<path opacity="0.5" fill="#FFFFFF" d="M10.875,9.711v321.386h23.13v7.711H1.999V2.001h32.006v7.71H10.875z"/>
|
||||
<path opacity="0.5" fill="#FFFFFF" d="M252.402,233.711h-32.993c-1.104,0-2-0.896-2-2v-68.073c0-3.949-0.154-7.722-0.457-11.213
|
||||
c-0.289-3.282-1.074-6.153-2.332-8.53c-1.204-2.276-3.017-4.119-5.384-5.476c-2.393-1.362-5.775-2.056-10.042-2.056
|
||||
c-4.238,0-7.674,0.798-10.213,2.371c-2.565,1.596-4.604,3.701-6.053,6.258c-1.498,2.643-2.51,5.694-3.013,9.067
|
||||
c-0.526,3.513-0.793,7.125-0.793,10.741v66.91c0,1.104-0.896,2-2,2h-32.991c-1.104,0-2-0.896-2-2v-67.373
|
||||
c0-3.435-0.078-6.964-0.228-10.485c-0.148-3.251-0.767-6.278-1.841-8.995c-1.018-2.571-2.667-4.584-5.047-6.153
|
||||
c-2.372-1.552-6.029-2.341-10.865-2.341c-1.372,0-3.265,0.328-5.629,0.976c-2.28,0.624-4.536,1.826-6.705,3.577
|
||||
c-2.152,1.732-4.036,4.306-5.605,7.655c-1.569,3.356-2.367,7.877-2.367,13.438v69.701c0,1.104-0.895,2-2,2H68.857
|
||||
c-1.104,0-2-0.896-2-2V111.594c0-1.104,0.896-1.999,2-1.999h31.13c1.104,0,2,0.896,2,1.999v11.007
|
||||
c3.834-4.499,8.248-8.152,13.173-10.896c6.396-3.559,13.799-5.362,22.002-5.362c7.846,0,15.127,1.548,21.642,4.604
|
||||
c5.794,2.722,10.424,7.26,13.791,13.52c3.449-4.362,7.833-8.306,13.071-11.752c6.422-4.228,14.102-6.371,22.824-6.371
|
||||
c6.499,0,12.625,0.807,18.209,2.399c5.686,1.628,10.635,4.271,14.712,7.857c4.088,3.605,7.318,8.357,9.601,14.123
|
||||
c2.25,5.719,3.391,12.649,3.391,20.604v80.384C254.402,232.815,253.507,233.711,252.402,233.711L252.402,233.711z"/>
|
||||
<path opacity="0.5" fill="#FFFFFF" d="M99.988,111.595v16.264h0.463c4.338-6.191,9.563-10.998,15.684-14.406
|
||||
c6.117-3.402,13.129-5.11,21.027-5.11c7.588,0,14.521,1.475,20.793,4.415c6.274,2.945,11.038,8.131,14.291,15.567
|
||||
c3.56-5.265,8.4-9.913,14.521-13.94c6.117-4.025,13.358-6.042,21.724-6.042c6.351,0,12.234,0.776,17.66,2.325
|
||||
c5.418,1.549,10.065,4.027,13.938,7.434c3.869,3.41,6.889,7.863,9.062,13.357c2.167,5.504,3.253,12.122,3.253,19.869v80.385H219.41
|
||||
v-68.074c0-4.025-0.154-7.82-0.465-11.385c-0.313-3.56-1.161-6.656-2.555-9.293c-1.395-2.631-3.45-4.724-6.157-6.274
|
||||
c-2.711-1.543-6.391-2.322-11.037-2.322s-8.403,0.896-11.269,2.671c-2.868,1.784-5.112,4.109-6.737,6.971
|
||||
c-1.626,2.869-2.711,6.12-3.252,9.762c-0.545,3.638-0.814,7.318-0.814,11.035v66.91h-32.991v-67.375c0-3.562-0.081-7.087-0.23-10.57
|
||||
c-0.158-3.487-0.814-6.7-1.978-9.645c-1.162-2.94-3.099-5.304-5.809-7.088c-2.711-1.775-6.699-2.671-11.965-2.671
|
||||
c-1.551,0-3.603,0.349-6.156,1.048c-2.556,0.697-5.036,2.016-7.435,3.949c-2.404,1.938-4.454,4.726-6.158,8.363
|
||||
c-1.705,3.642-2.556,8.402-2.556,14.287v69.701h-32.99V111.595H99.988z"/>
|
||||
<path opacity="0.5" fill="#FFFFFF" d="M304.909,236.733c-5.883,0-11.46-0.729-16.574-2.163c-5.192-1.464-9.806-3.774-13.713-6.871
|
||||
c-3.944-3.117-7.068-7.111-9.282-11.871c-2.205-4.733-3.324-10.412-3.324-16.876c0-7.13,1.293-13.117,3.846-17.797
|
||||
c2.542-4.674,5.877-8.464,9.912-11.263c3.97-2.752,8.556-4.842,13.63-6.209c4.901-1.322,9.937-2.394,14.961-3.184
|
||||
c4.986-0.775,9.949-1.404,14.754-1.872c4.679-0.452,8.88-1.139,12.489-2.039c3.412-0.854,6.118-2.09,8.042-3.672
|
||||
c1.666-1.37,2.416-3.384,2.292-6.151c-0.002-3.289-0.502-5.816-1.492-7.595c-0.998-1.798-2.283-3.15-3.927-4.138
|
||||
c-1.703-1.02-3.725-1.713-6.012-2.062c-2.47-0.37-5.146-0.557-7.947-0.557c-6.034,0-10.789,1.271-14.135,3.783
|
||||
c-3.233,2.424-5.155,6.64-5.714,12.527c-0.098,1.026-0.961,1.812-1.992,1.812h-32.992c-0.552,0-1.079-0.229-1.457-0.629
|
||||
c-0.376-0.402-0.572-0.941-0.54-1.491c0.485-8.073,2.55-14.894,6.142-20.272c3.548-5.331,8.147-9.682,13.661-12.931
|
||||
c5.424-3.191,11.612-5.498,18.392-6.857c6.684-1.335,13.5-2.013,20.26-2.013c6.096,0,12.365,0.437,18.626,1.296
|
||||
c6.377,0.88,12.285,2.622,17.562,5.177c5.376,2.604,9.845,6.29,13.282,10.951c3.498,4.744,5.271,11.048,5.271,18.731v62.494
|
||||
c0,5.307,0.306,10.462,0.915,15.319c0.576,4.64,1.572,8.116,2.963,10.338c0.385,0.616,0.407,1.395,0.055,2.031
|
||||
c-0.353,0.635-1.022,1.03-1.75,1.03h-33.457c-0.861,0-1.624-0.55-1.898-1.367c-0.646-1.941-1.176-3.939-1.572-5.936
|
||||
c-0.141-0.696-0.267-1.402-0.38-2.12c-4.825,4.184-10.349,7.24-16.474,9.105C320.033,235.609,312.489,236.733,304.909,236.733
|
||||
L304.909,236.733z M341.941,176.661c-0.809,0.409-1.676,0.768-2.596,1.074c-2.161,0.72-4.511,1.326-6.988,1.807
|
||||
c-2.442,0.475-5.033,0.872-7.699,1.186c-2.631,0.311-5.251,0.697-7.784,1.146c-2.329,0.433-4.705,1.035-7.051,1.792
|
||||
c-2.194,0.711-4.114,1.667-5.699,2.842c-1.531,1.128-2.785,2.587-3.731,4.335c-0.917,1.709-1.385,3.97-1.385,6.719
|
||||
c0,2.598,0.465,4.778,1.385,6.481c0.928,1.722,2.142,3.035,3.716,4.018c1.644,1.026,3.601,1.757,5.816,2.17
|
||||
c2.344,0.439,4.799,0.663,7.297,0.663c6.105,0,10.836-0.996,14.063-2.961c3.244-1.973,5.666-4.349,7.199-7.062
|
||||
c1.568-2.78,2.542-5.62,2.892-8.436c0.376-3.019,0.565-5.436,0.565-7.187V176.661L341.941,176.661z"/>
|
||||
<path opacity="0.5" fill="#FFFFFF" d="M273.544,129.255c3.405-5.113,7.744-9.215,13.012-12.316
|
||||
c5.264-3.097,11.186-5.303,17.771-6.621c6.582-1.315,13.205-1.976,19.865-1.976c6.042,0,12.158,0.428,18.354,1.277
|
||||
c6.195,0.855,11.85,2.522,16.962,4.997c5.111,2.477,9.292,5.926,12.546,10.338c3.253,4.414,4.879,10.262,4.879,17.543v62.494
|
||||
c0,5.428,0.31,10.611,0.931,15.567c0.615,4.959,1.701,8.676,3.251,11.153H347.66c-0.621-1.86-1.126-3.755-1.511-5.693
|
||||
c-0.39-1.933-0.661-3.908-0.813-5.923c-5.267,5.422-11.465,9.217-18.585,11.386c-7.127,2.163-14.407,3.251-21.842,3.251
|
||||
c-5.733,0-11.077-0.698-16.033-2.09c-4.958-1.395-9.293-3.562-13.01-6.51c-3.718-2.938-6.622-6.656-8.713-11.147
|
||||
s-3.138-9.84-3.138-16.033c0-6.813,1.199-12.43,3.604-16.84c2.399-4.417,5.495-7.939,9.295-10.575
|
||||
c3.793-2.632,8.129-4.607,13.01-5.923c4.878-1.315,9.795-2.358,14.752-3.137c4.957-0.772,9.835-1.393,14.638-1.857
|
||||
c4.801-0.466,9.062-1.164,12.779-2.093c3.718-0.929,6.658-2.282,8.829-4.065c2.165-1.781,3.172-4.375,3.02-7.785
|
||||
c0-3.56-0.58-6.389-1.742-8.479c-1.161-2.09-2.711-3.719-4.646-4.88c-1.937-1.161-4.183-1.936-6.737-2.325
|
||||
c-2.557-0.382-5.309-0.58-8.248-0.58c-6.506,0-11.617,1.395-15.335,4.183c-3.716,2.788-5.889,7.437-6.506,13.94h-32.991
|
||||
C268.199,140.794,270.132,134.363,273.544,129.255z M338.713,175.838c-2.09,0.696-4.337,1.275-6.736,1.741
|
||||
c-2.402,0.465-4.918,0.853-7.551,1.161c-2.635,0.313-5.268,0.698-7.899,1.163c-2.48,0.461-4.919,1.086-7.317,1.857
|
||||
c-2.404,0.779-4.495,1.822-6.274,3.138c-1.784,1.317-3.216,2.985-4.3,4.994c-1.085,2.014-1.626,4.571-1.626,7.668
|
||||
c0,2.94,0.541,5.422,1.626,7.431c1.084,2.017,2.558,3.604,4.416,4.765s4.025,1.976,6.507,2.438c2.475,0.466,5.031,0.698,7.665,0.698
|
||||
c6.505,0,11.537-1.082,15.103-3.253c3.561-2.166,6.192-4.762,7.899-7.785c1.702-3.019,2.749-6.072,3.137-9.174
|
||||
c0.384-3.097,0.58-5.576,0.58-7.434v-12.316C342.547,174.173,340.805,175.14,338.713,175.838z"/>
|
||||
<path opacity="0.5" fill="#FFFFFF" d="M444.542,234.874c-5.187,0-10.173-0.361-14.823-1.069c-4.802-0.732-9.104-2.183-12.779-4.313
|
||||
c-3.789-2.185-6.821-5.341-9.006-9.375c-2.163-3.986-3.26-9.232-3.26-15.59v-68.859h-17.981c-1.104,0-2-0.896-2-1.999v-22.073
|
||||
c0-1.104,0.896-1.999,2-1.999h17.981V75.582c0-1.104,0.896-2,2-2h32.992c1.104,0,2,0.896,2,2v34.014h22.162c1.104,0,2,0.896,2,1.999
|
||||
v22.073c0,1.104-0.896,1.999-2,1.999h-22.162v57.479c0,6.229,1.198,8.731,2.202,9.733c1.004,1.007,3.506,2.205,9.738,2.205
|
||||
c1.804,0,3.542-0.076,5.161-0.225c1.604-0.144,3.174-0.367,4.669-0.665c0.13-0.026,0.261-0.039,0.391-0.039
|
||||
c0.458,0,0.907,0.159,1.27,0.454c0.463,0.379,0.73,0.946,0.73,1.546v25.555c0,0.979-0.707,1.813-1.672,1.974
|
||||
c-2.834,0.472-6.041,0.794-9.527,0.957C451.015,234.798,447.718,234.874,444.542,234.874L444.542,234.874z"/>
|
||||
<path opacity="0.5" fill="#FFFFFF" d="M463.825,111.595v22.072h-24.161v59.479c0,5.573,0.928,9.292,2.788,11.149
|
||||
c1.856,1.859,5.576,2.788,11.152,2.788c1.859,0,3.638-0.076,5.343-0.232c1.703-0.152,3.33-0.388,4.878-0.696v25.557
|
||||
c-2.788,0.465-5.887,0.773-9.293,0.931c-3.407,0.149-6.737,0.23-9.99,0.23c-5.111,0-9.953-0.35-14.521-1.048
|
||||
c-4.571-0.695-8.597-2.047-12.081-4.063c-3.486-2.011-6.236-4.88-8.248-8.597c-2.016-3.714-3.021-8.595-3.021-14.639v-70.859h-19.98
|
||||
v-22.072h19.98V75.583h32.992v36.012H463.825z"/>
|
||||
<path opacity="0.5" fill="#FFFFFF" d="M512.613,233.711h-32.991c-1.104,0-2-0.896-2-2V111.594c0-1.104,0.896-1.999,2-1.999h31.366
|
||||
c1.104,0,2,0.896,2,1.999v15.069c0.967-1.516,2.034-2.978,3.199-4.382c2.754-3.312,5.949-6.182,9.496-8.522
|
||||
c3.545-2.332,7.385-4.169,11.415-5.462c4.056-1.298,8.327-1.954,12.691-1.954c2.341,0,4.953,0.418,7.766,1.243
|
||||
c0.852,0.25,1.437,1.032,1.437,1.92v30.67c0,0.6-0.269,1.167-0.732,1.547c-0.361,0.296-0.808,0.452-1.265,0.452
|
||||
c-0.133,0-0.265-0.013-0.398-0.039c-1.484-0.3-3.299-0.565-5.392-0.787c-2.098-0.224-4.136-0.339-6.062-0.339
|
||||
c-5.706,0-10.572,0.95-14.467,2.823c-3.862,1.86-7.012,4.428-9.361,7.629c-2.389,3.263-4.115,7.12-5.127,11.47
|
||||
c-1.043,4.479-1.574,9.409-1.574,14.647v54.132C514.613,232.815,513.717,233.711,512.613,233.711L512.613,233.711z"/>
|
||||
<path opacity="0.5" fill="#FFFFFF" d="M510.988,111.595V133.9h0.465c1.546-3.72,3.636-7.163,6.272-10.341
|
||||
c2.634-3.172,5.652-5.885,9.06-8.131c3.405-2.242,7.047-3.985,10.923-5.228c3.868-1.237,7.898-1.859,12.081-1.859
|
||||
c2.168,0,4.566,0.39,7.202,1.163v30.67c-1.551-0.312-3.41-0.584-5.576-0.814c-2.17-0.233-4.26-0.35-6.274-0.35
|
||||
c-6.041,0-11.152,1.01-15.332,3.021c-4.182,2.014-7.55,4.761-10.107,8.247c-2.555,3.487-4.379,7.55-5.462,12.198
|
||||
c-1.083,4.645-1.625,9.682-1.625,15.102v54.133h-32.991V111.595H510.988z"/>
|
||||
<path opacity="0.5" fill="#FFFFFF" d="M603.923,233.711H570.93c-1.104,0-2-0.896-2-2V111.594c0-1.104,0.896-1.999,2-1.999h32.994
|
||||
c1.104,0,2,0.896,2,1.999v120.117C605.923,232.815,605.027,233.711,603.923,233.711L603.923,233.711z M603.923,95.006H570.93
|
||||
c-1.104,0-2-0.896-2-1.999V65.825c0-1.104,0.896-2,2-2h32.994c1.104,0,2,0.896,2,2v27.182
|
||||
C605.923,94.11,605.027,95.006,603.923,95.006L603.923,95.006z"/>
|
||||
<path opacity="0.5" fill="#FFFFFF" d="M570.93,93.007V65.824h32.994v27.183H570.93z M603.924,111.595v120.117H570.93V111.595
|
||||
H603.924z"/>
|
||||
<path opacity="0.5" fill="#FFFFFF" d="M742.163,233.711h-37.64c-0.671,0-1.297-0.335-1.667-0.896l-23.426-35.352l-23.426,35.352
|
||||
c-0.369,0.561-0.995,0.896-1.667,0.896h-36.938c-0.741,0-1.424-0.411-1.77-1.067c-0.345-0.654-0.3-1.449,0.118-2.061l42.435-62.055
|
||||
l-38.71-55.793c-0.424-0.613-0.474-1.408-0.128-2.069c0.343-0.658,1.028-1.071,1.771-1.071h37.636c0.665,0,1.287,0.33,1.658,0.882
|
||||
l19.477,28.893l19.255-28.884c0.372-0.556,0.996-0.891,1.665-0.891h36.475c0.746,0,1.43,0.415,1.776,1.078
|
||||
c0.343,0.66,0.289,1.46-0.139,2.071l-38.69,55.082l43.578,62.744c0.424,0.61,0.474,1.408,0.128,2.066
|
||||
C743.591,233.298,742.908,233.711,742.163,233.711L742.163,233.711z"/>
|
||||
<path opacity="0.5" fill="#FFFFFF" d="M621.115,111.595h37.637l21.144,31.365l20.911-31.365h36.476l-39.496,56.226l44.377,63.892
|
||||
h-37.64l-25.093-37.87l-25.094,37.87h-36.938l43.213-63.193L621.115,111.595z"/>
|
||||
<path opacity="0.5" fill="#FFFFFF" d="M791.322,340.809h-32.008c-1.105,0-2-0.896-2-2v-7.712c0-1.105,0.896-2.001,2-2.001h21.13
|
||||
V11.71h-21.13c-1.105,0-2-0.896-2-2V2c0-1.104,0.896-2,2-2h32.008c1.104,0,2,0.896,2,2v336.809
|
||||
C793.322,339.913,792.426,340.809,791.322,340.809L791.322,340.809z"/>
|
||||
<path opacity="0.5" fill="#FFFFFF" d="M782.443,331.097V9.711h-23.13v-7.71h32.008v336.807h-32.008v-7.711H782.443z"/>
|
||||
<path d="M10.875,9.711v321.386h23.13v7.711H1.999V2.001h32.006v7.71H10.875z"/>
|
||||
<path d="M99.988,111.595v16.264h0.463c4.338-6.191,9.563-10.998,15.684-14.406c6.117-3.402,13.129-5.11,21.027-5.11
|
||||
c7.588,0,14.521,1.475,20.793,4.415c6.274,2.945,11.038,8.131,14.291,15.567c3.56-5.265,8.4-9.913,14.521-13.94
|
||||
c6.117-4.025,13.358-6.042,21.724-6.042c6.351,0,12.234,0.776,17.66,2.325c5.418,1.549,10.065,4.027,13.938,7.434
|
||||
c3.869,3.41,6.889,7.863,9.062,13.357c2.167,5.504,3.253,12.122,3.253,19.869v80.385H219.41v-68.074
|
||||
c0-4.025-0.154-7.82-0.465-11.385c-0.313-3.56-1.161-6.656-2.555-9.293c-1.395-2.631-3.45-4.724-6.157-6.274
|
||||
c-2.711-1.543-6.391-2.322-11.037-2.322s-8.403,0.896-11.269,2.671c-2.868,1.784-5.112,4.109-6.737,6.971
|
||||
c-1.626,2.869-2.711,6.12-3.252,9.762c-0.545,3.638-0.814,7.318-0.814,11.035v66.91h-32.991v-67.375c0-3.562-0.081-7.087-0.23-10.57
|
||||
c-0.158-3.487-0.814-6.7-1.978-9.645c-1.162-2.94-3.099-5.304-5.809-7.088c-2.711-1.775-6.699-2.671-11.965-2.671
|
||||
c-1.551,0-3.603,0.349-6.156,1.048c-2.556,0.697-5.036,2.016-7.435,3.949c-2.404,1.938-4.454,4.726-6.158,8.363
|
||||
c-1.705,3.642-2.556,8.402-2.556,14.287v69.701h-32.99V111.595H99.988z"/>
|
||||
<path d="M273.544,129.255c3.405-5.113,7.744-9.215,13.012-12.316c5.264-3.097,11.186-5.303,17.771-6.621
|
||||
c6.582-1.315,13.205-1.976,19.865-1.976c6.042,0,12.158,0.428,18.354,1.277c6.195,0.855,11.85,2.522,16.962,4.997
|
||||
c5.111,2.477,9.292,5.926,12.546,10.338c3.253,4.414,4.879,10.262,4.879,17.543v62.494c0,5.428,0.31,10.611,0.931,15.567
|
||||
c0.615,4.959,1.701,8.676,3.251,11.153H347.66c-0.621-1.86-1.126-3.755-1.511-5.693c-0.39-1.933-0.661-3.908-0.813-5.923
|
||||
c-5.267,5.422-11.465,9.217-18.585,11.386c-7.127,2.163-14.407,3.251-21.842,3.251c-5.733,0-11.077-0.698-16.033-2.09
|
||||
c-4.958-1.395-9.293-3.562-13.01-6.51c-3.718-2.938-6.622-6.656-8.713-11.147s-3.138-9.84-3.138-16.033
|
||||
c0-6.813,1.199-12.43,3.604-16.84c2.399-4.417,5.495-7.939,9.295-10.575c3.793-2.632,8.129-4.607,13.01-5.923
|
||||
c4.878-1.315,9.795-2.358,14.752-3.137c4.957-0.772,9.835-1.393,14.638-1.857c4.801-0.466,9.062-1.164,12.779-2.093
|
||||
c3.718-0.929,6.658-2.282,8.829-4.065c2.165-1.781,3.172-4.375,3.02-7.785c0-3.56-0.58-6.389-1.742-8.479
|
||||
c-1.161-2.09-2.711-3.719-4.646-4.88c-1.937-1.161-4.183-1.936-6.737-2.325c-2.557-0.382-5.309-0.58-8.248-0.58
|
||||
c-6.506,0-11.617,1.395-15.335,4.183c-3.716,2.788-5.889,7.437-6.506,13.94h-32.991
|
||||
C268.199,140.794,270.132,134.363,273.544,129.255z M338.713,175.838c-2.09,0.696-4.337,1.275-6.736,1.741
|
||||
c-2.402,0.465-4.918,0.853-7.551,1.161c-2.635,0.313-5.268,0.698-7.899,1.163c-2.48,0.461-4.919,1.086-7.317,1.857
|
||||
c-2.404,0.779-4.495,1.822-6.274,3.138c-1.784,1.317-3.216,2.985-4.3,4.994c-1.085,2.014-1.626,4.571-1.626,7.668
|
||||
c0,2.94,0.541,5.422,1.626,7.431c1.084,2.017,2.558,3.604,4.416,4.765s4.025,1.976,6.507,2.438c2.475,0.466,5.031,0.698,7.665,0.698
|
||||
c6.505,0,11.537-1.082,15.103-3.253c3.561-2.166,6.192-4.762,7.899-7.785c1.702-3.019,2.749-6.072,3.137-9.174
|
||||
c0.384-3.097,0.58-5.576,0.58-7.434v-12.316C342.547,174.173,340.805,175.14,338.713,175.838z"/>
|
||||
<path d="M463.825,111.595v22.072h-24.161v59.479c0,5.573,0.928,9.292,2.788,11.149c1.856,1.859,5.576,2.788,11.152,2.788
|
||||
c1.859,0,3.638-0.076,5.343-0.232c1.703-0.152,3.33-0.388,4.878-0.696v25.557c-2.788,0.465-5.887,0.773-9.293,0.931
|
||||
c-3.407,0.149-6.737,0.23-9.99,0.23c-5.111,0-9.953-0.35-14.521-1.048c-4.571-0.695-8.597-2.047-12.081-4.063
|
||||
c-3.486-2.011-6.236-4.88-8.248-8.597c-2.016-3.714-3.021-8.595-3.021-14.639v-70.859h-19.98v-22.072h19.98V75.583h32.992v36.012
|
||||
H463.825z"/>
|
||||
<path d="M510.988,111.595V133.9h0.465c1.546-3.72,3.636-7.163,6.272-10.341c2.634-3.172,5.652-5.885,9.06-8.131
|
||||
c3.405-2.242,7.047-3.985,10.923-5.228c3.868-1.237,7.898-1.859,12.081-1.859c2.168,0,4.566,0.39,7.202,1.163v30.67
|
||||
c-1.551-0.312-3.41-0.584-5.576-0.814c-2.17-0.233-4.26-0.35-6.274-0.35c-6.041,0-11.152,1.01-15.332,3.021
|
||||
c-4.182,2.014-7.55,4.761-10.107,8.247c-2.555,3.487-4.379,7.55-5.462,12.198c-1.083,4.645-1.625,9.682-1.625,15.102v54.133h-32.991
|
||||
V111.595H510.988z"/>
|
||||
<path d="M570.93,93.007V65.824h32.994v27.183H570.93z M603.924,111.595v120.117H570.93V111.595H603.924z"/>
|
||||
<path d="M621.115,111.595h37.637l21.144,31.365l20.911-31.365h36.476l-39.496,56.226l44.377,63.892h-37.64l-25.093-37.87
|
||||
l-25.094,37.87h-36.938l43.213-63.193L621.115,111.595z"/>
|
||||
<path d="M782.443,331.097V9.711h-23.13v-7.71h32.008v336.807h-32.008v-7.711H782.443z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 16 KiB |
BIN
res/home/rooms/bridging.png
Normal file
|
After Width: | Height: | Size: 2.6 KiB |
BIN
res/home/rooms/dendrite-dev.png
Normal file
|
After Width: | Height: | Size: 3.5 KiB |
BIN
res/home/rooms/dendrite.png
Normal file
|
After Width: | Height: | Size: 3.5 KiB |
BIN
res/home/rooms/e2e.png
Normal file
|
After Width: | Height: | Size: 3.3 KiB |
BIN
res/home/rooms/homeowners.png
Normal file
|
After Width: | Height: | Size: 68 KiB |
BIN
res/home/rooms/identity.jpg
Normal file
|
After Width: | Height: | Size: 31 KiB |
BIN
res/home/rooms/identity.png
Normal file
|
After Width: | Height: | Size: 966 B |
BIN
res/home/rooms/irc.png
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
res/home/rooms/matrix-dev.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
res/home/rooms/matrix.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
res/home/rooms/riot-android.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
res/home/rooms/riot-bot.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
res/home/rooms/riot-dev.png
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
res/home/rooms/riot-ios.png
Normal file
|
After Width: | Height: | Size: 3.7 KiB |
BIN
res/home/rooms/riot-translations.png
Normal file
|
After Width: | Height: | Size: 146 B |
BIN
res/home/rooms/riot.png
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
BIN
res/home/rooms/synapse.png
Normal file
|
After Width: | Height: | Size: 146 B |
BIN
res/home/rooms/vr.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
res/home/rooms/webrtc.png
Normal file
|
After Width: | Height: | Size: 9.6 KiB |
1
scripts/check-i18n.pl
Symbolic link
@@ -0,0 +1 @@
|
||||
../../matrix-react-sdk/scripts/check-i18n.pl
|
||||
@@ -31,6 +31,8 @@ const INCLUDE_LANGS = [
|
||||
// "dest/b/...".
|
||||
const COPY_LIST = [
|
||||
["res/manifest.json", "webapp"],
|
||||
["res/home.html", "webapp"],
|
||||
["res/home/**", "webapp/home"],
|
||||
["res/{media,vector-icons}/**", "webapp"],
|
||||
["res/flags/*", "webapp/flags/"],
|
||||
["src/skins/vector/{fonts,img}/**", "webapp"],
|
||||
|
||||
@@ -18,6 +18,9 @@
|
||||
# - imagemagick --with-rsvg (because default imagemagick SVG
|
||||
# renderer does not produce accurate results)
|
||||
#
|
||||
# on macOS, this is most easily done with:
|
||||
# brew install imagemagick --with-librsvg
|
||||
#
|
||||
# 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.
|
||||
@@ -42,17 +45,18 @@ for f in region-flags/svg/*.svg; do
|
||||
|
||||
# Run imagemagick convert
|
||||
# -background none : transparent background
|
||||
# -thumbnail 25x15 : resize the flag to have a height of 15.
|
||||
# -resize 50x30 : resize the flag to have a height of 15px (2x)
|
||||
# By default, aspect ratio is respected so the width will
|
||||
# be correct and not necessarily 25px.
|
||||
# -filter Lanczos : use sharper resampling to avoid muddiness
|
||||
# -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
|
||||
# -extent 54x54 : surround the image with padding so that it
|
||||
# has the dimensions 27x27px (2x).
|
||||
convert $f -background none -filter Lanczos -resize 50x30 \
|
||||
-gravity Center -border 1 -bordercolor \#e0e0e0 \
|
||||
-extent 54x54 $f.png
|
||||
|
||||
# $f.png will be region-flags/svg/XX.svg.png at this point
|
||||
|
||||
@@ -61,6 +65,6 @@ for f in region-flags/svg/*.svg; do
|
||||
# Replace .svg with .png
|
||||
newname=${newname%.svg}.png
|
||||
# Move the file to flags directory
|
||||
mv $f.png res/flags/$newname
|
||||
mv $f.png ../res/flags/$newname
|
||||
echo "Generated res/flags/"$newname
|
||||
done
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
/*
|
||||
Copyright 2015, 2016 OpenMarket Ltd
|
||||
Copyright 2017 Vector Creations Ltd
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
@@ -14,21 +15,21 @@ See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
import React from 'react';
|
||||
import ReactDOM from 'react-dom';
|
||||
import sdk from 'matrix-react-sdk';
|
||||
import dis from 'matrix-react-sdk/lib/dispatcher';
|
||||
import AccessibleButton from 'matrix-react-sdk/lib/components/views/elements/AccessibleButton';
|
||||
import Velocity from 'velocity-vector';
|
||||
import 'velocity-vector/velocity.ui';
|
||||
|
||||
var React = require('react');
|
||||
var ReactDOM = require('react-dom');
|
||||
var sdk = require('matrix-react-sdk');
|
||||
import { _t } from 'matrix-react-sdk/lib/languageHandler';
|
||||
var dis = require('matrix-react-sdk/lib/dispatcher');
|
||||
var AccessibleButton = require('matrix-react-sdk/lib/components/views/elements/AccessibleButton');
|
||||
const CALLOUT_ANIM_DURATION = 1000;
|
||||
|
||||
module.exports = React.createClass({
|
||||
displayName: 'BottomLeftMenu',
|
||||
|
||||
propTypes: {
|
||||
collapsed: React.PropTypes.bool.isRequired,
|
||||
teamToken: React.PropTypes.string,
|
||||
},
|
||||
|
||||
getInitialState: function() {
|
||||
@@ -41,6 +42,18 @@ module.exports = React.createClass({
|
||||
});
|
||||
},
|
||||
|
||||
componentWillMount: function() {
|
||||
this._dispatcherRef = dis.register(this.onAction);
|
||||
this._peopleButton = null;
|
||||
this._directoryButton = null;
|
||||
this._createRoomButton = null;
|
||||
this._lastCallouts = {};
|
||||
},
|
||||
|
||||
componentWillUnmount: function() {
|
||||
dis.unregister(this._dispatcherRef);
|
||||
},
|
||||
|
||||
// Room events
|
||||
onDirectoryClick: function() {
|
||||
dis.dispatch({ action: 'view_room_directory' });
|
||||
@@ -105,6 +118,30 @@ module.exports = React.createClass({
|
||||
this.setState({ settingsHover: false });
|
||||
},
|
||||
|
||||
onAction: function(payload) {
|
||||
let calloutElement;
|
||||
switch (payload.action) {
|
||||
// Incoming instruction: dance!
|
||||
case 'callout_start_chat':
|
||||
calloutElement = this._peopleButton;
|
||||
break;
|
||||
case 'callout_room_directory':
|
||||
calloutElement = this._directoryButton;
|
||||
break;
|
||||
case 'callout_create_room':
|
||||
calloutElement = this._createRoomButton;
|
||||
break;
|
||||
}
|
||||
if (calloutElement) {
|
||||
const lastCallout = this._lastCallouts[payload.action];
|
||||
const now = Date.now();
|
||||
if (lastCallout == undefined || lastCallout < now - CALLOUT_ANIM_DURATION) {
|
||||
this._lastCallouts[payload.action] = now;
|
||||
Velocity(ReactDOM.findDOMNode(calloutElement), "callout.bounce", CALLOUT_ANIM_DURATION);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
// Get the label/tooltip to show
|
||||
getLabel: function(label, show) {
|
||||
if (show) {
|
||||
@@ -113,39 +150,41 @@ module.exports = React.createClass({
|
||||
}
|
||||
},
|
||||
|
||||
render: function() {
|
||||
var TintableSvg = sdk.getComponent('elements.TintableSvg');
|
||||
_collectPeopleButton: function(e) {
|
||||
this._peopleButton = e;
|
||||
},
|
||||
|
||||
var homeButton;
|
||||
if (this.props.teamToken) {
|
||||
homeButton = (
|
||||
<AccessibleButton className="mx_BottomLeftMenu_homePage" onClick={ this.onHomeClick } onMouseEnter={ this.onHomeMouseEnter } onMouseLeave={ this.onHomeMouseLeave } >
|
||||
<TintableSvg src="img/icons-home.svg" width="25" height="25" />
|
||||
{ this.getLabel(_t("Welcome page"), this.state.homeHover) }
|
||||
</AccessibleButton>
|
||||
);
|
||||
}
|
||||
_collectDirectoryButton: function(e) {
|
||||
this._directoryButton = e;
|
||||
},
|
||||
|
||||
_collectCreateRoomButton: function(e) {
|
||||
this._createRoomButton = e;
|
||||
},
|
||||
|
||||
render: function() {
|
||||
const HomeButton = sdk.getComponent('elements.HomeButton');
|
||||
const StartChatButton = sdk.getComponent('elements.StartChatButton');
|
||||
const RoomDirectoryButton = sdk.getComponent('elements.RoomDirectoryButton');
|
||||
const CreateRoomButton = sdk.getComponent('elements.CreateRoomButton');
|
||||
const SettingsButton = sdk.getComponent('elements.SettingsButton');
|
||||
|
||||
return (
|
||||
<div className="mx_BottomLeftMenu">
|
||||
<div className="mx_BottomLeftMenu_options">
|
||||
{ homeButton }
|
||||
<AccessibleButton className="mx_BottomLeftMenu_people" onClick={ this.onPeopleClick } onMouseEnter={ this.onPeopleMouseEnter } onMouseLeave={ this.onPeopleMouseLeave } >
|
||||
<TintableSvg src="img/icons-people.svg" width="25" height="25" />
|
||||
{ this.getLabel(_t("Start chat"), this.state.peopleHover) }
|
||||
</AccessibleButton>
|
||||
<AccessibleButton className="mx_BottomLeftMenu_directory" onClick={ this.onDirectoryClick } onMouseEnter={ this.onDirectoryMouseEnter } onMouseLeave={ this.onDirectoryMouseLeave } >
|
||||
<TintableSvg src="img/icons-directory.svg" width="25" height="25"/>
|
||||
{ this.getLabel(_t("Room directory"), this.state.directoryHover) }
|
||||
</AccessibleButton>
|
||||
<AccessibleButton className="mx_BottomLeftMenu_createRoom" onClick={ this.onRoomsClick } onMouseEnter={ this.onRoomsMouseEnter } onMouseLeave={ this.onRoomsMouseLeave } >
|
||||
<TintableSvg src="img/icons-create-room.svg" width="25" height="25" />
|
||||
{ this.getLabel(_t("Create new room"), this.state.roomsHover) }
|
||||
</AccessibleButton>
|
||||
<AccessibleButton className="mx_BottomLeftMenu_settings" onClick={ this.onSettingsClick } onMouseEnter={ this.onSettingsMouseEnter } onMouseLeave={ this.onSettingsMouseLeave } >
|
||||
<TintableSvg src="img/icons-settings.svg" width="25" height="25" />
|
||||
{ this.getLabel(_t("Settings"), this.state.settingsHover) }
|
||||
</AccessibleButton>
|
||||
<HomeButton tooltip={true} />
|
||||
<div ref={this._collectPeopleButton}>
|
||||
<StartChatButton tooltip={true} />
|
||||
</div>
|
||||
<div ref={this._collectDirectoryButton}>
|
||||
<RoomDirectoryButton tooltip={true} />
|
||||
</div>
|
||||
<div ref={this._collectCreateRoomButton}>
|
||||
<CreateRoomButton tooltip={true} />
|
||||
</div>
|
||||
<span className="mx_BottomLeftMenu_settings">
|
||||
<SettingsButton tooltip={true} />
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
|
||||
@@ -20,21 +20,74 @@ limitations under the License.
|
||||
import React from 'react';
|
||||
import MatrixClientPeg from 'matrix-react-sdk/lib/MatrixClientPeg';
|
||||
import sdk from 'matrix-react-sdk';
|
||||
import GeminiScrollbar from 'react-gemini-scrollbar';
|
||||
import request from 'browser-request';
|
||||
import { _t } from 'matrix-react-sdk/lib/languageHandler';
|
||||
import sanitizeHtml from 'sanitize-html';
|
||||
|
||||
module.exports = React.createClass({
|
||||
displayName: 'HomePage',
|
||||
|
||||
propTypes: {
|
||||
teamServerUrl: React.PropTypes.string.isRequired,
|
||||
teamToken: React.PropTypes.string.isRequired,
|
||||
collapsedRhs: React.PropTypes.bool,
|
||||
// URL base of the team server. Optional.
|
||||
teamServerUrl: React.PropTypes.string,
|
||||
// Team token. Optional. If set, used to get the static homepage of the team
|
||||
// associated. If unset, homePageUrl will be used.
|
||||
teamToken: React.PropTypes.string,
|
||||
// URL to use as the iFrame src. Defaults to /home.html.
|
||||
homePageUrl: React.PropTypes.string,
|
||||
},
|
||||
|
||||
getInitialState: function() {
|
||||
return {
|
||||
iframeSrc: '',
|
||||
page: '',
|
||||
};
|
||||
},
|
||||
|
||||
componentWillMount: function() {
|
||||
if (this.props.teamToken && this.props.teamServerUrl) {
|
||||
this.setState({
|
||||
iframeSrc: `${this.props.teamServerUrl}/static/${this.props.teamToken}/home.html`
|
||||
});
|
||||
}
|
||||
else {
|
||||
// we use request() to inline the homepage into the react component
|
||||
// so that it can inherit CSS and theming easily rather than mess around
|
||||
// with iframes and trying to synchronise document.stylesheets.
|
||||
|
||||
let src = this.props.homePageUrl || 'home.html';
|
||||
|
||||
request(
|
||||
{ method: "GET", url: src },
|
||||
(err, response, body) => {
|
||||
if (err || response.status < 200 || response.status >= 300) {
|
||||
console.log(err);
|
||||
this.setState({ page: "Couldn't load home page" });
|
||||
}
|
||||
|
||||
body = body.replace(/_t\(['"]([\s\S]*?)['"]\)/mg, (match, g1)=>{ return sanitizeHtml(_t(g1)) });
|
||||
this.setState({ page: body });
|
||||
}
|
||||
);
|
||||
}
|
||||
},
|
||||
|
||||
render: function() {
|
||||
return (
|
||||
<div className="mx_HomePage">
|
||||
<iframe src={`${this.props.teamServerUrl}/static/${this.props.teamToken}/home.html`}/>
|
||||
</div>
|
||||
);
|
||||
if (this.state.iframeSrc) {
|
||||
return (
|
||||
<div className="mx_HomePage">
|
||||
<iframe src={ this.state.iframeSrc } />
|
||||
</div>
|
||||
);
|
||||
}
|
||||
else {
|
||||
return (
|
||||
<GeminiScrollbar autoshow={true} className="mx_HomePage">
|
||||
<div className="mx_HomePage_body" dangerouslySetInnerHTML={{ __html: this.state.page }}>
|
||||
</div>
|
||||
</GeminiScrollbar>
|
||||
);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -21,16 +21,18 @@ var DragDropContext = require('react-dnd').DragDropContext;
|
||||
var HTML5Backend = require('react-dnd-html5-backend');
|
||||
var sdk = require('matrix-react-sdk')
|
||||
var dis = require('matrix-react-sdk/lib/dispatcher');
|
||||
import MatrixClientPeg from 'matrix-react-sdk/lib/MatrixClientPeg';
|
||||
|
||||
var VectorConferenceHandler = require('../../VectorConferenceHandler');
|
||||
var CallHandler = require("matrix-react-sdk/lib/CallHandler");
|
||||
|
||||
import AccessibleButton from 'matrix-react-sdk/lib/components/views/elements/AccessibleButton';
|
||||
|
||||
var LeftPanel = React.createClass({
|
||||
displayName: 'LeftPanel',
|
||||
|
||||
propTypes: {
|
||||
collapsed: React.PropTypes.bool.isRequired,
|
||||
teamToken: React.PropTypes.string,
|
||||
},
|
||||
|
||||
getInitialState: function() {
|
||||
@@ -97,17 +99,21 @@ var LeftPanel = React.createClass({
|
||||
render: function() {
|
||||
var RoomList = sdk.getComponent('rooms.RoomList');
|
||||
var BottomLeftMenu = sdk.getComponent('structures.BottomLeftMenu');
|
||||
var SearchBox = sdk.getComponent('structures.SearchBox');
|
||||
|
||||
var collapseButton;
|
||||
var topBox;
|
||||
if (MatrixClientPeg.get().isGuest()) {
|
||||
var LoginBox = sdk.getComponent('structures.LoginBox');
|
||||
topBox = <LoginBox collapsed={ this.props.collapsed }/>;
|
||||
}
|
||||
else {
|
||||
var SearchBox = sdk.getComponent('structures.SearchBox');
|
||||
topBox = <SearchBox collapsed={ this.props.collapsed } onSearch={ this.onSearch } />;
|
||||
}
|
||||
|
||||
var classes = "mx_LeftPanel mx_fadable";
|
||||
if (this.props.collapsed) {
|
||||
classes += " collapsed";
|
||||
}
|
||||
else {
|
||||
// Hide the collapse button until we work out how to display it in the new skin
|
||||
// collapseButton = <img className="mx_LeftPanel_hideButton" onClick={ this.onHideClick } src="img/hide.png" width="12" height="20" alt="<"/>
|
||||
}
|
||||
|
||||
var callPreview;
|
||||
if (this.state.showCallElement && !this.props.collapsed) {
|
||||
@@ -121,15 +127,14 @@ var LeftPanel = React.createClass({
|
||||
|
||||
return (
|
||||
<aside className={classes} style={{ opacity: this.props.opacity }}>
|
||||
<SearchBox collapsed={ this.props.collapsed } onSearch={ this.onSearch } />
|
||||
{ collapseButton }
|
||||
{ topBox }
|
||||
{ callPreview }
|
||||
<RoomList
|
||||
selectedRoom={this.props.selectedRoom}
|
||||
collapsed={this.props.collapsed}
|
||||
searchFilter={this.state.searchFilter}
|
||||
ConferenceHandler={VectorConferenceHandler} />
|
||||
<BottomLeftMenu collapsed={this.props.collapsed} teamToken={this.props.teamToken}/>
|
||||
<BottomLeftMenu collapsed={this.props.collapsed}/>
|
||||
</aside>
|
||||
);
|
||||
}
|
||||
|
||||
86
src/components/structures/LoginBox.js
Normal file
@@ -0,0 +1,86 @@
|
||||
/*
|
||||
Copyright 2017 Vector Creations Ltd
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
var React = require('react');
|
||||
import { _t } from 'matrix-react-sdk/lib/languageHandler';
|
||||
var sdk = require('matrix-react-sdk')
|
||||
var dis = require('matrix-react-sdk/lib/dispatcher');
|
||||
var rate_limited_func = require('matrix-react-sdk/lib/ratelimitedfunc');
|
||||
var AccessibleButton = require('matrix-react-sdk/lib/components/views/elements/AccessibleButton');
|
||||
|
||||
module.exports = React.createClass({
|
||||
displayName: 'LoginBox',
|
||||
|
||||
propTypes: {
|
||||
collapsed: React.PropTypes.bool,
|
||||
},
|
||||
|
||||
onToggleCollapse: function(show) {
|
||||
if (show) {
|
||||
dis.dispatch({
|
||||
action: 'show_left_panel',
|
||||
});
|
||||
}
|
||||
else {
|
||||
dis.dispatch({
|
||||
action: 'hide_left_panel',
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
onLoginClick: function() {
|
||||
dis.dispatch({ action: 'start_login' });
|
||||
},
|
||||
|
||||
render: function() {
|
||||
var TintableSvg = sdk.getComponent('elements.TintableSvg');
|
||||
|
||||
var toggleCollapse;
|
||||
if (this.props.collapsed) {
|
||||
toggleCollapse =
|
||||
<AccessibleButton className="mx_SearchBox_maximise" onClick={ this.onToggleCollapse.bind(this, true) }>
|
||||
<TintableSvg src="img/maximise.svg" width="10" height="16" alt="Expand panel"/>
|
||||
</AccessibleButton>
|
||||
}
|
||||
else {
|
||||
toggleCollapse =
|
||||
<AccessibleButton className="mx_SearchBox_minimise" onClick={ this.onToggleCollapse.bind(this, false) }>
|
||||
<TintableSvg src="img/minimise.svg" width="10" height="16" alt="Collapse panel"/>
|
||||
</AccessibleButton>
|
||||
}
|
||||
|
||||
var loginButton;
|
||||
if (!this.props.collapsed) {
|
||||
loginButton = (
|
||||
<div className="mx_LoginBox_loginButton_wrapper">
|
||||
<AccessibleButton className="mx_LoginBox_loginButton" element="button" onClick={this.onLoginClick}>
|
||||
{ _t("Login") }
|
||||
</AccessibleButton>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
var self = this;
|
||||
return (
|
||||
<div className="mx_SearchBox">
|
||||
{ loginButton }
|
||||
{ toggleCollapse }
|
||||
</div>
|
||||
);
|
||||
}
|
||||
});
|
||||
@@ -93,11 +93,7 @@ module.exports = React.createClass({
|
||||
|
||||
onInviteButtonClick: function() {
|
||||
if (MatrixClientPeg.get().isGuest()) {
|
||||
var NeedToRegisterDialog = sdk.getComponent("dialogs.NeedToRegisterDialog");
|
||||
Modal.createDialog(NeedToRegisterDialog, {
|
||||
title: _t('Please Register'),
|
||||
description: _t('Guest users can\'t invite users. Please register to invite.')
|
||||
});
|
||||
dis.dispatch({action: 'view_set_mxid'});
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -224,7 +220,7 @@ module.exports = React.createClass({
|
||||
<div className="mx_RightPanel_headerButton mx_RightPanel_collapsebutton" title={ _t("Hide panel") } onClick={ this.onCollapseClick }>
|
||||
<TintableSvg src="img/minimise.svg" width="10" height="16"/>
|
||||
</div>
|
||||
</div>;
|
||||
</div>;
|
||||
}
|
||||
|
||||
if (!this.props.collapsed) {
|
||||
|
||||
@@ -353,11 +353,7 @@ module.exports = React.createClass({
|
||||
// to the directory.
|
||||
if (MatrixClientPeg.get().isGuest()) {
|
||||
if (!room.world_readable && !room.guest_can_join) {
|
||||
var NeedToRegisterDialog = sdk.getComponent("dialogs.NeedToRegisterDialog");
|
||||
Modal.createDialog(NeedToRegisterDialog, {
|
||||
title: _t('Failed to join the room'),
|
||||
description: _t('This room is inaccessible to guests. You may be able to join if you register.')
|
||||
});
|
||||
dis.dispatch({action: 'view_set_mxid'});
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
/*
|
||||
Copyright 2017 Vector Creations Ltd
|
||||
Copyright 2015, 2016 OpenMarket Ltd
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
@@ -84,6 +85,8 @@ var RoomSubList = React.createClass({
|
||||
incomingCall: React.PropTypes.object,
|
||||
onShowMoreRooms: React.PropTypes.func,
|
||||
searchFilter: React.PropTypes.string,
|
||||
emptyContent: React.PropTypes.node, // content shown if the list is empty
|
||||
headerItems: React.PropTypes.node, // content shown in the sublist header
|
||||
},
|
||||
|
||||
getInitialState: function() {
|
||||
@@ -522,16 +525,15 @@ var RoomSubList = React.createClass({
|
||||
|
||||
render: function() {
|
||||
var connectDropTarget = this.props.connectDropTarget;
|
||||
var RoomDropTarget = sdk.getComponent('rooms.RoomDropTarget');
|
||||
var TruncatedList = sdk.getComponent('elements.TruncatedList');
|
||||
|
||||
var label = this.props.collapsed ? null : this.props.label;
|
||||
|
||||
//console.log("render: " + JSON.stringify(this.state.sortedList));
|
||||
|
||||
var target;
|
||||
if (this.state.sortedList.length == 0 && this.props.editable) {
|
||||
target = <RoomDropTarget label={ _t("Drop here %(toAction)s", {toAction: this.props.verb}) }/>;
|
||||
let content;
|
||||
if (this.state.sortedList.length == 0) {
|
||||
content = this.props.emptyContent;
|
||||
} else {
|
||||
content = this.makeRoomTiles();
|
||||
}
|
||||
|
||||
if (this.state.sortedList.length > 0 || this.props.editable) {
|
||||
@@ -541,8 +543,7 @@ var RoomSubList = React.createClass({
|
||||
if (!this.state.hidden) {
|
||||
subList = <TruncatedList className={ classes } truncateAt={this.state.truncateAt}
|
||||
createOverflowElement={this._createOverflowTile} >
|
||||
{ target }
|
||||
{ this.makeRoomTiles() }
|
||||
{ content }
|
||||
</TruncatedList>;
|
||||
}
|
||||
else {
|
||||
|
||||
118
src/components/views/dialogs/SetPasswordDialog.js
Normal file
@@ -0,0 +1,118 @@
|
||||
/*
|
||||
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.
|
||||
*/
|
||||
|
||||
import React from 'react';
|
||||
import sdk from 'matrix-react-sdk';
|
||||
import { _t } from 'matrix-react-sdk/lib/languageHandler';
|
||||
|
||||
|
||||
/**
|
||||
* Prompt the user to set a password
|
||||
*
|
||||
* On success, `onFinished()` when finished
|
||||
*/
|
||||
export default React.createClass({
|
||||
displayName: 'SetPasswordDialog',
|
||||
propTypes: {
|
||||
onFinished: React.PropTypes.func.isRequired,
|
||||
},
|
||||
|
||||
getInitialState: function() {
|
||||
return {
|
||||
error: null,
|
||||
success: false,
|
||||
};
|
||||
},
|
||||
|
||||
_onPasswordChanged: function() {
|
||||
this.setState({
|
||||
success: true,
|
||||
});
|
||||
},
|
||||
|
||||
_onContinueClicked: function() {
|
||||
this.props.onFinished(true);
|
||||
},
|
||||
|
||||
_onPasswordChangeError: function(err) {
|
||||
let errMsg = err.error || "";
|
||||
if (err.httpStatus === 403) {
|
||||
errMsg = _t('Failed to change password. Is your password correct?');
|
||||
} else if (err.httpStatus) {
|
||||
errMsg += _t(
|
||||
' (HTTP status %(httpStatus))',
|
||||
{ httpStatus: err.httpStatus },
|
||||
);
|
||||
}
|
||||
this.setState({
|
||||
error: errMsg,
|
||||
});
|
||||
},
|
||||
|
||||
render: function() {
|
||||
const BaseDialog = sdk.getComponent('views.dialogs.BaseDialog');
|
||||
const ChangePassword = sdk.getComponent('views.settings.ChangePassword');
|
||||
|
||||
if (this.state.success) {
|
||||
return (
|
||||
<BaseDialog className="mx_SetPasswordDialog"
|
||||
onFinished={this.props.onFinished}
|
||||
title={ _t('You have successfully set a password!') }
|
||||
>
|
||||
<div className="mx_Dialog_content">
|
||||
<p>
|
||||
{ _t('You can now return to your account after signing out, and sign in on other devices.') }
|
||||
</p>
|
||||
</div>
|
||||
<div className="mx_Dialog_buttons">
|
||||
<button
|
||||
className="mx_Dialog_primary"
|
||||
autoFocus={true}
|
||||
onClick={this._onContinueClicked}>
|
||||
{ _t('Continue') }
|
||||
</button>
|
||||
</div>
|
||||
</BaseDialog>
|
||||
);
|
||||
}
|
||||
|
||||
return (
|
||||
<BaseDialog className="mx_SetPasswordDialog"
|
||||
onFinished={this.props.onFinished}
|
||||
title={ _t('Please set a password!') }
|
||||
>
|
||||
<div className="mx_Dialog_content">
|
||||
<p>
|
||||
{ _t('This will allow you to return to your account after signing out, and sign in on other devices.') }
|
||||
</p>
|
||||
<ChangePassword
|
||||
className="mx_SetPasswordDialog_change_password"
|
||||
rowClassName=""
|
||||
rowLabelClassName=""
|
||||
rowInputClassName=""
|
||||
buttonClassName="mx_Dialog_primary mx_SetPasswordDialog_change_password_button"
|
||||
confirm={false}
|
||||
autoFocusNewPasswordInput={true}
|
||||
onError={this._onPasswordChangeError}
|
||||
onFinished={this._onPasswordChanged} />
|
||||
<div className="error">
|
||||
{ this.state.error }
|
||||
</div>
|
||||
</div>
|
||||
</BaseDialog>
|
||||
);
|
||||
},
|
||||
});
|
||||
@@ -1,54 +0,0 @@
|
||||
/*
|
||||
Copyright 2016 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.
|
||||
*/
|
||||
|
||||
var React = require('react');
|
||||
var dis = require('matrix-react-sdk/lib/dispatcher');
|
||||
import { _tJsx } from 'matrix-react-sdk/lib/languageHandler';
|
||||
|
||||
module.exports = React.createClass({
|
||||
displayName: 'GuestWarningBar',
|
||||
|
||||
onRegisterClicked: function() {
|
||||
dis.dispatch({'action': 'start_upgrade_registration'});
|
||||
},
|
||||
|
||||
onLoginClicked: function() {
|
||||
dis.dispatch({'action': 'logout'});
|
||||
dis.dispatch({'action': 'start_login'});
|
||||
},
|
||||
|
||||
render: function() {
|
||||
return (
|
||||
<div className="mx_GuestWarningBar">
|
||||
<img className="mx_GuestWarningBar_warning" src="img/warning.svg" width="24" height="23" alt="/!\"/>
|
||||
<div>
|
||||
{ _tJsx(
|
||||
"You are Rioting as a guest. <a>Register</a> or <a>sign in</a> to access more rooms and features!",
|
||||
[
|
||||
/<a>(.*?)<\/a>/,
|
||||
/<a>(.*?)<\/a>/
|
||||
],
|
||||
[
|
||||
(sub) => <a onClick={this.onRegisterClicked}>{sub}</a>,
|
||||
(sub) => <a onClick={this.onLoginClicked}>{sub}</a>
|
||||
]
|
||||
) }
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
60
src/components/views/globals/PasswordNagBar.js
Normal file
@@ -0,0 +1,60 @@
|
||||
/*
|
||||
Copyright 2017 Vector Creations Ltd
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
import React from 'react';
|
||||
import sdk from 'matrix-react-sdk';
|
||||
import Modal from 'matrix-react-sdk/lib/Modal';
|
||||
import dis from 'matrix-react-sdk/lib/dispatcher';
|
||||
|
||||
export default React.createClass({
|
||||
onUpdateClicked: function() {
|
||||
const SetPasswordDialog = sdk.getComponent('dialogs.SetPasswordDialog');
|
||||
Modal.createDialog(SetPasswordDialog, {
|
||||
onFinished: (passwordChanged) => {
|
||||
if (!passwordChanged) {
|
||||
return;
|
||||
}
|
||||
// Notify SessionStore that the user's password was changed
|
||||
dis.dispatch({
|
||||
action: 'password_changed',
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
render: function() {
|
||||
const AccessibleButton = sdk.getComponent('elements.AccessibleButton');
|
||||
const toolbarClasses = "mx_MatrixToolbar mx_MatrixToolbar_clickable";
|
||||
return (
|
||||
<div className={toolbarClasses} onClick={this.onUpdateClicked}>
|
||||
<img className="mx_MatrixToolbar_warning"
|
||||
src="img/warning.svg"
|
||||
width="24"
|
||||
height="23"
|
||||
alt="Warning"
|
||||
/>
|
||||
<div className="mx_MatrixToolbar_content">
|
||||
To return to your account in future you need to <u>set a password</u>
|
||||
</div>
|
||||
<button className="mx_MatrixToolbar_action">
|
||||
Set Password
|
||||
</button>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
});
|
||||
@@ -67,6 +67,7 @@
|
||||
"Invite to this room": "Invite to this room",
|
||||
"Keywords": "Keywords",
|
||||
"Leave": "Leave",
|
||||
"Login": "Login",
|
||||
"Loading bug report module": "Loading bug report module",
|
||||
"Low Priority": "Low Priority",
|
||||
"Members": "Members",
|
||||
@@ -160,5 +161,39 @@
|
||||
"OK": "OK",
|
||||
"You need to be using HTTPS to place a screen-sharing call.": "You need to be using HTTPS to place a screen-sharing call.",
|
||||
"Welcome page": "Welcome page",
|
||||
"With your current browser, the look and feel of the application may be completely incorrect, and some or all features may not function. If you want to try it anyway you can continue, but you are on your own in terms of any issues you may encounter!": "With your current browser, the look and feel of the application may be completely incorrect, and some or all features may not function. If you want to try it anyway you can continue, but you are on your own in terms of any issues you may encounter!"
|
||||
"With your current browser, the look and feel of the application may be completely incorrect, and some or all features may not function. If you want to try it anyway you can continue, but you are on your own in terms of any issues you may encounter!": "With your current browser, the look and feel of the application may be completely incorrect, and some or all features may not function. If you want to try it anyway you can continue, but you are on your own in terms of any issues you may encounter!",
|
||||
"Welcome to Riot.im": "Welcome to Riot.im",
|
||||
"Decentralised, encrypted chat & collaboration powered by": "Decentralised, encrypted chat & collaboration powered by",
|
||||
"Search the room directory": "Search the room directory",
|
||||
"Chat with Riot Bot": "Chat with Riot Bot",
|
||||
"Get started with some tips from Riot Bot!": "Get started with some tips from Riot Bot!",
|
||||
"General discussion about Matrix": "General discussion about Matrix",
|
||||
"Discussion of all things Matrix!": "Discussion of all things Matrix!",
|
||||
"Riot/Web & Desktop chat": "Riot/Web & Desktop chat",
|
||||
"Riot/iOS & matrix-ios-sdk chat": "Riot/iOS & matrix-ios-sdk chat",
|
||||
"Riot/Android & matrix-android-sdk chat": "Riot/Android & matrix-android-sdk chat",
|
||||
"Matrix technical discussions": "Matrix technical discussions",
|
||||
"Running Matrix services": "Running Matrix services",
|
||||
"Community-run support for Synapse": "Community-run support for Synapse",
|
||||
"Admin support for Dendrite": "Admin support for Dendrite",
|
||||
"Announcements about Synapse releases": "Announcements about Synapse releases",
|
||||
"Support for those using and running matrix-appservice-irc": "Support for those using and running matrix-appservice-irc",
|
||||
"Building services on Matrix": "Building services on Matrix",
|
||||
"Support for those using the Matrix spec": "Support for those using the Matrix spec",
|
||||
"Design and implementation of E2E in Matrix": "Design and implementation of E2E in Matrix",
|
||||
"Implementing VR services with Matrix": "Implementing VR services with Matrix",
|
||||
"Implementing VoIP services with Matrix": "Implementing VoIP services with Matrix",
|
||||
"Discussion of the Identity Service API": "Discussion of the Identity Service API",
|
||||
"Support for those using, running and writing other bridges": "Support for those using, running and writing other bridges",
|
||||
"Contributing code to Matrix and Riot": "Contributing code to Matrix and Riot",
|
||||
"Dev chat for the Riot/Web dev team": "Dev chat for the Riot/Web dev team",
|
||||
"Dev chat for the Dendrite dev team": "Dev chat for the Dendrite dev team",
|
||||
"Co-ordination for Riot/Web translators": "Co-ordination for Riot/Web translators",
|
||||
"Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!": "Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!",
|
||||
"Failed to change password. Is your password correct?": "Failed to change password. Is your password correct?",
|
||||
"You have successfully set a password!": "You have successfully set a password!",
|
||||
"You can now return to your account after signing out, and sign in on other devices.": "You can now return to your account after signing out, and sign in on other devices.",
|
||||
"Continue": "Continue",
|
||||
"Please set a password!": "Please set a password!",
|
||||
"This will allow you to return to your account after signing out, and sign in on other devices.": "This will allow you to return to your account after signing out, and sign in on other devices."
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
@import "./matrix-react-sdk/structures/_ContextualMenu.scss";
|
||||
@import "./matrix-react-sdk/structures/_CreateRoom.scss";
|
||||
@import "./matrix-react-sdk/structures/_FilePanel.scss";
|
||||
@import "./matrix-react-sdk/structures/_LoginBox.scss";
|
||||
@import "./matrix-react-sdk/structures/_MatrixChat.scss";
|
||||
@import "./matrix-react-sdk/structures/_NotificationPanel.scss";
|
||||
@import "./matrix-react-sdk/structures/_RoomStatusBar.scss";
|
||||
@@ -17,7 +18,7 @@
|
||||
@import "./matrix-react-sdk/views/dialogs/_ChatInviteDialog.scss";
|
||||
@import "./matrix-react-sdk/views/dialogs/_ConfirmUserActionDialog.scss";
|
||||
@import "./matrix-react-sdk/views/dialogs/_EncryptedEventDialog.scss";
|
||||
@import "./matrix-react-sdk/views/dialogs/_SetDisplayNameDialog.scss";
|
||||
@import "./matrix-react-sdk/views/dialogs/_SetMxIdDialog.scss";
|
||||
@import "./matrix-react-sdk/views/dialogs/_UnknownDeviceDialog.scss";
|
||||
@import "./matrix-react-sdk/views/elements/_AccessibleButton.scss";
|
||||
@import "./matrix-react-sdk/views/elements/_AddressSelector.scss";
|
||||
@@ -27,6 +28,7 @@
|
||||
@import "./matrix-react-sdk/views/elements/_MemberEventListSummary.scss";
|
||||
@import "./matrix-react-sdk/views/elements/_ProgressBar.scss";
|
||||
@import "./matrix-react-sdk/views/elements/_RichText.scss";
|
||||
@import "./matrix-react-sdk/views/elements/_RoleButton.scss";
|
||||
@import "./matrix-react-sdk/views/login/_InteractiveAuthEntryComponents.scss";
|
||||
@import "./matrix-react-sdk/views/login/_ServerConfig.scss";
|
||||
@import "./matrix-react-sdk/views/messages/_MEmoteBody.scss";
|
||||
@@ -69,10 +71,10 @@
|
||||
@import "./vector-web/views/context_menus/_MessageContextMenu.scss";
|
||||
@import "./vector-web/views/context_menus/_RoomTileContextMenu.scss";
|
||||
@import "./vector-web/views/dialogs/_ChangelogDialog.scss";
|
||||
@import "./vector-web/views/dialogs/_SetPasswordDialog.scss";
|
||||
@import "./vector-web/views/directory/_NetworkDropdown.scss";
|
||||
@import "./vector-web/views/elements/_ImageView.scss";
|
||||
@import "./vector-web/views/elements/_Spinner.scss";
|
||||
@import "./vector-web/views/globals/_GuestWarningBar.scss";
|
||||
@import "./vector-web/views/globals/_MatrixToolbar.scss";
|
||||
@import "./vector-web/views/messages/_MessageTimestamp.scss";
|
||||
@import "./vector-web/views/messages/_SenderProfile.scss";
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
Copyright 2015, 2016 OpenMarket Ltd
|
||||
Copyright 2017 OpenMarket Ltd
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
@@ -14,23 +14,23 @@ See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
.mx_GuestWarningBar {
|
||||
.mx_LoginBox_loginButton_wrapper {
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.mx_LoginBox_loginButton {
|
||||
margin-top: -8px;
|
||||
height: 40px;
|
||||
border: 0px;
|
||||
border-radius: 40px;
|
||||
padding-left: 1em;
|
||||
padding-right: 1em;
|
||||
|
||||
background-color: $accent-color;
|
||||
color: $accent-fg-color;
|
||||
color: $primary-bg-color;
|
||||
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.mx_GuestWarningBar_warning {
|
||||
margin-left: 16px;
|
||||
margin-right: 8px;
|
||||
margin-top: -2px;
|
||||
}
|
||||
|
||||
.mx_GuestWarningBar a {
|
||||
color: $accent-fg-color ! important;
|
||||
text-decoration: underline ! important;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
font-size: 15px;
|
||||
}
|
||||
@@ -41,12 +41,6 @@ limitations under the License.
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
.mx_GuestWarningBar {
|
||||
order: 1;
|
||||
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
.mx_MatrixChat_toolbarShowing {
|
||||
height: auto;
|
||||
}
|
||||
|
||||
@@ -20,8 +20,22 @@ limitations under the License.
|
||||
|
||||
.mx_ChatCreateOrReuseDialog .mx_Dialog_content {
|
||||
margin-bottom: 24px;
|
||||
|
||||
/*
|
||||
To stop spinner that mx_ChatCreateOrReuseDialog_profile replaces from causing a
|
||||
height change
|
||||
*/
|
||||
min-height: 100px;
|
||||
}
|
||||
|
||||
.mx_ChatCreateOrReuseDialog .mx_RoomTile_badge {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.mx_ChatCreateOrReuseDialog_profile {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.mx_ChatCreateOrReuseDialog_profile_name {
|
||||
padding: 14px;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
/*
|
||||
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.
|
||||
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_SetMxIdDialog .mx_Dialog_title {
|
||||
padding-right: 40px;
|
||||
}
|
||||
|
||||
.mx_SetMxIdDialog_input_group {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.mx_SetMxIdDialog_input {
|
||||
border-radius: 3px;
|
||||
border: 1px solid $input-border-color;
|
||||
padding: 9px;
|
||||
color: $primary-fg-color;
|
||||
background-color: $primary-bg-color;
|
||||
font-size: 15px;
|
||||
width: 100%;
|
||||
max-width: 280px;
|
||||
}
|
||||
|
||||
.mx_SetMxIdDialog_input.error,
|
||||
.mx_SetMxIdDialog_input.error:focus {
|
||||
border: 1px solid $warning-color;
|
||||
}
|
||||
|
||||
.mx_SetMxIdDialog_input_group .mx_Spinner {
|
||||
height: 37px;
|
||||
padding-left: 10px;
|
||||
justify-content: flex-start;
|
||||
}
|
||||
|
||||
.mx_SetMxIdDialog .success {
|
||||
color: $accent-color;
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
/*
|
||||
Copyright 2107 Vector Creations Ltd
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
.mx_RoleButton {
|
||||
margin-left: 4px;
|
||||
margin-right: 4px;
|
||||
cursor: pointer;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.mx_RoleButton object {
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.mx_RoleButton_tooltip {
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
top: -25px;
|
||||
left: 6px;
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
/*
|
||||
Copyright 2015, 2016 OpenMarket Ltd
|
||||
Copyright 2107 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.
|
||||
@@ -37,3 +38,25 @@ limitations under the License.
|
||||
.mx_RoomList_scrollbar .gm-scrollbar.-vertical {
|
||||
z-index: 6;
|
||||
}
|
||||
|
||||
.mx_RoomList_emptySubListTip {
|
||||
font-size: 13px;
|
||||
margin-left: 18px;
|
||||
margin-right: 18px;
|
||||
margin-top: 8px;
|
||||
margin-bottom: 7px;
|
||||
padding: 5px;
|
||||
border: 1px dashed $accent-color;
|
||||
color: $primary-fg-color;
|
||||
background-color: $droptarget-bg-color;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.mx_RoomList_emptySubListTip .mx_RoleButton {
|
||||
vertical-align: -3px;
|
||||
}
|
||||
|
||||
.mx_RoomList_headerButtons {
|
||||
position: absolute;
|
||||
right: 60px;
|
||||
}
|
||||
|
||||
@@ -30,5 +30,5 @@ limitations under the License.
|
||||
}
|
||||
|
||||
.mx_HomePage_body {
|
||||
margin-left: 63px;
|
||||
// margin-left: 63px;
|
||||
}
|
||||
|
||||
@@ -64,47 +64,33 @@ limitations under the License.
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.mx_LeftPanel .mx_BottomLeftMenu_homePage,
|
||||
.mx_LeftPanel .mx_BottomLeftMenu_directory,
|
||||
.mx_LeftPanel .mx_BottomLeftMenu_createRoom,
|
||||
.mx_LeftPanel .mx_BottomLeftMenu_people,
|
||||
.mx_LeftPanel .mx_BottomLeftMenu_settings {
|
||||
display: inline-block;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.collapsed .mx_BottomLeftMenu_homePage,
|
||||
.collapsed .mx_BottomLeftMenu_directory,
|
||||
.collapsed .mx_BottomLeftMenu_createRoom,
|
||||
.collapsed .mx_BottomLeftMenu_people,
|
||||
.collapsed .mx_BottomLeftMenu_settings {
|
||||
.collapsed .mx_RoleButton {
|
||||
margin-right: 0px ! important;
|
||||
padding-top: 3px ! important;
|
||||
padding-bottom: 3px ! important;
|
||||
}
|
||||
|
||||
.mx_LeftPanel .mx_BottomLeftMenu_homePage,
|
||||
.mx_LeftPanel .mx_BottomLeftMenu_directory,
|
||||
.mx_LeftPanel .mx_BottomLeftMenu_createRoom,
|
||||
.mx_LeftPanel .mx_BottomLeftMenu_people {
|
||||
.mx_BottomLeftMenu_options > div {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.mx_BottomLeftMenu_options .mx_RoleButton {
|
||||
margin-left: 0px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.mx_LeftPanel .mx_BottomLeftMenu_settings {
|
||||
.mx_BottomLeftMenu_options .mx_BottomLeftMenu_settings {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.mx_BottomLeftMenu_options .mx_BottomLeftMenu_settings .mx_RoleButton {
|
||||
margin-right: 0px;
|
||||
}
|
||||
|
||||
.mx_LeftPanel.collapsed .mx_BottomLeftMenu_settings {
|
||||
float: none;
|
||||
}
|
||||
|
||||
.mx_LeftPanel .mx_BottomLeftMenu_tooltip {
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
top: -25px;
|
||||
left: 6px;
|
||||
}
|
||||
|
||||
.mx_MatrixChat_useCompactLayout {
|
||||
.mx_LeftPanel .mx_BottomLeftMenu {
|
||||
flex: 0 0 50px;
|
||||
|
||||
@@ -1,5 +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.
|
||||
@@ -14,11 +14,22 @@ See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
.mx_SetDisplayNameDialog_input {
|
||||
.mx_SetPasswordDialog_change_password input {
|
||||
border-radius: 3px;
|
||||
border: 1px solid $input-border-color;
|
||||
padding: 9px;
|
||||
color: $primary-fg-color;
|
||||
background-color: $primary-bg-color;
|
||||
font-size: 15px;
|
||||
}
|
||||
width: 100%;
|
||||
max-width: 280px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.mx_SetPasswordDialog_change_password_button {
|
||||
margin-top: 68px;
|
||||
}
|
||||
|
||||
.mx_SetPasswordDialog .mx_Dialog_content {
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
@@ -39,6 +39,10 @@ limitations under the License.
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.mx_MatrixToolbar_clickable {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.mx_MatrixToolbar_close {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
@@ -88,13 +88,13 @@ describe('joining a room', function () {
|
||||
var mc = (
|
||||
<MatrixChat config={{}}
|
||||
makeRegistrationUrl={()=>{throw new Error("unimplemented");}}
|
||||
initialScreenAfterLogin={{
|
||||
screen: 'directory',
|
||||
}}
|
||||
/>
|
||||
);
|
||||
matrixChat = ReactDOM.render(mc, parentDiv);
|
||||
|
||||
// switch to the Directory
|
||||
matrixChat._setPage(PageTypes.RoomDirectory);
|
||||
|
||||
var roomView;
|
||||
|
||||
// wait for /sync to happen. This may take some time, as the client
|
||||
@@ -138,7 +138,11 @@ describe('joining a room', function () {
|
||||
httpBackend.when('GET', '/directory/room/'+encodeURIComponent(ROOM_ALIAS)).respond(200, { room_id: ROOM_ID });
|
||||
httpBackend.when('GET', '/rooms/'+encodeURIComponent(ROOM_ID)+"/initialSync")
|
||||
.respond(401, {errcode: 'M_GUEST_ACCESS_FORBIDDEN'});
|
||||
return httpBackend.flush();
|
||||
|
||||
return q.all([
|
||||
httpBackend.flush('/directory/room/'+encodeURIComponent(ROOM_ALIAS)),
|
||||
httpBackend.flush('/rooms/'+encodeURIComponent(ROOM_ID)+"/initialSync"),
|
||||
]);
|
||||
}).then(() => {
|
||||
httpBackend.verifyNoOutstandingExpectation();
|
||||
|
||||
@@ -146,30 +150,27 @@ describe('joining a room', function () {
|
||||
roomView = ReactTestUtils.findRenderedComponentWithType(
|
||||
matrixChat, RoomView);
|
||||
|
||||
var previewBar = ReactTestUtils.findRenderedComponentWithType(
|
||||
const previewBar = ReactTestUtils.findRenderedComponentWithType(
|
||||
roomView, RoomPreviewBar);
|
||||
|
||||
var joinLink = ReactTestUtils.findRenderedDOMComponentWithTag(
|
||||
const joinLink = ReactTestUtils.findRenderedDOMComponentWithTag(
|
||||
previewBar, 'a');
|
||||
|
||||
ReactTestUtils.Simulate.click(joinLink);
|
||||
|
||||
// that will fire off a request to check our displayname, followed by a
|
||||
// join request
|
||||
httpBackend.when('GET', '/profile/'+encodeURIComponent(USER_ID))
|
||||
.respond(200, {displayname: 'boris'});
|
||||
httpBackend.when('POST', '/join/'+encodeURIComponent(ROOM_ALIAS))
|
||||
httpBackend.when('POST', '/join/'+encodeURIComponent(ROOM_ID))
|
||||
.respond(200, {room_id: ROOM_ID});
|
||||
return httpBackend.flush();
|
||||
}).then(() => {
|
||||
// wait for the join request to be made
|
||||
return q.delay(1);
|
||||
}).then(() => {
|
||||
// flush it through
|
||||
return httpBackend.flush();
|
||||
// and again, because the state update has to go to the store and
|
||||
// then one dispatch within the store, then to the view
|
||||
// XXX: This is *super flaky*: a better way would be to declare
|
||||
// that we expect a certain state transition to happen, then wait
|
||||
// for that transition to occur.
|
||||
return q.delay(1);
|
||||
}).then(() => {
|
||||
httpBackend.verifyNoOutstandingExpectation();
|
||||
|
||||
// the roomview should now be loading
|
||||
expect(roomView.state.room).toBe(null);
|
||||
expect(roomView.state.joining).toBe(true);
|
||||
@@ -178,6 +179,16 @@ describe('joining a room', function () {
|
||||
ReactTestUtils.findRenderedDOMComponentWithClass(
|
||||
roomView, "mx_Spinner");
|
||||
|
||||
// flush it through
|
||||
return httpBackend.flush('/join/'+encodeURIComponent(ROOM_ID));
|
||||
}).then(() => {
|
||||
httpBackend.verifyNoOutstandingExpectation();
|
||||
|
||||
return q.delay(1);
|
||||
}).then(() => {
|
||||
// We've joined, expect this to false
|
||||
expect(roomView.state.joining).toBe(false);
|
||||
|
||||
// now send the room down the /sync pipe
|
||||
httpBackend.when('GET', '/sync').
|
||||
respond(200, {
|
||||
@@ -197,7 +208,6 @@ describe('joining a room', function () {
|
||||
}).then(() => {
|
||||
// now the room should have loaded
|
||||
expect(roomView.state.room).toExist();
|
||||
expect(roomView.state.joining).toBe(false);
|
||||
}).done(done, done);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -122,7 +122,7 @@ describe('loading:', function () {
|
||||
function routeUrl(location, matrixChat) {
|
||||
console.log(Date.now() + ` routing URL '${location}'`);
|
||||
const s = getScreenFromLocation(location);
|
||||
console.log("Showing screen "+ s);
|
||||
console.log("Showing screen ", s);
|
||||
matrixChat.showScreen(s.screen, s.params);
|
||||
}
|
||||
|
||||
@@ -196,7 +196,7 @@ describe('loading:', function () {
|
||||
// Wait for another trip around the event loop for the UI to update
|
||||
return q.delay(1);
|
||||
}).then(() => {
|
||||
// we expect a single <Login> component
|
||||
// we expect a single <Login> component following session load
|
||||
ReactTestUtils.findRenderedComponentWithType(
|
||||
matrixChat, sdk.getComponent('structures.login.Login'));
|
||||
expect(windowLocation.hash).toEqual("");
|
||||
@@ -273,7 +273,7 @@ describe('loading:', function () {
|
||||
localStorage.setItem("mx_user_id", "@me:localhost");
|
||||
});
|
||||
|
||||
it('shows a directory by default if we have no joined rooms', function(done) {
|
||||
it('shows a home page by default if we have no joined rooms', function(done) {
|
||||
httpBackend.when('GET', '/pushrules').respond(200, {});
|
||||
httpBackend.when('POST', '/filter').respond(200, { filter_id: 'fid' });
|
||||
|
||||
@@ -283,11 +283,11 @@ describe('loading:', function () {
|
||||
// we got a sync spinner - let the sync complete
|
||||
return expectAndAwaitSync();
|
||||
}).then(() => {
|
||||
// once the sync completes, we should have a directory
|
||||
// once the sync completes, we should have a home page
|
||||
httpBackend.verifyNoOutstandingExpectation();
|
||||
ReactTestUtils.findRenderedComponentWithType(
|
||||
matrixChat, sdk.getComponent('structures.RoomDirectory'));
|
||||
expect(windowLocation.hash).toEqual("#/directory");
|
||||
matrixChat, sdk.getComponent('structures.HomePage'));
|
||||
expect(windowLocation.hash).toEqual("#/home");
|
||||
}).done(done, done);
|
||||
});
|
||||
|
||||
@@ -314,7 +314,7 @@ describe('loading:', function () {
|
||||
});
|
||||
|
||||
describe('Guest auto-registration:', function() {
|
||||
it('shows a directory by default', function (done) {
|
||||
it('shows a home page by default', function (done) {
|
||||
loadApp();
|
||||
|
||||
q.delay(1).then(() => {
|
||||
@@ -336,11 +336,11 @@ describe('loading:', function () {
|
||||
// we got a sync spinner - let the sync complete
|
||||
return expectAndAwaitSync();
|
||||
}).then(() => {
|
||||
// once the sync completes, we should have a directory
|
||||
// once the sync completes, we should have a home page
|
||||
httpBackend.verifyNoOutstandingExpectation();
|
||||
ReactTestUtils.findRenderedComponentWithType(
|
||||
matrixChat, sdk.getComponent('structures.RoomDirectory'));
|
||||
expect(windowLocation.hash).toEqual("#/directory");
|
||||
matrixChat, sdk.getComponent('structures.HomePage'));
|
||||
expect(windowLocation.hash).toEqual("#/home");
|
||||
}).done(done, done);
|
||||
});
|
||||
|
||||
@@ -371,11 +371,11 @@ describe('loading:', function () {
|
||||
}).then((req) => {
|
||||
expect(req.path).toMatch(new RegExp("^https://homeserver/"));
|
||||
|
||||
// once the sync completes, we should have a directory
|
||||
// once the sync completes, we should have a home page
|
||||
httpBackend.verifyNoOutstandingExpectation();
|
||||
ReactTestUtils.findRenderedComponentWithType(
|
||||
matrixChat, sdk.getComponent('structures.RoomDirectory'));
|
||||
expect(windowLocation.hash).toEqual("#/directory");
|
||||
matrixChat, sdk.getComponent('structures.HomePage'));
|
||||
expect(windowLocation.hash).toEqual("#/home");
|
||||
expect(MatrixClientPeg.get().baseUrl).toEqual("https://homeserver");
|
||||
expect(MatrixClientPeg.get().idBaseUrl).toEqual("https://idserver");
|
||||
}).done(done, done);
|
||||
|
||||