Socket
Socket
Sign inDemoInstall

sails-adminpanel

Package Overview
Dependencies
Maintainers
1
Versions
171
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

sails-adminpanel - npm Package Compare versions

Comparing version 2.0.1 to 2.1.0-st1

controllers/form.d.ts

10

docs/Links.md

@@ -7,2 +7,3 @@ # Custom links

- `global` or `inline` actions in `actions` property of `list` view
- `tools` property to create link like instance submenu

@@ -17,2 +18,11 @@ ## Action buttons

model: 'Page',
tools: [
{
id: "0",
link: "/",
title: "Some new action",
icon: "ok",
accessRightsToken: "someLinkToken"
}
],
navbar: {

@@ -19,0 +29,0 @@ additionalLinks: [

54

helper/menuHelper.js

@@ -141,32 +141,34 @@ "use strict";

let menus = [];
Object.entries(MenuHelper.config.instances).forEach(function ([key, val]) {
if (val.tools && val.tools.length > 0 && val.tools[0].id !== "overview") {
val.tools.unshift({
id: "overview",
if (MenuHelper.config.instances) {
Object.entries(MenuHelper.config.instances).forEach(function ([key, val]) {
if (val.tools && val.tools.length > 0 && val.tools[0].id !== "overview") {
val.tools.unshift({
id: "overview",
link: MenuHelper.config.routePrefix + '/' + key,
title: 'Overview',
icon: ""
});
}
menus.push({
link: MenuHelper.config.routePrefix + '/' + key,
title: 'Overview',
icon: ""
title: val.title,
icon: val.icon || null,
actions: val.tools || null,
id: val.title.replace(" ", "_"),
instanceName: key
});
}
menus.push({
link: MenuHelper.config.routePrefix + '/' + key,
title: val.title,
icon: val.icon || null,
actions: val.tools || null,
id: val.title.replace(" ", "_"),
instanceName: key
});
});
if (MenuHelper.config.navbar.additionalLinks && MenuHelper.config.navbar.additionalLinks.length > 0) {
MenuHelper.config.navbar.additionalLinks.forEach(function (additionalLink) {
if (!additionalLink.link || !additionalLink.title || additionalLink.disabled) {
return;
}
menus.push({
link: additionalLink.link,
title: additionalLink.title,
id: additionalLink.id || additionalLink.title.replace(" ", "_"),
icon: additionalLink.icon || null
if (MenuHelper.config.navbar.additionalLinks && MenuHelper.config.navbar.additionalLinks.length > 0) {
MenuHelper.config.navbar.additionalLinks.forEach(function (additionalLink) {
if (!additionalLink.link || !additionalLink.title || additionalLink.disabled) {
return;
}
menus.push({
link: additionalLink.link,
title: additionalLink.title,
id: additionalLink.id || additionalLink.title.replace(" ", "_"),
icon: additionalLink.icon || null
});
});
});
}
}

@@ -173,0 +175,0 @@ return menus;

@@ -160,32 +160,34 @@ /**

let menus = [];
Object.entries<InstanceConfig>(MenuHelper.config.instances).forEach(function([key, val]) {
if (val.tools && val.tools.length > 0 && val.tools[0].id !== "overview") {
val.tools.unshift({
id: "overview",
link: MenuHelper.config.routePrefix + '/' + key,
title: 'Overview',
icon: ""
})
}
menus.push({
link: MenuHelper.config.routePrefix + '/' + key,
title: val.title,
icon: val.icon || null,
actions: val.tools || null,
id: val.title.replace(" ","_"),
instanceName: key
});
});
if (MenuHelper.config.navbar.additionalLinks && MenuHelper.config.navbar.additionalLinks.length > 0) {
MenuHelper.config.navbar.additionalLinks.forEach(function(additionalLink) {
if (!additionalLink.link || !additionalLink.title || additionalLink.disabled) {
return;
if (MenuHelper.config.instances) {
Object.entries<InstanceConfig>(MenuHelper.config.instances).forEach(function([key, val]) {
if (val.tools && val.tools.length > 0 && val.tools[0].id !== "overview") {
val.tools.unshift({
id: "overview",
link: MenuHelper.config.routePrefix + '/' + key,
title: 'Overview',
icon: ""
})
}
menus.push({
link: additionalLink.link,
title: additionalLink.title,
id: additionalLink.id || additionalLink.title.replace(" ","_"),
icon: additionalLink.icon || null
link: MenuHelper.config.routePrefix + '/' + key,
title: val.title,
icon: val.icon || null,
actions: val.tools || null,
id: val.title.replace(" ","_"),
instanceName: key
});
});
if (MenuHelper.config.navbar.additionalLinks && MenuHelper.config.navbar.additionalLinks.length > 0) {
MenuHelper.config.navbar.additionalLinks.forEach(function(additionalLink) {
if (!additionalLink.link || !additionalLink.title || additionalLink.disabled) {
return;
}
menus.push({
link: additionalLink.link,
title: additionalLink.title,
id: additionalLink.id || additionalLink.title.replace(" ","_"),
icon: additionalLink.icon || null
});
});
}
}

@@ -192,0 +194,0 @@

@@ -36,3 +36,3 @@ import * as path from "path";

}
}
}
}

@@ -64,2 +64,14 @@ export interface AdminpanelConfig {

/**
* Generator
* */
generator?: {
path: string
forms?: {
[key:string]: Fields
}
wizards?: {
[key:string]: Fields
}
}
/**
* Prime administrator login credentials

@@ -66,0 +78,0 @@ * */

@@ -7,2 +7,3 @@ "use strict";

const bindDev_1 = require("./bindDev");
const bindForms_1 = require("./bindForms");
async function default_1() {

@@ -24,5 +25,7 @@ // Binding list of function for rendering

await (0, bindAuthorization_1.default)();
// binding forms from files
(0, bindForms_1.default)();
if (sails.hooks.i18n && sails.hooks.i18n.appendLocale) {
sails.after(["hook:i18n:loaded"], async () => {
await (0, bindTranslations_1.default)();
(0, bindTranslations_1.default)();
});

@@ -29,0 +32,0 @@ }

@@ -5,2 +5,3 @@ import bindTranslations from "./bindTranslations";

import bindDev from "./bindDev";
import bindForms from "./bindForms";

@@ -29,5 +30,8 @@ export default async function () {

// binding forms from files
bindForms();
if (sails.hooks.i18n && sails.hooks.i18n.appendLocale) {
sails.after(["hook:i18n:loaded"], async () => {
await bindTranslations();
bindTranslations();
})

@@ -34,0 +38,0 @@ } else {

@@ -5,19 +5,39 @@ "use strict";

function bindAccessRights() {
let instances = sails.config.adminpanel.instances;
for (let key of Object.keys(instances)) {
let department = `Section ${key}`;
// create
accessRightsHelper_1.AccessRightsHelper.registerToken({ id: `create-${key}-instance`, name: "Create",
description: "Access to creating record in database", department: department });
// read
accessRightsHelper_1.AccessRightsHelper.registerToken({ id: `read-${key}-instance`, name: "Read",
description: "Access to reading records in database", department: department });
// update
accessRightsHelper_1.AccessRightsHelper.registerToken({ id: `update-${key}-instance`, name: "Update",
description: "Access to updating records in database", department: department });
// delete
accessRightsHelper_1.AccessRightsHelper.registerToken({ id: `delete-${key}-instance`, name: "Delete",
description: "Access to deleting records in database", department: department });
if (sails.config.adminpanel.instances) {
let instances = sails.config.adminpanel.instances;
for (let key of Object.keys(instances)) {
let department = `Section ${key}`;
// create
accessRightsHelper_1.AccessRightsHelper.registerToken({ id: `create-${key}-instance`, name: "Create",
description: "Access to creating record in database", department: department });
// read
accessRightsHelper_1.AccessRightsHelper.registerToken({ id: `read-${key}-instance`, name: "Read",
description: "Access to reading records in database", department: department });
// update
accessRightsHelper_1.AccessRightsHelper.registerToken({ id: `update-${key}-instance`, name: "Update",
description: "Access to updating records in database", department: department });
// delete
accessRightsHelper_1.AccessRightsHelper.registerToken({ id: `delete-${key}-instance`, name: "Delete",
description: "Access to deleting records in database", department: department });
}
}
if (sails.config.adminpanel.generator && sails.config.adminpanel.generator.forms) {
let forms = sails.config.adminpanel.generator.forms;
for (let key of Object.keys(forms)) {
let department = `Form ${key}`;
// create
accessRightsHelper_1.AccessRightsHelper.registerToken({ id: `create-${key}-form`, name: "Create",
description: "Access to creating form in database", department: department });
// read
accessRightsHelper_1.AccessRightsHelper.registerToken({ id: `read-${key}-form`, name: "Read",
description: "Access to reading form in database", department: department });
// update
accessRightsHelper_1.AccessRightsHelper.registerToken({ id: `update-${key}-form`, name: "Update",
description: "Access to updating form in database", department: department });
// delete
accessRightsHelper_1.AccessRightsHelper.registerToken({ id: `delete-${key}-form`, name: "Delete",
description: "Access to deleting form in database", department: department });
}
}
}
exports.default = bindAccessRights;
import {AccessRightsHelper} from "../helper/accessRightsHelper";
export default function bindAccessRights() {
let instances = sails.config.adminpanel.instances;
for (let key of Object.keys(instances)) {
let department = `Section ${key}`;
if (sails.config.adminpanel.instances) {
let instances = sails.config.adminpanel.instances;
for (let key of Object.keys(instances)) {
let department = `Section ${key}`;
// create
AccessRightsHelper.registerToken({id: `create-${key}-instance`, name: "Create",
description: "Access to creating record in database", department: department});
// create
AccessRightsHelper.registerToken({id: `create-${key}-instance`, name: "Create",
description: "Access to creating record in database", department: department});
// read
AccessRightsHelper.registerToken({id: `read-${key}-instance`, name: "Read",
description: "Access to reading records in database", department: department});
// read
AccessRightsHelper.registerToken({id: `read-${key}-instance`, name: "Read",
description: "Access to reading records in database", department: department});
// update
AccessRightsHelper.registerToken({id: `update-${key}-instance`, name: "Update",
description: "Access to updating records in database", department: department});
// update
AccessRightsHelper.registerToken({id: `update-${key}-instance`, name: "Update",
description: "Access to updating records in database", department: department});
// delete
AccessRightsHelper.registerToken({id: `delete-${key}-instance`, name: "Delete",
description: "Access to deleting records in database", department: department});
// delete
AccessRightsHelper.registerToken({id: `delete-${key}-instance`, name: "Delete",
description: "Access to deleting records in database", department: department});
}
}
if (sails.config.adminpanel.generator && sails.config.adminpanel.generator.forms) {
let forms = sails.config.adminpanel.generator.forms;
for (let key of Object.keys(forms)) {
let department = `Form ${key}`;
// create
AccessRightsHelper.registerToken({id: `create-${key}-form`, name: "Create",
description: "Access to creating form in database", department: department});
// read
AccessRightsHelper.registerToken({id: `read-${key}-form`, name: "Read",
description: "Access to reading form in database", department: department});
// update
AccessRightsHelper.registerToken({id: `update-${key}-form`, name: "Update",
description: "Access to updating form in database", department: department});
// delete
AccessRightsHelper.registerToken({id: `delete-${key}-form`, name: "Delete",
description: "Access to deleting form in database", department: department});
}
}
}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
function bindDev(adminpanelConfig) {
Object.keys(sails.models).forEach((modelname) => {
let modelName = sails.models[modelname].globalId;
adminpanelConfig.instances[`dev-${modelName}`] = {
title: `dev-${modelName}`,
model: modelName,
icon: "cube"
};
});
if (adminpanelConfig.instances) {
Object.keys(sails.models).forEach((modelname) => {
let modelName = sails.models[modelname].globalId;
adminpanelConfig.instances[`dev-${modelName}`] = {
title: `dev-${modelName}`,
model: modelName,
icon: "cube"
};
});
}
}
exports.default = bindDev;
export default function bindDev(adminpanelConfig) {
Object.keys(sails.models).forEach((modelname) => {
let modelName = sails.models[modelname].globalId;
adminpanelConfig.instances[`dev-${modelName}`] = {
title: `dev-${modelName}`,
model: modelName,
icon: "cube"
};
});
}
if (adminpanelConfig.instances) {
Object.keys(sails.models).forEach((modelname) => {
let modelName = sails.models[modelname].globalId;
adminpanelConfig.instances[`dev-${modelName}`] = {
title: `dev-${modelName}`,
model: modelName,
icon: "cube"
};
});
}
}

@@ -12,2 +12,3 @@ "use strict";

const upload_1 = require("../controllers/upload");
const form_1 = require("../controllers/form");
function bindRoutes() {

@@ -27,23 +28,25 @@ let _bindPolicies = require('../lib/bindPolicies').default();

sails.router.bind(baseRoute, _bindPolicies(policies, list_1.default));
for (let instance of Object.keys(config.instances)) {
/**
* Create new record
*/
if (config.instances[instance].add && config.instances[instance].add.controller) {
let controller = require(config.instances[instance].add.controller);
sails.router.bind(`${config.routePrefix}/${instance}/add`, _bindPolicies(policies, controller.default));
if (config.instances) {
for (let instance of Object.keys(config.instances)) {
/**
* Create new record
*/
if (config.instances[instance].add && config.instances[instance].add.controller) {
let controller = require(config.instances[instance].add.controller);
sails.router.bind(`${config.routePrefix}/${instance}/add`, _bindPolicies(policies, controller.default));
}
else {
sails.router.bind(`${config.routePrefix}/${instance}/add`, _bindPolicies(policies, add_1.default));
}
/**
* Edit existing record
*/
if (config.instances[instance].edit && config.instances[instance].edit.controller) {
let controller = require(config.instances[instance].edit.controller);
sails.router.bind(`${config.routePrefix}/${instance}/edit/:id`, _bindPolicies(policies, controller.default));
}
else {
sails.router.bind(`${config.routePrefix}/${instance}/edit/:id`, _bindPolicies(policies, edit_1.default));
}
}
else {
sails.router.bind(`${config.routePrefix}/${instance}/add`, _bindPolicies(policies, add_1.default));
}
/**
* Edit existing record
*/
if (config.instances[instance].edit && config.instances[instance].edit.controller) {
let controller = require(config.instances[instance].edit.controller);
sails.router.bind(`${config.routePrefix}/${instance}/edit/:id`, _bindPolicies(policies, controller.default));
}
else {
sails.router.bind(`${config.routePrefix}/${instance}/edit/:id`, _bindPolicies(policies, edit_1.default));
}
}

@@ -67,2 +70,6 @@ /**

*/
/**
* Edit form
* */
sails.router.bind(`${config.routePrefix}/form/:slug`, _bindPolicies(policies, form_1.default));
if (Boolean(config.dashboard)) {

@@ -69,0 +76,0 @@ sails.router.bind(config.routePrefix, _bindPolicies(policies, dashboard_1.default));

@@ -10,2 +10,3 @@ import _dashboard from "../controllers/dashboard";

import _upload from "../controllers/upload";
import _form from "../controllers/form"

@@ -31,21 +32,23 @@ export default function bindRoutes() {

for (let instance of Object.keys(config.instances)) {
/**
* Create new record
*/
if (config.instances[instance].add && config.instances[instance].add.controller) {
let controller = require(config.instances[instance].add.controller);
sails.router.bind(`${config.routePrefix}/${instance}/add`, _bindPolicies(policies, controller.default));
} else {
sails.router.bind(`${config.routePrefix}/${instance}/add`, _bindPolicies(policies, _add));
}
if (config.instances) {
for (let instance of Object.keys(config.instances)) {
/**
* Create new record
*/
if (config.instances[instance].add && config.instances[instance].add.controller) {
let controller = require(config.instances[instance].add.controller);
sails.router.bind(`${config.routePrefix}/${instance}/add`, _bindPolicies(policies, controller.default));
} else {
sails.router.bind(`${config.routePrefix}/${instance}/add`, _bindPolicies(policies, _add));
}
/**
* Edit existing record
*/
if (config.instances[instance].edit && config.instances[instance].edit.controller) {
let controller = require(config.instances[instance].edit.controller);
sails.router.bind(`${config.routePrefix}/${instance}/edit/:id`, _bindPolicies(policies, controller.default));
} else {
sails.router.bind(`${config.routePrefix}/${instance}/edit/:id`, _bindPolicies(policies, _edit));
/**
* Edit existing record
*/
if (config.instances[instance].edit && config.instances[instance].edit.controller) {
let controller = require(config.instances[instance].edit.controller);
sails.router.bind(`${config.routePrefix}/${instance}/edit/:id`, _bindPolicies(policies, controller.default));
} else {
sails.router.bind(`${config.routePrefix}/${instance}/edit/:id`, _bindPolicies(policies, _edit));
}
}

@@ -73,2 +76,7 @@ }

/**
* Edit form
* */
sails.router.bind(`${config.routePrefix}/form/:slug`, _bindPolicies(policies, _form));
if (Boolean(config.dashboard)) {

@@ -75,0 +83,0 @@ sails.router.bind(config.routePrefix, _bindPolicies(policies, _dashboard));

@@ -1,1 +0,1 @@

export default function bindTranslations(): Promise<void>;
export default function bindTranslations(): void;

@@ -5,3 +5,3 @@ "use strict";

const fs = require("fs");
async function bindTranslations() {
function bindTranslations() {
// load adminpanel translations

@@ -8,0 +8,0 @@ translationHelper_1.TranslationHelper.loadTranslations(`${sails.config.adminpanel.rootPath}/translations`);

import {TranslationHelper} from "../helper/translationHelper";
import * as fs from "fs";
export default async function bindTranslations() {
export default function bindTranslations() {
// load adminpanel translations

@@ -6,0 +6,0 @@ TranslationHelper.loadTranslations(`${sails.config.adminpanel.rootPath}/translations`);

@@ -81,5 +81,9 @@ "use strict";

locales: ['en', 'ru'],
path: `${process.cwd()}/config/locales/adminpanel`,
path: `config/locales/adminpanel`,
defaultLocale: 'en'
},
generator: {
path: `.tmp/forms`,
forms: {}
},
/**

@@ -86,0 +90,0 @@ * List of sections in head

@@ -87,6 +87,11 @@ import {AdminpanelConfig} from "../interfaces/adminpanelConfig";

locales: ['en', 'ru'],
path: `${process.cwd()}/config/locales/adminpanel`,
path: `config/locales/adminpanel`,
defaultLocale: 'en'
},
generator: {
path: `.tmp/forms`,
forms: {}
},
/**

@@ -93,0 +98,0 @@ * List of sections in head

@@ -57,3 +57,3 @@ {

},
"version": "2.0.1"
"version": "2.1.0-st1"
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc