use context menu

pull/1/head
yann300 7 years ago
parent dc33f0e2ef
commit ce2245e4b3
  1. 31
      src/app/files/file-explorer.js

@ -5,7 +5,7 @@ var modalDialog = require('../ui/modaldialog')
var modalDialogCustom = require('../ui/modal-dialog-custom') var modalDialogCustom = require('../ui/modal-dialog-custom')
var remixLib = require('remix-lib') var remixLib = require('remix-lib')
var EventManager = remixLib.EventManager var EventManager = remixLib.EventManager
var contextMenu = require('../ui/contextMenu')
var helper = require('../../lib/helper') var helper = require('../../lib/helper')
var styleGuide = remixLib.ui.themeChooser var styleGuide = remixLib.ui.themeChooser
@ -154,13 +154,24 @@ function fileExplorer (appAPI, files) {
return yo`<label class="${data.children ? css.folder : css.file}" return yo`<label class="${data.children ? css.folder : css.file}"
data-path="${data.path}" data-path="${data.path}"
style="${isRoot ? 'font-weight:bold;' : ''}" style="${isRoot ? 'font-weight:bold;' : ''}"
onclick=${editModeOn}
onkeydown=${editModeOff} onkeydown=${editModeOff}
onblur=${editModeOff} onblur=${editModeOff}
>${key.split('/').pop()}</label>` >${key.split('/').pop()}</label>`
} }
}) })
self.treeView.event.register('leafRightClick', function (key, data, label, event) {
contextMenu(event, {
'Rename': () => {
if (self.files.readonly) return
editModeOn(label)
},
'Delete': () => {
files.remove(key)
}
})
})
self.treeView.event.register('leafClick', function (key, data, label) { self.treeView.event.register('leafClick', function (key, data, label) {
if (self.focusElement) { if (self.focusElement) {
self.focusElement.classList.remove(css.hasFocus) self.focusElement.classList.remove(css.hasFocus)
@ -209,17 +220,11 @@ function fileExplorer (appAPI, files) {
var textUnderEdit = null var textUnderEdit = null
var textInRename = false var textInRename = false
function editModeOn (event) { function editModeOn (label) {
if (self.files.readonly) return textUnderEdit = label.innerText
var label = this label.setAttribute('contenteditable', true)
var li = label.parentElement.parentElement.parentElement label.classList.add(css.rename)
var classes = li.className label.focus()
if (~classes.indexOf('hasFocus') && !label.getAttribute('contenteditable') && label.getAttribute('data-path') !== self.files.type) {
textUnderEdit = label.innerText
label.setAttribute('contenteditable', true)
label.classList.add(css.rename)
label.focus()
}
} }
function editModeOff (event) { function editModeOff (event) {

Loading…
Cancel
Save