67 lines
1.8 KiB
JavaScript
67 lines
1.8 KiB
JavaScript
const PLUGIN_NAME = "Sync Options";
|
|
|
|
/**
|
|
* @type {{plugin: Function, plugin:name: string, hooks: object}}
|
|
*/
|
|
module.exports = {
|
|
|
|
"plugin": function (ui, bs) {
|
|
|
|
ui.listen("sync-options", {
|
|
|
|
"set": function (data) {
|
|
|
|
ui.logger.debug("Setting option: {magenta:%s}:{cyan:%s}", data.path.join("."), data.value);
|
|
bs.setOptionIn(data.path, data.value);
|
|
|
|
},
|
|
|
|
"setMany": function (data) {
|
|
|
|
ui.logger.debug("Setting Many options...");
|
|
|
|
if (data.value !== true) {
|
|
data.value = false;
|
|
}
|
|
|
|
bs.setMany(function (item) {
|
|
[
|
|
["codeSync"],
|
|
["ghostMode", "clicks"],
|
|
["ghostMode", "scroll"],
|
|
["ghostMode", "forms", "inputs"],
|
|
["ghostMode", "forms", "toggles"],
|
|
["ghostMode", "forms", "submit"]
|
|
].forEach(function (option) {
|
|
item.setIn(option, data.value);
|
|
});
|
|
});
|
|
|
|
return bs;
|
|
}
|
|
});
|
|
},
|
|
"hooks": {
|
|
"markup": fileContent("sync-options.html"),
|
|
"client:js": fileContent("sync-options.client.js"),
|
|
"templates": [],
|
|
"page": {
|
|
path: "/sync-options",
|
|
title: PLUGIN_NAME,
|
|
template: "sync-options.html",
|
|
controller: PLUGIN_NAME.replace(" ", "") + "Controller",
|
|
order: 2,
|
|
icon: "sync"
|
|
}
|
|
},
|
|
"plugin:name": PLUGIN_NAME
|
|
};
|
|
|
|
function getPath (filepath) {
|
|
return require("path").join(__dirname, filepath);
|
|
}
|
|
|
|
function fileContent (filepath) {
|
|
return require("fs").readFileSync(getPath(filepath), "utf-8");
|
|
}
|