added accept button to toaster for setfile

pull/1/head
LianaHus 6 years ago
parent e4c026bd5d
commit c388b78eec
  1. 75
      src/app/files/fileManager.js

@ -138,43 +138,62 @@ class FileManager extends FileSystemApi {
if (this.currentRequest) { if (this.currentRequest) {
let reject = false let reject = false
let savedAsCopy = false let savedAsCopy = false
let accept = false
let actions = (toaster) => { let actions = (toaster) => {
return yo`<div class="container ml-1"> return yo`
<button class="btn btn-primary btn-sm m-1" onclick=${(e) => { <div class="container ml-1">
reject = true; <button class="btn btn-primary btn-sm m-1" onclick=${(e) => {
e.target.innerHTML = 'Canceled'; accept = true;
toaster.hide() e.target.innerHTML = 'Accepted';
}}> const fileProvider = this.fileProviderOf(path)
Cancel if (!fileProvider) return
</button> if (!fileProvider.set(path, content)) {
<button class="btn btn-primary btn-sm m-1" onclick=${(e) => { return modalDialogCustom.alert('Failed to create a file ' + path)
if (savedAsCopy) return }
savedAsCopy = true this.syncEditor(path)
const fileProvider = this.fileProviderOf(path) this.switchFile(path)
if (!fileProvider) return toaster.hide()
helper.createNonClashingNameWithPrefix(path, fileProvider, '', (error, newFile) => { }}>
if (error) return modalDialogCustom.alert('Failed to create file. ' + newFile + ' ' + error) Accept
if (!fileProvider.set(newFile, content)) return modalDialogCustom.alert('Failed to create a file ' + newFile) </button>
this.switchFile(newFile) <button class="btn btn-primary btn-sm m-1" onclick=${(e) => {
}) reject = true;
e.target.innerHTML = 'Saved' e.target.innerHTML = 'Canceled';
toaster.hide() toaster.hide()
}}> }}>
Save As Copy Cancel
</button> </button>
</div>` <button class="btn btn-primary btn-sm m-1" onclick=${(e) => {
if (savedAsCopy) return
savedAsCopy = true
const fileProvider = this.fileProviderOf(path)
if (!fileProvider) return
helper.createNonClashingNameWithPrefix(path, fileProvider, '', (error, newFile) => {
if (error) return modalDialogCustom.alert('Failed to create file. ' + newFile + ' ' + error)
if (!fileProvider.set(newFile, content)) return modalDialogCustom.alert('Failed to create a file ' + newFile)
this.switchFile(newFile)
this.syncEditor(path)
})
e.target.innerHTML = 'Saved'
toaster.hide()
}}>
Save As Copy
</button>
</div>
`
} }
await toaster(yo` await toaster(yo`
<div> <div>
<i class="fas fa-exclamation-triangle text-danger mr-1"></i> <i class="fas fa-exclamation-triangle text-danger mr-1"></i>
<span> <span>
${this.currentRequest.from}<span class="text-danger"> is modyfing </span>${path} ${this.currentRequest.from}<span class="text-danger"> is trying to modify </span>${path}
</span> </span>
</div>`, actions, { time: 4000 }) </div>
`, actions, { time: 4000 })
if (reject) throw new Error(`set file operation on ${path} aborted by user.`) if (reject) throw new Error(`set file operation on ${path} aborted by user.`)
if (savedAsCopy) return if (accept || savedAsCopy) return
else this._setFileInternal(path, content)
} }
this._setFileInternal(path, content)
} }
_setFileInternal (path, content) { _setFileInternal (path, content) {

Loading…
Cancel
Save