Browse Source

modelo de dados

master
Henrique-Sousa 1 month ago
parent
commit
44bfa6a279
58 changed files with 1866 additions and 0 deletions
  1. +7
    -0
      .editor.config
  2. +18
    -0
      .gitignore
  3. +3
    -0
      config/_development.js
  4. +3
    -0
      config/_production.js
  5. BIN
      config/icon.png
  6. BIN
      dbs/clinica.mv.db
  7. +213
    -0
      dbs/clinica.trace.db
  8. BIN
      public/images/icon.png
  9. BIN
      public/images/logo-dev.png
  10. BIN
      public/images/logo-main.png
  11. BIN
      public/images/logo.png
  12. +162
    -0
      public/scripts/ui.js
  13. +1
    -0
      public/scripts/ui.js.map
  14. +13
    -0
      public/styles/main.css
  15. +1
    -0
      public/styles/ui.css
  16. +22
    -0
      server/core/_config.js
  17. +5
    -0
      server/core/_init.js
  18. +0
    -0
      server/core/_request_close.js
  19. +0
    -0
      server/core/_request_end.js
  20. +17
    -0
      server/core/_request_error.js
  21. +2
    -0
      server/core/_request_start.js
  22. +14
    -0
      server/core/_request_url.js
  23. +13
    -0
      server/core/_service_config.js
  24. +0
    -0
      server/core/_service_end.js
  25. +5
    -0
      server/core/_service_error.js
  26. +0
    -0
      server/core/_service_start.js
  27. +10
    -0
      server/package.json
  28. +0
    -0
      server/setup/_end.js
  29. +185
    -0
      server/setup/_schema-form-1-consulta.js
  30. +61
    -0
      server/setup/_schema-form-2-convenio.js
  31. +61
    -0
      server/setup/_schema-form-3-especialidade.js
  32. +92
    -0
      server/setup/_schema-form-4-medico.js
  33. +126
    -0
      server/setup/_schema-form-5-medico_agenda.js
  34. +93
    -0
      server/setup/_schema-form-6-medico_convenio.js
  35. +93
    -0
      server/setup/_schema-form-7-medico_especialidade.js
  36. +216
    -0
      server/setup/_schema-form-8-paciente.js
  37. +93
    -0
      server/setup/_schema-form-9-paciente_convenio.js
  38. +0
    -0
      server/setup/_start.js
  39. +24
    -0
      server/templates/dashboard.html
  40. +31
    -0
      server/templates/dev/dashboard.html
  41. +1
    -0
      server/templates/scripts.html
  42. +0
    -0
      server/templates/scripts_dev.html
  43. +0
    -0
      server/templates/scripts_login.html
  44. +2
    -0
      server/templates/styles.html
  45. +1
    -0
      server/templates/styles_dev.html
  46. +0
    -0
      server/templates/styles_login.html
  47. +4
    -0
      storage/filesystem/private/info.txt
  48. +2
    -0
      storage/filesystem/public/info.txt
  49. +4
    -0
      storage/filesystem/server/info.txt
  50. +17
    -0
      ui/.gitignore
  51. +27
    -0
      ui/README.md
  52. +31
    -0
      ui/package.json
  53. +13
    -0
      ui/src/components/MyButton/index.jsx
  54. +29
    -0
      ui/src/containers/DashboardContainer/index.jsx
  55. +11
    -0
      ui/src/containers/DashboardContainer/index.less
  56. +78
    -0
      ui/src/index.jsx
  57. +3
    -0
      ui/src/styles/main.less
  58. +59
    -0
      ui/vite.config.js

+ 7
- 0
.editor.config View File

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

+ 18
- 0
.gitignore View File

@ -0,0 +1,18 @@
node_modules/
.DS_Store
*.log
.idea/
.metadata/
.vscode
package-lock.json
/trash/*
.Trash
*~*
*#*
config/_development.json
config/_production.json

+ 3
- 0
config/_development.js View File

@ -0,0 +1,3 @@
/*
* Development dynamic configurations is here.
*/

+ 3
- 0
config/_production.js View File

@ -0,0 +1,3 @@
/*
* Production dynamic configurations is here.
*/

BIN
config/icon.png View File

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

BIN
dbs/clinica.mv.db View File


+ 213
- 0
dbs/clinica.trace.db View File

