| @ -0,0 +1,3 @@ | |||
| /* | |||
| * Development dynamic configurations is here. | |||
| */ | |||
| @ -0,0 +1,36 @@ | |||
| { | |||
| "cron": {"jobs": []}, | |||
| "settings": {"public": {}}, | |||
| "smtp": {}, | |||
| "name": "social", | |||
| "setup": { | |||
| "schema": { | |||
| "execution": true, | |||
| "auto_create": true | |||
| }, | |||
| "scripts": {"execution": true}, | |||
| "enabled": true | |||
| }, | |||
| "language": "pt_PT", | |||
| "firebase": { | |||
| "app_name": "", | |||
| "database_url": "", | |||
| "key_file": "", | |||
| "listener_secret": "" | |||
| }, | |||
| "locale": "pt_PT", | |||
| "remote": {}, | |||
| "commands": [{ | |||
| "path": "ui", | |||
| "command": "npm run watch", | |||
| "enabled": true | |||
| }], | |||
| "db": {"default": { | |||
| "password": "", | |||
| "engine": "h2", | |||
| "port": "", | |||
| "host": "", | |||
| "name": "social", | |||
| "username": "" | |||
| }} | |||
| } | |||
| @ -0,0 +1,3 @@ | |||
| /* | |||
| * Production dynamic configurations is here. | |||
| */ | |||
| @ -0,0 +1,31 @@ | |||
| { | |||
| "cron": {"jobs": []}, | |||
| "settings": {"public": {}}, | |||
| "smtp": {}, | |||
| "name": "social", | |||
| "setup": { | |||
| "schema": { | |||
| "execution": true, | |||
| "auto_create": true | |||
| }, | |||
| "scripts": {"execution": true}, | |||
| "enabled": true | |||
| }, | |||
| "language": "pt_PT", | |||
| "firebase": { | |||
| "app_name": "", | |||
| "database_url": "", | |||
| "key_file": "", | |||
| "listener_secret": "" | |||
| }, | |||
| "locale": "pt_PT", | |||
| "remote": {}, | |||
| "db": {"default": { | |||
| "password": "", | |||
| "engine": "h2", | |||
| "port": "", | |||
| "host": "", | |||
| "name": "social", | |||
| "username": "" | |||
| }} | |||
| } | |||
| @ -0,0 +1,160 @@ | |||
| 2021-03-22 23:58:32 jdbc[3]: exception | |||
| org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "alter table ""pessoa_comunidade"" alter column ""comunidade"" type varchar_ignorecase(250) default[*] '';"; SQL statement: | |||
| alter table "pessoa_comunidade" alter column "comunidade" type varchar_ignorecase(250) default ''; [42000-198] | |||
| 2021-03-24 23:47:47 jdbc[3]: exception | |||
| org.h2.jdbc.JdbcSQLSyntaxErrorException: Ambiguous column name "nome"; SQL statement: | |||
| select nome, sobrenome, | |||
| cidade.nome cidade | |||
| from pessoa | |||
| inner join cidade on pessoa.cidade_id=cidade_id [90059-198] | |||
| at org.h2.message.DbException.getJdbcSQLException(DbException.java:573) | |||
| at org.h2.message.DbException.getJdbcSQLException(DbException.java:427) | |||
| at org.h2.message.DbException.get(DbException.java:205) | |||
| at org.h2.message.DbException.get(DbException.java:181) | |||
| at org.h2.expression.ExpressionColumn.mapColumn(ExpressionColumn.java:142) | |||
| at org.h2.expression.ExpressionColumn.mapColumns(ExpressionColumn.java:116) | |||
| at org.h2.command.dml.Select.mapColumns(Select.java:1636) | |||
| at org.h2.command.dml.Select.init(Select.java:1175) | |||
| at org.h2.command.Parser.parseSelect(Parser.java:2449) | |||
| at org.h2.command.Parser.parsePrepared(Parser.java:815) | |||
| at org.h2.command.Parser.parse(Parser.java:789) | |||
| at org.h2.command.Parser.parse(Parser.java:761) | |||
| at org.h2.command.Parser.prepareCommand(Parser.java:684) | |||
| at org.h2.engine.Session.prepareLocal(Session.java:629) | |||
| at org.h2.engine.Session.prepareCommand(Session.java:567) | |||
| at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1247) | |||
| at org.h2.jdbc.JdbcPreparedStatement.<init>(JdbcPreparedStatement.java:77) | |||
| at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:304) | |||
| at org.netuno.psamata.DB.executeQuery(SourceFile:456) | |||
| at org.netuno.psamata.DB.executeQuery(SourceFile:411) | |||
| at org.netuno.psamata.DB.query(SourceFile:381) | |||
| at org.netuno.tritao.resource.DB.query(SourceFile:761) | |||
| at org.graalvm.truffle/com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod$MHBase.invokeHandle(HostMethodDesc.java:292) | |||
| at org.graalvm.truffle/com.oracle.truffle.polyglot.HostToGuestCodeCache$1.executeImpl(HostToGuestCodeCache.java:86) | |||
| at org.graalvm.truffle/com.oracle.truffle.polyglot.GuestToHostRootNode.execute(GuestToHostRootNode.java:82) | |||
| at jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:591) | |||
| at jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callInlined(OptimizedCallTarget.java:485) | |||
| at jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.GraalRuntimeSupport.callInlined(GraalRuntimeSupport.java:120) | |||
| at org.graalvm.truffle/com.oracle.truffle.polyglot.GuestToHostRootNode.guestToHostCall(GuestToHostRootNode.java:108) | |||
| at org.graalvm.truffle/com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod$MHBase.invokeGuestToHost(HostMethodDesc.java:319) | |||
| at org.graalvm.truffle/com.oracle.truffle.polyglot.HostExecuteNode.doInvoke(HostExecuteNode.java:809) | |||
| at org.graalvm.truffle/com.oracle.truffle.polyglot.HostExecuteNode.doOverloadedCached(HostExecuteNode.java:241) | |||
| at org.graalvm.truffle/com.oracle.truffle.polyglot.HostExecuteNodeGen.executeAndSpecialize(HostExecuteNodeGen.java:241) | |||
| at org.graalvm.truffle/com.oracle.truffle.polyglot.HostExecuteNodeGen.execute(HostExecuteNodeGen.java:94) | |||
| at org.graalvm.truffle/com.oracle.truffle.polyglot.HostObject.invokeMember(HostObject.java:412) | |||
| at org.graalvm.truffle/com.oracle.truffle.polyglot.HostObjectGen$InteropLibraryExports$Cached.invokeMemberNode_AndSpecialize(HostObjectGen.java:1393) | |||
| at org.graalvm.truffle/com.oracle.truffle.polyglot.HostObjectGen$InteropLibraryExports$Cached.invokeMember(HostObjectGen.java:1365) | |||
| at org.graalvm.truffle/com.oracle.truffle.api.interop.InteropLibraryGen$CachedDispatch.invokeMember(InteropLibraryGen.java:6078) | |||
| at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$ForeignInvokeNode.executeCall(JSFunctionCallNode.java:1482) | |||
| at com.oracle.truffle.js.nodes.function.JSFunctionCallNode.executeAndSpecialize(JSFunctionCallNode.java:294) | |||
| at com.oracle.truffle.js.nodes.function.JSFunctionCallNode.executeCall(JSFunctionCallNode.java:240) | |||
| at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$InvokeNode.execute(JSFunctionCallNode.java:711) | |||
| at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$Invoke1Node.createArguments(JSFunctionCallNode.java:820) | |||
| at com.oracle.truffle.js.nodes.function.JSFunctionCallNode$InvokeNode.execute(JSFunctionCallNode.java:711) | |||
| at com.oracle.truffle.js.nodes.access.JSWriteCurrentFrameSlotNodeGen.execute_generic4(JSWriteCurrentFrameSlotNodeGen.java:154) | |||
| at com.oracle.truffle.js.nodes.access.JSWriteCurrentFrameSlotNodeGen.execute(JSWriteCurrentFrameSlotNodeGen.java:80) | |||
| at com.oracle.truffle.js.nodes.access.JSWriteCurrentFrameSlotNodeGen.executeVoid(JSWriteCurrentFrameSlotNodeGen.java:302) | |||
| at com.oracle.truffle.js.nodes.binary.DualNode.execute(DualNode.java:124) | |||
| at com.oracle.truffle.js.nodes.function.FunctionBodyNode.execute(FunctionBodyNode.java:73) | |||
| at com.oracle.truffle.js.nodes.function.FunctionRootNode.executeInRealm(FunctionRootNode.java:147) | |||
| at com.oracle.truffle.js.runtime.JavaScriptRealmBoundaryRootNode.execute(JavaScriptRealmBoundaryRootNode.java:93) | |||
| at jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:591) | |||
| at jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:562) | |||
| at jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:512) | |||
| at jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:496) | |||
| at jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:459) | |||
| at jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:71) | |||
| at com.oracle.truffle.js.lang.JavaScriptLanguage$1.execute(JavaScriptLanguage.java:214) | |||
| at jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.executeRootNode(OptimizedCallTarget.java:591) | |||
| at jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.profiledPERoot(OptimizedCallTarget.java:562) | |||
| at jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:512) | |||
| at jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:496) | |||
| at jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callIndirect(OptimizedCallTarget.java:446) | |||
| at jdk.internal.vm.compiler/org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.call(OptimizedCallTarget.java:434) | |||
| at org.graalvm.truffle/com.oracle.truffle.polyglot.PolyglotContextImpl.eval(PolyglotContextImpl.java:941) | |||
| at org.graalvm.sdk/org.graalvm.polyglot.Context.eval(Context.java:347) | |||
| at org.graalvm.sdk/org.graalvm.polyglot.Context.eval(Context.java:373) | |||
| at org.netuno.psamata.script.GraalRunner.eval(SourceFile:169) | |||
| at org.netuno.tritao.config.Hili.runGraalScript(SourceFile:550) | |||
| at org.netuno.tritao.config.Hili.runScriptSandbox(SourceFile:393) | |||
| at org.netuno.tritao.config.Hili.runScriptSandbox(SourceFile:310) | |||
| at org.netuno.tritao.Service.execute(SourceFile:630) | |||
| at org.netuno.tritao.Service._main(SourceFile:571) | |||
| at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) | |||
| at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) | |||
| at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) | |||
| at java.base/java.lang.reflect.Method.invoke(Method.java:566) | |||
| at org.netuno.proteu.Run.run(SourceFile:103) | |||
| at org.netuno.proteu.Run.<init>(SourceFile:33) | |||
| at org.netuno.proteu.DynamicURL.build(SourceFile:153) | |||
| at org.netuno.proteu.Enterprise.processRequest(SourceFile:452) | |||
| at org.netuno.proteu.Enterprise.service(SourceFile:525) | |||
| at javax.servlet.http.HttpServlet.service(SourceFile:791) | |||
| at org.eclipse.jetty.servlet.ServletHolder$NotAsyncServlet.service(SourceFile:1402) | |||
| at org.eclipse.jetty.servlet.ServletHolder.handle(SourceFile:763) | |||
| at org.eclipse.jetty.servlet.ServletHandler.doHandle(SourceFile:551) | |||
| at org.eclipse.jetty.server.handler.ScopedHandler.handle(SourceFile:143) | |||
| at org.eclipse.jetty.security.SecurityHandler.handle(SourceFile:602) | |||
| at org.eclipse.jetty.server.handler.HandlerWrapper.handle(SourceFile:127) | |||
| at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(SourceFile:235) | |||
| at org.eclipse.jetty.server.session.SessionHandler.doHandle(SourceFile:1610) | |||
| at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(SourceFile:233) | |||
| at org.eclipse.jetty.server.handler.ContextHandler.doHandle(SourceFile:1369) | |||
| at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(SourceFile:188) | |||
| at org.eclipse.jetty.servlet.ServletHandler.doScope(SourceFile:489) | |||
| at org.eclipse.jetty.server.session.SessionHandler.doScope(SourceFile:1580) | |||
| at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(SourceFile:186) | |||
| at org.eclipse.jetty.server.handler.ContextHandler.doScope(SourceFile:1284) | |||
| at org.eclipse.jetty.server.handler.ScopedHandler.handle(SourceFile:141) | |||
| at org.eclipse.jetty.server.handler.HandlerList.handle(SourceFile:59) | |||
| at org.eclipse.jetty.server.handler.HandlerWrapper.handle(SourceFile:127) | |||
| at org.eclipse.jetty.server.Server.handle(SourceFile:501) | |||
| at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(SourceFile:383) | |||
| at org.eclipse.jetty.server.HttpChannel.dispatch(SourceFile:556) | |||
| at org.eclipse.jetty.server.HttpChannel.handle(SourceFile:375) | |||
| at org.eclipse.jetty.server.HttpConnection.onFillable(SourceFile:272) | |||
| at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(SourceFile:311) | |||
| at org.eclipse.jetty.io.FillInterest.fillable(SourceFile:103) | |||
| at org.eclipse.jetty.io.ChannelEndPoint$1.run(SourceFile:104) | |||
| at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(SourceFile:336) | |||
| at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(SourceFile:313) | |||
| at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(SourceFile:171) | |||
| at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(SourceFile:129) | |||
| at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(SourceFile:375) | |||
| at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(SourceFile:806) | |||
| at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(SourceFile:938) | |||
| at java.base/java.lang.Thread.run(Thread.java:834) | |||
| 2021-03-25 00:01:54 jdbc[3]: exception | |||
| org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement " | |||
| select pessoa.nome, sobrenome, pessoa.id | |||
| cidade.[*]nome cidade | |||
| from pessoa | |||
| inner join cidade on pessoa.cidade_id=cidade_id"; SQL statement: | |||
| select pessoa.nome, sobrenome, pessoa.id | |||
| cidade.nome cidade | |||
| from pessoa | |||
| inner join cidade on pessoa.cidade_id=cidade_id [42000-198] | |||
| 2021-03-25 00:01:57 jdbc[3]: exception | |||
| org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement " | |||
| select pessoa.nome, sobrenome, pessoa.id | |||
| cidade.[*]nome cidade | |||
| from pessoa | |||
| inner join cidade on pessoa.cidade_id=cidade_id"; SQL statement: | |||
| select pessoa.nome, sobrenome, pessoa.id | |||
| cidade.nome cidade | |||
| from pessoa | |||
| inner join cidade on pessoa.cidade_id=cidade_id [42000-198] | |||
| 2021-03-25 00:02:01 jdbc[3]: exception | |||
| org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement " | |||
| select pessoa.nome, sobrenome, pessoa.id | |||
| cidade.[*]nome cidade | |||
| from pessoa | |||
| inner join cidade on pessoa.cidade_id=cidade_id"; SQL statement: | |||
| select pessoa.nome, sobrenome, pessoa.id | |||
| cidade.nome cidade | |||
| from pessoa | |||
| inner join cidade on pessoa.cidade_id=cidade_id [42000-198] | |||
| @ -0,0 +1,13 @@ | |||
| /** | |||
| HERE YOUR CUSTOM CSS | |||
| **/ | |||
| .navbar, .navbar-inverse { | |||
| background-color: #5b5ce1 !important; | |||
| } | |||
| .dev .navbar, .dev .navbar-inverse { | |||
| background-color: #333333 !important; | |||
| } | |||
| @ -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) | |||
| } | |||
| } | |||
| @ -0,0 +1,5 @@ | |||
| /** | |||
| * FIREBASE - Set your listeners | |||
| */ | |||
| // _firebase.listener("my-test", _header.baseURL() + "/services/firebase/listener/my-test.netuno") | |||
| @ -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") | |||
| ) | |||
| */ | |||
| } | |||
| @ -0,0 +1,2 @@ | |||
| _config.set("_script:_request_end", true) | |||
| @ -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()) | |||
| @ -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 +1,5 @@ | |||
| /* | |||
| // Print error: | |||
| _log.fatal("Service "+ _service.path, _error.data().get("throwable")) | |||
| */ | |||
| @ -0,0 +1,7 @@ | |||
| { | |||
| "name": "server", | |||
| "version": "1.0.0", | |||
| "description": "Server modules dependencies.", | |||
| "author": "netuno.org", | |||
| "license": "ISC" | |||
| } | |||
| @ -0,0 +1,39 @@ | |||
| const dbpessoas = _db.query(` | |||
| select pessoa.nome, sobrenome, pessoa.id, cidade.nome cidade | |||
| from pessoa | |||
| inner join cidade on pessoa.cidade_id=cidade_id` | |||
| ) | |||
| const dados = _val.list() | |||
| for(const dbpessoa of dbpessoas){ | |||
| const dbcomunidades = _db.query(` | |||
| select * from pessoa_comunidade | |||
| inner join comunidade on pessoa_comunidade.comunidade_id=comunidade.id | |||
| where pessoa_id=? | |||
| `, dbpessoa.get("id")) | |||
| const dadoscomunidades = _val.list() | |||
| for(const dbcomunidade of dbcomunidades){ | |||
| dadoscomunidades.add( | |||
| dbcomunidade.getString("nome") | |||
| ) | |||
| } _log.info("dbcomunidades" + dbcomunidades.size()) | |||
| console.log() | |||
| dados.add( | |||
| _val.map() | |||
| .set("nome", dbpessoa.get("nome")) | |||
| .set("sobrenome", dbpessoa.get("sobrenome")) | |||
| .set("cidade", dbpessoa.get("cidade")) | |||
| .set("comunidades", dadoscomunidades) | |||
| .set("comunidade", _db.query(` | |||
| select comunidade.nome from pessoa_comunidade | |||
| inner join comunidade on pessoa_comunidade.comunidade_id=comunidade.id | |||
| where pessoa_id=? | |||
| `, dbpessoa.get("id"))) | |||
| ) | |||
| } | |||
| _out.json( | |||
| dados | |||
| ) | |||
| @ -0,0 +1,57 @@ | |||
| /** | |||
| * | |||
| * 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("displayname", "Cidade") | |||
| .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", "cidade") | |||
| .set("report", false) | |||
| .set("show_id", true) | |||
| .set("uid", "35741829-d72e-4b60-8e7e-27f44855a658") | |||
| ) | |||
| _form.createComponentIfNotExists( | |||
| "35741829-d72e-4b60-8e7e-27f44855a658", | |||
| _val.init() | |||
| .set("colspan", 0) | |||
| .set("displayname", "nome") | |||
| .set("firebase", "") | |||
| .set("group_id", 0) | |||
| .set("height", 0) | |||
| .set("max", 0) | |||
| .set("min", 0) | |||
| .set("name", "nome") | |||
| .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", "54787d26-38b9-4610-a444-4c55eaf035b6") | |||
| .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 +1,117 @@ | |||
| /** | |||
| * | |||
| * 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("displayname", "Comunidade") | |||
| .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", "comunidade") | |||
| .set("report", false) | |||
| .set("show_id", true) | |||
| .set("uid", "3f326ec7-fb99-4f00-9561-86c81f1d96ca") | |||
| ) | |||
| _form.createComponentIfNotExists( | |||
| "3f326ec7-fb99-4f00-9561-86c81f1d96ca", | |||
| _val.init() | |||
| .set("colspan", 0) | |||
| .set("displayname", "cidade_id") | |||
| .set("firebase", "") | |||
| .set("group_id", 0) | |||
| .set("height", 0) | |||
| .set("max", 0) | |||
| .set("min", 0) | |||
| .set("name", "cidade_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\":\"cidade:nome\"},\"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", "cc23f21c-5633-4046-bf13-e0a995ce863a") | |||
| .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( | |||
| "3f326ec7-fb99-4f00-9561-86c81f1d96ca", | |||
| _val.init() | |||
| .set("colspan", 0) | |||
| .set("displayname", "imagem") | |||
| .set("firebase", "") | |||
| .set("group_id", 0) | |||
| .set("height", 0) | |||
| .set("max", 0) | |||
| .set("min", 0) | |||
| .set("name", "imagem") | |||
| .set("notnull", false) | |||
| .set("primarykey", false) | |||
| .set("properties", "{}") | |||
| .set("rowspan", 0) | |||
| .set("tdheight", 0) | |||
| .set("tdwidth", 0) | |||
| .set("type", "image") | |||
| .set("uid", "19822828-f178-4d28-831c-e1597ff42f38") | |||
| .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( | |||
| "3f326ec7-fb99-4f00-9561-86c81f1d96ca", | |||
| _val.init() | |||
| .set("colspan", 0) | |||
| .set("displayname", "nome") | |||
| .set("firebase", "") | |||
| .set("group_id", 0) | |||
| .set("height", 0) | |||
| .set("max", 0) | |||
| .set("min", 0) | |||
| .set("name", "nome") | |||
| .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", "faab8df8-bb1a-483d-b65f-11ed997bb4d5") | |||
| .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) | |||
| ) | |||
| @ -0,0 +1,177 @@ | |||
| /** | |||
| * | |||
| * 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("displayname", "Pessoa") | |||
| .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", "pessoa") | |||
| .set("report", false) | |||
| .set("show_id", true) | |||
| .set("uid", "576dd48d-20fc-4ceb-b8ea-22eb20632867") | |||
| ) | |||
| _form.createComponentIfNotExists( | |||
| "576dd48d-20fc-4ceb-b8ea-22eb20632867", | |||
| _val.init() | |||
| .set("colspan", 0) | |||
| .set("displayname", "cidade") | |||
| .set("firebase", "") | |||
| .set("group_id", 0) | |||
| .set("height", 0) | |||
| .set("max", 0) | |||
| .set("min", 0) | |||
| .set("name", "cidade_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\":\"cidade:nome\"},\"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", "e5017588-7b42-4546-b1c3-3cd8adaa3838") | |||
| .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( | |||
| "576dd48d-20fc-4ceb-b8ea-22eb20632867", | |||
| _val.init() | |||
| .set("colspan", 0) | |||
| .set("displayname", "Comunidades") | |||
| .set("firebase", "") | |||
| .set("group_id", 0) | |||
| .set("height", 0) | |||
| .set("max", 0) | |||
| .set("min", 0) | |||
| .set("name", "comunidades") | |||
| .set("notnull", false) | |||
| .set("primarykey", false) | |||
| .set("properties", "{\"ITEM_SEPARATOR\":{\"default\":\" # \",\"type\":\"STRING\",\"value\":\" # \"},\"MAX_COLUMN_LENGTH\":{\"default\":\"0\",\"type\":\"INTEGER\",\"value\":\"0\"},\"COLUMN_SEPARATOR\":{\"default\":\" - \",\"type\":\"LINK_SEPARATOR\",\"value\":\" - \"},\"REFERENCE\":{\"default\":\"\",\"type\":\"LINK\",\"value\":\"pessoa_comunidade:pessoa_id\"},\"LINK\":{\"default\":\"\",\"type\":\"LINK\",\"value\":\"pessoa_comunidade:comunidade_id\"},\"SERVICE\":{\"default\":\"com/MultiSelect.netuno\",\"type\":\"STRING\",\"value\":\"com/MultiSelect.netuno\"},\"ONLY_ACTIVES\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"}}") | |||
| .set("rowspan", 0) | |||
| .set("tdheight", 0) | |||
| .set("tdwidth", 0) | |||
| .set("type", "multiselect") | |||
| .set("uid", "3a7bd5d2-80ba-4893-a2cc-045c82c33d35") | |||
| .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( | |||
| "576dd48d-20fc-4ceb-b8ea-22eb20632867", | |||
| _val.init() | |||
| .set("colspan", 0) | |||
| .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", true) | |||
| .set("properties", "{}") | |||
| .set("rowspan", 0) | |||
| .set("tdheight", 0) | |||
| .set("tdwidth", 0) | |||
| .set("type", "email") | |||
| .set("uid", "3cf86f7c-d331-451a-b800-225015464a22") | |||
| .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( | |||
| "576dd48d-20fc-4ceb-b8ea-22eb20632867", | |||
| _val.init() | |||
| .set("colspan", 0) | |||
| .set("displayname", "Nome") | |||
| .set("firebase", "") | |||
| .set("group_id", 0) | |||
| .set("height", 0) | |||
| .set("max", 0) | |||
| .set("min", 0) | |||
| .set("name", "nome") | |||
| .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", "cc1f32a8-e81c-4782-8ca7-d978e1b8d3a3") | |||
| .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( | |||
| "576dd48d-20fc-4ceb-b8ea-22eb20632867", | |||
| _val.init() | |||
| .set("colspan", 0) | |||
| .set("displayname", "Sobrenome") | |||
| .set("firebase", "") | |||
| .set("group_id", 0) | |||
| .set("height", 0) | |||
| .set("max", 0) | |||
| .set("min", 0) | |||
| .set("name", "sobrenome") | |||
| .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", "9e73f8b7-d8c6-440a-a594-c4279988a2df") | |||
| .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) | |||
| ) | |||
| @ -0,0 +1,88 @@ | |||
| /** | |||
| * | |||
| * 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("displayname", "Comunidade") | |||
| .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", "pessoa_comunidade") | |||
| .set("parent_uid", "576dd48d-20fc-4ceb-b8ea-22eb20632867") | |||
| .set("report", false) | |||
| .set("show_id", true) | |||
| .set("uid", "5f7c6836-8362-4c15-967a-1f548df6607d") | |||
| ) | |||
| _form.createComponentIfNotExists( | |||
| "5f7c6836-8362-4c15-967a-1f548df6607d", | |||
| _val.init() | |||
| .set("colspan", 0) | |||
| .set("displayname", "comunidade_id") | |||
| .set("firebase", "") | |||
| .set("group_id", 0) | |||
| .set("height", 0) | |||
| .set("max", 0) | |||
| .set("min", 0) | |||
| .set("name", "comunidade_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\":\"comunidade:nome\"},\"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", "d8d5004c-aa49-44fb-b0d8-0c57a407ab74") | |||
| .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( | |||
| "5f7c6836-8362-4c15-967a-1f548df6607d", | |||
| _val.init() | |||
| .set("colspan", 0) | |||
| .set("displayname", "Pessoa") | |||
| .set("firebase", "") | |||
| .set("group_id", 0) | |||
| .set("height", 0) | |||
| .set("max", 0) | |||
| .set("min", 0) | |||
| .set("name", "pessoa_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\":\"pessoa:nome,sobrenome,email\"},\"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", "6bd327dc-8a15-421b-9edd-ce5b608eb310") | |||
| .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 +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> | |||
| @ -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> | |||
| @ -0,0 +1 @@ | |||
| <script src="_{netuno-config=url-app-scripts}/main.js?_{util=requestuuid}"></script> | |||
| @ -0,0 +1 @@ | |||
| <link href='_{netuno-config=url-app-styles}/main.css' rel='stylesheet' /> | |||
| @ -0,0 +1 @@ | |||
| <link href='_{netuno-config=url-app-styles}/main.css' rel='stylesheet' /> | |||
| @ -0,0 +1,4 @@ | |||
| Secure data files comes here... | |||
| Only accessible for logged users! | |||
| @ -0,0 +1,2 @@ | |||
| Public storage files comes here... | |||
| @ -0,0 +1,4 @@ | |||
| Secure data files comes here... | |||
| Only accessible through server side! | |||
| @ -0,0 +1,9 @@ | |||
| { | |||
| "presets": [ | |||
| "@babel/preset-env", | |||
| "@babel/preset-react" | |||
| ], | |||
| "plugins": [ | |||
| ["import", { "libraryName": "antd", "style": true } ] | |||
| ] | |||
| } | |||
| @ -0,0 +1,18 @@ | |||
| node_modules/ | |||
| .DS_Store | |||
| *.log | |||
| .idea/ | |||
| .metadata/ | |||
| .vscode | |||
| package-lock.json | |||
| yarn.lock | |||
| .Trash | |||
| *~* | |||
| *#* | |||
| @ -0,0 +1,24 @@ | |||
| ### Install Packages | |||
| `npm install` | |||
| ### Watch changes and auto recompile | |||
| `npm run watch` | |||
| ### Installation requirements | |||
| On Windows with an Administrator terminal, run: | |||
| ``` | |||
| npm install --global --production windows-build-tools | |||
| npm install --global node-gyp | |||
| ``` | |||
| With others Python version, then configure the Python 2.7 path: | |||
| ``` | |||
| node-gyp --python /path/to/python2.7 | |||
| npm config set python /path/to/executable/python2.7 | |||
| ``` | |||
| @ -0,0 +1,36 @@ | |||
| { | |||
| "name": "public", | |||
| "version": "1.0.0", | |||
| "description": "", | |||
| "main": "index.js", | |||
| "scripts": { | |||
| "test": "echo \"Error: no test specified\" && exit 1", | |||
| "build": "webpack --mode production", | |||
| "watch": "webpack --mode development --watch" | |||
| }, | |||
| "keywords": [], | |||
| "author": "", | |||
| "license": "ISC", | |||
| "devDependencies": { | |||
| "@babel/core": "^7.9.0", | |||
| "@babel/plugin-proposal-object-rest-spread": "^7.9.0", | |||
| "@babel/preset-env": "^7.9.0", | |||
| "@babel/preset-react": "^7.9.4", | |||
| "babel-loader": "^8.1.0", | |||
| "babel-plugin-import": "^1.13.0", | |||
| "less": "^3.11.1", | |||
| "less-loader": "^5.0.0", | |||
| "css-loader": "^3.4.2", | |||
| "style-loader": "^1.1.3", | |||
| "prop-types": "^15.7.2", | |||
| "react": "^16.13.1", | |||
| "react-dom": "^16.13.1", | |||
| "webpack": "^4.42.1", | |||
| "webpack-cli": "^3.3.11" | |||
| }, | |||
| "dependencies": { | |||
| "antd": "^4.1.0", | |||
| "chart.js": "^2.9.3", | |||
| "react-chartjs-2": "^2.9.0" | |||
| } | |||
| } | |||
| @ -0,0 +1,17 @@ | |||
| import React from "react"; | |||
| import PropTypes from "prop-types"; | |||
| import Button from 'antd/lib/button'; | |||
| const MyButton = ({ buttonRef, text, click }) => ( | |||
| <div ref={ buttonRef }><Button type="primary" onClick={ click }> | |||
| { text } | |||
| </Button></div> | |||
| ); | |||
| MyButton.propTypes = { | |||
| buttonRef: PropTypes.shape({ current: PropTypes.instanceOf(Element) }), | |||
| text: PropTypes.string.isRequired, | |||
| click: PropTypes.func.isRequired | |||
| }; | |||
| export default MyButton; | |||
| @ -0,0 +1,80 @@ | |||
| import React, { useEffect, useState } from "react" | |||
| import Table from 'antd/lib/table'; | |||
| import Tag from 'antd/lib/tag' | |||
| import notification from 'antd/lib/notification' | |||
| const PessoasTabela = () => { | |||
| const [data, setData] = useState([]) | |||
| const [loader, setLoader] = useState(true) | |||
| useEffect(() => { | |||
| netuno.service({ | |||
| url: '/services/pessoa', | |||
| method: 'POST', | |||
| credentials: 'include', | |||
| headers: { | |||
| 'Content-Type': 'application/json' | |||
| }, | |||
| body: JSON.stringify({ | |||
| param1: 'value1', | |||
| param2: 'value2' | |||
| }), | |||
| success: (response)=> { | |||
| console.log(response); | |||
| if (response.json) { | |||
| setData(response.json) | |||
| setLoader(false) | |||
| } else { | |||
| fail(); | |||
| } | |||
| }, | |||
| fail: ()=> { | |||
| fail(); | |||
| } | |||
| }); | |||
| }, []) | |||
| const fail = ()=> { | |||
| setLoader(false) | |||
| notification["error"]({ | |||
| message: 'Error', | |||
| description: 'Data loading error...', | |||
| style: { | |||
| marginTop: 100, | |||
| } | |||
| }); | |||
| }; | |||
| const columns = [ | |||
| { | |||
| title: 'Nome', | |||
| dataIndex: 'nome', | |||
| key: 'name', | |||
| }, | |||
| { | |||
| title: 'Sobrenome', | |||
| dataIndex: 'sobrenome', | |||
| key: 'age', | |||
| }, | |||
| { | |||
| title: 'Cidade', | |||
| dataIndex: 'cidade', | |||
| key: 'address', | |||
| }, | |||
| { | |||
| title: 'Comunidades', | |||
| dataIndex: 'comunidades', | |||
| key: 'address', | |||
| render: (comunidades) => comunidades.map((comunidade) => { | |||
| return( | |||
| <Tag>{comunidade}</Tag> | |||
| ) | |||
| }) | |||
| }, | |||
| ]; | |||
| return ( | |||
| <div> | |||
| <Table dataSource={data} columns={columns} />; | |||
| </div> | |||
| ) | |||
| } | |||
| export default PessoasTabela | |||
| @ -0,0 +1,51 @@ | |||
| import React, { Component } from "react"; | |||
| import MyButton from "../../components/MyButton/index.jsx"; | |||
| import PessoasTabela from "../../components/PessoasTabela/index.jsx"; | |||
| import "./index.less"; | |||
| export default class DashboardContainer extends Component { | |||
| constructor(props) { | |||
| super(props); | |||
| this.state = { | |||
| counter: 0, | |||
| data: [] | |||
| }; | |||
| this.button = React.createRef(); | |||
| this.click = this.click.bind(this); | |||
| } | |||
| componentWillMount() { | |||
| /* | |||
| // Basic sample of the service call: | |||
| fetch('/services/my-test.netuno', { | |||
| credentials: 'include' | |||
| }).then((response) => { | |||
| return response.json(); | |||
| }).then((json) => { | |||
| // json...; | |||
| }); | |||
| */ | |||
| // Better sample of the recommended way to call services: | |||
| } | |||
| componentDidUpdate(prevProps, prevState, snapshot) { | |||
| $(this.button.current).fadeOut(250).fadeIn(250); | |||
| } | |||
| click() { | |||
| this.setState({ counter: this.state.counter + 1 }); | |||
| } | |||
| render() { | |||
| const { counter, data } = this.state; | |||
| return ( | |||
| <div className="my-dashboard"> | |||
| <PessoasTabela /> | |||
| </div> | |||
| ); | |||
| } | |||
| } | |||
| @ -0,0 +1,8 @@ | |||
| .my-dashboard { | |||
| width: 100%; | |||
| &__button { | |||
| padding: 80px; | |||
| text-align: center; | |||
| } | |||
| } | |||
| @ -0,0 +1,42 @@ | |||
| import React from "react"; | |||
| import ReactDOM from "react-dom"; | |||
| import DashboardContainer from "./containers/DashboardContainer/index.jsx"; | |||
| const dashboardDiv = document.getElementById("app-dashboard"); | |||
| const dashboardContainer = dashboardDiv ? ReactDOM.render(<DashboardContainer />, dashboardDiv) : false; | |||
| netuno.addNavigationLoad(() => { | |||
| $('[netuno-navigation]').find('a').on('netuno:click', (e)=> { | |||
| const link = $(e.target); | |||
| if (dashboardContainer && link.is('[netuno-navigation-dashboard]')) { | |||
| // Menu > Dashboard > Clicked! | |||
| } | |||
| }); | |||
| }); | |||
| netuno.addContentLoad((container) => { | |||
| // When any content is loaded dinamically this is executed... | |||
| if (container.is('[netuno-form-search="YOUR_FORM_NAME"]')) { | |||
| // When search page is loaded... | |||
| } else if (container.is('[netuno-form-edit="YOUR_FORM_NAME"]')) { | |||
| // When form edit is loaded... | |||
| } | |||
| }); | |||
| netuno.addPageLoad(() => { | |||
| // When page is loaded... | |||
| let modal = $('#app-dashboard-modal-form'); | |||
| modal.on('hidden.bs.modal', ()=> { | |||
| modal.find('[netuno-form-edit]').empty(); | |||
| }); | |||
| $('#app-dashboard-modal-form-button').on('click', ()=> { | |||
| modal.modal('show'); | |||
| netuno.loadFormEdit(modal.find('[netuno-form]')); | |||
| }); | |||
| modal.find('[netuno-form]').on('netuno:save', ()=> { | |||
| modal.modal('hide'); | |||
| }); | |||
| }); | |||
| @ -0,0 +1,4 @@ | |||
| /*** GLOBAL CSS ***/ | |||
| @import '~antd/dist/antd'; | |||
| @ -0,0 +1,81 @@ | |||
| const path = require('path'); | |||
| module.exports = { | |||
| entry: [ './src/index.jsx', './src/styles/main.less' ], | |||
| devtool: "source-map", | |||
| output: { | |||
| path: __dirname +'/../public/scripts', | |||
| filename: 'main.js' | |||
| }, | |||
| module: { | |||
| rules: [ | |||
| { | |||
| test: /\.jsx$/, | |||
| include: [ | |||
| path.resolve(__dirname, 'src') | |||
| ], | |||
| exclude: /node_modules/, | |||
| use: [{ | |||
| loader: 'babel-loader' | |||
| }] | |||
| }, | |||
| { | |||
| test: /\.js$/, | |||
| include: [ | |||
| path.resolve(__dirname, 'src') | |||
| ], | |||
| exclude: /node_modules/, | |||
| use: [{ | |||
| loader: 'babel-loader' | |||
| }] | |||
| }, | |||
| { | |||
| test: /\.less$/, | |||
| include: [ | |||
| path.resolve(__dirname, 'src') | |||
| ], | |||
| exclude: /node_modules/, | |||
| use: [ | |||
| { | |||
| loader: 'style-loader' // creates style nodes from JS strings | |||
| }, | |||
| { | |||
| loader: 'css-loader', // translates CSS into CommonJ, | |||
| options: { | |||
| sourceMap: true/*, | |||
| modules: { | |||
| mode: 'local', | |||
| localIdentName: "[local]___[hash:base64:5]", | |||
| context: path.resolve(__dirname, 'src'), | |||
| hashPrefix: 'app', | |||
| }*/ | |||
| } | |||
| }, | |||
| { | |||
| loader: 'less-loader', // compiles Less to CSS | |||
| options: { | |||
| modifyVars: { | |||
| 'primary-color': '#5b5ce1', | |||
| 'link-color': '#5b5ce1', | |||
| 'border-radius-base': '5px' | |||
| }, | |||
| javascriptEnabled: true | |||
| } | |||
| } | |||
| ] | |||
| }, | |||
| { | |||
| test: /\.css$/, | |||
| include: [ | |||
| path.resolve(__dirname, 'src') | |||
| ], | |||
| exclude: /node_modules/, | |||
| use: [ | |||
| 'style-loader', | |||
| 'css-loader' | |||
| ] | |||
| } | |||
| ] | |||
| } | |||
| }; | |||