Browse Source

Add CLUAR to project

master
Venturinha 2 years ago
parent
commit
fed3dfba2f
126 changed files with 8454 additions and 71 deletions
  1. +1
    -2
      .editor.config
  2. +8
    -0
      .gitignore
  3. +139
    -0
      .netuno.json
  4. +1
    -0
      README.md
  5. +74
    -0
      config/sample.json
  6. BIN
      public/images/icon.png
  7. +245
    -25
      public/scripts/ui.js
  8. +1
    -1
      public/scripts/ui.js.map
  9. +38
    -0
      public/styles/login.css
  10. +113
    -3
      public/styles/main.css
  11. +4
    -0
      server/actions/action/saved.js
  12. +5
    -0
      server/actions/banner/saved.js
  13. +4
    -0
      server/actions/banner_action/saved.js
  14. +3
    -0
      server/actions/configuration/saved.js
  15. +4
    -0
      server/actions/content/saved.js
  16. +4
    -0
      server/actions/content_action/saved.js
  17. +3
    -0
      server/actions/dictionary/saved.js
  18. +5
    -0
      server/actions/functionality/saved.js
  19. +3
    -0
      server/actions/language/saved.js
  20. +4
    -0
      server/actions/listing/saved.js
  21. +4
    -0
      server/actions/listing_item/saved.js
  22. +4
    -0
      server/actions/page/saved.js
  23. +539
    -0
      server/core/Cluar.js
  24. +4
    -0
      server/core/CluarCustomData.js
  25. +4
    -0
      server/core/_service_config.js
  26. +1
    -1
      server/package.json
  27. +5
    -0
      server/services/admin/cluar/sync.js
  28. +92
    -0
      server/services/admin/contact/list/post.js
  29. +50
    -0
      server/services/contact/post.js
  30. +26
    -0
      server/setup/001-language.js
  31. +22
    -0
      server/setup/002-page_status.js
  32. +46
    -0
      server/setup/003-content_type.js
  33. +30
    -0
      server/setup/004-banner_type.js
  34. +22
    -0
      server/setup/005-functionality_type.js
  35. +46
    -0
      server/setup/006-page.js
  36. +48
    -0
      server/setup/007-configuration_parameter.js
  37. +62
    -0
      server/setup/008-configuration.js
  38. +80
    -0
      server/setup/009-dictionary_entry.js
  39. +170
    -0
      server/setup/010-dictionary.js
  40. +39
    -0
      server/setup/011-banner.js
  41. +68
    -0
      server/setup/012-content.js
  42. +6
    -0
      server/setup/_end.js
  43. +184
    -0
      server/setup/_schema-form-01-action.js
  44. +339
    -0
      server/setup/_schema-form-02-banner.js
  45. +123
    -0
      server/setup/_schema-form-03-banner_action.js
  46. +92
    -0
      server/setup/_schema-form-04-banner_type.js
  47. +122
    -0
      server/setup/_schema-form-05-configuration.js
  48. +92
    -0
      server/setup/_schema-form-06-configuration_parameter.js
  49. +215
    -0
      server/setup/_schema-form-07-contact.js
  50. +308
    -0
      server/setup/_schema-form-08-content.js
  51. +123
    -0
      server/setup/_schema-form-09-content_action.js
  52. +92
    -0
      server/setup/_schema-form-10-content_type.js
  53. +122
    -0
      server/setup/_schema-form-11-dictionary.js
  54. +92
    -0
      server/setup/_schema-form-12-dictionary_entry.js
  55. +215
    -0
      server/setup/_schema-form-13-functionality.js
  56. +92
    -0
      server/setup/_schema-form-14-functionality_type.js
  57. +153
    -0
      server/setup/_schema-form-15-language.js
  58. +277
    -0
      server/setup/_schema-form-16-listing.js
  59. +278
    -0
      server/setup/_schema-form-17-listing_item.js
  60. +92
    -0
      server/setup/_schema-form-18-listing_type.js
  61. +432
    -0
      server/setup/_schema-form-19-page.js
  62. +92
    -0
      server/setup/_schema-form-20-page_status.js
  63. BIN
      storage/filesystem/server/default-banner-background.jpg
  64. +6
    -0
      ui/.editor.config
  65. +2
    -1
      ui/.gitignore
  66. +16
    -0
      ui/README.md
  67. +3
    -2
      ui/package.json
  68. +34
    -0
      ui/src/components/cluar/Sync/index.jsx
  69. +216
    -0
      ui/src/containers/ContactTable/index.jsx
  70. +0
    -0
      ui/src/containers/ContactTable/index.less
  71. +27
    -16
      ui/src/containers/DashboardContainer/index.jsx
  72. +5
    -20
      ui/src/index.jsx
  73. +1
    -0
      ui/src/styles/main.less
  74. +1
    -0
      ui/vite.config.js
  75. +6
    -0
      website/.editor.config
  76. +1
    -0
      website/.env.sample
  77. +45
    -0
      website/.gitignore
  78. +68
    -0
      website/README.md
  79. +19
    -0
      website/build.sh
  80. +92
    -0
      website/index.html
  81. +42
    -0
      website/package.json
  82. BIN
      website/public/images/favicon-1024.png
  83. BIN
      website/public/images/favicon-192.png
  84. BIN
      website/public/images/favicon-512.png
  85. BIN
      website/public/images/favicon.ico
  86. BIN
      website/public/images/logo.png
  87. +30
    -0
      website/public/manifest.json
  88. +3
    -0
      website/public/robots.txt
  89. +87
    -0
      website/src/App.jsx
  90. +36
    -0
      website/src/base/Cookies/index.jsx
  91. +32
    -0
      website/src/base/Cookies/index.less
  92. +68
    -0
      website/src/base/Footer/index.jsx
  93. +130
    -0
      website/src/base/Footer/index.less
  94. +182
    -0
      website/src/base/Header/index.jsx
  95. +206
    -0
      website/src/base/Header/index.less
  96. +31
    -0
      website/src/common/Analytics.jsx
  97. +45
    -0
      website/src/common/Builder.jsx
  98. +123
    -0
      website/src/common/Cluar.js
  99. +6
    -0
      website/src/common/CluarCustomData.js
  100. +141
    -0
      website/src/common/serviceWorker.js

+ 1
- 2
.editor.config View File

@ -3,5 +3,4 @@ root = true
[*]
charset = utf-8
indent_style = space
indent_size = 2
indent_size = 2

+ 8
- 0
.gitignore View File

@ -16,3 +16,11 @@ package-lock.json
config/_development.json
config/_production.json
dbs/
docs/
public/scripts/main.*
storage/database/

+ 139
- 0
.netuno.json View File

@ -0,0 +1,139 @@
{
"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": {},
"cluar": {
"website": {
"url": "http://localhost:3000",
"name": "Website Name",
"analytics": null,
"mapbox": {
"dark": false,
"accessToken": null
},
"services": {
"api": "http://localhost:9000/services/"
}
},
"uglifyjs": false
}
},
"cors": [{
"origins": [ "*" ],
"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",
"install": "npm install --force",
"enabled": true
},
{
"path": "website",
"command": "npm run dev",
"install": "npm install --force",
"enabled": true
}
],
"db": {"default": {
"password": "",
"engine": "h2",
"port": "",
"host": "",
"name": "cluar",
"username": ""
}}
},
"production": {
"cron": {"jobs": []},
"settings": {
"public": {},
"cluar": {
"website": {
"url": "http://localhost:3000",
"name": "Website Name",
"analytics": null,
"mapbox": {
"dark": false,
"accessToken": null
},
"services": {
"api": "http://localhost:9000/services/"
}
},
"uglifyjs": false
}
},
"cors": [{
"origins": [ "*" ],
"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",
"install": "npm install --force",
"enabled": false
},
{
"path": "website",
"command": "npm run dev",
"install": "npm install --force",
"enabled": false
}
],
"db": {"default": {
"password": "",
"engine": "h2",
"port": "",
"host": "",
"name": "cluar",
"username": ""
}}
}
}
}

+ 1
- 0
README.md View File

@ -0,0 +1 @@
# ORBITAPP

+ 74
- 0
config/sample.json View File

@ -0,0 +1,74 @@
{
"cron": {"jobs": []},
"settings": {
"public": {},
"cluar": {
"website": {
"url": "http://localhost:3000",
"name": "Website Name",
"analytics": null,
"mapbox": {
"dark": false,
"accessToken": null
},
"services": {
"api": "http://localhost:9000/services/"
}
},
"uglifyjs": false
},
"recaptcha": {
"url": "https://www.google.com/recaptcha/api/siteverify",
"secret_key": ""
}
},
"cors": [{
"origins": [ "*" ],
"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": {
"recaptcha": {
"json": true
}
},
"commands": [
{
"path": "ui",
"command": "npm run watch",
"install": "npm install --force",
"enabled": true
},
{
"path": "website",
"command": "npm start",
"install": "npm install --force",
"enabled": true
}
],
"db": {"default": {
"password": "",
"engine": "h2",
"port": "",
"host": "",
"name": "cluar",
"username": ""
}}
}

BIN
public/images/icon.png View File

Before After
Width: 1024  |  Height: 1024  |  Size: 44 KiB

+ 245
- 25
public/scripts/ui.js
File diff suppressed because it is too large
View File


+ 1
- 1
public/scripts/ui.js.map
File diff suppressed because it is too large
View File


+ 38
- 0
public/styles/login.css View File

@ -0,0 +1,38 @@
body {
background-color: #f1f1f1;
}
.form-control {
background-color: #f1f1f1;
color: #202020;
border: 1px solid #84B9FF;
margin-bottom: 10px;
}
.form-control:focus {
border-color: #202020;
box-shadow: none;
-webkit-box-shadow: none;
}
hr {
border-top: none;
}
.btn-primary {
background-color: #1178FF !important;
border-color: transparent;
}
.btn-primary.focus, .btn-primary:focus, .btn-primary.active, .btn-primary:active, .open>.dropdown-toggle.btn-primary, .btn-primary:hover {
background-color: #84B9FF !important;
border-color: transparent;
}
.btn.active.focus, .btn.active:focus, .btn.focus, .btn:active.focus, .btn:active:focus, .btn:focus {
outline: 5px auto #000000;
outline-color: #000000;
outline-style: auto;
outline-width: 5px;
outline-offset: -2px;
}

+ 113
- 3
public/styles/main.css View File

@ -3,11 +3,121 @@
HERE YOUR CUSTOM CSS
**/
.navbar, .navbar-inverse {
background-color: #5b5ce1 !important;
background-color: #e8e8e8 !important;
}
.dev .navbar, .dev .navbar-inverse {
background-color: #333333 !important;
background-color: #202020 !important;
}
.dev .top-nav > li > a:hover, .dev .top-nav > li > a:focus, .dev .top-nav > li.active > a, .dev .top-nav > .open > a, .dev .top-nav > .open > a:hover, .dev .top-nav > .open > a:focus {
background-color: #1178FF;
color: #ffffff;
}
.top-nav > li.active > a {
background-color: #FF8116;
color: #202020;
}
.dropdown button {
color: #FF8116;
}
.btn-primary {
background-color: #1178FF;
border-color: transparent;
}
.btn-primary.focus, .btn-primary:focus, .btn-primary.active, .btn-primary:active, .open>.dropdown-toggle.btn-primary, .btn-primary:hover {
background-color: #5b5ce1;
border-color: transparent;
}
.btn.active.focus, .btn.active:focus, .btn.focus, .btn:active.focus, .btn:active:focus, .btn:focus {
outline: 5px auto #000000;
outline-color: #000000;
outline-style: auto;
outline-width: 5px;
outline-offset: -2px;
}
.btn-primary.active.focus, .btn-primary.active:focus, .btn-primary.active:hover, .btn-primary:active.focus, .btn-primary:active:focus, .btn-primary:active:hover, .open>.dropdown-toggle.btn-primary.focus, .open>.dropdown-toggle.btn-primary:focus, .open>.dropdown-toggle.btn-primary:hover {
background-color: #5b5ce1;
border-color: #FF8116;
}
.btn-link {
color: #1178FF;
}
.btn-link:focus, .btn-link:hover {
color: #0053BF;
}
.text-primary {
color: #1178FF;
}
.badge-warning {
background-color: #1178FF;
}
.select2-container--bootstrap .select2-dropdown,
.select2-container--bootstrap.select2-container--focus .select2-selection,
.select2-container--bootstrap.select2-container--open .select2-selection {
border-color: #1178FF;
box-shadow: none;
-webkit-box-shadow: none;
}
.select2-container--bootstrap .select2-results__option--highlighted[aria-selected] {
background-color: #1178FF;
}
.form-control:focus {
border-color: #1178FF;
box-shadow: none;
-webkit-box-shadow: none;
}
.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary,
.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary {
background: #1178FF !important;
}
.datepicker table tr td.active.active, .datepicker table tr td.active.highlighted.active, .datepicker table tr td.active.highlighted:active, .datepicker table tr td.active:active {
background: #1178FF;
}
.clockpicker-canvas line {
stroke: #1178FF !important;
}
.clockpicker-canvas-bg-trans, .clockpicker-canvas-bg {
fill: rgba(201,80,0,.25) !important;
}
.clockpicker-canvas-bearing, .clockpicker-canvas-fg {
fill: #1178FF !important;
}
.clockpicker-tick.active,
.clockpicker-tick:hover {
background-color: #5b5ce1;
background-color: rgba(201,80,0,.25);
}
.search-content .btn-search,
.search-content .btn-filter {
background: #1178FF !important;
}
.pagination>li>a, .pagination>li>span {
color: #1178FF !important;
}
.pagination>li>a:focus, .pagination>li>a:hover, .pagination>li>span:focus, .pagination>li>span:hover {
color: #5b5ce1 !important;
}

+ 4
- 0
server/actions/action/saved.js View File

@ -0,0 +1,4 @@
// _core : Cluar
Cluar.build()

+ 5
- 0
server/actions/banner/saved.js View File

@ -0,0 +1,5 @@
// _core : Cluar
Cluar.build()
Cluar.actionDataItemProcessWithAnImage()

+ 4
- 0
server/actions/banner_action/saved.js View File

@ -0,0 +1,4 @@
// _core : Cluar
Cluar.build()

+ 3
- 0
server/actions/configuration/saved.js View File

@ -0,0 +1,3 @@
// _core : Cluar
Cluar.build()

+ 4
- 0
server/actions/content/saved.js View File

@ -0,0 +1,4 @@
// _core : Cluar
Cluar.build()
Cluar.actionDataItemProcessWithAnImage()

+ 4
- 0
server/actions/content_action/saved.js View File

@ -0,0 +1,4 @@
// _core : Cluar
Cluar.build()

+ 3
- 0
server/actions/dictionary/saved.js View File

@ -0,0 +1,3 @@
// _core : Cluar
Cluar.build()

+ 5
- 0
server/actions/functionality/saved.js View File

@ -0,0 +1,5 @@
// _core : Cluar
Cluar.build()
Cluar.actionDataItemProcessWithAnImage()

+ 3
- 0
server/actions/language/saved.js View File

@ -0,0 +1,3 @@
// _core : Cluar
Cluar.build()

+ 4
- 0
server/actions/listing/saved.js View File

@ -0,0 +1,4 @@
// _core : Cluar
Cluar.build()
Cluar.actionDataItemProcessWithAnImage()

+ 4
- 0
server/actions/listing_item/saved.js View File

@ -0,0 +1,4 @@
// _core : Cluar
Cluar.build()
Cluar.actionDataItemProcessWithAnImage()

+ 4
- 0
server/actions/page/saved.js View File

@ -0,0 +1,4 @@
// _core : Cluar
Cluar.build()

+ 539
- 0
server/core/Cluar.js View File

@ -0,0 +1,539 @@
// _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()
data.set(
"config",
_app.settings.getValues("cluar", _val.map())
.getValues("website", _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.${_db.escape('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.${_db.escape('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.${_db.escape('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,
page.uid,
language.code "language",
page.parent_id,
page.link,
page.title,
page.description,
page.keywords,
page.navigable,
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.uid,
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("uid", dbContent.getString("uid"))
.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.uid,
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("uid", dbBanner.getString("uid"))
.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.uid,
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
uid, title, content, image, image_alt, image_title, sorter, link
FROM listing_item
WHERE listing_id = ${dbListing.getInt("id")} AND active = TRUE
`)
for (const dbItem of dbItems) {
items.add(
_val.map()
.set("uid", dbItem.getString("uid"))
.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("uid", dbListing.getString("uid"))
.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.uid,
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("uid", dbFunctionality.getString("uid"))
.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("uid", dbPage.getString("uid"))
.set("parent", parentLink)
.set("link", dbPage.getString("link"))
.set("title", dbPage.getString("title"))
.set("description", dbPage.getString("description"))
.set("keywords", dbPage.getString("keywords"))
.set("navigable", dbPage.getBoolean("navigable"))
.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.getValues('cluar', _val.map()).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("cluar", _val.map()).getValues("website", _val.map()).getString("url")
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"))) {
if (page.getBoolean('navigable') == false) {
continue
}
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()
}
const websiteFile = _app.file(`${folder.path()}/${fileName}`)
const databaseFile = _storage.database(section, "image", fileName).file()
if (!websiteFile.exists()
|| databaseFile.available() != websiteFile.available()
|| databaseFile.lastModified() > websiteFile.lastModified()) {
_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
}
}

+ 4
- 0
server/core/CluarCustomData.js View File

@ -0,0 +1,4 @@
const CluarCustomData = (data) => {
}

+ 4
- 0
server/core/_service_config.js View File

@ -11,3 +11,7 @@ if (_env.is("dev")) {
_service.allow()
}
*/
if (_service.path == 'contact/post') {
_service.allow()
}

+ 1
- 1
server/package.json View File

@ -4,4 +4,4 @@
"description": "Server modules dependencies.",
"author": "netuno.org",
"license": "ISC"
}
}

+ 5
- 0
server/services/admin/cluar/sync.js View File

@ -0,0 +1,5 @@
// _core : Cluar
Cluar.build({ images: true })
_out.json(_val.map().set('result', true))

+ 92
- 0
server/services/admin/contact/list/post.js View File

@ -0,0 +1,92 @@
const filter = _req.getValues("filter")
const pagination = _req.getValues("pagination")
const sorter = _req.getValues("sorter")
const pageSize = 10
let page = { start: 0, size: pageSize }
if (pagination != null) {
page.size = pagination.getInt('pageSize', pageSize)
page.start = (pagination.getInt('current', 1) - 1) * page.size
}
if (page.size > 100) {
page.size = 100
}
const queryFilter = _val.list()
let queryWhere = '';
if (filter != null) {
if (filter.getString('name') != '') {
queryWhere += ' AND name LIKE ?'
queryFilter.add(`%${ filter.getString('name') }%`)
}
if (filter.getString('email') != '') {
queryWhere += ' AND email LIKE ?'
queryFilter.add(`%${ filter.getString('email') }%`)
}
if (filter.getString('subject') != '') {
queryWhere += ' AND subject LIKE ?'
queryFilter.add(`%${ filter.getString('subject') }%`)
}
if (filter.getString('moment') != '') {
queryWhere += ' AND moment LIKE ?'
queryFilter.add(`%${ filter.getString('moment') }%`)
}
}
let querySorter = 'moment DESC';
if (sorter != null) {
const order = sorter.getString("order") == 'descend' ? 'DESC' : 'ASC'
if (sorter.getString("field") == 'name') {
querySorter = ' name '+ order;
} else if (sorter.getString("field") == 'email') {
querySorter = ' email '+ order;
} else if (sorter.getString("field") == 'subject') {
querySorter = ' subject '+ order;
} else if (sorter.getString("field") == 'moment') {
querySorter = ' moment '+ order;
}
}
const dbResultados = _db.query(`
SELECT
name,
email,
subject,
moment
FROM contact
WHERE 1 = 1
${queryWhere}
ORDER BY ${querySorter}
LIMIT ${page.size} OFFSET ${page.start}
`, queryFilter)
const resultados = _val.list()
for (const dbResultado of dbResultados) {
resultados.add(
_val.map()
.set('name', dbResultado.getString('name'))
.set('email', dbResultado.getString('email'))
.set('subject', dbResultado.getString('subject'))
.set('moment', dbResultado.getSQLTimestamp('moment'))
)
}
_out.json(
_val.map()
.set(
'total',
_db.queryFirst(`
SELECT COUNT(1) "total"
FROM contact
WHERE 1 = 1
${queryWhere}
`, queryFilter).getInt("total")
).set('resultados', resultados)
)

+ 50
- 0
server/services/contact/post.js View File

@ -0,0 +1,50 @@
const name = _req.getString('name')
const email = _req.getString('email')
const subject = _req.getString('subject')
const message = _req.getString('message')
const recaptchaValue = _req.get('recaptchaValue')
let recaptchaURL = ""
let recaptchaSecretKey = ""
if (_app.settings.getValues("recaptcha")) {
recaptchaURL = _app.settings.getValues("recaptcha").getString("url")
recaptchaSecretKey = _app.settings.getValues("recaptcha").getString("secret_key")
}
function addContact(){
_db.insert(
'contact',
_val.map()
.set('name', name)
.set('email', email)
.set('subject', subject)
.set('message', message)
.set('moment', _db.timestamp())
)
_out.json(
_val.map()
.set('result', true)
)
}
if (recaptchaURL && recaptchaSecretKey) {
const remoteRecaptcha = _remote.init("recaptcha")
remoteRecaptcha.setURLPrefix(
`${recaptchaURL}?secret=${recaptchaSecretKey}&response=${recaptchaValue}`
);
const responseRecaptcha = remoteRecaptcha.post()
const responseRecaptchaJSON = responseRecaptcha.json()
if (responseRecaptchaJSON.get("success")) {
addContact()
} else {
_out.json(
_val.map()
.set('result', false)
)
}
} else {
addContact()
}

+ 26
- 0
server/setup/001-language.js View File

@ -0,0 +1,26 @@
// -----------------------------------------------------------
//
// LANGUAGE
//
// -----------------------------------------------------------
_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)
);

+ 22
- 0
server/setup/002-page_status.js View File

@ -0,0 +1,22 @@
// -----------------------------------------------------------
//
// PAGE_STATUS
//
// -----------------------------------------------------------
_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")
);

+ 46
- 0
server/setup/003-content_type.js View File

@ -0,0 +1,46 @@
// -----------------------------------------------------------
//
// CONTENT_TYPE
//
// -----------------------------------------------------------
_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")
);

+ 30
- 0
server/setup/004-banner_type.js View File

@ -0,0 +1,30 @@
// -----------------------------------------------------------
//
// BANNER_TYPE
//
// -----------------------------------------------------------
_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")
);

+ 22
- 0
server/setup/005-functionality_type.js View File

@ -0,0 +1,22 @@
// -----------------------------------------------------------
//
// FUNCTIONALITY_TYPE
//
// -----------------------------------------------------------
_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", "a1d26bda-57cd-4ba1-9aa3-868714260b01")
.set("code", "contact-map")
.set("description", "Mapa")
);

+ 46
- 0
server/setup/006-page.js View File

@ -0,0 +1,46 @@
// -----------------------------------------------------------
//
// PAGE
//
// -----------------------------------------------------------
if (_db.query(`SELECT * FROM page`).size() == 0) {
_val.global().set('cluar:setup', true);
_db.insertIfNotExists(
"page",
_val.init()
.set("uid", "0194d0aa-c5ec-4f9d-abab-de6298c5f9e9")
.set("language_id", "b6804103-2f6c-4184-a431-0c8b94ea7322")
.set("parent_id", null)
.set("link", "/")
.set("title", "Principal")
.set("status_id", "e24a0cdf-c860-48f2-b597-689f165fd110")
.set("description", "")
.set("social_description", "")
.set("keywords", "")
.set("social_image", "")
.set("navigable", true)
.set("menu", true)
.set("menu_title", "")
.set("sorter", 10)
);
_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("navigable", true)
.set("menu", true)
.set("menu_title", "")
.set("sorter", 10)
);
}

+ 48
- 0
server/setup/007-configuration_parameter.js View File

@ -0,0 +1,48 @@
// -----------------------------------------------------------
//
// CONFIGURATION_PARAMETER
//
// -----------------------------------------------------------
if (_val.global().getBoolean('cluar:setup')) {
_db.insertIfNotExists(
"configuration_parameter",
_val.init()
.set("uid", "2c3a4663-8a09-409f-bddf-b1506b7b9fb7")
.set("code", "footer-address")
.set("description", "Rodapé - Endere\u00E7o")
);
_db.insertIfNotExists(
"configuration_parameter",
_val.init()
.set("uid", "199c3736-4996-4b7b-a565-3a2f45ae8971")
.set("code", "footer-email")
.set("description", "Rodapé - E-mail")
);
_db.insertIfNotExists(
"configuration_parameter",
_val.init()
.set("uid", "4188eaeb-da5e-4433-8944-2d80752c326d")
.set("code", "footer-phone")
.set("description", "Rodapé - Telefone")
);
_db.insertIfNotExists(
"configuration_parameter",
_val.init()
.set("uid", "7ac5d2fe-7c98-46b2-826c-f8f4d41f9857")
.set("code", "map-latitude")
.set("description", "Mapa - Latitude")
);
_db.insertIfNotExists(
"configuration_parameter",
_val.init()
.set("uid", "5502693e-8113-429b-852e-9a7364fc48d0")
.set("code", "map-longitude")
.set("description", "Mapa - Longitude")
);
}

+ 62
- 0
server/setup/008-configuration.js View File

@ -0,0 +1,62 @@
// -----------------------------------------------------------
//
// CONFIGURATION
//
// -----------------------------------------------------------
if (_val.global().getBoolean('cluar:setup')) {
_db.insertIfNotExists(
"configuration",
_val.init()
.set("uid", "f7ca0cbc-d439-41c0-879b-862ec11a232a")
.set("language_id", null)
.set("parameter_id", "7ac5d2fe-7c98-46b2-826c-f8f4d41f9857")
.set("value", "38.7038342")
);
_db.insertIfNotExists(
"configuration",
_val.init()
.set("uid", "96f3dacf-8059-4a32-8959-3827cc2d0422")
.set("language_id", null)
.set("parameter_id", "5502693e-8113-429b-852e-9a7364fc48d0")
.set("value", "-8.9698548")
);
_db.insertIfNotExists(
"configuration",
_val.init()
.set("uid", "1eae692a-d89c-475f-878e-56ba9a286435")
.set("language_id", "b6804103-2f6c-4184-a431-0c8b94ea7322")
.set("parameter_id", "199c3736-4996-4b7b-a565-3a2f45ae8971")
.set("value", "meu@e-mail.org")
);
_db.insertIfNotExists(
"configuration",
_val.init()
.set("uid", "5e991293-9430-48c9-8d0f-3673fa97b2ee")
.set("language_id", "dd9ca34e-3f70-461d-a42d-234651233658")
.set("parameter_id", "199c3736-4996-4b7b-a565-3a2f45ae8971")
.set("value", "my@e-mail.org")
);
_db.insertIfNotExists(
"configuration",
_val.init()
.set("uid", "6dad2c47-66ab-436a-a171-92fb95d3cbdc")
.set("language_id", null)
.set("parameter_id", "2c3a4663-8a09-409f-bddf-b1506b7b9fb7")
.set("value", "Netuno.org, Cluar CMS\r\nOpen Source")
);
_db.insertIfNotExists(
"configuration",
_val.init()
.set("uid", "c330772c-98b4-4ef7-8578-3fef4f8355c4")
.set("language_id", null)
.set("parameter_id", "4188eaeb-da5e-4433-8944-2d80752c326d")
.set("value", "99999 9999")
);
}

+ 80
- 0
server/setup/009-dictionary_entry.js View File

@ -0,0 +1,80 @@
// -----------------------------------------------------------
//
// DICTIONARY_ENTRY
//
// -----------------------------------------------------------
if (_val.global().getBoolean('cluar:setup')) {
_db.insertIfNotExists(
"dictionary_entry",
_val.init()
.set("uid", "8aa071de-147a-4774-bcba-414ba656a267")
.set("code", "contact-form-validate-message-required")
.set("description", "Formul\u00E1rio de Contato - Mensagem Valida\u00E7\u00E3o - Obrigat\u00F3rio")
);
_db.insertIfNotExists(
"dictionary_entry",
_val.init()
.set("uid", "31e6aeb9-f7a7-4c1c-9330-a294be006f32")
.set("code", "contact-form-validate-message-email")
.set("description", "Formul\u00E1rio de Contato - Mensagem Valida\u00E7\u00E3o - E-mail")
);
_db.insertIfNotExists(
"dictionary_entry",
_val.init()
.set("uid", "c5a81306-6f43-4dd5-9162-d14b9e836a81")
.set("code", "contact-form-fail")
.set("description", "Formul\u00E1rio de Contato - Falhou")
);
_db.insertIfNotExists(
"dictionary_entry",
_val.init()
.set("uid", "50d5d744-83a2-4998-97ba-cac58fc04567")
.set("code", "contact-form-success")
.set("description", "Formul\u00E1rio de Contato - Sucesso")
);
_db.insertIfNotExists(
"dictionary_entry",
_val.init()
.set("uid", "b0184ea5-c404-476e-bb6f-75943474e955")
.set("code", "contact-form-name")
.set("description", "Formul\u00E1rio de Contato - Nome")
);
_db.insertIfNotExists(
"dictionary_entry",
_val.init()
.set("uid", "a6909e12-db4a-4868-ba83-940c640ee43d")
.set("code", "contact-form-email")
.set("description", "Formul\u00E1rio de Contato - E-mail")
);
_db.insertIfNotExists(
"dictionary_entry",
_val.init()
.set("uid", "4bacb148-e1dc-44d0-a9de-5a435275b945")
.set("code", "contact-form-subject")
.set("description", "Formul\u00E1rio de Contato - T\u00EDtulo")
);
_db.insertIfNotExists(
"dictionary_entry",
_val.init()
.set("uid", "98c54df2-e402-49ef-9294-ebfd5741189b")
.set("code", "contact-form-message")
.set("description", "Formul\u00E1rio de Contato - Mensagem")
);
_db.insertIfNotExists(
"dictionary_entry",
_val.init()
.set("uid", "25a5efa8-24c2-441b-8304-ce597fe1604b")
.set("code", "contact-form-send")
.set("description", "Formul\u00E1rio de Contato - Enviar")
);
}

+ 170
- 0
server/setup/010-dictionary.js View File

@ -0,0 +1,170 @@
// -----------------------------------------------------------
//
// DICTIONARY
//
// -----------------------------------------------------------
if (_val.global().getBoolean('cluar:setup')) {
_db.insertIfNotExists(
"dictionary",
_val.init()
.set("uid", "e130993c-b071-4977-966f-3efa77f197b7")
.set("language_id", "b6804103-2f6c-4184-a431-0c8b94ea7322")
.set("entry_id", "8aa071de-147a-4774-bcba-414ba656a267")
.set("value", "<p>${label} \u00E9 de preenchimento obrigat\u00F3rio.<br></p>")
);
_db.insertIfNotExists(
"dictionary",
_val.init()
.set("uid", "3c61988c-1477-49e2-9e40-ee257bef372a")
.set("language_id", "b6804103-2f6c-4184-a431-0c8b94ea7322")
.set("entry_id", "31e6aeb9-f7a7-4c1c-9330-a294be006f32")
.set("value", "<p>${label} n\u00E3o \u00E9 um e-mail v\u00E1lido.<br></p>")
);
_db.insertIfNotExists(
"dictionary",
_val.init()
.set("uid", "6dfa7992-c17c-415d-8aea-c3830eb57df0")
.set("language_id", "b6804103-2f6c-4184-a431-0c8b94ea7322")
.set("entry_id", "c5a81306-6f43-4dd5-9162-d14b9e836a81")
.set("value", "<p>N\u00E3o foi poss\u00EDvel enviar os dados, tente novamente mais tarde.</p>")
);
_db.insertIfNotExists(
"dictionary",
_val.init()
.set("uid", "1a3b7585-cdd7-42cc-8a2e-dbcad7de6972")
.set("language_id", "b6804103-2f6c-4184-a431-0c8b94ea7322")
.set("entry_id", "50d5d744-83a2-4998-97ba-cac58fc04567")
.set("value", "<p>Os dados foram enviados com sucesso, obrigado.</p>")
);
_db.insertIfNotExists(
"dictionary",
_val.init()
.set("uid", "07a7e579-e7f5-4fae-a964-991995c9048e")
.set("language_id", "b6804103-2f6c-4184-a431-0c8b94ea7322")
.set("entry_id", "b0184ea5-c404-476e-bb6f-75943474e955")
.set("value", "<p>Nome</p>")
);
_db.insertIfNotExists(
"dictionary",
_val.init()
.set("uid", "aeb2ea01-ed37-41cd-9526-63c23627f24c")
.set("language_id", "b6804103-2f6c-4184-a431-0c8b94ea7322")
.set("entry_id", "a6909e12-db4a-4868-ba83-940c640ee43d")
.set("value", "<p>E-mail</p>")
);
_db.insertIfNotExists(
"dictionary",
_val.init()
.set("uid", "e34bdbbd-a4c8-43af-be57-ce212dadce88")
.set("language_id", "b6804103-2f6c-4184-a431-0c8b94ea7322")
.set("entry_id", "4bacb148-e1dc-44d0-a9de-5a435275b945")
.set("value", "<p>T\u00EDtulo</p>")
);
_db.insertIfNotExists(
"dictionary",
_val.init()
.set("uid", "6c267748-62bf-48cc-9e3d-6f65397ad6a4")
.set("language_id", "b6804103-2f6c-4184-a431-0c8b94ea7322")
.set("entry_id", "98c54df2-e402-49ef-9294-ebfd5741189b")
.set("value", "<p>Mensagem</p>")
);
_db.insertIfNotExists(
"dictionary",
_val.init()
.set("uid", "4d0e1d26-e443-4cd4-95cc-bae494294fff")
.set("language_id", "b6804103-2f6c-4184-a431-0c8b94ea7322")
.set("entry_id", "25a5efa8-24c2-441b-8304-ce597fe1604b")
.set("value", "<p>Enviar</p>")
);
_db.insertIfNotExists(
"dictionary",
_val.init()
.set("uid", "fc1cf2a5-5560-48aa-8683-01766e7f3cf1")
.set("language_id", "dd9ca34e-3f70-461d-a42d-234651233658")
.set("entry_id", "8aa071de-147a-4774-bcba-414ba656a267")
.set("value", "<p>${label} is mandatory.<br></p>")
);
_db.insertIfNotExists(
"dictionary",
_val.init()
.set("uid", "5d83858a-fecb-4529-a6cf-78126b811b45")
.set("language_id", "dd9ca34e-3f70-461d-a42d-234651233658")
.set("entry_id", "31e6aeb9-f7a7-4c1c-9330-a294be006f32")
.set("value", "<p>${label} is not a valid e-mail.<br></p>")
);
_db.insertIfNotExists(
"dictionary",
_val.init()
.set("uid", "007cf96b-1f7d-4952-ae4c-b114882bcb6c")
.set("language_id", "dd9ca34e-3f70-461d-a42d-234651233658")
.set("entry_id", "c5a81306-6f43-4dd5-9162-d14b9e836a81")
.set("value", "<p>Unable to send data, please try again later.<br></p>")
);
_db.insertIfNotExists(
"dictionary",
_val.init()
.set("uid", "2ef5fa06-5ac4-4bcd-a107-4bafae0bb0ab")
.set("language_id", "dd9ca34e-3f70-461d-a42d-234651233658")
.set("entry_id", "50d5d744-83a2-4998-97ba-cac58fc04567")
.set("value", "<p>Data has been sent successfully, thank you.<br></p>")
);
_db.insertIfNotExists(
"dictionary",
_val.init()
.set("uid", "e8723ce6-82d0-469f-b7d3-66fa6cb8c0ba")
.set("language_id", "dd9ca34e-3f70-461d-a42d-234651233658")
.set("entry_id", "b0184ea5-c404-476e-bb6f-75943474e955")
.set("value", "<p>Name</p>")
);
_db.insertIfNotExists(
"dictionary",
_val.init()
.set("uid", "bfeb5f5a-471d-441b-9ab8-ac5d65d50d06")
.set("language_id", "dd9ca34e-3f70-461d-a42d-234651233658")
.set("entry_id", "a6909e12-db4a-4868-ba83-940c640ee43d")
.set("value", "<p>E-mail</p>")
);
_db.insertIfNotExists(
"dictionary",
_val.init()
.set("uid", "6f12f4b0-362f-48e8-a8a5-6e68277a35d3")
.set("language_id", "dd9ca34e-3f70-461d-a42d-234651233658")
.set("entry_id", "4bacb148-e1dc-44d0-a9de-5a435275b945")
.set("value", "<p>Subject</p>")
);
_db.insertIfNotExists(
"dictionary",
_val.init()
.set("uid", "e43c4485-6370-486b-8125-5968a9ce992e")
.set("language_id", "dd9ca34e-3f70-461d-a42d-234651233658")
.set("entry_id", "98c54df2-e402-49ef-9294-ebfd5741189b")
.set("value", "<p>Message</p>")
);
_db.insertIfNotExists(
"dictionary",
_val.init()
.set("uid", "76ef9bd4-9244-4f32-afae-295fca3617ce")
.set("language_id", "dd9ca34e-3f70-461d-a42d-234651233658")
.set("entry_id", "25a5efa8-24c2-441b-8304-ce597fe1604b")
.set("value", "<p>Send</p>")
);
}

+ 39
- 0
server/setup/011-banner.js View File

@ -0,0 +1,39 @@
// -----------------------------------------------------------
//
// BANNER
//
// -----------------------------------------------------------
if (_val.global().getBoolean('cluar:setup')) {
_db.insertIfNotExists(
"banner",
_val.init()
.set("uid", "5126f3bb-51d1-489e-89dc-08087ed38e5e")
.set("page_id", "0194d0aa-c5ec-4f9d-abab-de6298c5f9e9")
.set("type_id", "d7ca6e7d-08a7-4ec0-8d16-9e3f09cd657c")
.set("image", _storage.filesystem('server', 'default-banner-background.jpg').file())
.set("image_title", "")
.set("image_alt", "")
.set("title", "Prestes a Voar")
.set("content", "<p>Aqui é onde voc\u00EA lan\u00E7a websites em uma outra dimens\u00E3o.</p>")
.set("sorter", 10)
.set("position_x", "")
.set("position_y", "")
);
_db.insertIfNotExists(
"banner",
_val.init()
.set("uid", "9302bc90-d687-494d-bfc0-b4aeff4df09e")
.set("page_id", "5002a742-e092-4c0b-8536-546bd1319c7f")
.set("type_id", "d7ca6e7d-08a7-4ec0-8d16-9e3f09cd657c")
.set("image", _storage.filesystem('server', 'default-banner-background.jpg').file())
.set("image_title", "")
.set("image_alt", "")
.set("title", "Ready to Fly")
.set("content", "<p>Here is where you launch websites into another dimension.</p>")
.set("sorter", 10)
.set("position_x", "")
.set("position_y", "")
);
}

+ 68
- 0
server/setup/012-content.js View File

@ -0,0 +1,68 @@
// -----------------------------------------------------------
//
// CONTENT
//
// -----------------------------------------------------------
if (_val.global().getBoolean('cluar:setup')) {
_db.insertIfNotExists(
"content",
_val.init()
.set("uid", "f110a9d1-c9cd-40a3-9359-7b472234e0ac")
.set("page_id", "0194d0aa-c5ec-4f9d-abab-de6298c5f9e9")
.set("type_id", "5d68fe7f-bfc9-424b-98bc-50c0bfe96f2f")
.set("image", "")
.set("image_title", "")
.set("image_alt", "")
.set("image_max_width", 0)
.set("title", "Documenta\u00E7\u00E3o")
.set("content", "<p>Veja a documenta\u00E7\u00E3o oficial online em:</p><ul><li><a href=\"https://github.com/netuno-org/cluar/blob/main/docs/README-pt_PT.md\" target=\"_blank\">Documenta\u00E7\u00E3o Oficial no GitHub</a></li></ul><p>A vers\u00E3o offline est\u00E1 na pasta <b>docs</b> que est\u00E1 na ra\u00EDz deste projeto, a\u00ED \u00E9 onde vai encontrar o README inicial.</p>")
.set("sorter", 20)
);
_db.insertIfNotExists(
"content",
_val.init()
.set("uid", "ed312fe0-b839-4367-82c1-1445464b39d0")
.set("page_id", "0194d0aa-c5ec-4f9d-abab-de6298c5f9e9")
.set("type_id", "5d68fe7f-bfc9-424b-98bc-50c0bfe96f2f")
.set("image", "")
.set("image_title", "")
.set("image_alt", "")
.set("image_max_width", 0)
.set("title", "C\u00F3digo Aberto & Comunidade")
.set("content", "<p>Todas as tecnologias utilizadas aqui s\u00E3o livres e abertas.</p><p>Colabore sugerindo melhorias ou reportando problemas em&nbsp;<a href=\"https://github.com/netuno-org/cluar/issues\" target=\"_blank\">issues</a>.</p><p>Para ajudar a comunidade publique as tuas d\u00FAvidas e dificuldades no <a href=\"https://forum.netuno.org/\" target=\"_blank\">forum</a>.&nbsp;<br></p><p>Visite o site do <a href=\"https://www.netuno.org/\" target=\"_blank\">Netuno</a>&nbsp;e siga-nos nas redes sociais e participe do nosso servidor no discord, os links est\u00E3o no rodap\u00E9.</p>")
.set("sorter", 30)
);
_db.insertIfNotExists(
"content",
_val.init()
.set("uid", "b0697f9e-3eb0-468f-bb71-13d5a9e211fe")
.set("page_id", "5002a742-e092-4c0b-8536-546bd1319c7f")
.set("type_id", "5d68fe7f-bfc9-424b-98bc-50c0bfe96f2f")
.set("image", "")
.set("image_title", "")
.set("image_alt", "")
.set("image_max_width", 0)
.set("title", "Documentation")
.set("content", "<p>See the official documentation online at:</p><ul><li><a href=\"https://github.com/netuno-org/cluar/blob/main/docs/README.md\" target=\"_blank\">Official Documentation on GitHub</a></li></ul><p>The offline version is in the <b>docs</b> folder at the root of this project, that's where you'll find the initial README.</p>")
.set("sorter", 20)
);
_db.insertIfNotExists(
"content",
_val.init()
.set("uid", "d7564744-f70f-4859-9070-86a3b2a83e91")
.set("page_id", "5002a742-e092-4c0b-8536-546bd1319c7f")
.set("type_id", "5d68fe7f-bfc9-424b-98bc-50c0bfe96f2f")
.set("image", "")
.set("image_title", "")
.set("image_alt", "")
.set("image_max_width", 0)
.set("title", "Open Source & Community")
.set("content", "<p>All technologies used here are free and open.</p><p>Collaborate by suggesting improvements or reporting problems in <a href=\"https://github.com/netuno-org/cluar/issues\" target=\"_blank\">issues</a>.</p><p>To help the community post your doubts and difficulties in the <a href=\"https://forum.netuno.org/\" target=\"_blank\">forum</a>.&nbsp;<br></p><p>Visit <a href=\"https://www.netuno.org/\" target=\"_blank\">Netuno</a>'s website and follow us on social media and join our discord server, the links are in the footer.</span></p>")
.set("sorter", 30)
);
}

+ 6
- 0
server/setup/_end.js View File

@ -0,0 +1,6 @@
// _core : Cluar
if (_val.global().getBoolean('cluar:setup')) {
Cluar.build({ images: true });
_val.global().set('cluar:setup', false)
}

+ 184
- 0
server/setup/_schema-form-01-action.js View File

@ -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", "3ebe2b59-b70a-4f02-9810-0ffe3e1de428")
.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", "07753188-f143-4a1b-90d1-2419fdb715eb")
.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", "4516e5ea-a885-422a-8169-759728f3bc42")
.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", "15ee335e-916a-4cbd-8713-3a8f7b5fae81")
.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", "867dc657-fef0-459d-8786-cf3fab4e812d")
.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)
)

+ 339
- 0
server/setup/_schema-form-02-banner.js View File

@ -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", "cd424013-f510-40a6-b4ff-df656b216988")
.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", "4da72a13-573d-4e93-baa3-d15278414b65")
.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", "d5cc7c1e-90d7-41d1-89dd-6bbdc076380d")
.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", "c0459f5d-9790-4665-94d2-03fd273a534a")
.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", "f780e8bc-59bc-4b91-af02-036c5317c606")
.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", "27221239-e634-4f5a-ac5f-a2afd5674007")
.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", "ba79bed3-0896-495e-a923-41e314546dd1")
.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", "6dc72c34-2052-4def-8440-0cee190eb2d7")
.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", "e621fc6f-6c64-42a2-afd1-40aae7e63272")
.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", "d8882b45-9ee3-489f-bd3e-d6f3283974c7")
.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)
)

+ 123
- 0
server/setup/_schema-form-03-banner_action.js View File

@ -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", "436790be-dc37-4124-859d-493a74e52a01")
.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", "e610e369-209b-405d-83fb-5150799cdbd3")
.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", "8a2b0dbe-aa1a-4672-8f12-c6771fc929ee")
.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)
)

+ 92
- 0
server/setup/_schema-form-04-banner_type.js View File

@ -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", "8834895d-5a4f-4d9b-bf07-37eb79d5156c")
.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", "1e59031d-f036-4080-9822-d4882b4f7493")
.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)
)

+ 122
- 0
server/setup/_schema-form-05-configuration.js View File

@ -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", "6717a732-9f27-4f17-8538-cb386290def7")
.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", "2e9a6f49-1032-483a-bbd7-424d4eda3f1b")
.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", "9bdfd818-e72f-4f80-8793-bbd298f5dc1f")
.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)
)

+ 92
- 0
server/setup/_schema-form-06-configuration_parameter.js View File

@ -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", "f915c874-bedf-46da-b4d0-e058b5a274cc")
.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", "36fbd4a7-a7e1-4cf7-83bd-c6f55b26ef9f")
.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)
)

+ 215
- 0
server/setup/_schema-form-07-contact.js View File

@ -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", "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", "e69e9d6a-46fa-41a9-a354-db7a50ebab84")
.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", "File")
.set("firebase", "")
.set("group_id", 0)
.set("height", 0)
.set("max", 0)
.set("min", 0)
.set("name", "file")
.set("notnull", false)
.set("primarykey", false)
.set("properties", "{}")
.set("rowspan", 0)
.set("tdheight", 0)
.set("tdwidth", 0)
.set("type", "file")
.set("uid", "ff8e3008-fa61-465f-8ad8-0d203f335b4f")
.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(
"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", "383226ec-6d56-4b1d-9b76-4ed5a098fbb5")
.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", "7b61a275-7ffd-41c8-b4f1-b490128a4b8c")
.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", "1f901bb0-1fd0-4100-81c5-8eab7f9fb810")
.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", "2a0a413b-55e0-4d5d-bdf8-df7538e9f6c7")
.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)
)

+ 308
- 0
server/setup/_schema-form-08-content.js View File

@ -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", "494865a5-81aa-41c8-ada9-7c020c1fd18b")
.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", "8528bf32-628e-464d-9e7c-f1cb190468c8")
.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", "b4fcfdd4-b52d-4cad-8071-9b0ab77cc5d9")
.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", "65e4d265-d2fb-43f7-a673-aa7f0957828f")
.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", "6dcc40ef-dc3c-40df-a0bb-6d1357b1146d")
.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", "c8335d46-13c3-4ce8-bab0-dadf62d59925")
.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", "160323a7-7f96-47e8-ba4d-fd71d63e0914")
.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", "b6558562-1ab6-4607-8cb2-4efddd33f4fe")
.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", "9339fe40-7ee7-42b3-8398-81295f0deefd")
.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)
)

+ 123
- 0
server/setup/_schema-form-09-content_action.js View File

@ -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", "8c4baf86-f887-40f4-a17c-eabc050a8522")
.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", "7168d030-8f72-4b1c-9852-bca2ff0ad7df")
.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", "b6010471-7eb2-4d30-abdd-8808f148f730")
.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)
)

+ 92
- 0
server/setup/_schema-form-10-content_type.js View File

@ -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", "6e097b77-da28-492d-bbe0-e42682ce2a0d")
.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", "7213904c-cfaa-4895-9240-b63e0d0ae7a7")
.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)
)

+ 122
- 0
server/setup/_schema-form-11-dictionary.js View File

@ -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", "bdf29a4e-ffb8-47d9-8765-2921e1b4ff85")
.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", "ee5e9e16-6a1f-4ec6-b6ff-c9a4827bde76")
.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", "192d3f52-1f86-425b-9efe-6d2d4a384525")
.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)
)

+ 92
- 0
server/setup/_schema-form-12-dictionary_entry.js View File

@ -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", "dba9422e-9459-4a28-8035-c85b07734b1d")
.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", "d25ea8f3-d917-4cb4-b872-3c9b4c6ca2be")
.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)
)

+ 215
- 0
server/setup/_schema-form-13-functionality.js View File

@ -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", "18e06695-7549-4ebb-9e0f-61e01be41653")
.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", "c4e4d209-b49b-4b01-87b0-4db1d2b425c4")
.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", "f11150bc-0074-4218-b223-f042465336f2")
.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", "a419fdd8-296d-4819-b23a-6dfe2a6f2792")
.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", "174d296e-9bd6-4dc6-8993-38462bf7daec")
.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", "b9e257c8-1a69-4679-a1e6-2d2033e6bb76")
.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)
)

+ 92
- 0
server/setup/_schema-form-14-functionality_type.js View File

@ -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", "1c8a6f6f-6301-4289-905d-d5a188a27fb0")
.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", "f09ff7d8-c137-4c0a-897a-6a883eb86853")
.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)
)

+ 153
- 0
server/setup/_schema-form-15-language.js View File

@ -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", "c168817d-af1f-48f4-9642-dc91b2682e88")
.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", "bdfc37be-440d-4e4e-be25-49e96449912c")
.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", "54e8c241-161a-4e34-a3cf-658da325e1cc")
.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", "bfdf44bb-d29c-4af3-9af0-538eee6bac94")
.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)
)

+ 277
- 0
server/setup/_schema-form-16-listing.js View File

@ -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", "54852c29-ef25-4bd2-9f14-e668d2d43142")
.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", "3a985828-6afc-45a6-b94f-d03b57ad2373")
.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", "b7b197ca-5f99-4182-b31c-7d9e2348ee8b")
.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", "28cf22f4-6c4f-4220-bb7e-31757dd4eb8c")
.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", "13b1636f-cd65-416b-9db5-36e39b9a3655")
.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", "a75fde7b-662e-478d-b99f-e474dd2672b8")
.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", "c413f624-6824-45b4-81ae-a0a426861b9b")
.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", "d70dec03-34a8-4904-94fa-fdb40f5b7bee")
.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)
)

+ 278
- 0
server/setup/_schema-form-17-listing_item.js View File

@ -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", "1ad71e25-1f70-4b40-aca8-4fe58f7c1e99")
.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", "4910bf69-9874-41fb-9201-b77b050ca78d")
.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", "05f7eb50-1c9c-4db8-add4-7d391b61895e")
.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", "bdda08f7-82be-485b-93c2-f8a507b18d73")
.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", "fba77d7a-4e74-4dfa-bd2c-3f42ce81d6b2")
.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", "50a6b57e-6f50-4a02-b5be-5069d86fb3cd")
.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", "314ae50b-c78a-41be-81c9-59355dc30f43")
.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", "d35be727-6704-4b2b-b456-c3f1f287ed50")
.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)
)

+ 92
- 0
server/setup/_schema-form-18-listing_type.js View File

@ -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", "6e53b352-908c-49de-8641-499b1faee2eb")
.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", "0ac769b9-9ff5-4cde-8aa4-330cfb57544a")
.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)
)

+ 432
- 0
server/setup/_schema-form-19-page.js View File

@ -0,0 +1,432 @@
/**
*
* 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", "cd1bc38d-c761-47dd-8e0d-831fe5219ada")
.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", "ba606e05-101e-460c-9f4a-e70dd8466fe1")
.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", "97897a8d-927a-4779-9dfb-d6fa51e71d94")
.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", "70c08925-d113-4291-87c5-82193449ce39")
.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", "85ba387c-50ac-4fac-b73a-fefe0c3c9efd")
.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", 2)
.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", "e473ed7c-1bf1-4eb9-b6a4-30ec3afdd8f4")
.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", 3)
.set("y", 9)
)
_form.createComponentIfNotExists(
"e6c40643-e58a-40aa-b430-7a003ec65246",
_val.init()
.set("colspan", 0)
.set("description", "")
.set("displayname", "Naveg\u00E1vel")
.set("firebase", "")
.set("group_id", 0)
.set("height", 0)
.set("max", 0)
.set("min", 0)
.set("name", "navigable")
.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", "6844ff4b-c633-4f7c-a7f0-95cebc31b9ee")
.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", "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", "85ad6551-9261-4f93-b9ef-65c15258afce")
.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", "48b54212-5f9d-424c-84e2-3014637ef450")
.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", "2f230651-93b6-4fbc-8443-0630e38bc9f9")
.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", "ab543246-5ee1-4406-94a7-78bba2cb3032")
.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", "6d163512-e298-4a78-b123-6a8b27b4feac")
.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", "0b4fda46-ba42-4f0e-aa9a-11f54f218308")
.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)
)

+ 92
- 0
server/setup/_schema-form-20-page_status.js View File

@ -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", "ba53638f-760a-4749-9b29-0308c7b74ff9")
.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", "0a8f3cad-e4ad-46d1-87c6-5ac9aec280be")
.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)
)

BIN
storage/filesystem/server/default-banner-background.jpg View File

Before After
Width: 1920  |  Height: 1080  |  Size: 213 KiB

+ 6
- 0
ui/.editor.config View File

@ -0,0 +1,6 @@
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 2

+ 2
- 1
ui/.gitignore View File

@ -7,9 +7,10 @@ node_modules/
.metadata/
.vscode
package-lock.json
pnpm-lock.yaml
yarn.lock
.Trash
*~*
*#*
*#*

+ 16
- 0
ui/README.md View File

@ -6,3 +6,19 @@
### 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
```

+ 3
- 2
ui/package.json View File

@ -18,7 +18,8 @@
"@ant-design/icons": "^5.1.4",
"@netuno/service-client": "^1.1.0",
"@netuno/ws-client": "^1.0.8",
"json-loader": "^0.5.7"
"json-loader": "^0.5.7",
"react-highlight-words": "^0.20.0"
},
"devDependencies": {
"@types/react": "^18.0.37",
@ -32,4 +33,4 @@
"vite": "^4.3.9",
"vite-plugin-imp": "^2.4.0"
}
}
}

+ 34
- 0
ui/src/components/cluar/Sync/index.jsx View File

@ -0,0 +1,34 @@
import React, { useState } from 'react';
import { Button, notification } from 'antd';
import _service from '@netuno/service-client';
function CluarSync() {
const [ loading, setLoading ] = useState(false);
const onClick = () => {
setLoading(true);
_service({
method: 'GET',
url: "/admin/cluar/sync",
success: (response) => {
notification.success({
message: 'Sincronização',
description: 'A sincronização de todos os dados no website foi realizada.'
});
setLoading(false);
},
fail: (e) => {
console.error("Service admin/cluar/images error.", e);
notification.error({
message: 'Sincronização',
description: 'Não foi possível sincronizar todos os dados no website.'
});
setLoading(false);
}
});
};
return <Button onClick={onClick} loading={loading}>Sincronizar com o website.</Button>
}
export default CluarSync;

+ 216
- 0
ui/src/containers/ContactTable/index.jsx View File

@ -0,0 +1,216 @@
import React, { useEffect, useState, useRef } from 'react';
import { Table, Input, Button, notification } from 'antd';
import { SearchOutlined } from '@ant-design/icons';
import Highlighter from 'react-highlight-words';
import _service from '@netuno/service-client';
const { Column } = Table;
const pageSize = 10;
const columnsNames = [ 'name', 'email', 'subject', 'moment' ];
const columnsTitles = {
name: 'Nome',
email: 'E-mail',
subject: 'Título',
moment: 'Momento'
};
function ContactTable() {
const [ uid, setUID ] = useState(null);
const [ dataSource, setDataSource ] = useState([]);
const [ loading, setLoading ] = useState(true);
const [ filter, setFilter ] = useState({
name: '',
email: '',
subject: '',
moment: ''
});
const [ pagination, setPagination ] = useState({
current: 1,
pageSize,
total: 0
});
const [ sorter, setSorter ] = useState({
field: '',
order: ''
});
const searchInput = useRef();
const loadTable = (settings) => {
if (settings == null || typeof settings == "undefined") {
settings = { state: null };
}
if (typeof settings.filter == 'undefined') {
settings.filter = filter;
}
if (typeof settings.pagination == 'undefined') {
settings.pagination = pagination;
}
if (typeof settings.sorter == 'undefined') {
settings.sorter = sorter;
}
setFilter(settings.filter);
setSorter(settings.sorter);
setPagination(settings.pagination);
setLoading(true);
_service({
method: 'POST',
url: "/admin/contact/list",
data: { filter, pagination, sorter },
success: (response) => {
setDataSource(response.json.resultados);
setPagination({
...pagination,
total: response.json.total
});
setLoading(false);
},
fail: (e) => {
console.error("Service admin/tabela error.", e);
notification.error({
message: 'Tabela',
description: 'Não foi possível carregar os dados.'
});
setDataSource([]);
setLoading(false);
}
});
}
const handleTableChange = (pagination, filters, sorter) => {
loadTable({ pagination, filters, sorter: { field: sorter.field, order: sorter.order } });
};
const handleSearch = (selectedKeys, confirm, value, dataIndex) => {
if (value != null && value != '') {
filter[dataIndex] = value;
}
confirm();
loadTable({ filter });
};
const handleReset = (clearFilters, dataIndex) => {
filter[dataIndex] = '';
clearFilters();
loadTable({ filter });
};
const getColumnSearchProps = (dataIndex) => {
return {
filterDropdown: ({ setSelectedKeys, selectedKeys, confirm, clearFilters }) => {
let field = null;
let width = 200;
let filterValue = '';
let buttons = [];
buttons.push(
<Button
key={buttons.length}
type="primary"
onClick={() => handleSearch(selectedKeys, confirm, selectedKeys.length > 0 ? selectedKeys[0] : '', dataIndex)}
icon={<SearchOutlined />}
size="small"
style={{ width: 90, marginRight: 8 }}
>
Filtrar
</Button>
);
buttons.push(
<Button key={buttons.length} onClick={() => handleReset(clearFilters, dataIndex)} size="small" style={{ width: 90 }}>
Limpar
</Button>
);
field = (
<Input
ref={searchInput}
placeholder={ `${columnsTitles[dataIndex]}...`}
value={selectedKeys[0]}
onChange={e => setSelectedKeys(e.target.value ? [e.target.value] : [])}
onPressEnter={() => handleSearch(selectedKeys, confirm, selectedKeys.length > 0 ? selectedKeys[0] : '', dataIndex)}
/>
);
return (
<div style={{ padding: 8 }}>
<div style={{ width, marginBottom: 8, display: 'block' }}>
{ field }
</div>
{ buttons }
</div>
);
},
filterIcon: filtered => {
return (
<SearchOutlined
style={{ color: filtered ? '#dc1c2e' : undefined }}
/>
);
},
onFilter: (value, record) => {
return record;
},
onFilterDropdownOpenChange: visible => {
if (visible && searchInput.current) {
window.setTimeout(() => searchInput.current.select());
}
},
render: text => {
if (text && filter != null && filter[dataIndex] != null && filter[dataIndex] != '') {
return (
<Highlighter
highlightStyle={{ backgroundColor: '#dc1c2e', color: '#ffffff', padding: 0 }}
searchWords={ [ filter[dataIndex] ] }
autoEscape
textToHighlight={text.toString()}
/>
);
}
return text;
},
};
};
useEffect(() => {
loadTable();
const handleNavigationLoad = () => {
$('[netuno-navigation]').find('a').on('netuno:click', (e) => {
const link = $(e.target);
if (link.is('[netuno-navigation-dashboard]')) {
// Memu > Dashboard > Clicked!
loadTable();
}
});
};
netuno.addNavigationLoad(handleNavigationLoad);
return () => {
netuno.removeNavigatoinLoad(handleNavigationLoad);
};
}, []);
return (
<Table
size="small"
loading={loading}
pagination={pagination}
dataSource={dataSource}
onChange={handleTableChange}
>
{columnsNames.map(
(columnName) =>
<Column
title={columnsTitles[columnName]}
dataIndex={columnName}
key={columnName}
sorter={true}
{ ...getColumnSearchProps(columnName) }
/>
)}
</Table>
);
}
export default ContactTable;

+ 0
- 0
ui/src/containers/ContactTable/index.less View File


+ 27
- 16
ui/src/containers/DashboardContainer/index.jsx View File

@ -1,27 +1,38 @@
import React, { useState, useEffect, useRef } from "react";
import React from "react";
import MyButton from "../../components/MyButton";
import { Typography, Tabs } from "antd";
import "./index.less";
import ContactTable from "../ContactTable";
function DashboardContainer() {
const [counter, setCounter] = useState(0);
import CluarSync from "../../components/cluar/Sync";
const refButton = useRef();
import "./index.less";
useEffect(() => {
$(refButton.current).fadeOut(250).fadeIn(250);
}, [counter]);
const { Title } = Typography;
const onClick = () => {
setCounter(counter + 1);
};
const { TabPane } = Tabs;
return (
<div className="my-dashboard">
<div ref={refButton} className="my-dashboard__button">
<MyButton text={`ReactJS ⚡ Ant.Design 👉 Click me! ${counter}`} onClick={onClick} />
function DashboardContainer() {
const Tab1 = () => {
return (
<div>
<p>Lista de contactos submetidos pelo formulário do website.</p>
<ContactTable />
</div>
);
};
const item = [
{
label: 'Contactos',
key: '1',
children: <Tab1 />,
},
];
return (
<div>
<Title level={2}>Dashboard</Title>
<Tabs items={item} />
<CluarSync />
</div>
);
}


+ 5
- 20
ui/src/index.jsx View File

@ -1,15 +1,9 @@
import React from "react";
import ReactDOM from "react-dom/client";
import { ConfigProvider, theme } from "antd";
import _service from '@netuno/service-client';
import DashboardContainer from "./containers/DashboardContainer";
import { ConfigProvider, theme } from "antd";
import antLocale_enGB from "antd/lib/locale/en_GB";
import antLocale_enUS from "antd/lib/locale/en_US";
import antLocale_esES from "antd/lib/locale/es_ES";
import antLocale_ptBR from "antd/lib/locale/pt_BR";
import antLocale_ptPT from "antd/lib/locale/pt_PT";
_service.config({
prefix: netuno.config.urlServices
});
@ -23,23 +17,14 @@ if (dashboardContainer) {
<ConfigProvider
theme={{
token: {
colorPrimary: '#5b5ce1',
colorLink: '#5b5ce1',
colorPrimary: '#1178FF',
colorLink: '#1178FF',
borderRadius: 5,
},
algorithm: theme.darkAlgorithm
algorithm: theme.defaultAlgorithm
}}
locale={
{
'en_us': antLocale_enUS,
'en_gb': antLocale_enGB,
'es_es': antLocale_esES,
'pt_br': antLocale_ptBR,
'pt_pt': antLocale_ptPT
}[netuno.config.langCode]
}
>
<DashboardContainer/>
<DashboardContainer />
</ConfigProvider>
);
}


+ 1
- 0
ui/src/styles/main.less View File

@ -1,3 +1,4 @@
/*** GLOBAL CSS ***/
@import '~antd/dist/reset.css';

+ 1
- 0
ui/vite.config.js View File

@ -15,6 +15,7 @@ export default defineConfig({
],
build: {
sourcemap: true,
chunkSizeWarningLimit: 2048,
rollupOptions: {
input: 'src/index.jsx',
output: {


+ 6
- 0
website/.editor.config View File

@ -0,0 +1,6 @@
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 2

+ 1
- 0
website/.env.sample View File

@ -0,0 +1 @@
REACT_APP_RECAPTCHA_SITE_KEY=***

+ 45
- 0
website/.gitignore View File

@ -0,0 +1,45 @@
# 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
.env
npm-debug.log*
yarn-debug.log*
yarn-error.log*
package-lock.json
yarn.lock
pnpm-lock.yaml
*~*
*#*
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/

+ 68
- 0
website/README.md View File

@ -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.<br />
Open [http://localhost:3000](http://localhost:3000) to view it in the browser.
The page will reload if you make edits.<br />
You will also see any lint errors in the console.
### `yarn test`
Launches the test runner in the interactive watch mode.<br />
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.<br />
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.<br />
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

+ 19
- 0
website/build.sh View File

@ -0,0 +1,19 @@
#!/bin/sh
if [ -f "build/cluarData.js" ]; then
mv build/cluarData.js .cluarData.js
mv build/sitemap.xml .sitemap.xml
fi
if [ -d "build/images" ]; then
rsync -av build/images/ public/images/
fi
npm install --force
npm run build
if [ -f ".cluarData.js" ]; then
mv .cluarData.js build/cluarData.js
mv .sitemap.xml build/sitemap.xml
fi

+ 92
- 0
website/index.html View File

@ -0,0 +1,92 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
<link rel="icon" href="/images/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="theme-color" content="#000000" />
<meta name="keywords" content="" />
<meta name="description" content="" />
<link rel="apple-touch-icon" href="/images/favicon-192.png" />
<link rel="manifest" href="/manifest.json" />
<title>Cluar CMS</title>
<style>
body {
background-color: #ffffff;
}
.base-loading__container {
padding-top: calc((100vh / 2) - 90px);
width: 250px;
margin-left: auto;
margin-right: auto;
text-align: center;
}
.base-loading {
display: inline-block;
position: relative;
width: 80px;
height: 80px;
}
.base-loading div {
display: inline-block;
position: absolute;
left: 8px;
width: 16px;
background: #1178FF;
animation: base-loading 1.2s cubic-bezier(0, 0.5, 0.5, 1) infinite;
}
.base-loading div:nth-child(1) {
left: 8px;
animation-delay: -0.24s;
}
.base-loading div:nth-child(2) {
left: 32px;
animation-delay: -0.12s;
}
.base-loading div:nth-child(3) {
left: 56px;
animation-delay: 0;
}
@keyframes base-loading {
0% {
top: 8px;
height: 64px;
}
50%,
100% {
top: 24px;
height: 32px;
}
}
</style>
</head>
<body>
<div class="base-loading__container">
<div class="base-loading">
<div></div>
<div></div>
<div></div>
</div>
</div>
<div id="root" style="display: none;"></div>
<script>
(function () {
var baseLodingContainer = document.querySelector('.base-loading__container');
window.addEventListener("DOMContentLoaded", function () {
baseLodingContainer.remove();
document.querySelector('#root').style.display = 'block';
}, false);
})();
</script>
<link href='https://api.tiles.mapbox.com/mapbox-gl-js/v1.8.1/mapbox-gl.css' rel='stylesheet' />
<script type="module" src="/src/main.jsx"></script>
</body>
</html>

+ 42
- 0
website/package.json View File

@ -0,0 +1,42 @@
{
"name": "cluar",
"private": true,
"version": "1.0.0",
"type": "module",
"scripts": {
"dev": "vite",
"build": "vite build",
"lint": "eslint src --ext js,jsx --report-unused-disable-directives --max-warnings 0",
"preview": "vite preview"
},
"dependencies": {
"@animated-burgers/burger-slip": "^1.1.2",
"@netuno/service-client": "^1.2.0",
"@ant-design/icons": "^5.2.4",
"antd": "^5.5.2",
"classnames": "^2.3.2",
"prop-types": "^15.8.1",
"less": "4.1.3",
"react-ga": "^3.3.1",
"react-google-recaptcha": "^2.1.0",
"react-icons": "^4.7.1",
"react-map-gl": "^7.0.20",
"react-router-dom": "^6.4.4",
"react-scroll-parallax": "^3.3.2",
"sal.js": "^0.8.5",
"sprintf-js": "^1.1.2",
"react": "^18.2.0",
"react-dom": "^18.2.0"
},
"devDependencies": {
"@types/react": "^18.0.37",
"@types/react-dom": "^18.0.11",
"@vitejs/plugin-react-swc": "^3.0.0",
"eslint": "^8.38.0",
"eslint-plugin-react": "^7.32.2",
"eslint-plugin-react-hooks": "^4.6.0",
"eslint-plugin-react-refresh": "^0.3.4",
"vite": "^4.3.9",
"vite-plugin-imp": "^2.4.0"
}
}

BIN
website/public/images/favicon-1024.png View File

Before After
Width: 1024  |  Height: 1024  |  Size: 26 KiB

BIN
website/public/images/favicon-192.png View File

Before After
Width: 192  |  Height: 192  |  Size: 5.3 KiB

BIN
website/public/images/favicon-512.png View File

Before After
Width: 512  |  Height: 512  |  Size: 12 KiB

BIN
website/public/images/favicon.ico View File

Before After

BIN
website/public/images/logo.png View File

Before After
Width: 1450  |  Height: 339  |  Size: 23 KiB

+ 30
- 0
website/public/manifest.json View File

@ -0,0 +1,30 @@
{
"short_name": "CLUAR",
"name": "CLUAR - CMS for ReactJS and Website Backoffice",
"icons": [
{
"src": "images/favicon.ico",
"sizes": "64x64 32x32 24x24 16x16",
"type": "image/x-icon"
},
{
"src": "images/favicon-192.png",
"type": "image/png",
"sizes": "192x192"
},
{
"src": "images/favicon-512.png",
"type": "image/png",
"sizes": "512x512"
},
{
"src": "images/favicon-1024.png",
"type": "image/png",
"sizes": "1024x1024"
}
],
"start_url": ".",
"display": "standalone",
"theme_color": "#ffffff",
"background_color": "#ffffff"
}

+ 3
- 0
website/public/robots.txt View File

@ -0,0 +1,3 @@
# https://www.robotstxt.org/robotstxt.html
User-agent: *
Disallow:

+ 87
- 0
website/src/App.jsx View File

@ -0,0 +1,87 @@
import React from 'react';
import { ConfigProvider, Layout } from 'antd';
import {
BrowserRouter,
Routes,
Route,
Navigate
} from "react-router-dom";
import Analytics from './common/Analytics';
import Cluar from './common/Cluar';
import Builder from './common/Builder';
import BaseCookies from './base/Cookies';
import BaseHeader from './base/Header';
import BaseFooter from './base/Footer';
import NotFound from './pages/NotFound';
import './styles/App.less';
const { Content } = Layout;
function App() {
let urlLang = null;
if (urlLang = /^\/([a-z]+)\//ig.exec(window.location.pathname)) {
Cluar.changeLanguage(urlLang[1]);
} else {
const storageLocale = window.localStorage.getItem('locale');
if (storageLocale == null) {
Cluar.changeLanguage(Cluar.defaultLanguage().locale);
} else {
Cluar.changeLanguage(storageLocale);
}
}
const routes = [];
for (const language of Cluar.languages()) {
if (!Cluar.pages()[language.code]) {
continue;
}
const subroutes = [];
for (const page of Cluar.pages()[language.code]) {
if (page.navigable == false || page.link.indexOf('//') >= 0) {
continue;
}
subroutes.push(
<Route key={`/${language.locale}${page.link}`} path={`/${language.locale}${page.link}`} exact element={<Builder page={page} />} />
);
}
routes.push(
<Route key={`/${language.locale}/`} path={`/${language.locale}/`}>
{subroutes}
</Route>
);
}
return (
<ConfigProvider
theme={{
token: {
colorPrimary: '#1178FF',
fontSize: 16,
borderRadius: 20
}
}}
>
<BrowserRouter>
{ Cluar.isGAEnabled() && <Route component={Analytics} />}
<div className="page">
<Layout>
<BaseHeader />
<Content>
<Routes>
<Route path="/" exact element={<Navigate to={`/${Cluar.currentLanguage().locale}/`} />} />
{routes}
<Route element={<NotFound />} />
</Routes>
</Content>
<BaseFooter />
<BaseCookies />
</Layout>
</div>
</BrowserRouter>
</ConfigProvider>
);
}
export default App;

+ 36
- 0
website/src/base/Cookies/index.jsx View File

@ -0,0 +1,36 @@
import React, { useState } from 'react';
import { Button } from 'antd';
import Cluar from '../../common/Cluar';
import './index.less';
function BaseCookies() {
const [acceptedCookies, setAcceptedCookies] = useState(sessionStorage.getItem('cookies-accepted'));
const onClick = () => {
sessionStorage.setItem('cookies-accepted', '1');
setAcceptedCookies('1');
}
if (acceptedCookies === '1') {
return null;
}
return (
<div className="cookies">
<div className="cookies--popup">
<div className="cookies--popup__content">
<p>
{Cluar.currentLanguage().locale === 'pt' && <>Utilizamos cookies no nosso website para lhe proporcionar a experiência mais relevante, para mais informações consulte a nossa <a href={`/${Cluar.currentLanguage().locale}/politica-privacidade`}>política de cookies e privacidade</a>.</> }
{Cluar.currentLanguage().locale === 'en' && <>We use cookies to provide you the best experience, check our <a href={`/${Cluar.currentLanguage().locale}/privacy-policy`}>cookies and privacy policy</a>.</> }
</p>
<Button type="primary" shape="round" onClick={onClick}>
{Cluar.currentLanguage().locale === 'pt' && <>Aceitar</>}
{Cluar.currentLanguage().locale === 'en' && <>Accept</>}
</Button>
</div>
</div>
</div>
)
}
export default BaseCookies;

+ 32
- 0
website/src/base/Cookies/index.less View File

@ -0,0 +1,32 @@
.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;
@media only screen and (max-width: 800px) {
padding: 20px 20px;
}
display: flex;
justify-content: space-between;
p {
margin-bottom: 0;
}
@media only screen and (max-width: 768px) {
display: block;
p {
margin-bottom: 1em;
}
}
}
}
}

+ 68
- 0
website/src/base/Footer/index.jsx View File

@ -0,0 +1,68 @@
import React from 'react';
import { Layout, Row, Col } from 'antd';
import { PhoneOutlined, HomeOutlined, MailOutlined } from '@ant-design/icons';
import { FaHome, FaPhone, FaEnvelope, FaYoutube, FaGithub, FaFacebook, FaLinkedin, FaTwitter, FaInstagram, FaDiscord } from 'react-icons/fa';
import { RiOpenSourceFill } from 'react-icons/ri';
import Configuration from '../../components/Configuration';
import './index.less';
const { Footer } = Layout;
function BaseFooter() {
return (
<Footer>
<Row className="ant-layout-footer__wrapper" align="middle" gutter={[0, 10]}>
<Col xs={24} lg={8}>
<div className="logo" data-sal="slide-up" data-sal-duration="2000" data-sal-easing="ease-out-cubic">
<img alt="logo" src="/images/logo.png" />
</div>
</Col>
<Col xs={{ span: 24 }} lg={{ span: 8, offset: 8 }}>
<Row className="footer__address">
<Col><HomeOutlined /></Col>
<Col>&nbsp;</Col>
<Col>
<address><Configuration parameter="footer-address" multilines/></address>
</Col>
</Row>
<Row>
<Col>
<p><PhoneOutlined /> <Configuration parameter="footer-phone"/></p>
</Col>
</Row>
<Row>
<Col>
<p><MailOutlined /> <Configuration parameter="footer-email"/></p>
</Col>
</Row>
<p className="footer__social-links">
<a href="https://github.com/netuno-org" className="share-icons">
<FaGithub />
</a>
<a href="https://www.youtube.com/channel/UCYY1Nz6T2NJtP29vba2fqkg" className="share-icons">
<FaYoutube />
</a>
<a href="https://twitter.com/netuno_org" className="share-icons">
<FaTwitter />
</a>
<a href="https://www.linkedin.com/company/netuno-org/" className="share-icons">
<FaLinkedin />
</a>
<a href="https://discord.gg/4sfXG6YWFu" className="share-icons">
<FaDiscord />
</a>
<a href="https://www.facebook.com/netuno.org/" className="share-icons">
<FaFacebook />
</a>
<a href="https://www.instagram.com/netuno_org/" className="share-icons">
<FaInstagram />
</a>
</p>
</Col>
</Row>
</Footer>
);
}
export default BaseFooter;

+ 130
- 0
website/src/base/Footer/index.less View File

@ -0,0 +1,130 @@
@import "../../styles/variables.less";
.ant-layout-footer {
z-index: 3;
width: 100%;
position: relative;
padding: 20px 20px 20px 20px;
box-shadow: 0 1px 3px 0 rgba(0, 0, 0, .2),
0 1px 1px 0 rgba(0, 0, 0, .14),
0 2px 1px -1px rgba(0, 0, 0, .12);
background: @footer-background !important;
color: @footer-color !important;
&__wrapper{
width: 100%;
max-width: @site-max-width;
margin: auto;
}
.logo {
img {
width: 100%;
max-width: 200px;
}
}
@media only screen and (max-width: @header-mobile-width) {
text-align: center;
padding: 20px 0 10px;
> div:last-child {
padding: 0 20px;
}
}
h1 {
font-size: 25px;
padding: 0 10px;
@media only screen and (min-width: @header-desktop-width) {
margin: 0 calc((100% - @header-desktop-width) / 2);
}
@media only screen and (max-width: @header-mobile-width) {
width: 100%;
margin: 0 auto;
font-size: 20px;
}
}
.line {
height: 20px;
opacity: .5;
border: 0;
border-radius: 50%;
border-bottom: 2px solid @primary-color;
width: 100%;
}
.footer {
&__links-bar,
&__copyright {
padding: 0 10px;
display: inline-block;
width: 50%;
font-size: .875em;
a {
color: @footer-color;
text-decoration: underline;
}
@media screen and (min-width: @header-desktop-width) {
width: calc(50% - calc((100% - @header-desktop-width) / 2));
}
@media only screen and (max-width: @header-mobile-width) {
display: block;
width: 100%;
margin: 20px auto !important;
font-size: 12px;
text-align: center;
}
}
&__links-bar {
margin: 20px auto;
@media screen and (min-width: @header-desktop-width) {
margin-left: calc((100% - @header-desktop-width) / 2);
}
}
&__copyright {
color: @footer-color;
text-align: right;
@media screen and (min-width: @header-desktop-width) {
margin-right: calc((100% - @header-desktop-width) / 2);
}
}
&__cellphone {
color: @footer-color;
text-align: left;
@media screen and (min-width: @header-desktop-width) {
margin-right: calc((100% - @header-desktop-width) / 2);
}
}
&__copyright,
&__cellphone {
@media screen and (max-width: @header-mobile-width) {
text-align: center;
}
}
&__address {
padding-top: 10px;
}
&__social-links {
padding-top: 10px;
>a {
margin-right: 10px;
}
}
}
}

+ 182
- 0
website/src/base/Header/index.jsx View File

@ -0,0 +1,182 @@
import React, { useState } from 'react';
import { Layout, Menu } from 'antd';
import { GlobalOutlined } from '@ant-design/icons';
import Burger from '@animated-burgers/burger-slip';
import '@animated-burgers/burger-slip/dist/styles.css';
import classNames from 'classnames';
import {
Route,
Link
} from "react-router-dom";
import Cluar from '../../common/Cluar';
import Builder from '../../common/Builder';
import './index.less';
const { Header } = Layout;
const { SubMenu } = Menu;
function BaseHeader() {
const [burgerMenu, setBurgerMenu] = useState(false);
const [activeMenu, setActiveMenu] = useState('main');
const handleMenuClick = (selectMenu) => {
setBurgerMenu(false);
if (selectMenu) {
setActiveMenu(selectMenu);
}
window.scrollTo(0, 0);
};
const menuLanguages = {
label: Cluar.currentLanguage().code,
key: "langs",
icon: <GlobalOutlined />,
children: []
};
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.children.push({
key: language.code,
label: (
<div
onClick={() => {
Cluar.changeLanguage(language.locale);
window.localStorage.setItem('locale', Cluar.currentLanguage().locale);
window.location.href = `/${language.locale}/`;
}}
>
{language.description}
</div>
)
});
}
const buildChildren = (page) => {
const children = Cluar.pages()[language.code]
.filter((p) => p.parent === page.link);
if (children.length === 0) {
return;
}
return children.map((p) => {
const key = p.link;
subMenuKeys.push(key);
if (p.menu) {
return {
key,
label: p.navigable ? (
p.link.indexOf('//') >= 0 ? (
<a href={`${p.link}`} target="_blank">{p.title}</a>
) : (
<Link to={`/${Cluar.currentLanguage().locale}${p.link}`} onClick={() => handleMenuClick(key)}>
{p.title}
</Link>
)
) : (
<a>{p.title}</a>
),
children: buildChildren(p)
}
}
});
}
const buildMenu = (page) => {
if (page.menu && language.code === Cluar.currentLanguage().code) {
const key = `${page.link}`;
subMenuKeys.push(key);
if (!page.parent && page.menu) {
return ({
label: page.navigable ? (
page.link.indexOf('//') >= 0 ? (
<a href={`${page.link}`} target="_blank">{page.title}</a>
) : (
<Link to={`/${Cluar.currentLanguage().locale}${page.link}`} onClick={() => handleMenuClick(key)}>
{page.title}
</Link>
)
) : (
<a>{page.title}</a>
),
key,
children: buildChildren(page)
});
}
}
return;
};
const subroutes = [];
for (const page of Cluar.pages()[language.code]) {
if (page.menu && page.parent === "" && language.code === Cluar.currentLanguage().code) {
menu.push(
buildMenu(page, 0)
);
}
}
}
return (
<Header className={classNames({ 'header-burger-open': burgerMenu })}>
<div className="ant-layout-header__wrapper">
<div className="logo">
<Link to={`/${Cluar.currentLanguage().locale}/`} onClick={() => handleMenuClick('/')}>
<img alt="logo" src="/images/logo.png" />
</Link>
</div>
<div className={
classNames({
'menu': true
})
}>
<Menu
theme="light"
mode="horizontal"
defaultSelectedKeys={[activeMenu]}
selectedKeys={[activeMenu]}
items={menu}
/>
</div>
<div className={
classNames({
'menu': true,
'menu-burger': true,
'menu-burger-open': burgerMenu
})
}>
<Menu
theme="light"
mode="inline"
defaultSelectedKeys={[activeMenu]}
selectedKeys={[activeMenu]}
openKeys={subMenuKeys}
items={menu}
/>
</div>
<div className="menu-burger-button">
<Burger isOpen={burgerMenu} onClick={() => { setBurgerMenu(!burgerMenu); }} />
</div>
<Menu
theme="light"
className="menu-languages"
mode={'horizontal'}
defaultSelectedKeys={[activeMenu]}
selectedKeys={[activeMenu]}
items={[menuLanguages]}
/>
</div>
</Header>
);
}
export default BaseHeader;

+ 206
- 0
website/src/base/Header/index.less View File

@ -0,0 +1,206 @@
@import "../../styles/variables.less";
.ant-layout-header {
padding: 0 calc((100% - @header-desktop-width) / 2);
position: fixed;
display: flex;
justify-content: center;
flex-direction: row;
z-index: 1000;
top: 0;
width: 100%;
height: @header-size !important;
line-height: @header-size !important;
background: @header-background !important;
box-shadow: 0 0px 10px 7px rgba(0, 0, 0, 0.25);
@media (max-width: @header-mobile-width) {
padding: 0 20px !important;
height: @header-size-mobile !important;
line-height: @header-size-mobile !important;
}
&__wrapper{
width: 100%;
max-width: @site-max-width;
display: flex;
}
>*:not(.menu-burger-open) {
z-index: 3;
}
&.header-burger-open .menu {
z-index: 0;
}
.logo {
display: flex;
align-items: center;
justify-content: center;
width: @logo-width;
height: auto;
a {
display: flex;
align-items: center;
justify-content: center;
img {
width: auto;
height: 50px;
}
}
@media only screen and (max-width: @header-mobile-width) {
width: auto;
max-width: 400px;
a {
img {
max-width: 124px;
height: auto;
}
}
}
}
.menu-languages {
line-height: @header-line-height !important;
background-color: transparent;
color: @header-menu-color;
border-bottom: none;
display: flex;
width: 150px !important;
.ant-menu-submenu-title:hover {
color: @header-menu-color-hover !important;
}
li {
margin-bottom: 20px !important;
display: inline;
&:hover {
border-color: @header-menu-color-hover !important;
}
}
}
.menu {
width: 100%;
line-height: @header-line-height !important;
@media only screen and (max-width: @header-mobile-width) {
display: none;
}
ul {
width: 100%;
background-color: transparent;
margin-left: auto;
border-bottom: none;
border-right: none;
justify-content: flex-end;
li {
border: 0 !important;
background-color: transparent !important;
&:after {
content: unset;
}
@media screen and (max-width: @header-mobile-width) {
display: block;
}
&:hover {
a {
color: @header-menu-color-hover;
}
border-color: @header-menu-color-hover !important;
}
a {
color: @header-menu-color;
font-size: 1em;
}
}
}
&-languages {
margin-left: 0 !important;
@media screen and (max-width: @header-mobile-width) {
margin-right: 32px;
margin-left: auto !important;
}
}
}
.menu-burger-button {
position: absolute;
width: auto;
height: auto;
top: calc(@header-size / 4);
right: calc(@header-size / 4);
@media only screen and (min-width: @header-mobile-width) {
display: none;
}
@media only screen and (max-width: @header-mobile-width) {
top: calc(@header-size-mobile / 4);
}
.burger {
height: calc(@header-size-mobile / 2);
}
}
.menu-burger {
@media only screen and (min-width: @header-mobile-width) {
display: none;
}
}
.menu-level-1 {
/* SAMPLE OF MENU CUSTOM LEVEL */
}
}
.ant-menu-sub,
.ant-menu-submenu-popup {
border-radius: 2px !important;
}
.header-burger-open {
.menu {
display: block;
position: fixed;
width: 100%;
height: calc(100% - @header-size);
top: @header-size;
left: 0;
right: 0;
z-index: 9998;
background-color: @mobile-menu-background;
padding: @mobile-menu-padding-vertical @mobile-menu-padding-horizontal;
overflow: auto;
margin-top: 0;
@media only screen and (max-width: @header-mobile-width) {
height: calc(100% - @header-size-mobile);
top: @header-size-mobile;
}
}
}
.burger .burger-lines,
.burger .burger-lines:after,
.burger .burger-lines:before {
background-color: @header-menu-color !important;
}
.burger.burger-slip.open .burger-lines{
background-color: initial !important;
}

+ 31
- 0
website/src/common/Analytics.jsx View File

@ -0,0 +1,31 @@
import { useEffect } from 'react';
import PropTypes from 'prop-types';
import ReactGA from 'react-ga';
const logPageChange = (pathname, search = '', options) => {
const page = pathname + search;
const { location } = window;
ReactGA.set({
page,
location: `${location.origin}${page}`,
...options
});
ReactGA.pageview(page);
};
function Analytics({ location, options }) {
useEffect(() => {
logPageChange(location.pathname, location.search, options);
}, [location, options]);
return null;
}
Analytics.propTypes = {
location: PropTypes.shape({
pathname: PropTypes.string,
search: PropTypes.string
}).isRequired,
options: PropTypes.object
};
export default Analytics;

+ 45
- 0
website/src/common/Builder.jsx View File

@ -0,0 +1,45 @@
import React, { useEffect } from 'react';
import sal from 'sal.js';
import Cluar from '../common/Cluar';
import Banner from '../components/Banner';
import Content from '../components/Content';
import Listing from '../components/Listing';
import ContactForm from '../components/functionality/ContactForm';
import ContactMap from '../components/functionality/ContactMap';
function Builder({ page }) {
useEffect(() => {
sal();
document.getElementsByTagName('meta')["keywords"].content = page.keywords;
document.getElementsByTagName('meta')["description"].content = page.description;
document.title = page.title + ' | ' + Cluar.config().name;
}, [page]);
const components = [];
for (const item of page.structure) {
const { uid } = item;
if (item.section === 'banner') {
components.push(<Banner key={uid} {...item} />);
} else if (item.section === 'content') {
components.push(<Content key={uid} {...item} />);
} else if (item.section === 'listing') {
components.push(<Listing key={uid} {...item} />);
} else if (item.section === 'functionality') {
if (item.type === 'contact-form') {
components.push(<ContactForm key={uid} {...item} />);
} else if (item.type === 'contact-map') {
components.push(<ContactMap key={uid} {...item} />);
}
}
}
return (
<main>
{components}
</main>
);
}
export default Builder;

+ 123
- 0
website/src/common/Cluar.js View File

@ -0,0 +1,123 @@
import _service from '@netuno/service-client';
import ReactGA from 'react-ga';
import CluarCustomData from './CluarCustomData';
let data = null;
let currentLanguage = null;
let customData = null;
let gaEnabled = false;
export default class Cluar {
static init() {
data = window.cluarData;
currentLanguage = Cluar.defaultLanguage();
customData = new CluarCustomData(data);
_service.config({
prefix: data.config.services.api
});
if (data.config.analytics && data.config.analytics !== '') {
ReactGA.initialize(data.config.analytics);
gaEnabled = true;
}
}
static customData() {
return customData;
}
static config() {
return data.config;
}
static isGAEnabled() {
return gaEnabled;
}
static defaultLanguage() {
return data.languages.find((e) => e.default === true);
}
static currentLanguage() {
return currentLanguage;
}
static changeLanguage(codeOrLocale) {
currentLanguage = data.languages.find((e) => e.code === codeOrLocale || e.locale === codeOrLocale);
window.localStorage.setItem('locale', currentLanguage.locale);
}
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 configurationMultilines(parameter) {
let value = Cluar.configuration(parameter);
value = value.replace(/(?:\r\n|\r|\n)/g, '<br>');
return value;
}
static plainDictionary(entry) {
let value = Cluar.dictionary(entry);
if (value) {
return (value).replace(/<\/?((p)|(br))[^>]*>/g, "");
}
return entry;
}
static dictionaryNoParagraph(entry) {
let value = Cluar.dictionary(entry);
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 };
}
}

+ 6
- 0
website/src/common/CluarCustomData.js View File

@ -0,0 +1,6 @@
export default class CluarCustomData {
constructor(data) {
this.data = data;
}
}

+ 141
- 0
website/src/common/serviceWorker.js View File

@ -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);
});
}
}

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save