@ -0,0 +1,213 @@
2026-03-12 16:15:21.061437-03:00 jdbc[4]: exception
org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "especialidade" not found; SQL statement:
select * from especialidade; [42102-240]
2026-03-12 16:15:30.226934-03:00 jdbc[3]: exception
org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "especialidade" not found; SQL statement:
select * from Especialidade; [42102-240]
2026-03-13 11:32:43.131535-03:00 jdbc[3]: exception
org.h2.jdbc.JdbcSQLSyntaxErrorException: Column "medico" not found; SQL statement:
insert into medico_horario (medico, dia, hora)
values (1, '2026-03-30', '15:00:00'); [42122-240]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:514)
at org.h2.message.DbException.getJdbcSQLException(DbException.java:489)
at org.h2.message.DbException.get(DbException.java:223)
at org.h2.message.DbException.get(DbException.java:199)
at org.h2.table.Table.getColumn(Table.java:778)
at org.h2.command.Parser.parseColumn(Parser.java:1174)
at org.h2.command.Parser.parseColumnList(Parser.java:1159)
at org.h2.command.Parser.parseInsert(Parser.java:1533)
at org.h2.command.Parser.parsePrepared(Parser.java:701)
at org.h2.command.Parser.parse(Parser.java:584)
at org.h2.command.Parser.parse(Parser.java:559)
at org.h2.command.Parser.prepareCommand(Parser.java:487)
at org.h2.engine.SessionLocal.prepareLocal(SessionLocal.java:647)
at org.h2.engine.SessionLocal.prepareCommand(SessionLocal.java:563)
at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1160)
at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:190)
at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:147)
at com.zaxxer.hikari.pool.ProxyStatement.executeUpdate(ProxyStatement.java:120)
at com.zaxxer.hikari.pool.HikariProxyStatement.executeUpdate(HikariProxyStatement.java)
at org.netuno.tritao.dev.Query._main(Query.java:184)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:565)
at org.netuno.proteu.Run.execute(Run.java:119)
at org.netuno.proteu.DynamicURL.build(DynamicURL.java:169)
at org.netuno.proteu.Enterprise.processRequest(Enterprise.java:418)
at org.netuno.proteu.Enterprise.service(Enterprise.java:486)
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:723)
at org.eclipse.jetty.ee11.servlet.ServletHolder$NotAsync.service(ServletHolder.java:1384)
at org.eclipse.jetty.ee11.servlet.ServletHolder.handle(ServletHolder.java:750)
at org.eclipse.jetty.ee11.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1668)
at org.eclipse.jetty.ee11.websocket.servlet.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:199)
at org.eclipse.jetty.ee11.servlet.FilterHolder.doFilter(FilterHolder.java:205)
at org.eclipse.jetty.ee11.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1640)
at org.eclipse.jetty.ee11.servlet.ServletHandler$MappedServlet.handle(ServletHandler.java:1602)
at org.eclipse.jetty.ee11.servlet.ServletChannel.dispatch(ServletChannel.java:868)
at org.eclipse.jetty.ee11.servlet.ServletChannel.handle(ServletChannel.java:449)
at org.eclipse.jetty.ee11.servlet.ServletHandler.handle(ServletHandler.java:470)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:546)
at org.eclipse.jetty.ee11.servlet.SessionHandler.handle(SessionHandler.java:763)
at org.eclipse.jetty.server.handler.ContextHandler.handle(ContextHandler.java:1224)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:178)
at org.eclipse.jetty.server.Server.handle(Server.java:197)
at org.eclipse.jetty.server.internal.HttpChannelState$HandlerInvoker.run(HttpChannelState.java:787)
at org.eclipse.jetty.server.internal.HttpConnection.onFillable(HttpConnection.java:410)
at org.eclipse.jetty.server.internal.HttpConnection$FillableCallback.succeeded(HttpConnection.java:1805)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:54)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:492)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.epcRunTask(AdaptiveExecutionStrategy.java:428)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:401)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:255)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.run(AdaptiveExecutionStrategy.java:204)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:317)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:1009)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1239)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1194)
at java.base/java.lang.Thread.run(Thread.java:1474)
2026-03-14 13:54:18.067771-03:00 jdbc[3]: exception
org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "select * [*]dia, hora, medico\000d\000afrom consulta join medico\000d\000aon consulta.medico_id = medico.id"; SQL statement:
select * dia, hora, medico
from consulta join medico
on consulta.medico_id = medico.id [42000-240]
2026-03-14 14:05:22.154653-03:00 jdbc[3]: exception
org.h2.jdbc.JdbcSQLSyntaxErrorException: Column "consulta.medico_id" not found; SQL statement:
select *
from consulta outer join medico
on consulta.medico_id = medico.id; [42122-240]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:514)
at org.h2.message.DbException.getJdbcSQLException(DbException.java:489)
at org.h2.message.DbException.get(DbException.java:223)
at org.h2.message.DbException.get(DbException.java:199)
at org.h2.expression.ExpressionColumn.getColumnException(ExpressionColumn.java:244)
at org.h2.expression.ExpressionColumn.optimizeOther(ExpressionColumn.java:226)
at org.h2.expression.ExpressionColumn.optimize(ExpressionColumn.java:213)
at org.h2.expression.condition.Comparison.optimize(Comparison.java:148)
at org.h2.expression.Expression.optimizeCondition(Expression.java:149)
at org.h2.command.query.Select.prepareExpressions(Select.java:1215)
at org.h2.command.query.Query.prepare(Query.java:235)
at org.h2.command.Parser.prepareCommand(Parser.java:492)
at org.h2.engine.SessionLocal.prepareLocal(SessionLocal.java:647)
at org.h2.engine.SessionLocal.prepareCommand(SessionLocal.java:563)
at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1160)
at org.h2.jdbc.JdbcStatement.executeQuery(JdbcStatement.java:94)
at com.zaxxer.hikari.pool.ProxyStatement.executeQuery(ProxyStatement.java:111)
at com.zaxxer.hikari.pool.HikariProxyStatement.executeQuery(HikariProxyStatement.java)
at org.netuno.tritao.dev.Query._main(Query.java:122)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:565)
at org.netuno.proteu.Run.execute(Run.java:119)
at org.netuno.proteu.DynamicURL.build(DynamicURL.java:169)
at org.netuno.proteu.Enterprise.processRequest(Enterprise.java:418)
at org.netuno.proteu.Enterprise.service(Enterprise.java:486)
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:723)
at org.eclipse.jetty.ee11.servlet.ServletHolder$NotAsync.service(ServletHolder.java:1384)
at org.eclipse.jetty.ee11.servlet.ServletHolder.handle(ServletHolder.java:750)
at org.eclipse.jetty.ee11.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1668)
at org.eclipse.jetty.ee11.websocket.servlet.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:199)
at org.eclipse.jetty.ee11.servlet.FilterHolder.doFilter(FilterHolder.java:205)
at org.eclipse.jetty.ee11.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1640)
at org.eclipse.jetty.ee11.servlet.ServletHandler$MappedServlet.handle(ServletHandler.java:1602)
at org.eclipse.jetty.ee11.servlet.ServletChannel.dispatch(ServletChannel.java:868)
at org.eclipse.jetty.ee11.servlet.ServletChannel.handle(ServletChannel.java:449)
at org.eclipse.jetty.ee11.servlet.ServletHandler.handle(ServletHandler.java:470)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:546)
at org.eclipse.jetty.ee11.servlet.SessionHandler.handle(SessionHandler.java:763)
at org.eclipse.jetty.server.handler.ContextHandler.handle(ContextHandler.java:1224)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:178)
at org.eclipse.jetty.server.Server.handle(Server.java:197)
at org.eclipse.jetty.server.internal.HttpChannelState$HandlerInvoker.run(HttpChannelState.java:787)
at org.eclipse.jetty.server.internal.HttpConnection.onFillable(HttpConnection.java:410)
at org.eclipse.jetty.server.internal.HttpConnection$FillableCallback.succeeded(HttpConnection.java:1805)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:54)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:492)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.epcRunTask(AdaptiveExecutionStrategy.java:428)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:401)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:255)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.run(AdaptiveExecutionStrategy.java:204)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:317)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:1009)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1239)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1194)
at java.base/java.lang.Thread.run(Thread.java:1474)
2026-03-14 14:05:37.510660-03:00 jdbc[3]: exception
org.h2.jdbc.JdbcSQLSyntaxErrorException: Column "consulta.medico_id" not found; SQL statement:
select *
from consulta outter join medico
on consulta.medico_id = medico.id; [42122-240]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:514)
at org.h2.message.DbException.getJdbcSQLException(DbException.java:489)
at org.h2.message.DbException.get(DbException.java:223)
at org.h2.message.DbException.get(DbException.java:199)
at org.h2.expression.ExpressionColumn.getColumnException(ExpressionColumn.java:244)
at org.h2.expression.ExpressionColumn.optimizeOther(ExpressionColumn.java:226)
at org.h2.expression.ExpressionColumn.optimize(ExpressionColumn.java:213)
at org.h2.expression.condition.Comparison.optimize(Comparison.java:148)
at org.h2.expression.Expression.optimizeCondition(Expression.java:149)
at org.h2.command.query.Select.prepareExpressions(Select.java:1215)
at org.h2.command.query.Query.prepare(Query.java:235)
at org.h2.command.Parser.prepareCommand(Parser.java:492)
at org.h2.engine.SessionLocal.prepareLocal(SessionLocal.java:647)
at org.h2.engine.SessionLocal.prepareCommand(SessionLocal.java:563)
at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1160)
at org.h2.jdbc.JdbcStatement.executeQuery(JdbcStatement.java:94)
at com.zaxxer.hikari.pool.ProxyStatement.executeQuery(ProxyStatement.java:111)
at com.zaxxer.hikari.pool.HikariProxyStatement.executeQuery(HikariProxyStatement.java)
at org.netuno.tritao.dev.Query._main(Query.java:122)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:565)
at org.netuno.proteu.Run.execute(Run.java:119)
at org.netuno.proteu.DynamicURL.build(DynamicURL.java:169)
at org.netuno.proteu.Enterprise.processRequest(Enterprise.java:418)
at org.netuno.proteu.Enterprise.service(Enterprise.java:486)
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:723)
at org.eclipse.jetty.ee11.servlet.ServletHolder$NotAsync.service(ServletHolder.java:1384)
at org.eclipse.jetty.ee11.servlet.ServletHolder.handle(ServletHolder.java:750)
at org.eclipse.jetty.ee11.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1668)
at org.eclipse.jetty.ee11.websocket.servlet.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:199)
at org.eclipse.jetty.ee11.servlet.FilterHolder.doFilter(FilterHolder.java:205)
at org.eclipse.jetty.ee11.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1640)
at org.eclipse.jetty.ee11.servlet.ServletHandler$MappedServlet.handle(ServletHandler.java:1602)
at org.eclipse.jetty.ee11.servlet.ServletChannel.dispatch(ServletChannel.java:868)
at org.eclipse.jetty.ee11.servlet.ServletChannel.handle(ServletChannel.java:449)
at org.eclipse.jetty.ee11.servlet.ServletHandler.handle(ServletHandler.java:470)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:546)
at org.eclipse.jetty.ee11.servlet.SessionHandler.handle(SessionHandler.java:763)
at org.eclipse.jetty.server.handler.ContextHandler.handle(ContextHandler.java:1224)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:178)
at org.eclipse.jetty.server.Server.handle(Server.java:197)
at org.eclipse.jetty.server.internal.HttpChannelState$HandlerInvoker.run(HttpChannelState.java:787)
at org.eclipse.jetty.server.internal.HttpConnection.onFillable(HttpConnection.java:410)
at org.eclipse.jetty.server.internal.HttpConnection$FillableCallback.succeeded(HttpConnection.java:1805)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:54)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:492)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.epcRunTask(AdaptiveExecutionStrategy.java:428)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:401)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:255)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.run(AdaptiveExecutionStrategy.java:204)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:317)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:1009)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1239)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1194)
at java.base/java.lang.Thread.run(Thread.java:1474)
2026-03-14 14:05:43.695388-03:00 jdbc[3]: exception
org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "select *\000d\000afrom consulta cross join medico\000d\000a[*]on consulta.medico_id = medico.id;"; SQL statement:
select *
from consulta cross join medico
on consulta.medico_id = medico.id; [42000-240]
2026-03-14 14:16:29.275412-03:00 jdbc[13]: exception
org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "delete [*]* from medico_horario;\000d\000a\000d\000aselect * from medico;\000d"; expected "identifier"; SQL statement:
delete * from medico_horario;
select * from medico; [42001-240]
2026-03-14 14:16:53.216703-03:00 jdbc[13]: exception
org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "delete [*]* from medico_horario;\000d"; expected "identifier"; SQL statement:
delete * from medico_horario; [42001-240]
2026-03-14 14:23:31.070171-03:00 jdbc[14]: exception
org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "select dia, hora, medico.nome\000d\000afrom medico_horario join medico\000d\000aon medico_horario.medico_id [*]as id = medico.id\000d\000awhere id = 3;"; SQL statement:
select dia, hora, medico.nome
from medico_horario join medico
on medico_horario.medico_id as id = medico.id
where id = 3; [42000-240]

BIN
public/images/icon.png View File

Before After
Width: 258  |  Height: 258  |  Size: 20 KiB

BIN
public/images/logo-dev.png View File

Before After
Width: 700  |  Height: 240  |  Size: 15 KiB

BIN
public/images/logo-main.png View File

Before After
Width: 700  |  Height: 240  |  Size: 15 KiB

BIN
public/images/logo.png View File

Before After
Width: 700  |  Height: 240  |  Size: 16 KiB

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


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


+ 13
- 0
public/styles/main.css View File

@ -0,0 +1,13 @@
/**
HERE YOUR CUSTOM CSS
**/
.navbar, .navbar-inverse {
background-color: #5b5ce1 !important;
}
.dev .navbar, .dev .navbar-inverse {
background-color: #333333 !important;
}

+ 1
- 0
public/styles/ui.css View File

@ -0,0 +1 @@
.my-dashboard{width:100%}.my-dashboard__button{padding:80px;text-align:center}

+ 22
- 0
server/core/_config.js View File

@ -0,0 +1,22 @@
_config.set("_lang", _config.get("_lang:default"))
if (_env.is("dev")
&& (_url.equals("/") || _url.equals("/Index.netuno"))) {
_config
.set("_login:user", "dev")
.set("_login:pass", "dev")
.set("_login:auto", _req.getString("action") != "logout")
}
/**
* DISABLE BROWSER CACHE
*/
if (_url.download.isDownloadable()) {
if (_env.is("dev") && _url.indexOf("/public/scripts/main.js") > 0) {
_header.noCache()
} else {
_header.cache(2628000)
}
}

+ 5
- 0
server/core/_init.js View File

@ -0,0 +1,5 @@
/**
* FIREBASE - Set your listeners
*/
// _firebase.listener("my-test", _header.baseURL() + "/services/firebase/listener/my-test.netuno")

+ 0
- 0
server/core/_request_close.js View File


+ 0
- 0
server/core/_request_end.js View File


+ 17
- 0
server/core/_request_error.js View File

@ -0,0 +1,17 @@
if (!_out.isClosed()) {
_out.print(
"### SERVER ERROR ###"
)
/*
// Is insecure but the code below will print errors with more details...
_out.print(
"SERVER ERROR # " +
_error.data().getString("file")
+":"+
_error.data().getString("line")
+" # "+
_error.data().getString("message")
)
*/
}

+ 2
- 0
server/core/_request_start.js View File

@ -0,0 +1,2 @@
_config.set("_script:_request_end", true)

+ 14
- 0
server/core/_request_url.js View File

@ -0,0 +1,14 @@
// _log.info(_url.url())
/**
* ALLOW CORS
*/
/*
_header.response.set("Access-Control-Allow-Origin", "https://www.netuno.org")
_header.response.set("Access-Control-Allow-Methods", "GET,PUT,POST,DELETE,OPTIONS")
_header.response.set("Access-Control-Allow-Headers", "content-type,x-requested-with,authorization")
_header.response.set("Access-Control-Allow-Credentials", true)
*/
_url.to(_url.request())

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

@ -0,0 +1,13 @@
/**
* When service need public access...
*/
if (_env.is("dev")) {
_service.allow()
}
/*
if (_service.path == 'samples/my-service') {
_service.allow()
}
*/

+ 0
- 0
server/core/_service_end.js View File


+ 5
- 0
server/core/_service_error.js View File

@ -0,0 +1,5 @@
/*
// Print error:
_log.fatal("Service "+ _service.path, _error.data().get("throwable"))
*/

+ 0
- 0
server/core/_service_start.js View File


+ 10
- 0
server/package.json View File

@ -0,0 +1,10 @@
{
"name": "server",
"version": "1.0.0",
"description": "Server modules dependencies.",
"author": "netuno.org",
"license": "ISC",
"dependencies": {
"server": "file:"
}
}

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


+ 185
- 0
server/setup/_schema-form-1-consulta.js View File

@ -0,0 +1,185 @@
/**
*
* CODE GENERATED AUTOMATICALLY
*
* THIS FILE SHOULD NOT BE EDITED BY HAND
*
*/
_form.createIfNotExists(
_val.map()
.set("big", false)
.set("control_active", true)
.set("control_group", false)
.set("control_user", false)
.set("description", "")
.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", "consulta")
.set("reorder", 0)
.set("report", false)
.set("report_behaviour", 0)
.set("show_id", true)
.set("title", "Consulta")
.set("uid", "2b671e68-2a28-4465-9eb9-3ad47155045d")
)
_form.createComponentIfNotExists(
"2b671e68-2a28-4465-9eb9-3ad47155045d",
_val.map()
.set("colspan", 0)
.set("description", "")
.set("firebase", "")
.set("group_id", 0)
.set("height", 0)
.set("mandatory", true)
.set("max", 0)
.set("min", 0)
.set("name", "convenio_id")
.set("properties", "{\"COLUMN_SEPARATOR\":{\"default\":\" - \",\"type\":\"LINK_SEPARATOR\",\"value\":\" - \"},\"LINK\":{\"default\":\"\",\"type\":\"LINK\",\"value\":\"convenio:nome\"},\"MAX_COLUMN_LENGTH\":{\"default\":\"0\",\"type\":\"INTEGER\",\"value\":\"0\"},\"ONLY_ACTIVES\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"SERVICE\":{\"default\":\"com/Select.netuno\",\"type\":\"STRING\",\"value\":\"com/Select.netuno\"}}")
.set("rowspan", 0)
.set("tdheight", 0)
.set("tdwidth", 0)
.set("title", "convenio")
.set("type", "select")
.set("uid", "6f4fa646-fdbd-499e-ac6a-dbe631fc5109")
.set("unique", false)
.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(
"2b671e68-2a28-4465-9eb9-3ad47155045d",
_val.map()
.set("colspan", 0)
.set("description", "")
.set("firebase", "")
.set("group_id", 0)
.set("height", 0)
.set("mandatory", true)
.set("max", 0)
.set("min", 0)
.set("name", "medico_id")
.set("properties", "{\"COLUMN_SEPARATOR\":{\"default\":\" - \",\"type\":\"LINK_SEPARATOR\",\"value\":\" - \"},\"LINK\":{\"default\":\"\",\"type\":\"LINK\",\"value\":\"medico:nome,c_r_m\"},\"MAX_COLUMN_LENGTH\":{\"default\":\"0\",\"type\":\"INTEGER\",\"value\":\"0\"},\"ONLY_ACTIVES\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"SERVICE\":{\"default\":\"com/Select.netuno\",\"type\":\"STRING\",\"value\":\"com/Select.netuno\"}}")
.set("rowspan", 0)
.set("tdheight", 0)
.set("tdwidth", 0)
.set("title", "medico")
.set("type", "select")
.set("uid", "d27df5fa-2d18-4476-a52f-204a4ecdc1f4")
.set("unique", false)
.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(
"2b671e68-2a28-4465-9eb9-3ad47155045d",
_val.map()
.set("colspan", 0)
.set("description", "")
.set("firebase", "")
.set("group_id", 0)
.set("height", 0)
.set("mandatory", true)
.set("max", 0)
.set("min", 0)
.set("name", "paciente_id")
.set("properties", "{\"COLUMN_SEPARATOR\":{\"default\":\" - \",\"type\":\"LINK_SEPARATOR\",\"value\":\" - \"},\"LINK\":{\"default\":\"\",\"type\":\"LINK\",\"value\":\"paciente:nome,c_p_f,r_g\"},\"MAX_COLUMN_LENGTH\":{\"default\":\"0\",\"type\":\"INTEGER\",\"value\":\"0\"},\"ONLY_ACTIVES\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"SERVICE\":{\"default\":\"com/Select.netuno\",\"type\":\"STRING\",\"value\":\"com/Select.netuno\"}}")
.set("rowspan", 0)
.set("tdheight", 0)
.set("tdwidth", 0)
.set("title", "paciente")
.set("type", "select")
.set("uid", "a5134227-b2ac-4727-9d86-61f87e6f9f51")
.set("unique", false)
.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(
"2b671e68-2a28-4465-9eb9-3ad47155045d",
_val.map()
.set("colspan", 0)
.set("description", "")
.set("firebase", "")
.set("group_id", 0)
.set("height", 0)
.set("mandatory", true)
.set("max", 0)
.set("min", 0)
.set("name", "quando_id")
.set("properties", "{\"COLUMN_SEPARATOR\":{\"default\":\" - \",\"type\":\"LINK_SEPARATOR\",\"value\":\" - \"},\"LINK\":{\"default\":\"\",\"type\":\"LINK\",\"value\":\"medico_agenda:dia,hora,medico_id\"},\"MAX_COLUMN_LENGTH\":{\"default\":\"0\",\"type\":\"INTEGER\",\"value\":\"0\"},\"ONLY_ACTIVES\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"SERVICE\":{\"default\":\"com/Select.netuno\",\"type\":\"STRING\",\"value\":\"com/Select.netuno\"}}")
.set("rowspan", 0)
.set("tdheight", 0)
.set("tdwidth", 0)
.set("title", "quando")
.set("type", "select")
.set("uid", "7c4b6cd9-bd2d-41a8-9c3b-91d6d8ee96b4")
.set("unique", false)
.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(
"2b671e68-2a28-4465-9eb9-3ad47155045d",
_val.map()
.set("colspan", 0)
.set("description", "")
.set("firebase", "")
.set("group_id", 0)
.set("height", 0)
.set("mandatory", true)
.set("max", 0)
.set("min", 0)
.set("name", "retorno")
.set("properties", "{\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"},\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"}}")
.set("rowspan", 0)
.set("tdheight", 0)
.set("tdwidth", 0)
.set("title", "Retorno?")
.set("type", "text")
.set("uid", "04f7a1e1-e740-410f-bfed-3d5770695cf8")
.set("unique", false)
.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)
)

+ 61
- 0
server/setup/_schema-form-2-convenio.js View File

@ -0,0 +1,61 @@
/**
*
* CODE GENERATED AUTOMATICALLY
*
* THIS FILE SHOULD NOT BE EDITED BY HAND
*
*/
_form.createIfNotExists(
_val.map()
.set("big", false)
.set("control_active", true)
.set("control_group", false)
.set("control_user", false)
.set("description", "")
.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", "convenio")
.set("reorder", 0)
.set("report", false)
.set("report_behaviour", 0)
.set("show_id", true)
.set("title", "Convenio")
.set("uid", "d4884746-e9da-4ef5-83a0-8fe866e25401")
)
_form.createComponentIfNotExists(
"d4884746-e9da-4ef5-83a0-8fe866e25401",
_val.map()
.set("colspan", 0)
.set("description", "")
.set("firebase", "")
.set("group_id", 0)
.set("height", 0)
.set("mandatory", true)
.set("max", 0)
.set("min", 0)
.set("name", "nome")
.set("properties", "{\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"},\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"}}")
.set("rowspan", 0)
.set("tdheight", 0)
.set("tdwidth", 0)
.set("title", "nome")
.set("type", "text")
.set("uid", "97315296-6fe7-4248-924b-fd469f9e123d")
.set("unique", true)
.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)
)

+ 61
- 0
server/setup/_schema-form-3-especialidade.js View File

@ -0,0 +1,61 @@
/**
*
* CODE GENERATED AUTOMATICALLY
*
* THIS FILE SHOULD NOT BE EDITED BY HAND
*
*/
_form.createIfNotExists(
_val.map()
.set("big", false)
.set("control_active", true)
.set("control_group", false)
.set("control_user", false)
.set("description", "")
.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", "especialidade")
.set("reorder", 0)
.set("report", false)
.set("report_behaviour", 0)
.set("show_id", true)
.set("title", "Especialidade")
.set("uid", "a11773ac-e91b-4786-8854-513716a95f69")
)
_form.createComponentIfNotExists(
"a11773ac-e91b-4786-8854-513716a95f69",
_val.map()
.set("colspan", 0)
.set("description", "")
.set("firebase", "")
.set("group_id", 0)
.set("height", 0)
.set("mandatory", true)
.set("max", 0)
.set("min", 0)
.set("name", "nome")
.set("properties", "{\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"},\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"}}")
.set("rowspan", 0)
.set("tdheight", 0)
.set("tdwidth", 0)
.set("title", "nome")
.set("type", "text")
.set("uid", "19f455c8-3c9a-4c26-a1b3-dd6ee26658cc")
.set("unique", true)
.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)
)

