├── .eslintrc.json
├── .gitignore
├── ReadMe.txt
├── app
├── ahelper.js
├── alert.js
├── app.js
├── sound.js
├── translation-en.js
└── version.js
├── build.bat
├── build.sh
├── cache_detection.js
├── compiler
└── compiler.jar
├── css
├── bootstrap-navbar-hack.css
├── bootstrap-orig.css
├── bootstrap-theme.css
├── bootstrap.css
└── style.css
├── customization
├── hmtg.js
└── tutoring.js
├── dep
├── adapter.js
├── adapter.min.js
├── angular-translate-loader-static-files-orig.js
├── angular-translate-loader-static-files-orig.min.js
├── angular-translate-loader-static-files.js
├── angular-translate-loader-static-files.min.js
├── angular-translate-orig.js
├── angular-translate.js
├── angular-translate.min-orig.js
├── angular-translate.min.js
├── angular.js
├── angular.min.js
├── empty-line.js
├── hmtg.min.js
├── html2canvas.js
├── html2canvas.min.js
├── lazy-helper.js
├── mediasoup-client.js
├── mediasoup-client.min.js
├── ocLazyLoad-orig.js
├── ocLazyLoad-orig.min.js
├── ocLazyLoad.js
├── ocLazyLoad.min.js
├── protoo-client.js
├── protoo-client.min.js
├── ui-bootstrap-tpls-0.12.0-orig.js
├── ui-bootstrap-tpls-0.12.0-orig.min.js
├── ui-bootstrap-tpls-0.12.0.js
└── ui-bootstrap-tpls-0.12.0.min.js
├── docs
├── 1-1.png
├── 2-0a.png
├── 2-0b.png
├── 2-0c.png
├── 2-1.png
├── 2-10.png
├── 2-11.png
├── 2-12.png
├── 2-13.png
├── 2-14.png
├── 2-15.png
├── 2-16.png
├── 2-17.png
├── 2-18.png
├── 2-19.png
├── 2-2.png
├── 2-20.png
├── 2-21.png
├── 2-22.png
├── 2-23.png
├── 2-24.png
├── 2-25.png
├── 2-26.png
├── 2-27.png
├── 2-28.png
├── 2-29.png
├── 2-3.png
├── 2-30.png
├── 2-31.png
├── 2-32.png
├── 2-33.png
├── 2-34.png
├── 2-35.png
├── 2-36.png
├── 2-4.png
├── 2-5.png
├── 2-6.png
├── 2-7.png
├── 2-8.png
├── 2-9.png
├── 3-1.png
├── 3-10.png
├── 3-11.png
├── 3-12.png
├── 3-13.png
├── 3-14.png
├── 3-15.png
├── 3-16.png
├── 3-2.png
├── 3-3.png
├── 3-4.png
├── 3-5.png
├── 3-6.png
├── 3-7.png
├── 3-8.png
├── 3-9.png
├── index.htm
├── index_ja.htm
├── index_ko.htm
├── index_zh_CN.htm
└── index_zh_TW.htm
├── fonts
├── MaterialIcons-Regular.woff2
├── glyphicons-halflings-regular.eot
├── glyphicons-halflings-regular.svg
├── glyphicons-halflings-regular.ttf
├── glyphicons-halflings-regular.woff
└── glyphicons-halflings-regular.woff2
├── img
├── close.png
├── cursor.png
├── icon_dummy_16x16.png
├── icon_dummy_32x32.png
├── icon_event_ongoing.png
├── icon_event_upcoming.png
├── icon_file.png
├── icon_file_encrypted.png
├── icon_file_encrypted_shared.png
├── icon_file_read.png
├── icon_file_read_encrypted.png
├── icon_file_read_encrypted_shared.png
├── icon_file_read_shared.png
├── icon_file_shared.png
├── icon_im.png
├── icon_im_add.png
├── icon_im_delete.png
├── icon_im_emoticon.png
├── icon_im_file.png
├── icon_im_file_large.png
├── icon_im_font.png
├── icon_im_invite.png
├── icon_im_large.png
├── icon_im_launch.png
├── icon_im_log.png
├── icon_im_log_large.png
├── icon_im_send.png
├── icon_im_transfer.png
├── icon_im_visit.png
├── icon_main.png
├── icon_main2.png
├── icon_main3.png
├── icon_missed_call.png
├── icon_mobile.png
├── icon_mystatus.png
├── icon_server.png
├── icon_server2.png
├── icon_server_mmc.png
├── icon_share_playback.png
├── icon_share_playback_userid.png
├── icon_signin.png
├── icon_sipim1.png
├── icon_sipim2.png
├── icon_sipim_large.png
├── icon_textmark_bold.png
├── icon_textmark_bold2.png
├── icon_textmark_italic.png
├── icon_textmark_italic2.png
├── icon_textmark_left.png
├── icon_textmark_left2.png
├── icon_textmark_right.png
├── icon_textmark_right2.png
├── icon_textmark_symbol.png
├── icon_textmark_symbol2.png
├── icon_user.png
├── icon_user_away.png
├── icon_user_busy.png
├── icon_user_folded.png
├── icon_user_inmeeting.png
├── icon_user_mobile.png
├── icon_user_offline.png
├── icon_user_online.png
├── icon_user_open.png
├── icon_user_unfolded.png
├── icon_user_visitor.png
├── icon_user_web.png
├── jnagent_16x16.png
├── jnagent_32x32.png
├── jnagent_48x48.png
├── jnagent_512x512.png
├── jnagent_72x72.png
├── logo.png
├── mark
│ ├── alphatest.png
│ ├── apple.png
│ ├── emoji-crying.png
│ ├── emoji-smile.png
│ ├── emoji-sunglass.png
│ ├── logo.png
│ ├── msgr.png
│ └── star.png
├── pointer.png
├── search.png
└── vcli.png
├── index-dummy.htm
├── index.htm
├── joinnet
├── advanced.js
├── audio_capture.js
├── audio_codec.js
├── audio_playback.js
├── board.js
├── browser.js
├── chat.js
├── dt.js
├── jhelper.js
├── joinnet.js
├── media_control.js
├── mediasoup_webrtc.js
├── mypicture.js
├── playback.js
├── reconnect_name.js
├── userlist.js
├── video_capture.js
├── video_codec.js
└── video_playback.js
├── lang
├── translation-base.json
├── translation-en.json
├── translation-ja.json
├── translation-ko.json
├── translation-zh_CN.json
└── translation-zh_TW.json
├── lazy_htm
├── _internal_option_test.htm
├── joinnet_browser.htm
├── joinnet_chat.htm
├── joinnet_chat2.htm
├── joinnet_image_bar.htm
├── joinnet_jnr.htm
├── joinnet_playback.htm
├── joinnet_rdc.htm
├── joinnet_sdt.htm
├── joinnet_stat.htm
├── joinnet_transcoding.htm
├── joinnet_video.htm
├── navitem_jnj.htm
├── navitem_log.htm
├── navitem_missed_call.htm
├── navitem_prompt.htm
├── navitem_reconnect_name.htm
├── option_demo.htm
├── option_joinnet.htm
├── option_msgr.htm
├── option_mypicture.htm
├── option_nativeapp.htm
├── option_score.htm
├── option_url.htm
├── option_webapp.htm
└── option_webrtc.htm
├── lazy_js
├── _codepage_encoding.js
├── _html2canvas.js
├── _internal_option_test.js
├── _pdf-lib.js
├── _pdf.js
├── joinnet_browser.js
├── joinnet_chat.js
├── joinnet_dt.js
├── joinnet_jnr.js
├── joinnet_playback.js
├── joinnet_stat.js
├── joinnet_transcoding.js
├── joinnet_video.js
├── modal_change_jnr_password.js
├── modal_download_complete.js
├── modal_edit_profile.js
├── modal_image_mark.js
├── modal_import_media.js
├── modal_jeditor.js
├── modal_move_office.js
├── modal_msgr_signin.js
├── modal_pick_user.js
├── modal_rename.js
├── modal_share_jnr.js
├── modal_short_message.js
├── modal_snapshot.js
├── modal_style.js
├── modal_upload_slide.js
├── modal_view_record.js
├── navitem_jnj.js
├── navitem_log.js
├── navitem_missed_call.js
├── navitem_prompt.js
├── navitem_reconnect_name.js
├── option_joinnet.js
├── option_msgr.js
├── option_mypicture.js
├── option_url.js
├── option_webapp.js
└── option_webrtc.js
├── lazy_js_min
├── _codepage_encoding.min.js
├── _html2canvas.min.js
├── _pdf-lib.min.js
└── _pdf.min.js
├── manifest.json
├── media
├── alert.mp3
├── alert.ogg
├── alert.wav
├── online.mp3
├── online.ogg
├── online.wav
├── ringin.mp3
├── ringin.ogg
├── ringin.wav
├── small.mp4
├── small.webm
├── speaker.mp3
├── speaker.ogg
├── speaker.wav
├── type.mp3
├── type.ogg
└── type.wav
├── msgr
├── checkIM.js
├── checkMessage.js
├── icon.js
├── imDlg.js
├── jnagentDlg.js
├── mhelper.js
├── missedCall.js
└── msgr.js
├── readme.md
├── sw.js
├── template
├── ChangeJnrPassword.htm
├── DeleteSlide.htm
├── DownloadComplete.htm
├── EditProfile.htm
├── ImageMark.htm
├── ImportMedia.htm
├── MeetingControl.htm
├── MoveOffice.htm
├── PickUser.htm
├── PlaybackJumpTo.htm
├── PollRequest.htm
├── PollResult.htm
├── PromptPassword.htm
├── Rename.htm
├── ShareJNR.htm
├── ShortMessage.htm
├── Snapshot.htm
├── Style.htm
├── UploadSlide.htm
├── ViewRecord.htm
├── WebOfficeVisitor.htm
├── imTitle.htm
├── jeditor.htm
└── msgrSignin.htm
├── whiteboard_new.js
└── worker
├── avc-codec.js
├── avc.js
├── dt_decode.js
├── dt_encode.js
├── g711_decode.js
├── g711_encode.js
├── gunzip.min.js
├── gzip.min.js
├── gzip_helper.js
├── h264_decode.js
├── libopus.js
├── ogv-decoder-video-vp8.js
├── openh264_decoder.js
├── openh264_encoder.js
├── opus.js
├── opus_decode.js
├── opus_encode.js
├── pdf.worker.js
├── test_worker.js
├── vp8_decode.js
├── vpx_decoder.js
├── vpx_encoder.js
├── worker_interval.js
├── worker_interval_40.js
├── worker_timeout.js
├── worklet-playback.js
├── worklet-record.js
├── zlib.min.js
└── zlib_and_gzip.min.js
/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "env": {
3 | "browser": true,
4 | "commonjs": true,
5 | "es6": true,
6 | "node": true
7 | },
8 | "parserOptions": {
9 | "ecmaFeatures": {
10 | "jsx": true
11 | },
12 | "sourceType": "module"
13 | },
14 | "rules": {
15 | "no-const-assign": "warn",
16 | "no-this-before-super": "warn",
17 | "no-undef": "warn",
18 | "no-unreachable": "warn",
19 | "no-unused-vars": "warn",
20 | "constructor-super": "warn",
21 | "valid-typeof": "warn"
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Specifies intentionally untracked files to ignore when using Git
2 | # http://git-scm.com/docs/gitignore
3 |
4 |
5 | **/*DS_Store
6 |
7 | **/*.js.map
8 | **/*.min.css
9 | **/*.css.map
10 | **/*.min.js
11 | !dep/*.min.js
12 | !lazy_js_min/_*.min.js
13 | !worker/*.min.js
14 |
15 | hmtgs.js
16 |
17 | worker/min/
18 | dist/
19 |
--------------------------------------------------------------------------------
/ReadMe.txt:
--------------------------------------------------------------------------------
1 | * Test
2 | 1. Set up a web server (such as xampp Apache) at the local computer
3 | 2. Add an aliase such as
4 |
5 | Require all granted
6 | AllowOverride All
7 | Order allow,deny
8 | Allow from all
9 |
10 | Alias /webjoinnet-angularjs "C:/yourfolder/webjoinnet-angularjs"
11 | 3. The web App can be tested at http://localhost/webjoinnet-angularjs/
12 |
13 | * Debug
14 | 1. In the file index-dummy.htm, there are two groups of
17 |
18 | They are used for production.
19 |
20 | The second group contains more entries.
21 | 2. At the bottom of file index.htm, there are two lines:
22 |
23 |
24 | This part can be replaced with the second group of
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |