ソースを参照

Merge jitsi-meet-react's mobile support

As a step toward merging jitsi-meet-react with jitsi-meet to share as
much source code as possible between mobile and Web, merge the part of
jitsi-meet-react's source tree which supports mobile inside the
jitsi-meet source tree and leave jitsi-meet-react's Web support in the
source code revision history but don't have it in master anymore because
it's different from jitsi-meet's Web support. In other words, the two
projects are mechanically merged at the file level and don't really
share source code between mobile and Web.
master
Lyubomir Marinov 8年前
コミット
7f3ff13c18
100個のファイルの変更76行の追加3983行の削除
  1. 0
    0
      .buckconfig
  2. 47
    4
      .gitignore
  3. 4
    3
      .jshintignore
  4. 0
    0
      .watchmanconfig
  5. 0
    0
      android/app/BUCK
  6. 0
    0
      android/app/build.gradle
  7. 0
    0
      android/app/proguard-rules.pro
  8. 0
    0
      android/app/src/main/AndroidManifest.xml
  9. 0
    0
      android/app/src/main/assets/fonts/FontAwesome.ttf
  10. 0
    0
      android/app/src/main/java/org/jitsi/jitsi_meet_react/MainActivity.java
  11. 0
    0
      android/app/src/main/java/org/jitsi/jitsi_meet_react/MainApplication.java
  12. 0
    0
      android/app/src/main/res/mipmap-hdpi/ic_launcher.png
  13. 0
    0
      android/app/src/main/res/mipmap-mdpi/ic_launcher.png
  14. 0
    0
      android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
  15. 0
    0
      android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
  16. 0
    0
      android/app/src/main/res/values/strings.xml
  17. 0
    0
      android/app/src/main/res/values/styles.xml
  18. 0
    0
      android/build.gradle
  19. 0
    0
      android/gradle.properties
  20. 0
    0
      android/gradle/wrapper/gradle-wrapper.jar
  21. 0
    0
      android/gradle/wrapper/gradle-wrapper.properties
  22. 0
    0
      android/gradlew
  23. 0
    0
      android/gradlew.bat
  24. 0
    0
      android/keystores/BUCK
  25. 0
    0
      android/keystores/debug.keystore.properties
  26. 0
    0
      android/settings.gradle
  27. 0
    0
      doc/coding-style.md
  28. 1
    0
      index.android.js
  29. 1
    0
      index.ios.js
  30. 0
    0
      ios/app/AppDelegate.h
  31. 0
    0
      ios/app/AppDelegate.m
  32. 0
    0
      ios/app/Base.lproj/LaunchScreen.xib
  33. 0
    0
      ios/app/Images.xcassets/AppIcon.appiconset/AppIcon-29@2x.png
  34. 0
    0
      ios/app/Images.xcassets/AppIcon.appiconset/AppIcon-29@3x.png
  35. 0
    0
      ios/app/Images.xcassets/AppIcon.appiconset/AppIcon-40@2x.png
  36. 0
    0
      ios/app/Images.xcassets/AppIcon.appiconset/AppIcon-40@3x.png
  37. 0
    0
      ios/app/Images.xcassets/AppIcon.appiconset/AppIcon-60@2x.png
  38. 0
    0
      ios/app/Images.xcassets/AppIcon.appiconset/AppIcon-60@3x.png
  39. 0
    0
      ios/app/Images.xcassets/AppIcon.appiconset/Contents.json
  40. 0
    0
      ios/app/Info.plist
  41. 0
    0
      ios/app/main.m
  42. 0
    0
      ios/apple-app-site-association
  43. 0
    0
      ios/jitsi-meet-react.entitlements
  44. 1
    1
      ios/jitsi-meet-react.xcodeproj/project.pbxproj
  45. 0
    0
      ios/jitsi-meet-react.xcodeproj/xcshareddata/xcschemes/jitsi-meet-react.xcscheme
  46. 13
    1
      package.json
  47. 0
    58
      react/.flowconfig
  48. 0
    44
      react/.gitignore
  49. 0
    219
      react/LICENSE
  50. 0
    7
      react/README.md
  51. 0
    5
      react/debian/changelog
  52. 0
    1
      react/debian/compat
  53. 0
    73
      react/debian/config.js
  54. 0
    20
      react/debian/control
  55. 0
    13
      react/debian/copyright
  56. 0
    10
      react/debian/jitsi-meet-react.README
  57. 0
    8
      react/debian/jitsi-meet-react.README.Debian
  58. 0
    8
      react/debian/jitsi-meet-react.config
  59. 0
    1
      react/debian/jitsi-meet-react.dirs
  60. 0
    4
      react/debian/jitsi-meet-react.docs
  61. 0
    1
      react/debian/jitsi-meet-react.install
  62. 0
    200
      react/debian/jitsi-meet-react.postinst
  63. 0
    58
      react/debian/jitsi-meet-react.postrm
  64. 0
    32
      react/debian/jitsi-meet-react.templates
  65. 0
    42
      react/debian/jitsi-meet.example
  66. 0
    1
      react/debian/po/POTFILES.in
  67. 0
    98
      react/debian/po/templates.pot
  68. 0
    14
      react/debian/rules
  69. 0
    1
      react/debian/source/format
  70. バイナリ
      react/favicon.ico
  71. 0
    139
      react/features/app/components/App.web.js
  72. 0
    0
      react/features/base/lib-jitsi-meet/_.web.js
  73. 9
    1
      react/features/base/lib-jitsi-meet/index.js
  74. 0
    1
      react/features/base/media/components/_.web.js
  75. 0
    50
      react/features/base/media/components/web/Audio.js
  76. 0
    68
      react/features/base/media/components/web/Video.js
  77. 0
    20
      react/features/base/media/components/web/VideoTrack.js
  78. 0
    3
      react/features/base/media/components/web/index.js
  79. 0
    24
      react/features/base/media/components/web/styles.js
  80. 0
    43
      react/features/base/react/components/Container.web.js
  81. 0
    1
      react/features/base/styles/components/_.web.js
  82. 0
    1
      react/features/base/styles/components/web/index.js
  83. 0
    2207
      react/features/base/styles/components/web/styles/FontAwesome.css
  84. 0
    1
      react/features/base/styles/components/web/styles/index.js
  85. 0
    23
      react/features/base/styles/shimStyles.web.js
  86. 0
    84
      react/features/base/util/loadScript.web.js
  87. 0
    45
      react/features/conference/components/Avatar.web.js
  88. 0
    1
      react/features/filmStrip/components/_.web.js
  89. 0
    22
      react/features/filmStrip/components/web/AudioMutedIndicator.js
  90. 0
    25
      react/features/filmStrip/components/web/DominantSpeakerIndicator.js
  91. 0
    22
      react/features/filmStrip/components/web/ModeratorIndicator.js
  92. 0
    24
      react/features/filmStrip/components/web/VideoMutedIndicator.js
  93. 0
    5
      react/features/filmStrip/components/web/index.js
  94. 0
    46
      react/features/filmStrip/components/web/styles.js
  95. 0
    89
      react/features/toolbar/components/Toolbar.web.js
  96. 0
    47
      react/features/toolbar/components/ToolbarButton.web.js
  97. 0
    53
      react/features/welcome/components/WelcomePage.web.js
  98. 0
    10
      react/index-template.html
  99. 0
    1
      react/index.android.js
  100. 0
    0
      react/index.ios.js

react/.buckconfig → .buckconfig ファイルの表示


+ 47
- 4
.gitignore ファイルの表示

@@ -1,8 +1,4 @@
1
-node_modules
2
-.DS_Store
3 1
 *.swp
4
-.idea/
5
-*.iml
6 2
 .*.tmp
7 3
 deploy-local.sh
8 4
 libs/
@@ -11,3 +7,50 @@ all.css
11 7
 unsupported_browser.css
12 8
 .remote-sync.json
13 9
 .sync-config.cson
10
+
11
+# The following are automatically generated by the react-native command line
12
+# utility (either with the init or upgrade option which pull in the latest
13
+# template files recommended by Facebook for React Native).
14
+
15
+# OSX
16
+#
17
+.DS_Store
18
+
19
+# Xcode
20
+#
21
+build/
22
+*.pbxuser
23
+!default.pbxuser
24
+*.mode1v3
25
+!default.mode1v3
26
+*.mode2v3
27
+!default.mode2v3
28
+*.perspectivev3
29
+!default.perspectivev3
30
+xcuserdata
31
+*.xccheckout
32
+*.moved-aside
33
+DerivedData
34
+*.hmap
35
+*.ipa
36
+*.xcuserstate
37
+project.xcworkspace
38
+
39
+# Android/IJ
40
+#
41
+*.iml
42
+.idea
43
+.gradle
44
+local.properties
45
+
46
+# node.js
47
+#
48
+node_modules/
49
+npm-debug.log
50
+
51
+# BUCK
52
+#
53
+buck-out/
54
+\.buckd/
55
+android/app/libs
56
+android/keystores/debug.keystore

+ 4
- 3
.jshintignore ファイルの表示

@@ -1,5 +1,6 @@
1
-debian
2
-libs
3
-node_modules
1
+debian/
2
+libs/
3
+node_modules/
4
+react/
4 5
 analytics.js
5 6
 webpack.config.babel.js

react/.watchmanconfig → .watchmanconfig ファイルの表示


react/android/app/BUCK → android/app/BUCK ファイルの表示


react/android/app/build.gradle → android/app/build.gradle ファイルの表示


react/android/app/proguard-rules.pro → android/app/proguard-rules.pro ファイルの表示


react/android/app/src/main/AndroidManifest.xml → android/app/src/main/AndroidManifest.xml ファイルの表示


react/android/app/src/main/assets/fonts/FontAwesome.ttf → android/app/src/main/assets/fonts/FontAwesome.ttf ファイルの表示


react/android/app/src/main/java/org/jitsi/jitsi_meet_react/MainActivity.java → android/app/src/main/java/org/jitsi/jitsi_meet_react/MainActivity.java ファイルの表示


react/android/app/src/main/java/org/jitsi/jitsi_meet_react/MainApplication.java → android/app/src/main/java/org/jitsi/jitsi_meet_react/MainApplication.java ファイルの表示


react/android/app/src/main/res/mipmap-hdpi/ic_launcher.png → android/app/src/main/res/mipmap-hdpi/ic_launcher.png ファイルの表示


react/android/app/src/main/res/mipmap-mdpi/ic_launcher.png → android/app/src/main/res/mipmap-mdpi/ic_launcher.png ファイルの表示


react/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png → android/app/src/main/res/mipmap-xhdpi/ic_launcher.png ファイルの表示


react/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png → android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png ファイルの表示


react/android/app/src/main/res/values/strings.xml → android/app/src/main/res/values/strings.xml ファイルの表示


react/android/app/src/main/res/values/styles.xml → android/app/src/main/res/values/styles.xml ファイルの表示


react/android/build.gradle → android/build.gradle ファイルの表示


react/android/gradle.properties → android/gradle.properties ファイルの表示


react/android/gradle/wrapper/gradle-wrapper.jar → android/gradle/wrapper/gradle-wrapper.jar ファイルの表示


react/android/gradle/wrapper/gradle-wrapper.properties → android/gradle/wrapper/gradle-wrapper.properties ファイルの表示


react/android/gradlew → android/gradlew ファイルの表示


react/android/gradlew.bat → android/gradlew.bat ファイルの表示


react/android/keystores/BUCK → android/keystores/BUCK ファイルの表示


react/android/keystores/debug.keystore.properties → android/keystores/debug.keystore.properties ファイルの表示


react/android/settings.gradle → android/settings.gradle ファイルの表示


react/doc/coding-style.md → doc/coding-style.md ファイルの表示


+ 1
- 0
index.android.js ファイルの表示

@@ -0,0 +1 @@
1
+export * from './react/index.native';

+ 1
- 0
index.ios.js ファイルの表示

@@ -0,0 +1 @@
1
+export * from './react/index.native';

react/ios/app/AppDelegate.h → ios/app/AppDelegate.h ファイルの表示


react/ios/app/AppDelegate.m → ios/app/AppDelegate.m ファイルの表示


react/ios/app/Base.lproj/LaunchScreen.xib → ios/app/Base.lproj/LaunchScreen.xib ファイルの表示


react/ios/app/Images.xcassets/AppIcon.appiconset/AppIcon-29@2x.png → ios/app/Images.xcassets/AppIcon.appiconset/AppIcon-29@2x.png ファイルの表示


react/ios/app/Images.xcassets/AppIcon.appiconset/AppIcon-29@3x.png → ios/app/Images.xcassets/AppIcon.appiconset/AppIcon-29@3x.png ファイルの表示


react/ios/app/Images.xcassets/AppIcon.appiconset/AppIcon-40@2x.png → ios/app/Images.xcassets/AppIcon.appiconset/AppIcon-40@2x.png ファイルの表示


react/ios/app/Images.xcassets/AppIcon.appiconset/AppIcon-40@3x.png → ios/app/Images.xcassets/AppIcon.appiconset/AppIcon-40@3x.png ファイルの表示


react/ios/app/Images.xcassets/AppIcon.appiconset/AppIcon-60@2x.png → ios/app/Images.xcassets/AppIcon.appiconset/AppIcon-60@2x.png ファイルの表示


react/ios/app/Images.xcassets/AppIcon.appiconset/AppIcon-60@3x.png → ios/app/Images.xcassets/AppIcon.appiconset/AppIcon-60@3x.png ファイルの表示


react/ios/app/Images.xcassets/AppIcon.appiconset/Contents.json → ios/app/Images.xcassets/AppIcon.appiconset/Contents.json ファイルの表示


react/ios/app/Info.plist → ios/app/Info.plist ファイルの表示


react/ios/app/main.m → ios/app/main.m ファイルの表示


react/ios/apple-app-site-association → ios/apple-app-site-association ファイルの表示


react/ios/jitsi-meet-react.entitlements → ios/jitsi-meet-react.entitlements ファイルの表示


react/ios/jitsi-meet-react.xcodeproj/project.pbxproj → ios/jitsi-meet-react.xcodeproj/project.pbxproj ファイルの表示

@@ -143,7 +143,7 @@
143 143
 		13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = app/main.m; sourceTree = "<group>"; };
144 144
 		146833FF1AC3E56700842450 /* React.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = React.xcodeproj; path = "../node_modules/react-native/React/React.xcodeproj"; sourceTree = "<group>"; };
145 145
 		22418656B14845609F953A42 /* RNVectorIcons.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RNVectorIcons.xcodeproj; path = "../node_modules/react-native-vector-icons/RNVectorIcons.xcodeproj"; sourceTree = "<group>"; };
146
-		2602576B1D0A7703001E3363 /* jitsi.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = jitsi.ttf; path = ../features/base/fontIcons/fonts/jitsi.ttf; sourceTree = "<group>"; };
146
+		2602576B1D0A7703001E3363 /* jitsi.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = jitsi.ttf; path = ../react/features/base/fontIcons/fonts/jitsi.ttf; sourceTree = "<group>"; };
147 147
 		78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTLinking.xcodeproj; path = "../node_modules/react-native/Libraries/LinkingIOS/RCTLinking.xcodeproj"; sourceTree = "<group>"; };
148 148
 		821D8ABD506944B4BDBB069B /* libRNVectorIcons.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNVectorIcons.a; sourceTree = "<group>"; };
149 149
 		832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTText.xcodeproj; path = "../node_modules/react-native/Libraries/Text/RCTText.xcodeproj"; sourceTree = "<group>"; };

react/ios/jitsi-meet-react.xcodeproj/xcshareddata/xcschemes/jitsi-meet-react.xcscheme → ios/jitsi-meet-react.xcodeproj/xcshareddata/xcschemes/jitsi-meet-react.xcscheme ファイルの表示


+ 13
- 1
package.json ファイルの表示

@@ -30,10 +30,19 @@
30 30
     "jws": "*",
31 31
     "lib-jitsi-meet": "jitsi/lib-jitsi-meet",
32 32
     "postis": "^2.2.0",
33
+    "react": "15.3.1",
34
+    "react-native": "0.33.0",
35
+    "react-native-vector-icons": "^2.0.3",
36
+    "react-native-webrtc": "jitsi/react-native-webrtc",
37
+    "react-redux": "^4.4.5",
38
+    "redux": "^3.5.2",
39
+    "redux-thunk": "^2.1.0",
33 40
     "retry": "0.6.1",
34 41
     "strophe": "^1.2.2",
35 42
     "strophejs-plugins": "^0.0.6",
36
-    "toastr": "^2.0.3"
43
+    "toastr": "^2.0.3",
44
+    "url-polyfill": "github/url-polyfill",
45
+    "xmldom": "^0.1.22"
37 46
   },
38 47
   "devDependencies": {
39 48
     "babel-core": "*",
@@ -43,6 +52,9 @@
43 52
     "clean-css": "*",
44 53
     "css-loader": "*",
45 54
     "eslint": "*",
55
+    "eslint-plugin-jsdoc": "*",
56
+    "eslint-plugin-react": "*",
57
+    "eslint-plugin-react-native": "*",
46 58
     "expose-loader": "*",
47 59
     "file-loader": "*",
48 60
     "imports-loader": "*",

+ 0
- 58
react/.flowconfig ファイルの表示

@@ -1,58 +0,0 @@
1
-[ignore]
2
-
3
-# We fork some components by platform.
4
-.*/*[.]android.js
5
-
6
-# Ignore templates with `@flow` in header
7
-.*/local-cli/generator.*
8
-
9
-# Ignore malformed json
10
-.*/node_modules/y18n/test/.*\.json
11
-
12
-# Ignore the website subdir
13
-<PROJECT_ROOT>/website/.*
14
-
15
-# Ignore BUCK generated dirs
16
-<PROJECT_ROOT>/\.buckd/
17
-
18
-# Ignore unexpected extra @providesModule
19
-.*/node_modules/commoner/test/source/widget/share.js
20
-
21
-# Ignore duplicate module providers
22
-# For RN Apps installed via npm, "Libraries" folder is inside node_modules/react-native but in the source repo it is in the root
23
-.*/Libraries/react-native/React.js
24
-.*/Libraries/react-native/ReactNative.js
25
-.*/node_modules/jest-runtime/build/__tests__/.*
26
-
27
-[include]
28
-
29
-[libs]
30
-node_modules/react-native/Libraries/react-native/react-native-interface.js
31
-node_modules/react-native/flow
32
-flow/
33
-
34
-[options]
35
-module.system=haste
36
-
37
-esproposal.class_static_fields=enable
38
-esproposal.class_instance_fields=enable
39
-
40
-experimental.strict_type_args=true
41
-
42
-munge_underscores=true
43
-
44
-module.name_mapper='^image![a-zA-Z0-9$_-]+$' -> 'GlobalImageStub'
45
-module.name_mapper='^[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> 'RelativeImageStub'
46
-
47
-suppress_type=$FlowIssue
48
-suppress_type=$FlowFixMe
49
-suppress_type=$FixMe
50
-
51
-suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(>=0\\.\\(30\\|[1-2][0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)
52
-suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(>=0\\.\\(30\\|1[0-9]\\|[1-2][0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)?:? #[0-9]+
53
-suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy
54
-
55
-unsafe.enable_getters_and_setters=true
56
-
57
-[version]
58
-^0.30.0

+ 0
- 44
react/.gitignore ファイルの表示

@@ -1,44 +0,0 @@
1
-# OSX
2
-#
3
-.DS_Store
4
-
5
-# Xcode
6
-#
7
-build/
8
-*.pbxuser
9
-!default.pbxuser
10
-*.mode1v3
11
-!default.mode1v3
12
-*.mode2v3
13
-!default.mode2v3
14
-*.perspectivev3
15
-!default.perspectivev3
16
-xcuserdata
17
-*.xccheckout
18
-*.moved-aside
19
-DerivedData
20
-*.hmap
21
-*.ipa
22
-*.xcuserstate
23
-project.xcworkspace
24
-
25
-# Android/IJ
26
-#
27
-*.iml
28
-.idea
29
-.gradle
30
-local.properties
31
-
32
-# node.js
33
-#
34
-node_modules/
35
-npm-debug.log
36
-
37
-# BUCK
38
-#
39
-buck-out/
40
-\.buckd/
41
-android/app/libs
42
-android/keystores/debug.keystore
43
-
44
-dist/

+ 0
- 219
react/LICENSE ファイルの表示

@@ -1,219 +0,0 @@
1
-                                 Apache License
2
-                           Version 2.0, January 2004
3
-                        http://www.apache.org/licenses/
4
-
5
-
6
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
7
-
8
-   1. Definitions.
9
-
10
-      "License" shall mean the terms and conditions for use, reproduction,
11
-      and distribution as defined by Sections 1 through 9 of this document.
12
-
13
-      "Licensor" shall mean the copyright owner or entity authorized by
14
-      the copyright owner that is granting the License.
15
-
16
-      "Legal Entity" shall mean the union of the acting entity and all
17
-      other entities that control, are controlled by, or are under common
18
-      control with that entity. For the purposes of this definition,
19
-      "control" means (i) the power, direct or indirect, to cause the
20
-      direction or management of such entity, whether by contract or
21
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
22
-      outstanding shares, or (iii) beneficial ownership of such entity.
23
-
24
-      "You" (or "Your") shall mean an individual or Legal Entity
25
-      exercising permissions granted by this License.
26
-
27
-      "Source" form shall mean the preferred form for making modifications,
28
-      including but not limited to software source code, documentation
29
-      source, and configuration files.
30
-
31
-      "Object" form shall mean any form resulting from mechanical
32
-      transformation or translation of a Source form, including but
33
-      not limited to compiled object code, generated documentation,
34
-      and conversions to other media types.
35
-
36
-      "Work" shall mean the work of authorship, whether in Source or
37
-      Object form, made available under the License, as indicated by a
38
-      copyright notice that is included in or attached to the work
39
-      (an example is provided in the Appendix below).
40
-
41
-      "Derivative Works" shall mean any work, whether in Source or Object
42
-      form, that is based on (or derived from) the Work and for which the
43
-      editorial revisions, annotations, elaborations, or other modifications
44
-      represent, as a whole, an original work of authorship. For the purposes
45
-      of this License, Derivative Works shall not include works that remain
46
-      separable from, or merely link (or bind by name) to the interfaces of,
47
-      the Work and Derivative Works thereof.
48
-
49
-      "Contribution" shall mean any work of authorship, including
50
-      the original version of the Work and any modifications or additions
51
-      to that Work or Derivative Works thereof, that is intentionally
52
-      submitted to Licensor for inclusion in the Work by the copyright owner
53
-      or by an individual or Legal Entity authorized to submit on behalf of
54
-      the copyright owner. For the purposes of this definition, "submitted"
55
-      means any form of electronic, verbal, or written communication sent
56
-      to the Licensor or its representatives, including but not limited to
57
-      communication on electronic mailing lists, source code control systems,
58
-      and issue tracking systems that are managed by, or on behalf of, the
59
-      Licensor for the purpose of discussing and improving the Work, but
60
-      excluding communication that is conspicuously marked or otherwise
61
-      designated in writing by the copyright owner as "Not a Contribution."
62
-
63
-      "Contributor" shall mean Licensor and any individual or Legal Entity
64
-      on behalf of whom a Contribution has been received by Licensor and
65
-      subsequently incorporated within the Work.
66
-
67
-   2. Grant of Copyright License. Subject to the terms and conditions of
68
-      this License, each Contributor hereby grants to You a perpetual,
69
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
70
-      copyright license to reproduce, prepare Derivative Works of,
71
-      publicly display, publicly perform, sublicense, and distribute the
72
-      Work and such Derivative Works in Source or Object form.
73
-
74
-   3. Grant of Patent License. Subject to the terms and conditions of
75
-      this License, each Contributor hereby grants to You a perpetual,
76
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
77
-      (except as stated in this section) patent license to make, have made,
78
-      use, offer to sell, sell, import, and otherwise transfer the Work,
79
-      where such license applies only to those patent claims licensable
80
-      by such Contributor that are necessarily infringed by their
81
-      Contribution(s) alone or by combination of their Contribution(s)
82
-      with the Work to which such Contribution(s) was submitted. If You
83
-      institute patent litigation against any entity (including a
84
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
85
-      or a Contribution incorporated within the Work constitutes direct
86
-      or contributory patent infringement, then any patent licenses
87
-      granted to You under this License for that Work shall terminate
88
-      as of the date such litigation is filed.
89
-
90
-   4. Redistribution. You may reproduce and distribute copies of the
91
-      Work or Derivative Works thereof in any medium, with or without
92
-      modifications, and in Source or Object form, provided that You
93
-      meet the following conditions:
94
-
95
-      (a) You must give any other recipients of the Work or
96
-          Derivative Works a copy of this License; and
97
-
98
-      (b) You must cause any modified files to carry prominent notices
99
-          stating that You changed the files; and
100
-
101
-      (c) You must retain, in the Source form of any Derivative Works
102
-          that You distribute, all copyright, patent, trademark, and
103
-          attribution notices from the Source form of the Work,
104
-          excluding those notices that do not pertain to any part of
105
-          the Derivative Works; and
106
-
107
-      (d) If the Work includes a "NOTICE" text file as part of its
108
-          distribution, then any Derivative Works that You distribute must
109
-          include a readable copy of the attribution notices contained
110
-          within such NOTICE file, excluding those notices that do not
111
-          pertain to any part of the Derivative Works, in at least one
112
-          of the following places: within a NOTICE text file distributed
113
-          as part of the Derivative Works; within the Source form or
114
-          documentation, if provided along with the Derivative Works; or,
115
-          within a display generated by the Derivative Works, if and
116
-          wherever such third-party notices normally appear. The contents
117
-          of the NOTICE file are for informational purposes only and
118
-          do not modify the License. You may add Your own attribution
119
-          notices within Derivative Works that You distribute, alongside
120
-          or as an addendum to the NOTICE text from the Work, provided
121
-          that such additional attribution notices cannot be construed
122
-          as modifying the License.
123
-
124
-      You may add Your own copyright statement to Your modifications and
125
-      may provide additional or different license terms and conditions
126
-      for use, reproduction, or distribution of Your modifications, or
127
-      for any such Derivative Works as a whole, provided Your use,
128
-      reproduction, and distribution of the Work otherwise complies with
129
-      the conditions stated in this License.
130
-
131
-   5. Submission of Contributions. Unless You explicitly state otherwise,
132
-      any Contribution intentionally submitted for inclusion in the Work
133
-      by You to the Licensor shall be under the terms and conditions of
134
-      this License, without any additional terms or conditions.
135
-      Notwithstanding the above, nothing herein shall supersede or modify
136
-      the terms of any separate license agreement you may have executed
137
-      with Licensor regarding such Contributions.
138
-
139
-   6. Trademarks. This License does not grant permission to use the trade
140
-      names, trademarks, service marks, or product names of the Licensor,
141
-      except as required for reasonable and customary use in describing the
142
-      origin of the Work and reproducing the content of the NOTICE file.
143
-
144
-   7. Disclaimer of Warranty. Unless required by applicable law or
145
-      agreed to in writing, Licensor provides the Work (and each
146
-      Contributor provides its Contributions) on an "AS IS" BASIS,
147
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
148
-      implied, including, without limitation, any warranties or conditions
149
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
150
-      PARTICULAR PURPOSE. You are solely responsible for determining the
151
-      appropriateness of using or redistributing the Work and assume any
152
-      risks associated with Your exercise of permissions under this License.
153
-
154
-   8. Limitation of Liability. In no event and under no legal theory,
155
-      whether in tort (including negligence), contract, or otherwise,
156
-      unless required by applicable law (such as deliberate and grossly
157
-      negligent acts) or agreed to in writing, shall any Contributor be
158
-      liable to You for damages, including any direct, indirect, special,
159
-      incidental, or consequential damages of any character arising as a
160
-      result of this License or out of the use or inability to use the
161
-      Work (including but not limited to damages for loss of goodwill,
162
-      work stoppage, computer failure or malfunction, or any and all
163
-      other commercial damages or losses), even if such Contributor
164
-      has been advised of the possibility of such damages.
165
-
166
-   9. Accepting Warranty or Additional Liability. While redistributing
167
-      the Work or Derivative Works thereof, You may choose to offer,
168
-      and charge a fee for, acceptance of support, warranty, indemnity,
169
-      or other liability obligations and/or rights consistent with this
170
-      License. However, in accepting such obligations, You may act only
171
-      on Your own behalf and on Your sole responsibility, not on behalf
172
-      of any other Contributor, and only if You agree to indemnify,
173
-      defend, and hold each Contributor harmless for any liability
174
-      incurred by, or claims asserted against, such Contributor by reason
175
-      of your accepting any such warranty or additional liability.
176
-
177
-   END OF TERMS AND CONDITIONS
178
-
179
-   APPENDIX: How to apply the Apache License to your work.
180
-
181
-      To apply the Apache License to your work, attach the following
182
-      boilerplate notice, with the fields enclosed by brackets "[]"
183
-      replaced with your own identifying information. (Don't include
184
-      the brackets!)  The text should be enclosed in the appropriate
185
-      comment syntax for the file format. We also recommend that a
186
-      file or class name and description of purpose be included on the
187
-      same "printed page" as the copyright notice for easier
188
-      identification within third-party archives.
189
-
190
-   Copyright [yyyy] [name of copyright owner]
191
-
192
-   Licensed under the Apache License, Version 2.0 (the "License");
193
-   you may not use this file except in compliance with the License.
194
-   You may obtain a copy of the License at
195
-
196
-       http://www.apache.org/licenses/LICENSE-2.0
197
-
198
-   Unless required by applicable law or agreed to in writing, software
199
-   distributed under the License is distributed on an "AS IS" BASIS,
200
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
201
-   See the License for the specific language governing permissions and
202
-   limitations under the License.
203
-   
204
-   
205
-
206
-Note:
207
-
208
-This project was originally contributed to the community under the MIT license and with the following notice:
209
-
210
-The MIT License (MIT)
211
-
212
-Copyright (c) 2013 ESTOS GmbH 
213
-Copyright (c) 2013 BlueJimp SARL
214
-
215
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
216
-
217
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
218
-
219
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+ 0
- 7
react/README.md ファイルの表示

@@ -1,7 +0,0 @@
1
-# jitsi-meet-react
2
-
3
-## Launching the App
4
-
5
-- For Android: `npm run start:android`
6
-- For iOS: `npm run start:ios`
7
-- For Web: `npm run start:web`

+ 0
- 5
react/debian/changelog ファイルの表示

@@ -1,5 +0,0 @@
1
-jitsi-meet-react (1.0.1-1) unstable; urgency=low
2
-
3
-  * Initial release.
4
-
5
- -- Damian Minkov <damencho@jitsi.org>  Wed, 13 Jul 2016 15:32:41 +0000

+ 0
- 1
react/debian/compat ファイルの表示

@@ -1 +0,0 @@
1
-8

+ 0
- 73
react/debian/config.js ファイルの表示

@@ -1,73 +0,0 @@
1
-/* jshint -W101 */
2
-var config = {
3
-//    configLocation: './config.json', // see ./modules/HttpConfigFetch.js
4
-    hosts: {
5
-        domain: 'jitsi-meet.example.com',
6
-        //anonymousdomain: 'guest.example.com',
7
-        //authdomain: 'jitsi-meet.example.com',  // defaults to <domain>
8
-        muc: 'conference.jitsi-meet.example.com', // FIXME: use XEP-0030
9
-        //jirecon: 'jirecon.jitsi-meet.example.com',
10
-        //call_control: 'callcontrol.jitsi-meet.example.com',
11
-        //focus: 'focus.jitsi-meet.example.com', // defaults to 'focus.jitsi-meet.example.com'
12
-    },
13
-//  getroomnode: function (path) { return 'someprefixpossiblybasedonpath'; },
14
-//  useStunTurn: true, // use XEP-0215 to fetch STUN and TURN server
15
-//  useIPv6: true, // ipv6 support. use at your own risk
16
-    useNicks: false,
17
-    bosh: '//jitsi-meet.example.com/http-bind', // FIXME: use xep-0156 for that
18
-    clientNode: 'http://jitsi.org/jitsimeet', // The name of client node advertised in XEP-0115 'c' stanza
19
-    //focusUserJid: 'focus@auth.jitsi-meet.example.com', // The real JID of focus participant - can be overridden here
20
-    //defaultSipNumber: '', // Default SIP number
21
-
22
-    // Desktop sharing method. Can be set to 'ext', 'webrtc' or false to disable.
23
-    desktopSharingChromeMethod: 'ext',
24
-    // The ID of the jidesha extension for Chrome.
25
-    desktopSharingChromeExtId: 'diibjkoicjeejcmhdnailmkgecihlobk',
26
-    // The media sources to use when using screen sharing with the Chrome
27
-    // extension.
28
-    desktopSharingChromeSources: ['screen', 'window'],
29
-    // Required version of Chrome extension
30
-    desktopSharingChromeMinExtVersion: '0.1',
31
-
32
-    // The ID of the jidesha extension for Firefox. If null, we assume that no
33
-    // extension is required.
34
-    desktopSharingFirefoxExtId: null,
35
-    // Whether desktop sharing should be disabled on Firefox.
36
-    desktopSharingFirefoxDisabled: true,
37
-    // The maximum version of Firefox which requires a jidesha extension.
38
-    // Example: if set to 41, we will require the extension for Firefox versions
39
-    // up to and including 41. On Firefox 42 and higher, we will run without the
40
-    // extension.
41
-    // If set to -1, an extension will be required for all versions of Firefox.
42
-    desktopSharingFirefoxMaxVersionExtRequired: -1,
43
-    // The URL to the Firefox extension for desktop sharing.
44
-    desktopSharingFirefoxExtensionURL: null,
45
-
46
-    // Disables ICE/UDP by filtering out local and remote UDP candidates in signalling.
47
-    webrtcIceUdpDisable: false,
48
-    // Disables ICE/TCP by filtering out local and remote TCP candidates in signalling.
49
-    webrtcIceTcpDisable: false,
50
-
51
-    openSctp: true, // Toggle to enable/disable SCTP channels
52
-    disableStats: false,
53
-    disableAudioLevels: false,
54
-    channelLastN: -1, // The default value of the channel attribute last-n.
55
-    adaptiveLastN: false,
56
-    //disableAdaptiveSimulcast: false,
57
-    enableRecording: false,
58
-    enableWelcomePage: true,
59
-    disableSimulcast: false,
60
-    logStats: false, // Enable logging of PeerConnection stats via the focus
61
-//    requireDisplayName: true, // Forces the participants that doesn't have display name to enter it when they enter the room.
62
-//    startAudioMuted: 10, // every participant after the Nth will start audio muted
63
-//    startVideoMuted: 10, // every participant after the Nth will start video muted
64
-//    defaultLanguage: "en",
65
-// To enable sending statistics to callstats.io you should provide Applicaiton ID and Secret.
66
-//    callStatsID: "", // Application ID for callstats.io API
67
-//    callStatsSecret: "", // Secret for callstats.io API
68
-    /*noticeMessage: 'Service update is scheduled for 16th March 2015. ' +
69
-    'During that time service will not be available. ' +
70
-    'Apologise for inconvenience.',*/
71
-    disableThirdPartyRequests: false,
72
-    minHDHeight: 540
73
-};

+ 0
- 20
react/debian/control ファイルの表示

@@ -1,20 +0,0 @@
1
-Source: jitsi-meet-react
2
-Section: net
3
-Priority: extra
4
-Maintainer: Jitsi Team <dev@jitsi.org>
5
-Uploaders: Emil Ivov <emcho@jitsi.org>, Damian Minkov <damencho@jitsi.org>
6
-Build-Depends: debhelper (>= 8.0.0)
7
-Standards-Version: 3.9.6
8
-Homepage: https://jitsi.org/meet
9
-
10
-Package: jitsi-meet-react
11
-Architecture: all
12
-Depends: ${misc:Depends}, jitsi-videobridge, jitsi-meet-prosody,
13
- openjdk-8-jre-headless | nginx
14
-Description: WebRTC JavaScript video conferences
15
- Jitsi Meet is a WebRTC JavaScript application that uses Jitsi
16
- Videobridge to provide high quality, scalable video conferences.
17
- .
18
- It is a web interface to Jitsi Videobridge for audio and video
19
- forwarding and relaying, configured to work with jetty instance
20
- running embedded into Jitsi Videobridge

+ 0
- 13
react/debian/copyright ファイルの表示

@@ -1,13 +0,0 @@
1
-Format: http://dep.debian.net/deps/dep5
2
-Upstream-Name: Jitsi Meet
3
-Upstream-Contact: Emil Ivov <emcho@jitsi.org>
4
-Source: https://github.com/jitsi/jitsi-meet-react
5
-
6
-Files: *
7
-Copyright: 2015 Atlassian Pty Ltd
8
-License: Apache-2.0
9
-
10
-License: Apache-2.0
11
-On Debian systems, the full text of the Apache
12
- License version 2 can be found in the file
13
- '/usr/share/common-licenses/Apache-2.0'.

+ 0
- 10
react/debian/jitsi-meet-react.README ファイルの表示

@@ -1,10 +0,0 @@
1
-Jitsi Meet
2
-
3
-====
4
-
5
-A WebRTC-powered multi-user videochat.
6
-
7
-Powered by the jitsi-videobridge[0]
8
-
9
-
10
-[0] https://github.com/jitsi/jitsi-videobridge

+ 0
- 8
react/debian/jitsi-meet-react.README.Debian ファイルの表示

@@ -1,8 +0,0 @@
1
-Jitsi Meet for Debian
2
-----------------------------
3
-
4
-This is a WebRTC frontend of the video conferencing tool Jitsi Meet. It depends on the
5
-jitsi-videobridge package, which is a SFU (Selective Forwarding Unit) and both packages
6
-are designed to work together.
7
-
8
- -- Yasen Pramatarov <yasen@bluejimp.com>  Mon, 30 Jun 2014 23:05:18 +0100

+ 0
- 8
react/debian/jitsi-meet-react.config ファイルの表示

@@ -1,8 +0,0 @@
1
-#!/bin/sh -e
2
-
3
-# Source debconf library.
4
-. /usr/share/debconf/confmodule
5
-
6
-# certificate type choice
7
-db_input critical jitsi-meet/cert-choice || true
8
-db_go

+ 0
- 1
react/debian/jitsi-meet-react.dirs ファイルの表示

@@ -1 +0,0 @@
1
-etc/jitsi/meet/

+ 0
- 4
react/debian/jitsi-meet-react.docs ファイルの表示

@@ -1,4 +0,0 @@
1
-README.md
2
-debian/jitsi-meet.example
3
-debian/jitsi-meet-react.README
4
-debian/config.js

+ 0
- 1
react/debian/jitsi-meet-react.install ファイルの表示

@@ -1 +0,0 @@
1
-dist/*					/usr/share/jitsi-meet-react

+ 0
- 200
react/debian/jitsi-meet-react.postinst ファイルの表示

@@ -1,200 +0,0 @@
1
-#!/bin/bash
2
-# postinst script for jitsi-meet
3
-#
4
-# see: dh_installdeb(1)
5
-
6
-set -e
7
-
8
-# summary of how this script can be called:
9
-#        * <postinst> `configure' <most-recently-configured-version>
10
-#        * <old-postinst> `abort-upgrade' <new version>
11
-#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
12
-#          <new-version>
13
-#        * <postinst> `abort-remove'
14
-#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
15
-#          <failed-install-package> <version> `removing'
16
-#          <conflicting-package> <version>
17
-# for details, see http://www.debian.org/doc/debian-policy/ or
18
-# the debian-policy package
19
-
20
-case "$1" in
21
-    configure)
22
-
23
-        JVB_ETC_CONFIG="/etc/jitsi/videobridge/config"
24
-
25
-        . $JVB_ETC_CONFIG
26
-
27
-        # loading debconf
28
-        . /usr/share/debconf/confmodule
29
-
30
-        # detect dpkg-reconfigure
31
-        RECONFIGURING="false"
32
-        db_get jitsi-meet/jvb-hostname
33
-        JVB_HOSTNAME_OLD=$RET
34
-        if [ -n "$RET" ] && [ ! "$JVB_HOSTNAME_OLD" = "$JVB_HOSTNAME" ] ; then
35
-            RECONFIGURING="true"
36
-            rm -f /etc/jitsi/meet/$JVB_HOSTNAME_OLD-config.js
37
-        fi
38
-
39
-        JVB_SERVE="false"
40
-        db_get jitsi-meet/jvb-serve
41
-        if [ -n "$RET" ] && [ "$RET" = "true" ] ; then
42
-            JVB_SERVE="true"
43
-        fi
44
-
45
-        # stores the hostname so we will reuse it later, like in purge
46
-        db_set jitsi-meet/jvb-hostname $JVB_HOSTNAME
47
-
48
-        NGINX_INSTALL_CHECK="$(dpkg-query -f '${Status}' -W 'nginx' 2>/dev/null | awk '{print $3}' || true)"
49
-        if [ "$NGINX_INSTALL_CHECK" = "installed" ] || [ "$NGINX_INSTALL_CHECK" = "unpacked" ] ; then
50
-            FORCE_NGINX="true"
51
-        fi
52
-
53
-        # SSL for nginx
54
-        db_get jitsi-meet/cert-choice
55
-        CERT_CHOICE="$RET"
56
-        UPLOADED_CERT_CHOICE="A certificate is available and the files are uploaded on the server"
57
-
58
-        # jitsi meet
59
-        JITSI_MEET_CONFIG="/etc/jitsi/meet/$JVB_HOSTNAME-config.js"
60
-        if [ ! -f $JITSI_MEET_CONFIG ] ; then
61
-            cp /usr/share/doc/jitsi-meet-react/config.js $JITSI_MEET_CONFIG
62
-            sed -i "s/jitsi-meet.example.com/$JVB_HOSTNAME/g" $JITSI_MEET_CONFIG
63
-        fi
64
-
65
-        # this is new install let's configure jvb to serve meet
66
-        if [[ -z $FORCE_NGINX && ( -z $JVB_HOSTNAME_OLD || "$JVB_SERVE" = "true" ) ]] ; then
67
-
68
-            JVB_CONFIG="/etc/jitsi/videobridge/sip-communicator.properties"
69
-
70
-            # this is a reconfigure, lets just delete old links
71
-            if [ "$RECONFIGURING" = "true" ] ; then
72
-                rm -f $JVB_CONFIG
73
-            fi
74
-
75
-            # we will write to the file if missing create it
76
-            if [ ! -f $JVB_CONFIG ] ; then
77
-                touch $JVB_CONFIG
78
-            fi
79
-
80
-            # configure jvb
81
-            echo "AUTHBIND=yes" >> $JVB_ETC_CONFIG
82
-            sed -i "s/JVB_OPTS=.*/JVB_OPTS=--apis=rest,xmpp/g" $JVB_ETC_CONFIG
83
-
84
-            echo "org.jitsi.videobridge.rest.jetty.host=::" >> $JVB_CONFIG
85
-            echo "org.jitsi.videobridge.rest.jetty.port=443" >> $JVB_CONFIG
86
-            echo "org.jitsi.videobridge.rest.jetty.ProxyServlet.hostHeader=$JVB_HOSTNAME" >> $JVB_CONFIG
87
-            echo "org.jitsi.videobridge.rest.jetty.ProxyServlet.pathSpec=/http-bind" >> $JVB_CONFIG
88
-            echo "org.jitsi.videobridge.rest.jetty.ProxyServlet.proxyTo=http://localhost:5280/http-bind" >> $JVB_CONFIG
89
-            echo "org.jitsi.videobridge.rest.jetty.ResourceHandler.resourceBase=/usr/share/jitsi-meet-react" >> $JVB_CONFIG
90
-            echo "org.jitsi.videobridge.rest.jetty.ResourceHandler.alias./config.js=/etc/jitsi/meet/$JVB_HOSTNAME-config.js" >> $JVB_CONFIG
91
-            echo "org.jitsi.videobridge.rest.jetty.RewriteHandler.regex=^/([a-zA-Z0-9]+)$" >> $JVB_CONFIG
92
-            echo "org.jitsi.videobridge.rest.jetty.RewriteHandler.replacement=/" >> $JVB_CONFIG
93
-            echo "org.jitsi.videobridge.rest.jetty.SSIResourceHandler.paths=/" >> $JVB_CONFIG
94
-            echo "org.jitsi.videobridge.rest.jetty.tls.port=443" >> $JVB_CONFIG
95
-            echo "org.jitsi.videobridge.TCP_HARVESTER_PORT=443" >> $JVB_CONFIG
96
-            echo "org.jitsi.videobridge.rest.jetty.sslContextFactory.keyStorePath=/etc/jitsi/videobridge/$JVB_HOSTNAME.jks" >> $JVB_CONFIG
97
-            echo "org.jitsi.videobridge.rest.jetty.sslContextFactory.keyStorePassword=changeit" >> $JVB_CONFIG
98
-
99
-            # configure authbind to allow jvb to bind to privileged ports
100
-            OWNER=$(stat -c '%U' /usr/share/jitsi-videobridge)
101
-            GROUP=$(stat -c '%G' /usr/share/jitsi-videobridge)
102
-            JVB_UID="`id -u $OWNER`"
103
-            if [ ! -f "/etc/authbind/byport/443" ] ; then
104
-                if [ ! -d "/etc/authbind/byport" ] ; then
105
-                        mkdir -p /etc/authbind/byport
106
-                        chmod 755 /etc/authbind
107
-                        chmod 755 /etc/authbind/byport
108
-                fi
109
-                touch /etc/authbind/byport/443
110
-                chown $OWNER /etc/authbind/byport/443
111
-                chmod 755 /etc/authbind/byport/443
112
-            fi
113
-
114
-            if [ "$CERT_CHOICE" = "$UPLOADED_CERT_CHOICE" ] ; then
115
-                # create jks from uploaded certs
116
-                openssl pkcs12 -export \
117
-                    -in /etc/ssl/$JVB_HOSTNAME.crt \
118
-                    -inkey /etc/ssl/$JVB_HOSTNAME.key \
119
-                    -passout pass:changeit > /etc/jitsi/videobridge/$JVB_HOSTNAME.p12
120
-                keytool -importkeystore \
121
-                    -srckeystore /etc/jitsi/videobridge/$JVB_HOSTNAME.p12 \
122
-                    -destkeystore /etc/jitsi/videobridge/$JVB_HOSTNAME.jks \
123
-                    -srcstoretype pkcs12 \
124
-                    -noprompt -storepass changeit -srcstorepass changeit
125
-            else
126
-                # create jks from self-signed certs
127
-                openssl pkcs12 -export \
128
-                    -in /var/lib/prosody/$JVB_HOSTNAME.crt \
129
-                    -inkey /var/lib/prosody/$JVB_HOSTNAME.key \
130
-                    -passout pass:changeit > /etc/jitsi/videobridge/$JVB_HOSTNAME.p12
131
-                keytool -importkeystore \
132
-                    -srckeystore /etc/jitsi/videobridge/$JVB_HOSTNAME.p12 \
133
-                    -destkeystore /etc/jitsi/videobridge/$JVB_HOSTNAME.jks \
134
-                    -srcstoretype pkcs12 \
135
-                    -noprompt -storepass changeit -srcstorepass changeit
136
-            fi
137
-
138
-            db_set jitsi-meet/jvb-serve "true"
139
-
140
-            invoke-rc.d jitsi-videobridge restart
141
-        elif [[ "$FORCE_NGINX" = "true" || ( -n $JVB_HOSTNAME_OLD && "$JVB_SERVE" = "false" ) ]] ; then
142
-            # this is a reconfigure, lets just delete old links
143
-            if [ "$RECONFIGURING" = "true" ] ; then
144
-                rm -f /etc/nginx/sites-enabled/$JVB_HOSTNAME_OLD.conf
145
-                rm -f /etc/jitsi/meet/$JVB_HOSTNAME_OLD-config.js
146
-            fi
147
-
148
-            # nginx conf
149
-            if [ ! -f /etc/nginx/sites-available/$JVB_HOSTNAME.conf ] ; then
150
-                cp /usr/share/doc/jitsi-meet-react/jitsi-meet.example /etc/nginx/sites-available/$JVB_HOSTNAME.conf
151
-                if [ ! -f /etc/nginx/sites-enabled/$JVB_HOSTNAME.conf ] ; then
152
-                    ln -s /etc/nginx/sites-available/$JVB_HOSTNAME.conf /etc/nginx/sites-enabled/$JVB_HOSTNAME.conf
153
-                fi
154
-                sed -i "s/jitsi-meet.example.com/$JVB_HOSTNAME/g" /etc/nginx/sites-available/$JVB_HOSTNAME.conf
155
-            fi
156
-
157
-            if [ "$CERT_CHOICE" = "$UPLOADED_CERT_CHOICE" ] ; then
158
-                db_set jitsi-meet/cert-path-key "/etc/ssl/$JVB_HOSTNAME.key"
159
-                db_input critical jitsi-meet/cert-path-key || true
160
-                db_go
161
-                db_get jitsi-meet/cert-path-key
162
-                CERT_KEY="$RET"
163
-                db_set jitsi-meet/cert-path-crt "/etc/ssl/$JVB_HOSTNAME.crt"
164
-                db_input critical jitsi-meet/cert-path-crt || true
165
-                db_go
166
-                db_get jitsi-meet/cert-path-crt
167
-                CERT_CRT="$RET"
168
-                # replace self-signed certificate paths with user provided ones
169
-                CERT_KEY_ESC=$(echo $CERT_KEY | sed 's/\./\\\./g')
170
-                CERT_KEY_ESC=$(echo $CERT_KEY_ESC | sed 's/\//\\\//g')
171
-                sed -i "s/ssl_certificate_key\ \/var\/lib\/prosody\/.*key/ssl_certificate_key\ $CERT_KEY_ESC/g" \
172
-                    /etc/nginx/sites-available/$JVB_HOSTNAME.conf
173
-                CERT_CRT_ESC=$(echo $CERT_CRT | sed 's/\./\\\./g')
174
-                CERT_CRT_ESC=$(echo $CERT_CRT_ESC | sed 's/\//\\\//g')
175
-                sed -i "s/ssl_certificate\ \/var\/lib\/prosody\/.*crt/ssl_certificate\ $CERT_CRT_ESC/g" \
176
-                    /etc/nginx/sites-available/$JVB_HOSTNAME.conf
177
-            fi
178
-
179
-            invoke-rc.d nginx reload
180
-        fi
181
-
182
-        # and we're done with debconf
183
-        db_stop
184
-    ;;
185
-
186
-    abort-upgrade|abort-remove|abort-deconfigure)
187
-    ;;
188
-
189
-    *)
190
-        echo "postinst called with unknown argument \`$1'" >&2
191
-        exit 1
192
-    ;;
193
-esac
194
-
195
-# dh_installdeb will replace this with shell code automatically
196
-# generated by other debhelper scripts.
197
-
198
-#DEBHELPER#
199
-
200
-exit 0

+ 0
- 58
react/debian/jitsi-meet-react.postrm ファイルの表示

@@ -1,58 +0,0 @@
1
-#!/bin/sh
2
-# postrm script for jitsi-meet
3
-#
4
-# see: dh_installdeb(1)
5
-
6
-set -e
7
-
8
-# summary of how this script can be called:
9
-#        * <postrm> `remove'
10
-#        * <postrm> `purge'
11
-#        * <old-postrm> `upgrade' <new-version>
12
-#        * <new-postrm> `failed-upgrade' <old-version>
13
-#        * <new-postrm> `abort-install'
14
-#        * <new-postrm> `abort-install' <old-version>
15
-#        * <new-postrm> `abort-upgrade' <old-version>
16
-#        * <disappearer's-postrm> `disappear' <overwriter>
17
-#          <overwriter-version>
18
-# for details, see http://www.debian.org/doc/debian-policy/ or
19
-# the debian-policy package
20
-
21
-# Load debconf
22
-. /usr/share/debconf/confmodule
23
-
24
-
25
-case "$1" in
26
-    remove)
27
-        if [ -x "/etc/init.d/nginx" ]; then
28
-            invoke-rc.d nginx reload
29
-        fi
30
-    ;;
31
-    purge)
32
-        db_get jitsi-meet/jvb-hostname
33
-        JVB_HOSTNAME=$RET
34
-        if [ -n "$RET" ]; then
35
-            rm -f /etc/jitsi/meet/$JVB_HOSTNAME-config.js
36
-            rm -f /etc/nginx/sites-available/$JVB_HOSTNAME.conf
37
-            rm -f /etc/nginx/sites-enabled/$JVB_HOSTNAME.conf
38
-            rm -f /etc/jitsi/videobridge/$JVB_HOSTNAME.jks
39
-            rm -f /etc/jitsi/videobridge/$JVB_HOSTNAME.p12
40
-        fi
41
-    ;;
42
-    upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
43
-    ;;
44
-
45
-    *)
46
-        echo "postrm called with unknown argument \`$1'" >&2
47
-        exit 1
48
-    ;;
49
-esac
50
-
51
-# dh_installdeb will replace this with shell code automatically
52
-# generated by other debhelper scripts.
53
-
54
-#DEBHELPER#
55
-
56
-db_stop
57
-
58
-exit 0