+ 92
- 0
server/setup/_schema-form-4-medico.js View File

@ -0,0 +1,92 @@
/**
*
* CODE GENERATED AUTOMATICALLY
*
* THIS FILE SHOULD NOT BE EDITED BY HAND
*
*/
_form.createIfNotExists(
_val.map()
.set("big", false)
.set("control_active", true)
.set("control_group", false)
.set("control_user", false)
.set("description", "")
.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", "medico")
.set("reorder", 0)
.set("report", false)
.set("report_behaviour", 0)
.set("show_id", true)
.set("title", "Medico")
.set("uid", "de3d9a55-c0d6-4b53-ad8d-da3c46da80ea")
)
_form.createComponentIfNotExists(
"de3d9a55-c0d6-4b53-ad8d-da3c46da80ea",
_val.map()
.set("colspan", 0)
.set("description", "")
.set("firebase", "")
.set("group_id", 0)
.set("height", 0)
.set("mandatory", true)
.set("max", 0)
.set("min", 0)
.set("name", "c_r_m")
.set("properties", "{\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"},\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"}}")
.set("rowspan", 0)
.set("tdheight", 0)
.set("tdwidth", 0)
.set("title", "CRM")
.set("type", "text")
.set("uid", "7960d2ba-4349-435f-9c68-a758e9dcff53")
.set("unique", true)
.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(
"de3d9a55-c0d6-4b53-ad8d-da3c46da80ea",
_val.map()
.set("colspan", 0)
.set("description", "")
.set("firebase", "")
.set("group_id", 0)
.set("height", 0)
.set("mandatory", true)
.set("max", 0)
.set("min", 0)
.set("name", "nome")
.set("properties", "{\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"},\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"}}")
.set("rowspan", 0)
.set("tdheight", 0)
.set("tdwidth", 0)
.set("title", "nome")
.set("type", "text")
.set("uid", "937ee918-fc43-405c-9297-3c082526d798")
.set("unique", false)
.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)
)

+ 126
- 0
server/setup/_schema-form-5-medico_agenda.js View File

@ -0,0 +1,126 @@
/**
*
* CODE GENERATED AUTOMATICALLY
*
* THIS FILE SHOULD NOT BE EDITED BY HAND
*
*/
_form.createIfNotExists(
_val.map()
.set("big", false)
.set("control_active", true)
.set("control_group", false)
.set("control_user", false)
.set("description", "<p>Hor\u00E1rios dispon\u00EDveis para marcar consulta com cada m\u00E9dico</p>")
.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("group_uid", "027bf7a4-a130-481c-807f-1f4bedaf5f45")
.set("name", "medico_agenda")
.set("parent_uid", "de3d9a55-c0d6-4b53-ad8d-da3c46da80ea")
.set("reorder", 0)
.set("report", false)
.set("report_behaviour", 0)
.set("show_id", true)
.set("title", "Agenda")
.set("uid", "1f6eddf6-2026-41e2-b700-003769b3ea32")
.set("user_uid", "678201a1-1c85-4819-a1b6-600e6217b020")
)
_form.createComponentIfNotExists(
"1f6eddf6-2026-41e2-b700-003769b3ea32",
_val.map()
.set("colspan", 0)
.set("description", "")
.set("firebase", "")
.set("group_id", 0)
.set("height", 0)
.set("mandatory", true)
.set("max", 0)
.set("min", 0)
.set("name", "dia")
.set("properties", "{\"DEFAULT_CURRENT\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"}}")
.set("rowspan", 0)
.set("tdheight", 0)
.set("tdwidth", 0)
.set("title", "dia")
.set("type", "date")
.set("uid", "83319de3-254e-4d8f-b71f-93858125a95d")
.set("unique", false)
.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(
"1f6eddf6-2026-41e2-b700-003769b3ea32",
_val.map()
.set("colspan", 0)
.set("description", "")
.set("firebase", "")
.set("group_id", 0)
.set("height", 0)
.set("mandatory", true)
.set("max", 0)
.set("min", 0)
.set("name", "hora")
.set("properties", "{\"DEFAULT_CURRENT\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"}}")
.set("rowspan", 0)
.set("tdheight", 0)
.set("tdwidth", 0)
.set("title", "hora")
.set("type", "time")
.set("uid", "5e7edd1a-37d1-41db-b17d-7700c881c6d1")
.set("unique", false)
.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(
"1f6eddf6-2026-41e2-b700-003769b3ea32",
_val.map()
.set("colspan", 0)
.set("description", "")
.set("firebase", "")
.set("group_id", 0)
.set("height", 0)
.set("mandatory", true)
.set("max", 0)
.set("min", 0)
.set("name", "medico_id")
.set("properties", "{\"COLUMN_SEPARATOR\":{\"default\":\" - \",\"type\":\"LINK_SEPARATOR\",\"value\":\" - \"},\"LINK\":{\"default\":\"\",\"type\":\"LINK\",\"value\":\"medico:nome,c_r_m\"},\"MAX_COLUMN_LENGTH\":{\"default\":\"0\",\"type\":\"INTEGER\",\"value\":\"0\"},\"ONLY_ACTIVES\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"SERVICE\":{\"default\":\"com/Select.netuno\",\"type\":\"STRING\",\"value\":\"com/Select.netuno\"}}")
.set("rowspan", 0)
.set("tdheight", 0)
.set("tdwidth", 0)
.set("title", "medico")
.set("type", "select")
.set("uid", "0fa4fe57-49b4-4d40-88f4-441e2027d7b5")
.set("unique", false)
.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)
)

+ 93
- 0
server/setup/_schema-form-6-medico_convenio.js View File

