| @ -0,0 +1,18 @@ | |||
| node_modules/ | |||
| .DS_Store | |||
| *.log | |||
| .idea/ | |||
| .metadata/ | |||
| .vscode | |||
| package-lock.json | |||
| /trash/* | |||
| .Trash | |||
| *~* | |||
| *#* | |||
| config/_development.json | |||
| config/_production.json | |||
| @ -0,0 +1,3 @@ | |||
| /* | |||
| * Development dynamic configurations is here. | |||
| */ | |||
| @ -0,0 +1,3 @@ | |||
| /* | |||
| * Production dynamic configurations is here. | |||
| */ | |||
| @ -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,16 @@ | |||
| dbEvents = _db.query(` | |||
| select user.uid, | |||
| event.title, | |||
| event.description, | |||
| event.date_start, | |||
| event.date_end | |||
| from user | |||
| inner join user_event on user.id = user_event.user_id | |||
| inner join event on event.id = user_event.event_id | |||
| where user.uid = ? | |||
| `, _req.getString("uid")) | |||
| //console.log(_req); | |||
| //java.lang.Thread.sleep(4000) | |||
| _out.json(dbEvents) | |||
| @ -0,0 +1,24 @@ | |||
| const role = 'user'; | |||
| const dbUsers = _db.query( | |||
| `select user.id, user.uid, user.username, user.email, role.name "role" | |||
| from user | |||
| inner join role | |||
| on user.role_id = role.id | |||
| where role.name = ?`, | |||
| role | |||
| ); | |||
| const users = _val.list(); | |||
| for (const dbUser of dbUsers) { | |||
| users.add( | |||
| _val.map() | |||
| .set("uid", dbUser.getString("uid")) | |||
| .set("username", dbUser.getString("username")) | |||
| .set("email", dbUser.getString("email")) | |||
| .set("role", dbUser.getString("role")) | |||
| ); | |||
| } | |||
| _out.json(users); | |||
| @ -0,0 +1,147 @@ | |||
| /** | |||
| * | |||
| * 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", "Event") | |||
| .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", "event") | |||
| .set("report", false) | |||
| .set("show_id", true) | |||
| .set("uid", "e4f8908d-735c-4d1c-8c69-f6a2a200ba98") | |||
| ) | |||
| _form.createComponentIfNotExists( | |||
| "e4f8908d-735c-4d1c-8c69-f6a2a200ba98", | |||
| _val.init() | |||
| .set("colspan", 0) | |||
| .set("displayname", "DateEnd") | |||
| .set("firebase", "") | |||
| .set("group_id", 0) | |||
| .set("height", 0) | |||
| .set("max", 0) | |||
| .set("min", 0) | |||
| .set("name", "date_end") | |||
| .set("notnull", true) | |||
| .set("primarykey", false) | |||
| .set("properties", "{\"DEFAULT_CURRENT\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"}}") | |||
| .set("rowspan", 0) | |||
| .set("tdheight", 0) | |||
| .set("tdwidth", 0) | |||
| .set("type", "datetime") | |||
| .set("uid", "00d17b2d-7744-4ba0-a667-91b9c5b876cc") | |||
| .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( | |||
| "e4f8908d-735c-4d1c-8c69-f6a2a200ba98", | |||
| _val.init() | |||
| .set("colspan", 0) | |||
| .set("displayname", "DateStart") | |||
| .set("firebase", "") | |||
| .set("group_id", 0) | |||
| .set("height", 0) | |||
| .set("max", 0) | |||
| .set("min", 0) | |||
| .set("name", "date_start") | |||
| .set("notnull", true) | |||
| .set("primarykey", false) | |||
| .set("properties", "{\"DEFAULT_CURRENT\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"}}") | |||
| .set("rowspan", 0) | |||
| .set("tdheight", 0) | |||
| .set("tdwidth", 0) | |||
| .set("type", "datetime") | |||
| .set("uid", "3be2b157-73a0-4bd7-aeb3-a7404ae1ae7e") | |||
| .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( | |||
| "e4f8908d-735c-4d1c-8c69-f6a2a200ba98", | |||
| _val.init() | |||
| .set("colspan", 0) | |||
| .set("displayname", "Description") | |||
| .set("firebase", "") | |||
| .set("group_id", 0) | |||
| .set("height", 0) | |||
| .set("max", 0) | |||
| .set("min", 0) | |||
| .set("name", "description") | |||
| .set("notnull", false) | |||
| .set("primarykey", false) | |||
| .set("properties", "{}") | |||
| .set("rowspan", 0) | |||
| .set("tdheight", 0) | |||
| .set("tdwidth", 0) | |||
| .set("type", "textarea") | |||
| .set("uid", "306716d1-7702-4b5e-b5eb-929092007097") | |||
| .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( | |||
| "e4f8908d-735c-4d1c-8c69-f6a2a200ba98", | |||
| _val.init() | |||
| .set("colspan", 0) | |||
| .set("displayname", "Title") | |||
| .set("firebase", "") | |||
| .set("group_id", 0) | |||
| .set("height", 0) | |||
| .set("max", 0) | |||
| .set("min", 0) | |||
| .set("name", "title") | |||
| .set("notnull", true) | |||
| .set("primarykey", false) | |||
| .set("properties", "{\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"}}") | |||
| .set("rowspan", 0) | |||
| .set("tdheight", 0) | |||
| .set("tdwidth", 0) | |||
| .set("type", "text") | |||
| .set("uid", "92fd9e5a-cdfd-49e2-be20-7791a4380b4a") | |||
| .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,147 @@ | |||
| /** | |||
| * | |||
| * 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", "Reminder") | |||
| .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", "reminder") | |||
| .set("report", false) | |||
| .set("show_id", true) | |||
| .set("uid", "2e4aee20-6bf5-4c95-adee-346ea7b5969f") | |||
| ) | |||
| _form.createComponentIfNotExists( | |||
| "2e4aee20-6bf5-4c95-adee-346ea7b5969f", | |||
| _val.init() | |||
| .set("colspan", 0) | |||
| .set("displayname", "Date") | |||
| .set("firebase", "") | |||
| .set("group_id", 0) | |||
| .set("height", 0) | |||
| .set("max", 0) | |||
| .set("min", 0) | |||
| .set("name", "date") | |||
| .set("notnull", true) | |||
| .set("primarykey", false) | |||
| .set("properties", "{\"DEFAULT_CURRENT\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"}}") | |||
| .set("rowspan", 0) | |||
| .set("tdheight", 0) | |||
| .set("tdwidth", 0) | |||
| .set("type", "date") | |||
| .set("uid", "329881d1-0d34-41ee-a7ce-f04fad9975c3") | |||
| .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( | |||
| "2e4aee20-6bf5-4c95-adee-346ea7b5969f", | |||
| _val.init() | |||
| .set("colspan", 0) | |||
| .set("displayname", "Time") | |||
| .set("firebase", "") | |||
| .set("group_id", 0) | |||
| .set("height", 0) | |||
| .set("max", 0) | |||
| .set("min", 0) | |||
| .set("name", "time") | |||
| .set("notnull", true) | |||
| .set("primarykey", false) | |||
| .set("properties", "{\"DEFAULT_CURRENT\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"}}") | |||
| .set("rowspan", 0) | |||
| .set("tdheight", 0) | |||
| .set("tdwidth", 0) | |||
| .set("type", "time") | |||
| .set("uid", "7e3f6cf8-2088-453d-8eed-14f3a18f7c87") | |||
| .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( | |||
| "2e4aee20-6bf5-4c95-adee-346ea7b5969f", | |||
| _val.init() | |||
| .set("colspan", 0) | |||
| .set("displayname", "Title") | |||
| .set("firebase", "") | |||
| .set("group_id", 0) | |||
| .set("height", 0) | |||
| .set("max", 0) | |||
| .set("min", 0) | |||
| .set("name", "title") | |||
| .set("notnull", true) | |||
| .set("primarykey", false) | |||
| .set("properties", "{\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"}}") | |||
| .set("rowspan", 0) | |||
| .set("tdheight", 0) | |||
| .set("tdwidth", 0) | |||
| .set("type", "text") | |||
| .set("uid", "e94f7c5e-f88a-4117-9d0f-5b05918ac8ea") | |||
| .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( | |||
| "2e4aee20-6bf5-4c95-adee-346ea7b5969f", | |||
| _val.init() | |||
| .set("colspan", 0) | |||
| .set("displayname", "User") | |||
| .set("firebase", "") | |||
| .set("group_id", 0) | |||
| .set("height", 0) | |||
| .set("max", 0) | |||
| .set("min", 0) | |||
| .set("name", "user_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\":\"user:username\"},\"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", "34e681d5-adad-40d7-9971-81fc0eab37c3") | |||
| .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) | |||
| ) | |||
| @ -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", "Role") | |||
| .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", "role") | |||
| .set("report", false) | |||
| .set("show_id", true) | |||
| .set("uid", "1fe5b8fa-13f7-49c1-ab6e-8f3cfa6c320a") | |||
| ) | |||
| _form.createComponentIfNotExists( | |||
| "1fe5b8fa-13f7-49c1-ab6e-8f3cfa6c320a", | |||
| _val.init() | |||
| .set("colspan", 0) | |||
| .set("displayname", "Name") | |||
| .set("firebase", "") | |||
| .set("group_id", 0) | |||
| .set("height", 0) | |||
| .set("max", 0) | |||
| .set("min", 0) | |||
| .set("name", "name") | |||
| .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", "6d72828c-3b46-4b7c-a52d-c72fbfe30731") | |||
| .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,207 @@ | |||
| /** | |||
| * | |||
| * 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", "Task") | |||
| .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", "task") | |||
| .set("report", false) | |||
| .set("show_id", true) | |||
| .set("uid", "f01fd874-ec8b-4350-ac26-ab4f2697b56f") | |||
| ) | |||
| _form.createComponentIfNotExists( | |||
| "f01fd874-ec8b-4350-ac26-ab4f2697b56f", | |||
| _val.init() | |||
| .set("colspan", 0) | |||
| .set("displayname", "Date") | |||
| .set("firebase", "") | |||
| .set("group_id", 0) | |||
| .set("height", 0) | |||
| .set("max", 0) | |||
| .set("min", 0) | |||
| .set("name", "date") | |||
| .set("notnull", true) | |||
| .set("primarykey", false) | |||
| .set("properties", "{\"DEFAULT_CURRENT\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"}}") | |||
| .set("rowspan", 0) | |||
| .set("tdheight", 0) | |||
| .set("tdwidth", 0) | |||
| .set("type", "date") | |||
| .set("uid", "6518d528-301e-465f-92f2-a7ab8411ce7e") | |||
| .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( | |||
| "f01fd874-ec8b-4350-ac26-ab4f2697b56f", | |||
| _val.init() | |||
| .set("colspan", 0) | |||
| .set("displayname", "Description") | |||
| .set("firebase", "") | |||
| .set("group_id", 0) | |||
| .set("height", 0) | |||
| .set("max", 0) | |||
| .set("min", 0) | |||
| .set("name", "description") | |||
| .set("notnull", false) | |||
| .set("primarykey", false) | |||
| .set("properties", "{\"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", "e30dd92d-2024-4e6a-8bc3-892712339e0d") | |||
| .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( | |||
| "f01fd874-ec8b-4350-ac26-ab4f2697b56f", | |||
| _val.init() | |||
| .set("colspan", 0) | |||
| .set("displayname", "IsCompleted") | |||
| .set("firebase", "") | |||
| .set("group_id", 0) | |||
| .set("height", 0) | |||
| .set("max", 0) | |||
| .set("min", 0) | |||
| .set("name", "is_completed") | |||
| .set("notnull", true) | |||
| .set("primarykey", false) | |||
| .set("properties", "{\"DEFAULT\":{\"default\":\"true\",\"type\":\"BOOLEAN\",\"value\":\"true\"}}") | |||
| .set("rowspan", 0) | |||
| .set("tdheight", 0) | |||
| .set("tdwidth", 0) | |||
| .set("type", "checkbox") | |||
| .set("uid", "774a5fea-dfed-4c66-a12f-5fb0b16ff1bd") | |||
| .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( | |||
| "f01fd874-ec8b-4350-ac26-ab4f2697b56f", | |||
| _val.init() | |||
| .set("colspan", 0) | |||
| .set("displayname", "List") | |||
| .set("firebase", "") | |||
| .set("group_id", 0) | |||
| .set("height", 0) | |||
| .set("max", 0) | |||
| .set("min", 0) | |||
| .set("name", "list_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\":\"task_list:title,user_id\"},\"SERVICE\":{\"default\":\"com/Select.netuno\",\"type\":\"STRING\",\"value\":\"com/Select.netuno\"},\"ONLY_ACTIVES\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"}}") | |||
| .set("rowspan", 0) | |||
| .set("tdheight", 0) | |||
| .set("tdwidth", 0) | |||
| .set("type", "select") | |||
| .set("uid", "71795de9-0d9e-4fb9-b777-f2b8e0a2199f") | |||
| .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( | |||
| "f01fd874-ec8b-4350-ac26-ab4f2697b56f", | |||
| _val.init() | |||
| .set("colspan", 0) | |||
| .set("displayname", "Time") | |||
| .set("firebase", "") | |||
| .set("group_id", 0) | |||
| .set("height", 0) | |||
| .set("max", 0) | |||
| .set("min", 0) | |||
| .set("name", "time") | |||
| .set("notnull", true) | |||
| .set("primarykey", false) | |||
| .set("properties", "{\"DEFAULT_CURRENT\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"}}") | |||
| .set("rowspan", 0) | |||
| .set("tdheight", 0) | |||
| .set("tdwidth", 0) | |||
| .set("type", "time") | |||
| .set("uid", "46dc28b5-d65a-484a-b297-b105c78e60ac") | |||
| .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( | |||
| "f01fd874-ec8b-4350-ac26-ab4f2697b56f", | |||
| _val.init() | |||
| .set("colspan", 0) | |||
| .set("displayname", "Title") | |||
| .set("firebase", "") | |||
| .set("group_id", 0) | |||
| .set("height", 0) | |||
| .set("max", 0) | |||
| .set("min", 0) | |||
| .set("name", "title") | |||
| .set("notnull", true) | |||
| .set("primarykey", false) | |||
| .set("properties", "{\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"}}") | |||
| .set("rowspan", 0) | |||
| .set("tdheight", 0) | |||
| .set("tdwidth", 0) | |||
| .set("type", "text") | |||
| .set("uid", "29b71c9e-1df9-45d9-8d25-9142677078bf") | |||
| .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,87 @@ | |||
| /** | |||
| * | |||
| * 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", "TaskList") | |||
| .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", "task_list") | |||
| .set("report", false) | |||
| .set("show_id", true) | |||
| .set("uid", "5325616a-1a01-4f05-b3c8-3da43d2ad102") | |||
| ) | |||
| _form.createComponentIfNotExists( | |||
| "5325616a-1a01-4f05-b3c8-3da43d2ad102", | |||
| _val.init() | |||
| .set("colspan", 0) | |||
| .set("displayname", "Title") | |||
| .set("firebase", "") | |||
| .set("group_id", 0) | |||
| .set("height", 0) | |||
| .set("max", 0) | |||
| .set("min", 0) | |||
| .set("name", "title") | |||
| .set("notnull", true) | |||
| .set("primarykey", false) | |||
| .set("properties", "{\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"}}") | |||
| .set("rowspan", 0) | |||
| .set("tdheight", 0) | |||
| .set("tdwidth", 0) | |||
| .set("type", "text") | |||
| .set("uid", "3be02f32-700f-4b20-9ed3-deec240dc220") | |||
| .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( | |||
| "5325616a-1a01-4f05-b3c8-3da43d2ad102", | |||
| _val.init() | |||
| .set("colspan", 0) | |||
| .set("displayname", "User") | |||
| .set("firebase", "") | |||
| .set("group_id", 0) | |||
| .set("height", 0) | |||
| .set("max", 0) | |||
| .set("min", 0) | |||
| .set("name", "user_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\":\"user:username,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", "dd0826c0-58a9-4b2a-8758-66cd25080559") | |||
| .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,147 @@ | |||
| /** | |||
| * | |||
| * 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", "User") | |||
| .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", "user") | |||
| .set("report", false) | |||
| .set("show_id", true) | |||
| .set("uid", "e5ec80ac-841c-416d-b73b-dc3ab56dad69") | |||
| ) | |||
| _form.createComponentIfNotExists( | |||
| "e5ec80ac-841c-416d-b73b-dc3ab56dad69", | |||
| _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", "{\"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", "9c46c2a4-b09e-4fe4-bb65-c1ad27452372") | |||
| .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( | |||
| "e5ec80ac-841c-416d-b73b-dc3ab56dad69", | |||
| _val.init() | |||
| .set("colspan", 0) | |||
| .set("displayname", "Password") | |||
| .set("firebase", "") | |||
| .set("group_id", 0) | |||
| .set("height", 0) | |||
| .set("max", 0) | |||
| .set("min", 0) | |||
| .set("name", "password") | |||
| .set("notnull", false) | |||
| .set("primarykey", false) | |||
| .set("properties", "{\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"}}") | |||
| .set("rowspan", 0) | |||
| .set("tdheight", 0) | |||
| .set("tdwidth", 0) | |||
| .set("type", "text") | |||
| .set("uid", "c980e7fa-8435-441c-92b4-b6f3145b54ee") | |||
| .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( | |||
| "e5ec80ac-841c-416d-b73b-dc3ab56dad69", | |||
| _val.init() | |||
| .set("colspan", 0) | |||
| .set("displayname", "Role") | |||
| .set("firebase", "") | |||
| .set("group_id", 0) | |||
| .set("height", 0) | |||
| .set("max", 0) | |||
| .set("min", 0) | |||
| .set("name", "role_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\":\"role:name\"},\"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", "6fc66e68-2b15-42be-96e5-46730bd2d7b0") | |||
| .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( | |||
| "e5ec80ac-841c-416d-b73b-dc3ab56dad69", | |||
| _val.init() | |||
| .set("colspan", 0) | |||
| .set("displayname", "Username") | |||
| .set("firebase", "") | |||
| .set("group_id", 0) | |||
| .set("height", 0) | |||
| .set("max", 0) | |||
| .set("min", 0) | |||
| .set("name", "username") | |||
| .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", "cfc5b22b-a04f-4545-84ce-f2c54500d877") | |||
| .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,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", "UserEvent") | |||
| .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", "user_event") | |||
| .set("parent_uid", "e5ec80ac-841c-416d-b73b-dc3ab56dad69") | |||
| .set("report", false) | |||
| .set("show_id", true) | |||
| .set("uid", "7f752ee9-6fb5-4b9e-9d10-6bd38dac7118") | |||
| ) | |||
| _form.createComponentIfNotExists( | |||
| "7f752ee9-6fb5-4b9e-9d10-6bd38dac7118", | |||
| _val.init() | |||
| .set("colspan", 0) | |||
| .set("displayname", "Event") | |||
| .set("firebase", "") | |||
| .set("group_id", 0) | |||
| .set("height", 0) | |||
| .set("max", 0) | |||
| .set("min", 0) | |||
| .set("name", "event_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\":\"event:title\"},\"SERVICE\":{\"default\":\"com/Select.netuno\",\"type\":\"STRING\",\"value\":\"com/Select.netuno\"},\"ONLY_ACTIVES\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"}}") | |||
| .set("rowspan", 0) | |||
| .set("tdheight", 0) | |||
| .set("tdwidth", 0) | |||
| .set("type", "select") | |||
| .set("uid", "9fcbf344-5be8-4dc1-bc1f-e5e472b92110") | |||
| .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( | |||
| "7f752ee9-6fb5-4b9e-9d10-6bd38dac7118", | |||
| _val.init() | |||
| .set("colspan", 0) | |||
| .set("displayname", "User") | |||
| .set("firebase", "") | |||
| .set("group_id", 0) | |||
| .set("height", 0) | |||
| .set("max", 0) | |||
| .set("min", 0) | |||
| .set("name", "user_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\":\"user:username\"},\"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", "21592dcc-7e74-4e6d-a2be-347d5155d82b") | |||
| .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,78 @@ | |||
| import React, { useState, useEffect } from "react"; | |||
| import Table from 'antd/lib/table'; | |||
| import Button from 'antd/lib/button'; | |||
| //import Tag from 'antd/lib/tag'; | |||
| const TableUsers = ({onView}) => { | |||
| const [users, setUsers] = useState([]); | |||
| const [loading, setLoading] = useState(false); | |||
| const [ userEvents, setUserEvents ] = useState(null); | |||
| useEffect(() => { | |||
| setLoading(true); | |||
| const fail = ()=> { | |||
| this.setState({ loading: false }); | |||
| notification["error"]({ | |||
| message: 'Tabela Pessoas', | |||
| description: 'Data loading error...', | |||
| style: { | |||
| marginTop: 100, | |||
| } | |||
| }); | |||
| }; | |||
| netuno.service({ | |||
| url: '/services/users', | |||
| method: 'GET', | |||
| credentials: 'include', | |||
| headers: { | |||
| 'Content-Type': 'application/json' | |||
| }, | |||
| success: (response)=> { | |||
| //console.log(response); | |||
| if (response.json) { | |||
| setUsers(response.json); | |||
| setLoading(false); | |||
| } else { | |||
| fail(); | |||
| } | |||
| }, | |||
| fail: ()=> { | |||
| fail(); | |||
| } | |||
| }); | |||
| }, []); | |||
| const columns = [ | |||
| { | |||
| title: "Username", | |||
| dataIndex: "username" | |||
| }, | |||
| { | |||
| title: "Email", | |||
| dataIndex: "email" | |||
| }, | |||
| { | |||
| title: "Role", | |||
| dataIndex: "role" | |||
| }, | |||
| { | |||
| title: "Calendar", | |||
| render: (text, record, index) => ( | |||
| <div> | |||
| {<Button onClick={ () => {setUserEvents(record); onView(record)}}>View</Button>} | |||
| </div> | |||
| ) | |||
| } | |||
| ]; | |||
| return <> | |||
| <Table dataSource={users} { ...{ columns, loading } } /> | |||
| </> | |||
| } | |||
| export default TableUsers; | |||
| @ -0,0 +1,85 @@ | |||
| import React, { useState, useEffect } from "react"; | |||
| import Calendar from 'antd/lib/calendar'; | |||
| import Button from 'antd/lib/button'; | |||
| import PropTypes from "prop-types"; | |||
| import Badge from 'antd/lib/badge'; | |||
| const UserCalendar = ({ user, closeCalendar }) => { | |||
| const [loading, setLoading] = useState(false); | |||
| const [data, setData] = useState([]); | |||
| const onPanelChange = (value, mode) => { | |||
| console.log(value.format('YYYY-MM-DD'), mode); | |||
| }; | |||
| //console.log(JSON.stringify(user)); | |||
| useEffect(() => { | |||
| setLoading(true); | |||
| const fail = () => { | |||
| setLoading(false); | |||
| notification["error"]({ | |||
| message: 'Lista de Publicações', | |||
| description: 'Houve uma falha ao carregar a lista das publicações...', | |||
| style: { | |||
| marginTop: 100, | |||
| } | |||
| }); | |||
| }; | |||
| netuno.service({ | |||
| url: '/services/users/events', | |||
| method: 'POST', | |||
| credentials: 'include', | |||
| headers: { | |||
| 'Content-Type': 'application/json' | |||
| }, | |||
| body: JSON.stringify({ | |||
| uid: user.uid | |||
| }), | |||
| success: (response) => { | |||
| if (response.json) { | |||
| console.log(response.json); | |||
| setData(response.json); | |||
| setLoading(false); | |||
| } else { | |||
| fail(); | |||
| } | |||
| }, | |||
| fail: () => { | |||
| fail(); | |||
| } | |||
| }); | |||
| }, []); | |||
| const dateCellRender = (value) => { //moment | |||
| console.log("datecellrender", value.format("YYYY MM DD")); | |||
| if (data.length > 0) { | |||
| for (const item of data) { | |||
| if (item.date_start.indexOf(value.format("YYYY-MM-DD")) == 0) { | |||
| return ( | |||
| <ul className="events"> | |||
| <li key={item.title}> | |||
| <Badge status="success" text={item.title} /> | |||
| </li> | |||
| </ul> | |||
| ) | |||
| } | |||
| } | |||
| } | |||
| } | |||
| return <> | |||
| <Calendar dateCellRender={dateCellRender} onPanelChange={onPanelChange} /> | |||
| <Button type="primary" onClick={() => closeCalendar()}>Close Calendar</Button> | |||
| </>; | |||
| }; | |||
| UserCalendar.propTypes = { | |||
| user: PropTypes.object.isRequired, | |||
| closeCalendar: PropTypes.func.isRequired | |||
| }; | |||
| export default UserCalendar; | |||
| @ -0,0 +1,90 @@ | |||
| import React, { Component } from "react"; | |||
| import MyButton from "../../components/MyButton/index.jsx"; | |||
| import Spin from 'antd/lib/spin'; | |||
| import notification from 'antd/lib/notification'; | |||
| import "./index.less"; | |||
| import TableUsers from "../../components/TableUsers/index.jsx"; | |||
| import UserCalendar from "../../components/UserCalendar/index.jsx"; | |||
| export default class DashboardContainer extends Component { | |||
| constructor(props) { | |||
| super(props); | |||
| this.state = { | |||
| counter: 0, | |||
| title: 'Bom Dia!', | |||
| loading: false, | |||
| user: null | |||
| }; | |||
| this.button = React.createRef(); | |||
| this.click = this.click.bind(this); | |||
| this.openCalendar = this.openCalendar.bind(this); | |||
| this.closeCalendar = this.closeCalendar.bind(this); | |||
| } | |||
| componentWillMount() { | |||
| console.log("will mount") | |||
| } | |||
| componentDidMount() { | |||
| console.log("did mount") | |||
| } | |||
| componentWillUpdate(prevProps, prevState, snapshot) { | |||
| console.log("will update"); | |||
| } | |||
| componentDidUpdate(prevProps, prevState, snapshot) { | |||
| console.log("update"); | |||
| $(this.button.current).fadeOut(250).fadeIn(250); | |||
| } | |||
| click() { | |||
| this.setState({ counter: this.state.counter + 1 }); | |||
| } | |||
| openCalendar(user) { | |||
| this.setState({ user }); | |||
| } | |||
| closeCalendar() { | |||
| this.setState({user: null}); | |||
| } | |||
| render() { | |||
| console.log("render"); | |||
| const { counter, title, loading, user } = this.state; | |||
| if (loading) { | |||
| return <Spin/>; | |||
| } | |||
| if (user) { | |||
| return <> | |||
| <UserCalendar | |||
| user={user} | |||
| closeCalendar={() => this.closeCalendar()}> | |||
| </UserCalendar> | |||
| </>; | |||
| } | |||
| return ( | |||
| <div className="my-dashboard"> | |||
| <h1>Table Users</h1> | |||
| <TableUsers onView={ this.openCalendar } /> | |||
| <h1>Table...</h1> | |||
| <div className="my-dashboard__button"> | |||
| <MyButton | |||
| mainRef={ this.button } | |||
| title={ title } | |||
| text={ `ReactJS ⚡ Ant.Design 👉 Click me! ${ counter }` } | |||
| click={ this.click } | |||
| /> | |||
| </div> | |||
| </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' | |||
| ] | |||
| } | |||
| ] | |||
| } | |||
| }; | |||