diff --git a/public/js/index.js b/public/js/index.js index 27b0295..81c24eb 100644 --- a/public/js/index.js +++ b/public/js/index.js @@ -124,7 +124,7 @@ var supportHeaders = [ search: '###### tags:' } ] -var supportReferrals = [ +const supportReferrals = [ { text: '[reference link]', search: '[]' @@ -170,7 +170,7 @@ var supportReferrals = [ search: '[]' } ] -var supportExternals = [ +const supportExternals = [ { text: '{%youtube youtubeid %}', search: 'youtube' @@ -196,12 +196,12 @@ var supportExternals = [ search: 'pdf' } ] -var supportExtraTags = [ +const supportExtraTags = [ { text: '[name tag]', search: '[]', command: function () { - return '[name=' + window.personalInfo.name + ']' + return '[name=' + personalInfo.name + ']' } }, { @@ -215,7 +215,7 @@ var supportExtraTags = [ text: '[my color tag]', search: '[]', command: function () { - return '[color=' + window.personalInfo.color + ']' + return '[color=' + personalInfo.color + ']' } }, { @@ -227,7 +227,7 @@ var supportExtraTags = [ } } ] -var statusType = { +const statusType = { connected: { msg: 'CONNECTED', label: 'label-warning', @@ -244,7 +244,7 @@ var statusType = { fa: 'fa-plug' } } -var defaultMode = modeType.view +const defaultMode = modeType.view // global vars window.loaded = false @@ -257,8 +257,8 @@ let visibleMD = false let visibleLG = false const isTouchDevice = 'ontouchstart' in document.documentElement window.currentMode = defaultMode -window.currentStatus = statusType.offline -window.lastInfo = { +let currentStatus = statusType.offline +let lastInfo = { needRestore: false, cursor: null, scroll: null, @@ -281,9 +281,9 @@ window.lastInfo = { }, history: null } -window.personalInfo = {} -window.onlineUsers = [] -window.fileTypes = { +let personalInfo = {} +let onlineUsers = [] +const fileTypes = { 'pl': 'perl', 'cgi': 'perl', 'js': 'javascript', @@ -295,7 +295,7 @@ window.fileTypes = { } // editor settings -var textit = document.getElementById('textit') +const textit = document.getElementById('textit') if (!textit) { throw new Error('There was no textit area!') } @@ -522,8 +522,8 @@ function windowResizeInner (callback) { autoSyncscroll() editor.setOption('viewportMargin', viewportMargin) // add or update user cursors - for (var i = 0; i < window.onlineUsers.length; i++) { - if (window.onlineUsers[i].id !== window.personalInfo.id) { buildCursor(window.onlineUsers[i]) } + for (var i = 0; i < onlineUsers.length; i++) { + if (onlineUsers[i].id !== personalInfo.id) { buildCursor(onlineUsers[i]) } } updateScrollspy() if (callback && typeof callback === 'function') { callback() } @@ -696,7 +696,7 @@ function checkTocStyle () { } function showStatus (type, num) { - window.currentStatus = type + currentStatus = type var shortStatus = ui.toolbar.shortStatus var status = ui.toolbar.status var label = $('') @@ -707,7 +707,7 @@ function showStatus (type, num) { shortStatus.html('') status.html('') - switch (window.currentStatus) { + switch (currentStatus) { case statusType.connected: label.addClass(statusType.connected.label) fa.addClass(statusType.connected.fa) @@ -1533,7 +1533,7 @@ $('#snippetImportModalConfirm').click(function () { if (raw) { content += '\n\n' if (fileInfo[1] !== 'md') { - content += '```' + window.fileTypes[fileInfo[1]] + '\n' + content += '```' + fileTypes[fileInfo[1]] + '\n' } content += raw if (fileInfo[1] !== 'md') { @@ -1706,7 +1706,7 @@ function updatePermission (newPermission) { title = 'Only owner can view & edit' break } - if (window.personalInfo.userid && window.owner && window.personalInfo.userid === window.owner) { + if (personalInfo.userid && window.owner && personalInfo.userid === window.owner) { label += ' ' ui.infobar.permission.label.removeClass('disabled') } else { @@ -1723,7 +1723,7 @@ function havePermission () { break case 'editable': case 'limited': - if (!window.personalInfo.login) { + if (!personalInfo.login) { bool = false } else { bool = true @@ -1732,7 +1732,7 @@ function havePermission () { case 'locked': case 'private': case 'protected': - if (!window.owner || window.personalInfo.userid !== window.owner) { + if (!window.owner || personalInfo.userid !== window.owner) { bool = false } else { bool = true @@ -1779,7 +1779,7 @@ socket.on('error', function (data) { if (data.message && data.message.indexOf('AUTH failed') === 0) { location.href = serverurl + '/403' } }) socket.on('delete', function () { - if (window.personalInfo.login) { + if (personalInfo.login) { deleteServerHistory(noteid, function (err, data) { if (!err) location.href = serverurl }) @@ -1799,7 +1799,7 @@ socket.on('disconnect', function (data) { showStatus(statusType.offline) if (window.loaded) { saveInfo() - window.lastInfo.history = editor.getHistory() + lastInfo.history = editor.getHistory() } if (!editor.getOption('readOnly')) { editor.setOption('readOnly', true) } if (!retryTimer) { @@ -1817,7 +1817,7 @@ socket.on('reconnect', function (data) { socket.on('connect', function (data) { clearInterval(retryTimer) retryTimer = null - window.personalInfo['id'] = socket.id + personalInfo['id'] = socket.id showStatus(statusType.connected) socket.emit('version') }) @@ -2135,8 +2135,8 @@ socket.on('doc', function (obj) { } else { // if current doc is equal to the doc before disconnect if (setDoc && bodyMismatch) editor.clearHistory() - else if (window.lastInfo.history) editor.setHistory(window.lastInfo.history) - window.lastInfo.history = null + else if (lastInfo.history) editor.setHistory(lastInfo.history) + lastInfo.history = null } if (!cmClient) { @@ -2178,7 +2178,7 @@ socket.on('operation', function () { socket.on('online users', function (data) { if (debug) { console.debug(data) } - window.onlineUsers = data.users + onlineUsers = data.users updateOnlineStatus() $('.CodeMirror-other-cursors').children().each(function (key, value) { var found = false @@ -2194,14 +2194,14 @@ socket.on('online users', function (data) { }) for (var i = 0; i < data.users.length; i++) { var user = data.users[i] - if (user.id !== socket.id) { buildCursor(user) } else { window.personalInfo = user } + if (user.id !== socket.id) { buildCursor(user) } else { personalInfo = user } } }) socket.on('user status', function (data) { if (debug) { console.debug(data) } - for (var i = 0; i < window.onlineUsers.length; i++) { - if (window.onlineUsers[i].id === data.id) { - window.onlineUsers[i] = data + for (var i = 0; i < onlineUsers.length; i++) { + if (onlineUsers[i].id === data.id) { + onlineUsers[i] = data } } updateOnlineStatus() @@ -2209,9 +2209,9 @@ socket.on('user status', function (data) { }) socket.on('cursor focus', function (data) { if (debug) { console.debug(data) } - for (var i = 0; i < window.onlineUsers.length; i++) { - if (window.onlineUsers[i].id === data.id) { - window.onlineUsers[i].cursor = data.cursor + for (var i = 0; i < onlineUsers.length; i++) { + if (onlineUsers[i].id === data.id) { + onlineUsers[i].cursor = data.cursor } } if (data.id !== socket.id) { buildCursor(data) } @@ -2223,18 +2223,18 @@ socket.on('cursor focus', function (data) { }) socket.on('cursor activity', function (data) { if (debug) { console.debug(data) } - for (var i = 0; i < window.onlineUsers.length; i++) { - if (window.onlineUsers[i].id === data.id) { - window.onlineUsers[i].cursor = data.cursor + for (var i = 0; i < onlineUsers.length; i++) { + if (onlineUsers[i].id === data.id) { + onlineUsers[i].cursor = data.cursor } } if (data.id !== socket.id) { buildCursor(data) } }) socket.on('cursor blur', function (data) { if (debug) { console.debug(data) } - for (var i = 0; i < window.onlineUsers.length; i++) { - if (window.onlineUsers[i].id === data.id) { - window.onlineUsers[i].cursor = null + for (var i = 0; i < onlineUsers.length; i++) { + if (onlineUsers[i].id === data.id) { + onlineUsers[i].cursor = null } } if (data.id !== socket.id) { buildCursor(data) } @@ -2259,7 +2259,7 @@ var shortOnlineUserList = new List('short-online-user-list', options) function updateOnlineStatus () { if (!window.loaded || !socket.connected) return - var _onlineUsers = deduplicateOnlineUsers(window.onlineUsers) + var _onlineUsers = deduplicateOnlineUsers(onlineUsers) showStatus(statusType.online, _onlineUsers.length) var items = onlineUserList.items // update or remove current list items @@ -2310,8 +2310,8 @@ function sortOnlineUserList (list) { sortFunction: function (a, b) { var usera = a.values() var userb = b.values() - var useraIsSelf = (usera.id === window.personalInfo.id || (usera.login && usera.userid === window.personalInfo.userid)) - var userbIsSelf = (userb.id === window.personalInfo.id || (userb.login && userb.userid === window.personalInfo.userid)) + var useraIsSelf = (usera.id === personalInfo.id || (usera.login && usera.userid === personalInfo.userid)) + var userbIsSelf = (userb.id === personalInfo.id || (userb.login && userb.userid === personalInfo.userid)) if (useraIsSelf && !userbIsSelf) { return -1 } else if (!useraIsSelf && userbIsSelf) { @@ -2362,7 +2362,7 @@ function deduplicateOnlineUsers (list) { for (var j = 0; j < _onlineUsers.length; j++) { if (_onlineUsers[j].userid === user.userid) { // keep self color when login - if (user.id === window.personalInfo.id) { + if (user.id === personalInfo.id) { _onlineUsers[j].color = user.color } // keep idle state if any of self client not idle @@ -2387,12 +2387,12 @@ function emitUserStatus (force) { var type = null if (visibleXS) { type = 'xs' } else if (visibleSM) { type = 'sm' } else if (visibleMD) { type = 'md' } else if (visibleLG) { type = 'lg' } - window.personalInfo['idle'] = idle.isAway - window.personalInfo['type'] = type + personalInfo['idle'] = idle.isAway + personalInfo['type'] = type - for (var i = 0; i < window.onlineUsers.length; i++) { - if (window.onlineUsers[i].id === window.personalInfo.id) { - window.onlineUsers[i] = window.personalInfo + for (var i = 0; i < onlineUsers.length; i++) { + if (onlineUsers[i].id === personalInfo.id) { + onlineUsers[i] = personalInfo } } @@ -2653,12 +2653,12 @@ editorInstance.on('changes', function (editor, changes) { } }) editorInstance.on('focus', function (editor) { - for (var i = 0; i < window.onlineUsers.length; i++) { - if (window.onlineUsers[i].id === window.personalInfo.id) { - window.onlineUsers[i].cursor = editor.getCursor() + for (var i = 0; i < onlineUsers.length; i++) { + if (onlineUsers[i].id === personalInfo.id) { + onlineUsers[i].cursor = editor.getCursor() } } - window.personalInfo['cursor'] = editor.getCursor() + personalInfo['cursor'] = editor.getCursor() socket.emit('cursor focus', editor.getCursor()) }) @@ -2666,12 +2666,12 @@ const cursorActivity = _.debounce(cursorActivityInner, cursorActivityDebounce) function cursorActivityInner (editor) { if (editorHasFocus() && !Visibility.hidden()) { - for (var i = 0; i < window.onlineUsers.length; i++) { - if (window.onlineUsers[i].id === window.personalInfo.id) { - window.onlineUsers[i].cursor = editor.getCursor() + for (var i = 0; i < onlineUsers.length; i++) { + if (onlineUsers[i].id === personalInfo.id) { + onlineUsers[i].cursor = editor.getCursor() } } - window.personalInfo['cursor'] = editor.getCursor() + personalInfo['cursor'] = editor.getCursor() socket.emit('cursor activity', editor.getCursor()) } } @@ -2713,12 +2713,12 @@ editorInstance.on('beforeSelectionChange', function (doc, selections) { }) editorInstance.on('blur', function (cm) { - for (var i = 0; i < window.onlineUsers.length; i++) { - if (window.onlineUsers[i].id === window.personalInfo.id) { - window.onlineUsers[i].cursor = null + for (var i = 0; i < onlineUsers.length; i++) { + if (onlineUsers[i].id === personalInfo.id) { + onlineUsers[i].cursor = null } } - window.personalInfo['cursor'] = null + personalInfo['cursor'] = null socket.emit('cursor blur') }) @@ -2729,61 +2729,61 @@ function saveInfo () { switch (window.currentMode) { case modeType.edit: if (scrollbarStyle === 'native') { - window.lastInfo.edit.scroll.left = left - window.lastInfo.edit.scroll.top = top + lastInfo.edit.scroll.left = left + lastInfo.edit.scroll.top = top } else { - window.lastInfo.edit.scroll = editor.getScrollInfo() + lastInfo.edit.scroll = editor.getScrollInfo() } break case modeType.view: - window.lastInfo.view.scroll.left = left - window.lastInfo.view.scroll.top = top + lastInfo.view.scroll.left = left + lastInfo.view.scroll.top = top break case modeType.both: - window.lastInfo.edit.scroll = editor.getScrollInfo() - window.lastInfo.view.scroll.left = ui.area.view.scrollLeft() - window.lastInfo.view.scroll.top = ui.area.view.scrollTop() + lastInfo.edit.scroll = editor.getScrollInfo() + lastInfo.view.scroll.left = ui.area.view.scrollLeft() + lastInfo.view.scroll.top = ui.area.view.scrollTop() break } - window.lastInfo.edit.cursor = editor.getCursor() - window.lastInfo.edit.selections = editor.listSelections() - window.lastInfo.needRestore = true + lastInfo.edit.cursor = editor.getCursor() + lastInfo.edit.selections = editor.listSelections() + lastInfo.needRestore = true } function restoreInfo () { var scrollbarStyle = editor.getOption('scrollbarStyle') - if (window.lastInfo.needRestore) { - var line = window.lastInfo.edit.cursor.line - var ch = window.lastInfo.edit.cursor.ch + if (lastInfo.needRestore) { + var line = lastInfo.edit.cursor.line + var ch = lastInfo.edit.cursor.ch editor.setCursor(line, ch) - editor.setSelections(window.lastInfo.edit.selections) + editor.setSelections(lastInfo.edit.selections) switch (window.currentMode) { case modeType.edit: if (scrollbarStyle === 'native') { - $(window).scrollLeft(window.lastInfo.edit.scroll.left) - $(window).scrollTop(window.lastInfo.edit.scroll.top) + $(window).scrollLeft(lastInfo.edit.scroll.left) + $(window).scrollTop(lastInfo.edit.scroll.top) } else { - let left = window.lastInfo.edit.scroll.left - let top = window.lastInfo.edit.scroll.top + let left = lastInfo.edit.scroll.left + let top = lastInfo.edit.scroll.top editor.scrollIntoView() editor.scrollTo(left, top) } break case modeType.view: - $(window).scrollLeft(window.lastInfo.view.scroll.left) - $(window).scrollTop(window.lastInfo.view.scroll.top) + $(window).scrollLeft(lastInfo.view.scroll.left) + $(window).scrollTop(lastInfo.view.scroll.top) break case modeType.both: - let left = window.lastInfo.edit.scroll.left - let top = window.lastInfo.edit.scroll.top + let left = lastInfo.edit.scroll.left + let top = lastInfo.edit.scroll.top editor.scrollIntoView() editor.scrollTo(left, top) - ui.area.view.scrollLeft(window.lastInfo.view.scroll.left) - ui.area.view.scrollTop(window.lastInfo.view.scroll.top) + ui.area.view.scrollLeft(lastInfo.view.scroll.left) + ui.area.view.scrollTop(lastInfo.view.scroll.top) break } - window.lastInfo.needRestore = false + lastInfo.needRestore = false } }