-
+
In the form, enter any application name and description, accept Terms and Conditions and generate a secret. Enter Client ID, Secret ID, JWT token below and save it.
Email
-
API Key
-
-
API Secret
-
+
SDK Key
+
+
SDK Secret
+
JWT Token
diff --git a/sdkjs-plugins/content/zoom/index_zoom.html b/sdkjs-plugins/content/zoom/index_zoom.html
index 213adad3..0640ee17 100644
--- a/sdkjs-plugins/content/zoom/index_zoom.html
+++ b/sdkjs-plugins/content/zoom/index_zoom.html
@@ -93,6 +93,7 @@
.form-group {
display: flex;
flex-direction: column;
+ margin-bottom: 12px !important;
}
label {
font-size: 11px;
@@ -274,9 +275,22 @@
rule += "*::-webkit-scrollbar-track { background : " + oTheme["background-normal"] + ";}\n";
rule += "*::-webkit-scrollbar-track:hover { background : " + oTheme["background-toolbar-additional"] + ";}\n";
- rule += "*::-webkit-scrollbar-thumb { background-color : " + oTheme["background-toolbar"] + "; border-color : " + oTheme["border-regular-control"] + ";}\n";
+ rule += "*::-webkit-scrollbar-thumb { background-color : " + oTheme["background-toolbar"] + "!important; border-color : " + oTheme["border-regular-control"] + ";}\n";
rule += "*::-webkit-scrollbar-thumb:hover { background-color : " + oTheme["canvas-scroll-thumb-hover"] + ";}\n";
+ rule += ".select2-search__field { height: 20px; }\n";
+ rule += "*::-webkit-scrollbar { width: 9px !important; }\n";
+ rule += "*::-webkit-scrollbar-thumb { border-radius: 2px; background: no-repeat;}\n";
+
+ rule += `::selection {\
+ background-color: ${oTheme["highlight-text-select"]};\
+ color: ${oTheme["text-inverse"]};\
+ }`;
+
+ rule += "input::placeholder {\
+ font-size: 11px !important;\
+ }";
+
$('#nav-tool').css('background-color', oTheme["background-toolbar"]);
$("label").css('color', oTheme["text-normal"]);
$('.reconf-label, .switch-label, .label-settings').css('border-bottom', '1px dashed ' + oTheme["text-normal"]);
@@ -289,12 +303,12 @@
});
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/sdkjs-plugins/content/zoom/meeting.html b/sdkjs-plugins/content/zoom/meeting.html
index bb3e9a30..8965ee26 100644
--- a/sdkjs-plugins/content/zoom/meeting.html
+++ b/sdkjs-plugins/content/zoom/meeting.html
@@ -20,12 +20,12 @@
}
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/sdkjs-plugins/content/zoom/scripts/zoom.js b/sdkjs-plugins/content/zoom/scripts/zoom.js
index 9d53f9c7..63d607d2 100644
--- a/sdkjs-plugins/content/zoom/scripts/zoom.js
+++ b/sdkjs-plugins/content/zoom/scripts/zoom.js
@@ -130,6 +130,7 @@ var Ps;
}
};
+
window.switchForms = function(elmToHide, elmToShow) {
$(elmToHide).toggleClass('display-none');
$(elmToShow).toggleClass('display-none');
@@ -221,6 +222,12 @@ var Ps;
$('#configState').toggleClass('display-none');
});
$('#switch').click(function() {
+ if (apiKey == "" || secretKey == "") {
+ alert("SDK Key or Secret are empty. Check your credentials.");
+ $('#reconf').trigger("click");
+ return;
+ }
+
$('#create-meeting-container').toggleClass('display-none');
$('#iframe_join').toggleClass('display-none');
@@ -336,6 +343,31 @@ var Ps;
localStorage.setItem($('#secretKeyField').attr("data-id"), secretKey);
localStorage.setItem($('#tokenKeyField').attr("data-id"), tokenKey);
+ if (email !== "") {
+ if (localStorage.getItem($('#timezone').attr('data-id')) === null) {
+ if (oResponse.timezone != "") {
+ localStorage.setItem($('#timezone').attr('data-id'), oResponse.timezone);
+ $('#timezone').val(oResponse.timezone);
+ $('#timezone').trigger('change');
+ }
+ }
+ }
+ else {
+ if (localStorage.getItem($('#timezone').attr('data-id')) === null) {
+ if (oResponse.users[0].timezone != "") {
+ localStorage.setItem($('#timezone').attr('data-id'), oResponse.users[0].timezone);
+ $('#timezone').val(oResponse.users[0].timezone);
+ $('#timezone').trigger('change');
+ }
+ if (oResponse.users[0].email) {
+ email = oResponse.users[0].email;
+ $('#emailField').val(email);
+ localStorage.setItem($('#emailField').attr("data-id"), email);
+ }
+ }
+ }
+
+
$('#configState').toggleClass('display-none');
$('#create-meeting-container').toggleClass('display-none');
@@ -422,6 +454,31 @@ var Ps;
return isEmpty;
}
+ function CheckValidDate(aDateFromPicker, hour, min, timezone) {
+
+ let [year, month, day] = [parseInt(aDateFromPicker[2]), parseInt(aDateFromPicker[0]) - 1, parseInt(aDateFromPicker[1])];
+ hour = parseInt(hour);
+ min = parseInt(min);
+
+ let timezoneOffset = parseInt(timezone[4] + String(parseInt(timezone.slice(5,7)) * 60 + parseInt(timezone.slice(8,10))));
+ let curDate = new Date(Date.now());
+
+ let scheduleDate = new Date();
+ scheduleDate.setUTCFullYear(year);
+ scheduleDate.setUTCMonth(month);
+ scheduleDate.setUTCDate(day);
+ scheduleDate.setUTCHours(hour);
+ scheduleDate.setUTCMinutes(min);
+
+ scheduleDate.setUTCMinutes(scheduleDate.getUTCMinutes() - timezoneOffset);
+
+ if (curDate.getTime() > scheduleDate.getTime()) {
+ return false;
+ }
+
+ return true;
+ }
+
function CreateMeeting(isNowMeeting) {
if ($('#duration-hour').val() === "0" && $('#duration-min').val() === "0")
{
@@ -475,6 +532,12 @@ var Ps;
}
sResultTime = sDate + 'T' + sTime + ':00';
+ if (CheckValidDate(arrSplittedDate, sTime.split(":")[0], sTime.split(":")[1], $('#timezone').find(":selected").text().trim()) == false) {
+ alert("Specify a start time and an end time that must be later than the current time.");
+ showLoader(elements, false);
+ return;
+ }
+
// calc duration in minutes
var sResultDuration = String(Number(sDurationHour) * 60 + Number(sDurationMin));
@@ -528,6 +591,13 @@ var Ps;
showLoader(elements, false);
}).error(function(e) {
alert('Meeting was not created');
+ if (e.responseJSON && e.responseJSON.message) {
+ console.log(e.responseJSON.message);
+ if (e.responseJSON.message.search("Invalid access token.") != -1) {
+ alert("Invalid access (JWT) token.")
+ $('#reconf').trigger("click");
+ }
+ }
showLoader(elements, false);
});
}
diff --git a/sdkjs-plugins/content/zoom/vendor/zoom-sdk/index.js b/sdkjs-plugins/content/zoom/vendor/zoom-sdk/index.js
index b8537fc3..70a54945 100644
--- a/sdkjs-plugins/content/zoom/vendor/zoom-sdk/index.js
+++ b/sdkjs-plugins/content/zoom/vendor/zoom-sdk/index.js
@@ -1,4 +1,4 @@
-SIGNATURE_SERVER = "https://onlyofficezoom.herokuapp.com/";
+SIGNATURE_SERVER = "https://onlyoffice-zoom-sdk-signature.herokuapp.com/";
window.addEventListener('DOMContentLoaded', function(event) {
console.log('DOM fully loaded and parsed');
@@ -28,7 +28,7 @@ function websdkready() {
// ZoomMtg.setZoomJSLib('http://localhost:9999/node_modules/@zoomus/websdk/dist/lib', '/av'); // Local version default, Angular Project change to use cdn version
ZoomMtg.preLoadWasm(); // pre download wasm file to save time.
- var API_KEY, API_SECRET;
+ var SDK_KEY, SDK_SECRET;
/**
* NEVER PUT YOUR ACTUAL API SECRET IN CLIENT SIDE CODE, THIS IS JUST FOR QUICK PROTOTYPING
@@ -83,8 +83,8 @@ function websdkready() {
// click join meeting button
window.joinMeeting = function () {
- API_KEY = localStorage.getItem('zoom-client-key') || "";
- API_SECRET = API_SECRET = localStorage.getItem('zoom-secret-key') || "";
+ SDK_KEY = localStorage.getItem('zoom-client-key') || "";
+ SDK_SECRET = SDK_SECRET = localStorage.getItem('zoom-secret-key') || "";
var meetingConfig = testTool.getMeetingConfig();
if (!meetingConfig.mn || !meetingConfig.name) {
@@ -106,14 +106,14 @@ function websdkready() {
data: {
'meet_number': meetingConfig.mn,
'role_id': meetingConfig.role,
- 'api_key': API_KEY,
- 'api_secret': API_SECRET
+ 'sdk_key': SDK_KEY,
+ 'sdk_secret': SDK_SECRET
},
url: SIGNATURE_SERVER
}).success(function (oResponse) {
meetingConfig.signature = oResponse;
- meetingConfig.apiKey = API_KEY;
+ meetingConfig.sdkKey = SDK_KEY;
var joinUrl = document.location.protocol + "//" + document.location.host + document.location.pathname.replace("index_zoom.html", "meeting.html?") + testTool.serialize(meetingConfig);
window.parent.openMeeting(joinUrl);
}).error(function(oResponse) {
@@ -132,26 +132,44 @@ function websdkready() {
// click copy jon link button
window.copyJoinLink = function (element) {
- var meetingConfig = testTool.getMeetingConfig();
- if (!meetingConfig.mn || !meetingConfig.name) {
- alert("Meeting number or username is empty");
- return false;
- }
- var signature = ZoomMtg.generateSignature({
- meetingNumber: meetingConfig.mn,
- apiKey: API_KEY,
- apiSecret: API_SECRET,
- role: meetingConfig.role,
- success: function (res) {
- console.log(res.result);
- meetingConfig.signature = res.result;
- meetingConfig.apiKey = API_KEY;
- var joinUrl = document.location.protocol + "//" + document.location.host + document.location.pathname.replace("index_zoom.html", "meeting.html?") + testTool.serialize(meetingConfig);
- document.getElementById('copy_link_value').setAttribute('link', joinUrl);
- copyToClipboard('copy_link_value');
-
- },
- });
- };
+ SDK_KEY = localStorage.getItem('zoom-client-key') || "";
+ SDK_SECRET = SDK_SECRET = localStorage.getItem('zoom-secret-key') || "";
+ var meetingConfig = testTool.getMeetingConfig();
+ if (!meetingConfig.mn || !meetingConfig.name) {
+ alert("Meeting number or username is empty");
+ return false;
+ }
+
+ localStorage.setItem($('#display_name').attr('data-id'), $('#display_name').val());
+ localStorage.setItem($('#display_name').attr('data-id'), $('#display_name').val())
+ if ($('#meeting_email').val().trim() !== "")
+ localStorage.setItem($('#meeting_email').attr('data-id'), $('#meeting_email').val());
+ localStorage.setItem($('#display_name').attr('data-id'), $('#display_name').val())
+
+ testTool.setCookie("meeting_number", meetingConfig.mn);
+ testTool.setCookie("meeting_pwd", meetingConfig.pwd);
+
+ $.ajax({
+ method: 'POST',
+ data: {
+ 'meet_number': meetingConfig.mn,
+ 'role_id': meetingConfig.role,
+ 'sdk_key': SDK_KEY,
+ 'sdk_secret': SDK_SECRET
+ },
+ url: SIGNATURE_SERVER
+
+ }).success(function (oResponse) {
+ meetingConfig.signature = oResponse;
+ meetingConfig.sdkKey = SDK_KEY;
+ var joinUrl = document.location.protocol + "//" + document.location.host + document.location.pathname.replace("index_zoom.html", "meeting.html?") + testTool.serialize(meetingConfig);
+ document.getElementById('copy_link_value').setAttribute('link', joinUrl);
+ copyToClipboard('copy_link_value');
+ alert('Copy link was copied to clipboard')
+ }).error(function(oResponse) {
+ console.log(oResponse)
+ })
+ };
+
}
diff --git a/sdkjs-plugins/content/zoom/vendor/zoom-sdk/meeting.js b/sdkjs-plugins/content/zoom/vendor/zoom-sdk/meeting.js
index dc597ad4..cd32180b 100644
--- a/sdkjs-plugins/content/zoom/vendor/zoom-sdk/meeting.js
+++ b/sdkjs-plugins/content/zoom/vendor/zoom-sdk/meeting.js
@@ -3,13 +3,12 @@ window.addEventListener('DOMContentLoaded', function(event) {
websdkready();
});
-console.log("!!!");
function websdkready() {
var testTool = window.testTool;
// get meeting args from url
var tmpArgs = testTool.parseQuery();
var meetingConfig = {
- apiKey: tmpArgs.apiKey,
+ sdkKey: tmpArgs.sdkKey,
meetingNumber: tmpArgs.mn,
userName: (function () {
if (tmpArgs.name) {
@@ -68,7 +67,7 @@ function websdkready() {
meetingNumber: meetingConfig.meetingNumber,
userName: meetingConfig.userName,
signature: signature,
- apiKey: meetingConfig.apiKey,
+ sdkKey: meetingConfig.sdkKey,
userEmail: meetingConfig.userEmail,
passWord: meetingConfig.passWord,
success: function (res) {
@@ -110,3 +109,6 @@ function websdkready() {
beginJoin(meetingConfig.signature);
};
+window.onunload = function() {
+ document.exitFullscreen();
+}