+ 0
- 32
react/debian/jitsi-meet-react.templates ファイルの表示

@@ -1,32 +0,0 @@
1
-Template: jitsi-meet/cert-choice
2
-Type: select
3
-__Choices: Self-signed certificate will be generated, A certificate is available and the files are uploaded on the server
4
-_Description: SSL certificate for the Jitsi Meet instance
5
- Jitsi Meet is best to be set up with an SSL certificate.
6
- Having no certificate, a self-signed one will be generated.
7
- Having a certificate signed by a recognised CA, it can be uploaded on the server
8
- and point its location. The default filenames will be /etc/ssl/--domain.name--.key
9
- for the key and /etc/ssl/--domain.name--.crt for the certificate.
10
-
11
-Template: jitsi-meet/cert-path-key
12
-Type: string
13
-_Description: Full local server path to the SSL key file:
14
- The full path to the SSL key file on the server.
15
- If it has not been uploaded, now is a good time to do so.
16
-
17
-Template: jitsi-meet/cert-path-crt
18
-Type: string
19
-_Description: Full local server path to the SSL certificate file:
20
- The full path to the SSL certificate file on the server.
21
- If you haven't uploaded it, now is a good time to upload it in another console.
22
-
23
-Template: jitsi-meet/jvb-hostname
24
-Type: string
25
-_Description: The hostname of the current installation:
26
- The value for the hostname that is set in Jitsi Videobridge installation.
27
-
28
-Template: jitsi-meet/jvb-serve
29
-Type: boolean
30
-Default: false
31
-_Description: for internal use
32
- for internal use.

+ 0
- 42
react/debian/jitsi-meet.example ファイルの表示

@@ -1,42 +0,0 @@
1
-server_names_hash_bucket_size 64;
2
-
3
-server {
4
-    listen 80;
5
-    server_name jitsi-meet.example.com;
6
-    return 301 https://$host$request_uri;
7
-}
8
-server {
9
-    listen 443 ssl;
10
-    server_name jitsi-meet.example.com;
11
-
12
-    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
13
-    ssl_prefer_server_ciphers on;
14
-    ssl_ciphers "EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA256:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EDH+aRSA+AESGCM:EDH+aRSA+SHA256:EDH+aRSA:EECDH:!aNULL:!eNULL:!MEDIUM:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4:!SEED";
15
-
16
-    add_header Strict-Transport-Security "max-age=31536000";
17
-
18
-    ssl_certificate /var/lib/prosody/jitsi-meet.example.com.crt;
19
-    ssl_certificate_key /var/lib/prosody/jitsi-meet.example.com.key;
20
-
21
-    root /usr/share/jitsi-meet-react;
22
-    index index.html index.htm;
23
-
24
-    location /config.js {
25
-        alias /etc/jitsi/meet/jitsi-meet.example.com-config.js;
26
-    }
27
-
28
-    location ~ ^/([a-zA-Z0-9=\?]+)$ {
29
-        rewrite ^/(.*)$ / break;
30
-    }
31
-
32
-    location / {
33
-        ssi on;
34
-    }
35
-
36
-    # BOSH
37
-    location /http-bind {
38
-        proxy_pass      http://localhost:5280/http-bind;
39
-        proxy_set_header X-Forwarded-For $remote_addr;
40
-        proxy_set_header Host $http_host;
41
-    }
42
-}

+ 0
- 1
react/debian/po/POTFILES.in ファイルの表示

@@ -1 +0,0 @@
1
-[type: gettext/rfc822deb] jitsi-meet.templates

+ 0
- 98
react/debian/po/templates.pot ファイルの表示

