| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- 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");
- }
|