commit 0885e8fd9ca738a8f4079781256608241c30f351 Author: eduveks Date: Fri Dec 3 19:27:36 2021 +0000 Está é a minha primeira versão. diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..47b201a --- /dev/null +++ b/.gitignore @@ -0,0 +1,24 @@ + +node_modules/ +.DS_Store +*.log +.idea/ +.metadata/ +.vscode +package-lock.json + +/trash/* + +.Trash + +*~* +*#* + +config/_development.json +config/_production.json + +dbs/ + +public/scripts/main.* + +storage/database/ diff --git a/.netuno.json b/.netuno.json new file mode 100644 index 0000000..27134b5 --- /dev/null +++ b/.netuno.json @@ -0,0 +1,110 @@ +{ + "name": "cluar", + "description": "A ready to use solution for content management and multilingual websites using Netuno, ReactJS and Ant Design.", + "type": "app", + "config": { + "development": { + "cron": {"jobs": []}, + "settings": { + "public": {}, + "website": { + "origin": "http://localhost:3000" + }, + "uglifyjs": false + }, + "cors": [{ + "origin": "*", + "enabled": true + }], + "smtp": {}, + "name": "cluar", + "setup": { + "schema": { + "execution": true, + "auto_create": true + }, + "scripts": {"execution": true}, + "enabled": true + }, + "language": "en_GB", + "firebase": { + "app_name": "", + "database_url": "", + "key_file": "", + "listener_secret": "" + }, + "locale": "en_GB", + "remote": {}, + "commands": [ + { + "path": "ui", + "command": "npm run watch", + "enabled": true + }, + { + "path": "website", + "command": "npm start", + "enabled": true + } + ], + "db": {"default": { + "password": "", + "engine": "h2", + "port": "", + "host": "", + "name": "cluar", + "username": "" + }} + }, + "production": { + "cron": {"jobs": []}, + "settings": { + "public": {}, + "uglifyjs": false + }, + "cors": [{ + "origin": "*", + "enabled": true + }], + "smtp": {}, + "name": "cluar", + "setup": { + "schema": { + "execution": true, + "auto_create": true + }, + "scripts": {"execution": true}, + "enabled": true + }, + "language": "en_GB", + "firebase": { + "app_name": "", + "database_url": "", + "key_file": "", + "listener_secret": "" + }, + "locale": "en_GB", + "remote": {}, + "commands": [ + { + "path": "ui", + "command": "npm run watch", + "enabled": false + }, + { + "path": "website", + "command": "npm start", + "enabled": false + } + ], + "db": {"default": { + "password": "", + "engine": "h2", + "port": "", + "host": "", + "name": "cluar", + "username": "" + }} + } + } +} \ No newline at end of file diff --git a/README-pt_PT.md b/README-pt_PT.md new file mode 100644 index 0000000..1fbfdec --- /dev/null +++ b/README-pt_PT.md @@ -0,0 +1,75 @@ +# Netuno CLUAR + +Uma solução pronta para gestão de conteúdos e websites multilíngue utilizando [Netuno](https://www.netuno.org/), [ReactJS](https://reactjs.org/) e [Ant Design](https://ant.design/). + +## Requisito + +### Plataforma Netuno + +[Siga os passos aqui](https://doc.netuno.org/docs/en/installation/) + +## Instalação Automática da Aplicação + +``` +./netuno app github=netuno-org/cluar +``` + +Em seguida, crie o config.json no website, por exemplo: + +``` +cp apps/cluar/website/src/config/config-dev.json apps/cluar/website/src/config/config.json +``` + +Inicie o servidor Netuno: + +``` +./netuno server app=cluar +``` + +> Pode demorar porque é a primeira vez e a instalação do NPM será executada nas pastas `ui` e` website` dentro da pasta raiz do aplicativo. + +Não é obrigatório, mas é recomendado renomar a pasta da aplicação `(Netuno Root directory)/apps/cluar/` para o nome desejado, e não esqueça do parâmetro `name` nas configurações: + +`config/_development.json` + +`config/_production.json` + +> Lembre-se de iniciar o servidor Netuno com seu novo nome de aplicativo. + +## Clone e Instalação Manual + +Crie uma nova app com o Netuno denominada `cluar` executando (no diretório raíz do Netuno) + +`./netuno app name=cluar` + +e selecionando as configurações desejadas (tipo de base de dados, nome da base de dados e idioma da aplicação). + +Depois clone este projeto para o diretório `(Netuno Root directory)/apps/cluar/`. + +Depois instale as dependências NPM excutando + +`npm install` + +no diretório `cluar/website/`. + +## Configuração Manual + +Copie o ficheiro de amostra de configuração de serviços executando o seguinte + +`cp config/sample.json config/_development.json` (certifique-se do parâmetro `name`) + +`cp website/src/config/config-dev.json website/src/config/config.json` + +e modifique de acordo com a configuração do seu ambiente local. + +## Execução + +No diretório raíz do Netuno execute + +`./netuno server app=cluar` + +que irá iniciar o servidor de backend e depois execute no diretório `(cluar app directory)/website/` o seguinte + +`npm run start` + +para iniciar o servidor de frontend. diff --git a/README.md b/README.md new file mode 100644 index 0000000..02dafee --- /dev/null +++ b/README.md @@ -0,0 +1,75 @@ +# CLUAR CMS + +A ready to use solution for content management and multilingual websites using [Netuno](https://www.netuno.org/), [ReactJS](https://reactjs.org/) and [Ant Design](https://ant.design/). + +## Requirement + +#### Netuno Platform + +[Follow the steps here](https://doc.netuno.org/docs/en/installation/) + +## Automatic Application Install + +``` +./netuno app github=netuno-org/cluar +``` + +Then load the config.json in the website, example: + +``` +cp apps/cluar/website/src/config/config-dev.json apps/cluar/website/src/config/config.json +``` + +Start the Netuno Server: + +``` +./netuno server app=cluar +``` + +> May take while because is the first time and NPM Install will run to `ui` and `website` folder inside the application root folder. + +Is not required, but is recommended to rename the app folder `(Netuno Root directory)/apps/cluar/` to your desired name, and do not forget the `name` parameter in the configurations: + +`config/_development.json` + +`config/_production.json` + +> Remember to start the Netuno Server with your new app name. + +## Manual Clone and Setup + +Create an app with Netuno named `cluar` by running (in the Netuno root directory) + +`./netuno app name=cluar` + +and selecting the desired configurations (database type, database name and app language). + +Then clone this project to the newly created `(Netuno Root directory)/apps/cluar/` directory. + +Then install the NPM dependencies by running + +`npm install` + +in the `cluar/website/` directory. + +## Manual Configuration + +You'll need to copy the sample service config file by running + +`cp config/sample.json config/_development.json` (be sure the `name` parameter) + +`cp website/src/config/config-dev.json website/src/config/config.json` + +and modifying to match your local environment configuration. + +## Running + +In the Netuno root directory run + +`./netuno server app=cluar` + +to start the backend server and then in the `(cluar app directory)/website/` run + +`npm run start` + +to start the frontend server. diff --git a/config/_development.js b/config/_development.js new file mode 100644 index 0000000..9b3a150 --- /dev/null +++ b/config/_development.js @@ -0,0 +1,3 @@ +/* + * Development dynamic configurations is here. + */ diff --git a/config/_production.js b/config/_production.js new file mode 100644 index 0000000..3f91075 --- /dev/null +++ b/config/_production.js @@ -0,0 +1,3 @@ +/* + * Production dynamic configurations is here. + */ diff --git a/config/icon.png b/config/icon.png new file mode 100644 index 0000000..193a76b Binary files /dev/null and b/config/icon.png differ diff --git a/config/sample.json b/config/sample.json new file mode 100644 index 0000000..fdb183e --- /dev/null +++ b/config/sample.json @@ -0,0 +1,53 @@ +{ + "cron": {"jobs": []}, + "settings": { + "public": {}, + "website": { + "origin": "http://localhost:3000" + }, + "uglifyjs": false + }, + "cors": [{ + "origin": "*", + "enabled": true + }], + "smtp": {}, + "name": "cluar", + "setup": { + "schema": { + "execution": true, + "auto_create": true + }, + "scripts": {"execution": true}, + "enabled": true + }, + "language": "en_GB", + "firebase": { + "app_name": "", + "database_url": "", + "key_file": "", + "listener_secret": "" + }, + "locale": "en_GB", + "remote": {}, + "commands": [ + { + "path": "ui", + "command": "npm run watch", + "enabled": true + }, + { + "path": "website", + "command": "npm start", + "enabled": true + } + ], + "db": {"default": { + "password": "", + "engine": "h2", + "port": "", + "host": "", + "name": "cluar", + "username": "" + }} +} \ No newline at end of file diff --git a/public/images/logo-main.png b/public/images/logo-main.png new file mode 100644 index 0000000..558fa17 Binary files /dev/null and b/public/images/logo-main.png differ diff --git a/public/images/logo.png b/public/images/logo.png new file mode 100644 index 0000000..9a03917 Binary files /dev/null and b/public/images/logo.png differ diff --git a/public/styles/main.css b/public/styles/main.css new file mode 100644 index 0000000..9a9c67a --- /dev/null +++ b/public/styles/main.css @@ -0,0 +1,13 @@ +/** + +HERE YOUR CUSTOM CSS + +**/ + +.navbar, .navbar-inverse { + background-color: #5b5ce1 !important; +} + +.dev .navbar, .dev .navbar-inverse { + background-color: #333333 !important; +} diff --git a/server/actions/action/saved.js b/server/actions/action/saved.js new file mode 100644 index 0000000..45f1b35 --- /dev/null +++ b/server/actions/action/saved.js @@ -0,0 +1,4 @@ +// _core : Cluar + +Cluar.build() + diff --git a/server/actions/banner/saved.js b/server/actions/banner/saved.js new file mode 100644 index 0000000..61464ae --- /dev/null +++ b/server/actions/banner/saved.js @@ -0,0 +1,5 @@ +// _core : Cluar + +Cluar.build() + +Cluar.actionDataItemProcessWithAnImage() diff --git a/server/actions/banner_action/saved.js b/server/actions/banner_action/saved.js new file mode 100644 index 0000000..45f1b35 --- /dev/null +++ b/server/actions/banner_action/saved.js @@ -0,0 +1,4 @@ +// _core : Cluar + +Cluar.build() + diff --git a/server/actions/configuration/saved.js b/server/actions/configuration/saved.js new file mode 100644 index 0000000..824c346 --- /dev/null +++ b/server/actions/configuration/saved.js @@ -0,0 +1,3 @@ +// _core : Cluar + +Cluar.build() diff --git a/server/actions/content/saved.js b/server/actions/content/saved.js new file mode 100644 index 0000000..2046499 --- /dev/null +++ b/server/actions/content/saved.js @@ -0,0 +1,4 @@ +// _core : Cluar + +Cluar.build() +Cluar.actionDataItemProcessWithAnImage() diff --git a/server/actions/content_action/saved.js b/server/actions/content_action/saved.js new file mode 100644 index 0000000..45f1b35 --- /dev/null +++ b/server/actions/content_action/saved.js @@ -0,0 +1,4 @@ +// _core : Cluar + +Cluar.build() + diff --git a/server/actions/dictionary/saved.js b/server/actions/dictionary/saved.js new file mode 100644 index 0000000..824c346 --- /dev/null +++ b/server/actions/dictionary/saved.js @@ -0,0 +1,3 @@ +// _core : Cluar + +Cluar.build() diff --git a/server/actions/functionality/saved.js b/server/actions/functionality/saved.js new file mode 100644 index 0000000..61464ae --- /dev/null +++ b/server/actions/functionality/saved.js @@ -0,0 +1,5 @@ +// _core : Cluar + +Cluar.build() + +Cluar.actionDataItemProcessWithAnImage() diff --git a/server/actions/language/saved.js b/server/actions/language/saved.js new file mode 100644 index 0000000..824c346 --- /dev/null +++ b/server/actions/language/saved.js @@ -0,0 +1,3 @@ +// _core : Cluar + +Cluar.build() diff --git a/server/actions/listing/saved.js b/server/actions/listing/saved.js new file mode 100644 index 0000000..2046499 --- /dev/null +++ b/server/actions/listing/saved.js @@ -0,0 +1,4 @@ +// _core : Cluar + +Cluar.build() +Cluar.actionDataItemProcessWithAnImage() diff --git a/server/actions/listing_item/saved.js b/server/actions/listing_item/saved.js new file mode 100644 index 0000000..2046499 --- /dev/null +++ b/server/actions/listing_item/saved.js @@ -0,0 +1,4 @@ +// _core : Cluar + +Cluar.build() +Cluar.actionDataItemProcessWithAnImage() diff --git a/server/actions/page/saved.js b/server/actions/page/saved.js new file mode 100644 index 0000000..45f1b35 --- /dev/null +++ b/server/actions/page/saved.js @@ -0,0 +1,4 @@ +// _core : Cluar + +Cluar.build() + diff --git a/server/core/Cluar.js b/server/core/Cluar.js new file mode 100644 index 0000000..39aeb37 --- /dev/null +++ b/server/core/Cluar.js @@ -0,0 +1,511 @@ + +// _core : CluarCustomData + +class Cluar { + + static base() { + if (_env.is("dev")) { + return "website/public" + } else { + return "website/build" + } + } + + static build(settings) { + settings = settings || {} + + const data = _val.map() + + /* + * + * LANGUAGES + * + */ + const dbLanguages = _db.find( + 'language', + _val.map() + .set( + 'where', + _val.map() + .set("active", true) + ) + ) + const languages = _val.list() + for (const dbLanguage of dbLanguages) { + languages.add( + _val.map() + .set("code", dbLanguage.getString("code")) + .set("locale", dbLanguage.getString("locale")) + .set("description", dbLanguage.getString("description")) + .set("default", dbLanguage.getBoolean("default")) + ) + } + data.set("languages", languages) + + /* + * + * CONFIGURATION + * + */ + const configuration = _val.map() + const dbConfigurationWithLanguages = _db.query(` + SELECT + language.code "language", + configuration_parameter.code "code", + configuration.value + FROM language + INNER JOIN configuration ON language.id = configuration.language_id + INNER JOIN configuration_parameter ON configuration.parameter_id = configuration_parameter.id + WHERE language.active = TRUE + AND configuration.active = TRUE + AND configuration_parameter.active = TRUE + ORDER BY language.code, configuration_parameter.code + `) + for (const dbParameter of dbConfigurationWithLanguages) { + if (!configuration.has(dbParameter.getString("language"))) { + configuration.set(dbParameter.getString("language"), _val.map()) + } + configuration.getValues(dbParameter.getString("language")) + .set(dbParameter.getString("code"), dbParameter.getString("value")) + } + const dbConfigurationWithoutLanguages = _db.query(` + SELECT + configuration_parameter.code "code", + configuration.value + FROM configuration + INNER JOIN configuration_parameter ON configuration.parameter_id = configuration_parameter.id + WHERE (configuration.language_id = 0 OR configuration.language_id IS NULL) + AND configuration.active = TRUE + AND configuration_parameter.active = TRUE + ORDER BY configuration_parameter.code + `) + for (const dbParameter of dbConfigurationWithoutLanguages) { + if (!configuration.has("GENERIC")) { + configuration.set("GENERIC", _val.map()) + } + configuration.getValues("GENERIC") + .set(dbParameter.getString("code"), dbParameter.getString("value")) + } + data.set("configuration", configuration) + + /* + * + * DICTIONARY + * + */ + const dbDictionary = _db.query(` + SELECT + language.code "language", + dictionary_entry.code "code", + dictionary.value + FROM language + INNER JOIN dictionary ON dictionary.language_id = language.id + INNER JOIN dictionary_entry ON dictionary.entry_id = dictionary_entry.id + WHERE language.active = TRUE + AND dictionary.active = TRUE + AND dictionary_entry.active = TRUE + ORDER BY language.code, dictionary_entry.code + `) + const dictionary = _val.map() + for (const dbEntry of dbDictionary) { + if (!dictionary.has(dbEntry.getString("language"))) { + dictionary.set(dbEntry.getString("language"), _val.map()) + } + dictionary.getValues(dbEntry.getString("language")) + .set(dbEntry.getString("code"), dbEntry.getString("value")) + } + data.set("dictionary", dictionary) + + /* + * + * PAGES + * + */ + const dbPages = _db.query(` + SELECT + page.id, + language.code "language", + page.parent_id, + page.link, + page.title, + page.description, + page.keywords, + page.menu, + page.menu_title, + page.sorter + FROM language + INNER JOIN page ON language.id = page.language_id + INNER JOIN page_status ON page.status_id = page_status.id + WHERE language.active = TRUE + AND page.active = TRUE + AND page_status.active = TRUE + AND page_status.code = 'published' + ORDER BY language.code, page.sorter, page.link + `) + const pages = _val.map() + for (const dbPage of dbPages) { + if (!pages.has(dbPage.getString("language"))) { + pages.set(dbPage.getString("language"), _val.list()) + } + + const structure = _val.list() + + /* + * + * CONTENTS + * + */ + const dbContents = _db.query(` + SELECT + content.id, + content_type.code "type", + content.title, + content.content, + content.image, + content.image_alt, + content.image_title, + content.image_max_width, + content.sorter + FROM content + INNER JOIN content_type ON content.type_id = content_type.id + WHERE content.active = TRUE + AND content_type.active = TRUE + AND content.page_id = ${dbPage.getInt("id")} + `) + for (const dbContent of dbContents) { + structure.add( + _val.map() + .set("section", "content") + .set("type", dbContent.getString("type")) + .set("title", dbContent.getString("title")) + .set("content", dbContent.getString("content")) + .set("image", dbContent.getString("image")) + .set("image_alt", dbContent.getString("image_alt")) + .set("image_title", dbContent.getString("image_title")) + .set("image_max_width", dbContent.getString("image_max_width")) + .set("sorter", dbContent.getInt("sorter")) + .set("actions", Cluar.actions("content", dbContent.getInt("id"))) + ) + if (settings.images === true) { + Cluar.publishImage("content", dbContent.getString("image")) + } + } + + /* + * + * BANNERS + * + */ + const dbBanners = _db.query(` + SELECT + banner.id, + banner_type.code "type", + banner.title, + banner.content, + banner.image, + banner.image_alt, + banner.image_title, + banner.sorter, + banner.position_x, + banner.position_y + FROM banner + INNER JOIN banner_type ON banner.type_id = banner_type.id + WHERE banner.active = TRUE + AND banner_type.active = TRUE + AND banner.page_id = ${dbPage.getInt("id")} + `) + for (const dbBanner of dbBanners) { + structure.add( + _val.map() + .set("section", "banner") + .set("type", dbBanner.getString("type")) + .set("title", dbBanner.getString("title")) + .set("content", dbBanner.getString("content")) + .set("image", dbBanner.getString("image")) + .set("image_alt", dbBanner.getString("image_alt")) + .set("image_title", dbBanner.getString("image_title")) + .set("sorter", dbBanner.getInt("sorter")) + .set( + "position", + _val.map() + .set("x", dbBanner.getString("position_x")) + .set("y", dbBanner.getString("position_y")) + ) + .set("actions", Cluar.actions("banner", dbBanner.getInt("id"))) + ) + if (settings.images === true) { + Cluar.publishImage("banner", dbBanner.getString("image")) + } + } + + /* + * + * LISTING + * + */ + const dbListings = _db.query(` + SELECT + listing.id, + listing_type.code "type", + listing.title, + listing.image_alt, + listing.image_title, + listing.content, + listing.image, + listing.sorter + FROM listing + INNER JOIN listing_type ON listing.type_id = listing_type.id + WHERE listing.active = TRUE + AND listing_type.active = TRUE + AND listing.page_id = ${dbPage.getInt("id")} + `) + for (const dbListing of dbListings) { + const items = _val.list() + const dbItems = _db.query(` + SELECT + title, content, image, image_alt, image_title, sorter, link + FROM listing_item + WHERE listing_id = ${dbListing.getInt("id")} + `) + for (const dbItem of dbItems) { + items.add( + _val.map() + .set("section", "listing_item") + .set("title", dbItem.getString("title")) + .set("content", dbItem.getString("content")) + .set("image", dbItem.getString("image")) + .set("image_alt", dbItem.getString("image_alt")) + .set("image_title", dbItem.getString("image_title")) + .set("sorter", dbItem.getInt("sorter")) + .set("link", dbItem.getString("link")) + ) + if (settings.images === true) { + Cluar.publishImage("listing_item", dbItem.getString("image")) + } + } + structure.add( + _val.map() + .set("section", "listing") + .set("type", dbListing.getString("type")) + .set("title", dbListing.getString("title")) + .set("content", dbListing.getString("content")) + .set("image", dbListing.getString("image")) + .set("image_alt", dbListing.getString("image_alt")) + .set("image_title", dbListing.getString("image_title")) + .set("items", items) + .set("sorter", dbListing.getInt("sorter")) + ) + if (settings.images === true) { + Cluar.publishImage("listing", dbListing.getString("image")) + } + } + + /* + * + * FUNCTIONALITY + * + */ + const dbFunctionalities = _db.query(` + SELECT + functionality.id, + functionality_type.code "type", + functionality.title, + functionality.content, + functionality.image, + functionality.sorter + FROM functionality + INNER JOIN functionality_type ON functionality.type_id = functionality_type.id + WHERE functionality.active = TRUE + AND functionality_type.active = TRUE + AND functionality.page_id = ${dbPage.getInt("id")} + `) + for (const dbFunctionality of dbFunctionalities) { + structure.add( + _val.map() + .set("section", "functionality") + .set("type", dbFunctionality.getString("type")) + .set("title", dbFunctionality.getString("title")) + .set("content", dbFunctionality.getString("content")) + .set("image", dbFunctionality.getString("image")) + .set("sorter", dbFunctionality.getInt("sorter")) + ) + if (settings.images === true) { + Cluar.publishImage("functionality", dbFunctionality.getString("image")) + } + } + + structure.sort((a, b) => a.getInt("sorter") - b.getInt("sorter")) + + /* + * + * ADD PAGE + * + */ + let parentLink = "" + if (dbPage.getInt("parent_id") > 0) { + const dbParentPage = _db.findFirst( + "page", + _val.map() + .set("where", _val.map().set("id", dbPage.getInt("parent_id"))) + ) + parentLink = dbParentPage.getString("link") + } + pages.getValues(dbPage.getString("language")) + .add( + _val.map() + .set("parent", parentLink) + .set("link", dbPage.getString("link")) + .set("title", dbPage.getString("title")) + .set("description", dbPage.getString("description")) + .set("keywords", dbPage.getString("keywords")) + .set("menu", dbPage.getBoolean("menu")) + .set("menu_title", dbPage.getString("menu_title")) + .set("sorter", dbPage.getInt("sorter")) + .set("structure", structure) + ) + } + data.set("pages", pages) + + CluarCustomData(data) + + /* + * + * DATA FILE + * + */ + const file = _app.file(`${Cluar.base()}/cluarData.js`) + file.output().print(`window.cluarData = ${data.toJSON(4)};`) + + if (_app.settings.getBoolean("uglifyjs") == true) { + const osUglifyJS = _os.init() + osUglifyJS.directory(_app.folder(Cluar.base())) + const osUglifyJSResult = osUglifyJS.command(`uglifyjs -o cluarData.js -- cluarData.js`) + if (osUglifyJSResult.output() != '' && osUglifyJSResult.error() != '') { + _log.error(`UglifyJS failed:\n\tOutput: ${osUglifyJSResult.output()}\n\tError: ${osUglifyJSResult.error()}`) + } + } + + /* + * + * SITEMAP & ROBOTS + * + */ + const origin = _app.settings.getValues("website").getString("origin") + const xml = _xml.create() + const document = xml.builder().newDocument() + const tagURLSet = document.createElement("urlset") + const attrNS = document.createAttribute("xmlns") + attrNS.setValue("http://www.sitemaps.org/schemas/sitemap/0.9") + tagURLSet.setAttributeNode(attrNS) + const attrNews = document.createAttribute("xmlns:news") + attrNews.setValue("http://www.google.com/schemas/sitemap-news/0.9") + tagURLSet.setAttributeNode(attrNews) + const attrXHTML = document.createAttribute("xmlns:xhtml") + attrXHTML.setValue("http://www.w3.org/1999/xhtml") + tagURLSet.setAttributeNode(attrXHTML) + const attrMobile = document.createAttribute("xmlns:mobile") + attrMobile.setValue("http://www.sitemaps.org/schemas/sitemap/0.9") + tagURLSet.setAttributeNode(attrMobile) + const attrImage = document.createAttribute("xmlns:image") + attrImage.setValue("http://www.google.com/schemas/sitemap-image/1.1") + tagURLSet.setAttributeNode(attrImage) + const attrVideo = document.createAttribute("xmlns:video") + attrVideo.setValue("http://www.google.com/schemas/sitemap-video/1.1") + tagURLSet.setAttributeNode(attrVideo) + for (const language of languages) { + if (pages.getValues(language.getString("code")) == null) { + continue + } + for (const page of pages.getValues(language.getString("code"))) { + const tagURL = document.createElement("url") + const tagLoc = document.createElement("loc") + tagLoc.appendChild(document.createTextNode(origin +"/"+ language.getString("locale") + page.getString("link"))) + tagURL.appendChild(tagLoc) + const tagChangeFreq = document.createElement("changefreq") + tagChangeFreq.appendChild(document.createTextNode("daily")) + tagURL.appendChild(tagChangeFreq) + let priority = "0.5" + if (page.getString("link") == '/') { + priority = "1.0" + } else if (page.getString("parent") == '') { + priority = "0.7" + } + const tagPriority = document.createElement("priority") + tagPriority.appendChild(document.createTextNode(priority)) + tagURL.appendChild(tagPriority) + tagURLSet.appendChild(tagURL) + } + } + document.appendChild(tagURLSet) + xml.save(document, _app.file(`${Cluar.base()}/sitemap.xml`)) + if (!_app.file(`${Cluar.base()}/robots.txt`).exists()) { + const output = _app.file(`${Cluar.base()}/robots.txt`).output() + .println('User-agent: *') + .println('Allow: /') + .println(`Sitemap: ${origin}/sitemap.xml`) + .close() + } + } + + static publishImage(section, fileName) { + if (fileName == "") { + return; + } + const folder = _app.folder(`${Cluar.base()}/images/${section}`) + if (!folder.exists()) { + folder.mkdir() + } + _storage.database(section, "image", fileName) + .file() + .copy(`${folder.path()}/${fileName}`, true) + } + + static actionDataItemProcessWithAnImage() { + const section = _dataItem.getTable() + + const folder = _app.folder(`${Cluar.base()}/images/${section}`) + + if (!folder.exists()) { + folder.mkdir() + } + + if (_dataItem.getValues().has("image:old")) { + _app.file(`${folder.path()}/${_dataItem.getValues().getString("image:old")}`).delete() + } + + if (_dataItem.getValues().has("image:new")) { + _storage.database(section, "image", _dataItem.getValues().getString("image:new")) + .file() + .copy(`${folder.path()}/${_dataItem.getValues().getString("image:new")}`) + } + } + + static actions(section, id) { + const dbActions = _db.query(` + SELECT + action.title, + action.content, + action.indication, + action.link + FROM action + INNER JOIN ${section}_action ON ${section}_action.action_id = action.id + WHERE + action.active = true + AND ${section}_action.active = TRUE + AND ${section}_action.${section}_id = ${id} + ORDER BY ${section}_action.sorter + `) + const actions = _val.list() + for (const dbAction of dbActions) { + actions.add( + _val.map() + .set("title", dbAction.getString("title")) + .set("content", dbAction.getString("content")) + .set("indication", dbAction.getString("indication")) + .set("link", dbAction.getString("link")) + .set("sorter", dbAction.getInt("sorter")) + ) + } + return actions + } +} diff --git a/server/core/CluarCustomData.js b/server/core/CluarCustomData.js new file mode 100644 index 0000000..1feeccd --- /dev/null +++ b/server/core/CluarCustomData.js @@ -0,0 +1,4 @@ + +const CluarCustomData = (data) => { + +} diff --git a/server/core/_config.js b/server/core/_config.js new file mode 100644 index 0000000..b433ddd --- /dev/null +++ b/server/core/_config.js @@ -0,0 +1,22 @@ + +_config.set("_lang", _config.get("_lang:default")) + +if (_env.is("dev") + && (_url.equals("/") || _url.equals("/Index.netuno"))) { + _config + .set("_login:user", "dev") + .set("_login:pass", "dev") + .set("_login:auto", _req.getString("action") != "logout") +} + +/** + * DISABLE BROWSER CACHE + */ + +if (_url.download.isDownloadable()) { + if (_env.is("dev") && _url.indexOf("/public/scripts/main.js") > 0) { + _header.noCache() + } else { + _header.cache(2628000) + } +} diff --git a/server/core/_init.js b/server/core/_init.js new file mode 100644 index 0000000..1cbfacb --- /dev/null +++ b/server/core/_init.js @@ -0,0 +1,5 @@ + +/** + * FIREBASE - Set your listeners + */ +// _firebase.listener("my-test", _header.baseURL() + "/services/firebase/listener/my-test.netuno") diff --git a/server/core/_request_close.js b/server/core/_request_close.js new file mode 100644 index 0000000..e69de29 diff --git a/server/core/_request_end.js b/server/core/_request_end.js new file mode 100644 index 0000000..e69de29 diff --git a/server/core/_request_error.js b/server/core/_request_error.js new file mode 100644 index 0000000..9bab7f2 --- /dev/null +++ b/server/core/_request_error.js @@ -0,0 +1,17 @@ + +if (!_out.isClosed()) { + _out.print( + "### SERVER ERROR ###" + ) + /* + // Is insecure but the code below will print errors with more details... + _out.print( + "SERVER ERROR # " + + _error.data().getString("file") + +":"+ + _error.data().getString("line") + +" # "+ + _error.data().getString("message") + ) + */ +} diff --git a/server/core/_request_start.js b/server/core/_request_start.js new file mode 100644 index 0000000..4577349 --- /dev/null +++ b/server/core/_request_start.js @@ -0,0 +1,2 @@ + +_config.set("_script:_request_end", true) diff --git a/server/core/_request_url.js b/server/core/_request_url.js new file mode 100644 index 0000000..d726c92 --- /dev/null +++ b/server/core/_request_url.js @@ -0,0 +1,14 @@ + +// _log.info(_url.url()) + +/** + * ALLOW CORS + */ +/* +_header.response.set("Access-Control-Allow-Origin", "https://www.netuno.org") +_header.response.set("Access-Control-Allow-Methods", "GET,PUT,POST,DELETE,OPTIONS") +_header.response.set("Access-Control-Allow-Headers", "content-type,x-requested-with,authorization") +_header.response.set("Access-Control-Allow-Credentials", true) +*/ + +_url.to(_url.request()) diff --git a/server/core/_service_config.js b/server/core/_service_config.js new file mode 100644 index 0000000..a94daa7 --- /dev/null +++ b/server/core/_service_config.js @@ -0,0 +1,13 @@ + +/** + * When service need public access... + */ +if (_env.is("dev")) { + _service.allow() +} + +/* +if (_service.path == 'samples/my-service') { + _service.allow() +} +*/ diff --git a/server/core/_service_end.js b/server/core/_service_end.js new file mode 100644 index 0000000..e69de29 diff --git a/server/core/_service_error.js b/server/core/_service_error.js new file mode 100644 index 0000000..38bcefe --- /dev/null +++ b/server/core/_service_error.js @@ -0,0 +1,5 @@ + +/* +// Print error: +_log.fatal("Service "+ _service.path, _error.data().get("throwable")) +*/ \ No newline at end of file diff --git a/server/core/_service_start.js b/server/core/_service_start.js new file mode 100644 index 0000000..e69de29 diff --git a/server/package.json b/server/package.json new file mode 100644 index 0000000..b5811cf --- /dev/null +++ b/server/package.json @@ -0,0 +1,7 @@ +{ + "name": "server", + "version": "1.0.0", + "description": "Server modules dependencies.", + "author": "netuno.org", + "license": "ISC" +} diff --git a/server/setup/001-language.js b/server/setup/001-language.js new file mode 100644 index 0000000..a30bba2 --- /dev/null +++ b/server/setup/001-language.js @@ -0,0 +1,31 @@ + + +// ----------------------------------------------------------- +// +// LANGUAGE +// +// ----------------------------------------------------------- +// +// CODE GENERATED AUTOMATICALLY +// + + +_db.insertIfNotExists( + "language", + _val.init() + .set("uid", "b6804103-2f6c-4184-a431-0c8b94ea7322") + .set("code", "PT") + .set("locale", "pt") + .set("description", "Portugu\u00EAs") + .set("default", true) +); + +_db.insertIfNotExists( + "language", + _val.init() + .set("uid", "dd9ca34e-3f70-461d-a42d-234651233658") + .set("code", "EN") + .set("locale", "en") + .set("description", "English") + .set("default", false) +); diff --git a/server/setup/002-page_status.js b/server/setup/002-page_status.js new file mode 100644 index 0000000..e63bf05 --- /dev/null +++ b/server/setup/002-page_status.js @@ -0,0 +1,27 @@ + + +// ----------------------------------------------------------- +// +// PAGE_STATUS +// +// ----------------------------------------------------------- +// +// CODE GENERATED AUTOMATICALLY +// + + +_db.insertIfNotExists( + "page_status", + _val.init() + .set("uid", "e24a0cdf-c860-48f2-b597-689f165fd110") + .set("code", "published") + .set("description", "Publicada") +); + +_db.insertIfNotExists( + "page_status", + _val.init() + .set("uid", "b0389f50-4dc3-4be1-ad1e-070573a3f999") + .set("code", "draft") + .set("description", "Rascunho") +); diff --git a/server/setup/003-content_type.js b/server/setup/003-content_type.js new file mode 100644 index 0000000..c9e9a18 --- /dev/null +++ b/server/setup/003-content_type.js @@ -0,0 +1,51 @@ + + +// ----------------------------------------------------------- +// +// CONTENT_TYPE +// +// ----------------------------------------------------------- +// +// CODE GENERATED AUTOMATICALLY +// + + +_db.insertIfNotExists( + "content_type", + _val.init() + .set("uid", "5d68fe7f-bfc9-424b-98bc-50c0bfe96f2f") + .set("code", "text") + .set("description", "Texto") +); + +_db.insertIfNotExists( + "content_type", + _val.init() + .set("uid", "6638fba0-ce12-4f99-be1f-a407eea2eeab") + .set("code", "image-left") + .set("description", "Imagem \u00E0 Esquerda") +); + +_db.insertIfNotExists( + "content_type", + _val.init() + .set("uid", "03a63665-e41d-4549-bd4c-85063c978968") + .set("code", "image-right") + .set("description", "Imagem \u00E0 Direita") +); + +_db.insertIfNotExists( + "content_type", + _val.init() + .set("uid", "b01f00ae-7179-4a21-bb7b-b9ac6efb94db") + .set("code", "image-top") + .set("description", "Imagem no Topo") +); + +_db.insertIfNotExists( + "content_type", + _val.init() + .set("uid", "b79a8510-482c-43a6-9f00-3f7eb093b347") + .set("code", "image-bottom") + .set("description", "Imagem Embaixo") +); diff --git a/server/setup/004-banner_type.js b/server/setup/004-banner_type.js new file mode 100644 index 0000000..e02dba8 --- /dev/null +++ b/server/setup/004-banner_type.js @@ -0,0 +1,35 @@ + + +// ----------------------------------------------------------- +// +// BANNER_TYPE +// +// ----------------------------------------------------------- +// +// CODE GENERATED AUTOMATICALLY +// + + +_db.insertIfNotExists( + "banner_type", + _val.init() + .set("uid", "d7ca6e7d-08a7-4ec0-8d16-9e3f09cd657c") + .set("code", "default") + .set("description", "Padr\u00E3o") +); + +_db.insertIfNotExists( + "banner_type", + _val.init() + .set("uid", "fa15255a-a309-4ef5-bf72-935fd4e1c1a7") + .set("code", "secondary") + .set("description", "P\u00E1gina secund\u00E1ria") +); + +_db.insertIfNotExists( + "banner_type", + _val.init() + .set("uid", "beb0dcb5-b445-4a44-b038-522c4c544c01") + .set("code", "default-sub-banner") + .set("description", "Padr\u00E3o com Destaque") +); diff --git a/server/setup/005-functionality_type.js b/server/setup/005-functionality_type.js new file mode 100644 index 0000000..62f3c8f --- /dev/null +++ b/server/setup/005-functionality_type.js @@ -0,0 +1,35 @@ + + +// ----------------------------------------------------------- +// +// FUNCTIONALITY_TYPE +// +// ----------------------------------------------------------- +// +// CODE GENERATED AUTOMATICALLY +// + + +_db.insertIfNotExists( + "functionality_type", + _val.init() + .set("uid", "2d35fd56-0256-4fc5-a685-8eccf02f17d3") + .set("code", "contact-form") + .set("description", "Formul\u00E1rio de Contacto") +); + +_db.insertIfNotExists( + "functionality_type", + _val.init() + .set("uid", "f16671f5-39a3-483a-b6d0-8e71f4720d3d") + .set("code", "budget-request") + .set("description", "Pedido de Or\u00E7amento") +); + +_db.insertIfNotExists( + "functionality_type", + _val.init() + .set("uid", "a1d26bda-57cd-4ba1-9aa3-868714260b01") + .set("code", "map") + .set("description", "Mapa") +); diff --git a/server/setup/_end.js b/server/setup/_end.js new file mode 100644 index 0000000..45915e6 --- /dev/null +++ b/server/setup/_end.js @@ -0,0 +1,22 @@ +// _core : Cluar + +if (_db.query(`SELECT * FROM page`).size() == 0) { + _db.insertIfNotExists( + "page", + _val.init() + .set("uid", "5002a742-e092-4c0b-8536-546bd1319c7f") + .set("language_id", "dd9ca34e-3f70-461d-a42d-234651233658") + .set("parent_id", null) + .set("link", "/") + .set("title", "Home") + .set("status_id", "e24a0cdf-c860-48f2-b597-689f165fd110") + .set("description", "") + .set("social_description", "") + .set("keywords", "") + .set("social_image", "") + .set("menu", true) + .set("menu_title", "") + .set("sorter", 0) + ); + Cluar.build(); +} diff --git a/server/setup/_schema-form-01-action.js b/server/setup/_schema-form-01-action.js new file mode 100644 index 0000000..06af8e9 --- /dev/null +++ b/server/setup/_schema-form-01-action.js @@ -0,0 +1,184 @@ +/** + * + * CODE GENERATED AUTOMATICALLY + * + * THIS FILE SHOULD NOT BE EDITED BY HAND + * + */ + +_form.createIfNotExists( + _val.init() + .set("big", false) + .set("control_active", true) + .set("control_group", false) + .set("control_user", false) + .set("description", "") + .set("displayname", "A\u00E7\u00E3o") + .set("export_id", false) + .set("export_json", true) + .set("export_lastchange", false) + .set("export_uid", true) + .set("export_xls", true) + .set("export_xml", true) + .set("firebase", "") + .set("name", "action") + .set("reorder", 0) + .set("report", false) + .set("show_id", true) + .set("uid", "e431bb06-50f4-4618-abf8-c7a608a9101d") +) +_form.createComponentIfNotExists( + "e431bb06-50f4-4618-abf8-c7a608a9101d", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Conte\u00FAdo") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "content") + .set("notnull", false) + .set("primarykey", false) + .set("properties", "{}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "texthtml") + .set("uid", "85919046-2971-4cd7-87b9-314ff8b58870") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", false) + .set("whennew", true) + .set("whenresult", false) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 4) +) +_form.createComponentIfNotExists( + "e431bb06-50f4-4618-abf8-c7a608a9101d", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Indica\u00E7\u00E3o") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "indication") + .set("notnull", false) + .set("primarykey", false) + .set("properties", "{\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "text") + .set("uid", "56082061-c15b-4d9c-977b-b2258bf1d105") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 5) +) +_form.createComponentIfNotExists( + "e431bb06-50f4-4618-abf8-c7a608a9101d", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Idioma") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "language_id") + .set("notnull", true) + .set("primarykey", false) + .set("properties", "{\"MAX_COLUMN_LENGTH\":{\"default\":\"0\",\"type\":\"INTEGER\",\"value\":\"0\"},\"COLUMN_SEPARATOR\":{\"default\":\" - \",\"type\":\"LINK_SEPARATOR\",\"value\":\" - \"},\"LINK\":{\"default\":\"\",\"type\":\"LINK\",\"value\":\"language:description\"},\"SERVICE\":{\"default\":\"com/Select.netuno\",\"type\":\"STRING\",\"value\":\"com/Select.netuno\"},\"ONLY_ACTIVES\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "select") + .set("uid", "48365411-b801-4de3-93a7-16f4afd652d1") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 1) +) +_form.createComponentIfNotExists( + "e431bb06-50f4-4618-abf8-c7a608a9101d", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Liga\u00E7\u00E3o") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "link") + .set("notnull", false) + .set("primarykey", false) + .set("properties", "{\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "text") + .set("uid", "47c46f5b-cb22-40eb-ad8a-7edc84d455d3") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", false) + .set("whennew", true) + .set("whenresult", false) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 6) +) +_form.createComponentIfNotExists( + "e431bb06-50f4-4618-abf8-c7a608a9101d", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "T\u00EDtulo") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "title") + .set("notnull", false) + .set("primarykey", false) + .set("properties", "{\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "text") + .set("uid", "a307c5e4-3c1c-42b7-8f0b-12320acc2a40") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 3) +) diff --git a/server/setup/_schema-form-02-banner.js b/server/setup/_schema-form-02-banner.js new file mode 100644 index 0000000..d33a41a --- /dev/null +++ b/server/setup/_schema-form-02-banner.js @@ -0,0 +1,339 @@ +/** + * + * CODE GENERATED AUTOMATICALLY + * + * THIS FILE SHOULD NOT BE EDITED BY HAND + * + */ + +_form.createIfNotExists( + _val.init() + .set("big", false) + .set("control_active", true) + .set("control_group", false) + .set("control_user", false) + .set("description", "") + .set("displayname", "Estandarte") + .set("export_id", false) + .set("export_json", true) + .set("export_lastchange", false) + .set("export_uid", true) + .set("export_xls", true) + .set("export_xml", true) + .set("firebase", "") + .set("name", "banner") + .set("reorder", 0) + .set("report", false) + .set("show_id", true) + .set("uid", "f8a5b285-d7ba-4ec6-9c7d-ba1ca75f0757") +) +_form.createComponentIfNotExists( + "f8a5b285-d7ba-4ec6-9c7d-ba1ca75f0757", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Conte\u00FAdo") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "content") + .set("notnull", false) + .set("primarykey", false) + .set("properties", "{}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "texthtml") + .set("uid", "cc0d30ec-f38c-4198-81d5-b2343f84e989") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", false) + .set("whennew", true) + .set("whenresult", false) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 7) +) +_form.createComponentIfNotExists( + "f8a5b285-d7ba-4ec6-9c7d-ba1ca75f0757", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Imagem") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "image") + .set("notnull", true) + .set("primarykey", false) + .set("properties", "{}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "image") + .set("uid", "f267dd86-29a8-4de0-88ad-b676771db65a") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 3) +) +_form.createComponentIfNotExists( + "f8a5b285-d7ba-4ec6-9c7d-ba1ca75f0757", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Imagem Alt") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "image_alt") + .set("notnull", false) + .set("primarykey", false) + .set("properties", "{}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "textarea") + .set("uid", "be21b649-b8f3-41fb-a986-db2bbc9b8b6e") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", false) + .set("whennew", true) + .set("whenresult", false) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 5) +) +_form.createComponentIfNotExists( + "f8a5b285-d7ba-4ec6-9c7d-ba1ca75f0757", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Imagem T\u00EDtulo") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "image_title") + .set("notnull", false) + .set("primarykey", false) + .set("properties", "{\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "text") + .set("uid", "41005c54-4028-48c2-a861-6d0403a83d82") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", false) + .set("whennew", true) + .set("whenresult", false) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 4) +) +_form.createComponentIfNotExists( + "f8a5b285-d7ba-4ec6-9c7d-ba1ca75f0757", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "P\u00E1gina") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "page_id") + .set("notnull", true) + .set("primarykey", false) + .set("properties", "{\"MAX_COLUMN_LENGTH\":{\"default\":\"0\",\"type\":\"INTEGER\",\"value\":\"0\"},\"COLUMN_SEPARATOR\":{\"default\":\" - \",\"type\":\"LINK_SEPARATOR\",\"value\":\" - \"},\"LINK\":{\"default\":\"\",\"type\":\"LINK\",\"value\":\"page:language_id,title\"},\"SERVICE\":{\"default\":\"com/Select.netuno\",\"type\":\"STRING\",\"value\":\"com/Select.netuno\"},\"ONLY_ACTIVES\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "select") + .set("uid", "4fe6c98c-4657-4617-a637-1e4db09b9bd8") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 1) +) +_form.createComponentIfNotExists( + "f8a5b285-d7ba-4ec6-9c7d-ba1ca75f0757", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Posi\u00E7\u00E3o X") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "position_x") + .set("notnull", false) + .set("primarykey", false) + .set("properties", "{\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "text") + .set("uid", "8b2aeed8-6abb-4bf4-ac10-357f7e304fb8") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", false) + .set("whennew", true) + .set("whenresult", false) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 9) +) +_form.createComponentIfNotExists( + "f8a5b285-d7ba-4ec6-9c7d-ba1ca75f0757", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Posi\u00E7\u00E3o Y") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "position_y") + .set("notnull", false) + .set("primarykey", false) + .set("properties", "{\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "text") + .set("uid", "1f913571-f07c-4804-9513-270ed01c2c6b") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", false) + .set("whennew", true) + .set("whenresult", false) + .set("whenview", true) + .set("width", 0) + .set("x", 2) + .set("y", 9) +) +_form.createComponentIfNotExists( + "f8a5b285-d7ba-4ec6-9c7d-ba1ca75f0757", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Ordem") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "sorter") + .set("notnull", false) + .set("primarykey", false) + .set("properties", "{\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "textnum") + .set("uid", "946720ec-6ba9-4660-9200-70f6a668fd54") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 8) +) +_form.createComponentIfNotExists( + "f8a5b285-d7ba-4ec6-9c7d-ba1ca75f0757", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "T\u00EDtulo") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "title") + .set("notnull", true) + .set("primarykey", false) + .set("properties", "{\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "text") + .set("uid", "43746ebb-6d2f-40e7-9013-026b7b9527cd") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 6) +) +_form.createComponentIfNotExists( + "f8a5b285-d7ba-4ec6-9c7d-ba1ca75f0757", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Tipo") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "type_id") + .set("notnull", true) + .set("primarykey", false) + .set("properties", "{\"MAX_COLUMN_LENGTH\":{\"default\":\"0\",\"type\":\"INTEGER\",\"value\":\"0\"},\"COLUMN_SEPARATOR\":{\"default\":\" - \",\"type\":\"LINK_SEPARATOR\",\"value\":\" - \"},\"LINK\":{\"default\":\"\",\"type\":\"LINK\",\"value\":\"banner_type:description\"},\"SERVICE\":{\"default\":\"com/Select.netuno\",\"type\":\"STRING\",\"value\":\"com/Select.netuno\"},\"ONLY_ACTIVES\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "select") + .set("uid", "a05cdf06-4759-471b-bd9f-17b33f8b279e") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 2) +) diff --git a/server/setup/_schema-form-03-banner_action.js b/server/setup/_schema-form-03-banner_action.js new file mode 100644 index 0000000..533938b --- /dev/null +++ b/server/setup/_schema-form-03-banner_action.js @@ -0,0 +1,123 @@ +/** + * + * CODE GENERATED AUTOMATICALLY + * + * THIS FILE SHOULD NOT BE EDITED BY HAND + * + */ + +_form.createIfNotExists( + _val.init() + .set("big", false) + .set("control_active", true) + .set("control_group", false) + .set("control_user", false) + .set("description", "") + .set("displayname", "A\u00E7\u00E3o") + .set("export_id", false) + .set("export_json", true) + .set("export_lastchange", false) + .set("export_uid", true) + .set("export_xls", true) + .set("export_xml", true) + .set("firebase", "") + .set("name", "banner_action") + .set("parent_uid", "f8a5b285-d7ba-4ec6-9c7d-ba1ca75f0757") + .set("reorder", 0) + .set("report", false) + .set("show_id", true) + .set("uid", "25b3d049-5020-404c-b275-ddd94d45854d") +) +_form.createComponentIfNotExists( + "25b3d049-5020-404c-b275-ddd94d45854d", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "A\u00E7\u00E3o") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "action_id") + .set("notnull", true) + .set("primarykey", false) + .set("properties", "{\"MAX_COLUMN_LENGTH\":{\"default\":\"0\",\"type\":\"INTEGER\",\"value\":\"0\"},\"COLUMN_SEPARATOR\":{\"default\":\" - \",\"type\":\"LINK_SEPARATOR\",\"value\":\" - \"},\"LINK\":{\"default\":\"\",\"type\":\"LINK\",\"value\":\"action:language_id,title\"},\"SERVICE\":{\"default\":\"com/Select.netuno\",\"type\":\"STRING\",\"value\":\"com/Select.netuno\"},\"ONLY_ACTIVES\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "select") + .set("uid", "84a94889-bd12-46f3-a840-847e3b6ccce9") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 2) +) +_form.createComponentIfNotExists( + "25b3d049-5020-404c-b275-ddd94d45854d", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Estandarte") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "banner_id") + .set("notnull", true) + .set("primarykey", false) + .set("properties", "{\"MAX_COLUMN_LENGTH\":{\"default\":\"0\",\"type\":\"INTEGER\",\"value\":\"0\"},\"COLUMN_SEPARATOR\":{\"default\":\" - \",\"type\":\"LINK_SEPARATOR\",\"value\":\" - \"},\"LINK\":{\"default\":\"\",\"type\":\"LINK\",\"value\":\"banner:title\"},\"SERVICE\":{\"default\":\"com/Select.netuno\",\"type\":\"STRING\",\"value\":\"com/Select.netuno\"},\"ONLY_ACTIVES\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "select") + .set("uid", "3f2bba47-4de6-4033-9dd0-a987078fd319") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 1) +) +_form.createComponentIfNotExists( + "25b3d049-5020-404c-b275-ddd94d45854d", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Ordem") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "sorter") + .set("notnull", false) + .set("primarykey", false) + .set("properties", "{\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "textnum") + .set("uid", "6730f8b7-e86d-4c5b-ad3c-40b271094551") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 3) +) diff --git a/server/setup/_schema-form-04-banner_type.js b/server/setup/_schema-form-04-banner_type.js new file mode 100644 index 0000000..5b69d37 --- /dev/null +++ b/server/setup/_schema-form-04-banner_type.js @@ -0,0 +1,92 @@ +/** + * + * CODE GENERATED AUTOMATICALLY + * + * THIS FILE SHOULD NOT BE EDITED BY HAND + * + */ + +_form.createIfNotExists( + _val.init() + .set("big", false) + .set("control_active", true) + .set("control_group", false) + .set("control_user", false) + .set("description", "") + .set("displayname", "Tipo") + .set("export_id", false) + .set("export_json", true) + .set("export_lastchange", false) + .set("export_uid", true) + .set("export_xls", true) + .set("export_xml", true) + .set("firebase", "") + .set("name", "banner_type") + .set("parent_uid", "f8a5b285-d7ba-4ec6-9c7d-ba1ca75f0757") + .set("reorder", 0) + .set("report", false) + .set("show_id", true) + .set("uid", "24446fbd-870d-4ba1-9547-61ffde717ea4") +) +_form.createComponentIfNotExists( + "24446fbd-870d-4ba1-9547-61ffde717ea4", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "C\u00F3digo") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "code") + .set("notnull", true) + .set("primarykey", true) + .set("properties", "{\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "text") + .set("uid", "7aca44f5-880e-4e77-a4bd-5f2d7ba790b4") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 1) +) +_form.createComponentIfNotExists( + "24446fbd-870d-4ba1-9547-61ffde717ea4", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Descri\u00E7\u00E3o") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "description") + .set("notnull", true) + .set("primarykey", true) + .set("properties", "{\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "text") + .set("uid", "708df9bb-4907-4183-89ed-f169785d8e71") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 2) +) diff --git a/server/setup/_schema-form-05-configuration.js b/server/setup/_schema-form-05-configuration.js new file mode 100644 index 0000000..c924d97 --- /dev/null +++ b/server/setup/_schema-form-05-configuration.js @@ -0,0 +1,122 @@ +/** + * + * CODE GENERATED AUTOMATICALLY + * + * THIS FILE SHOULD NOT BE EDITED BY HAND + * + */ + +_form.createIfNotExists( + _val.init() + .set("big", false) + .set("control_active", true) + .set("control_group", false) + .set("control_user", false) + .set("description", "") + .set("displayname", "Configura\u00E7\u00E3o") + .set("export_id", false) + .set("export_json", true) + .set("export_lastchange", false) + .set("export_uid", true) + .set("export_xls", true) + .set("export_xml", true) + .set("firebase", "") + .set("name", "configuration") + .set("reorder", 0) + .set("report", false) + .set("show_id", true) + .set("uid", "67c60baf-b667-4341-9f41-7e5039f14b13") +) +_form.createComponentIfNotExists( + "67c60baf-b667-4341-9f41-7e5039f14b13", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Idioma") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "language_id") + .set("notnull", false) + .set("primarykey", false) + .set("properties", "{\"MAX_COLUMN_LENGTH\":{\"default\":\"0\",\"type\":\"INTEGER\",\"value\":\"0\"},\"COLUMN_SEPARATOR\":{\"default\":\" - \",\"type\":\"LINK_SEPARATOR\",\"value\":\" - \"},\"LINK\":{\"default\":\"\",\"type\":\"LINK\",\"value\":\"language:description\"},\"SERVICE\":{\"default\":\"com/Select.netuno\",\"type\":\"STRING\",\"value\":\"com/Select.netuno\"},\"ONLY_ACTIVES\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "select") + .set("uid", "e2d15094-ec51-4222-9559-6a8a7795ea5d") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 1) +) +_form.createComponentIfNotExists( + "67c60baf-b667-4341-9f41-7e5039f14b13", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Par\u00E2metro") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "parameter_id") + .set("notnull", true) + .set("primarykey", false) + .set("properties", "{\"MAX_COLUMN_LENGTH\":{\"default\":\"0\",\"type\":\"INTEGER\",\"value\":\"0\"},\"COLUMN_SEPARATOR\":{\"default\":\" - \",\"type\":\"LINK_SEPARATOR\",\"value\":\" - \"},\"LINK\":{\"default\":\"\",\"type\":\"LINK\",\"value\":\"configuration_parameter:description\"},\"SERVICE\":{\"default\":\"com/Select.netuno\",\"type\":\"STRING\",\"value\":\"com/Select.netuno\"},\"ONLY_ACTIVES\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "select") + .set("uid", "1e758e70-b8dc-4912-842b-5102591dbd39") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 2) +) +_form.createComponentIfNotExists( + "67c60baf-b667-4341-9f41-7e5039f14b13", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Valor") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "value") + .set("notnull", false) + .set("primarykey", false) + .set("properties", "{}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "textarea") + .set("uid", "3967f33e-1e55-4d2a-b84a-c9e3a1e2b3f9") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 3) +) diff --git a/server/setup/_schema-form-06-configuration_parameter.js b/server/setup/_schema-form-06-configuration_parameter.js new file mode 100644 index 0000000..aa93616 --- /dev/null +++ b/server/setup/_schema-form-06-configuration_parameter.js @@ -0,0 +1,92 @@ +/** + * + * CODE GENERATED AUTOMATICALLY + * + * THIS FILE SHOULD NOT BE EDITED BY HAND + * + */ + +_form.createIfNotExists( + _val.init() + .set("big", false) + .set("control_active", true) + .set("control_group", false) + .set("control_user", false) + .set("description", "") + .set("displayname", "Par\u00E2metro") + .set("export_id", false) + .set("export_json", true) + .set("export_lastchange", false) + .set("export_uid", true) + .set("export_xls", true) + .set("export_xml", true) + .set("firebase", "") + .set("name", "configuration_parameter") + .set("parent_uid", "67c60baf-b667-4341-9f41-7e5039f14b13") + .set("reorder", 0) + .set("report", false) + .set("show_id", true) + .set("uid", "5617ebed-9f41-4a31-a118-e616768b7465") +) +_form.createComponentIfNotExists( + "5617ebed-9f41-4a31-a118-e616768b7465", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "C\u00F3digo") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "code") + .set("notnull", true) + .set("primarykey", true) + .set("properties", "{\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "text") + .set("uid", "f877ef38-1323-4298-a975-07b3dc987b97") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 1) +) +_form.createComponentIfNotExists( + "5617ebed-9f41-4a31-a118-e616768b7465", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Descri\u00E7\u00E3o") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "description") + .set("notnull", true) + .set("primarykey", true) + .set("properties", "{\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "text") + .set("uid", "1b1f115c-68ca-4cf6-be7b-bf9ac3842f81") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 2) +) diff --git a/server/setup/_schema-form-07-contact.js b/server/setup/_schema-form-07-contact.js new file mode 100644 index 0000000..82d5643 --- /dev/null +++ b/server/setup/_schema-form-07-contact.js @@ -0,0 +1,184 @@ +/** + * + * CODE GENERATED AUTOMATICALLY + * + * THIS FILE SHOULD NOT BE EDITED BY HAND + * + */ + +_form.createIfNotExists( + _val.init() + .set("big", false) + .set("control_active", true) + .set("control_group", false) + .set("control_user", false) + .set("description", "") + .set("displayname", "Contacto") + .set("export_id", false) + .set("export_json", true) + .set("export_lastchange", false) + .set("export_uid", true) + .set("export_xls", true) + .set("export_xml", true) + .set("firebase", "") + .set("name", "contact") + .set("reorder", 0) + .set("report", false) + .set("show_id", true) + .set("uid", "80fe7d91-d01c-4275-abf6-4b2814d5eb33") +) +_form.createComponentIfNotExists( + "80fe7d91-d01c-4275-abf6-4b2814d5eb33", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Email") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "email") + .set("notnull", true) + .set("primarykey", false) + .set("properties", "{}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "email") + .set("uid", "8d4acbcd-df5e-4eef-9a71-fa99f180063a") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 2) +) +_form.createComponentIfNotExists( + "80fe7d91-d01c-4275-abf6-4b2814d5eb33", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Mensagem") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "message") + .set("notnull", true) + .set("primarykey", false) + .set("properties", "{}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "textarea") + .set("uid", "3a608868-8ede-496d-8aeb-ed0aa4c303f5") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", false) + .set("whennew", true) + .set("whenresult", false) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 4) +) +_form.createComponentIfNotExists( + "80fe7d91-d01c-4275-abf6-4b2814d5eb33", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Momento") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "moment") + .set("notnull", false) + .set("primarykey", false) + .set("properties", "{\"DEFAULT_CURRENT\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"true\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "datetime") + .set("uid", "95bb995e-cbff-42f8-bd02-98d6777b74c4") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", false) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 5) +) +_form.createComponentIfNotExists( + "80fe7d91-d01c-4275-abf6-4b2814d5eb33", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Nome") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "name") + .set("notnull", true) + .set("primarykey", false) + .set("properties", "{\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "text") + .set("uid", "48b46cf3-904e-441f-ad94-90bbb7f80cad") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 1) +) +_form.createComponentIfNotExists( + "80fe7d91-d01c-4275-abf6-4b2814d5eb33", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "T\u00EDtulo") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "subject") + .set("notnull", true) + .set("primarykey", false) + .set("properties", "{\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "text") + .set("uid", "c75badc5-4807-468e-aee9-d437ae758f68") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 3) +) diff --git a/server/setup/_schema-form-08-content.js b/server/setup/_schema-form-08-content.js new file mode 100644 index 0000000..dd5d3b4 --- /dev/null +++ b/server/setup/_schema-form-08-content.js @@ -0,0 +1,308 @@ +/** + * + * CODE GENERATED AUTOMATICALLY + * + * THIS FILE SHOULD NOT BE EDITED BY HAND + * + */ + +_form.createIfNotExists( + _val.init() + .set("big", false) + .set("control_active", true) + .set("control_group", false) + .set("control_user", false) + .set("description", "") + .set("displayname", "Conte\u00FAdo") + .set("export_id", false) + .set("export_json", true) + .set("export_lastchange", false) + .set("export_uid", true) + .set("export_xls", true) + .set("export_xml", true) + .set("firebase", "") + .set("name", "content") + .set("reorder", 0) + .set("report", false) + .set("show_id", true) + .set("uid", "3ed92a11-c243-4bdb-a542-bb22abca638d") +) +_form.createComponentIfNotExists( + "3ed92a11-c243-4bdb-a542-bb22abca638d", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Conte\u00FAdo") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "content") + .set("notnull", false) + .set("primarykey", false) + .set("properties", "{}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "texthtml") + .set("uid", "d1d0388a-37d4-49d4-8159-8d82c0db69cb") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", false) + .set("whennew", true) + .set("whenresult", false) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 7) +) +_form.createComponentIfNotExists( + "3ed92a11-c243-4bdb-a542-bb22abca638d", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Imagem") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "image") + .set("notnull", true) + .set("primarykey", false) + .set("properties", "{}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "image") + .set("uid", "554ca80d-0f44-4a78-bcd8-97893edbc730") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 3) +) +_form.createComponentIfNotExists( + "3ed92a11-c243-4bdb-a542-bb22abca638d", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Imagem Alt") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "image_alt") + .set("notnull", false) + .set("primarykey", false) + .set("properties", "{}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "textarea") + .set("uid", "22f3466a-19eb-4a17-8004-aa2d7f987413") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", false) + .set("whennew", true) + .set("whenresult", false) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 5) +) +_form.createComponentIfNotExists( + "3ed92a11-c243-4bdb-a542-bb22abca638d", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Largura M\u00E1xima da Imagem") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "image_max_width") + .set("notnull", false) + .set("primarykey", false) + .set("properties", "{\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "textnum") + .set("uid", "5cceccb9-0264-4ff8-9811-0809cfa08171") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", false) + .set("whennew", true) + .set("whenresult", false) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 5) +) +_form.createComponentIfNotExists( + "3ed92a11-c243-4bdb-a542-bb22abca638d", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Imagem T\u00EDtulo") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "image_title") + .set("notnull", false) + .set("primarykey", false) + .set("properties", "{\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "text") + .set("uid", "d5202e9a-ece8-45bf-90ee-300b2fccb9d4") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", false) + .set("whennew", true) + .set("whenresult", false) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 4) +) +_form.createComponentIfNotExists( + "3ed92a11-c243-4bdb-a542-bb22abca638d", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "P\u00E1gina") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "page_id") + .set("notnull", true) + .set("primarykey", false) + .set("properties", "{\"MAX_COLUMN_LENGTH\":{\"default\":\"0\",\"type\":\"INTEGER\",\"value\":\"0\"},\"COLUMN_SEPARATOR\":{\"default\":\" - \",\"type\":\"LINK_SEPARATOR\",\"value\":\" - \"},\"LINK\":{\"default\":\"\",\"type\":\"LINK\",\"value\":\"page:language_id,title\"},\"SERVICE\":{\"default\":\"com/Select.netuno\",\"type\":\"STRING\",\"value\":\"com/Select.netuno\"},\"ONLY_ACTIVES\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "select") + .set("uid", "c94c29c2-85c0-4bac-8ecf-b818edd45565") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 1) +) +_form.createComponentIfNotExists( + "3ed92a11-c243-4bdb-a542-bb22abca638d", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Ordem") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "sorter") + .set("notnull", false) + .set("primarykey", false) + .set("properties", "{\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "textnum") + .set("uid", "c1d97178-6f79-4237-b5de-f8ecee74dce2") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 8) +) +_form.createComponentIfNotExists( + "3ed92a11-c243-4bdb-a542-bb22abca638d", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "T\u00EDtulo") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "title") + .set("notnull", false) + .set("primarykey", false) + .set("properties", "{\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "text") + .set("uid", "ee0eb90d-14db-4951-bee9-c8f3e8cd9033") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 6) +) +_form.createComponentIfNotExists( + "3ed92a11-c243-4bdb-a542-bb22abca638d", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Tipo") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "type_id") + .set("notnull", true) + .set("primarykey", false) + .set("properties", "{\"MAX_COLUMN_LENGTH\":{\"default\":\"0\",\"type\":\"INTEGER\",\"value\":\"0\"},\"COLUMN_SEPARATOR\":{\"default\":\" - \",\"type\":\"LINK_SEPARATOR\",\"value\":\" - \"},\"LINK\":{\"default\":\"\",\"type\":\"LINK\",\"value\":\"content_type:description\"},\"SERVICE\":{\"default\":\"com/Select.netuno\",\"type\":\"STRING\",\"value\":\"com/Select.netuno\"},\"ONLY_ACTIVES\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "select") + .set("uid", "b08f10fd-fb79-4081-8543-2c4c78b3cfaf") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 2) +) diff --git a/server/setup/_schema-form-09-content_action.js b/server/setup/_schema-form-09-content_action.js new file mode 100644 index 0000000..39c454e --- /dev/null +++ b/server/setup/_schema-form-09-content_action.js @@ -0,0 +1,123 @@ +/** + * + * CODE GENERATED AUTOMATICALLY + * + * THIS FILE SHOULD NOT BE EDITED BY HAND + * + */ + +_form.createIfNotExists( + _val.init() + .set("big", false) + .set("control_active", true) + .set("control_group", false) + .set("control_user", false) + .set("description", "") + .set("displayname", "A\u00E7\u00E3o") + .set("export_id", false) + .set("export_json", true) + .set("export_lastchange", false) + .set("export_uid", true) + .set("export_xls", true) + .set("export_xml", true) + .set("firebase", "") + .set("name", "content_action") + .set("parent_uid", "3ed92a11-c243-4bdb-a542-bb22abca638d") + .set("reorder", 0) + .set("report", false) + .set("show_id", true) + .set("uid", "407e5448-e290-4f69-92cf-704ac2def08c") +) +_form.createComponentIfNotExists( + "407e5448-e290-4f69-92cf-704ac2def08c", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "A\u00E7\u00E3o") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "action_id") + .set("notnull", true) + .set("primarykey", false) + .set("properties", "{\"MAX_COLUMN_LENGTH\":{\"default\":\"0\",\"type\":\"INTEGER\",\"value\":\"0\"},\"COLUMN_SEPARATOR\":{\"default\":\" - \",\"type\":\"LINK_SEPARATOR\",\"value\":\" - \"},\"LINK\":{\"default\":\"\",\"type\":\"LINK\",\"value\":\"action:language_id,title\"},\"SERVICE\":{\"default\":\"com/Select.netuno\",\"type\":\"STRING\",\"value\":\"com/Select.netuno\"},\"ONLY_ACTIVES\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "select") + .set("uid", "b0f0c550-eb9d-48f8-b094-fdcb60bf5cf0") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 2) +) +_form.createComponentIfNotExists( + "407e5448-e290-4f69-92cf-704ac2def08c", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Conte\u00FAdo") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "content_id") + .set("notnull", true) + .set("primarykey", false) + .set("properties", "{\"MAX_COLUMN_LENGTH\":{\"default\":\"0\",\"type\":\"INTEGER\",\"value\":\"0\"},\"COLUMN_SEPARATOR\":{\"default\":\" - \",\"type\":\"LINK_SEPARATOR\",\"value\":\" - \"},\"LINK\":{\"default\":\"\",\"type\":\"LINK\",\"value\":\"content:page_id,title\"},\"SERVICE\":{\"default\":\"com/Select.netuno\",\"type\":\"STRING\",\"value\":\"com/Select.netuno\"},\"ONLY_ACTIVES\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "select") + .set("uid", "352c834c-8c33-4d05-81cc-0e29c7048316") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 1) +) +_form.createComponentIfNotExists( + "407e5448-e290-4f69-92cf-704ac2def08c", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Ordem") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "sorter") + .set("notnull", false) + .set("primarykey", false) + .set("properties", "{\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "textnum") + .set("uid", "74e6d9c2-cf21-45c4-9013-2d6ab4e5fb91") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 3) +) diff --git a/server/setup/_schema-form-10-content_type.js b/server/setup/_schema-form-10-content_type.js new file mode 100644 index 0000000..1ba8c7e --- /dev/null +++ b/server/setup/_schema-form-10-content_type.js @@ -0,0 +1,92 @@ +/** + * + * CODE GENERATED AUTOMATICALLY + * + * THIS FILE SHOULD NOT BE EDITED BY HAND + * + */ + +_form.createIfNotExists( + _val.init() + .set("big", false) + .set("control_active", true) + .set("control_group", false) + .set("control_user", false) + .set("description", "") + .set("displayname", "Tipo") + .set("export_id", false) + .set("export_json", true) + .set("export_lastchange", false) + .set("export_uid", true) + .set("export_xls", true) + .set("export_xml", true) + .set("firebase", "") + .set("name", "content_type") + .set("parent_uid", "3ed92a11-c243-4bdb-a542-bb22abca638d") + .set("reorder", 0) + .set("report", false) + .set("show_id", true) + .set("uid", "a2097bd8-cfaa-4e02-a2e9-f1626864f60e") +) +_form.createComponentIfNotExists( + "a2097bd8-cfaa-4e02-a2e9-f1626864f60e", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "C\u00F3digo") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "code") + .set("notnull", true) + .set("primarykey", true) + .set("properties", "{\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "text") + .set("uid", "e773f9ec-d6e5-44fb-a1f3-6d5897ee976b") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 1) +) +_form.createComponentIfNotExists( + "a2097bd8-cfaa-4e02-a2e9-f1626864f60e", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Descri\u00E7\u00E3o") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "description") + .set("notnull", true) + .set("primarykey", true) + .set("properties", "{\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "text") + .set("uid", "0d3e6c75-15b6-4d2c-86d8-fd1ff46ab3d6") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 2) +) diff --git a/server/setup/_schema-form-11-dictionary.js b/server/setup/_schema-form-11-dictionary.js new file mode 100644 index 0000000..1b35878 --- /dev/null +++ b/server/setup/_schema-form-11-dictionary.js @@ -0,0 +1,122 @@ +/** + * + * CODE GENERATED AUTOMATICALLY + * + * THIS FILE SHOULD NOT BE EDITED BY HAND + * + */ + +_form.createIfNotExists( + _val.init() + .set("big", false) + .set("control_active", true) + .set("control_group", false) + .set("control_user", false) + .set("description", "") + .set("displayname", "Dicion\u00E1rio") + .set("export_id", false) + .set("export_json", true) + .set("export_lastchange", false) + .set("export_uid", true) + .set("export_xls", true) + .set("export_xml", true) + .set("firebase", "") + .set("name", "dictionary") + .set("reorder", 0) + .set("report", false) + .set("show_id", true) + .set("uid", "d2cfcdaf-b308-4e99-bfc1-b1a5df0b3090") +) +_form.createComponentIfNotExists( + "d2cfcdaf-b308-4e99-bfc1-b1a5df0b3090", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Chave") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "entry_id") + .set("notnull", true) + .set("primarykey", false) + .set("properties", "{\"MAX_COLUMN_LENGTH\":{\"default\":\"0\",\"type\":\"INTEGER\",\"value\":\"0\"},\"COLUMN_SEPARATOR\":{\"default\":\" - \",\"type\":\"LINK_SEPARATOR\",\"value\":\" - \"},\"LINK\":{\"default\":\"\",\"type\":\"LINK\",\"value\":\"dictionary_entry:description\"},\"SERVICE\":{\"default\":\"com/Select.netuno\",\"type\":\"STRING\",\"value\":\"com/Select.netuno\"},\"ONLY_ACTIVES\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "select") + .set("uid", "898acf76-67b0-47a0-8d39-c4252b7aa9da") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 2) +) +_form.createComponentIfNotExists( + "d2cfcdaf-b308-4e99-bfc1-b1a5df0b3090", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Idioma") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "language_id") + .set("notnull", true) + .set("primarykey", false) + .set("properties", "{\"MAX_COLUMN_LENGTH\":{\"default\":\"0\",\"type\":\"INTEGER\",\"value\":\"0\"},\"COLUMN_SEPARATOR\":{\"default\":\" - \",\"type\":\"LINK_SEPARATOR\",\"value\":\" - \"},\"LINK\":{\"default\":\"\",\"type\":\"LINK\",\"value\":\"language:description\"},\"SERVICE\":{\"default\":\"com/Select.netuno\",\"type\":\"STRING\",\"value\":\"com/Select.netuno\"},\"ONLY_ACTIVES\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "select") + .set("uid", "f275d942-a381-4273-97a0-0a5c1b8f1715") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 1) +) +_form.createComponentIfNotExists( + "d2cfcdaf-b308-4e99-bfc1-b1a5df0b3090", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Valor") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "value") + .set("notnull", false) + .set("primarykey", false) + .set("properties", "{}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "texthtml") + .set("uid", "f8852180-14a1-4fb9-85e1-6292bea647cd") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 3) +) diff --git a/server/setup/_schema-form-12-dictionary_entry.js b/server/setup/_schema-form-12-dictionary_entry.js new file mode 100644 index 0000000..594c39f --- /dev/null +++ b/server/setup/_schema-form-12-dictionary_entry.js @@ -0,0 +1,92 @@ +/** + * + * CODE GENERATED AUTOMATICALLY + * + * THIS FILE SHOULD NOT BE EDITED BY HAND + * + */ + +_form.createIfNotExists( + _val.init() + .set("big", false) + .set("control_active", true) + .set("control_group", false) + .set("control_user", false) + .set("description", "") + .set("displayname", "Entrada") + .set("export_id", false) + .set("export_json", true) + .set("export_lastchange", false) + .set("export_uid", true) + .set("export_xls", true) + .set("export_xml", true) + .set("firebase", "") + .set("name", "dictionary_entry") + .set("parent_uid", "d2cfcdaf-b308-4e99-bfc1-b1a5df0b3090") + .set("reorder", 0) + .set("report", false) + .set("show_id", true) + .set("uid", "44450cdb-eece-4485-9fc7-0a38da700beb") +) +_form.createComponentIfNotExists( + "44450cdb-eece-4485-9fc7-0a38da700beb", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "C\u00F3digo") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "code") + .set("notnull", true) + .set("primarykey", true) + .set("properties", "{\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "text") + .set("uid", "a8933232-eddf-408c-81eb-802109d3e420") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 1) +) +_form.createComponentIfNotExists( + "44450cdb-eece-4485-9fc7-0a38da700beb", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Descri\u00E7\u00E3o") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "description") + .set("notnull", true) + .set("primarykey", true) + .set("properties", "{\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "text") + .set("uid", "3849a376-2052-4bfc-b867-072e5e60fcb5") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 2) +) diff --git a/server/setup/_schema-form-13-functionality.js b/server/setup/_schema-form-13-functionality.js new file mode 100644 index 0000000..b5e7911 --- /dev/null +++ b/server/setup/_schema-form-13-functionality.js @@ -0,0 +1,215 @@ +/** + * + * CODE GENERATED AUTOMATICALLY + * + * THIS FILE SHOULD NOT BE EDITED BY HAND + * + */ + +_form.createIfNotExists( + _val.init() + .set("big", false) + .set("control_active", true) + .set("control_group", false) + .set("control_user", false) + .set("description", "") + .set("displayname", "Funcionalidade") + .set("export_id", false) + .set("export_json", true) + .set("export_lastchange", false) + .set("export_uid", true) + .set("export_xls", true) + .set("export_xml", true) + .set("firebase", "") + .set("name", "functionality") + .set("reorder", 0) + .set("report", false) + .set("show_id", true) + .set("uid", "62b515ac-e376-4859-9b47-03558601a872") +) +_form.createComponentIfNotExists( + "62b515ac-e376-4859-9b47-03558601a872", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Conte\u00FAdo") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "content") + .set("notnull", false) + .set("primarykey", false) + .set("properties", "{}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "texthtml") + .set("uid", "217e236f-4a16-44e0-baad-fa995c8f574b") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", false) + .set("whennew", true) + .set("whenresult", false) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 4) +) +_form.createComponentIfNotExists( + "62b515ac-e376-4859-9b47-03558601a872", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Imagem") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "image") + .set("notnull", false) + .set("primarykey", false) + .set("properties", "{}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "image") + .set("uid", "2e3e3f7a-4ff8-4310-9205-cb65a9b96e3c") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", false) + .set("whennew", true) + .set("whenresult", false) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 5) +) +_form.createComponentIfNotExists( + "62b515ac-e376-4859-9b47-03558601a872", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "P\u00E1gina") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "page_id") + .set("notnull", true) + .set("primarykey", false) + .set("properties", "{\"MAX_COLUMN_LENGTH\":{\"default\":\"0\",\"type\":\"INTEGER\",\"value\":\"0\"},\"COLUMN_SEPARATOR\":{\"default\":\" - \",\"type\":\"LINK_SEPARATOR\",\"value\":\" - \"},\"LINK\":{\"default\":\"\",\"type\":\"LINK\",\"value\":\"page:language_id,title\"},\"SERVICE\":{\"default\":\"com/Select.netuno\",\"type\":\"STRING\",\"value\":\"com/Select.netuno\"},\"ONLY_ACTIVES\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "select") + .set("uid", "992f3db6-e508-44ea-b179-ea80ab32424f") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 1) +) +_form.createComponentIfNotExists( + "62b515ac-e376-4859-9b47-03558601a872", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Ordem") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "sorter") + .set("notnull", false) + .set("primarykey", false) + .set("properties", "{\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "textnum") + .set("uid", "e310c0e2-6abd-46a0-a57e-d5fddb13e6bb") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 6) +) +_form.createComponentIfNotExists( + "62b515ac-e376-4859-9b47-03558601a872", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "T\u00EDtulo") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "title") + .set("notnull", false) + .set("primarykey", false) + .set("properties", "{\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "text") + .set("uid", "6176e2ca-6644-4a85-a4b9-352d8594c809") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 3) +) +_form.createComponentIfNotExists( + "62b515ac-e376-4859-9b47-03558601a872", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Tipo") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "type_id") + .set("notnull", true) + .set("primarykey", false) + .set("properties", "{\"MAX_COLUMN_LENGTH\":{\"default\":\"0\",\"type\":\"INTEGER\",\"value\":\"0\"},\"COLUMN_SEPARATOR\":{\"default\":\" - \",\"type\":\"LINK_SEPARATOR\",\"value\":\" - \"},\"LINK\":{\"default\":\"\",\"type\":\"LINK\",\"value\":\"functionality_type:description\"},\"SERVICE\":{\"default\":\"com/Select.netuno\",\"type\":\"STRING\",\"value\":\"com/Select.netuno\"},\"ONLY_ACTIVES\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "select") + .set("uid", "44e6afcc-7451-4e4e-8563-26cc2a4472de") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 2) +) diff --git a/server/setup/_schema-form-14-functionality_type.js b/server/setup/_schema-form-14-functionality_type.js new file mode 100644 index 0000000..2e6ab30 --- /dev/null +++ b/server/setup/_schema-form-14-functionality_type.js @@ -0,0 +1,92 @@ +/** + * + * CODE GENERATED AUTOMATICALLY + * + * THIS FILE SHOULD NOT BE EDITED BY HAND + * + */ + +_form.createIfNotExists( + _val.init() + .set("big", false) + .set("control_active", true) + .set("control_group", false) + .set("control_user", false) + .set("description", "") + .set("displayname", "Tipo") + .set("export_id", false) + .set("export_json", true) + .set("export_lastchange", false) + .set("export_uid", true) + .set("export_xls", true) + .set("export_xml", true) + .set("firebase", "") + .set("name", "functionality_type") + .set("parent_uid", "62b515ac-e376-4859-9b47-03558601a872") + .set("reorder", 0) + .set("report", false) + .set("show_id", true) + .set("uid", "80e8f4dc-e626-4b3d-9b69-5a733789c41e") +) +_form.createComponentIfNotExists( + "80e8f4dc-e626-4b3d-9b69-5a733789c41e", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "C\u00F3digo") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "code") + .set("notnull", true) + .set("primarykey", true) + .set("properties", "{\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "text") + .set("uid", "57657c48-7af7-4981-9e12-eb287a53084b") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 1) +) +_form.createComponentIfNotExists( + "80e8f4dc-e626-4b3d-9b69-5a733789c41e", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Descri\u00E7\u00E3o") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "description") + .set("notnull", true) + .set("primarykey", true) + .set("properties", "{\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "text") + .set("uid", "0af67d9c-3f84-4cd1-b519-d3225ab68a0b") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 2) +) diff --git a/server/setup/_schema-form-15-language.js b/server/setup/_schema-form-15-language.js new file mode 100644 index 0000000..e9125e0 --- /dev/null +++ b/server/setup/_schema-form-15-language.js @@ -0,0 +1,153 @@ +/** + * + * CODE GENERATED AUTOMATICALLY + * + * THIS FILE SHOULD NOT BE EDITED BY HAND + * + */ + +_form.createIfNotExists( + _val.init() + .set("big", false) + .set("control_active", true) + .set("control_group", false) + .set("control_user", false) + .set("description", "") + .set("displayname", "Idioma") + .set("export_id", false) + .set("export_json", true) + .set("export_lastchange", false) + .set("export_uid", true) + .set("export_xls", true) + .set("export_xml", true) + .set("firebase", "") + .set("name", "language") + .set("reorder", 0) + .set("report", false) + .set("show_id", true) + .set("uid", "a9d53c5e-4d74-4616-8d5e-244f719cc5b8") +) +_form.createComponentIfNotExists( + "a9d53c5e-4d74-4616-8d5e-244f719cc5b8", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "C\u00F3digo") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "code") + .set("notnull", true) + .set("primarykey", true) + .set("properties", "{\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "text") + .set("uid", "cc1d5a25-664a-4ae6-a1ad-6f97cffa3755") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 1) +) +_form.createComponentIfNotExists( + "a9d53c5e-4d74-4616-8d5e-244f719cc5b8", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Padr\u00E3o") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "default") + .set("notnull", false) + .set("primarykey", false) + .set("properties", "{\"DEFAULT\":{\"default\":\"true\",\"type\":\"BOOLEAN\",\"value\":\"true\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "checkbox") + .set("uid", "f60c0d5a-6c4c-4f82-a4ba-bec0130c5e87") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", false) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 4) +) +_form.createComponentIfNotExists( + "a9d53c5e-4d74-4616-8d5e-244f719cc5b8", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Descri\u00E7\u00E3o") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "description") + .set("notnull", true) + .set("primarykey", true) + .set("properties", "{\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "text") + .set("uid", "0b2d04b9-c0c8-431a-a24f-5cf850589ea9") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 3) +) +_form.createComponentIfNotExists( + "a9d53c5e-4d74-4616-8d5e-244f719cc5b8", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Localiza\u00E7\u00E3o") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "locale") + .set("notnull", true) + .set("primarykey", true) + .set("properties", "{\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "text") + .set("uid", "6e2b571e-e843-43d8-8c19-f297c6e7becc") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 2) +) diff --git a/server/setup/_schema-form-16-listing.js b/server/setup/_schema-form-16-listing.js new file mode 100644 index 0000000..73b4acc --- /dev/null +++ b/server/setup/_schema-form-16-listing.js @@ -0,0 +1,277 @@ +/** + * + * CODE GENERATED AUTOMATICALLY + * + * THIS FILE SHOULD NOT BE EDITED BY HAND + * + */ + +_form.createIfNotExists( + _val.init() + .set("big", false) + .set("control_active", true) + .set("control_group", false) + .set("control_user", false) + .set("description", "") + .set("displayname", "Listagem") + .set("export_id", false) + .set("export_json", true) + .set("export_lastchange", false) + .set("export_uid", true) + .set("export_xls", true) + .set("export_xml", true) + .set("firebase", "") + .set("name", "listing") + .set("reorder", 0) + .set("report", false) + .set("show_id", true) + .set("uid", "033ca390-bda9-42ce-9867-7e234bfc6df2") +) +_form.createComponentIfNotExists( + "033ca390-bda9-42ce-9867-7e234bfc6df2", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Conte\u00FAdo") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "content") + .set("notnull", false) + .set("primarykey", false) + .set("properties", "{}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "texthtml") + .set("uid", "976fe96b-dea9-459b-acce-58cf99f9cd45") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", false) + .set("whennew", true) + .set("whenresult", false) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 4) +) +_form.createComponentIfNotExists( + "033ca390-bda9-42ce-9867-7e234bfc6df2", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Imagem") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "image") + .set("notnull", false) + .set("primarykey", false) + .set("properties", "{}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "image") + .set("uid", "1137ac3f-de6f-4d13-b969-5ae80a9b77ec") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", false) + .set("whennew", true) + .set("whenresult", false) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 5) +) +_form.createComponentIfNotExists( + "033ca390-bda9-42ce-9867-7e234bfc6df2", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Imagem Alt") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "image_alt") + .set("notnull", false) + .set("primarykey", false) + .set("properties", "{}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "textarea") + .set("uid", "ccda29b4-7894-4c91-aba3-2d02eb89a822") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", false) + .set("whennew", true) + .set("whenresult", false) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 7) +) +_form.createComponentIfNotExists( + "033ca390-bda9-42ce-9867-7e234bfc6df2", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Imagem T\u00EDtulo") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "image_title") + .set("notnull", false) + .set("primarykey", false) + .set("properties", "{\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "text") + .set("uid", "737a5c6e-0423-4a59-a101-2d1de2d3668b") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", false) + .set("whennew", true) + .set("whenresult", false) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 6) +) +_form.createComponentIfNotExists( + "033ca390-bda9-42ce-9867-7e234bfc6df2", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "P\u00E1gina") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "page_id") + .set("notnull", true) + .set("primarykey", false) + .set("properties", "{\"MAX_COLUMN_LENGTH\":{\"default\":\"0\",\"type\":\"INTEGER\",\"value\":\"0\"},\"COLUMN_SEPARATOR\":{\"default\":\" - \",\"type\":\"LINK_SEPARATOR\",\"value\":\" - \"},\"LINK\":{\"default\":\"\",\"type\":\"LINK\",\"value\":\"page:language_id,title\"},\"SERVICE\":{\"default\":\"com/Select.netuno\",\"type\":\"STRING\",\"value\":\"com/Select.netuno\"},\"ONLY_ACTIVES\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "select") + .set("uid", "cfac852a-b35f-45a1-95d7-c9627f0f54ee") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 1) +) +_form.createComponentIfNotExists( + "033ca390-bda9-42ce-9867-7e234bfc6df2", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Ordem") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "sorter") + .set("notnull", false) + .set("primarykey", false) + .set("properties", "{\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "textnum") + .set("uid", "cd09b5cf-c414-4770-87b6-c25ee79274f9") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 8) +) +_form.createComponentIfNotExists( + "033ca390-bda9-42ce-9867-7e234bfc6df2", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "T\u00EDtulo") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "title") + .set("notnull", false) + .set("primarykey", false) + .set("properties", "{\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "text") + .set("uid", "171a66b2-da44-4f23-bdd3-6fb306714131") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 3) +) +_form.createComponentIfNotExists( + "033ca390-bda9-42ce-9867-7e234bfc6df2", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Tipo") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "type_id") + .set("notnull", true) + .set("primarykey", true) + .set("properties", "{\"MAX_COLUMN_LENGTH\":{\"default\":\"0\",\"type\":\"INTEGER\",\"value\":\"0\"},\"COLUMN_SEPARATOR\":{\"default\":\" - \",\"type\":\"LINK_SEPARATOR\",\"value\":\" - \"},\"LINK\":{\"default\":\"\",\"type\":\"LINK\",\"value\":\"listing_type:description\"},\"SERVICE\":{\"default\":\"com/Select.netuno\",\"type\":\"STRING\",\"value\":\"com/Select.netuno\"},\"ONLY_ACTIVES\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "select") + .set("uid", "d8866f5a-5e7f-4409-ba25-d3a784b40bf7") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 2) +) diff --git a/server/setup/_schema-form-17-listing_item.js b/server/setup/_schema-form-17-listing_item.js new file mode 100644 index 0000000..7bc4102 --- /dev/null +++ b/server/setup/_schema-form-17-listing_item.js @@ -0,0 +1,278 @@ +/** + * + * CODE GENERATED AUTOMATICALLY + * + * THIS FILE SHOULD NOT BE EDITED BY HAND + * + */ + +_form.createIfNotExists( + _val.init() + .set("big", false) + .set("control_active", true) + .set("control_group", false) + .set("control_user", false) + .set("description", "") + .set("displayname", "Item") + .set("export_id", false) + .set("export_json", true) + .set("export_lastchange", false) + .set("export_uid", true) + .set("export_xls", true) + .set("export_xml", true) + .set("firebase", "") + .set("name", "listing_item") + .set("parent_uid", "033ca390-bda9-42ce-9867-7e234bfc6df2") + .set("reorder", 0) + .set("report", false) + .set("show_id", true) + .set("uid", "fcd6e4d2-019d-469a-8b7e-d61008a7574c") +) +_form.createComponentIfNotExists( + "fcd6e4d2-019d-469a-8b7e-d61008a7574c", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Conte\u00FAdo") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "content") + .set("notnull", false) + .set("primarykey", false) + .set("properties", "{}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "texthtml") + .set("uid", "789d7bf7-589f-4a38-aae1-d10286ee464c") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", false) + .set("whennew", true) + .set("whenresult", false) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 3) +) +_form.createComponentIfNotExists( + "fcd6e4d2-019d-469a-8b7e-d61008a7574c", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Imagem") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "image") + .set("notnull", false) + .set("primarykey", false) + .set("properties", "{}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "image") + .set("uid", "9a18909e-e916-4bf4-b85a-2fa31bcedff5") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", false) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 4) +) +_form.createComponentIfNotExists( + "fcd6e4d2-019d-469a-8b7e-d61008a7574c", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Imagem Alt") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "image_alt") + .set("notnull", false) + .set("primarykey", false) + .set("properties", "{}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "textarea") + .set("uid", "fd1430fc-71cb-4c5f-9da7-0f7a294bc759") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", false) + .set("whennew", true) + .set("whenresult", false) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 6) +) +_form.createComponentIfNotExists( + "fcd6e4d2-019d-469a-8b7e-d61008a7574c", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Imagem T\u00EDtulo") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "image_title") + .set("notnull", false) + .set("primarykey", false) + .set("properties", "{\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "text") + .set("uid", "0dad43d4-01b5-4d34-86e0-97634de533f8") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", false) + .set("whennew", true) + .set("whenresult", false) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 5) +) +_form.createComponentIfNotExists( + "fcd6e4d2-019d-469a-8b7e-d61008a7574c", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "URL") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "link") + .set("notnull", false) + .set("primarykey", false) + .set("properties", "{\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "text") + .set("uid", "8bb8bc46-e55c-46ee-985a-f8c55c3f41d7") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 8) +) +_form.createComponentIfNotExists( + "fcd6e4d2-019d-469a-8b7e-d61008a7574c", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Listagem") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "listing_id") + .set("notnull", true) + .set("primarykey", false) + .set("properties", "{\"MAX_COLUMN_LENGTH\":{\"default\":\"0\",\"type\":\"INTEGER\",\"value\":\"0\"},\"COLUMN_SEPARATOR\":{\"default\":\" - \",\"type\":\"LINK_SEPARATOR\",\"value\":\" - \"},\"LINK\":{\"default\":\"\",\"type\":\"LINK\",\"value\":\"listing:page_id,title,type_id\"},\"SERVICE\":{\"default\":\"com/Select.netuno\",\"type\":\"STRING\",\"value\":\"com/Select.netuno\"},\"ONLY_ACTIVES\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "select") + .set("uid", "45975276-137c-4597-8827-8fd6aa57a3ce") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 1) +) +_form.createComponentIfNotExists( + "fcd6e4d2-019d-469a-8b7e-d61008a7574c", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Ordem") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "sorter") + .set("notnull", false) + .set("primarykey", false) + .set("properties", "{\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "textnum") + .set("uid", "da2f5666-a55e-4fb9-a4c5-f90d46d72b04") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 7) +) +_form.createComponentIfNotExists( + "fcd6e4d2-019d-469a-8b7e-d61008a7574c", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "T\u00EDtulo") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "title") + .set("notnull", false) + .set("primarykey", false) + .set("properties", "{\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "text") + .set("uid", "d7fe8f9b-a11a-4bcc-ae9c-81e2b6898f4d") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 2) +) diff --git a/server/setup/_schema-form-18-listing_type.js b/server/setup/_schema-form-18-listing_type.js new file mode 100644 index 0000000..5a6b6b8 --- /dev/null +++ b/server/setup/_schema-form-18-listing_type.js @@ -0,0 +1,92 @@ +/** + * + * CODE GENERATED AUTOMATICALLY + * + * THIS FILE SHOULD NOT BE EDITED BY HAND + * + */ + +_form.createIfNotExists( + _val.init() + .set("big", false) + .set("control_active", true) + .set("control_group", false) + .set("control_user", false) + .set("description", "") + .set("displayname", "Tipo") + .set("export_id", false) + .set("export_json", true) + .set("export_lastchange", false) + .set("export_uid", true) + .set("export_xls", true) + .set("export_xml", true) + .set("firebase", "") + .set("name", "listing_type") + .set("parent_uid", "033ca390-bda9-42ce-9867-7e234bfc6df2") + .set("reorder", 0) + .set("report", false) + .set("show_id", true) + .set("uid", "4e7b1b9b-522f-4ea9-bbab-444625419a26") +) +_form.createComponentIfNotExists( + "4e7b1b9b-522f-4ea9-bbab-444625419a26", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "C\u00F3digo") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "code") + .set("notnull", true) + .set("primarykey", true) + .set("properties", "{\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "text") + .set("uid", "85044e64-acb0-44d4-b77e-f27d99a53fde") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 1) +) +_form.createComponentIfNotExists( + "4e7b1b9b-522f-4ea9-bbab-444625419a26", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Descri\u00E7\u00E3o") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "description") + .set("notnull", true) + .set("primarykey", true) + .set("properties", "{\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "text") + .set("uid", "7822e124-c514-4766-baa0-cf15cbe1e276") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 2) +) diff --git a/server/setup/_schema-form-19-page.js b/server/setup/_schema-form-19-page.js new file mode 100644 index 0000000..baf5887 --- /dev/null +++ b/server/setup/_schema-form-19-page.js @@ -0,0 +1,401 @@ +/** + * + * CODE GENERATED AUTOMATICALLY + * + * THIS FILE SHOULD NOT BE EDITED BY HAND + * + */ + +_form.createIfNotExists( + _val.init() + .set("big", false) + .set("control_active", true) + .set("control_group", false) + .set("control_user", false) + .set("description", "") + .set("displayname", "P\u00E1gina") + .set("export_id", false) + .set("export_json", true) + .set("export_lastchange", false) + .set("export_uid", true) + .set("export_xls", true) + .set("export_xml", true) + .set("firebase", "") + .set("name", "page") + .set("reorder", 0) + .set("report", false) + .set("show_id", true) + .set("uid", "e6c40643-e58a-40aa-b430-7a003ec65246") +) +_form.createComponentIfNotExists( + "e6c40643-e58a-40aa-b430-7a003ec65246", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Descri\u00E7\u00E3o ") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "description") + .set("notnull", false) + .set("primarykey", false) + .set("properties", "{}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "textarea") + .set("uid", "f316476d-4e73-4992-a3ac-756cb78e90dd") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", false) + .set("whennew", true) + .set("whenresult", false) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 6) +) +_form.createComponentIfNotExists( + "e6c40643-e58a-40aa-b430-7a003ec65246", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Palavras-Chave") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "keywords") + .set("notnull", false) + .set("primarykey", false) + .set("properties", "{}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "textarea") + .set("uid", "7b2a858d-363c-4a0a-bea8-77060eb1b4e6") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", false) + .set("whennew", true) + .set("whenresult", false) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 7) +) +_form.createComponentIfNotExists( + "e6c40643-e58a-40aa-b430-7a003ec65246", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Idioma") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "language_id") + .set("notnull", true) + .set("primarykey", false) + .set("properties", "{\"MAX_COLUMN_LENGTH\":{\"default\":\"0\",\"type\":\"INTEGER\",\"value\":\"0\"},\"COLUMN_SEPARATOR\":{\"default\":\" - \",\"type\":\"LINK_SEPARATOR\",\"value\":\" - \"},\"LINK\":{\"default\":\"\",\"type\":\"LINK\",\"value\":\"language:description\"},\"SERVICE\":{\"default\":\"com/Select.netuno\",\"type\":\"STRING\",\"value\":\"com/Select.netuno\"},\"ONLY_ACTIVES\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "select") + .set("uid", "6de296ef-9c9d-4f31-88c1-724b4b3a55fc") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 1) +) +_form.createComponentIfNotExists( + "e6c40643-e58a-40aa-b430-7a003ec65246", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Liga\u00E7\u00E3o") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "link") + .set("notnull", true) + .set("primarykey", false) + .set("properties", "{\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "text") + .set("uid", "0f459afe-f8e4-4a63-9f42-947bb4ce6310") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 3) +) +_form.createComponentIfNotExists( + "e6c40643-e58a-40aa-b430-7a003ec65246", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Menu") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "menu") + .set("notnull", false) + .set("primarykey", false) + .set("properties", "{\"DEFAULT\":{\"default\":\"true\",\"type\":\"BOOLEAN\",\"value\":\"true\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "checkbox") + .set("uid", "8c8bc1c2-9d85-45e0-b337-3737bcc26dfb") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", false) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 9) +) +_form.createComponentIfNotExists( + "e6c40643-e58a-40aa-b430-7a003ec65246", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Menu T\u00EDtulo") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "menu_title") + .set("notnull", false) + .set("primarykey", false) + .set("properties", "{\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "text") + .set("uid", "4b343c09-9526-4c2d-8140-057a00fe105a") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", false) + .set("whennew", true) + .set("whenresult", false) + .set("whenview", true) + .set("width", 0) + .set("x", 2) + .set("y", 9) +) +_form.createComponentIfNotExists( + "e6c40643-e58a-40aa-b430-7a003ec65246", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Pai") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "parent_id") + .set("notnull", false) + .set("primarykey", false) + .set("properties", "{\"MAX_COLUMN_LENGTH\":{\"default\":\"0\",\"type\":\"INTEGER\",\"value\":\"0\"},\"COLUMN_SEPARATOR\":{\"default\":\" - \",\"type\":\"LINK_SEPARATOR\",\"value\":\" - \"},\"LINK\":{\"default\":\"\",\"type\":\"LINK\",\"value\":\"page:language_id,title\"},\"SERVICE\":{\"default\":\"com/Select.netuno\",\"type\":\"STRING\",\"value\":\"com/Select.netuno\"},\"ONLY_ACTIVES\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "select") + .set("uid", "5c704654-ef1f-4b7e-8355-981cdafd3c03") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 2) +) +_form.createComponentIfNotExists( + "e6c40643-e58a-40aa-b430-7a003ec65246", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Descri\u00E7\u00E3o para as Redes Sociais") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "social_description") + .set("notnull", false) + .set("primarykey", false) + .set("properties", "{}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "textarea") + .set("uid", "b7436b06-2cf2-4ea7-9a49-1104de655708") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", false) + .set("whennew", true) + .set("whenresult", false) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 6) +) +_form.createComponentIfNotExists( + "e6c40643-e58a-40aa-b430-7a003ec65246", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Imagem para as Redes Sociais") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "social_image") + .set("notnull", false) + .set("primarykey", false) + .set("properties", "{}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "image") + .set("uid", "4b5ff20a-9ec4-4597-9945-9db7757d76d6") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", false) + .set("whennew", true) + .set("whenresult", false) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 8) +) +_form.createComponentIfNotExists( + "e6c40643-e58a-40aa-b430-7a003ec65246", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Ordem") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "sorter") + .set("notnull", false) + .set("primarykey", false) + .set("properties", "{\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "textnum") + .set("uid", "fd801ce6-6f65-455d-87e8-415690e83a35") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", false) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 10) +) +_form.createComponentIfNotExists( + "e6c40643-e58a-40aa-b430-7a003ec65246", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Estado") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "status_id") + .set("notnull", true) + .set("primarykey", false) + .set("properties", "{\"MAX_COLUMN_LENGTH\":{\"default\":\"0\",\"type\":\"INTEGER\",\"value\":\"0\"},\"COLUMN_SEPARATOR\":{\"default\":\" - \",\"type\":\"LINK_SEPARATOR\",\"value\":\" - \"},\"LINK\":{\"default\":\"\",\"type\":\"LINK\",\"value\":\"page_status:description\"},\"SERVICE\":{\"default\":\"com/Select.netuno\",\"type\":\"STRING\",\"value\":\"com/Select.netuno\"},\"ONLY_ACTIVES\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "select") + .set("uid", "88b60a46-63c0-4255-a857-2d6adfb78a5d") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 5) +) +_form.createComponentIfNotExists( + "e6c40643-e58a-40aa-b430-7a003ec65246", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "T\u00EDtulo") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "title") + .set("notnull", true) + .set("primarykey", false) + .set("properties", "{\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "text") + .set("uid", "a7345f62-e84c-4b14-9e98-f4c4a3350200") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 4) +) diff --git a/server/setup/_schema-form-20-page_status.js b/server/setup/_schema-form-20-page_status.js new file mode 100644 index 0000000..4f79eb2 --- /dev/null +++ b/server/setup/_schema-form-20-page_status.js @@ -0,0 +1,92 @@ +/** + * + * CODE GENERATED AUTOMATICALLY + * + * THIS FILE SHOULD NOT BE EDITED BY HAND + * + */ + +_form.createIfNotExists( + _val.init() + .set("big", false) + .set("control_active", true) + .set("control_group", false) + .set("control_user", false) + .set("description", "") + .set("displayname", "Estado") + .set("export_id", false) + .set("export_json", true) + .set("export_lastchange", false) + .set("export_uid", true) + .set("export_xls", true) + .set("export_xml", true) + .set("firebase", "") + .set("name", "page_status") + .set("parent_uid", "e6c40643-e58a-40aa-b430-7a003ec65246") + .set("reorder", 0) + .set("report", false) + .set("show_id", true) + .set("uid", "814c194a-1d3a-4ea4-9855-bbad176f2c36") +) +_form.createComponentIfNotExists( + "814c194a-1d3a-4ea4-9855-bbad176f2c36", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "C\u00F3digo") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "code") + .set("notnull", true) + .set("primarykey", true) + .set("properties", "{\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "text") + .set("uid", "781ab6ce-d9fd-4998-a268-dd8db79f1e52") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 1) +) +_form.createComponentIfNotExists( + "814c194a-1d3a-4ea4-9855-bbad176f2c36", + _val.init() + .set("colspan", 0) + .set("description", "") + .set("displayname", "Descri\u00E7\u00E3o") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "description") + .set("notnull", true) + .set("primarykey", true) + .set("properties", "{\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "text") + .set("uid", "9f0c284b-70b1-4aad-82c1-32b88a140f09") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 2) +) diff --git a/server/setup/_start.js b/server/setup/_start.js new file mode 100644 index 0000000..e69de29 diff --git a/server/templates/dashboard.html b/server/templates/dashboard.html new file mode 100644 index 0000000..85a67fa --- /dev/null +++ b/server/templates/dashboard.html @@ -0,0 +1,24 @@ + +
+
+ +
+

+ _{&lang=netuno.main.dashboard.title} +

+
+ + +
+

+ _{&lang=netuno.main.dashboard.welcome_netuno} +

+

_{&lang=netuno.main.dashboard.you_not_form}

+

_{&lang=netuno.main.dashboard.you_can_start_by_clicking_top_bar}

+
+ +
+
+
+ +
diff --git a/server/templates/dev/dashboard.html b/server/templates/dev/dashboard.html new file mode 100644 index 0000000..6d3b631 --- /dev/null +++ b/server/templates/dev/dashboard.html @@ -0,0 +1,31 @@ + +
+
+
+

+ _{&lang=netuno.main.dashboard.title} +

+

_{&lang=netuno.main.dashboard.description}

+
+
+

+ _{&lang=netuno.main.dashboard.welcome_netuno} +

+

_{&lang=netuno.dev.main.you_not_form}

+

_{&lang=netuno.dev.main.you_can_start_by_clicking_top_bar}

+
+ +
+ #macro(listFormItems $items) + + #end + #listFormItems($data.get('menu').get('forms')) +
+
diff --git a/server/templates/scripts.html b/server/templates/scripts.html new file mode 100644 index 0000000..12fb56d --- /dev/null +++ b/server/templates/scripts.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/server/templates/scripts_dev.html b/server/templates/scripts_dev.html new file mode 100644 index 0000000..e69de29 diff --git a/server/templates/scripts_login.html b/server/templates/scripts_login.html new file mode 100644 index 0000000..e69de29 diff --git a/server/templates/styles.html b/server/templates/styles.html new file mode 100644 index 0000000..9698d22 --- /dev/null +++ b/server/templates/styles.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/server/templates/styles_dev.html b/server/templates/styles_dev.html new file mode 100644 index 0000000..9698d22 --- /dev/null +++ b/server/templates/styles_dev.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/server/templates/styles_login.html b/server/templates/styles_login.html new file mode 100644 index 0000000..e69de29 diff --git a/storage/filesystem/private/info.txt b/storage/filesystem/private/info.txt new file mode 100644 index 0000000..0b8da6f --- /dev/null +++ b/storage/filesystem/private/info.txt @@ -0,0 +1,4 @@ + +Secure data files comes here... + +Only accessible for logged users! diff --git a/storage/filesystem/public/info.txt b/storage/filesystem/public/info.txt new file mode 100644 index 0000000..55f3ca4 --- /dev/null +++ b/storage/filesystem/public/info.txt @@ -0,0 +1,2 @@ + +Public storage files comes here... diff --git a/storage/filesystem/server/info.txt b/storage/filesystem/server/info.txt new file mode 100644 index 0000000..33a81aa --- /dev/null +++ b/storage/filesystem/server/info.txt @@ -0,0 +1,4 @@ + +Secure data files comes here... + +Only accessible through server side! diff --git a/test.md b/test.md new file mode 100644 index 0000000..afc27c4 --- /dev/null +++ b/test.md @@ -0,0 +1,3 @@ + +# Test Branch + diff --git a/ui/.babelrc b/ui/.babelrc new file mode 100644 index 0000000..59da6a9 --- /dev/null +++ b/ui/.babelrc @@ -0,0 +1,9 @@ +{ + "presets": [ + "@babel/preset-env", + "@babel/preset-react" + ], + "plugins": [ + ["import", { "libraryName": "antd", "style": true } ] + ] +} diff --git a/ui/.gitignore b/ui/.gitignore new file mode 100644 index 0000000..ae15f2b --- /dev/null +++ b/ui/.gitignore @@ -0,0 +1,18 @@ + +node_modules/ + +.DS_Store +*.log +.idea/ +.metadata/ +.vscode +package-lock.json +yarn.lock + +.Trash + +*~* +*#* + + + diff --git a/ui/README.md b/ui/README.md new file mode 100644 index 0000000..2605aa2 --- /dev/null +++ b/ui/README.md @@ -0,0 +1,24 @@ + +### Install Packages + +`npm install` + +### Watch changes and auto recompile + +`npm run watch` + +### Installation requirements + +On Windows with an Administrator terminal, run: + +``` +npm install --global --production windows-build-tools +npm install --global node-gyp +``` + +With others Python version, then configure the Python 2.7 path: + +``` +node-gyp --python /path/to/python2.7 +npm config set python /path/to/executable/python2.7 +``` diff --git a/ui/package.json b/ui/package.json new file mode 100644 index 0000000..c226ade --- /dev/null +++ b/ui/package.json @@ -0,0 +1,36 @@ +{ + "name": "public", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "build": "webpack --mode production", + "watch": "webpack --mode development --watch" + }, + "keywords": [], + "author": "", + "license": "ISC", + "devDependencies": { + "@babel/core": "^7.9.0", + "@babel/plugin-proposal-object-rest-spread": "^7.9.0", + "@babel/preset-env": "^7.9.0", + "@babel/preset-react": "^7.9.4", + "babel-loader": "^8.1.0", + "babel-plugin-import": "^1.13.0", + "less": "^3.11.1", + "less-loader": "^5.0.0", + "css-loader": "^3.4.2", + "style-loader": "^1.1.3", + "prop-types": "^15.7.2", + "react": "^16.13.1", + "react-dom": "^16.13.1", + "webpack": "^4.42.1", + "webpack-cli": "^3.3.11" + }, + "dependencies": { + "antd": "^4.1.0", + "chart.js": "^2.9.3", + "react-chartjs-2": "^2.9.0" + } +} diff --git a/ui/src/components/MyButton/index.jsx b/ui/src/components/MyButton/index.jsx new file mode 100644 index 0000000..1b0d9ed --- /dev/null +++ b/ui/src/components/MyButton/index.jsx @@ -0,0 +1,17 @@ +import React from "react"; +import PropTypes from "prop-types"; +import Button from 'antd/lib/button'; + +const MyButton = ({ buttonRef, text, click }) => ( +
+); + +MyButton.propTypes = { + buttonRef: PropTypes.shape({ current: PropTypes.instanceOf(Element) }), + text: PropTypes.string.isRequired, + click: PropTypes.func.isRequired +}; + +export default MyButton; diff --git a/ui/src/containers/DashboardContainer/index.jsx b/ui/src/containers/DashboardContainer/index.jsx new file mode 100644 index 0000000..e1b453c --- /dev/null +++ b/ui/src/containers/DashboardContainer/index.jsx @@ -0,0 +1,88 @@ +import React, { Component } from "react"; + +import MyButton from "../../components/MyButton/index.jsx"; + +import "./index.less"; + +export default class DashboardContainer extends Component { + constructor(props) { + super(props); + this.state = { + counter: 0 + }; + this.button = React.createRef(); + this.click = this.click.bind(this); + } + + componentWillMount() { + /* + // Basic sample of the service call: + fetch('/services/my-test.netuno', { + credentials: 'include' + }).then((response) => { + return response.json(); + }).then((json) => { + // json...; + }); + */ + + /* + // Better sample of the recommended way to call services: + const fail = ()=> { + this.setState({ loading: false }); + notification["error"]({ + message: 'Error', + description: 'Data loading error...', + style: { + marginTop: 100, + } + }); + }; + netuno.service({ + url: '/services/my-data-service', + method: 'POST', + credentials: 'include', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify({ + param1: 'value1', + param2: 'value2' + }), + success: (response)=> { + console.log(response); + if (response.json) { + this.setState({ + loading: false, + data: response.json + }); + } else { + fail(); + } + }, + fail: ()=> { + fail(); + } + }); + */ + } + + componentDidUpdate(prevProps, prevState, snapshot) { + $(this.button.current).fadeOut(250).fadeIn(250); + } + + click() { + this.setState({ counter: this.state.counter + 1 }); + } + + render() { + const { counter } = this.state; + return ( +
+
+ +
+
+ ); + } +} diff --git a/ui/src/containers/DashboardContainer/index.less b/ui/src/containers/DashboardContainer/index.less new file mode 100644 index 0000000..da3b33f --- /dev/null +++ b/ui/src/containers/DashboardContainer/index.less @@ -0,0 +1,8 @@ + +.my-dashboard { + width: 100%; + &__button { + padding: 80px; + text-align: center; + } +} diff --git a/ui/src/index.jsx b/ui/src/index.jsx new file mode 100644 index 0000000..b20d443 --- /dev/null +++ b/ui/src/index.jsx @@ -0,0 +1,42 @@ +import React from "react"; +import ReactDOM from "react-dom"; +import DashboardContainer from "./containers/DashboardContainer/index.jsx"; + +const dashboardDiv = document.getElementById("app-dashboard"); + +const dashboardContainer = dashboardDiv ? ReactDOM.render(, dashboardDiv) : false; + +netuno.addNavigationLoad(() => { + $('[netuno-navigation]').find('a').on('netuno:click', (e)=> { + const link = $(e.target); + if (dashboardContainer && link.is('[netuno-navigation-dashboard]')) { + // Menu > Dashboard > Clicked! + } + }); +}); + +netuno.addContentLoad((container) => { + // When any content is loaded dinamically this is executed... + if (container.is('[netuno-form-search="YOUR_FORM_NAME"]')) { + // When search page is loaded... + } else if (container.is('[netuno-form-edit="YOUR_FORM_NAME"]')) { + // When form edit is loaded... + } +}); + +netuno.addPageLoad(() => { + // When page is loaded... + let modal = $('#app-dashboard-modal-form'); + modal.on('hidden.bs.modal', ()=> { + modal.find('[netuno-form-edit]').empty(); + }); + $('#app-dashboard-modal-form-button').on('click', ()=> { + modal.modal('show'); + netuno.loadFormEdit(modal.find('[netuno-form]')); + }); + modal.find('[netuno-form]').on('netuno:save', ()=> { + modal.modal('hide'); + }); +}); + + diff --git a/ui/src/styles/main.less b/ui/src/styles/main.less new file mode 100644 index 0000000..f441dd6 --- /dev/null +++ b/ui/src/styles/main.less @@ -0,0 +1,4 @@ + +/*** GLOBAL CSS ***/ + +@import '~antd/dist/antd'; diff --git a/ui/webpack.config.js b/ui/webpack.config.js new file mode 100644 index 0000000..b0a83b7 --- /dev/null +++ b/ui/webpack.config.js @@ -0,0 +1,81 @@ + +const path = require('path'); + +module.exports = { + entry: [ './src/index.jsx', './src/styles/main.less' ], + devtool: "source-map", + output: { + path: __dirname +'/../public/scripts', + filename: 'main.js' + }, + module: { + rules: [ + { + test: /\.jsx$/, + include: [ + path.resolve(__dirname, 'src') + ], + exclude: /node_modules/, + use: [{ + loader: 'babel-loader' + }] + }, + { + test: /\.js$/, + include: [ + path.resolve(__dirname, 'src') + ], + exclude: /node_modules/, + use: [{ + loader: 'babel-loader' + }] + }, + { + test: /\.less$/, + include: [ + path.resolve(__dirname, 'src') + ], + exclude: /node_modules/, + use: [ + { + loader: 'style-loader' // creates style nodes from JS strings + }, + { + loader: 'css-loader', // translates CSS into CommonJ, + options: { + sourceMap: true/*, + modules: { + mode: 'local', + localIdentName: "[local]___[hash:base64:5]", + context: path.resolve(__dirname, 'src'), + hashPrefix: 'app', + }*/ + } + }, + { + loader: 'less-loader', // compiles Less to CSS + options: { + modifyVars: { + 'primary-color': '#5b5ce1', + 'link-color': '#5b5ce1', + 'border-radius-base': '5px' + }, + javascriptEnabled: true + } + } + ] + }, + { + test: /\.css$/, + include: [ + path.resolve(__dirname, 'src') + ], + exclude: /node_modules/, + use: [ + 'style-loader', + 'css-loader' + ] + } + ] + } +}; diff --git a/website/.gitignore b/website/.gitignore new file mode 100644 index 0000000..ba989fd --- /dev/null +++ b/website/.gitignore @@ -0,0 +1,43 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# production +/build + +# misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +package-lock.json +yarn.lock + +*~* +*#* + +src/config/config.json + +build/cluarData.js +public/cluarData.js + +public/sitemap.xml + +public/images/banner/ +public/images/content/ +public/images/functionality/ +public/images/listing/ +public/images/listing_item/ + diff --git a/website/README.md b/website/README.md new file mode 100644 index 0000000..9c40dcd --- /dev/null +++ b/website/README.md @@ -0,0 +1,68 @@ +This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). + +## Available Scripts + +In the project directory, you can run: + +### `yarn start` + +Runs the app in the development mode.
+Open [http://localhost:3000](http://localhost:3000) to view it in the browser. + +The page will reload if you make edits.
+You will also see any lint errors in the console. + +### `yarn test` + +Launches the test runner in the interactive watch mode.
+See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information. + +### `yarn build` + +Builds the app for production to the `build` folder.
+It correctly bundles React in production mode and optimizes the build for the best performance. + +The build is minified and the filenames include the hashes.
+Your app is ready to be deployed! + +See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information. + +### `yarn eject` + +**Note: this is a one-way operation. Once you `eject`, you can’t go back!** + +If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project. + +Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own. + +You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it. + +## Learn More + +You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started). + +To learn React, check out the [React documentation](https://reactjs.org/). + +### Code Splitting + +This section has moved here: https://facebook.github.io/create-react-app/docs/code-splitting + +### Analyzing the Bundle Size + +This section has moved here: https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size + +### Making a Progressive Web App + +This section has moved here: https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app + +### Advanced Configuration + +This section has moved here: https://facebook.github.io/create-react-app/docs/advanced-configuration + +### Deployment + +This section has moved here: https://facebook.github.io/create-react-app/docs/deployment + +### `yarn build` fails to minify + +This section has moved here: https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify diff --git a/website/build.sh b/website/build.sh new file mode 100755 index 0000000..8c5999f --- /dev/null +++ b/website/build.sh @@ -0,0 +1,19 @@ +#!/bin/sh + +if [ -f "build/cluarData.js" ]; then + mv build/cluarData.js .cluarData.js +fi + +cp src/config-prod.json src/config.json + +rsync -av build/images/ public/images/ + +yarn install + +yarn build + +cp src/config-dev.json src/config.json + +if [ -f ".cluarData.js" ]; then + mv .cluarData.js build/cluarData.js +fi diff --git a/website/config-overrides.js b/website/config-overrides.js new file mode 100644 index 0000000..5e2ce83 --- /dev/null +++ b/website/config-overrides.js @@ -0,0 +1,21 @@ +const { override, fixBabelImports, addLessLoader } = require('customize-cra'); + +module.exports = override( + fixBabelImports('import', { + libraryName: 'antd', + libraryDirectory: 'es', + style: true, + }), + addLessLoader({ + lessOptions: { + javascriptEnabled: true, + modifyVars: { + '@primary-color': '#5b5ce1', + '@layout-header-background': '#ffffff', + '@font-size-base': '16px', + '@border-radius-base': '20px' + }, + }, + }), +); + diff --git a/website/package.json b/website/package.json new file mode 100644 index 0000000..6df9b0d --- /dev/null +++ b/website/package.json @@ -0,0 +1,50 @@ +{ + "name": "cluar", + "version": "0.1.0", + "private": true, + "dependencies": { + "@animated-burgers/burger-slip": "^1.1.2", + "@ant-design/icons": "^4.2.1", + "@netuno/service-client": "^1.0.10", + "@testing-library/jest-dom": "^4.2.4", + "@testing-library/react": "^9.3.2", + "@testing-library/user-event": "^7.1.2pm i", + "antd": "^4.4.1", + "babel-plugin-import": "^1.13.0", + "classnames": "^2.2.6", + "customize-cra": "^1.0.0", + "import": "0.0.6", + "less-loader": "^6.2.0", + "react": "^16.13.1", + "react-app-rewired": "^2.1.6", + "react-dom": "^16.13.1", + "react-ga": "^3.3.0", + "react-map-gl": "^5.2.7", + "react-router-dom": "^5.2.0", + "react-scripts": "3.4.1", + "react-scroll-parallax": "^2.3.4", + "sal.js": "^0.8.1", + "sprintf-js": "^1.1.2" + }, + "scripts": { + "start": "react-app-rewired start", + "build": "react-app-rewired build", + "test": "react-app-rewired test", + "eject": "react-app-rewired eject" + }, + "eslintConfig": { + "extends": "react-app" + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + } +} diff --git a/website/public/favicon.ico b/website/public/favicon.ico new file mode 100644 index 0000000..6e87c31 Binary files /dev/null and b/website/public/favicon.ico differ diff --git a/website/public/images/logo.png b/website/public/images/logo.png new file mode 100644 index 0000000..875776a Binary files /dev/null and b/website/public/images/logo.png differ diff --git a/website/public/index.html b/website/public/index.html new file mode 100644 index 0000000..75cf204 --- /dev/null +++ b/website/public/index.html @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/website/public/manifest.json b/website/public/manifest.json new file mode 100644 index 0000000..337383a --- /dev/null +++ b/website/public/manifest.json @@ -0,0 +1,15 @@ +{ + "short_name": "Netuno CLUAR", + "name": "Netuno CLUAR App", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#ffffff", + "background_color": "#ffffff" +} diff --git a/website/public/robots.txt b/website/public/robots.txt new file mode 100644 index 0000000..e9e57dc --- /dev/null +++ b/website/public/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/website/src/App.js b/website/src/App.js new file mode 100644 index 0000000..06ed796 --- /dev/null +++ b/website/src/App.js @@ -0,0 +1,206 @@ +import React, { useState, useEffect } from 'react'; +import { Layout, Menu, Row, Col } from 'antd'; +import { GlobalOutlined, PhoneOutlined, HomeOutlined, MailOutlined } from '@ant-design/icons'; +import Burger from '@animated-burgers/burger-slip'; +import '@animated-burgers/burger-slip/dist/styles.css'; +import classNames from 'classnames'; +import { + BrowserRouter as Router, + Switch, + Route, + Link, + Redirect +} from "react-router-dom"; + +import Analytics from './common/Analytics'; +import Cluar from './common/Cluar'; +import Builder from './common/Builder'; +import Cookies from './components/Cookies'; +import NotFound from './pages/NotFound'; + +import './styles/App.less'; + +const { Header, Content, Footer } = Layout; +const { SubMenu } = Menu; + +export default () => { + + const storageLocale = window.localStorage.getItem('locale'); + if (storageLocale == null) { + window.localStorage.setItem('locale', Cluar.currentLanguage().locale); + } else { + Cluar.changeLanguage(storageLocale); + } + + const [burgerMenu, setBurgerMenu] = useState(false); + const [activeMenu, setActiveMenu] = useState('main'); + const [locale, setLocale] = useState(Cluar.currentLanguage().locale); + + const handleMenuClick = (selectMenu) => { + setBurgerMenu(false); + if (selectMenu) { + setActiveMenu(selectMenu); + } + window.scrollTo(0, 0); + }; + + const menuLanguages = []; + const menu = []; + const subMenuKeys = []; + const routes = []; + for (const language of Cluar.languages()) { + if (!Cluar.pages()[language.code]) { + continue; + } + if (language.code !== Cluar.currentLanguage().code) { + menuLanguages.push( + { + Cluar.changeLanguage(language.locale); + window.localStorage.setItem('locale', Cluar.currentLanguage().locale); + window.location.href = `/${language.locale}/`; + }}>{language.description} + ); + } + + const buildMenu = (page) => { + if (page.menu && language.code === Cluar.currentLanguage().code) { + const key = `${page.link}`; + if (Cluar.pages()[language.code].find((p) => p.menu && p.parent === page.link)) { + subMenuKeys.push(key); + return ( + handleMenuClick(key)}> + {page.title} + + }> + { Cluar.pages()[language.code].filter((p) => p.menu && p.parent === page.link).map((p) => buildMenu(p))} + + ); + } else { + return ( + + handleMenuClick(key)}> + {page.title} + + + ); + } + } + return null; + }; + + const subroutes = []; + for (const page of Cluar.pages()[language.code]) { + if (page.menu && page.parent === "" && language.code === Cluar.currentLanguage().code) { + menu.push( + buildMenu(page) + ); + } + subroutes.push( + { + return ; + }} /> + ); + } + routes.push( + + {subroutes} + + ); + } + + useEffect(() => { + }, []); + + return ( + + { Analytics.init() && } +
+ +
+
+ handleMenuClick('/')}> + logo + +
+
+ + {menu} + +
+
+ + {menu} + +
+
+ { setBurgerMenu(!burgerMenu); }} /> +
+ + } title={Cluar.currentLanguage().code}> + {menuLanguages} + + +
+ + + { + return ; + }} /> + {routes} + + + +
+ + +
+ logo +
+ + + + + +
+ +
+ +

+
+ +

+
+ +
+
+ +
+
+
+ ); +} diff --git a/website/src/App.test.js b/website/src/App.test.js new file mode 100644 index 0000000..4db7ebc --- /dev/null +++ b/website/src/App.test.js @@ -0,0 +1,9 @@ +import React from 'react'; +import { render } from '@testing-library/react'; +import App from './App'; + +test('renders learn react link', () => { + const { getByText } = render(); + const linkElement = getByText(/learn react/i); + expect(linkElement).toBeInTheDocument(); +}); diff --git a/website/src/common/Analytics.js b/website/src/common/Analytics.js new file mode 100644 index 0000000..869da3e --- /dev/null +++ b/website/src/common/Analytics.js @@ -0,0 +1,63 @@ +import React, { Component } from 'react'; +import PropTypes from 'prop-types'; +import ReactGA from 'react-ga'; +import { Route } from 'react-router-dom'; + +import config from '../config/config'; + +class Analytics extends Component { + componentDidMount() { + this.logPageChange( + this.props.location.pathname, + this.props.location.search + ); + } + + componentDidUpdate({ location: prevLocation }) { + const { location: { pathname, search } } = this.props; + const isDifferentPathname = pathname !== prevLocation.pathname; + const isDifferentSearch = search !== prevLocation.search; + + if (isDifferentPathname || isDifferentSearch) { + this.logPageChange(pathname, search); + } + } + + logPageChange(pathname, search = '') { + const page = pathname + search; + const { location } = window; + ReactGA.set({ + page, + location: `${location.origin}${page}`, + ...this.props.options + }); + ReactGA.pageview(page); + } + + render () { + return null; + } + + static RouteTracker() { + return ; + } + + static init(options = {}) { + let isGAEnabled = false; + if (config.analytics && config.analytics !== ''){ + ReactGA.initialize(config.analytics); + isGAEnabled = true; + } + return isGAEnabled; + }; +} + +Analytics.propTypes = { + location: PropTypes.shape({ + pathname: PropTypes.string, + search: PropTypes.string + }).isRequired, + options: PropTypes.object +}; + +export default Analytics; \ No newline at end of file diff --git a/website/src/common/Builder.js b/website/src/common/Builder.js new file mode 100644 index 0000000..43d89c3 --- /dev/null +++ b/website/src/common/Builder.js @@ -0,0 +1,40 @@ +import React, { useEffect } from 'react'; + +import sal from 'sal.js'; + +import Banner from '../components/Banner'; +import Content from '../components/Content'; +import Listing from '../components/Listing'; +import ContactForm from '../components/functionality/ContactForm'; +import Map from '../components/functionality/Map'; +import config from '../config/config.json'; + +export default ({ page }) => { + + useEffect(() => { + sal(); + document.getElementsByTagName('meta')["keywords"].content = page.keywords; + document.getElementsByTagName('meta')["description"].content = page.description; + document.title = page.title + ' | ' + config.website.name; + }, []); + + const components = []; + for (const item of page.structure) { + if (item.section === 'banner') { + components.push(); + } else if (item.section === 'content') { + components.push(); + } else if (item.section === 'listing') { + components.push(); + } else if (item.section === 'functionality') { + if (item.type === 'map') { + components.push(); + } else if (item.type === 'contact-form') { + components.push(); + } + } + } + return
+ {components} +
; +} diff --git a/website/src/common/Cluar.js b/website/src/common/Cluar.js new file mode 100644 index 0000000..e952580 --- /dev/null +++ b/website/src/common/Cluar.js @@ -0,0 +1,132 @@ + +import CluarCustomData from './CluarCustomData'; + +import config from '../config/config'; + +let data = null; +let currentLanguage = null; +let customData = null; + +export default class Cluar { + static init() { + data = window.cluarData; + currentLanguage = Cluar.defaultLanguage(); + customData = new CluarCustomData(data); + } + + static customData() { + return customData; + } + + static defaultLanguage() { + return data.languages.find((e) => e.default === true); + } + + static currentLanguage(codeOrLocale) { + return currentLanguage; + } + + static changeLanguage(codeOrLocale) { + currentLanguage = data.languages.find((e) => e.code === codeOrLocale || e.locale === codeOrLocale); + } + + static languages() { + return data.languages; + } + + static pages() { + return data.pages; + } + + static configuration(parameter) { + let value = data.configuration[Cluar.currentLanguage().code] ? data.configuration[Cluar.currentLanguage().code][parameter] : null; + if (!value) { + value = data.configuration['GENERIC'] ? data.configuration['GENERIC'][parameter] : null; + } + if (value) { + return value; + } + return parameter; + } + + static configurationNumber(parameter) { + const value = Cluar.configuration(parameter); + if (value && value.match(/^-?\d+\.?\d*$/)) { + return parseFloat(value); + } else { + return 0; + } + } + + static plainDictionary(entry) { + let value = data.dictionary[Cluar.currentLanguage().code] ? data.dictionary[Cluar.currentLanguage().code][entry] : null; + if (value) { + return (value).replace(/<\/?p[^>]*>/g, "") + } + return entry; + } + + static dictionary(entry) { + let value = data.dictionary[Cluar.currentLanguage().code] ? data.dictionary[Cluar.currentLanguage().code][entry] : null; + if (value) { + return value; + } + return entry; + } + + static banner(type) { + const i = data.banners.find((e) => e.type === type && e.language === Cluar.currentLanguage().code); + if (i) { + return i; + } + return { type, language: Cluar.currentLanguage().code, title: type, content: type, image: null }; + } + + static content(type) { + const i = data.contents.find((e) => e.type === type && e.language === Cluar.currentLanguage().code); + if (i) { + return i; + } + return { type, language: Cluar.currentLanguage().code, title: type, content: type }; + } + + static api(path, settings) { + const success = settings.onSuccess ? settings.onSuccess : () => { }; + const fail = settings.onFail ? settings.onFail : () => { }; + const configs = { + method: settings.method ? settings.method : 'POST', + credentials: 'include', + headers: { + "Content-Type": 'application/json', + "Accept": 'application/json' + } + }; + if (settings.data) { + configs.body = JSON.stringify(settings.data); + } + fetch(config.cluar.api + path, configs).then( + (response) => { + if (response.ok) { + if (response.status === 204) { + return success(); + } else { + const contentType = response.headers.get("Content-Type"); + if (contentType && contentType.toLowerCase().indexOf("application/json") === 0) { + return response.json().then((data) => { + success({ json: data }); + }); + } else { + return response.text().then((text) => { + success({ text: text }); + }); + } + } + } else { + return fail({ response: response }); + } + } + ).catch((e) => { + fail({ error: e }); + }); + } +} diff --git a/website/src/common/CluarCustomData.js b/website/src/common/CluarCustomData.js new file mode 100644 index 0000000..06fc647 --- /dev/null +++ b/website/src/common/CluarCustomData.js @@ -0,0 +1,6 @@ + +export default class CluarCustomData { + constructor(data) { + this.data = data; + } +} diff --git a/website/src/common/LangRouter.js b/website/src/common/LangRouter.js new file mode 100644 index 0000000..f38ded2 --- /dev/null +++ b/website/src/common/LangRouter.js @@ -0,0 +1,67 @@ +import React, { useState, useEffect } from 'react'; +import { + BrowserRouter as Router, + Switch, + Route, + Redirect +} from "react-router-dom"; + +import App from './App'; +import Cluar from './Cluar'; +import NotFound from '../pages/NotFound'; + +export default () => { + + const defaultLanguage = Cluar.defaultLanguage(); + + const [locale, setLocale] = useState(defaultLanguage.locale); + + const storageLocale = window.localStorage.getItem('locale'); + if (storageLocale == null) { + window.localStorage.setItem('locale', locale); + } else { + Cluar.changeLanguage(storageLocale); + } + + const handleChangeLocale = (newLocale) => { + Cluar.changeLanguage(newLocale); + console.log('newLocale = ', newLocale); + window.localStorage.setItem('locale', newLocale); + setLocale(newLocale); + }; + + const routes = []; + + for (const language of Cluar.languages()) { + routes.push( { + handleChangeLocale(language.locale); + return ; + } + } />); + } + + return + + { + return ; + }} /> + + + XPTO + + + HOME + + + {routes} + { + return ; + }} /> + + ; +}; diff --git a/website/src/common/serviceWorker.js b/website/src/common/serviceWorker.js new file mode 100644 index 0000000..b04b771 --- /dev/null +++ b/website/src/common/serviceWorker.js @@ -0,0 +1,141 @@ +// This optional code is used to register a service worker. +// register() is not called by default. + +// This lets the app load faster on subsequent visits in production, and gives +// it offline capabilities. However, it also means that developers (and users) +// will only see deployed updates on subsequent visits to a page, after all the +// existing tabs open on the page have been closed, since previously cached +// resources are updated in the background. + +// To learn more about the benefits of this model and instructions on how to +// opt-in, read https://bit.ly/CRA-PWA + +const isLocalhost = Boolean( + window.location.hostname === 'localhost' || + // [::1] is the IPv6 localhost address. + window.location.hostname === '[::1]' || + // 127.0.0.0/8 are considered localhost for IPv4. + window.location.hostname.match( + /^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/ + ) +); + +export function register(config) { + if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) { + // The URL constructor is available in all browsers that support SW. + const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href); + if (publicUrl.origin !== window.location.origin) { + // Our service worker won't work if PUBLIC_URL is on a different origin + // from what our page is served on. This might happen if a CDN is used to + // serve assets; see https://github.com/facebook/create-react-app/issues/2374 + return; + } + + window.addEventListener('load', () => { + const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`; + + if (isLocalhost) { + // This is running on localhost. Let's check if a service worker still exists or not. + checkValidServiceWorker(swUrl, config); + + // Add some additional logging to localhost, pointing developers to the + // service worker/PWA documentation. + navigator.serviceWorker.ready.then(() => { + console.log( + 'This web app is being served cache-first by a service ' + + 'worker. To learn more, visit https://bit.ly/CRA-PWA' + ); + }); + } else { + // Is not localhost. Just register service worker + registerValidSW(swUrl, config); + } + }); + } +} + +function registerValidSW(swUrl, config) { + navigator.serviceWorker + .register(swUrl) + .then(registration => { + registration.onupdatefound = () => { + const installingWorker = registration.installing; + if (installingWorker == null) { + return; + } + installingWorker.onstatechange = () => { + if (installingWorker.state === 'installed') { + if (navigator.serviceWorker.controller) { + // At this point, the updated precached content has been fetched, + // but the previous service worker will still serve the older + // content until all client tabs are closed. + console.log( + 'New content is available and will be used when all ' + + 'tabs for this page are closed. See https://bit.ly/CRA-PWA.' + ); + + // Execute callback + if (config && config.onUpdate) { + config.onUpdate(registration); + } + } else { + // At this point, everything has been precached. + // It's the perfect time to display a + // "Content is cached for offline use." message. + console.log('Content is cached for offline use.'); + + // Execute callback + if (config && config.onSuccess) { + config.onSuccess(registration); + } + } + } + }; + }; + }) + .catch(error => { + console.error('Error during service worker registration:', error); + }); +} + +function checkValidServiceWorker(swUrl, config) { + // Check if the service worker can be found. If it can't reload the page. + fetch(swUrl, { + headers: { 'Service-Worker': 'script' }, + }) + .then(response => { + // Ensure service worker exists, and that we really are getting a JS file. + const contentType = response.headers.get('content-type'); + if ( + response.status === 404 || + (contentType != null && contentType.indexOf('javascript') === -1) + ) { + // No service worker found. Probably a different app. Reload the page. + navigator.serviceWorker.ready.then(registration => { + registration.unregister().then(() => { + window.location.reload(); + }); + }); + } else { + // Service worker found. Proceed as normal. + registerValidSW(swUrl, config); + } + }) + .catch(() => { + console.log( + 'No internet connection found. App is running in offline mode.' + ); + }); +} + +export function unregister() { + if ('serviceWorker' in navigator) { + navigator.serviceWorker.ready + .then(registration => { + registration.unregister(); + }) + .catch(error => { + console.error(error.message); + }); + } +} diff --git a/website/src/components/Actions/Item/index.js b/website/src/components/Actions/Item/index.js new file mode 100644 index 0000000..1ac855c --- /dev/null +++ b/website/src/components/Actions/Item/index.js @@ -0,0 +1,15 @@ +import React from 'react'; + +import './index.less'; + +export default ({ section, type, title, content, indication, link }) => { + return ( +
  • +
    window.location = link}> + { title !== '' ?

    {title}

    : null} + { content.replace(/ /g,'') !== '' ?

    : null } + { indication !== '' ? {indication} : null} +

    +
  • + ); +} diff --git a/website/src/components/Actions/Item/index.less b/website/src/components/Actions/Item/index.less new file mode 100644 index 0000000..54761dd --- /dev/null +++ b/website/src/components/Actions/Item/index.less @@ -0,0 +1,39 @@ +@import "../../../styles/variables.less"; + +.actions__item { + width: 280px; + padding: 15px; + margin: 0 0 20px 0; + @media only screen and (max-width: @header-mobile-width) { + margin: 0; + } + border: @actions-item-border-width solid @actions-item-border-color; + border-radius: @actions-item-border-radius; + transition: all .1s ease-in; + background-color: @actions-item-background; + color: @actions-item-text-color; + font-weight: 600; + &:hover { + cursor: pointer; + background-color: @actions-item-background-hover; + color: @actions-item-text-color-hover; + a { + color: @actions-item-link-color-hover; + } + } + + h4 { + color: @actions-item-text-color; + font-size: 1.2em; + margin-bottom: 0.2em; + } + p { + font-size: 1.0em; + margin-bottom: 0.5em; + } + a { + text-transform: uppercase; + font-size: 1.0em; + color: @actions-item-link-color; + } +} diff --git a/website/src/components/Actions/index.js b/website/src/components/Actions/index.js new file mode 100644 index 0000000..96449be --- /dev/null +++ b/website/src/components/Actions/index.js @@ -0,0 +1,20 @@ +import React from 'react'; + +import Item from './Item'; + +import './index.less'; + +export default ({ section, type, actions }) => { + const list = []; + for (const action of actions) { + list.push(); + } + if (list.length === 0) { + return null; + } + return ( +
      + {list} +
    + ); +} diff --git a/website/src/components/Actions/index.less b/website/src/components/Actions/index.less new file mode 100644 index 0000000..07b64a5 --- /dev/null +++ b/website/src/components/Actions/index.less @@ -0,0 +1,10 @@ +.actions { + list-style-type: none; + margin: 0; + padding: 0 0 0 20px; + @media only screen and (max-width: 800px) { + padding: 0 0 0 0; + display: flex; + flex-wrap: wrap; + } +} diff --git a/website/src/components/Banner/index.js b/website/src/components/Banner/index.js new file mode 100644 index 0000000..f5d7e3d --- /dev/null +++ b/website/src/components/Banner/index.js @@ -0,0 +1,38 @@ +import React from 'react'; +import { Row, Col } from 'antd'; + +import Actions from '../Actions'; +import Cluar from '../../common/Cluar'; + +import './index.less'; + +export default ({ section, type, image, image_title, image_alt, title, content, position, actions }) => { + let backgroundPositionX = position.x !== "" ? position.x : "50%"; + let backgroundPositionY = position.y !== "" ? position.y : "50%"; + + return ( +
    +
    + + < Col lg={18} sm={(type === 'default-sub-banner') ? (24) : (18)} xs={(type === 'default-sub-banner') ? (24) : (18)}> +
    +

    {title}

    +
    +
    + + + + +
    +
    + {Cluar.plainDictionary('text-sub-banner')} +
    +
    +
    +
    + ); +} diff --git a/website/src/components/Banner/index.less b/website/src/components/Banner/index.less new file mode 100644 index 0000000..11e5033 --- /dev/null +++ b/website/src/components/Banner/index.less @@ -0,0 +1,155 @@ +@import "../../styles/variables.less"; + +.banner { + &__sub-banner { + display: none; + position: absolute; + bottom: 0; + left: 0; + background-color: @banner-sub-banner-bg; + padding: 15px 0; + width: 100% !important; + text-align: center; + font-weight: bold; + font-size: 1.3em; + letter-spacing: .025em; + box-shadow: @banner-sub-banner-box-shadow; + color: @banner-sub-banner-color; + @media only screen and (max-width: @header-mobile-width) { + font-size: 1.2em; + } + } + + &__default-sub-banner { + padding-bottom: calc(1.8em + 30px) !important; + .banner__sub-banner { + display: block; + } + > div > div > div { + p { + margin-bottom: 0; + &:nth-last-child(1) { + margin-bottom: 1em; + } + } + } + @media only screen and (max-width: @header-mobile-width) { + > div > div > div { + margin: auto; + } + } + } + + &__default, &__default-sub-banner { + min-height: 600px; + height: calc(100vh - @header-size); + @media only screen and (max-width: @header-mobile-width) { + height: calc(100vh - @header-size-mobile); + } + .banner__darken-bg { + display: none; + } + } + &__secondary { + position: relative; + height: calc(40vh - @header-size); + text-align: left; + @media only screen and (max-width: @header-mobile-width) { + height: calc(30vh - @header-size-mobile); + } + div:nth-child(1) { + z-index: 2; + h2 { + text-shadow: 0 0 10px @banner-secondary-text-shadow; + } + } + .banner__darken-bg { + width: 100%; + height: 100%; + background-color: @banner-secondary-darken-bg-color; + position: absolute; + z-index: 1; + } + @media only screen and (max-width: @header-mobile-width) { + height: calc(33vh - @header-size-mobile) !important; + } + } + > div { + display: flex; + align-items: center; + justify-content: center; + text-align: left; + padding: 0 50px; + width: 100%; + background-color: #777; + background-size: cover; + background-attachment: fixed; + background-repeat: no-repeat; + + @media only screen and (max-width: @header-mobile-width) { + height: calc(100vh - @header-size-mobile); + min-height: unset; + text-align: center; + padding: 0; + } + > div { + width: 100%; + > div { + > div { + width: calc(80% - 40px); + height: auto; + > h1 { + margin-bottom: 0; + font-weight: 200; + font-size: 3.5em; + color: #fff; + letter-spacing: .01em; + @media only screen and (max-width: @header-mobile-width) { + font-size: 2em; + line-height: 1.2em; + margin-bottom: 10px; + } + } + @media only screen and (max-width: @header-mobile-width) { + width: 80%; + } + > div { + > p { + font-size: 1.4em; + color: #fff; + @media only screen and (max-width: @header-mobile-width) { + font-size: 1.5em; + line-height: 1.5em; + } + } + } + } + } + .actions { + position: relative; + display: inline-block; + padding-left: 0; + text-align: center; + .actions__item { + h4 { + font-size: 1.0em; + margin-bottom: 0.1em; + } + p { + font-size: 1.1em; + margin-bottom: 0.1em; + } + a { + font-size: 1em + } + &:hover { + h4 { + color: #000000; + } + } + } + } + } + } +} + \ No newline at end of file diff --git a/website/src/components/Content/index.js b/website/src/components/Content/index.js new file mode 100644 index 0000000..e0fafe5 --- /dev/null +++ b/website/src/components/Content/index.js @@ -0,0 +1,114 @@ +import React from 'react'; +import { Row, Col, Button } from 'antd'; + +import Actions from '../Actions'; +import Cluar from '../../common/Cluar'; + +import './index.less'; + +export default ({section, type, title, content, image, image_title, image_alt, image_max_width, actions}) => { + let layout = null; + const imageStyle = {}; + if (image_max_width > 0) { + imageStyle["maxWidth"] = `${image_max_width}px`; + } + if (type === 'text') { + layout = ( +
    +
    +

    { title }

    + { title ?
    : null } +
    +
    +
    + ); + } else if (type === 'image-left') { + layout = ( +
    + + +
    + { +
    + + +
    +

    { title }

    +
    +
    +
    + +
    +
    + ); + } else if (type === 'image-right') { + layout = ( +
    + + +
    +

    { title }

    +
    +
    +
    + + +
    + { +
    + +
    +
    + ); + } else if (type === 'image-top') { + layout = ( +
    +
    + { +
    +
    +

    { title }

    +
    +
    +
    + ); + } else if (type === 'image-bottom') { + layout = ( +
    +
    +

    { title }

    +
    +
    +
    + { +
    +
    + ); + } else if (type === 'image') { + layout = ( +
    +
    + { +
    +
    + ); + } else { + layout = ( +
    +
    + { +
    +
    +

    { title }

    +
    +
    +
    + ); + } + return ( +
    + { layout } + +
    + ); +} diff --git a/website/src/components/Content/index.less b/website/src/components/Content/index.less new file mode 100644 index 0000000..902c0e5 --- /dev/null +++ b/website/src/components/Content/index.less @@ -0,0 +1,121 @@ +@import "../../styles/variables.less"; + +.content { + margin: auto; + max-width: 80%; + padding: 50px 60px 50px; + display: flex; + @media only screen and (max-width: 800px) { + padding: 20px 0; + margin: 20px auto; + flex-wrap: wrap; + } + + > div { + width: 100%; + } + + > ul.actions { + width: 300px; + @media only screen and (max-width: 800px) { + width: 100%; + } + } + + .image { + width: 100%; + height: auto; + img { + display: block; + margin-left: auto; + margin-right: auto; + } + } + + .text { + > h1 { + font-size: 2em; + font-weight: normal; + letter-spacing: .01em; + } + &__title-border { + height: 4px; + width: 8vw; + margin-top: -1em; + margin-bottom: 1em; + background: rgb(255,255,255); + background: linear-gradient(90deg, @primary-color 0%, @secondary-color 100%); + } + > div { + font-size: 1.2em; + > ul { + margin-left: 40px !important; + } + } + } + + &__text { + + } + + &__image-left { + + } + &__image-right { + + } + &__image-top { + + } + &__image-bottom { + + } + + &__text-service { + > h1 { + font-size: 2em; + font-weight: normal; + letter-spacing: .01em; + } + &__title-border { + height: 4px; + width: 8vw; + margin-top: -1em; + margin-bottom: 1em; + background: rgb(255,255,255); + } + .ant-btn { + height: 50px; + min-width: 190px; + > span { + text-transform: uppercase; + letter-spacing: .05em; + font-size: 1.2em; + padding: 0 20px; + } + } + } + + .actions__item { + background-color: @primary-color; + text-align: center; + border-color: @primary-color; + h4 { + color: #ffffff; + } + a { + color: @secondary-color; + } + &:hover { + cursor: pointer; + background-color: @secondary-color; + color: #000000; + h4 { + color: #000000; + } + a { + color: @primary-color; + } + } + } +} diff --git a/website/src/components/Cookies/index.js b/website/src/components/Cookies/index.js new file mode 100644 index 0000000..7cd687e --- /dev/null +++ b/website/src/components/Cookies/index.js @@ -0,0 +1,34 @@ + +import React, { useState } from 'react'; +import { Button } from 'antd'; + +import Cluar from '../../common/Cluar'; + +import './index.less'; + +export default () => { + const [acceptedCookies, setAcceptedCookies] = useState(sessionStorage.getItem('cookies-accepted')); + const onClick = () => { + sessionStorage.setItem('cookies-accepted', '1'); + setAcceptedCookies('1'); + } + if (acceptedCookies === '1') { + return null; + } + return ( +
    +
    +
    +

    + {Cluar.currentLanguage().locale == 'pt' && <>Utilizamos cookies no nosso website para lhe proporcionar a experiência mais relevante, para mais informações consulte a nossa política de cookies e privacidade. } + {Cluar.currentLanguage().locale == 'en' && <>We use cookies to provide you the best experience, check our cookies and privacy policy. } +

    + +
    +
    +
    + ) +} diff --git a/website/src/components/Cookies/index.less b/website/src/components/Cookies/index.less new file mode 100644 index 0000000..544abeb --- /dev/null +++ b/website/src/components/Cookies/index.less @@ -0,0 +1,29 @@ +.cookies { + position: absolute; + height: 100px; + background-color: #777777; + &--popup { + position: fixed; + z-index: 10000; + width: 100%; + height: auto; + bottom: 0; + background-color: #fff; + box-shadow: 0 -1px 10px 0 rgba(172, 171, 171, 0.3); + &__content { + color: rgba(0, 0, 0, 0.85); + padding: 20px 50px; + display: flex; + justify-content: space-between; + p { + margin-bottom: 0; + } + @media only screen and (max-width: 768px) { + display: block; + p { + margin-bottom: 1em; + } + } + } + } +} diff --git a/website/src/components/Dictionary/index.js b/website/src/components/Dictionary/index.js new file mode 100644 index 0000000..47f0b03 --- /dev/null +++ b/website/src/components/Dictionary/index.js @@ -0,0 +1,18 @@ +import React from 'react'; + +import Cluar from '../../common/Cluar'; + +import './index.less'; + +export default (props) => { + let value = Cluar.dictionary(props.entry); + if (props.oneLine) { + value = (value).replace(/<\/?p[^>]*>/g, ""); + return ( + + ) + } + return ( +
    + ); +} diff --git a/website/src/components/Dictionary/index.less b/website/src/components/Dictionary/index.less new file mode 100644 index 0000000..e69de29 diff --git a/website/src/components/Listing/Item/index.js b/website/src/components/Listing/Item/index.js new file mode 100644 index 0000000..3c92b62 --- /dev/null +++ b/website/src/components/Listing/Item/index.js @@ -0,0 +1,37 @@ +import React from 'react'; +import { Col } from 'antd'; + +import './index.less'; + +export default ({ section, type, image, image_title, image_alt, title, content, link }) => { + let layout = null; + if (type === 'YOUR-CUSTOM-TYPE-HERE') { + layout = ( +
  • +
    +

    {title}

    + { +
    +
    +
  • + ); + } else if(type === 'OTHER-CUSTOM-TYPE-HERE') { + layout = ( + + {title}
    + + ); + } else { + layout = ( +
  • +
    +

    {title}

    +
    +
    +
  • + ); + } + return ( + layout + ); +} diff --git a/website/src/components/Listing/Item/index.less b/website/src/components/Listing/Item/index.less new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/website/src/components/Listing/Item/index.less @@ -0,0 +1 @@ + diff --git a/website/src/components/Listing/index.js b/website/src/components/Listing/index.js new file mode 100644 index 0000000..00270c4 --- /dev/null +++ b/website/src/components/Listing/index.js @@ -0,0 +1,44 @@ +import React from 'react'; +import { Row } from 'antd'; + +import Item from './Item'; + +import './index.less'; + +export default ({section, type, image, image_title, image_alt, title, content, items}) => { + const children = []; + for (const item of items) { + children.push(); + } + + let listLayout = ( +
    +

    { title }

    +
    +
    +
      + { children } +
    +
    + ); + + if (type === 'YOUR-CUSTOM-TYPE-HERE') { + listLayout = ( + + { children } + + ); + } else if (type === 'OTHER-CUSTOM-TYPE-HERE') { + listLayout = ( + + { children } + + ); + } + + return ( +
    + { listLayout } +
    + ); +} diff --git a/website/src/components/Listing/index.less b/website/src/components/Listing/index.less new file mode 100644 index 0000000..928a1c2 --- /dev/null +++ b/website/src/components/Listing/index.less @@ -0,0 +1,36 @@ +@import "../../styles/variables.less"; + +.listing { + margin: auto; + max-width: 80%; + padding: 50px 60px 0; + display: flex; + @media only screen and (max-width: 800px) { + padding: 20px 0; + margin: 20px auto; + flex-wrap: wrap; + } + &__title-border { + height: 4px; + width: 8vw; + margin-top: -1em; + margin-bottom: 1em; + background: rgb(255,255,255); + background: linear-gradient(90deg, @primary-color 0%, @secondary-color 100%); + } + + > div > h1 { + font-size: 2em; + font-weight: normal; + letter-spacing: .01em; + } + > div > div { + font-size: 1.2em; + } + + > div > ul { + list-style-type: none; + margin: 0; + padding: 0; + } +} diff --git a/website/src/components/functionality/ContactForm/index.js b/website/src/components/functionality/ContactForm/index.js new file mode 100644 index 0000000..813dac1 --- /dev/null +++ b/website/src/components/functionality/ContactForm/index.js @@ -0,0 +1,96 @@ +import React, { useState } from 'react'; +import { Row, Col, Form, Input, Button, notification } from 'antd'; + +import Cluar from '../../../common/Cluar'; + +import './index.less'; + +const { TextArea } = Input; + +const validateMessages = { + required: '${label} é de preenchimento obrigatório!', + types: { + email: '${label} não é um email válido!' + } +}; + +const layout = { + rowGutter: { gutter: [25, 0] }, + labelCol: {span: 'hide'} +}; + +export default ({ title }) => { + const [ loading, setLoading ] = useState(false); + const handleFinish = (values)=> { + values.contactForm.locale = window.localStorage.getItem('locale'); + setLoading(true); + const fail = () => { + setLoading(false); + notification.error({ + message: title , + description: Cluar.dictionary('contact-fail'), + top: 100 + }); + }; + Cluar.api('contact', { + data: values.contactForm, + onSuccess: (data) => { + if (data.json && data.json.result === true) { + setLoading(false); + notification.success({ + message: title , + description: Cluar.dictionary('contact-success'), + top: 100 + }); + } else { + fail(); + } + }, + onFail: (data) => { + console.log("ContactForm failed:", data); + fail(); + } + }); + }; + return ( +
    +
    +
    +

    {title}

    + + + + + + + + + + + + + + + + + + + + + + +