Unverified Commit 3d2594fa authored by yann300's avatar yann300 Committed by GitHub

Merge pull request #2212 from ethereum/plugin-permissions

Improve Plugin permissions + Use emit function from plugin
parents 008399c7 63818a29
......@@ -73,16 +73,22 @@ export class SidePanel extends AbstractPanel {
verticalIcons.events.on('toggleContent', (name) => {
if (!this.contents[name]) return
if (this.active === name) {
// TODO: Only keep `this.emit` (issue#2210)
this.emit('toggle', name)
this.events.emit('toggle', name)
return
}
this.showContent(name)
// TODO: Only keep `this.emit` (issue#2210)
this.emit('showing', name)
this.events.emit('showing', name)
})
// Force opening
verticalIcons.events.on('showContent', (name) => {
if (!this.contents[name]) return
this.showContent(name)
// TODO: Only keep `this.emit` (issue#2210)
this.emit('showing', name)
this.events.emit('showing', name)
})
}
......
......@@ -187,6 +187,8 @@ export class VerticalIcons extends Plugin {
*/
select (name) {
this.updateActivations(name)
// TODO: Only keep `this.emit` (issue#2210)
this.emit('showContent', name)
this.events.emit('showContent', name)
}
......@@ -196,6 +198,8 @@ export class VerticalIcons extends Plugin {
*/
toggle (name) {
this.updateActivations(name)
// TODO: Only keep `this.emit` (issue#2210)
this.emit('toggleContent', name)
this.events.emit('toggleContent', name)
}
......
......@@ -85,6 +85,8 @@ class FileManager extends Plugin {
this.switchFile(newFocus)
}
}
// TODO: Only keep `this.emit` (issue#2210)
this.emit('fileRenamed', oldName, newName)
this.events.emit('fileRenamed', oldName, newName)
}
......@@ -104,8 +106,12 @@ class FileManager extends Plugin {
delete this.openedFiles[name]
if (!Object.keys(this.openedFiles).length) {
this._deps.config.set('currentFile', '')
// TODO: Only keep `this.emit` (issue#2210)
this.emit('noFileSelected')
this.events.emit('noFileSelected')
}
// TODO: Only keep `this.emit` (issue#2210)
this.emit('fileClosed', name)
this.events.emit('fileClosed', name)
}
......@@ -234,6 +240,8 @@ class FileManager extends Plugin {
}
this.editor.discard(path)
delete this.openedFiles[path]
// TODO: Only keep `this.emit` (issue#2210)
this.emit('fileRemoved', path)
this.events.emit('fileRemoved', path)
this.switchFile()
}
......@@ -241,6 +249,8 @@ class FileManager extends Plugin {
unselectCurrentFile () {
this.saveCurrentFile()
this._deps.config.set('currentFile', '')
// TODO: Only keep `this.emit` (issue#2210)
this.emit('noFileSelected')
this.events.emit('noFileSelected')
}
......@@ -258,6 +268,8 @@ class FileManager extends Plugin {
} else {
this.editor.open(file, content)
}
// TODO: Only keep `this.emit` (issue#2210)
this.emit('currentFileChanged', file)
this.events.emit('currentFileChanged', file)
}
})
......@@ -271,6 +283,8 @@ class FileManager extends Plugin {
if (fileList.length) {
_switchFile(browserProvider.type + '/' + fileList[0])
} else {
// TODO: Only keep `this.emit` (issue#2210)
this.emit('noFileSelected')
this.events.emit('noFileSelected')
}
})
......
......@@ -60,6 +60,8 @@ export class ThemeModule extends Plugin {
document.getElementById('theme-link').setAttribute('href', nextTheme.url)
document.documentElement.style.setProperty('--theme', nextTheme.quality)
if (themeName) this.active = themeName
// TODO: Only keep `this.emit` (issue#2210)
this.emit('themeChanged', nextTheme)
this.events.emit('themeChanged', nextTheme)
}
}
......@@ -78,7 +78,7 @@ export class PermissionHandler {
}
this.persistPermissions()
}
resolve()
resolve(true)
}
},
{
......@@ -105,6 +105,7 @@ export class PermissionHandler {
* @returns {Promise<boolean>}
*/
async askPermission (from, to) {
try {
this.permissions = this._getFromLocal()
if (!this.permissions[to.name]) this.permissions[to.name] = {}
if (!this.permissions[to.name][from.name]) return this.openPermission(from, to)
......@@ -113,11 +114,14 @@ export class PermissionHandler {
if (!allow) {
const warning = notAllowWarning(from, to)
addTooltip(warning)
throw new Error(warning)
return false
}
return hash === from.hash
? true // Allow
: this.openPermission(from, to) // New version of a plugin
} catch (err) {
throw new Error(err)
}
}
/**
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment