mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-08-30 20:49:20 +03:00
*.jsx -> *.js
This commit is contained in:
parent
0a2b826f71
commit
e88c193334
98 changed files with 341 additions and 340 deletions
109
dev/Common/Plugins.js
Normal file
109
dev/Common/Plugins.js
Normal file
|
|
@ -0,0 +1,109 @@
|
|||
|
||||
import _ from '_';
|
||||
import {isFunc, isArray, isUnd} from 'Common/Utils';
|
||||
import {data as GlobalsData} from 'Common/Globals';
|
||||
import * as Settings from 'Storage/Settings';
|
||||
|
||||
const
|
||||
SIMPLE_HOOKS = {},
|
||||
USER_VIEW_MODELS_HOOKS = [],
|
||||
ADMIN_VIEW_MODELS_HOOKS = [];
|
||||
|
||||
/**
|
||||
* @param {string} name
|
||||
* @param {Function} callback
|
||||
*/
|
||||
export function addHook(name, callback)
|
||||
{
|
||||
if (isFunc(callback))
|
||||
{
|
||||
if (!isArray(SIMPLE_HOOKS[name]))
|
||||
{
|
||||
SIMPLE_HOOKS[name] = [];
|
||||
}
|
||||
|
||||
SIMPLE_HOOKS[name].push(callback);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} name
|
||||
* @param {Array=} args = []
|
||||
*/
|
||||
export function runHook(name, args = [])
|
||||
{
|
||||
if (isArray(SIMPLE_HOOKS[name]))
|
||||
{
|
||||
_.each(SIMPLE_HOOKS[name], (callback) => {
|
||||
callback(...args);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} name
|
||||
* @returns {?}
|
||||
*/
|
||||
export function mainSettingsGet(name)
|
||||
{
|
||||
return Settings.settingsGet(name);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {Function} callback
|
||||
* @param {string} action
|
||||
* @param {Object=} parameters
|
||||
* @param {?number=} timeout
|
||||
*/
|
||||
export function remoteRequest(callback, action, parameters, timeout)
|
||||
{
|
||||
if (GlobalsData.__APP__)
|
||||
{
|
||||
GlobalsData.__APP__.remote().defaultRequest(callback, 'Plugin' + action, parameters, timeout);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {Function} SettingsViewModelClass
|
||||
* @param {string} labelName
|
||||
* @param {string} template
|
||||
* @param {string} route
|
||||
*/
|
||||
export function addSettingsViewModel(SettingsViewModelClass, template, labelName, route)
|
||||
{
|
||||
USER_VIEW_MODELS_HOOKS.push([SettingsViewModelClass, template, labelName, route]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {Function} SettingsViewModelClass
|
||||
* @param {string} labelName
|
||||
* @param {string} template
|
||||
* @param {string} route
|
||||
*/
|
||||
export function addSettingsViewModelForAdmin(SettingsViewModelClass, template, labelName, route)
|
||||
{
|
||||
ADMIN_VIEW_MODELS_HOOKS.push([SettingsViewModelClass, template, labelName, route]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {boolean} admin
|
||||
*/
|
||||
export function runSettingsViewModelHooks(admin)
|
||||
{
|
||||
const Knoin = require('Knoin/Knoin');
|
||||
_.each(admin ? ADMIN_VIEW_MODELS_HOOKS : USER_VIEW_MODELS_HOOKS, (view) => {
|
||||
Knoin.addSettingsViewModel(view[0], view[1], view[2], view[3]);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} pluginSection
|
||||
* @param {string} name
|
||||
* @returns {?}
|
||||
*/
|
||||
export function settingsGet(pluginSection, name)
|
||||
{
|
||||
let plugins = Settings.settingsGet('Plugins');
|
||||
plugins = plugins && !isUnd(plugins[pluginSection]) ? plugins[pluginSection] : null;
|
||||
return plugins ? (isUnd(plugins[name]) ? null : plugins[name]) : null;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue