added closer functions for onclick events

pull/3094/head
LianaHus 6 years ago
parent 1c863906ee
commit 65d0fb9ab2
  1. 60
      src/app/files/fileManager.js
  2. 16
      src/app/ui/tooltip.js

@ -138,41 +138,35 @@ class FileManager extends FileSystemApi {
if (this.currentRequest) {
let reject = false
let saveAsCopy = false
let actions = (toaster) => {
return yo`
<div class="container ml-1">
<button class="btn btn-primary btn-sm m-1" onclick=${(e) => {
function acceptFileRewriting (e, toaster) {
reject = false
e.target.innerHTML = 'Accepted'
toaster.hide()
toaster.forceResolve()
}}>
Accept
</button>
<button class="btn btn-primary btn-sm m-1" onclick=${(e) => {
}
function cancelFileRewriting (e, toaster) {
reject = true
e.target.innerHTML = 'Canceled'
toaster.hide()
}}>
Cancel
</button>
<button class="btn btn-primary btn-sm m-1" onclick=${(e) => {
if (saveAsCopy) return
const fileProvider = this.fileProviderOf(path)
if (fileProvider) {
helper.createNonClashingNameWithPrefix(path, fileProvider, '', (error, copyName) => {
if (error) {
console.log('createNonClashingNameWithPrefix', error)
copyName = path + '.' + this.currentRequest.from
}
this._setFileInternal(copyName, content)
this.switchFile(copyName)
})
}
e.target.innerHTML = 'Saved'
const saveFileAsCopy = (e, toaster) => {
if (saveAsCopy) return
this._saveAsCopy(path, content)
saveAsCopy = true
e.target.innerHTML = 'Saved'
toaster.hide()
}}>
}
let actions = (toaster) => {
return yo`
<div class="container ml-1">
<button class="btn btn-primary btn-sm m-1" onclick=${(e) => acceptFileRewriting(e, toaster)}>
Accept
</button>
<button class="btn btn-primary btn-sm m-1" onclick=${(e) => cancelFileRewriting(e, toaster)}>
Cancel
</button>
<button class="btn btn-primary btn-sm m-1" onclick="${(e) => saveFileAsCopy(e, toaster)}">
Save As Copy
</button>
</div>
@ -185,7 +179,7 @@ class FileManager extends FileSystemApi {
${this.currentRequest.from}<span class="text-danger font-weight-bold"> is trying to modify </span>${path}
</span>
</div>
`, actions, { time: 5000 })
`, actions, { time: 15000 })
if (reject) throw new Error(`set file operation on ${path} aborted by user.`)
if (saveAsCopy) return
}
@ -206,6 +200,20 @@ class FileManager extends FileSystemApi {
})
}
_saveAsCopy(path, content) {
const fileProvider = this.fileProviderOf(path)
if (fileProvider) {
helper.createNonClashingNameWithPrefix(path, fileProvider, '', (error, copyName) => {
if (error) {
console.log('createNonClashingNameWithPrefix', error)
copyName = path + '.' + this.currentRequest.from
}
this._setFileInternal(copyName, content)
this.switchFile(copyName)
})
}
}
removeTabsOf (provider) {
for (var tab in this.openedFiles) {
if (this.fileProviderOf(tab).type === provider.type) {

@ -55,8 +55,16 @@ class Toaster {
const shortTooltipText = (canShorten && tooltipText.length > 201) ? tooltipText.substring(0, 200) + '...' : tooltipText
this.resolveFn = resolve
function showFullMessage() {
modal.alert(tooltipText)
}
function closeTheToaster(self) {
self.hide()
over()
resolve()
}
let button = tooltipText.length > 201 ? yo`
<button class="btn btn-secondary btn-sm mx-3" style="white-space: nowrap;" onclick=${() => { modal.alert(tooltipText) }}>Show full message</button>
<button class="btn btn-secondary btn-sm mx-3" style="white-space: nowrap;" onclick=${() => showFullMessage()}>Show full message</button>
` : ``
this.tooltip = yo`
@ -67,11 +75,7 @@ class Toaster {
${actionElement}
</span>
<span style="align-self: baseline;">
<button class="fas fa-times btn-info mx-1 p-0" onclick=${() => {
this.hide()
over()
resolve()
}}></button>
<button class="fas fa-times btn-info mx-1 p-0" onclick=${() => closeTheToaster(this)}></button>
</span>
</div>`
let timeOut = () => {

Loading…
Cancel
Save