Converted all client code to Standard JS compliant
This commit is contained in:
@@ -1,15 +1,17 @@
|
||||
'use strict'
|
||||
|
||||
/* global Vue, _ */
|
||||
|
||||
/**
|
||||
* Alerts
|
||||
*/
|
||||
class Alerts {
|
||||
class Alerts { // eslint-disable-line no-unused-vars
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @class
|
||||
*/
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @class
|
||||
*/
|
||||
constructor () {
|
||||
let self = this
|
||||
|
||||
@@ -28,12 +30,12 @@ class Alerts {
|
||||
self.uidNext = 1
|
||||
}
|
||||
|
||||
/**
|
||||
* Show a new Alert
|
||||
*
|
||||
* @param {Object} options Alert properties
|
||||
* @return {null} Void
|
||||
*/
|
||||
/**
|
||||
* Show a new Alert
|
||||
*
|
||||
* @param {Object} options Alert properties
|
||||
* @return {null} Void
|
||||
*/
|
||||
push (options) {
|
||||
let self = this
|
||||
|
||||
@@ -56,12 +58,12 @@ class Alerts {
|
||||
self.uidNext++
|
||||
}
|
||||
|
||||
/**
|
||||
* Shorthand method for pushing errors
|
||||
*
|
||||
* @param {String} title The title
|
||||
* @param {String} message The message
|
||||
*/
|
||||
/**
|
||||
* Shorthand method for pushing errors
|
||||
*
|
||||
* @param {String} title The title
|
||||
* @param {String} message The message
|
||||
*/
|
||||
pushError (title, message) {
|
||||
this.push({
|
||||
class: 'error',
|
||||
@@ -71,12 +73,12 @@ class Alerts {
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* Shorthand method for pushing success messages
|
||||
*
|
||||
* @param {String} title The title
|
||||
* @param {String} message The message
|
||||
*/
|
||||
/**
|
||||
* Shorthand method for pushing success messages
|
||||
*
|
||||
* @param {String} title The title
|
||||
* @param {String} message The message
|
||||
*/
|
||||
pushSuccess (title, message) {
|
||||
this.push({
|
||||
class: 'success',
|
||||
@@ -86,11 +88,11 @@ class Alerts {
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* Close an alert
|
||||
*
|
||||
* @param {Integer} uid The unique ID of the alert
|
||||
*/
|
||||
/**
|
||||
* Close an alert
|
||||
*
|
||||
* @param {Integer} uid The unique ID of the alert
|
||||
*/
|
||||
close (uid) {
|
||||
let self = this
|
||||
|
||||
|
@@ -1,3 +1,4 @@
|
||||
/* global $, Vue, ace, mde, _ */
|
||||
|
||||
let modelist = ace.require('ace/ext/modelist')
|
||||
let codeEditor = null
|
||||
@@ -57,7 +58,7 @@ let vueCodeBlock = new Vue({
|
||||
}, 300)
|
||||
},
|
||||
cancel: (ev) => {
|
||||
mdeModalOpenState = false
|
||||
mdeModalOpenState = false // eslint-disable-line no-undef
|
||||
$('#modal-editor-codeblock').removeClass('is-active')
|
||||
vueCodeBlock.initContent = ''
|
||||
},
|
||||
|
@@ -1,3 +1,4 @@
|
||||
/* global $, Vue, _, alerts, mde, socket */
|
||||
|
||||
let vueFile = new Vue({
|
||||
el: '#modal-editor-file',
|
||||
@@ -23,18 +24,18 @@ let vueFile = new Vue({
|
||||
methods: {
|
||||
|
||||
open: () => {
|
||||
mdeModalOpenState = true
|
||||
mdeModalOpenState = true // eslint-disable-line no-undef
|
||||
$('#modal-editor-file').addClass('is-active')
|
||||
vueFile.refreshFolders()
|
||||
},
|
||||
cancel: (ev) => {
|
||||
mdeModalOpenState = false
|
||||
mdeModalOpenState = false // eslint-disable-line no-undef
|
||||
$('#modal-editor-file').removeClass('is-active')
|
||||
},
|
||||
|
||||
// -------------------------------------------
|
||||
// INSERT LINK TO FILE
|
||||
// -------------------------------------------
|
||||
// -------------------------------------------
|
||||
// INSERT LINK TO FILE
|
||||
// -------------------------------------------
|
||||
|
||||
selectFile: (fileId) => {
|
||||
vueFile.currentFile = fileId
|
||||
@@ -54,9 +55,9 @@ let vueFile = new Vue({
|
||||
vueFile.cancel()
|
||||
},
|
||||
|
||||
// -------------------------------------------
|
||||
// NEW FOLDER
|
||||
// -------------------------------------------
|
||||
// -------------------------------------------
|
||||
// NEW FOLDER
|
||||
// -------------------------------------------
|
||||
|
||||
newFolder: (ev) => {
|
||||
vueFile.newFolderName = ''
|
||||
@@ -68,7 +69,7 @@ let vueFile = new Vue({
|
||||
vueFile.newFolderShow = false
|
||||
},
|
||||
newFolderCreate: (ev) => {
|
||||
let regFolderName = new RegExp('^[a-z0-9][a-z0-9\-]*[a-z0-9]$')
|
||||
let regFolderName = new RegExp('^[a-z0-9][a-z0-9-]*[a-z0-9]$')
|
||||
vueFile.newFolderName = _.kebabCase(_.trim(vueFile.newFolderName))
|
||||
|
||||
if (_.isEmpty(vueFile.newFolderName) || !regFolderName.test(vueFile.newFolderName)) {
|
||||
@@ -90,12 +91,12 @@ let vueFile = new Vue({
|
||||
})
|
||||
},
|
||||
|
||||
// -------------------------------------------
|
||||
// RENAME FILE
|
||||
// -------------------------------------------
|
||||
// -------------------------------------------
|
||||
// RENAME FILE
|
||||
// -------------------------------------------
|
||||
|
||||
renameFile: () => {
|
||||
let c = _.find(vueFile.files, ['_id', vueFile.renameFileId ])
|
||||
let c = _.find(vueFile.files, [ '_id', vueFile.renameFileId ])
|
||||
vueFile.renameFileFilename = c.basename || ''
|
||||
vueFile.renameFileShow = true
|
||||
_.delay(() => {
|
||||
@@ -123,9 +124,9 @@ let vueFile = new Vue({
|
||||
})
|
||||
},
|
||||
|
||||
// -------------------------------------------
|
||||
// MOVE FILE
|
||||
// -------------------------------------------
|
||||
// -------------------------------------------
|
||||
// MOVE FILE
|
||||
// -------------------------------------------
|
||||
|
||||
moveFile: (uid, fld) => {
|
||||
vueFile.isLoadingText = 'Moving file...'
|
||||
@@ -142,13 +143,13 @@ let vueFile = new Vue({
|
||||
})
|
||||
},
|
||||
|
||||
// -------------------------------------------
|
||||
// DELETE FILE
|
||||
// -------------------------------------------
|
||||
// -------------------------------------------
|
||||
// DELETE FILE
|
||||
// -------------------------------------------
|
||||
|
||||
deleteFileWarn: (show) => {
|
||||
if (show) {
|
||||
let c = _.find(vueFile.files, ['_id', vueFile.deleteFileId ])
|
||||
let c = _.find(vueFile.files, [ '_id', vueFile.deleteFileId ])
|
||||
vueFile.deleteFileFilename = c.filename || 'this file'
|
||||
}
|
||||
vueFile.deleteFileShow = show
|
||||
@@ -164,9 +165,9 @@ let vueFile = new Vue({
|
||||
})
|
||||
},
|
||||
|
||||
// -------------------------------------------
|
||||
// LOAD FROM REMOTE
|
||||
// -------------------------------------------
|
||||
// -------------------------------------------
|
||||
// LOAD FROM REMOTE
|
||||
// -------------------------------------------
|
||||
|
||||
selectFolder: (fldName) => {
|
||||
vueFile.currentFolder = fldName
|
||||
@@ -229,9 +230,9 @@ let vueFile = new Vue({
|
||||
})
|
||||
},
|
||||
|
||||
// -------------------------------------------
|
||||
// IMAGE CONTEXT MENU
|
||||
// -------------------------------------------
|
||||
// -------------------------------------------
|
||||
// IMAGE CONTEXT MENU
|
||||
// -------------------------------------------
|
||||
|
||||
attachContextMenus: () => {
|
||||
let moveFolders = _.map(vueFile.folders, (f) => {
|
||||
|
@@ -1,3 +1,4 @@
|
||||
/* global $, Vue, mde, _, alerts, socket */
|
||||
|
||||
let vueImage = new Vue({
|
||||
el: '#modal-editor-image',
|
||||
@@ -26,18 +27,18 @@ let vueImage = new Vue({
|
||||
methods: {
|
||||
|
||||
open: () => {
|
||||
mdeModalOpenState = true
|
||||
mdeModalOpenState = true // eslint-disable-line no-undef
|
||||
$('#modal-editor-image').addClass('is-active')
|
||||
vueImage.refreshFolders()
|
||||
},
|
||||
cancel: (ev) => {
|
||||
mdeModalOpenState = false
|
||||
mdeModalOpenState = false // eslint-disable-line no-undef
|
||||
$('#modal-editor-image').removeClass('is-active')
|
||||
},
|
||||
|
||||
// -------------------------------------------
|
||||
// INSERT IMAGE
|
||||
// -------------------------------------------
|
||||
// -------------------------------------------
|
||||
// INSERT IMAGE
|
||||
// -------------------------------------------
|
||||
|
||||
selectImage: (imageId) => {
|
||||
vueImage.currentImage = imageId
|
||||
@@ -68,9 +69,9 @@ let vueImage = new Vue({
|
||||
vueImage.cancel()
|
||||
},
|
||||
|
||||
// -------------------------------------------
|
||||
// NEW FOLDER
|
||||
// -------------------------------------------
|
||||
// -------------------------------------------
|
||||
// NEW FOLDER
|
||||
// -------------------------------------------
|
||||
|
||||
newFolder: (ev) => {
|
||||
vueImage.newFolderName = ''
|
||||
@@ -82,7 +83,7 @@ let vueImage = new Vue({
|
||||
vueImage.newFolderShow = false
|
||||
},
|
||||
newFolderCreate: (ev) => {
|
||||
let regFolderName = new RegExp('^[a-z0-9][a-z0-9\-]*[a-z0-9]$')
|
||||
let regFolderName = new RegExp('^[a-z0-9][a-z0-9-]*[a-z0-9]$')
|
||||
vueImage.newFolderName = _.kebabCase(_.trim(vueImage.newFolderName))
|
||||
|
||||
if (_.isEmpty(vueImage.newFolderName) || !regFolderName.test(vueImage.newFolderName)) {
|
||||
@@ -104,9 +105,9 @@ let vueImage = new Vue({
|
||||
})
|
||||
},
|
||||
|
||||
// -------------------------------------------
|
||||
// FETCH FROM URL
|
||||
// -------------------------------------------
|
||||
// -------------------------------------------
|
||||
// FETCH FROM URL
|
||||
// -------------------------------------------
|
||||
|
||||
fetchFromUrl: (ev) => {
|
||||
vueImage.fetchFromUrlURL = ''
|
||||
@@ -133,12 +134,12 @@ let vueImage = new Vue({
|
||||
})
|
||||
},
|
||||
|
||||
// -------------------------------------------
|
||||
// RENAME IMAGE
|
||||
// -------------------------------------------
|
||||
// -------------------------------------------
|
||||
// RENAME IMAGE
|
||||
// -------------------------------------------
|
||||
|
||||
renameImage: () => {
|
||||
let c = _.find(vueImage.images, ['_id', vueImage.renameImageId ])
|
||||
let c = _.find(vueImage.images, [ '_id', vueImage.renameImageId ])
|
||||
vueImage.renameImageFilename = c.basename || ''
|
||||
vueImage.renameImageShow = true
|
||||
_.delay(() => {
|
||||
@@ -166,9 +167,9 @@ let vueImage = new Vue({
|
||||
})
|
||||
},
|
||||
|
||||
// -------------------------------------------
|
||||
// MOVE IMAGE
|
||||
// -------------------------------------------
|
||||
// -------------------------------------------
|
||||
// MOVE IMAGE
|
||||
// -------------------------------------------
|
||||
|
||||
moveImage: (uid, fld) => {
|
||||
vueImage.isLoadingText = 'Moving image...'
|
||||
@@ -185,13 +186,13 @@ let vueImage = new Vue({
|
||||
})
|
||||
},
|
||||
|
||||
// -------------------------------------------
|
||||
// DELETE IMAGE
|
||||
// -------------------------------------------
|
||||
// -------------------------------------------
|
||||
// DELETE IMAGE
|
||||
// -------------------------------------------
|
||||
|
||||
deleteImageWarn: (show) => {
|
||||
if (show) {
|
||||
let c = _.find(vueImage.images, ['_id', vueImage.deleteImageId ])
|
||||
let c = _.find(vueImage.images, [ '_id', vueImage.deleteImageId ])
|
||||
vueImage.deleteImageFilename = c.filename || 'this image'
|
||||
}
|
||||
vueImage.deleteImageShow = show
|
||||
@@ -207,9 +208,9 @@ let vueImage = new Vue({
|
||||
})
|
||||
},
|
||||
|
||||
// -------------------------------------------
|
||||
// LOAD FROM REMOTE
|
||||
// -------------------------------------------
|
||||
// -------------------------------------------
|
||||
// LOAD FROM REMOTE
|
||||
// -------------------------------------------
|
||||
|
||||
selectFolder: (fldName) => {
|
||||
vueImage.currentFolder = fldName
|
||||
@@ -272,9 +273,9 @@ let vueImage = new Vue({
|
||||
})
|
||||
},
|
||||
|
||||
// -------------------------------------------
|
||||
// IMAGE CONTEXT MENU
|
||||
// -------------------------------------------
|
||||
// -------------------------------------------
|
||||
// IMAGE CONTEXT MENU
|
||||
// -------------------------------------------
|
||||
|
||||
attachContextMenus: () => {
|
||||
let moveFolders = _.map(vueImage.folders, (f) => {
|
||||
|
@@ -1,8 +1,9 @@
|
||||
/* global $, Vue, mde, _ */
|
||||
|
||||
const videoRules = {
|
||||
'youtube': new RegExp(/(?:(?:youtu\.be\/|v\/|vi\/|u\/\w\/|embed\/)|(?:(?:watch)?\?v(?:i)?=|\&v(?:i)?=))([^#\&\?]*).*/, 'i'),
|
||||
'vimeo': new RegExp(/vimeo.com\/(?:channels\/(?:\w+\/)?|groups\/(?:[^\/]*)\/videos\/|album\/(?:\d+)\/video\/|)(\d+)(?:$|\/|\?)/, 'i'),
|
||||
'dailymotion': new RegExp(/(?:dailymotion\.com(?:\/embed)?(?:\/video|\/hub)|dai\.ly)\/([0-9a-z]+)(?:[\-_0-9a-zA-Z]+(?:#video=)?([a-z0-9]+)?)?/, 'i')
|
||||
'youtube': new RegExp(/(?:(?:youtu\.be\/|v\/|vi\/|u\/\w\/|embed\/)|(?:(?:watch)?\?v(?:i)?=|&v(?:i)?=))([^#&?]*).*/, 'i'),
|
||||
'vimeo': new RegExp(/vimeo.com\/(?:channels\/(?:\w+\/)?|groups\/(?:[^/]*)\/videos\/|album\/(?:\d+)\/video\/|)(\d+)(?:$|\/|\?)/, 'i'),
|
||||
'dailymotion': new RegExp(/(?:dailymotion\.com(?:\/embed)?(?:\/video|\/hub)|dai\.ly)\/([0-9a-z]+)(?:[-_0-9a-zA-Z]+(?:#video=)?([a-z0-9]+)?)?/, 'i')
|
||||
}
|
||||
|
||||
// Vue Video instance
|
||||
@@ -18,7 +19,7 @@ let vueVideo = new Vue({
|
||||
$('#modal-editor-video input').focus()
|
||||
},
|
||||
cancel: (ev) => {
|
||||
mdeModalOpenState = false
|
||||
mdeModalOpenState = false // eslint-disable-line no-undef
|
||||
$('#modal-editor-video').removeClass('is-active')
|
||||
vueVideo.link = ''
|
||||
},
|
||||
@@ -27,7 +28,7 @@ let vueVideo = new Vue({
|
||||
mde.codemirror.execCommand('singleSelection')
|
||||
}
|
||||
|
||||
// Guess video type
|
||||
// Guess video type
|
||||
|
||||
let videoType = _.findKey(videoRules, (vr) => {
|
||||
return vr.test(vueVideo.link)
|
||||
@@ -36,7 +37,7 @@ let vueVideo = new Vue({
|
||||
videoType = 'video'
|
||||
}
|
||||
|
||||
// Insert video tag
|
||||
// Insert video tag
|
||||
|
||||
let videoText = '[video](' + vueVideo.link + '){.' + videoType + '}\n'
|
||||
|
||||
|
@@ -1,3 +1,6 @@
|
||||
'use strict'
|
||||
|
||||
/* global $, Vue, _, filesize, SimpleMDE, alerts, vueImage, vueFile, vueVideo, vueCodeBlock */
|
||||
|
||||
// ====================================
|
||||
// Markdown Editor
|
||||
@@ -5,16 +8,18 @@
|
||||
|
||||
if ($('#mk-editor').length === 1) {
|
||||
let mdeModalOpenState = false
|
||||
let mdeCurrentEditor = null
|
||||
let mdeCurrentEditor = null // eslint-disable-line no-unused-vars
|
||||
|
||||
Vue.filter('filesize', (v) => {
|
||||
return _.toUpper(filesize(v))
|
||||
})
|
||||
|
||||
// =include editor-image.js
|
||||
// =include editor-file.js
|
||||
// =include editor-video.js
|
||||
// =include editor-codeblock.js
|
||||
/* eslint-disable spaced-comment */
|
||||
//=include editor-image.js
|
||||
//=include editor-file.js
|
||||
//=include editor-video.js
|
||||
//=include editor-codeblock.js
|
||||
/* eslint-enable spaced-comment */
|
||||
|
||||
var mde = new SimpleMDE({
|
||||
autofocus: true,
|
||||
@@ -23,12 +28,13 @@ if ($('#mk-editor').length === 1) {
|
||||
placeholder: 'Enter Markdown formatted content here...',
|
||||
spellChecker: false,
|
||||
status: false,
|
||||
toolbar: [{
|
||||
name: 'bold',
|
||||
action: SimpleMDE.toggleBold,
|
||||
className: 'icon-bold',
|
||||
title: 'Bold'
|
||||
},
|
||||
toolbar: [
|
||||
{
|
||||
name: 'bold',
|
||||
action: SimpleMDE.toggleBold,
|
||||
className: 'icon-bold',
|
||||
title: 'Bold'
|
||||
},
|
||||
{
|
||||
name: 'italic',
|
||||
action: SimpleMDE.toggleItalic,
|
||||
@@ -83,10 +89,10 @@ if ($('#mk-editor').length === 1) {
|
||||
{
|
||||
name: 'link',
|
||||
action: (editor) => {
|
||||
/* if(!mdeModalOpenState) {
|
||||
mdeModalOpenState = true;
|
||||
$('#modal-editor-link').slideToggle();
|
||||
} */
|
||||
/* if(!mdeModalOpenState) {
|
||||
mdeModalOpenState = true;
|
||||
$('#modal-editor-link').slideToggle();
|
||||
} */
|
||||
},
|
||||
className: 'icon-link2',
|
||||
title: 'Insert Link'
|
||||
@@ -157,7 +163,7 @@ if ($('#mk-editor').length === 1) {
|
||||
{
|
||||
name: 'table',
|
||||
action: (editor) => {
|
||||
// todo
|
||||
// todo
|
||||
},
|
||||
className: 'icon-table',
|
||||
title: 'Insert Table'
|
||||
@@ -175,7 +181,7 @@ if ($('#mk-editor').length === 1) {
|
||||
}
|
||||
})
|
||||
|
||||
// -> Save
|
||||
// -> Save
|
||||
|
||||
let saveCurrentDocument = (ev) => {
|
||||
$.ajax(window.location.href, {
|
||||
@@ -186,7 +192,7 @@ if ($('#mk-editor').length === 1) {
|
||||
method: 'PUT'
|
||||
}).then((rData, rStatus, rXHR) => {
|
||||
if (rData.ok) {
|
||||
window.location.assign('/' + pageEntryPath)
|
||||
window.location.assign('/' + pageEntryPath) // eslint-disable-line no-undef
|
||||
} else {
|
||||
alerts.pushError('Something went wrong', rData.error)
|
||||
}
|
||||
|
@@ -1,5 +1,7 @@
|
||||
'use strict'
|
||||
|
||||
/* global $, Vue, _, socket */
|
||||
|
||||
if ($('#search-input').length) {
|
||||
$('#search-input').focus()
|
||||
|
||||
@@ -39,9 +41,9 @@ if ($('#search-input').length) {
|
||||
},
|
||||
searchmoveidx: (val, oldVal) => {
|
||||
if (val > 0) {
|
||||
vueHeader.searchmovekey = (vueHeader.searchmovearr[val - 1]) ?
|
||||
'res.' + vueHeader.searchmovearr[val - 1]._id :
|
||||
'sug.' + vueHeader.searchmovearr[val - 1]
|
||||
vueHeader.searchmovekey = (vueHeader.searchmovearr[val - 1])
|
||||
? 'res.' + vueHeader.searchmovearr[val - 1]._id
|
||||
: 'sug.' + vueHeader.searchmovearr[val - 1]
|
||||
} else {
|
||||
vueHeader.searchmovekey = ''
|
||||
}
|
||||
|
Reference in New Issue
Block a user