bigbluebutton-Github/bigbluebutton-html5/imports/ui/components/note/service.js

80 lines
2.0 KiB
JavaScript
Raw Normal View History

2018-12-13 04:10:27 +08:00
import Users from '/imports/api/users';
import Meetings from '/imports/api/meetings';
import Note from '/imports/api/note';
2018-12-13 04:10:27 +08:00
import Auth from '/imports/ui/services/auth';
import Settings from '/imports/ui/services/settings';
import mapUser from '/imports/ui/services/user/mapUser';
2018-12-13 04:10:27 +08:00
const NOTE_CONFIG = Meteor.settings.public.note;
const getNoteId = () => {
2019-05-09 04:34:19 +08:00
const note = Note.findOne({ meetingId: Auth.meetingID });
return note ? note.noteId : '';
2018-12-13 04:10:27 +08:00
};
const getReadOnlyNoteId = () => {
2019-05-09 04:34:19 +08:00
const note = Note.findOne({ meetingId: Auth.meetingID });
return note ? note.readOnlyNoteId : '';
};
2018-12-13 04:10:27 +08:00
const getLang = () => {
2019-05-09 04:34:19 +08:00
const { locale } = Settings.application;
return locale ? locale.toLowerCase() : '';
2018-12-13 04:10:27 +08:00
};
2019-01-10 02:09:05 +08:00
const getCurrentUser = () => {
const User = Users.findOne({ userId: Auth.userID });
2019-01-10 02:09:05 +08:00
return User;
};
2018-12-13 04:10:27 +08:00
const getNoteParams = () => {
2019-05-09 04:34:19 +08:00
const { config } = NOTE_CONFIG;
2019-01-10 02:09:05 +08:00
const User = getCurrentUser();
config.userName = User.name;
config.userColor = User.color;
2018-12-13 04:10:27 +08:00
config.lang = getLang();
2019-05-09 04:34:19 +08:00
const params = [];
for (const key in config) {
2018-12-13 04:10:27 +08:00
if (config.hasOwnProperty(key)) {
params.push(key + '=' + encodeURIComponent(config[key]));
}
}
return params.join('&');
};
const isLocked = () => {
2019-05-09 04:34:19 +08:00
const meeting = Meetings.findOne({ meetingId: Auth.meetingID });
const user = getCurrentUser();
if (meeting.lockSettingsProps && mapUser(user).isLocked) {
return meeting.lockSettingsProps.disableNote;
}
return false;
};
const getReadOnlyURL = () => {
const readOnlyNoteId = getReadOnlyNoteId();
const url = Auth.authenticateURL(NOTE_CONFIG.url + '/p/' + readOnlyNoteId);
return url;
};
2018-12-13 04:10:27 +08:00
const getNoteURL = () => {
const noteId = getNoteId();
2018-12-13 04:10:27 +08:00
const params = getNoteParams();
2019-01-26 02:26:13 +08:00
const url = Auth.authenticateURL(NOTE_CONFIG.url + '/p/' + noteId + '?' + params);
2018-12-13 04:10:27 +08:00
return url;
};
const isEnabled = () => {
const note = Note.findOne({ meetingId: Auth.meetingID });
return NOTE_CONFIG.enabled && note;
};
2018-12-13 04:10:27 +08:00
export default {
getNoteURL,
getReadOnlyURL,
isLocked,
isEnabled,
2018-12-13 04:10:27 +08:00
};