blob: edd22a2fa92e282f5a5e7a8eda6959e84424b408 [file] [log] [blame]
import { EventBus } from '@/services/event-bus'
import notebookUtils from '@/services/notebook-utils'
export default {
setupCommands (store) {
notebookUtils.setStore(store)
this.setupTabCommands(store)
this.setupNoteCommands(store)
this.setupParagraphCommands(store)
},
openSystemTabs (tabType, store) {
let tabName = tabType
.replace('-', ' ')
.replace(/\w+/g, function (w) {
return w[0].toUpperCase() + w.slice(1).toLowerCase()
})
let tab = {
id: 'zeppelin-system-' + tabName,
name: tabName,
type: tabType,
path: '/zeppelin-system/' + tabName
}
store.dispatch('addTab', tab)
},
setupTabCommands (store) {
EventBus.$on('tabs', (command, args) => {
// command is always open for now
let tabType = args.type
switch (tabType) {
case 'interpreters':
case 'configurations':
case 'credentials':
case 'notebook-repository':
this.openSystemTabs(tabType, store)
break
case 'note':
notebookUtils.open(args.note)
break
}
})
},
setupNoteCommands (store) {
EventBus.$on('note', (command, args) => {
let isActiveNote = (store.state.TabManagerStore.currentTab &&
store.state.TabManagerStore.currentTab.type === 'note')
if (!(isActiveNote || ['show-create', 'create', 'rename', 'show-import', 'import-json',
'move-to-trash', 'restore-note', 'delete-permanently'].indexOf(command) !== -1)
)
{
return
}
let note = store.state.TabManagerStore.currentTab
switch (command) {
case 'show-create':
notebookUtils.showCreateModal()
break
case 'create':
notebookUtils.create(args)
break
case 'show-import':
notebookUtils.showImportModal()
break
case 'import-json':
notebookUtils.importJSON(args)
break
case 'rename':
notebookUtils.rename(args)
break
case 'clear-output':
notebookUtils.clearAllOutputs(note.id)
break
case 'run-all':
notebookUtils.runAll(note.id)
break
case 'run-before':
break
case 'run-focused':
break
case 'run-after':
break
case 'save':
break
case 'export-json':
notebookUtils.exportJSON(note)
break
case 'print':
break
case 'move-to-trash':
notebookUtils.moveToTrash(args || (note && note.id))
break
case 'restore-note':
notebookUtils.restore(args || (note && note.id))
break
case 'delete-permanently':
notebookUtils.deletePermanently(args || (note && note.id))
break
case 'show-clone':
notebookUtils.showCloneModal(note.id)
break
case 'clone':
notebookUtils.clone(args)
break
case 'reload':
notebookUtils.reloadNote(note.id)
break
case 'show-toc':
break
case 'show-version-control':
break
case 'show-notbeook-info':
break
case 'find-and-replace':
break
case 'manage-permissions':
break
case 'toggle-code':
break
case 'toggle-output':
break
case 'toggle-line-numbers':
break
}
})
},
setupParagraphCommands (store) {
EventBus.$on('paragraph', (command, args) => {
let isActiveNote = (store.state.TabManagerStore.currentTab &&
store.state.TabManagerStore.currentTab.type === 'note')
if (!isActiveNote) {
return
}
// let noteId = store.state.TabManagerStore.currentTab.id
// let activeParagraph ==
// let paragraphId = ??
switch (command) {
case 'new-text':
break
case 'new-code':
break
case 'run':
break
case 'disable-run':
break
case 'enable-run':
break
case 'clone':
break
case 'clear-output':
break
case 'delete':
break
case 'copy-id':
break
case 'toggle-code':
break
case 'toggle-output':
break
case 'toggle-line-numbers':
break
}
})
}
}