@ -0,0 +1,93 @@
/**
*
* CODE GENERATED AUTOMATICALLY
*
* THIS FILE SHOULD NOT BE EDITED BY HAND
*
*/
_form.createIfNotExists(
_val.map()
.set("big", false)
.set("control_active", true)
.set("control_group", false)
.set("control_user", false)
.set("description", "")
.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", "medico_convenio")
.set("parent_uid", "de3d9a55-c0d6-4b53-ad8d-da3c46da80ea")
.set("reorder", 0)
.set("report", false)
.set("report_behaviour", 0)
.set("show_id", true)
.set("title", "Convenio")
.set("uid", "0175356c-28a0-4e09-8b3f-53790b2389b8")
)
_form.createComponentIfNotExists(
"0175356c-28a0-4e09-8b3f-53790b2389b8",
_val.map()
.set("colspan", 0)
.set("description", "")
.set("firebase", "")
.set("group_id", 0)
.set("height", 0)
.set("mandatory", true)
.set("max", 0)
.set("min", 0)
.set("name", "convenio_id")
.set("properties", "{\"COLUMN_SEPARATOR\":{\"default\":\" - \",\"type\":\"LINK_SEPARATOR\",\"value\":\" - \"},\"LINK\":{\"default\":\"\",\"type\":\"LINK\",\"value\":\"convenio:nome_id,nome\"},\"MAX_COLUMN_LENGTH\":{\"default\":\"0\",\"type\":\"INTEGER\",\"value\":\"0\"},\"ONLY_ACTIVES\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"SERVICE\":{\"default\":\"com/Select.netuno\",\"type\":\"STRING\",\"value\":\"com/Select.netuno\"}}")
.set("rowspan", 0)
.set("tdheight", 0)
.set("tdwidth", 0)
.set("title", "convenio")
.set("type", "select")
.set("uid", "e6da863d-3e55-4938-b497-153e1efb91cb")
.set("unique", false)
.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(
"0175356c-28a0-4e09-8b3f-53790b2389b8",
_val.map()
.set("colspan", 0)
.set("description", "")
.set("firebase", "")
.set("group_id", 0)
.set("height", 0)
.set("mandatory", true)
.set("max", 0)
.set("min", 0)
.set("name", "medico_id")
.set("properties", "{\"COLUMN_SEPARATOR\":{\"default\":\" - \",\"type\":\"LINK_SEPARATOR\",\"value\":\" - \"},\"LINK\":{\"default\":\"\",\"type\":\"LINK\",\"value\":\"medico:nome,c_r_m\"},\"MAX_COLUMN_LENGTH\":{\"default\":\"0\",\"type\":\"INTEGER\",\"value\":\"0\"},\"ONLY_ACTIVES\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"SERVICE\":{\"default\":\"com/Select.netuno\",\"type\":\"STRING\",\"value\":\"com/Select.netuno\"}}")
.set("rowspan", 0)
.set("tdheight", 0)
.set("tdwidth", 0)
.set("title", "medico")
.set("type", "select")
.set("uid", "9443ff8c-5733-4a03-b0e7-ab8b3743253c")
.set("unique", false)
.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)
)

+ 93
- 0
server/setup/_schema-form-7-medico_especialidade.js View File

@ -0,0 +1,93 @@
/**
*
* CODE GENERATED AUTOMATICALLY
*
* THIS FILE SHOULD NOT BE EDITED BY HAND
*
*/
_form.createIfNotExists(
_val.map()
.set("big", false)
.set("control_active", true)
.set("control_group", false)
.set("control_user", false)
.set("description", "")
.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", "medico_especialidade")
.set("parent_uid", "de3d9a55-c0d6-4b53-ad8d-da3c46da80ea")
.set("reorder", 0)
.set("report", false)
.set("report_behaviour", 0)
.set("show_id", true)
.set("title", "Especialidade")
.set("uid", "81e22178-7e08-4a8c-8b76-e4a5c9a016b7")
)
_form.createComponentIfNotExists(
"81e22178-7e08-4a8c-8b76-e4a5c9a016b7",
_val.map()
.set("colspan", 0)
.set("description", "")
.set("firebase", "")
.set("group_id", 0)
.set("height", 0)
.set("mandatory", true)
.set("max", 0)
.set("min", 0)
.set("name", "especialidade_id")
.set("properties", "{\"COLUMN_SEPARATOR\":{\"default\":\" - \",\"type\":\"LINK_SEPARATOR\",\"value\":\" - \"},\"LINK\":{\"default\":\"\",\"type\":\"LINK\",\"value\":\"especialidade:nome\"},\"MAX_COLUMN_LENGTH\":{\"default\":\"0\",\"type\":\"INTEGER\",\"value\":\"0\"},\"ONLY_ACTIVES\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"SERVICE\":{\"default\":\"com/Select.netuno\",\"type\":\"STRING\",\"value\":\"com/Select.netuno\"}}")
.set("rowspan", 0)
.set("tdheight", 0)
.set("tdwidth", 0)
.set("title", "especialidade")
.set("type", "select")
.set("uid", "f59dc324-a124-4381-b42b-a1f938d9be4f")
.set("unique", false)
.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(
"81e22178-7e08-4a8c-8b76-e4a5c9a016b7",
_val.map()
.set("colspan", 0)
.set("description", "")
.set("firebase", "")
.set("group_id", 0)
.set("height", 0)
.set("mandatory", true)
.set("max", 0)
.set("min", 0)
.set("name", "medico_id")
.set("properties", "{\"COLUMN_SEPARATOR\":{\"default\":\" - \",\"type\":\"LINK_SEPARATOR\",\"value\":\" - \"},\"LINK\":{\"default\":\"\",\"type\":\"LINK\",\"value\":\"medico:nome,c_r_m\"},\"MAX_COLUMN_LENGTH\":{\"default\":\"0\",\"type\":\"INTEGER\",\"value\":\"0\"},\"ONLY_ACTIVES\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"SERVICE\":{\"default\":\"com/Select.netuno\",\"type\":\"STRING\",\"value\":\"com/Select.netuno\"}}")
.set("rowspan", 0)
.set("tdheight", 0)
.set("tdwidth", 0)
.set("title", "medico")
.set("type", "select")
.set("uid", "6f91d408-39ef-48f7-9c2b-d0c6f2d564e9")
.set("unique", false)
.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)
)

+ 216
- 0
server/setup/_schema-form-8-paciente.js View File

@ -0,0 +1,216 @@
/**
*
* CODE GENERATED AUTOMATICALLY
*
* THIS FILE SHOULD NOT BE EDITED BY HAND
*
*/
_form.createIfNotExists(
_val.map()
.set("big", false)
.set("control_active", true)
.set("control_group", false)
.set("control_user", false)
.set("description", "")
.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", "paciente")
.set("reorder", 0)
.set("report", false)
.set("report_behaviour", 0)
.set("show_id", true)
.set("title", "Paciente")
.set("uid", "c3d3b84c-55da-4f13-a354-13052f8a5d7b")
)
_form.createComponentIfNotExists(
"c3d3b84c-55da-4f13-a354-13052f8a5d7b",
_val.map()
.set("colspan", 0)
.set("description", "")
.set("firebase", "")
.set("group_id", 0)
.set("height", 0)
.set("mandatory", true)
.set("max", 0)
.set("min", 0)
.set("name", "c_p_f")
.set("properties", "{\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"},\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"}}")
.set("rowspan", 0)
.set("tdheight", 0)
.set("tdwidth", 0)
.set("title", "CPF")
.set("type", "text")
.set("uid", "c3ba887a-83e2-4a66-a110-1f4205d2a4ee")
.set("unique", false)
.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(
"c3d3b84c-55da-4f13-a354-13052f8a5d7b",
_val.map()
.set("colspan", 0)
.set("description", "")
.set("firebase", "")
.set("group_id", 0)
.set("height", 0)
.set("mandatory", true)
.set("max", 0)
.set("min", 0)
.set("name", "data_de_nascimento")
.set("properties", "{\"DEFAULT_CURRENT\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"}}")
.set("rowspan", 0)
.set("tdheight", 0)
.set("tdwidth", 0)
.set("title", "data de nascimento")
.set("type", "date")
.set("uid", "55787f54-e532-45a3-9d9c-d2b4ccf62be4")
.set("unique", false)
.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(
"c3d3b84c-55da-4f13-a354-13052f8a5d7b",
_val.map()
.set("colspan", 0)
.set("description", "")
.set("firebase", "")
.set("group_id", 0)
.set("height", 0)
.set("mandatory", true)
.set("max", 0)
.set("min", 0)
.set("name", "endereco")
.set("properties", "{}")
.set("rowspan", 0)
.set("tdheight", 0)
.set("tdwidth", 0)
.set("title", "endere\u00E7o")
.set("type", "textarea")
.set("uid", "ae1c0c65-b4a9-44d3-98d2-21be36c4c3aa")
.set("unique", false)
.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)
)
_form.createComponentIfNotExists(
"c3d3b84c-55da-4f13-a354-13052f8a5d7b",
_val.map()
.set("colspan", 0)
.set("description", "")
.set("firebase", "")
.set("group_id", 0)
.set("height", 0)
.set("mandatory", true)
.set("max", 0)
.set("min", 0)
.set("name", "nome")
.set("properties", "{\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"},\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"}}")
.set("rowspan", 0)
.set("tdheight", 0)
.set("tdwidth", 0)
.set("title", "nome")
.set("type", "text")
.set("uid", "389ea318-c6dc-4a62-80c6-90d25c026f0f")
.set("unique", false)
.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(
"c3d3b84c-55da-4f13-a354-13052f8a5d7b",
_val.map()
.set("colspan", 0)
.set("description", "")
.set("firebase", "")
.set("group_id", 0)
.set("height", 0)
.set("mandatory", true)
.set("max", 0)
.set("min", 0)
.set("name", "r_g")
.set("properties", "{\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"},\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"}}")
.set("rowspan", 0)
.set("tdheight", 0)
.set("tdwidth", 0)
.set("title", "RG")
.set("type", "text")
.set("uid", "d58bc886-7b88-4254-8b91-1b3a2dbaf259")
.set("unique", false)
.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(
"c3d3b84c-55da-4f13-a354-13052f8a5d7b",
_val.map()
.set("colspan", 0)
.set("description", "")
.set("firebase", "")
.set("group_id", 0)
.set("height", 0)
.set("mandatory", false)
.set("max", 0)
.set("min", 0)
.set("name", "telefone")
.set("properties", "{\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"},\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"}}")
.set("rowspan", 0)
.set("tdheight", 0)
.set("tdwidth", 0)
.set("title", "telefone")
.set("type", "text")
.set("uid", "3467a333-d830-4cb5-a687-28cf63f41047")
.set("unique", false)
.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)
)

+ 93
- 0
server/setup/_schema-form-9-paciente_convenio.js View File

@ -0,0 +1,93 @@
/**
*
* CODE GENERATED AUTOMATICALLY
*
* THIS FILE SHOULD NOT BE EDITED BY HAND
*
*/
_form.createIfNotExists(
_val.map()
.set("big", false)
.set("control_active", true)
.set("control_group", false)
.set("control_user", false)
.set("description", "")
.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", "paciente_convenio")
.set("parent_uid", "c3d3b84c-55da-4f13-a354-13052f8a5d7b")
.set("reorder", 0)
.set("report", false)
.set("report_behaviour", 0)
.set("show_id", true)
.set("title", "Convenio")
.set("uid", "eef169ab-9876-4120-8490-58dd45305a0e")
)
_form.createComponentIfNotExists(
"eef169ab-9876-4120-8490-58dd45305a0e",
_val.map()
.set("colspan", 0)
.set("description", "")
.set("firebase", "")
.set("group_id", 0)
.set("height", 0)
.set("mandatory", false)
.set("max", 0)
.set("min", 0)
.set("name", "convenio_id")
.set("properties", "{\"COLUMN_SEPARATOR\":{\"default\":\" - \",\"type\":\"LINK_SEPARATOR\",\"value\":\" - \"},\"LINK\":{\"default\":\"\",\"type\":\"LINK\",\"value\":\"convenio:nome\"},\"MAX_COLUMN_LENGTH\":{\"default\":\"0\",\"type\":\"INTEGER\",\"value\":\"0\"},\"ONLY_ACTIVES\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"SERVICE\":{\"default\":\"com/Select.netuno\",\"type\":\"STRING\",\"value\":\"com/Select.netuno\"}}")
.set("rowspan", 0)
.set("tdheight", 0)
.set("tdwidth", 0)
.set("title", "convenio")
.set("type", "select")
.set("uid", "92dfee91-a89f-4acc-b6f5-468188a68084")
.set("unique", false)
.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(
"eef169ab-9876-4120-8490-58dd45305a0e",
_val.map()
.set("colspan", 0)
.set("description", "")
.set("firebase", "")
.set("group_id", 0)
.set("height", 0)
.set("mandatory", true)
.set("max", 0)
.set("min", 0)
.set("name", "paciente_id")
.set("properties", "{\"COLUMN_SEPARATOR\":{\"default\":\" - \",\"type\":\"LINK_SEPARATOR\",\"value\":\" - \"},\"LINK\":{\"default\":\"\",\"type\":\"LINK\",\"value\":\"paciente:nome,c_p_f,r_g\"},\"MAX_COLUMN_LENGTH\":{\"default\":\"0\",\"type\":\"INTEGER\",\"value\":\"0\"},\"ONLY_ACTIVES\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"SERVICE\":{\"default\":\"com/Select.netuno\",\"type\":\"STRING\",\"value\":\"com/Select.netuno\"}}")
.set("rowspan", 0)
.set("tdheight", 0)
.set("tdwidth", 0)
.set("title", "paciente")
.set("type", "select")
.set("uid", "d4c83c6c-413c-44f6-a82a-1dce28f2958c")
.set("unique", false)
.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)
)

+ 0
- 0
server/setup/_start.js View File


+ 24
- 0
server/templates/dashboard.html View File

@ -0,0 +1,24 @@
<div class="row">
<div class="col-lg-12">
<div class="with-form">
<h1 class="page-header">
_{&lang=netuno.main.dashboard.title}
</h1>
</div>
<div class="no-form">
<h1 class="page-header">
_{&lang=netuno.main.dashboard.welcome_netuno}
</h1>
<p>_{&lang=netuno.main.dashboard.you_not_form}</p>
<p>_{&lang=netuno.main.dashboard.you_can_start_by_clicking_top_bar}</p>
<br>
<img src="_{netuno-config=url-styles}/build-button-tutorial.png" height="80">
</div>
</div>
</div>
<div id="app-dashboard"></div>

+ 31
- 0
server/templates/dev/dashboard.html View File

@ -0,0 +1,31 @@
<div class="row">
<div class="col-lg-12">
<div class="with-form">
<h1 class="page-header">
_{&lang=netuno.main.dashboard.title}
</h1>
<p>_{&lang=netuno.main.dashboard.description}</p>
</div>
<div class="no-form">
<h1 class="page-header">
_{&lang=netuno.main.dashboard.welcome_netuno}
</h1>
<p>_{&lang=netuno.dev.main.you_not_form}</p>
<p>_{&lang=netuno.dev.main.you_can_start_by_clicking_top_bar}</p>
<br>
<img src="_{netuno-config=url-styles}/build-button-tutorial-dev.png" height="200">
</div>
#macro(listFormItems $items)
<ul>
#foreach($item in $items)
<li>
<a href="#" netuno-dev-form="$item.getString('name')">$item.getString('text')</a>
#listFormItems($item.get('items'))
</li>
#end
</ul>
#end
#listFormItems($data.get('menu').get('forms'))
</div>
</div>

+ 1
- 0
server/templates/scripts.html View File

@ -0,0 +1 @@
<script src="_{netuno-config=url-app-scripts}/ui.js?_{util=requestuuid}"></script>

+ 0
- 0
server/templates/scripts_dev.html View File


+ 0
- 0
server/templates/scripts_login.html View File


+ 2
- 0
server/templates/styles.html View File

@ -0,0 +1,2 @@
<link href='_{netuno-config=url-app-styles}/ui.css?_{util=requestuuid}' rel='stylesheet' />
<link href='_{netuno-config=url-app-styles}/main.css?_{util=requestuuid}' rel='stylesheet' />

+ 1
- 0
server/templates/styles_dev.html View File

@ -0,0 +1 @@
<link href='_{netuno-config=url-app-styles}/main.css?_{util=requestuuid}' rel='stylesheet' />

+ 0
- 0
server/templates/styles_login.html View File


+ 4
- 0
storage/filesystem/private/info.txt View File

@ -0,0 +1,4 @@
Secure data files comes here...
Only accessible for logged users!

+ 2
- 0
storage/filesystem/public/info.txt View File

@ -0,0 +1,2 @@
Public storage files comes here...

+ 4
- 0
storage/filesystem/server/info.txt View File

@ -0,0 +1,4 @@
Secure data files comes here...
Only accessible through server side!

+ 17
- 0
ui/.gitignore View File

@ -0,0 +1,17 @@
node_modules/
.DS_Store
*.log
.idea/
.metadata/
.vscode
package-lock.json
yarn.lock
pnpm-lock.yaml
bun.lock
.Trash
*~*
*#*

+ 27
- 0
ui/README.md View File

@ -0,0 +1,27 @@
# UI
Welcome to the User Interface development of the Netuno Platform.
Here you can build your dashboards and additional functionalities.
This default setup is based on React and Ant.Design, Vite, Bun, and PNPM.
You are free to change, remove, or replace any default technology as you want.
### Default Requisites
PNPM and Bun are required on the system as default.
1. [**PNPM Installation**](https://pnpm.io/installation)
2. [**Bun Installation**](https://bun.sh/docs/installation)
[More about PNPM and Bun.](https://doc.netuno.org/docs/academy/website/pnpm-bun/)
### Install Packages
`pnpm install`
### Watch changes and auto recompile
`pnpm run watch`

+ 31
- 0
ui/package.json View File

@ -0,0 +1,31 @@
{
"name": "ui",
"private": true,
"version": "1.0.0",
"type": "module",
"scripts": {
"dev": "vite",
"build": "vite build ",
"watch": "vite build --watch",
"lint": "eslint src --ext js,jsx --report-unused-disable-directives --max-warnings 0",
"preview": "vite preview"
},
"dependencies": {
"@ant-design/icons": "^6.1.0",
"@netuno/service-client": "^1.2.1",
"@netuno/ws-client": "^1.1.0",
"antd": "^6.1.1",
"less": "4.5.1",
"react": "^19.2.3",
"react-dom": "^19.2.3",
"ui": "file:"
},
"devDependencies": {
"@vitejs/plugin-react": "^5.1.2",
"vite": "^7.3.0",
"vite-plugin-imp": "^2.4.0"
},
"trustedDependencies": [
"less"
]
}

+ 13
- 0
ui/src/components/MyButton/index.jsx View File

@ -0,0 +1,13 @@
import { Button } from 'antd';
function MyButton({ text, onClick }) {
return (
<div>
<Button type="primary" onClick={ onClick }>
{ text }
</Button>
</div>
);
};
export default MyButton;

+ 29
- 0
ui/src/containers/DashboardContainer/index.jsx View File

@ -0,0 +1,29 @@
import { useState, useEffect, useRef } from "react";
import MyButton from "../../components/MyButton";
import "./index.less";
function DashboardContainer() {
const [counter, setCounter] = useState(0);
const refButton = useRef();
useEffect(() => {
$(refButton.current).fadeOut(250).fadeIn(250);
}, [counter]);
const onClick = () => {
setCounter(counter + 1);
};
return (
<div className="my-dashboard">
<div ref={refButton} className="my-dashboard__button">
<MyButton text={`ReactJS ⚡ Ant.Design 👉 Click me! ${counter}`} onClick={onClick} />
</div>
</div>
);
}
export default DashboardContainer;

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

@ -0,0 +1,11 @@
.my-dashboard {
width: 100%;
a.ant-btn {
&:hover,
&:focus {
color: #ffffff;
text-decoration: none;
}
}
}

+ 78
- 0
ui/src/index.jsx View File

@ -0,0 +1,78 @@
import React from "react";
import { createRoot } from "react-dom/client";
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
});
const dashboardDiv = document.getElementById("app-dashboard");
const dashboardContainer = dashboardDiv ? createRoot(dashboardDiv) : false;
if (dashboardContainer) {
dashboardContainer.render(
<ConfigProvider
theme={{
token: {
colorPrimary: '#5b5ce1',
colorLink: '#5b5ce1',
borderRadius: 5,
},
algorithm: theme.darkAlgorithm
}}
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/>
</ConfigProvider>
);
}
netuno.addNavigationLoad(() => {
$('[netuno-navigation]').find('a').on('netuno:click', (e)=> {
const link = $(e.target);
if (dashboardContainer && link.is('[netuno-navigation-dashboard]')) {
// Menu > Dashboard > Clicked!
}
});
});
netuno.addContentLoad((container) => {
// When any content is loaded dinamically this is executed...
if (container.is('[netuno-form-search="YOUR_FORM_NAME"]')) {
// When search page is loaded...
} else if (container.is('[netuno-form-edit="YOUR_FORM_NAME"]')) {
// When form edit is loaded...
}
});
netuno.addPageLoad(() => {
// When page is loaded...
let modal = $('#app-dashboard-modal-form');
modal.on('hidden.bs.modal', ()=> {
modal.find('[netuno-form-edit]').empty();
});
$('#app-dashboard-modal-form-button').on('click', ()=> {
modal.modal('show');
netuno.loadFormEdit(modal.find('[netuno-form]'));
});
modal.find('[netuno-form]').on('netuno:save', ()=> {
modal.modal('hide');
});
});

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

@ -0,0 +1,3 @@
/*** GLOBAL CSS ***/

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

@ -0,0 +1,59 @@
import { promises as fs } from 'fs';
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
const outputBasePath = './../public';
const outputFilePath = 'scripts/ui.js';
export default defineConfig({
plugins: [
react(),
{
closeBundle: async() => {
// Hack Ant.Design v5 Performance Issues
// Using Tables causes very slow interactions on the entire page because of an infinite loop,
// that executes the scrollTo function repeatedly stressing the browser.
const bundlePath = `${outputBasePath}/${outputFilePath}`
let data = await fs.readFile(bundlePath, 'utf-8');
data = data.replace('function scrollTo(', 'function $_scrollTo_antd_bug_$(');
await fs.writeFile(bundlePath, data, 'utf-8');
}
}
],
build: {
sourcemap: true,
rollupOptions: {
input: 'src/index.jsx',
output: {
format: 'iife',
dir: outputBasePath,
entryFileNames: outputFilePath,
assetFileNames: (assetInfo) => {
const info = assetInfo.name.split(".");
let extType = info[info.length - 1];
if (/png|jpe?g|svg|gif|tiff|bmp|ico/i.test(extType)) {
return `images/[name][extname]`;
} else if (/css/i.test(extType)) {
return `styles/ui[extname]`;
} else {
return `[name][extname]`;
}
},
chunkFileNames: "ui-chunk.js",
manualChunks: undefined,
},
onLog(level, log, handler) {
if (log.cause && log.cause.message === `Can't resolve original location of error.`) {
return;
}
handler(level, log);
},
onwarn: (warning, warn) => {
if (warning.code === 'MODULE_LEVEL_DIRECTIVE' || warning.code == 'EVAL') {
return;
}
warn(warning);
}
}
}
})

Loading…
Cancel
Save