UNPKG

strapi-plugin-all-in-one-accessibility

Version:
493 lines (475 loc) 14.3 kB
"use strict"; const bootstrap = ({ strapi }) => { }; const destroy = ({ strapi }) => { }; const register = ({ strapi }) => { }; const config = { default: {}, validator() { } }; function getDefaultExportFromCjs(x) { return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x; } const kind = "collectionType"; const collectionName = "setting"; const info = { singularName: "settings", pluralName: "setting", displayName: "Settings" }; const options = { draftAndPublish: false, comment: "" }; const pluginOptions = { "content-manager": { visible: false }, "content-type-builder": { visible: false } }; const attributes = { Icon_Position: { type: "enumeration", "enum": [ "top_left", "top_center", "top_right", "middle_left", "middle_right", "bottom_left", "bottom_center", "bottom_right" ] }, Icon_Type: { type: "enumeration", "enum": [ "aioa-icon-type-1", "aioa-icon-type-2", "aioa-icon-type-3" ] }, Icon_Size: { type: "enumeration", "enum": [ "aioa-big-icon", "aioa-medium-icon", "aioa-default-icon", "aioa-small-icon", "aioa-extra-small-icon" ] }, Color_Code: { type: "string" } }; const require$$0 = { kind, collectionName, info, options, pluginOptions, attributes }; const schema = require$$0; var settings$5 = { schema }; const settings$4 = settings$5; var contentTypes = { settings: settings$4 }; const contentTypes$1 = /* @__PURE__ */ getDefaultExportFromCjs(contentTypes); const controller$1 = ({ strapi }) => ({ index(ctx) { ctx.body = strapi.plugin("all-in-one-accessibility").service("service").getWelcomeMessage(); }, findContentTypes(ctx) { ctx.body = strapi.plugin("all-in-one-accessibility").service("service").getContentTypes(); } }); const controller = ({ strapi }) => ({ async getSettings(ctx) { try { return await strapi.plugin("all-in-one-accessibility").service("settings").getSettings(ctx.query); } catch (err) { ctx.trow(500, err); } }, async deleteSettings(ctx) { try { return await strapi.plugin("all-in-one-accessibility").service("settings").deleteSettings(ctx.params.id); } catch (err) { ctx.throw(500, err); } }, async createSettings(ctx) { try { ctx.body = await strapi.plugin("all-in-one-accessibility").service("settings").createSettings(ctx.request.body); } catch (err) { ctx.throw(500, err); } }, async updateSettings(ctx) { try { return await strapi.plugin("all-in-one-accessibility").service("settings").updateSettings(ctx.params.id, ctx.request.body); } catch (err) { ctx.throw(500, err); } }, async addScript() { try { return await strapi.plugin("all-in-one-accessibility").service("settings").addScript(); } catch (err) { console.error("Error triggering the script:", err); } }, getScript: async (ctx) => { strapi.db.query("plugin::all-in-one-accessibility.settings"); const q = strapi.entityService.findMany("plugin::all-in-one-accessibility.settings"); const settings2 = await q; console.log("settings: ", settings2); var hexaColorCode = "420083", licensekey = "", IconPosition = "bottom_right", IconType = "aioa-icon-type-1", IconSize = "aioa-default-icon"; if (settings2.length > 0) { if (Object.keys(settings2[0]).length !== 0) { console.log("Color Code", settings2[0]["Color_Code"]); console.log("Icon Position", settings2[0]["Icon_Position"]); console.log("Icon Type", settings2[0]["Icon_Type"]); console.log("Icon Size", settings2[0]["Icon_Size"]); hexaColorCode = settings2[0]["Color_Code"]; licensekey = ""; IconPosition = settings2[0]["Icon_Position"]; IconType = settings2[0]["Icon_Type"]; IconSize = settings2[0]["Icon_Size"]; } } const scriptUrl = `https://www.skynettechnologies.com/accessibility/js/all-in-one-accessibility-js-widget-minify.js?colorcode=${hexaColorCode}&token=${licensekey}&position=${IconPosition}.${IconType}.${IconSize}`; ctx.type = "application/javascript"; ctx.body = `document.write('<script src="${scriptUrl}"><\/script>');`; } }); var settings$2 = controller; const settings$3 = /* @__PURE__ */ getDefaultExportFromCjs(settings$2); const controllers = { controller: controller$1, settings: settings$3 }; const middlewares = {}; const policies = {}; const contentApi = [ { method: "GET", path: "/", handler: "controller.index", config: { policies: [], auth: false } }, { method: "GET", path: "/getsettings", handler: "settings.getSettings", config: { policies: [], auth: false } }, { method: "POST", path: "/createsettings", handler: "settings.createSettings", config: { policies: [], auth: false } }, { method: "DELETE", path: "/deletesettings/:id", handler: "settings.deleteSettings", config: { policies: [], auth: false } }, { method: "PUT", path: "/updatesettings/:id", handler: "settings.updateSettings", config: { policies: [], auth: false } }, { method: "POST", path: "/addscript", handler: "settings.addScript", config: { policies: [], auth: false } }, { method: "GET", path: "/getScript", handler: "settings.getScript", config: { policies: [], auth: false } } ]; const admin = [ { method: "GET", path: "/", handler: "controller.index", config: { policies: [], auth: false } }, { method: "GET", path: "/getsettings", handler: "settings.getSettings", config: { policies: [], auth: false } }, { method: "POST", path: "/createsettings", handler: "settings.createSettings", config: { policies: [], auth: false } }, { method: "DELETE", path: "/deletesettings/:id", handler: "settings.deleteSettings", config: { policies: [], auth: false } }, { method: "PUT", path: "/updatesettings/:id", handler: "settings.updateSettings", config: { policies: [], auth: false } }, { method: "POST", path: "/addscript", handler: "settings.addScript", config: { policies: [], auth: false } }, { method: "GET", path: "/getScript", handler: "settings.getScript", config: { policies: [], auth: false } } ]; const routes = { "content-api": { type: "content-api", routes: [...contentApi] }, admin: { type: "admin", routes: [...admin] } }; const service = ({ strapi }) => ({ getWelcomeMessage() { return "Welcome to Strapi 🚀"; }, getContentTypes() { return strapi.contentTypes; } }); var settings = ({ strapi }) => ({ /** * Get Settings from Strapi Database */ async getSettings(query) { strapi.db.query("plugin::all-in-one-accessibility.settings"); const q = strapi.entityService.findMany("plugin::all-in-one-accessibility.settings"); return await q; }, async deleteSettings(id) { return await strapi.entityService.delete("plugin::all-in-one-accessibility.settings", id); }, async createSettings(data) { return await strapi.entityService.create("plugin::all-in-one-accessibility.settings", data); }, async updateSettings(id, data) { return await strapi.entityService.update("plugin::all-in-one-accessibility.settings", id, data); }, async addScript() { try { const fs = require("fs"); strapi.db.query("plugin::all-in-one-accessibility.settings"); const q = strapi.entityService.findMany("plugin::all-in-one-accessibility.settings"); const settings2 = await q; console.log("settings: ", settings2); var hexaColorCode = "420083", licensekey = "", IconPosition = "bottom_right", IconType = "aioa-icon-type-1", IconSize = "aioa-default-icon"; if (settings2.length > 0) { if (Object.keys(settings2[0]).length !== 0) { console.log("Color Code", settings2[0]["Color_Code"]); console.log("Icon Position", settings2[0]["Icon_Position"]); console.log("Icon Type", settings2[0]["Icon_Type"]); console.log("Icon Size", settings2[0]["Icon_Size"]); hexaColorCode = settings2[0]["Color_Code"]; licensekey = ""; IconPosition = settings2[0]["Icon_Position"]; IconType = settings2[0]["Icon_Type"]; IconSize = settings2[0]["Icon_Size"]; } } if (!fs.existsSync("public")) { fs.mkdirSync("public"); } const headerPath = "public/header.html"; const footerPath = "public/footer.html"; const indexPath = "public/index.html"; const addScriptToFile = (filePath) => { if (fs.existsSync(filePath)) { let content = fs.readFileSync(filePath, "utf8"); if (content.includes("aioa-adawidget")) { const scriptToAdd = ` <script id="aioa-adawidget" src="https://www.skynettechnologies.com/accessibility/js/all-in-one-accessibility-js-widget-minify.js?colorcode=${hexaColorCode}&token=${licensekey}&position=${IconPosition}.${IconType}.${IconSize}"><\/script>`; content = content.replace(/<script id="aioa-adawidget".*<\/script>/, scriptToAdd); fs.writeFileSync(filePath, content, "utf8"); console.log("Script parameters updated in ", filePath); } else { const scriptToAdd = ` <script id="aioa-adawidget" src="https://www.skynettechnologies.com/accessibility/js/all-in-one-accessibility-js-widget-minify.js?colorcode=${hexaColorCode}&token=${licensekey}&position=${IconPosition}.${IconType}.${IconSize}"><\/script>`; content += scriptToAdd; fs.writeFileSync(filePath, content, "utf8"); console.log("Script is not present in ", filePath); } } }; if (fs.existsSync(headerPath)) { addScriptToFile(headerPath); } else if (fs.existsSync(footerPath)) { addScriptToFile(footerPath); } else if (fs.existsSync(indexPath)) { if (!fs.existsSync(indexPath)) { fs.writeFileSync(indexPath, "<!DOCTYPE html><html><head></head><body></body></html>", "utf8"); } addScriptToFile(indexPath); } console.log("Script added or updated in header, footer, or index file"); } catch (err) { console.error("Error updating script parameters in public/index.html:", err); } } /*async MyComponent() { strapi.db.query('plugin::all-in-one-accessibility.settings') const q = strapi.entityService.findMany("plugin::all-in-one-accessibility.settings",); const settings = await q; console.log("settings: ", settings); var hexaColorCode = "420083", licensekey = "", IconPosition = "bottom_right", IconType = "aioa-icon-type-1", IconSize = "aioa-default-icon"; if (settings.length > 0) { if (Object.keys(settings[0]).length !== 0) { console.log("License Key", settings[0]["License_Key"]); console.log("Color Code", settings[0]["Color_Code"]); console.log("Icon Position", settings[0]["Icon_Position"]); console.log("Icon Type", settings[0]["Icon_Type"]); console.log("Icon Size", settings[0]["Icon_Size"]); hexaColorCode = settings[0]["Color_Code"]; licensekey = settings[0]["License_Key"]; IconPosition = settings[0]["Icon_Position"]; IconType = settings[0]["Icon_Type"]; IconSize = settings[0]["Icon_Size"]; } } }, MyComponent: async (ctx) => { strapi.db.query('plugin::all-in-one-accessibility.settings') const q = strapi.entityService.findMany("plugin::all-in-one-accessibility.settings",); const settings = await q; console.log("settings: ", settings); var hexaColorCode = "420083", licensekey = "", IconPosition = "bottom_right", IconType = "aioa-icon-type-1", IconSize = "aioa-default-icon"; if (settings.length > 0) { if (Object.keys(settings[0]).length !== 0) { console.log("License Key", settings[0]["License_Key"]); console.log("Color Code", settings[0]["Color_Code"]); console.log("Icon Position", settings[0]["Icon_Position"]); console.log("Icon Type", settings[0]["Icon_Type"]); console.log("Icon Size", settings[0]["Icon_Size"]); hexaColorCode = settings[0]["Color_Code"]; licensekey = settings[0]["License_Key"]; IconPosition = settings[0]["Icon_Position"]; IconType = settings[0]["Icon_Type"]; IconSize = settings[0]["Icon_Size"]; } } const scriptUrl = `https://www.skynettechnologies.com/accessibility/js/all-in-one-accessibility-js-widget-minify.js?colorcode=${hexaColorCode}&token=${licensekey}&position=${IconPosition}.${IconType}.${IconSize}`; // Function to attach the script function attachScript(src, id, callback) { const existingScript = ctx.document.getElementById(id); if (!existingScript) { const script = ctx.document.createElement('script'); script.src = src; script.id = id; script.onload = () => { if (callback) { callback(); } }; ctx.document.head.appendChild(script); } else if (callback) { callback(); } } // Attach the script when the controller is called attachScript(scriptUrl, 'aioa-adawidget', () => { // The script has been successfully attached and loaded // You can use the script's functionality here // For example, you can send a response to the client: return ctx.send({ message: 'Script attached successfully' }); }); },*/ }); const settings$1 = /* @__PURE__ */ getDefaultExportFromCjs(settings); const services = { service, settings: settings$1 }; const index = { bootstrap, destroy, register, config, controllers, contentTypes: contentTypes$1, middlewares, policies, routes, services }; module.exports = index;