@ -0,0 +1,114 @@
|
||||
############################ |
||||
# OS X |
||||
############################ |
||||
|
||||
.DS_Store |
||||
.AppleDouble |
||||
.LSOverride |
||||
Icon |
||||
.Spotlight-V100 |
||||
.Trashes |
||||
._* |
||||
|
||||
|
||||
############################ |
||||
# Linux |
||||
############################ |
||||
|
||||
*~ |
||||
|
||||
|
||||
############################ |
||||
# Windows |
||||
############################ |
||||
|
||||
Thumbs.db |
||||
ehthumbs.db |
||||
Desktop.ini |
||||
$RECYCLE.BIN/ |
||||
*.cab |
||||
*.msi |
||||
*.msm |
||||
*.msp |
||||
|
||||
|
||||
############################ |
||||
# Packages |
||||
############################ |
||||
|
||||
*.7z |
||||
*.csv |
||||
*.dat |
||||
*.dmg |
||||
*.gz |
||||
*.iso |
||||
*.jar |
||||
*.rar |
||||
*.tar |
||||
*.zip |
||||
*.com |
||||
*.class |
||||
*.dll |
||||
*.exe |
||||
*.o |
||||
*.seed |
||||
*.so |
||||
*.swo |
||||
*.swp |
||||
*.swn |
||||
*.swm |
||||
*.out |
||||
*.pid |
||||
|
||||
|
||||
############################ |
||||
# Logs and databases |
||||
############################ |
||||
|
||||
.tmp |
||||
*.log |
||||
*.sql |
||||
*.sqlite |
||||
*.sqlite3 |
||||
|
||||
|
||||
############################ |
||||
# Misc. |
||||
############################ |
||||
|
||||
*# |
||||
ssl |
||||
.idea |
||||
nbproject |
||||
public/uploads/* |
||||
!public/uploads/.gitkeep |
||||
|
||||
############################ |
||||
# Node.js |
||||
############################ |
||||
|
||||
lib-cov |
||||
lcov.info |
||||
pids |
||||
logs |
||||
results |
||||
node_modules |
||||
.node_history |
||||
|
||||
############################ |
||||
# Tests |
||||
############################ |
||||
|
||||
testApp |
||||
coverage |
||||
|
||||
############################ |
||||
# Strapi |
||||
############################ |
||||
|
||||
.env |
||||
license.txt |
||||
exports |
||||
*.cache |
||||
build |
||||
.strapi-updater.json |
@ -0,0 +1,16 @@
|
||||
root = true |
||||
|
||||
[*] |
||||
indent_style = space |
||||
indent_size = 2 |
||||
end_of_line = lf |
||||
charset = utf-8 |
||||
trim_trailing_whitespace = true |
||||
insert_final_newline = true |
||||
|
||||
[{package.json,*.yml}] |
||||
indent_style = space |
||||
indent_size = 2 |
||||
|
||||
[*.md] |
||||
trim_trailing_whitespace = false |
@ -0,0 +1,27 @@
|
||||
{ |
||||
"parser": "babel-eslint", |
||||
"extends": "eslint:recommended", |
||||
"env": { |
||||
"commonjs": true, |
||||
"es6": true, |
||||
"node": true, |
||||
"browser": false |
||||
}, |
||||
"parserOptions": { |
||||
"ecmaFeatures": { |
||||
"experimentalObjectRestSpread": true, |
||||
"jsx": false |
||||
}, |
||||
"sourceType": "module" |
||||
}, |
||||
"globals": { |
||||
"strapi": true |
||||
}, |
||||
"rules": { |
||||
"indent": ["error", 2, { "SwitchCase": 1 }], |
||||
"linebreak-style": ["error", "unix"], |
||||
"no-console": 0, |
||||
"quotes": ["error", "single"], |
||||
"semi": ["error", "always"] |
||||
} |
||||
} |
@ -0,0 +1,114 @@
|
||||
############################ |
||||
# OS X |
||||
############################ |
||||
|
||||
.DS_Store |
||||
.AppleDouble |
||||
.LSOverride |
||||
Icon |
||||
.Spotlight-V100 |
||||
.Trashes |
||||
._* |
||||
|
||||
|
||||
############################ |
||||
# Linux |
||||
############################ |
||||
|
||||
*~ |
||||
|
||||
|
||||
############################ |
||||
# Windows |
||||
############################ |
||||
|
||||
Thumbs.db |
||||
ehthumbs.db |
||||
Desktop.ini |
||||
$RECYCLE.BIN/ |
||||
*.cab |
||||
*.msi |
||||
*.msm |
||||
*.msp |
||||
|
||||
|
||||
############################ |
||||
# Packages |
||||
############################ |
||||
|
||||
*.7z |
||||
*.csv |
||||
*.dat |
||||
*.dmg |
||||
*.gz |
||||
*.iso |
||||
*.jar |
||||
*.rar |
||||
*.tar |
||||
*.zip |
||||
*.com |
||||
*.class |
||||
*.dll |
||||
*.exe |
||||
*.o |
||||
*.seed |
||||
*.so |
||||
*.swo |
||||
*.swp |
||||
*.swn |
||||
*.swm |
||||
*.out |
||||
*.pid |
||||
|
||||
|
||||
############################ |
||||
# Logs and databases |
||||
############################ |
||||
|
||||
.tmp |
||||
*.log |
||||
*.sql |
||||
*.sqlite |
||||
*.sqlite3 |
||||
|
||||
|
||||
############################ |
||||
# Misc. |
||||
############################ |
||||
|
||||
*# |
||||
ssl |
||||
.idea |
||||
nbproject |
||||
#public/uploads/* |
||||
!public/uploads/.gitkeep |
||||
|
||||
############################ |
||||
# Node.js |
||||
############################ |
||||
|
||||
lib-cov |
||||
lcov.info |
||||
pids |
||||
logs |
||||
results |
||||
node_modules |
||||
.node_history |
||||
|
||||
############################ |
||||
# Tests |
||||
############################ |
||||
|
||||
testApp |
||||
coverage |
||||
|
||||
############################ |
||||
# Strapi |
||||
############################ |
||||
|
||||
.env |
||||
license.txt |
||||
exports |
||||
*.cache |
||||
build |
||||
.strapi-updater.json |
@ -0,0 +1,8 @@
|
||||
module.exports = ({ env }) => ({ |
||||
auth: { |
||||
secret: env('ADMIN_JWT_SECRET'), |
||||
}, |
||||
apiToken: { |
||||
salt: env('API_TOKEN_SALT'), |
||||
}, |
||||
}); |
@ -0,0 +1,7 @@
|
||||
module.exports = { |
||||
rest: { |
||||
defaultLimit: 25, |
||||
maxLimit: 100, |
||||
withCount: true, |
||||
}, |
||||
}; |
@ -0,0 +1,11 @@
|
||||
const path = require('path'); |
||||
|
||||
module.exports = ({ env }) => ({ |
||||
connection: { |
||||
client: 'sqlite', |
||||
connection: { |
||||
filename: path.join(__dirname, '..', env('DATABASE_FILENAME', '.tmp/data.db')), |
||||
}, |
||||
useNullAsDefault: true, |
||||
}, |
||||
}); |
@ -0,0 +1,12 @@
|
||||
module.exports = [ |
||||
'strapi::errors', |
||||
'strapi::security', |
||||
'strapi::cors', |
||||
'strapi::poweredBy', |
||||
'strapi::logger', |
||||
'strapi::query', |
||||
'strapi::body', |
||||
'strapi::session', |
||||
'strapi::favicon', |
||||
'strapi::public', |
||||
]; |
@ -0,0 +1,25 @@
|
||||
module.exports = { |
||||
// ...
|
||||
// deepl: {
|
||||
// enabled: true,
|
||||
// config: {
|
||||
// // your DeepL API key
|
||||
// apiKey: 'key',
|
||||
// // whether to use the free or paid api, default true
|
||||
// freeApi: true,
|
||||
// // Which field types are translated (default string, text, richtext, components and dynamiczones)
|
||||
// translatedFieldTypes: [
|
||||
// 'string',
|
||||
// 'text',
|
||||
// 'richtext',
|
||||
// 'component',
|
||||
// 'dynamiczone',
|
||||
// ],
|
||||
// // If relations should be translated (default true)
|
||||
// translateRelations: true,
|
||||
// // You can define a custom glossary to be used here (see https://www.deepl.com/docs-api/managing-glossaries/)
|
||||
// // glossaryId: 'customGlossary',
|
||||
// },
|
||||
// },
|
||||
// ...
|
||||
} |
@ -0,0 +1,7 @@
|
||||
module.exports = ({ env }) => ({ |
||||
host: env('HOST', '0.0.0.0'), |
||||
port: env.int('PORT', 1337), |
||||
app: { |
||||
keys: env.array('APP_KEYS'), |
||||
}, |
||||
}); |
@ -0,0 +1,9 @@
|
||||
const { global, pages } = require("./en"); |
||||
const { globalFR, pagesFR } = require("./fr"); |
||||
const { leadFormSubmissions } = require("./lead-form-submissions.json"); |
||||
|
||||
module.exports = { |
||||
globals: [global, globalFR], |
||||
pages: [...pages, ...pagesFR], |
||||
leadFormSubmissions, |
||||
}; |
@ -0,0 +1,131 @@
|
||||
{ |
||||
"global": { |
||||
"id": 1, |
||||
"locale": "en", |
||||
"metaTitleSuffix": "Strapi Corporate", |
||||
"metadata": { |
||||
"id": 1, |
||||
"metaTitle": "Strapi starter for Corporate Sites", |
||||
"metaDescription": "Build your corporate site with Strapi", |
||||
"twitterCardType": "summary", |
||||
"twitterUsername": "strapijs", |
||||
"shareImage": null |
||||
}, |
||||
"notificationBanner": { |
||||
"id": 1, |
||||
"text": "This page was built using the Strapi starter for Corporate Sites.\n[View other Strapi starters](https://strapi.io/starters)", |
||||
"type": "info" |
||||
}, |
||||
"navbar": { |
||||
"id": 1, |
||||
"links": [ |
||||
{ |
||||
"id": 1, |
||||
"url": "/pricing", |
||||
"newTab": false, |
||||
"text": "Pricing" |
||||
}, |
||||
{ |
||||
"id": 3, |
||||
"url": "/contact", |
||||
"newTab": false, |
||||
"text": "Contact" |
||||
} |
||||
], |
||||
"button": { |
||||
"id": 13, |
||||
"url": "#", |
||||
"newTab": false, |
||||
"text": "Sign up", |
||||
"type": "secondary" |
||||
}, |
||||
"logo" : null |
||||
}, |
||||
"footer": { |
||||
"id": 1, |
||||
"smallText": "© Copyright My Company™", |
||||
"columns": [ |
||||
{ |
||||
"id": 1, |
||||
"title": "Product", |
||||
"links": [ |
||||
{ |
||||
"id": 11, |
||||
"url": "#", |
||||
"newTab": false, |
||||
"text": "Features" |
||||
}, |
||||
{ |
||||
"id": 13, |
||||
"url": "#", |
||||
"newTab": false, |
||||
"text": "Sign up" |
||||
} |
||||
] |
||||
}, |
||||
{ |
||||
"id": 2, |
||||
"title": "Legal", |
||||
"links": [ |
||||
{ |
||||
"id": 15, |
||||
"url": "#", |
||||
"newTab": false, |
||||
"text": "Privacy policy" |
||||
}, |
||||
{ |
||||
"id": 16, |
||||
"url": "#", |
||||
"newTab": false, |
||||
"text": "Terms & conditions" |
||||
} |
||||
] |
||||
}, |
||||
{ |
||||
"id": 5, |
||||
"title": "Company", |
||||
"links": [ |
||||
{ |
||||
"id": 18, |
||||
"url": "#", |
||||
"newTab": false, |
||||
"text": "Careers" |
||||
}, |
||||
{ |
||||
"id": 21, |
||||
"url": "#", |
||||
"newTab": false, |
||||
"text": "Team" |
||||
} |
||||
] |
||||
}, |
||||
{ |
||||
"id": 7, |
||||
"title": "Social", |
||||
"links": [ |
||||
{ |
||||
"id": 24, |
||||
"url": "#", |
||||
"newTab": false, |
||||
"text": "Twitter" |
||||
}, |
||||
{ |
||||
"id": 25, |
||||
"url": "#", |
||||
"newTab": false, |
||||
"text": "LinkedIn" |
||||
} |
||||
] |
||||
} |
||||
], |
||||
"logo": null |
||||
}, |
||||
"favicon": null, |
||||
"localizations": [ |
||||
{ |
||||
"id": 2, |
||||
"locale": "fr" |
||||
} |
||||
] |
||||
} |
||||
} |
@ -0,0 +1,7 @@
|
||||
const { global } = require("./global.json"); |
||||
const { pages } = require("./pages.json"); |
||||
|
||||
module.exports = { |
||||
global, |
||||
pages |
||||
} |
@ -0,0 +1,352 @@
|
||||
{ |
||||
"pages": [ |
||||
{ |
||||
"id": 1, |
||||
"slug": "", |
||||
"locale": "en", |
||||
"localizations": [ |
||||
{ |
||||
"id": 5, |
||||
"locale": "fr" |
||||
} |
||||
], |
||||
"shortName": "Home", |
||||
"publishedAt": "2021-10-22T08:11:55.490Z", |
||||
"metadata": { |
||||
"id": 2, |
||||
"metaTitle": "Strapi corporate site starter", |
||||
"metaDescription": "Build a fully editable site with Strapi", |
||||
"twitterCardType": "summary", |
||||
"twitterUsername": null, |
||||
"shareImage": null |
||||
}, |
||||
"contentSections": [ |
||||
{ |
||||
"id": 1, |
||||
"__component": "sections.hero", |
||||
"title": "The best way to build your Corporate Site", |
||||
"label": "New Strapi starter", |
||||
"description": "Get started with your Strapi business website in seconds.", |
||||
"smallTextWithLink": "Want to build your own from scratch? Tutorial coming soon", |
||||
"buttons": [ |
||||
{ |
||||
"id": 2, |
||||
"url": "https://github.com/strapi/strapi-template-corporate", |
||||
"newTab": false, |
||||
"text": "Get started", |
||||
"type": "primary" |
||||
}, |
||||
{ |
||||
"id": 4, |
||||
"url": "https://github.com/strapi/strapi-template-corporate", |
||||
"newTab": true, |
||||
"text": "See the code", |
||||
"type": "secondary" |
||||
} |
||||
], |
||||
"picture": null |
||||
}, |
||||
{ |
||||
"id": 1, |
||||
"__component": "sections.feature-rows-group", |
||||
"features": [ |
||||
{ |
||||
"id": 1, |
||||
"title": "Let marketing teams build their pages", |
||||
"description": "Thanks to a pre-built list of UI sections, marketers can design exactly the pages they want.", |
||||
"link": { |
||||
"id": 7, |
||||
"url": "#", |
||||
"newTab": false, |
||||
"text": "View the list of UI sections" |
||||
}, |
||||
"media": null |
||||
}, |
||||
{ |
||||
"id": 2, |
||||
"title": "Leave your developers alone", |
||||
"description": "You can publish, edit and delete pages without help from developers. Your technical team can finally focus on their tasks.", |
||||
"link": { |
||||
"id": 8, |
||||
"url": "#", |
||||
"newTab": false, |
||||
"text": "View how to create a page" |
||||
}, |
||||
"media": null |
||||
} |
||||
] |
||||
}, |
||||
{ |
||||
"id": 1, |
||||
"__component": "sections.feature-columns-group", |
||||
"features": [ |
||||
{ |
||||
"id": 1, |
||||
"title": "Preview your changes", |
||||
"description": "Thanks to an integrated Preview Mode, you can visualize your pages before publishing them.", |
||||
"icon": null |
||||
}, |
||||
{ |
||||
"id": 2, |
||||
"title": "Fully responsive", |
||||
"description": "This starter works well on all screens, whether it's mobile, tablet or desktop.", |
||||
"icon": null |
||||
}, |
||||
{ |
||||
"id": 3, |
||||
"title": "Easy to customize", |
||||
"description": "We use Tailwind for styling. You can change your site's theme without digging through the code.", |
||||
"icon": null |
||||
} |
||||
] |
||||
}, |
||||
{ |
||||
"id": 1, |
||||
"__component": "sections.testimonials-group", |
||||
"title": "Your customer testimonials here", |
||||
"description": "This section is where you can showcase your customers. Insert quotes, and show the logos of companies who like your product", |
||||
"link": { |
||||
"id": 2, |
||||
"url": "#", |
||||
"newTab": false, |
||||
"text": "All testimonials" |
||||
}, |
||||
"logos": [ |
||||
{ |
||||
"id": 1, |
||||
"title": "Strapi", |
||||
"logo": null |
||||
}, |
||||
{ |
||||
"id": 2, |
||||
"title": "Strapi 2", |
||||
"logo": null |
||||
}, |
||||
{ |
||||
"id": 3, |
||||
"title": "Strapi 3", |
||||
"logo": null |
||||
} |
||||
], |
||||
"testimonials": [ |
||||
{ |
||||
"id": 1, |
||||
"text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", |
||||
"authorName": "Your Customer Name", |
||||
"authorTitle": "A happy customer", |
||||
"link": "#", |
||||
"logo": null, |
||||
"picture": null |
||||
} |
||||
] |
||||
}, |
||||
{ |
||||
"id": 1, |
||||
"__component": "sections.lead-form", |
||||
"title": "Subscribe To Our Newsletter", |
||||
"emailPlaceholder": "email@company.com", |
||||
"submitButton": { |
||||
"id": 1, |
||||
"__component": "links.button", |
||||
"text": "Subscribe", |
||||
"type": "primary" |
||||
}, |
||||
"location": "Home Page Bottom" |
||||
}, |
||||
{ |
||||
"id": 2, |
||||
"__component": "sections.bottom-actions", |
||||
"title": "Start building your website", |
||||
"buttons": [ |
||||
{ |
||||
"id": 7, |
||||
"url": "https://github.com/strapi/strapi-template-corporate", |
||||
"newTab": false, |
||||
"text": "Get started", |
||||
"type": "primary" |
||||
}, |
||||
{ |
||||
"id": 8, |
||||
"url": "https://github.com/strapi/strapi-template-corporate", |
||||
"newTab": false, |
||||
"text": "See the code", |
||||
"type": "secondary" |
||||
} |
||||
] |
||||
} |
||||
] |
||||
}, |
||||
{ |
||||
"id": 2, |
||||
"slug": "pricing", |
||||
"locale": "en", |
||||
"localizations": [ |
||||
{ |
||||
"id": 6, |
||||
"locale": "fr" |
||||
} |
||||
], |
||||
"shortName": "Pricing", |
||||
"publishedAt": "2021-10-22T08:11:55.490Z", |
||||
"metadata": { |
||||
"id": 3, |
||||
"metaTitle": "Pricing", |
||||
"metaDescription": "The different plans", |
||||
"twitterCardType": "summary", |
||||
"twitterUsername": null, |
||||
"shareImage": null |
||||
}, |
||||
"contentSections": [ |
||||
{ |
||||
"id": 1, |
||||
"__component": "sections.pricing", |
||||
"title": "Clear pricing table", |
||||
"plans": [ |
||||
{ |
||||
"id": 1, |
||||
"name": "Hobby", |
||||
"description": "Perfect for side projects", |
||||
"isRecommended": null, |
||||
"price": 0, |
||||
"pricePeriod": "forever", |
||||
"features": [ |
||||
{ |
||||
"id": 1, |
||||
"name": "A cool feature" |
||||
}, |
||||
{ |
||||
"id": 2, |
||||
"name": "Another cool feature" |
||||
}, |
||||
{ |
||||
"id": 3, |
||||
"name": "Some other cool feature" |
||||
} |
||||
] |
||||
}, |
||||
{ |
||||
"id": 2, |
||||
"name": "Premium", |
||||
"description": "A more advanced plan for SMBs", |
||||
"isRecommended": true, |
||||
"price": 20, |
||||
"pricePeriod": "per month", |
||||
"features": [ |
||||
{ |
||||
"id": 4, |
||||
"name": "The coolest feature" |
||||
}, |
||||
{ |
||||
"id": 5, |
||||
"name": "Nice feature" |
||||
}, |
||||
{ |
||||
"id": 6, |
||||
"name": "Fun feature" |
||||
} |
||||
] |
||||
}, |
||||
{ |
||||
"id": 3, |
||||
"name": "Enterprise", |
||||
"description": "For large companies needs", |
||||
"isRecommended": null, |
||||
"price": 299, |
||||
"pricePeriod": "per month", |
||||
"features": [ |
||||
{ |
||||
"id": 7, |
||||
"name": "Amazing feature" |
||||
}, |
||||
{ |
||||
"id": 8, |
||||
"name": "Wow effect feature" |
||||
}, |
||||
{ |
||||
"id": 9, |
||||
"name": "Mesmerizing feature" |
||||
} |
||||
] |
||||
} |
||||
] |
||||
} |
||||
] |
||||
}, |
||||
{ |
||||
"id": 3, |
||||
"slug": "secret", |
||||
"locale": "en", |
||||
"localizations": [ |
||||
{ |
||||
"id": 7, |
||||
"locale": "fr" |
||||
} |
||||
], |
||||
"shortName": "Secret", |
||||
"metadata": { |
||||
"id": 7, |
||||
"metaTitle": "Secret page", |
||||
"metaDescription": "Preview-only page", |
||||
"twitterCardType": "summary", |
||||
"twitterUsername": null, |
||||
"shareImage": null |
||||
}, |
||||
"contentSections": [ |
||||
{ |
||||
"id": 2, |
||||
"__component": "sections.rich-text", |
||||
"content": "## Secret page\n\nYou can only view this page in Preview Mode." |
||||
} |
||||
] |
||||
}, |
||||
{ |
||||
"id": 4, |
||||
"slug": "contact", |
||||
"locale": "en", |
||||
"localizations": [ |
||||
{ |
||||
"id": 8, |
||||
"locale": "fr" |
||||
} |
||||
], |
||||
"shortName": "Contact", |
||||
"publishedAt": "2021-10-22T08:11:55.490Z", |
||||
"metadata": { |
||||
"id": 4, |
||||
"metaTitle": "Contact", |
||||
"metaDescription": "Get in touch with our team", |
||||
"twitterCardType": "summary", |
||||
"twitterUsername": null, |
||||
"shareImage": null |
||||
}, |
||||
"contentSections": [ |
||||
{ |
||||
"id": 1, |
||||
"__component": "sections.rich-text", |
||||
"content": "# Get in touch\n\n> This is an example of a page that relies almost entirely on the RichText section. It's useful for blog articles, or content-heavy pages like legal terms.\n\nWe'd love to hear from you.\n\n## Social media\n\n* [Twitter](#)\n* [Twitter](#)\n* [Twitter](#)\n\n## Postal address\n\n404 Headless Street\n__92210__ **Saint Cloud**, *France*\n\nLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." |
||||
}, |
||||
{ |
||||
"id": 1, |
||||
"__component": "sections.bottom-actions", |
||||
"title": "Get in touch", |
||||
"buttons": [ |
||||
{ |
||||
"id": 1, |
||||
"url": "#", |
||||
"newTab": false, |
||||
"text": "Send an email", |
||||
"type": "primary" |
||||
}, |
||||
{ |
||||
"id": 3, |
||||
"url": "#", |
||||
"newTab": false, |
||||
"text": "DM us on Twitter", |
||||
"type": "secondary" |
||||
} |
||||
] |
||||
} |
||||
] |
||||
} |
||||
] |
||||
} |
@ -0,0 +1,131 @@
|
||||
{ |
||||
"globalFR": { |
||||
"id": 2, |
||||
"locale": "fr", |
||||
"metaTitleSuffix": "Strapi Corporate", |
||||
"metadata": { |
||||
"id": 5, |
||||
"metaTitle": "Strapi starter for Corporate Sites", |
||||
"metaDescription": "Créer votre site corporate avec Strapi", |
||||
"twitterCardType": "summary", |
||||
"twitterUsername": "strapijs", |
||||
"shareImage": null |
||||
}, |
||||
"notificationBanner": { |
||||
"id": 2, |
||||
"text": "Cette page a été crée avec le Strapi starter pour les sites Corporate.\n [Voir les autres starters Strapi](https://strapi.io/starters)", |
||||
"type": "info" |
||||
}, |
||||
"navbar": { |
||||
"id": 2, |
||||
"links": [ |
||||
{ |
||||
"id": 4, |
||||
"url": "/pricing", |
||||
"newTab": false, |
||||
"text": "tarifs" |
||||
}, |
||||
{ |
||||
"id": 5, |
||||
"url": "/contact", |
||||
"newTab": false, |
||||
"text": "nous contacter" |
||||
} |
||||
], |
||||
"button": { |
||||
"id": 14, |
||||
"url": "#", |
||||
"newTab": false, |
||||
"text": "S'inscrire", |
||||
"type": "secondary" |
||||
}, |
||||
"logo" : null |
||||
}, |
||||
"footer": { |
||||
"id": 2, |
||||
"smallText": "© Copyright Mon Entreprise™", |
||||
"columns": [ |
||||
{ |
||||
"id": 3, |
||||
"title": "Produit", |
||||
"links": [ |
||||
{ |
||||
"id": 12, |
||||
"url": "#", |
||||
"newTab": false, |
||||
"text": "Fonctionnalités" |
||||
}, |
||||
{ |
||||
"id": 14, |
||||
"url": "#", |
||||
"newTab": false, |
||||
"text": "S'inscrire" |
||||
} |
||||
] |
||||
}, |
||||
{ |
||||
"id": 4, |
||||
"title": "Légal", |
||||
"links": [ |
||||
{ |
||||
"id": 17, |
||||
"url": "#", |
||||
"newTab": false, |
||||
"text": "Confidentialité" |
||||
}, |
||||
{ |
||||
"id": 19, |
||||
"url": "#", |
||||
"newTab": false, |
||||
"text": "Mentions légales" |
||||
} |
||||
] |
||||
}, |
||||
{ |
||||
"id": 6, |
||||
"title": "Entreprise", |
||||
"links": [ |
||||
{ |
||||
"id": 20, |
||||
"url": "#", |
||||
"newTab": false, |
||||
"text": "Nous rejoindre" |
||||
}, |
||||
{ |
||||
"id": 22, |
||||
"url": "#", |
||||
"newTab": false, |
||||
"text": "L'équipe" |
||||
} |
||||
] |
||||
}, |
||||
{ |
||||
"id": 8, |
||||
"title": "Réseaux sociaux", |
||||
"links": [ |
||||
{ |
||||
"id": 23, |
||||
"url": "#", |
||||
"newTab": false, |
||||
"text": "Twitter" |
||||
}, |
||||
{ |
||||
"id": 26, |
||||
"url": "#", |
||||
"newTab": false, |
||||
"text": "LinkedIn" |
||||
} |
||||
] |
||||
} |
||||
], |
||||
"logo": null |
||||
}, |
||||
"favicon": null, |
||||
"localizations": [ |
||||
{ |
||||
"id": 1, |
||||
"locale": "en" |
||||
} |
||||
] |
||||
} |
||||
} |
@ -0,0 +1,7 @@
|
||||
const { globalFR } = require("./global.json"); |
||||
const { pagesFR } = require("./pages.json"); |
||||
|
||||
module.exports = { |
||||
globalFR, |
||||
pagesFR |
||||
} |
@ -0,0 +1,352 @@
|
||||
{ |
||||
"pagesFR": [ |
||||
{ |
||||
"id": 5, |
||||
"slug": "", |
||||
"locale": "fr", |
||||
"localizations": [ |
||||
{ |
||||
"id": 1, |
||||
"locale": "en" |
||||
} |
||||
], |
||||
"shortName": "Home", |
||||
"publishedAt":"2021-10-22T08:11:55.490Z", |
||||
"metadata": { |
||||
"id": 6, |
||||
"metaTitle": "Strapi corporate site starter", |
||||
"metaDescription": "Construire un site modifiable avec Strapi", |
||||
"twitterCardType": "summary", |
||||
"twitterUsername": null, |
||||
"shareImage": null |
||||
}, |
||||
"contentSections": [ |
||||
{ |
||||
"id": 2, |
||||
"__component": "sections.hero", |
||||
"title": "La meilleure façon de faire votre site Corporate", |
||||
"label": "Nouveau starter Strapi", |
||||
"description": "Commencer vite avec votre site corporate", |
||||
"smallTextWithLink": "Vous voulez construire votre propre starter? Guide à venir", |
||||
"buttons": [ |
||||
{ |
||||
"id": 5, |
||||
"url": "https://github.com/strapi/strapi-template-corporate", |
||||
"newTab": false, |
||||
"text": "Commencer", |
||||
"type": "primary" |
||||
}, |
||||
{ |
||||
"id": 6, |
||||
"url": "https://github.com/strapi/strapi-template-corporate", |
||||
"newTab": true, |
||||
"text": "Voir le code", |
||||
"type": "secondary" |
||||
} |
||||
], |
||||
"picture": null |
||||
}, |
||||
{ |
||||
"id": 2, |
||||
"__component": "sections.feature-rows-group", |
||||
"features": [ |
||||
{ |
||||
"id": 3, |
||||
"title": "Les équipes marketing peuvent maintenant faire leurs propres pages", |
||||
"description": "Grace à une liste pré-construite de blocs UI, les équipes marketing peuvent faire la mise en page exactement comme elles veulent", |
||||
"link": { |
||||
"id": 9, |
||||
"url": "#", |
||||
"newTab": false, |
||||
"text": "Voir la liste de blocs UI" |
||||
}, |
||||
"media": null |
||||
}, |
||||
{ |
||||
"id": 4, |
||||
"title": "Laissez vos développeurs tranquilles", |
||||
"description": "Vous pouvez publier, modifier, et supprimer des pages sans l'aide d'un développeur. Votre équipe technique peut enfin se concentrer sur d'autre tâches.", |
||||
"link": { |
||||
"id": 10, |
||||
"url": "#", |
||||
"newTab": false, |
||||
"text": "Voir comment créer une page" |
||||
}, |
||||
"media": null |
||||
} |
||||
] |
||||
}, |
||||
{ |
||||
"id": 2, |
||||
"__component": "sections.feature-columns-group", |
||||
"features": [ |
||||
{ |
||||
"id": 4, |
||||
"title": "Visualisez vos changments", |
||||
"description": "Grace à un mode preview, vous pouvez voir vos pages avant de les publier.", |
||||
"icon": null |
||||
}, |
||||
{ |
||||
"id": 5, |
||||
"title": "100% responsive", |
||||
"description": "Ce starter marche sur toutes les tailles d'écrans.", |
||||
"icon": null |
||||
}, |
||||
{ |
||||
"id": 6, |
||||
"title": "Facile à personnaliser", |
||||
"description": "On utilise Tailwind pour les styles. Vous pouvez changez le thème de votre site sans avoir besoin d'aller dans le code.", |
||||
"icon": null |
||||
} |
||||
] |
||||
}, |
||||
{ |
||||
"id": 2, |
||||
"__component": "sections.testimonials-group", |
||||
"title": "Ici, les témoignages des vos clients.", |
||||
"description": "Dans cette partie, vous pouvez mettre en avant vos clients. Mettez des citations, et montrez les logos des entreprises qui aiment votre produit.", |
||||
"link": { |
||||
"id": 6, |
||||
"url": "#", |
||||
"newTab": false, |
||||
"text": "All testimonials" |
||||
}, |
||||
"logos": [ |
||||
{ |
||||
"id": 4, |
||||
"title": "Strapi", |
||||
"logo": null |
||||
}, |
||||
{ |
||||
"id": 5, |
||||
"title": "Strapi 2", |
||||
"logo": null |
||||
}, |
||||
{ |
||||
"id": 6, |
||||
"title": "Strapi 3", |
||||
"logo": null |
||||
} |
||||
], |
||||
"testimonials": [ |
||||
{ |
||||
"id": 2, |
||||
"text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.", |
||||
"authorName": "Nom d'un(e) Client(e) ici", |
||||
"authorTitle": "Un(e) Client(e) Satisfait(e)", |
||||
"link": "#", |
||||
"logo": null, |
||||
"picture": null |
||||
} |
||||
] |
||||
}, |
||||
{ |
||||
"id": 2, |
||||
"__component": "sections.lead-form", |
||||
"title": "S'inscrire à notre Newsletter", |
||||
"emailPlaceholder": "email@company.com", |
||||
"submitButton": { |
||||
"id": 2, |
||||
"__component": "links.button", |
||||
"text": "S'inscrire", |
||||
"type": "primary" |
||||
}, |
||||
"location": "Home Page Bottom" |
||||
}, |
||||
{ |
||||
"id": 3, |
||||
"__component": "sections.bottom-actions", |
||||
"title": "Start building your website", |
||||
"buttons": [ |
||||
{ |
||||
"id": 10, |
||||
"url": "https://github.com/strapi/strapi-template-corporate", |
||||
"newTab": false, |
||||
"text": "Commencer", |
||||
"type": "primary" |
||||
}, |
||||
{ |
||||
"id": 12, |
||||
"url": "https://github.com/strapi/strapi-template-corporate", |
||||
"newTab": false, |
||||
"text": "Voir le code", |
||||
"type": "secondary" |
||||
} |
||||
] |
||||
} |
||||
] |
||||
}, |
||||
{ |
||||
"id": 6, |
||||
"slug": "pricing", |
||||
"locale": "fr", |
||||
"localizations": [ |
||||
{ |
||||
"id": 2, |
||||
"locale": "en" |
||||
} |
||||
], |
||||
"shortName": "Pricing", |
||||
"publishedAt":"2021-10-22T08:11:55.490Z", |
||||
"metadata": { |
||||
"id": 8, |
||||
"metaTitle": "Pricing", |
||||
"metaDescription": "Les différentes offres", |
||||
"twitterCardType": "summary", |
||||
"twitterUsername": null, |
||||
"shareImage": null |
||||
}, |
||||
"contentSections": [ |
||||
{ |
||||
"id": 2, |
||||
"__component": "sections.pricing", |
||||
"title": "Tableau de tarifs", |
||||
"plans": [ |
||||
{ |
||||
"id": 4, |
||||
"name": "Hobby", |
||||
"description": "Parfait pour des projets personnels", |
||||
"isRecommended": null, |
||||
"price": 0, |
||||
"pricePeriod": "toujours", |
||||
"features": [ |
||||
{ |
||||
"id": 10, |
||||
"name": "Voilà une feature" |
||||
}, |
||||
{ |
||||
"id": 11, |
||||
"name": "Une autre" |
||||
}, |
||||
{ |
||||
"id": 12, |
||||
"name": "Encore une autre" |
||||
} |
||||
] |
||||
}, |
||||
{ |
||||
"id": 5, |
||||
"name": "Premium", |
||||
"description": "Un plan plus avancé", |
||||
"isRecommended": true, |
||||
"price": 20, |
||||
"pricePeriod": "par mois", |
||||
"features": [ |
||||
{ |
||||
"id": 13, |
||||
"name": "Fonctionnalité 1" |
||||
}, |
||||
{ |
||||
"id": 14, |
||||
"name": "Fonctionnalité 2" |
||||
}, |
||||
{ |
||||
"id": 15, |
||||
"name": "Fonctionnalité 3" |
||||
} |
||||
] |
||||
}, |
||||
{ |
||||
"id": 6, |
||||
"name": "Entreprise", |
||||
"description": "Pour les besoin des grands entreprises", |
||||
"isRecommended": null, |
||||
"price": 299, |
||||
"pricePeriod": "par mois", |
||||
"features": [ |
||||
{ |
||||
"id": 16, |
||||
"name": "Fonctionnalité 1" |
||||
}, |
||||
{ |
||||
"id": 17, |
||||
"name": "Fonctionnalité 2" |
||||
}, |
||||
{ |
||||
"id": 18, |
||||
"name": "Fonctionnalité 3" |
||||
} |
||||
] |
||||
} |
||||
] |
||||
} |
||||
] |
||||
}, |
||||
{ |
||||
"id": 7, |
||||
"slug": "secret", |
||||
"locale": "fr", |
||||
"localizations": [ |
||||
{ |
||||
"id": 3, |
||||
"locale": "en" |
||||
} |
||||
], |
||||
"shortName": "Secret", |
||||
"metadata": { |
||||
"id": 9, |
||||
"metaTitle": "Page secrète", |
||||
"metaDescription": "Preview-only page", |
||||
"twitterCardType": "summary", |
||||
"twitterUsername": null, |
||||
"shareImage": null |
||||
}, |
||||
"contentSections": [ |
||||
{ |
||||
"id": 3, |
||||
"__component": "sections.rich-text", |
||||
"content": "## Page secrète. \n\n Vous seul pouvez voir cette page en Preview Mode" |
||||
} |
||||
] |
||||
}, |
||||
{ |
||||
"id": 8, |
||||
"slug": "contact", |
||||
"locale": "fr", |
||||
"localizations": [ |
||||
{ |
||||
"id": 4, |
||||
"locale": "en" |
||||
} |
||||
], |
||||
"shortName": "Contact", |
||||
"publishedAt":"2021-10-22T08:11:55.490Z", |
||||
"metadata": { |
||||
"id": 10, |
||||
"metaTitle": "Nous Contacter", |
||||
"metaDescription": "Contactez notre équipe", |
||||
"twitterCardType": "summary", |
||||
"twitterUsername": null, |
||||
"shareImage": null |
||||
}, |
||||
"contentSections": [ |
||||
{ |
||||
"id": 4, |
||||
"__component": "sections.rich-text", |
||||
"content": "# Contactez nous\n\n> Ceci est un exemple d'une page qui repose presque entièrement sur le composant RichText. Vous pouvez l'utiliser pour des articles de blog, ou pour des pages comportant beaucoup de texte, comme par exemple les conditions d'utilisation.\n\nNous aimerions beaucoup avoir vos retours.\n\n## Social media\n\n* [Twitter](#)\n* [Twitter](#)\n* [Twitter](#)\n\n## Postal address\n\n404 Headless Street\n__92210__ **Saint Cloud**, *France*\n\nLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." |
||||
}, |
||||
{ |
||||
"id": 4, |
||||
"__component": "sections.bottom-actions", |
||||
"title": "Get in touch", |
||||
"buttons": [ |
||||
{ |
||||
"id": 9, |
||||
"url": "#", |
||||
"newTab": false, |
||||
"text": "Envoyer un mail", |
||||
"type": "primary" |
||||
}, |
||||
{ |
||||
"id": 11, |
||||
"url": "#", |
||||
"newTab": false, |
||||
"text": "DM nous sur Twitter", |
||||
"type": "secondary" |
||||
} |
||||
] |
||||
} |
||||
] |
||||
} |
||||
] |
||||
} |
@ -0,0 +1,19 @@
|
||||
{ |
||||
"leadFormSubmissions": [ |
||||
{ |
||||
"email": "johne@thebeatles.com", |
||||
"status": "seen", |
||||
"location": "Home Page Bottom" |
||||
}, |
||||
{ |
||||
"email": "paul@thebeatles.com", |
||||
"status": "contacted", |
||||
"location": "Home Page Bottom" |
||||
}, |
||||
{ |
||||
"email": "george@thebeatles.com", |
||||
"status": "ignored", |
||||
"location": "Home Page Bottom" |
||||
} |
||||
] |
||||
} |
After Width: | Height: | Size: 5.1 KiB |
After Width: | Height: | Size: 43 KiB |
After Width: | Height: | Size: 40 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 1.2 MiB |
After Width: | Height: | Size: 3.6 KiB |
@ -0,0 +1,34 @@
|
||||
{ |
||||
"dependencies": { |
||||
"@strapi/plugin-documentation": "^4.1.12", |
||||
"@strapi/plugin-graphql": "^4.0.0", |
||||
"@strapi/plugin-i18n": "4.1.12", |
||||
"@strapi/plugin-users-permissions": "4.1.12", |
||||
"@strapi/strapi": "4.1.12", |
||||
"better-sqlite3": "7.4.6", |
||||
"lodash.set": "^4.3.2" |
||||
}, |
||||
"name": "backend", |
||||
"private": true, |
||||
"version": "0.1.0", |
||||
"description": "A Strapi application", |
||||
"scripts": { |
||||
"develop": "strapi develop", |
||||
"start": "strapi start", |
||||
"build": "strapi build", |
||||
"strapi": "strapi" |
||||
}, |
||||
"author": { |
||||
"name": "A Strapi developer" |
||||
}, |
||||
"strapi": { |
||||
"uuid": "36c6619b-e6d8-43ca-a55e-5e9be3365e25", |
||||
"template": "@strapi/template-corporate@^1.0.0", |
||||
"starter": "@strapi/starter-next-corporate" |
||||
}, |
||||
"engines": { |
||||
"node": ">=12.x.x <=16.x.x", |
||||
"npm": ">=6.0.0" |
||||
}, |
||||
"license": "MIT" |
||||
} |
@ -0,0 +1,3 @@
|
||||
# To prevent search engines from seeing the site altogether, uncomment the next two lines: |
||||
# User-Agent: * |
||||
# Disallow: / |
After Width: | Height: | Size: 6.0 KiB |
After Width: | Height: | Size: 6.0 KiB |
After Width: | Height: | Size: 6.0 KiB |
After Width: | Height: | Size: 19 KiB |
After Width: | Height: | Size: 29 KiB |
After Width: | Height: | Size: 64 KiB |
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 164 KiB |
After Width: | Height: | Size: 60 KiB |
After Width: | Height: | Size: 100 KiB |
After Width: | Height: | Size: 109 KiB |
After Width: | Height: | Size: 65 KiB |
After Width: | Height: | Size: 32 KiB |
After Width: | Height: | Size: 55 KiB |
After Width: | Height: | Size: 60 KiB |
After Width: | Height: | Size: 36 KiB |
After Width: | Height: | Size: 5.7 KiB |
After Width: | Height: | Size: 9.6 KiB |
After Width: | Height: | Size: 19 KiB |
After Width: | Height: | Size: 11 KiB |
@ -0,0 +1,35 @@
|
||||
export default { |
||||
config: { |
||||
locales: [ |
||||
// 'ar',
|
||||
// 'fr',
|
||||
// 'cs',
|
||||
// 'de',
|
||||
// 'dk',
|
||||
// 'es',
|
||||
// 'he',
|
||||
// 'id',
|
||||
// 'it',
|
||||
// 'ja',
|
||||
// 'ko',
|
||||
// 'ms',
|
||||
// 'nl',
|
||||
// 'no',
|
||||
// 'pl',
|
||||
// 'pt-BR',
|
||||
// 'pt',
|
||||
// 'ru',
|
||||
// 'sk',
|
||||
// 'sv',
|
||||
// 'th',
|
||||
// 'tr',
|
||||
// 'uk',
|
||||
// 'vi',
|
||||
// 'zh-Hans',
|
||||
// 'zh',
|
||||
], |
||||
}, |
||||
bootstrap(app) { |
||||
console.log(app); |
||||
}, |
||||
}; |
@ -0,0 +1,9 @@
|
||||
'use strict'; |
||||
|
||||
/* eslint-disable no-unused-vars */ |
||||
module.exports = (config, webpack) => { |
||||
// Note: we provide webpack above so you should not `require` it
|
||||
// Perform customizations to webpack config
|
||||
// Important: return the modified config
|
||||
return config; |
||||
}; |
@ -0,0 +1,47 @@
|
||||
{ |
||||
"kind": "collectionType", |
||||
"collectionName": "events", |
||||
"info": { |
||||
"singularName": "event", |
||||
"pluralName": "events", |
||||
"displayName": "Event", |
||||
"description": "" |
||||
}, |
||||
"options": { |
||||
"draftAndPublish": true |
||||
}, |
||||
"pluginOptions": { |
||||
"i18n": { |
||||
"localized": true |
||||
} |
||||
}, |
||||
"attributes": { |
||||
"title": { |
||||
"pluginOptions": { |
||||
"i18n": { |
||||
"localized": true |
||||
} |
||||
}, |
||||
"type": "string" |
||||
}, |
||||
"start": { |
||||
"type": "datetime" |
||||
}, |
||||
"endDate": { |
||||
"type": "datetime" |
||||
}, |
||||
"contend": { |
||||
"pluginOptions": { |
||||
"i18n": { |
||||
"localized": true |
||||
} |
||||
}, |
||||
"type": "richtext" |
||||
}, |
||||
"user": { |
||||
"type": "relation", |
||||
"relation": "oneToOne", |
||||
"target": "plugin::users-permissions.user" |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,9 @@
|
||||
'use strict'; |
||||
|
||||
/** |
||||
* event controller |
||||
*/ |
||||
|
||||
const { createCoreController } = require('@strapi/strapi').factories; |
||||
|
||||
module.exports = createCoreController('api::event.event'); |
@ -0,0 +1,578 @@
|
||||
{ |
||||
"/events": { |
||||
"get": { |
||||
"responses": { |
||||
"200": { |
||||
"description": "OK", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/EventListResponse" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"400": { |
||||
"description": "Bad Request", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"401": { |
||||
"description": "Unauthorized", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"403": { |
||||
"description": "Forbidden", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"404": { |
||||
"description": "Not Found", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"500": { |
||||
"description": "Internal Server Error", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"tags": [ |
||||
"Event" |
||||
], |
||||
"parameters": [ |
||||
{ |
||||
"name": "sort", |
||||
"in": "query", |
||||
"description": "Sort by attributes ascending (asc) or descending (desc)", |
||||
"deprecated": false, |
||||
"required": false, |
||||
"schema": { |
||||
"type": "string" |
||||
} |
||||
}, |
||||
{ |
||||
"name": "pagination[withCount]", |
||||
"in": "query", |
||||
"description": "Retun page/pageSize (default: true)", |
||||
"deprecated": false, |
||||
"required": false, |
||||
"schema": { |
||||
"type": "boolean" |
||||
} |
||||
}, |
||||
{ |
||||
"name": "pagination[page]", |
||||
"in": "query", |
||||
"description": "Page number (default: 0)", |
||||
"deprecated": false, |
||||
"required": false, |
||||
"schema": { |
||||
"type": "integer" |
||||
} |
||||
}, |
||||
{ |
||||
"name": "pagination[pageSize]", |
||||
"in": "query", |
||||
"description": "Page size (default: 25)", |
||||
"deprecated": false, |
||||
"required": false, |
||||
"schema": { |
||||
"type": "integer" |
||||
} |
||||
}, |
||||
{ |
||||
"name": "pagination[start]", |
||||
"in": "query", |
||||
"description": "Offset value (default: 0)", |
||||
"deprecated": false, |
||||
"required": false, |
||||
"schema": { |
||||
"type": "integer" |
||||
} |
||||
}, |
||||
{ |
||||
"name": "pagination[limit]", |
||||
"in": "query", |
||||
"description": "Number of entities to return (default: 25)", |
||||
"deprecated": false, |
||||
"required": false, |
||||
"schema": { |
||||
"type": "integer" |
||||
} |
||||
}, |
||||
{ |
||||
"name": "fields", |
||||
"in": "query", |
||||
"description": "Fields to return (ex: title,author)", |
||||
"deprecated": false, |
||||
"required": false, |
||||
"schema": { |
||||
"type": "string" |
||||
} |
||||
}, |
||||
{ |
||||
"name": "populate", |
||||
"in": "query", |
||||
"description": "Relations to return", |
||||
"deprecated": false, |
||||
"required": false, |
||||
"schema": { |
||||
"type": "string" |
||||
} |
||||
} |
||||
], |
||||
"operationId": "get/events" |
||||
}, |
||||
"post": { |
||||
"responses": { |
||||
"200": { |
||||
"description": "OK", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/EventResponse" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"400": { |
||||
"description": "Bad Request", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"401": { |
||||
"description": "Unauthorized", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"403": { |
||||
"description": "Forbidden", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"404": { |
||||
"description": "Not Found", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"500": { |
||||
"description": "Internal Server Error", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"tags": [ |
||||
"Event" |
||||
], |
||||
"parameters": [], |
||||
"operationId": "post/events", |
||||
"requestBody": { |
||||
"required": true, |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/EventRequest" |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"/events/{id}": { |
||||
"get": { |
||||
"responses": { |
||||
"200": { |
||||
"description": "OK", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/EventResponse" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"400": { |
||||
"description": "Bad Request", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"401": { |
||||
"description": "Unauthorized", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"403": { |
||||
"description": "Forbidden", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"404": { |
||||
"description": "Not Found", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"500": { |
||||
"description": "Internal Server Error", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"tags": [ |
||||
"Event" |
||||
], |
||||
"parameters": [ |
||||
{ |
||||
"name": "id", |
||||
"in": "path", |
||||
"description": "", |
||||
"deprecated": false, |
||||
"required": true, |
||||
"schema": { |
||||
"type": "string" |
||||
} |
||||
} |
||||
], |
||||
"operationId": "get/events/{id}" |
||||
}, |
||||
"put": { |
||||
"responses": { |
||||
"200": { |
||||
"description": "OK", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/EventResponse" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"400": { |
||||
"description": "Bad Request", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"401": { |
||||
"description": "Unauthorized", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"403": { |
||||
"description": "Forbidden", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"404": { |
||||
"description": "Not Found", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"500": { |
||||
"description": "Internal Server Error", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"tags": [ |
||||
"Event" |
||||
], |
||||
"parameters": [ |
||||
{ |
||||
"name": "id", |
||||
"in": "path", |
||||
"description": "", |
||||
"deprecated": false, |
||||
"required": true, |
||||
"schema": { |
||||
"type": "string" |
||||
} |
||||
} |
||||
], |
||||
"operationId": "put/events/{id}", |
||||
"requestBody": { |
||||
"required": true, |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/EventRequest" |
||||
} |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"delete": { |
||||
"responses": { |
||||
"200": { |
||||
"description": "OK", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"type": "integer", |
||||
"format": "int64" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"400": { |
||||
"description": "Bad Request", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"401": { |
||||
"description": "Unauthorized", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"403": { |
||||
"description": "Forbidden", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"404": { |
||||
"description": "Not Found", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"500": { |
||||
"description": "Internal Server Error", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"tags": [ |
||||
"Event" |
||||
], |
||||
"parameters": [ |
||||
{ |
||||
"name": "id", |
||||
"in": "path", |
||||
"description": "", |
||||
"deprecated": false, |
||||
"required": true, |
||||
"schema": { |
||||
"type": "string" |
||||
} |
||||
} |
||||
], |
||||
"operationId": "delete/events/{id}" |
||||
} |
||||
}, |
||||
"/events/{id}/localizations": { |
||||
"post": { |
||||
"responses": { |
||||
"200": { |
||||
"description": "OK", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/EventLocalizationResponse" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"400": { |
||||
"description": "Bad Request", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"401": { |
||||
"description": "Unauthorized", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"403": { |
||||
"description": "Forbidden", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"404": { |
||||
"description": "Not Found", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"500": { |
||||
"description": "Internal Server Error", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"tags": [ |
||||
"Event" |
||||
], |
||||
"parameters": [ |
||||
{ |
||||
"name": "id", |
||||
"in": "path", |
||||
"description": "", |
||||
"deprecated": false, |
||||
"required": true, |
||||
"schema": { |
||||
"type": "string" |
||||
} |
||||
} |
||||
], |
||||
"operationId": "post/events/{id}/localizations", |
||||
"requestBody": { |
||||
"required": true, |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/EventLocalizationRequest" |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,9 @@
|
||||
'use strict'; |
||||
|
||||
/** |
||||
* event router. |
||||
*/ |
||||
|
||||
const { createCoreRouter } = require('@strapi/strapi').factories; |
||||
|
||||
module.exports = createCoreRouter('api::event.event'); |
@ -0,0 +1,9 @@
|
||||
'use strict'; |
||||
|
||||
/** |
||||
* event service. |
||||
*/ |
||||
|
||||
const { createCoreService } = require('@strapi/strapi').factories; |
||||
|
||||
module.exports = createCoreService('api::event.event'); |
@ -0,0 +1,83 @@
|
||||
{ |
||||
"kind": "singleType", |
||||
"collectionName": "globals", |
||||
"info": { |
||||
"singularName": "global", |
||||
"pluralName": "globals", |
||||
"displayName": "Global", |
||||
"name": "global" |
||||
}, |
||||
"options": { |
||||
"increments": true, |
||||
"timestamps": true, |
||||
"draftAndPublish": false |
||||
}, |
||||
"pluginOptions": { |
||||
"i18n": { |
||||
"localized": true |
||||
} |
||||
}, |
||||
"attributes": { |
||||
"metadata": { |
||||
"type": "component", |
||||
"repeatable": false, |
||||
"component": "meta.metadata", |
||||
"pluginOptions": { |
||||
"i18n": { |
||||
"localized": true |
||||
} |
||||
} |
||||
}, |
||||
"metaTitleSuffix": { |
||||
"type": "string", |
||||
"required": true, |
||||
"pluginOptions": { |
||||
"i18n": { |
||||
"localized": true |
||||
} |
||||
} |
||||
}, |
||||
"favicon": { |
||||
"allowedTypes": [ |
||||
"images" |
||||
], |
||||
"type": "media", |
||||
"multiple": false, |
||||
"pluginOptions": { |
||||
"i18n": { |
||||
"localized": true |
||||
} |
||||
} |
||||
}, |
||||
"notificationBanner": { |
||||
"type": "component", |
||||
"repeatable": false, |
||||
"component": "elements.notification-banner", |
||||
"pluginOptions": { |
||||
"i18n": { |
||||
"localized": true |
||||
} |
||||
} |
||||
}, |
||||
"navbar": { |
||||
"type": "component", |
||||
"repeatable": false, |
||||
"component": "layout.navbar", |
||||
"pluginOptions": { |
||||
"i18n": { |
||||
"localized": true |
||||
} |
||||
} |
||||
}, |
||||
"footer": { |
||||
"type": "component", |
||||
"repeatable": false, |
||||
"component": "layout.footer", |
||||
"pluginOptions": { |
||||
"i18n": { |
||||
"localized": true |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,9 @@
|
||||
'use strict'; |
||||
|
||||
/** |
||||
* global controller |
||||
*/ |
||||
|
||||
const { createCoreController } = require('@strapi/strapi').factories; |
||||
|
||||
module.exports = createCoreController('api::global.global'); |
@ -0,0 +1,384 @@
|
||||
{ |
||||
"/global": { |
||||
"get": { |
||||
"responses": { |
||||
"200": { |
||||
"description": "OK", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/GlobalListResponse" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"400": { |
||||
"description": "Bad Request", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"401": { |
||||
"description": "Unauthorized", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"403": { |
||||
"description": "Forbidden", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"404": { |
||||
"description": "Not Found", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"500": { |
||||
"description": "Internal Server Error", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"tags": [ |
||||
"Global" |
||||
], |
||||
"parameters": [ |
||||
{ |
||||
"name": "sort", |
||||
"in": "query", |
||||
"description": "Sort by attributes ascending (asc) or descending (desc)", |
||||
"deprecated": false, |
||||
"required": false, |
||||
"schema": { |
||||
"type": "string" |
||||
} |
||||
}, |
||||
{ |
||||
"name": "pagination[withCount]", |
||||
"in": "query", |
||||
"description": "Retun page/pageSize (default: true)", |
||||
"deprecated": false, |
||||
"required": false, |
||||
"schema": { |
||||
"type": "boolean" |
||||
} |
||||
}, |
||||
{ |
||||
"name": "pagination[page]", |
||||
"in": "query", |
||||
"description": "Page number (default: 0)", |
||||
"deprecated": false, |
||||
"required": false, |
||||
"schema": { |
||||
"type": "integer" |
||||
} |
||||
}, |
||||
{ |
||||
"name": "pagination[pageSize]", |
||||
"in": "query", |
||||
"description": "Page size (default: 25)", |
||||
"deprecated": false, |
||||
"required": false, |
||||
"schema": { |
||||
"type": "integer" |
||||
} |
||||
}, |
||||
{ |
||||
"name": "pagination[start]", |
||||
"in": "query", |
||||
"description": "Offset value (default: 0)", |
||||
"deprecated": false, |
||||
"required": false, |
||||
"schema": { |
||||
"type": "integer" |
||||
} |
||||
}, |
||||
{ |
||||
"name": "pagination[limit]", |
||||
"in": "query", |
||||
"description": "Number of entities to return (default: 25)", |
||||
"deprecated": false, |
||||
"required": false, |
||||
"schema": { |
||||
"type": "integer" |
||||
} |
||||
}, |
||||
{ |
||||
"name": "fields", |
||||
"in": "query", |
||||
"description": "Fields to return (ex: title,author)", |
||||
"deprecated": false, |
||||
"required": false, |
||||
"schema": { |
||||
"type": "string" |
||||
} |
||||
}, |
||||
{ |
||||
"name": "populate", |
||||
"in": "query", |
||||
"description": "Relations to return", |
||||
"deprecated": false, |
||||
"required": false, |
||||
"schema": { |
||||
"type": "string" |
||||
} |
||||
} |
||||
], |
||||
"operationId": "get/global" |
||||
}, |
||||
"put": { |
||||
"responses": { |
||||
"200": { |
||||
"description": "OK", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/GlobalResponse" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"400": { |
||||
"description": "Bad Request", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"401": { |
||||
"description": "Unauthorized", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"403": { |
||||
"description": "Forbidden", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"404": { |
||||
"description": "Not Found", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"500": { |
||||
"description": "Internal Server Error", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"tags": [ |
||||
"Global" |
||||
], |
||||
"parameters": [], |
||||
"operationId": "put/global", |
||||
"requestBody": { |
||||
"required": true, |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/GlobalRequest" |
||||
} |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"delete": { |
||||
"responses": { |
||||
"200": { |
||||
"description": "OK", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"type": "integer", |
||||
"format": "int64" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"400": { |
||||
"description": "Bad Request", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"401": { |
||||
"description": "Unauthorized", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"403": { |
||||
"description": "Forbidden", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"404": { |
||||
"description": "Not Found", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"500": { |
||||
"description": "Internal Server Error", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"tags": [ |
||||
"Global" |
||||
], |
||||
"parameters": [], |
||||
"operationId": "delete/global" |
||||
} |
||||
}, |
||||
"/global/localizations": { |
||||
"post": { |
||||
"responses": { |
||||
"200": { |
||||
"description": "OK", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/GlobalLocalizationResponse" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"400": { |
||||
"description": "Bad Request", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"401": { |
||||
"description": "Unauthorized", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"403": { |
||||
"description": "Forbidden", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"404": { |
||||
"description": "Not Found", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"500": { |
||||
"description": "Internal Server Error", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"tags": [ |
||||
"Global" |
||||
], |
||||
"parameters": [], |
||||
"operationId": "post/global/localizations", |
||||
"requestBody": { |
||||
"required": true, |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/GlobalLocalizationRequest" |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,9 @@
|
||||
'use strict'; |
||||
|
||||
/** |
||||
* global router. |
||||
*/ |
||||
|
||||
const { createCoreRouter } = require('@strapi/strapi').factories; |
||||
|
||||
module.exports = createCoreRouter('api::global.global'); |
@ -0,0 +1,9 @@
|
||||
'use strict'; |
||||
|
||||
/** |
||||
* global service. |
||||
*/ |
||||
|
||||
const { createCoreService } = require('@strapi/strapi').factories; |
||||
|
||||
module.exports = createCoreService('api::global.global'); |
@ -0,0 +1,31 @@
|
||||
{ |
||||
"kind": "collectionType", |
||||
"collectionName": "lead_form_submissions", |
||||
"info": { |
||||
"singularName": "lead-form-submission", |
||||
"pluralName": "lead-form-submissions", |
||||
"displayName": "Lead form submission", |
||||
"name": "lead-form-submission" |
||||
}, |
||||
"options": { |
||||
"increments": true, |
||||
"timestamps": true, |
||||
"draftAndPublish": false |
||||
}, |
||||
"attributes": { |
||||
"email": { |
||||
"type": "string" |
||||
}, |
||||
"status": { |
||||
"type": "enumeration", |
||||
"enum": [ |
||||
"seen", |
||||
"contacted", |
||||
"ignored" |
||||
] |
||||
}, |
||||
"location": { |
||||
"type": "string" |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,9 @@
|
||||
'use strict'; |
||||
|
||||
/** |
||||
* lead-form-submission controller |
||||
*/ |
||||
|
||||
const { createCoreController } = require('@strapi/strapi').factories; |
||||
|
||||
module.exports = createCoreController('api::lead-form-submission.lead-form-submission'); |
@ -0,0 +1,486 @@
|
||||
{ |
||||
"/lead-form-submissions": { |
||||
"get": { |
||||
"responses": { |
||||
"200": { |
||||
"description": "OK", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/LeadFormSubmissionListResponse" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"400": { |
||||
"description": "Bad Request", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"401": { |
||||
"description": "Unauthorized", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"403": { |
||||
"description": "Forbidden", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"404": { |
||||
"description": "Not Found", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"500": { |
||||
"description": "Internal Server Error", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"tags": [ |
||||
"Lead-form-submission" |
||||
], |
||||
"parameters": [ |
||||
{ |
||||
"name": "sort", |
||||
"in": "query", |
||||
"description": "Sort by attributes ascending (asc) or descending (desc)", |
||||
"deprecated": false, |
||||
"required": false, |
||||
"schema": { |
||||
"type": "string" |
||||
} |
||||
}, |
||||
{ |
||||
"name": "pagination[withCount]", |
||||
"in": "query", |
||||
"description": "Retun page/pageSize (default: true)", |
||||
"deprecated": false, |
||||
"required": false, |
||||
"schema": { |
||||
"type": "boolean" |
||||
} |
||||
}, |
||||
{ |
||||
"name": "pagination[page]", |
||||
"in": "query", |
||||
"description": "Page number (default: 0)", |
||||
"deprecated": false, |
||||
"required": false, |
||||
"schema": { |
||||
"type": "integer" |
||||
} |
||||
}, |
||||
{ |
||||
"name": "pagination[pageSize]", |
||||
"in": "query", |
||||
"description": "Page size (default: 25)", |
||||
"deprecated": false, |
||||
"required": false, |
||||
"schema": { |
||||
"type": "integer" |
||||
} |
||||
}, |
||||
{ |
||||
"name": "pagination[start]", |
||||
"in": "query", |
||||
"description": "Offset value (default: 0)", |
||||
"deprecated": false, |
||||
"required": false, |
||||
"schema": { |
||||
"type": "integer" |
||||
} |
||||
}, |
||||
{ |
||||
"name": "pagination[limit]", |
||||
"in": "query", |
||||
"description": "Number of entities to return (default: 25)", |
||||
"deprecated": false, |
||||
"required": false, |
||||
"schema": { |
||||
"type": "integer" |
||||
} |
||||
}, |
||||
{ |
||||
"name": "fields", |
||||
"in": "query", |
||||
"description": "Fields to return (ex: title,author)", |
||||
"deprecated": false, |
||||
"required": false, |
||||
"schema": { |
||||
"type": "string" |
||||
} |
||||
}, |
||||
{ |
||||
"name": "populate", |
||||
"in": "query", |
||||
"description": "Relations to return", |
||||
"deprecated": false, |
||||
"required": false, |
||||
"schema": { |
||||
"type": "string" |
||||
} |
||||
} |
||||
], |
||||
"operationId": "get/lead-form-submissions" |
||||
}, |
||||
"post": { |
||||
"responses": { |
||||
"200": { |
||||
"description": "OK", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/LeadFormSubmissionResponse" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"400": { |
||||
"description": "Bad Request", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"401": { |
||||
"description": "Unauthorized", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"403": { |
||||
"description": "Forbidden", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"404": { |
||||
"description": "Not Found", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"500": { |
||||
"description": "Internal Server Error", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"tags": [ |
||||
"Lead-form-submission" |
||||
], |
||||
"parameters": [], |
||||
"operationId": "post/lead-form-submissions", |
||||
"requestBody": { |
||||
"required": true, |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/LeadFormSubmissionRequest" |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"/lead-form-submissions/{id}": { |
||||
"get": { |
||||
"responses": { |
||||
"200": { |
||||
"description": "OK", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/LeadFormSubmissionResponse" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"400": { |
||||
"description": "Bad Request", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"401": { |
||||
"description": "Unauthorized", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"403": { |
||||
"description": "Forbidden", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"404": { |
||||
"description": "Not Found", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"500": { |
||||
"description": "Internal Server Error", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"tags": [ |
||||
"Lead-form-submission" |
||||
], |
||||
"parameters": [ |
||||
{ |
||||
"name": "id", |
||||
"in": "path", |
||||
"description": "", |
||||
"deprecated": false, |
||||
"required": true, |
||||
"schema": { |
||||
"type": "string" |
||||
} |
||||
} |
||||
], |
||||
"operationId": "get/lead-form-submissions/{id}" |
||||
}, |
||||
"put": { |
||||
"responses": { |
||||
"200": { |
||||
"description": "OK", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/LeadFormSubmissionResponse" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"400": { |
||||
"description": "Bad Request", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"401": { |
||||
"description": "Unauthorized", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"403": { |
||||
"description": "Forbidden", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"404": { |
||||
"description": "Not Found", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"500": { |
||||
"description": "Internal Server Error", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"tags": [ |
||||
"Lead-form-submission" |
||||
], |
||||
"parameters": [ |
||||
{ |
||||
"name": "id", |
||||
"in": "path", |
||||
"description": "", |
||||
"deprecated": false, |
||||
"required": true, |
||||
"schema": { |
||||
"type": "string" |
||||
} |
||||
} |
||||
], |
||||
"operationId": "put/lead-form-submissions/{id}", |
||||
"requestBody": { |
||||
"required": true, |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/LeadFormSubmissionRequest" |
||||
} |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"delete": { |
||||
"responses": { |
||||
"200": { |
||||
"description": "OK", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"type": "integer", |
||||
"format": "int64" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"400": { |
||||
"description": "Bad Request", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"401": { |
||||
"description": "Unauthorized", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"403": { |
||||
"description": "Forbidden", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"404": { |
||||
"description": "Not Found", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"500": { |
||||
"description": "Internal Server Error", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"tags": [ |
||||
"Lead-form-submission" |
||||
], |
||||
"parameters": [ |
||||
{ |
||||
"name": "id", |
||||
"in": "path", |
||||
"description": "", |
||||
"deprecated": false, |
||||
"required": true, |
||||
"schema": { |
||||
"type": "string" |
||||
} |
||||
} |
||||
], |
||||
"operationId": "delete/lead-form-submissions/{id}" |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,9 @@
|
||||
'use strict'; |
||||
|
||||
/** |
||||
* lead-form-submission router. |
||||
*/ |
||||
|
||||
const { createCoreRouter } = require('@strapi/strapi').factories; |
||||
|
||||
module.exports = createCoreRouter('api::lead-form-submission.lead-form-submission'); |
@ -0,0 +1,9 @@
|
||||
'use strict'; |
||||
|
||||
/** |
||||
* lead-form-submission service. |
||||
*/ |
||||
|
||||
const { createCoreService } = require('@strapi/strapi').factories; |
||||
|
||||
module.exports = createCoreService('api::lead-form-submission.lead-form-submission'); |
@ -0,0 +1,69 @@
|
||||
{ |
||||
"kind": "collectionType", |
||||
"collectionName": "pages", |
||||
"info": { |
||||
"singularName": "page", |
||||
"pluralName": "pages", |
||||
"displayName": "Page", |
||||
"name": "page" |
||||
}, |
||||
"options": { |
||||
"increments": true, |
||||
"timestamps": true, |
||||
"draftAndPublish": true |
||||
}, |
||||
"pluginOptions": { |
||||
"i18n": { |
||||
"localized": true |
||||
} |
||||
}, |
||||
"attributes": { |
||||
"shortName": { |
||||
"type": "string", |
||||
"pluginOptions": { |
||||
"i18n": { |
||||
"localized": true |
||||
} |
||||
} |
||||
}, |
||||
"metadata": { |
||||
"type": "component", |
||||
"repeatable": false, |
||||
"component": "meta.metadata", |
||||
"required": true, |
||||
"pluginOptions": { |
||||
"i18n": { |
||||
"localized": true |
||||
} |
||||
} |
||||
}, |
||||
"contentSections": { |
||||
"type": "dynamiczone", |
||||
"components": [ |
||||
"sections.hero", |
||||
"sections.bottom-actions", |
||||
"sections.feature-columns-group", |
||||
"sections.feature-rows-group", |
||||
"sections.testimonials-group", |
||||
"sections.large-video", |
||||
"sections.rich-text", |
||||
"sections.pricing", |
||||
"sections.lead-form" |
||||
], |
||||
"pluginOptions": { |
||||
"i18n": { |
||||
"localized": true |
||||
} |
||||
} |
||||
}, |
||||
"slug": { |
||||
"pluginOptions": { |
||||
"i18n": { |
||||
"localized": false |
||||
} |
||||
}, |
||||
"type": "string", |
||||
"regex": "^$|^[a-zA-Z/-]+$" |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,9 @@
|
||||
'use strict'; |
||||
|
||||
/** |
||||
* page controller |
||||
*/ |
||||
|
||||
const { createCoreController } = require('@strapi/strapi').factories; |
||||
|
||||
module.exports = createCoreController('api::page.page'); |
@ -0,0 +1,578 @@
|
||||
{ |
||||
"/pages": { |
||||
"get": { |
||||
"responses": { |
||||
"200": { |
||||
"description": "OK", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/PageListResponse" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"400": { |
||||
"description": "Bad Request", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"401": { |
||||
"description": "Unauthorized", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"403": { |
||||
"description": "Forbidden", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"404": { |
||||
"description": "Not Found", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"500": { |
||||
"description": "Internal Server Error", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"tags": [ |
||||
"Page" |
||||
], |
||||
"parameters": [ |
||||
{ |
||||
"name": "sort", |
||||
"in": "query", |
||||
"description": "Sort by attributes ascending (asc) or descending (desc)", |
||||
"deprecated": false, |
||||
"required": false, |
||||
"schema": { |
||||
"type": "string" |
||||
} |
||||
}, |
||||
{ |
||||
"name": "pagination[withCount]", |
||||
"in": "query", |
||||
"description": "Retun page/pageSize (default: true)", |
||||
"deprecated": false, |
||||
"required": false, |
||||
"schema": { |
||||
"type": "boolean" |
||||
} |
||||
}, |
||||
{ |
||||
"name": "pagination[page]", |
||||
"in": "query", |
||||
"description": "Page number (default: 0)", |
||||
"deprecated": false, |
||||
"required": false, |
||||
"schema": { |
||||
"type": "integer" |
||||
} |
||||
}, |
||||
{ |
||||
"name": "pagination[pageSize]", |
||||
"in": "query", |
||||
"description": "Page size (default: 25)", |
||||
"deprecated": false, |
||||
"required": false, |
||||
"schema": { |
||||
"type": "integer" |
||||
} |
||||
}, |
||||
{ |
||||
"name": "pagination[start]", |
||||
"in": "query", |
||||
"description": "Offset value (default: 0)", |
||||
"deprecated": false, |
||||
"required": false, |
||||
"schema": { |
||||
"type": "integer" |
||||
} |
||||
}, |
||||
{ |
||||
"name": "pagination[limit]", |
||||
"in": "query", |
||||
"description": "Number of entities to return (default: 25)", |
||||
"deprecated": false, |
||||
"required": false, |
||||
"schema": { |
||||
"type": "integer" |
||||
} |
||||
}, |
||||
{ |
||||
"name": "fields", |
||||
"in": "query", |
||||
"description": "Fields to return (ex: title,author)", |
||||
"deprecated": false, |
||||
"required": false, |
||||
"schema": { |
||||
"type": "string" |
||||
} |
||||
}, |
||||
{ |
||||
"name": "populate", |
||||
"in": "query", |
||||
"description": "Relations to return", |
||||
"deprecated": false, |
||||
"required": false, |
||||
"schema": { |
||||
"type": "string" |
||||
} |
||||
} |
||||
], |
||||
"operationId": "get/pages" |
||||
}, |
||||
"post": { |
||||
"responses": { |
||||
"200": { |
||||
"description": "OK", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/PageResponse" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"400": { |
||||
"description": "Bad Request", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"401": { |
||||
"description": "Unauthorized", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"403": { |
||||
"description": "Forbidden", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"404": { |
||||
"description": "Not Found", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"500": { |
||||
"description": "Internal Server Error", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"tags": [ |
||||
"Page" |
||||
], |
||||
"parameters": [], |
||||
"operationId": "post/pages", |
||||
"requestBody": { |
||||
"required": true, |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/PageRequest" |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"/pages/{id}": { |
||||
"get": { |
||||
"responses": { |
||||
"200": { |
||||
"description": "OK", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/PageResponse" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"400": { |
||||
"description": "Bad Request", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"401": { |
||||
"description": "Unauthorized", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"403": { |
||||
"description": "Forbidden", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"404": { |
||||
"description": "Not Found", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"500": { |
||||
"description": "Internal Server Error", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"tags": [ |
||||
"Page" |
||||
], |
||||
"parameters": [ |
||||
{ |
||||
"name": "id", |
||||
"in": "path", |
||||
"description": "", |
||||
"deprecated": false, |
||||
"required": true, |
||||
"schema": { |
||||
"type": "string" |
||||
} |
||||
} |
||||
], |
||||
"operationId": "get/pages/{id}" |
||||
}, |
||||
"put": { |
||||
"responses": { |
||||
"200": { |
||||
"description": "OK", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/PageResponse" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"400": { |
||||
"description": "Bad Request", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"401": { |
||||
"description": "Unauthorized", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"403": { |
||||
"description": "Forbidden", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"404": { |
||||
"description": "Not Found", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"500": { |
||||
"description": "Internal Server Error", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"tags": [ |
||||
"Page" |
||||
], |
||||
"parameters": [ |
||||
{ |
||||
"name": "id", |
||||
"in": "path", |
||||
"description": "", |
||||
"deprecated": false, |
||||
"required": true, |
||||
"schema": { |
||||
"type": "string" |
||||
} |
||||
} |
||||
], |
||||
"operationId": "put/pages/{id}", |
||||
"requestBody": { |
||||
"required": true, |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/PageRequest" |
||||
} |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"delete": { |
||||
"responses": { |
||||
"200": { |
||||
"description": "OK", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"type": "integer", |
||||
"format": "int64" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"400": { |
||||
"description": "Bad Request", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"401": { |
||||
"description": "Unauthorized", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"403": { |
||||
"description": "Forbidden", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"404": { |
||||
"description": "Not Found", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"500": { |
||||
"description": "Internal Server Error", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"tags": [ |
||||
"Page" |
||||
], |
||||
"parameters": [ |
||||
{ |
||||
"name": "id", |
||||
"in": "path", |
||||
"description": "", |
||||
"deprecated": false, |
||||
"required": true, |
||||
"schema": { |
||||
"type": "string" |
||||
} |
||||
} |
||||
], |
||||
"operationId": "delete/pages/{id}" |
||||
} |
||||
}, |
||||
"/pages/{id}/localizations": { |
||||
"post": { |
||||
"responses": { |
||||
"200": { |
||||
"description": "OK", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/PageLocalizationResponse" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"400": { |
||||
"description": "Bad Request", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"401": { |
||||
"description": "Unauthorized", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"403": { |
||||
"description": "Forbidden", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"404": { |
||||
"description": "Not Found", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"500": { |
||||
"description": "Internal Server Error", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/Error" |
||||
} |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"tags": [ |
||||
"Page" |
||||
], |
||||
"parameters": [ |
||||
{ |
||||
"name": "id", |
||||
"in": "path", |
||||
"description": "", |
||||
"deprecated": false, |
||||
"required": true, |
||||
"schema": { |
||||
"type": "string" |
||||
} |
||||
} |
||||
], |
||||
"operationId": "post/pages/{id}/localizations", |
||||
"requestBody": { |
||||
"required": true, |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"$ref": "#/components/schemas/PageLocalizationRequest" |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,9 @@
|
||||
'use strict'; |
||||
|
||||
/** |
||||
* page router. |
||||
*/ |
||||
|
||||
const { createCoreRouter } = require('@strapi/strapi').factories; |
||||
|
||||
module.exports = createCoreRouter('api::page.page'); |
@ -0,0 +1,9 @@
|
||||
'use strict'; |
||||
|
||||
/** |
||||
* page service. |
||||
*/ |
||||
|
||||
const { createCoreService } = require('@strapi/strapi').factories; |
||||
|
||||
module.exports = createCoreService('api::page.page'); |
@ -0,0 +1,230 @@
|
||||
const fs = require("fs"); |
||||
const { pages, globals, leadFormSubmissions } = require("../data/data"); |
||||
const set = require("lodash.set"); |
||||
|
||||
async function isFirstRun() { |
||||
const pluginStore = strapi.store({ |
||||
environment: strapi.config.environment, |
||||
type: "type", |
||||
name: "setup", |
||||
}); |
||||
const initHasRun = await pluginStore.get({ key: "initHasRun" }); |
||||
await pluginStore.set({ key: "initHasRun", value: true }); |
||||
return !initHasRun; |
||||
} |
||||
|
||||
async function setPublicPermissions(newPermissions) { |
||||
// Find the ID of the public role
|
||||
const publicRole = await strapi |
||||
.query("plugin::users-permissions.role") |
||||
.findOne({ |
||||
where: { |
||||
type: "public", |
||||
}, |
||||
}); |
||||
|
||||
// Create the new permissions and link them to the public role
|
||||
const allPermissionsToCreate = []; |
||||
Object.keys(newPermissions).map(controller => { |
||||
const actions = newPermissions[controller]; |
||||
const permissionsToCreate = actions.map(action => { |
||||
return strapi.query("plugin::users-permissions.permission").create({ |
||||
data: { |
||||
action: `api::${controller}.${controller}.${action}`, |
||||
role: publicRole.id, |
||||
}, |
||||
}); |
||||
}); |
||||
allPermissionsToCreate.push(...permissionsToCreate); |
||||
}); |
||||
await Promise.all(allPermissionsToCreate); |
||||
} |
||||
|
||||
function getFileSizeInBytes(filePath) { |
||||
const stats = fs.statSync(filePath); |
||||
const fileSizeInBytes = stats["size"]; |
||||
return fileSizeInBytes; |
||||
} |
||||
|
||||
function getFileData(fileName) { |
||||
const filePath = `./data/uploads/${fileName}`; |
||||
|
||||
// Parse the file metadata
|
||||
const size = getFileSizeInBytes(filePath); |
||||
const ext = fileName.split(".").pop(); |
||||
const mimeType = `image/${ext === "svg" ? "svg+xml" : ext}`; |
||||
|
||||
return { |
||||
path: filePath, |
||||
name: fileName, |
||||
size, |
||||
type: mimeType, |
||||
}; |
||||
} |
||||
|
||||
// Create an entry and attach files if there are any
|
||||
async function createEntry(model, entry, files) { |
||||
try { |
||||
if (files) { |
||||
for (const [key, file] of Object.entries(files)) { |
||||
// Get file name without the extension
|
||||
const [fileName] = file.name.split('.'); |
||||
// Upload each individual file
|
||||
const uploadedFile = await strapi |
||||
.plugin("upload") |
||||
.service("upload") |
||||
.upload({ |
||||
files: file, |
||||
data: { |
||||
fileInfo: { |
||||
alternativeText: fileName, |
||||
caption: fileName, |
||||
name: fileName, |
||||
}, |
||||
}, |
||||
}); |
||||
|
||||
// Attach each file to its entry
|
||||
set(entry, key, uploadedFile[0].id); |
||||
} |
||||
} |
||||
|
||||
// Actually create the entry in Strapi
|
||||
const createdEntry = await strapi.entityService.create( |
||||
`api::${model}.${model}`, |
||||
{ |
||||
data: entry, |
||||
} |
||||
); |
||||
} catch (e) { |
||||
console.log(e); |
||||
} |
||||
} |
||||
|
||||
async function importPages(pages) { |
||||
const getPageCover = (slug) => { |
||||
switch (slug) { |
||||
case "": |
||||
return getFileData("undraw-content-team.png"); |
||||
default: |
||||
return null; |
||||
} |
||||
}; |
||||
|
||||
return pages.map(async (page) => { |
||||
const files = {}; |
||||
const shareImage = getPageCover(page.slug); |
||||
if (shareImage) { |
||||
files["metadata.shareImage"] = shareImage; |
||||
} |
||||
// Check if dynamic zone has attached files
|
||||
page.contentSections.forEach((section, index) => { |
||||
if (section.__component === "sections.hero") { |
||||
files[`contentSections.${index}.picture`] = getFileData( |
||||
"undraw-content-team.svg" |
||||
); |
||||
} else if (section.__component === "sections.feature-rows-group") { |
||||
const getFeatureMedia = (featureIndex) => { |
||||
switch (featureIndex) { |
||||
case 0: |
||||
return getFileData("undraw-design-page.svg"); |
||||
case 1: |
||||
return getFileData("undraw-create-page.svg"); |
||||
default: |
||||
return null; |
||||
} |
||||
}; |
||||
section.features.forEach((feature, featureIndex) => { |
||||
files[`contentSections.${index}.features.${featureIndex}.media`] = |
||||
getFeatureMedia(featureIndex); |
||||
}); |
||||
} else if (section.__component === "sections.feature-columns-group") { |
||||
const getFeatureMedia = (featureIndex) => { |
||||
switch (featureIndex) { |
||||
case 0: |
||||
return getFileData("preview.svg"); |
||||
case 1: |
||||
return getFileData("devices.svg"); |
||||
case 2: |
||||
return getFileData("palette.svg"); |
||||
default: |
||||
return null; |
||||
} |
||||
}; |
||||
section.features.forEach((feature, featureIndex) => { |
||||
files[`contentSections.${index}.features.${featureIndex}.icon`] = |
||||
getFeatureMedia(featureIndex); |
||||
}); |
||||
} else if (section.__component === "sections.testimonials-group") { |
||||
section.logos.forEach((logo, logoIndex) => { |
||||
files[`contentSections.${index}.logos.${logoIndex}.logo`] = |
||||
getFileData("logo.png"); |
||||
}); |
||||
section.testimonials.forEach((testimonial, testimonialIndex) => { |
||||
files[ |
||||
`contentSections.${index}.testimonials.${testimonialIndex}.logo` |
||||
] = getFileData("logo.png"); |
||||
files[ |
||||
`contentSections.${index}.testimonials.${testimonialIndex}.picture` |
||||
] = getFileData("user.png"); |
||||
}); |
||||
} |
||||
}); |
||||
|
||||
await createEntry("page", page, files); |
||||
}); |
||||
} |
||||
|
||||
async function importGlobal() { |
||||
// Add images
|
||||
const files = { |
||||
favicon: getFileData("favicon.png"), |
||||
"metadata.shareImage": getFileData("undraw-content-team.png"), |
||||
"navbar.logo": getFileData("logo.png"), |
||||
"footer.logo": getFileData("logo.png"), |
||||
}; |
||||
|
||||
// Create entry
|
||||
globals.forEach(async (locale) => { |
||||
await createEntry("global", locale, files); |
||||
}); |
||||
} |
||||
|
||||
async function importLeadFormSubmissionData() { |
||||
leadFormSubmissions.forEach(async (submission) => { |
||||
await createEntry("lead-form-submissions", submission); |
||||
}); |
||||
} |
||||
|
||||
async function importSeedData() { |
||||
// Allow read of application content types
|
||||
await setPublicPermissions({ |
||||
global: ["find"], |
||||
page: ["find", "findOne"], |
||||
"lead-form-submission": ["create"], |
||||
}); |
||||
|
||||
await strapi.query("plugin::i18n.locale").create({ |
||||
data: { |
||||
name: "French (fr)", |
||||
code: "fr", |
||||
}, |
||||
}); |
||||
|
||||
// Create all entries
|
||||
await importGlobal(); |
||||
await importPages(pages); |
||||
await importLeadFormSubmissionData(); |
||||
} |
||||
|
||||
module.exports = async () => { |
||||
const shouldImportSeedData = await isFirstRun(); |
||||
if (shouldImportSeedData) { |
||||
try { |
||||
await importSeedData(); |
||||
} catch (error) { |
||||
console.log("Could not import seed data"); |
||||
console.error(error); |
||||
} |
||||
} |
||||
}; |
@ -0,0 +1,27 @@
|
||||
{ |
||||
"collectionName": "components_slices_feature_columns", |
||||
"info": { |
||||
"name": "FeatureColumn", |
||||
"displayName": "Feature column", |
||||
"icon": "align-center", |
||||
"description": "" |
||||
}, |
||||
"options": {}, |
||||
"attributes": { |
||||
"title": { |
||||
"type": "string", |
||||
"required": true |
||||
}, |
||||
"description": { |
||||
"type": "text" |
||||
}, |
||||
"icon": { |
||||
"allowedTypes": [ |
||||
"images" |
||||
], |
||||
"type": "media", |
||||
"multiple": false, |
||||
"required": true |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,33 @@
|
||||
{ |
||||
"collectionName": "components_slices_feature_rows", |
||||
"info": { |
||||
"name": "FeatureRow", |
||||
"displayName": "Feature row", |
||||
"icon": "arrows-alt-h", |
||||
"description": "" |
||||
}, |
||||
"options": {}, |
||||
"attributes": { |
||||
"title": { |
||||
"type": "string", |
||||
"required": true |
||||
}, |
||||
"description": { |
||||
"type": "text" |
||||
}, |
||||
"media": { |
||||
"allowedTypes": [ |
||||
"images", |
||||
"videos" |
||||
], |
||||
"type": "media", |
||||
"multiple": false, |
||||
"required": true |
||||
}, |
||||
"link": { |
||||
"type": "component", |
||||
"repeatable": false, |
||||
"component": "links.link" |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,14 @@
|
||||
{ |
||||
"collectionName": "components_elements_features", |
||||
"info": { |
||||
"name": "feature", |
||||
"displayName": "Feature", |
||||
"icon": "traffic-light" |
||||
}, |
||||
"options": {}, |
||||
"attributes": { |
||||
"name": { |
||||
"type": "string" |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,19 @@
|
||||
{ |
||||
"collectionName": "components_links_footer_sections", |
||||
"info": { |
||||
"name": "FooterSection", |
||||
"displayName": "Footer section", |
||||
"icon": "chevron-circle-down" |
||||
}, |
||||
"options": {}, |
||||
"attributes": { |
||||
"title": { |
||||
"type": "string" |
||||
}, |
||||
"links": { |
||||
"type": "component", |
||||
"repeatable": true, |
||||
"component": "links.link" |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,22 @@
|
||||
{ |
||||
"collectionName": "components_elements_logos", |
||||
"info": { |
||||
"name": "logos", |
||||
"displayName": "Logos", |
||||
"icon": "apple-alt" |
||||
}, |
||||
"options": {}, |
||||
"attributes": { |
||||
"title": { |
||||
"type": "string" |
||||
}, |
||||
"logo": { |
||||
"allowedTypes": [ |
||||
"images" |
||||
], |
||||
"type": "media", |
||||
"multiple": false, |
||||
"required": false |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,23 @@
|
||||
{ |
||||
"collectionName": "components_elements_notification_banners", |
||||
"info": { |
||||
"name": "NotificationBanner", |
||||
"displayName": "Notification banner", |
||||
"icon": "exclamation" |
||||
}, |
||||
"options": {}, |
||||
"attributes": { |
||||
"text": { |
||||
"type": "richtext" |
||||
}, |
||||
"type": { |
||||
"type": "enumeration", |
||||
"enum": [ |
||||
"alert", |
||||
"info", |
||||
"warning" |
||||
], |
||||
"required": true |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,31 @@
|
||||
{ |
||||
"collectionName": "components_elements_plans", |
||||
"info": { |
||||
"name": "plan", |
||||
"displayName": "Pricing plan", |
||||
"icon": "search-dollar" |
||||
}, |
||||
"options": {}, |
||||
"attributes": { |
||||
"name": { |
||||
"type": "string" |
||||
}, |
||||
"description": { |
||||
"type": "text" |
||||
}, |
||||
"features": { |
||||
"type": "component", |
||||
"repeatable": true, |
||||
"component": "elements.feature" |
||||
}, |
||||
"isRecommended": { |
||||
"type": "boolean" |
||||
}, |
||||
"price": { |
||||
"type": "decimal" |
||||
}, |
||||
"pricePeriod": { |
||||
"type": "string" |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,39 @@
|
||||
{ |
||||
"collectionName": "components_slices_testimonials", |
||||
"info": { |
||||
"name": "Testimonial", |
||||
"displayName": "Testimonial", |
||||
"icon": "user-check" |
||||
}, |
||||
"options": {}, |
||||
"attributes": { |
||||
"logo": { |
||||
"allowedTypes": [ |
||||
"images" |
||||
], |
||||
"type": "media", |
||||
"multiple": false, |
||||
"required": false |
||||
}, |
||||
"picture": { |
||||
"allowedTypes": [ |
||||
"images" |
||||
], |
||||
"type": "media", |
||||
"multiple": false, |
||||
"required": false |
||||
}, |
||||
"text": { |
||||
"type": "text" |
||||
}, |
||||
"authorName": { |
||||
"type": "string" |
||||
}, |
||||
"authorTitle": { |
||||
"type": "string" |
||||
}, |
||||
"link": { |
||||
"type": "string" |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,27 @@
|
||||
{ |
||||
"collectionName": "components_layout_footers", |
||||
"info": { |
||||
"name": "Footer", |
||||
"displayName": "Footer", |
||||
"icon": "caret-square-down" |
||||
}, |
||||
"options": {}, |
||||
"attributes": { |
||||
"logo": { |
||||
"allowedTypes": [ |
||||
"images" |
||||
], |
||||
"type": "media", |
||||
"multiple": false, |
||||
"required": false |
||||
}, |
||||
"columns": { |
||||
"type": "component", |
||||
"repeatable": true, |
||||
"component": "elements.footer-section" |
||||
}, |
||||
"smallText": { |
||||
"type": "string" |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,30 @@
|
||||
{ |
||||
"collectionName": "components_layout_navbars", |
||||
"info": { |
||||
"name": "Navbar", |
||||
"displayName": "Navbar", |
||||
"icon": "map-signs", |
||||
"description": "" |
||||
}, |
||||
"options": {}, |
||||
"attributes": { |
||||
"links": { |
||||
"type": "component", |
||||
"repeatable": true, |
||||
"component": "links.link" |
||||
}, |
||||
"button": { |
||||
"type": "component", |
||||
"repeatable": false, |
||||
"component": "links.button-link" |
||||
}, |
||||
"logo": { |
||||
"allowedTypes": [ |
||||
"images" |
||||
], |
||||
"type": "media", |
||||
"multiple": false, |
||||
"required": true |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,29 @@
|
||||
{ |
||||
"collectionName": "components_links_buttons", |
||||
"info": { |
||||
"name": "Button-link", |
||||
"displayName": "Button link", |
||||
"icon": "fingerprint", |
||||
"description": "" |
||||
}, |
||||
"options": {}, |
||||
"attributes": { |
||||
"url": { |
||||
"type": "string" |
||||
}, |
||||
"newTab": { |
||||
"type": "boolean", |
||||
"default": false |
||||
}, |
||||
"text": { |
||||
"type": "string" |
||||
}, |
||||
"type": { |
||||
"type": "enumeration", |
||||
"enum": [ |
||||
"primary", |
||||
"secondary" |
||||
] |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,22 @@
|
||||
{ |
||||
"collectionName": "components_links_simple_buttons", |
||||
"info": { |
||||
"name": "Button", |
||||
"displayName": "Button", |
||||
"icon": "fingerprint", |
||||
"description": "" |
||||
}, |
||||
"options": {}, |
||||
"attributes": { |
||||
"text": { |
||||
"type": "string" |
||||
}, |
||||
"type": { |
||||
"type": "enumeration", |
||||
"enum": [ |
||||
"primary", |
||||
"secondary" |
||||
] |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,24 @@
|
||||
{ |
||||
"collectionName": "components_links_links", |
||||
"info": { |
||||
"name": "Link", |
||||
"displayName": "Link", |
||||
"icon": "link", |
||||
"description": "" |
||||
}, |
||||
"options": {}, |
||||
"attributes": { |
||||
"url": { |
||||
"type": "string", |
||||
"required": true |
||||
}, |
||||
"newTab": { |
||||
"type": "boolean", |
||||
"default": false |
||||
}, |
||||
"text": { |
||||
"type": "string", |
||||
"required": true |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,40 @@
|
||||
{ |
||||
"collectionName": "components_meta_metadata", |
||||
"info": { |
||||
"name": "Metadata", |
||||
"displayName": "Metadata", |
||||
"icon": "robot" |
||||
}, |
||||
"options": {}, |
||||
"attributes": { |
||||
"metaTitle": { |
||||
"type": "string", |
||||
"required": true |
||||
}, |
||||
"metaDescription": { |
||||
"type": "text", |
||||
"required": true |
||||
}, |
||||
"shareImage": { |
||||
"allowedTypes": [ |
||||
"images" |
||||
], |
||||
"type": "media", |
||||
"multiple": false, |
||||
"required": false |
||||
}, |
||||
"twitterCardType": { |
||||
"type": "enumeration", |
||||
"enum": [ |
||||
"summary", |
||||
"summary_large_image", |
||||
"app", |
||||
"player" |
||||
], |
||||
"default": "summary" |
||||
}, |
||||
"twitterUsername": { |
||||
"type": "string" |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,19 @@
|
||||
{ |
||||
"collectionName": "components_slices_bottom_actions", |
||||
"info": { |
||||
"name": "BottomActions", |
||||
"displayName": "Bottom actions", |
||||
"icon": "angle-double-right" |
||||
}, |
||||
"options": {}, |
||||
"attributes": { |
||||
"title": { |
||||
"type": "string" |
||||
}, |
||||
"buttons": { |
||||
"type": "component", |
||||
"repeatable": true, |
||||
"component": "links.button-link" |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,16 @@
|
||||
{ |
||||
"collectionName": "components_slices_feature_columns_groups", |
||||
"info": { |
||||
"name": "FeatureColumnsGroup", |
||||
"displayName": "Feature columns group", |
||||
"icon": "star-of-life" |
||||
}, |
||||
"options": {}, |
||||
"attributes": { |
||||
"features": { |
||||
"type": "component", |
||||
"repeatable": true, |
||||
"component": "elements.feature-column" |
||||
} |
||||
} |
||||
} |