@@ -1,98 +0,0 @@
1
-#
2
-#, fuzzy
3
-msgid ""
4
-msgstr ""
5
-"Project-Id-Version: jitsi-meet\n"
6
-"Report-Msgid-Bugs-To: jitsi-meet@packages.debian.org\n"
7
-"POT-Creation-Date: 2014-09-03 17:26+0200\n"
8
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
9
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
10
-"Language-Team: LANGUAGE <LL@li.org>\n"
11
-"Language: \n"
12
-"MIME-Version: 1.0\n"
13
-"Content-Type: text/plain; charset=CHARSET\n"
14
-"Content-Transfer-Encoding: 8bit\n"
15
-
16
-#. Type: select
17
-#. Choices
18
-#: ../jitsi-meet.templates:1001
19
-msgid "Self-signed certificate will be generated"
20
-msgstr ""
21
-
22
-#. Type: select
23
-#. Choices
24
-#: ../jitsi-meet.templates:1001
25
-msgid "A certificate is available and the files are uploaded on the server"
26
-msgstr ""
27
-
28
-#. Type: select
29
-#. Description
30
-#: ../jitsi-meet.templates:1002
31
-msgid "SSL certificate for the Jitsi Meet instance"
32
-msgstr ""
33
-
34
-#. Type: select
35
-#. Description
36
-#: ../jitsi-meet.templates:1002
37
-msgid ""
38
-"Jitsi Meet is best to be set up with an SSL certificate. Having no "
39
-"certificate, a self-signed one will be generated. Having a certificate "
40
-"signed by a recognised CA, it can be uploaded on the server and point its "
41
-"location. The default filenames will be /etc/ssl/--domain.name--.key for the "
42
-"key and /etc/ssl/--domain.name--.crt for the certificate."
43
-msgstr ""
44
-
45
-#. Type: string
46
-#. Description
47
-#: ../jitsi-meet.templates:2001
48
-msgid "Full local server path to the SSL key file:"
49
-msgstr ""
50
-
51
-#. Type: string
52
-#. Description
53
-#: ../jitsi-meet.templates:2001
54
-msgid ""
55
-"The full path to the SSL key file on the server. If it has not been "
56
-"uploaded, now is a good time to do so."
57
-msgstr ""
58
-
59
-#. Type: string
60
-#. Description
61
-#: ../jitsi-meet.templates:3001
62
-msgid "Full local server path to the SSL certificate file:"
63
-msgstr ""
64
-
65
-#. Type: string
66
-#. Description
67
-#: ../jitsi-meet.templates:3001
68
-msgid ""
69
-"The full path to the SSL certificate file on the server. If you haven't "
70
-"uploaded it, now is a good time to upload it in another console."
71
-msgstr ""
72
-
73
-#. Type: string
74
-#. Description
75
-#: ../jitsi-meet.templates:4001
76
-msgid "The hostname of the current installation:"
77
-msgstr ""
78
-
79
-#. Type: string
80
-#. Description
81
-#: ../jitsi-meet.templates:4001
82
-msgid ""
83
-"The value for the hostname that is set in Jitsi Videobridge installation."
84
-msgstr ""
85
-
86
-
87
-#. Type: string
88
-#. Description
89
-#: ../jitsi-meet.templates:5001
90
-msgid "for internal use"
91
-msgstr ""
92
-
93
-#. Type: string
94
-#. Description
95
-#: ../jitsi-meet.templates:5001
96
-msgid ""
97
-"Jitsi Videobridge installation can use its internal jetty to serve static meet pages."
98
-msgstr ""

+ 0
- 14
react/debian/rules ファイルの表示

@@ -1,14 +0,0 @@
1
-#!/usr/bin/make -f
2
-
3
-# Uncomment this to turn on verbose mode.
4
-#export DH_VERBOSE=1
5
-
6
-%:
7
-	dh $@
8
-
9
-# we skip making Makefile exists for updating browserify modules when developing
10
-override_dh_auto_build:
11
-
12
-override_dh_install:
13
-	dh_installdirs
14
-	dh_install -X/config.js -X/package.json

+ 0
- 1
react/debian/source/format ファイルの表示

@@ -1 +0,0 @@
1
-3.0 (quilt)

バイナリ
react/favicon.ico ファイルの表示


+ 0
- 139
react/features/app/components/App.web.js ファイルの表示

@@ -1,139 +0,0 @@
1
-import React from 'react';
2
-import { Provider } from 'react-redux';
3
-import {
4
-    browserHistory,
5
-    Route,
6
-    Router
7
-} from 'react-router';
8
-import { push, syncHistoryWithStore } from 'react-router-redux';
9
-
10
-import { getDomain } from '../../base/connection';
11
-import { RouteRegistry } from '../../base/navigator';
12
-
13
-import { AbstractApp } from './AbstractApp';
14
-
15
-/**
16
- * Root application component.
17
- *
18
- * @extends AbstractApp
19
- */
20
-export class App extends AbstractApp {
21
-    /**
22
-     * Initializes a new App instance.
23
-     *
24
-     * @param {Object} props - The read-only React Component props with which
25
-     * the new instance is to be initialized.
26
-     */
27
-    constructor(props) {
28
-        super(props);
29
-
30
-        /**
31
-         * Create an enhanced history that syncs navigation events with the
32
-         * store.
33
-         * @link https://github.com/reactjs/react-router-redux#how-it-works
34
-         */
35
-        this.history = syncHistoryWithStore(browserHistory, props.store);
36
-
37
-        // Bind event handlers so they are only bound once for every instance.
38
-        this._onRouteEnter = this._onRouteEnter.bind(this);
39
-        this._routerCreateElement = this._routerCreateElement.bind(this);
40
-    }
41
-
42
-    /**
43
-     * Implements React's {@link Component#render()}.
44
-     *
45
-     * @inheritdoc
46
-     * @returns {ReactElement}
47
-     */
48
-    render() {
49
-        const routes = RouteRegistry.getRoutes();
50
-
51
-        /* eslint-disable no-extra-parens */
52
-        return (
53
-            <Provider store = { this.props.store }>
54
-                <Router
55
-                    createElement = { this._routerCreateElement }
56
-                    history = { this.history }>
57
-                    { routes.map(r => (
58
-                        <Route
59
-                            component = { r.component }
60
-                            key = { r.component }
61
-                            onEnter = { this._onRouteEnter }
62
-                            path = { r.path } />
63
-                    )) }
64
-                </Router>
65
-            </Provider>
66
-        );
67
-
68
-        /* eslint-enable no-extra-parens */
69
-    }
70
-
71
-    /**
72
-     * Navigates to a specific Route (via platform-specific means).
73
-     *
74
-     * @param {Route} route - The Route to which to navigate.
75
-     * @returns {void}
76
-     */
77
-    _navigate(route) {
78
-        let path = route.path;
79
-        const store = this.props.store;
80
-
81
-        // The syntax :room bellow is defined by react-router. It "matches a URL
82
-        // segment up to the next /, ?, or #. The matched string is called a
83
-        // param."
84
-        path
85
-            = path.replace(
86
-                /:room/g,
87
-                store.getState()['features/base/conference'].room);
88
-
89
-        return store.dispatch(push(path));
90
-    }
91
-
92
-    /**
93
-     * Invoked by react-router to notify this App that a Route is about to be
94
-     * rendered.
95
-     *
96
-     * @private
97
-     * @returns {void}
98
-     */
99
-    _onRouteEnter() {
100
-        // XXX The following is mandatory. Otherwise, moving back & forward
101
-        // through the browser's history could leave this App on the Conference
102
-        // page without a room name.
103
-
104
-        // Our Router configuration (at the time of this writing) is such that
105
-        // each Route corresponds to a single URL. Hence, entering into a Route
106
-        // is like opening a URL.
107
-
108
-        // XXX In order to unify work with URLs in web and native environments,
109
-        // we will construct URL here with correct domain from config.
110
-        const currentDomain = getDomain(this.props.store.getState);
111
-        const url
112
-            = new URL(window.location.pathname, `https://${currentDomain}`)
113
-                .toString();
114
-
115
-        this._openURL(url);
116
-    }
117
-
118
-    /**
119
-     * Create a ReactElement from the specified component and props on behalf of
120
-     * the associated Router.
121
-     *
122
-     * @param {Component} component - The component from which the ReactElement
123
-     * is to be created.
124
-     * @param {Object} props - The read-only React Component props with which
125
-     * the ReactElement is to be initialized.
126
-     * @private
127
-     * @returns {ReactElement}
128
-     */
129
-    _routerCreateElement(component, props) {
130
-        return this._createElement(component, props);
131
-    }
132
-}
133
-
134
-/**
135
- * App component's property types.
136
- *
137
- * @static
138
- */
139
-App.propTypes = AbstractApp.propTypes;

+ 0
- 0
react/features/base/lib-jitsi-meet/_.web.js ファイルの表示


+ 9
- 1
react/features/base/lib-jitsi-meet/index.js ファイルの表示

@@ -21,7 +21,15 @@ import './_';
21 21
 
22 22
 // Re-export JitsiMeetJS from the library lib-jitsi-meet to (the other features
23 23
 // of) the project jitsi-meet-react.
24
-import JitsiMeetJS from 'lib-jitsi-meet';
24
+//
25
+// TODO The Web support implemented by the jitsi-meet project explicitly uses
26
+// the library lib-jitsi-meet as a binary and keeps it out of the application
27
+// bundle. The mobile support implemented by the jitsi-meet-react project did
28
+// not get to keeping the lib-jitsi-meet library out of the application bundle
29
+// and even used it from source. As an intermediate step, start using the
30
+// library lib-jitsi-meet as a binary on mobile at the time of this writing. In
31
+// the future, implement not packaging it in the application bundle.
32
+import JitsiMeetJS from 'lib-jitsi-meet/lib-jitsi-meet.min';
25 33
 
26 34
 export { JitsiMeetJS as default };
27 35
 

+ 0
- 1
react/features/base/media/components/_.web.js ファイルの表示

@@ -1 +0,0 @@
1
-export * from './web';

+ 0
- 50
react/features/base/media/components/web/Audio.js ファイルの表示

@@ -1,50 +0,0 @@
1
-import React, { Component } from 'react';
2
-
3
-/**
4
- * The React equivalent of Web's audio element.
5
- *
6
- * @extends Component
7
- */
8
-export class Audio extends Component {
9
-    /**
10
-     * Implements React's {@link Component#render()}.
11
-     *
12
-     * @inheritdoc
13
-     * @returns {ReactElement}
14
-     */
15
-    render() {
16
-        // TODO URL.releaseObjectURL on componentDid/WillUnmount
17
-        const src = this.props.stream
18
-            ? URL.createObjectURL(this.props.stream)
19
-            : '';
20
-
21
-        return (
22
-            <audio
23
-                autoPlay = { true }
24
-                muted = { this.props.muted }
25
-                src = { src } />
26
-        );
27
-    }
28
-
29
-    /**
30
-     * Implements shouldComponentUpdate of React Component. We don't update
31
-     * component if stream has not changed.
32
-     *
33
-     * @inheritdoc
34
-     * @param {Object} nextProps - Props that component is going to receive.
35
-     * @returns {boolean}
36
-     */
37
-    shouldComponentUpdate(nextProps) {
38
-        return (nextProps.stream || {}).id !== (this.props.stream || {}).id;
39
-    }
40
-}
41
-
42
-/**
43
- * Audio component's property types.
44
- *
45
- * @static
46
- */
47
-Audio.propTypes = {
48
-    muted: React.PropTypes.bool,
49
-    stream: React.PropTypes.object
50
-};

+ 0
- 68
react/features/base/media/components/web/Video.js ファイルの表示

@@ -1,68 +0,0 @@
1
-import React, { Component } from 'react';
2
-
3
-import { styles } from './styles';
4
-
5
-/**
6
- * Web version of Audio component.
7
- * @extends Component
8
- */
9
-export class Video extends Component {
10
-    /**
11
-     * Implements React's {@link Component#render()}.
12
-     *
13
-     * @inheritdoc
14
-     * @returns {ReactElement|null}
15
-     */
16
-    render() {
17
-        const stream = this.props.stream;
18
-
19
-        if (stream) {
20
-            // TODO URL.releaseObjectURL on componentDid/WillUnmount
21
-            const src = URL.createObjectURL(stream);
22
-            const style
23
-                = this.props.mirror ? styles.mirroredVideo : styles.video;
24
-
25
-            return (
26
-                <video
27
-                    autoPlay = { true }
28
-                    muted = { this.props.muted }
29
-                    onPlaying = { this.props.onPlaying }
30
-                    src = { src }
31
-                    style = { style } />
32
-            );
33
-        }
34
-
35
-        return null;
36
-    }
37
-
38
-    /**
39
-     * Implements shouldComponentUpdate of React Component. We don't update
40
-     * component if stream has not changed.
41
-     *
42
-     * @inheritdoc
43
-     * @param {Object} nextProps - Props that component is going to receive.
44
-     * @returns {boolean}
45
-     */
46
-    shouldComponentUpdate(nextProps) {
47
-        return (nextProps.stream || {}).id !== (this.props.stream || {}).id;
48
-    }
49
-}
50
-
51
-/**
52
- * Video component's property types.
53
- *
54
- * @static
55
- */
56
-Video.propTypes = {
57
-    mirror: React.PropTypes.bool,
58
-    muted: React.PropTypes.bool,
59
-    onPlaying: React.PropTypes.func,
60
-    stream: React.PropTypes.object,
61
-
62
-    /**
63
-     * Not used on Web. Introduced for the benefit of React Native. For more
64
-     * details, refer to the zOrder property of the Video class for React
65
-     * Native (i.e. ../native/Video.js).
66
-     */
67
-    zOrder: React.PropTypes.number
68
-};

+ 0
- 20
react/features/base/media/components/web/VideoTrack.js ファイルの表示

@@ -1,20 +0,0 @@
1
-import { connect } from 'react-redux';
2
-
3
-import { AbstractVideoTrack } from '../AbstractVideoTrack';
4
-
5
-/**
6
- * Component that renders video element for a specified video track.
7
- *
8
- * @extends AbstractVideoTrack
9
- */
10
-class VideoTrack extends AbstractVideoTrack {
11
-}
12
-
13
-/**
14
- * VideoTrack component's property types.
15
- *
16
- * @static
17
- */
18
-VideoTrack.propTypes = AbstractVideoTrack.propTypes;
19
-
20
-export default connect()(VideoTrack);

+ 0
- 3
react/features/base/media/components/web/index.js ファイルの表示

@@ -1,3 +0,0 @@
1
-export * from './Audio';
2
-export * from './Video';
3
-export { default as VideoTrack } from './VideoTrack';

+ 0
- 24
react/features/base/media/components/web/styles.js ファイルの表示

@@ -1,24 +0,0 @@
1
-/**
2
- * Make video element fill its container.
3
- */
4
-const video = {
5
-    flex: 1,
6
-    objectFit: 'cover',
7
-    width: '100%'
8
-};
9
-
10
-/**
11
- * Transform local videos to behave like a mirror.
12
- */
13
-const mirroredVideo = {
14
-    ...video,
15
-    transform: 'scaleX(-1)'
16
-};
17
-
18
-/**
19
- * Web-specific styles for media components.
20
- */
21
-export const styles = {
22
-    mirroredVideo,
23
-    video
24
-};

+ 0
- 43
react/features/base/react/components/Container.web.js ファイルの表示

@@ -1,43 +0,0 @@
1
-import { stopEventPropagation } from '../functions';
2
-import AbstractContainer from './AbstractContainer';
3
-
4
-/**
5
- * Represents a container of React Component children with a style.
6
- *
7
- * @extends AbstractContainer
8
- */
9
-export class Container extends AbstractContainer {
10
-
11
-    /**
12
-     * Implements React's {@link Component#render()}.
13
-     *
14
-     * @inheritdoc
15
-     * @returns {ReactElement}
16
-     */
17
-    render() {
18
-        // eslint-disable-next-line prefer-const
19
-        let { onClick, style, visible, ...props } = this.props;
20
-
21
-        // visible
22
-        if (typeof visible !== 'undefined' && !visible) {
23
-            style = {
24
-                ...style,
25
-                display: 'none'
26
-            };
27
-        }
28
-
29
-        // onClick
30
-        (typeof onClick === 'function')
31
-            && (props.onClick = stopEventPropagation(onClick));
32
-
33
-        // eslint-disable-next-line object-property-newline
34
-        return this._render('div', { ...props, style });
35
-    }
36
-}
37
-
38
-/**
39
- * Container component's property types.
40
- *
41
- * @static
42
- */
43
-Container.propTypes = AbstractContainer.propTypes;

+ 0
- 1
react/features/base/styles/components/_.web.js ファイルの表示

@@ -1 +0,0 @@
1
-export * from './web';

+ 0
- 1
react/features/base/styles/components/web/index.js ファイルの表示

@@ -1 +0,0 @@
1
-export * from './styles';

+ 0
- 2207
react/features/base/styles/components/web/styles/FontAwesome.css
ファイル差分が大きすぎるため省略します
ファイルの表示


+ 0
- 1
react/features/base/styles/components/web/styles/index.js ファイルの表示

@@ -1 +0,0 @@
1
-require('style!./FontAwesome.css');

+ 0
- 23
react/features/base/styles/shimStyles.web.js ファイルの表示

@@ -1,23 +0,0 @@
1
-/**
2
- * Shim style properties to work correctly on Web.
3
- *
4
- * Some generic properties used by react-native for styling require additional
5
- * style fields to be included in order to work on Web. For example, setting the
6
- * `flex` property to control the flexbox layout also requires setting the
7
- * `display` property to `flexbox` for the `flex` style to take effect.
8
- *
9
- * Using this shimStyles method allows us to minimize the number of style
10
- * declarations that need to be set or overridden for specific platforms.
11
- *
12
- * @param {Object} styles - A dictionary of named style definitions.
13
- * @returns {Object}
14
- */
15
-export function shimStyles(styles) {
16
-    // The flexbox layout must be explicitly chosen on Web by assigning flex to
17
-    // display. This way the React Native styles can be reused on Web.
18
-    if (styles.flex) {
19
-        styles.display = 'flex';
20
-    }
21
-
22
-    return styles;
23
-}

+ 0
- 84
react/features/base/util/loadScript.web.js ファイルの表示

@@ -1,84 +0,0 @@
1
-/**
2
- * Loads a script from a specific source. This is an extended version of
3
- * loadScript method from ScriptUtil in lib-jitsi-meet.
4
- *
5
- * @param {string} src - The source from the which the script is to be
6
- * (down)loaded. Can be absolute or relative URL.
7
- * @param {Object} options - Additional options.
8
- * @param {boolean} options.async=true - True to asynchronously load the script
9
- * or false to synchronously load the script.
10
- * @param {boolean} options.prepend=false - True to schedule the loading of the
11
- * script as soon as possible or false to schedule the loading of the script at
12
- * the end of the scripts known at the time.
13
- * @returns {void}
14
- */
15
-export function loadScript(
16
-    src,
17
-    options = {
18
-        async: true,
19
-        prepend: false
20
-    }) {
21
-    return new Promise((resolve, reject) => {
22
-        const d = document;
23
-        const tagName = 'script';
24
-        const script = d.createElement(tagName);
25
-        const referenceNode = d.getElementsByTagName(tagName)[0];
26
-
27
-        let scriptSource = src;
28
-
29
-        if (isRelativeURL(src)) {
30
-            // Find the src URL of the current loaded script and use it as the
31
-            // base of the specified src (argument).
32
-            const scriptEl = document.currentScript;
33
-
34
-            if (scriptEl) {
35
-                const scriptSrc = scriptEl.src;
36
-                const baseScriptSrc
37
-                    = scriptSrc.substring(0, scriptSrc.lastIndexOf('/') + 1);
38
-
39
-                if (scriptSrc && baseScriptSrc) {
40
-                    scriptSource = new URL(src, baseScriptSrc).toString();
41
-                }
42
-            }
43
-        }
44
-
45
-        script.async = Boolean(options.async);
46
-        script.onerror = reject;
47
-        script.onload = resolve;
48
-        script.src = scriptSource;
49
-
50
-        if (referenceNode) {
51
-            if (options.prepend) {
52
-                referenceNode.parentNode.insertBefore(script, referenceNode);
53
-            } else {
54
-                referenceNode.parentNode.appendChild(script);
55
-            }
56
-        } else {
57
-            const head = d.getElementsByTagName('head')[0];
58
-
59
-            head.appendChild(script);
60
-        }
61
-    });
62
-}
63
-
64
-/**
65
- * Determines if passed URL is relative or not.
66
- *
67
- * @param {string} url - URL.
68
- * @returns {boolean}
69
- */
70
-function isRelativeURL(url) {
71
-    let relative;
72
-
73
-    // XXX If the specified value is an absolute URL, then an URL object will be
74
-    // correctly initialized from it. Otherwise, an exception will be thrown and
75
-    // we will treat the specified value as a relative URL.
76
-    try {
77
-        new URL(url); // eslint-disable-line no-new
78
-        relative = false;
79
-    } catch (ex) {
80
-        relative = true;
81
-    }
82
-
83
-    return relative;
84
-}

+ 0
- 45
react/features/conference/components/Avatar.web.js ファイルの表示

@@ -1,45 +0,0 @@
1
-import React, { Component } from 'react';
2
-
3
-import { styles } from './styles';
4
-
5
-/**
6
- * Display a participant avatar.
7
- */
8
-export default class Avatar extends Component {
9
-    /**
10
-     * Implements React's {@link Component#render()}.
11
-     *
12
-     * @inheritdoc
13
-     */
14
-    render() {
15
-        const style = {
16
-
17
-            // XXX Avatar is expected to display the whole image.
18
-            objectFit: 'contain',
19
-
20
-            ...styles.avatar,
21
-            ...this.props.style
22
-        };
23
-
24
-        return (
25
-            <img
26
-                src = { this.props.uri }
27
-                style = { style } />
28
-        );
29
-    }
30
-}
31
-
32
-/**
33
- * Avatar component's property types.
34
- *
35
- * @static
36
- */
37
-Avatar.propTypes = {
38
-
39
-    /**
40
-     * The optional style to add to an Avatar in order to customize its base
41
-     * look (and feel).
42
-     */
43
-    style: React.PropTypes.object,
44
-    uri: React.PropTypes.string
45
-};

+ 0
- 1
react/features/filmStrip/components/_.web.js ファイルの表示

@@ -1 +0,0 @@
1
-export * from './web';

+ 0
- 22
react/features/filmStrip/components/web/AudioMutedIndicator.js ファイルの表示

@@ -1,22 +0,0 @@
1
-import React, { Component } from 'react';
2
-import Icon from 'react-fontawesome';
3
-
4
-import { styles } from './styles';
5
-
6
-/**
7
- * Thumbnail badge for displaying the audio mute status of a participant.
8
- */
9
-export class AudioMutedIndicator extends Component {
10
-    /**
11
-     * Implements React's {@link Component#render()}.
12
-     *
13
-     * @inheritdoc
14
-     */
15
-    render() {
16
-        return (
17
-            <Icon
18
-                name = 'microphone-slash'
19
-                style = { styles.audioMutedIndicator } />
20
-        );
21
-    }
22
-}

+ 0
- 25
react/features/filmStrip/components/web/DominantSpeakerIndicator.js ファイルの表示

@@ -1,25 +0,0 @@
1
-import React, { Component } from 'react';
2
-import Icon from 'react-fontawesome';
3
-
4
-import { styles } from './styles';
5
-
6
-/**
7
- * Thumbnail badge showing that the participant is the dominant speaker in
8
- * the conference.
9
- */
10
-export class DominantSpeakerIndicator extends Component {
11
-    /**
12
-     * Implements React's {@link Component#render()}.
13
-     *
14
-     * @inheritdoc
15
-     */
16
-    render() {
17
-        return (
18
-            <div style = { styles.dominantSpeakerIndicatorBackground }>
19
-                <Icon
20
-                    name = 'bullhorn'
21
-                    style = { styles.dominantSpeakerIndicator } />
22
-            </div>
23
-        );
24
-    }
25
-}

+ 0
- 22
react/features/filmStrip/components/web/ModeratorIndicator.js ファイルの表示

@@ -1,22 +0,0 @@
1
-import React, { Component } from 'react';
2
-import Icon from 'react-fontawesome';
3
-
4
-import { styles } from './styles';
5
-
6
-/**
7
- * Thumbnail badge showing that the participant is a conference moderator.
8
- */
9
-export class ModeratorIndicator extends Component {
10
-    /**
11
-     * Implements React's {@link Component#render()}.
12
-     *
13
-     * @inheritdoc
14
-     */
15
-    render() {
16
-        return (
17
-            <Icon
18
-                name = 'star'
19
-                style = { styles.moderatorIndicator } />
20
-        );
21
-    }
22
-}

+ 0
- 24
react/features/filmStrip/components/web/VideoMutedIndicator.js ファイルの表示

@@ -1,24 +0,0 @@
1
-import React, { Component } from 'react';
2
-import Icon from 'react-fontawesome';
3
-
4
-import { styles } from './styles';
5
-
6
-/**
7
- * Thumbnail badge for displaying the video mute status of a participant.
8
- */
9
-export class VideoMutedIndicator extends Component {
10
-    /**
11
-     * Implements React's {@link Component#render()}.
12
-     *
13
-     * @inheritdoc
14
-     */
15
-    render() {
16
-        // TODO: This should use video-camera-slash, but that doesn't exist in
17
-        // the fontawesome icon set yet.
18
-        return (
19
-            <Icon
20
-                name = 'eye-slash'
21
-                style = { styles.videoMutedIndicator } />
22
-        );
23
-    }
24
-}

+ 0
- 5
react/features/filmStrip/components/web/index.js ファイルの表示

@@ -1,5 +0,0 @@
1
-export * from './AudioMutedIndicator';
2
-export * from './DominantSpeakerIndicator';
3
-export * from './ModeratorIndicator';
4
-export * from './styles';
5
-export * from './VideoMutedIndicator';

+ 0
- 46
react/features/filmStrip/components/web/styles.js ファイルの表示

@@ -1,46 +0,0 @@
1
-import { createStyleSheet } from '../../../base/styles';
2
-
3
-import { styles as platformIndependentStyles } from '../styles';
4
-
5
-/**
6
- * Web-specific styles for the film strip.
7
- */
8
-export const styles = createStyleSheet(platformIndependentStyles, {
9
-
10
-    /**
11
-     * Audio muted indicator style.
12
-     */
13
-    audioMutedIndicator: {
14
-        textShadow: '1px 1px 2px black'
15
-    },
16
-
17
-    /**
18
-     * Dominant speaker indicator background style.
19
-     */
20
-    dominantSpeakerIndicatorBackground: {
21
-        height: 15,
22
-        width: 15
23
-    },
24
-
25
-    /**
26
-     * Moderator indicator style.
27
-     */
28
-    moderatorIndicator: {
29
-        textShadow: '1px 1px 2px black'
30
-    },
31
-
32
-    /**
33
-     * Video thumbnail style.
34
-     */
35
-    thumbnail: {
36
-        height: 120,
37
-        width: 120
38
-    },
39
-
40
-    /**
41
-     * Video muted indicator style.
42
-     */
43
-    videoMutedIndicator: {
44
-        textShadow: '1px 1px 2px black'
45
-    }
46
-});

+ 0
- 89
react/features/toolbar/components/Toolbar.web.js ファイルの表示

@@ -1,89 +0,0 @@
1
-import React from 'react';
2
-import { connect } from 'react-redux';
3
-
4
-import { MEDIA_TYPE } from '../../base/media';
5
-import { Container } from '../../base/react';
6
-import { ColorPalette } from '../../base/styles';
7
-
8
-import {
9
-    AbstractToolbar,
10
-    mapStateToProps
11
-} from './AbstractToolbar';
12
-import { styles } from './styles';
13
-import ToolbarButton from './ToolbarButton';
14
-
15
-/**
16
- * Implements the conference toolbar on Web.
17
- *
18
- * @extends AbstractToolbar
19
- */
20
-class Toolbar extends AbstractToolbar {
21
-    /**
22
-     * Implements React's {@link Component#render()}.
23
-     *
24
-     * @inheritdoc
25
-     * @returns {ReactElement}
26
-     */
27
-    render() {
28
-        const audioButtonStyles = this._getMuteButtonStyles(MEDIA_TYPE.AUDIO);
29
-        const videoButtonStyles = this._getMuteButtonStyles(MEDIA_TYPE.VIDEO);
30
-
31
-        return (
32
-            <Container
33
-                style = { styles.toolbarContainer }
34
-                visible = { this.props.visible }>
35
-
36
-                <div style = { styles.toolbarButtonsContainer }>
37
-                    <ToolbarButton
38
-                        iconName = { audioButtonStyles.iconName }
39
-                        iconStyle = { audioButtonStyles.iconStyle }
40
-
41
-                        // eslint-disable-next-line react/jsx-handler-names
42
-                        onClick = { this._toggleAudio }
43
-                        style = { audioButtonStyles.buttonStyle } />
44
-                    <ToolbarButton
45
-                        iconName = 'phone'
46
-                        iconStyle = { styles.icon }
47
-                        onClick = { this._onHangup }
48
-                        style = {{
49
-                            ...styles.toolbarButton,
50
-                            backgroundColor: ColorPalette.jitsiRed
51
-                        }} />
52
-                    <ToolbarButton
53
-                        iconName = { videoButtonStyles.iconName }
54
-                        iconStyle = { videoButtonStyles.iconStyle }
55
-
56
-                        // eslint-disable-next-line react/jsx-handler-names
57
-                        onClick = { this._toggleVideo }
58
-                        style = { videoButtonStyles.buttonStyle } />
59
-                </div>
60
-            </Container>
61
-        );
62
-    }
63
-}
64
-
65
-/**
66
- * Additional properties for various icons, which are now platform-dependent.
67
- * This is done to have common logic of generating styles for web and native.
68
- * TODO As soon as we have common font sets for web and native, this will no
69
- * longer be required.
70
- */
71
-Object.assign(Toolbar.prototype, {
72
-    audioIcon: 'microphone',
73
-    audioMutedIcon: 'microphone-slash',
74
-    videoIcon: 'video-camera',
75
-
76
-    // TODO Currently, for web version we're using default FontAwesome font set,
77
-    // which doesn't have 'slashed' version of 'video-camera' icon. But this
78
-    // should be changed as soon as we start to use custom Jitsi icons.
79
-    videoMutedIcon: 'video-camera'
80
-});
81
-
82
-/**
83
- * Toolbar component's property types.
84
- *
85
- * @static
86
- */
87
-Toolbar.propTypes = AbstractToolbar.propTypes;
88
-
89
-export default connect(mapStateToProps)(Toolbar);

+ 0
- 47
react/features/toolbar/components/ToolbarButton.web.js ファイルの表示

@@ -1,47 +0,0 @@
1
-import React from 'react';
2
-import Icon from 'react-fontawesome';
3
-
4
-import { stopEventPropagation } from '../../base/react';
5
-
6
-import AbstractToolbarButton from './AbstractToolbarButton';
7
-
8
-/**
9
- * Represents a button in Toolbar on Web.
10
- *
11
- * @extends AbstractToolbarButton
12
- */
13
-export default class ToolbarButton extends AbstractToolbarButton {
14
-
15
-    /**
16
-     * Renders the button of this Toolbar button.
17
-     *
18
-     * @param {Object} children - The children, if any, to be rendered inside
19
-     * the button. Presumably, contains the icon of this Toolbar button.
20
-     * @protected
21
-     * @returns {ReactElement} The button of this Toolbar button.
22
-     */
23
-    _renderButton(children) {
24
-        const props = {};
25
-
26
-        'onClick' in this.props
27
-            && (props.onClick = stopEventPropagation(this.props.onClick));
28
-        'style' in this.props && (props.style = this.props.style);
29
-
30
-        return React.createElement('button', props, children);
31
-    }
32
-
33
-    // eslint-disable-next-line valid-jsdoc
34
-    /**
35
-     * @inheritdoc
36
-     */
37
-    _renderIcon() {
38
-        return super._renderIcon(Icon);
39
-    }
40
-}
41
-
42
-/**
43
- * ToolbarButton component's property types.
44
- *
45
- * @static
46
- */
47
-ToolbarButton.propTypes = AbstractToolbarButton.propTypes;

+ 0
- 53
react/features/welcome/components/WelcomePage.web.js ファイルの表示

@@ -1,53 +0,0 @@
1
-import React from 'react';
2
-import { connect } from 'react-redux';
3
-
4
-import {
5
-    AbstractWelcomePage,
6
-    mapStateToProps
7
-} from './AbstractWelcomePage';
8
-import { styles } from './styles';
9
-
10
-/**
11
- * The web container rendering the welcome page.
12
- *
13
- * @extends AbstractWelcomePage
14
- */
15
-class WelcomePage extends AbstractWelcomePage {
16
-    /**
17
-     * Renders a prompt for entering a room name.
18
-     *
19
-     * @returns {ReactElement}
20
-     */
21
-    render() {
22
-        /* eslint-disable react/jsx-no-bind */
23
-
24
-        return (
25
-            <div style = { styles.container }>
26
-                { this._renderLocalVideo() }
27
-                <div style = { styles.roomContainer }>
28
-                    <p style = { styles.title }>Enter room name</p>
29
-                    <input
30
-                        onChange = { ev => this._onRoomChange(ev.target.value) }
31
-                        style = { styles.textInput }
32
-                        type = 'text'
33
-                        value = { this.state.room || '' } />
34
-                    <button
35
-                        disabled = { this._isJoinDisabled() }
36
-                        onClick = { this._onJoinClick }
37
-                        style = { styles.button }>JOIN</button>
38
-                </div>
39
-            </div>
40
-        );
41
-
42
-        /* eslint-enable react/jsx-no-bind */
43
-    }
44
-}
45
-
46
-/**
47
- * WelcomePage component's property types.
48
- *
49
- * @static
50
- */
51
-WelcomePage.propTypes = AbstractWelcomePage.propTypes;
52
-
53
-export default connect(mapStateToProps)(WelcomePage);

+ 0
- 10
react/index-template.html ファイルの表示

@@ -1,10 +0,0 @@
1
-<!DOCTYPE html>
2
-<html>
3
-<head>
4
-    <meta charset="UTF-8">
5
-    <meta http-equiv="content-type" content="text/html;charset=utf-8">
6
-    <title>Jitsi Meet</title>
7
-</head>
8
-<body>
9
-</body>
10
-</html>

+ 0
- 1
react/index.android.js ファイルの表示

@@ -1 +0,0 @@
1
-export * from './index.native';

+ 0
- 0
react/index.ios.js ファイルの表示


変更されたファイルが多すぎるため、一部のファイルは表示されません

読み込み中…
キャンセル
保存