mirror of
https://github.com/Foundry376/Mailspring.git
synced 2024-09-24 01:06:07 +08:00
feat(links): forward name and message in links
This commit is contained in:
parent
6a828a099f
commit
5bd7092199
|
@ -552,6 +552,7 @@ class Actions {
|
||||||
static toggleAccount = ActionScopeWindow;
|
static toggleAccount = ActionScopeWindow;
|
||||||
|
|
||||||
static notifyPluginsChanged = ActionScopeGlobal;
|
static notifyPluginsChanged = ActionScopeGlobal;
|
||||||
|
static notifyPluginsChangedViaUrl = ActionScopeGlobal;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -59,7 +59,7 @@ class PackageManager
|
||||||
@packageActivators = []
|
@packageActivators = []
|
||||||
@registerPackageActivator(this, ['nylas'])
|
@registerPackageActivator(this, ['nylas'])
|
||||||
|
|
||||||
ipcRenderer.on("changePluginStateFromUrl", @_onChangePluginState)
|
ipcRenderer.on("changePluginStateFromUrl", @_onChangePluginStateFromUrl)
|
||||||
|
|
||||||
|
|
||||||
pluginIdFor: (packageName) =>
|
pluginIdFor: (packageName) =>
|
||||||
|
@ -70,7 +70,7 @@ class PackageManager
|
||||||
@cachedPackagePluginIds[cacheKey] = @_resolvePluginIdFor(packageName, env)
|
@cachedPackagePluginIds[cacheKey] = @_resolvePluginIdFor(packageName, env)
|
||||||
return @cachedPackagePluginIds[cacheKey]
|
return @cachedPackagePluginIds[cacheKey]
|
||||||
|
|
||||||
_onChangePluginState: (event, urlToOpen = "") =>
|
_onChangePluginStateFromUrl: (event, urlToOpen = "") =>
|
||||||
{query} = url.parse(urlToOpen, true)
|
{query} = url.parse(urlToOpen, true)
|
||||||
disabled = NylasEnv.config.get('core.disabledPackages') ? []
|
disabled = NylasEnv.config.get('core.disabledPackages') ? []
|
||||||
turnedOn = []
|
turnedOn = []
|
||||||
|
@ -78,18 +78,29 @@ class PackageManager
|
||||||
for name, state of query
|
for name, state of query
|
||||||
continue if /-displayName/gi.test(name)
|
continue if /-displayName/gi.test(name)
|
||||||
displayName = query["#{name}-displayName"] ? name
|
displayName = query["#{name}-displayName"] ? name
|
||||||
|
message = query["#{name}-message"] ? null
|
||||||
if state is "off" and name not in disabled
|
if state is "off" and name not in disabled
|
||||||
turnedOff.push(displayName)
|
turnedOff.push({name, displayName, message})
|
||||||
if name not in disabled then disabled.push(name)
|
if name not in disabled then disabled.push(name)
|
||||||
else if state is "on"
|
else if state is "on"
|
||||||
turnedOn.push(displayName)
|
turnedOn.push({name, displayName, message})
|
||||||
disabled = _.without(disabled, name)
|
disabled = _.without(disabled, name)
|
||||||
NylasEnv.config.set('core.disabledPackages', disabled)
|
NylasEnv.config.set('core.disabledPackages', disabled)
|
||||||
if NylasEnv.isMainWindow() then NylasEnv.focus()
|
if NylasEnv.isMainWindow() then NylasEnv.focus()
|
||||||
if turnedOn.length > 0 then @_notifyPluginsChanged(turnedOn, "enabled")
|
if turnedOn.length > 0 then @_notifyPluginsChanged(turnedOn, "enabled")
|
||||||
if turnedOff.length > 0 then @_notifyPluginsChanged(turnedOff, "disabled")
|
if turnedOff.length > 0 then @_notifyPluginsChanged(turnedOff, "disabled")
|
||||||
|
|
||||||
_notifyPluginsChanged: (names, dir) =>
|
setTimeout(() =>
|
||||||
|
# This lets us enable features in plugins after it's been enabled
|
||||||
|
# via a url, but after the the showMessageBox modal has come up.
|
||||||
|
Actions.notifyPluginsChangedViaUrl({turnedOn, turnedOff})
|
||||||
|
, 350)
|
||||||
|
|
||||||
|
_notifyPluginsChanged: (nameData, dir) =>
|
||||||
|
names = _.pluck(nameData, "displayName")
|
||||||
|
messages = _.compact(_.pluck(nameData, "message")).map((m) => decodeURIComponent(m))
|
||||||
|
if messages.length > 0
|
||||||
|
msgText = "\n\n" + messages.join("\n\n")
|
||||||
if names.length >= 2
|
if names.length >= 2
|
||||||
last = names[names.length - 1]
|
last = names[names.length - 1]
|
||||||
names[names.length - 1] = "and #{last}"
|
names[names.length - 1] = "and #{last}"
|
||||||
|
@ -99,10 +110,10 @@ class PackageManager
|
||||||
remote.dialog.showMessageBox(remote.getCurrentWindow(), {
|
remote.dialog.showMessageBox(remote.getCurrentWindow(), {
|
||||||
type: 'info',
|
type: 'info',
|
||||||
message: "#{pluginText} #{dir}",
|
message: "#{pluginText} #{dir}",
|
||||||
detail: "#{names.join(", ")} #{has} been #{dir}"
|
detail: "#{names.join(", ")} #{has} been #{dir}#{msgText}"
|
||||||
buttons: ['Thanks'],
|
buttons: ['Thanks'],
|
||||||
})
|
})
|
||||||
, 500
|
, 300
|
||||||
|
|
||||||
_resolvePluginIdFor: (packageName, env) =>
|
_resolvePluginIdFor: (packageName, env) =>
|
||||||
metadata = @loadedPackages[packageName]?.metadata
|
metadata = @loadedPackages[packageName]?.metadata
|
||||||
|
|
2
src/pro
2
src/pro
|
@ -1 +1 @@
|
||||||
Subproject commit 6460d6faa1d895f07ba3d3892a67ad41ddb04c09
|
Subproject commit 079eb8b1c8c6d3ba9db4c01da4f56360c0dab8b1
|
Loading…
Reference in a new issue