Commit Graph

342 Commits

Author SHA1 Message Date
5b2fc25338 Added missing binds in FileCache. 2023-01-04 00:40:28 +01:00
238bc63087 Added a new WebServerRequestScriptable class, so different web server request implementations can be created using scripts when needed. 2023-01-03 21:27:36 +01:00
0c3b684da7 Small tweak. 2022-12-31 22:00:37 +01:00
61f343d58b Added COPYRIGHT.txt to the web module. 2022-12-31 21:57:06 +01:00
b240df7df6 Updated more copyright headers for 2023. 2022-12-31 21:07:05 +01:00
b46ab0f4a7 Updated copyright headers to 2023. 2022-12-31 19:34:43 +01:00
213f393293 Fix typos with codespell. 2022-12-22 19:51:25 +01:00
cc7d77f3e1 Re-extracted class docs. 2022-12-22 19:28:17 +01:00
df6186524a Ensure a '/' in between the host, and the url in WebServerRequest::get_url_site(). 2022-12-21 15:12:53 +01:00
ea009ff869 Use String.length() instead of String.size() in WebServerRequest::setup_url_stack(). 2022-12-21 15:12:12 +01:00
38a36b3c70 Added get request parameter support for WebServerRequest. 2022-12-21 14:52:11 +01:00
a19be9b170 Small cleanups. 2022-12-18 17:00:11 +01:00
7eed422442 Also added tag() and ctag() helpers to the c++ side HTMLBuilder, and smaller cleanups. 2022-12-18 16:53:23 +01:00
f9ef920ec5 Added new tag() and ctag() universal tag helpers to the HTMLBuilder binder class. 2022-12-18 16:48:19 +01:00
47ac5e2668 Added a null check to HTTPSessionManagerDB, and small cleanups. 2022-12-18 14:59:40 +01:00
b8b51e7525 Use error macros in HTTPSessionManager and HTTPSessionManagerDB. 2022-12-18 14:28:38 +01:00
225e3ff79c Update the migration methods in HTTPSessionManagerDB. 2022-12-18 14:24:50 +01:00
db51b273a7 Set up inheritance and virtuals for HTTPSessionManagerDB and HTTPSessionManager. 2022-12-18 14:22:21 +01:00
9aced75966 Added HTTPSessionManagerDB using the disabled code in HTTPSessionManager, and cleaned up it's logic. 2022-12-18 14:03:07 +01:00
41f130d9fd Re-extracted the class docs. 2022-11-20 23:27:04 +01:00
6c0008a912 Added custom Paint, Web, and Mesh (MDI) nodes to the SceneTreeDock. 2022-11-20 23:16:20 +01:00
b6624bf30b Re-extracted class docs. 2022-09-10 04:18:55 +02:00
8277e89075 Fix requesting write locks in WebNodes. 2022-08-26 17:22:20 +02:00
0cfc5ed610 Added enctype and multipart form helpers to HTMLTag. 2022-08-26 12:02:57 +02:00
1f8581edd8 Added rows and cols to HTMLTag. 2022-08-26 11:49:22 +02:00
f1e5f3d062 Fix docs mentioning an old behaviour. 2022-08-25 21:14:21 +02:00
31b5135877 Fix default argument for the binding of WebServerRequest::send_redirect. 2022-08-25 21:13:26 +02:00
658cbb806d Fix: WebPermission was meant to be a Resource. 2022-08-25 21:12:52 +02:00
f4b7a3b378 Also made it a singleton. 2022-08-23 15:23:34 +02:00
e6adf5aad5 Added an extension api for the WebNodeEditor. 2022-08-23 15:20:56 +02:00
285fe5cd82 Renamed WebEditor* to WebNodeEditor*. 2022-08-23 13:27:59 +02:00
5e64462049 Renamed the web editor's files. 2022-08-23 13:24:31 +02:00
bfc1679f14 Actually register EditorInterface, SpatialEditor, CanvasItemEditor, and WebNodeEditor as globals. 2022-08-23 13:21:09 +02:00
a1974c8338 Re-extracted the class docs. 2022-08-23 13:09:12 +02:00
d505f3e59f Call the proper method to render the menu. 2022-08-22 14:29:40 +02:00
ae19991c63 Added descriptions and brief descriptions for most of the classes in the web module. 2022-08-22 00:01:10 +02:00
88df1db348 Fix typo. 2022-08-21 23:11:59 +02:00
ba0248ae5e Added docs for RedirectWebPage, and AliasWebPage. 2022-08-21 23:09:57 +02:00
5b16231128 Added docs for FolderServeWebPage, and BrowsableFolderServeWebPage. 2022-08-21 23:04:56 +02:00
25230bee02 Added docs for PagedArticlesWebPage. 2022-08-21 22:53:50 +02:00
8cd72fc8d8 Added docs for PagedArticleWebPage. 2022-08-21 22:46:32 +02:00
fe5e0231c5 Added docs for ListWebPage. 2022-08-21 22:23:59 +02:00
82affed801 Added docs for StaticWebPage and it's derived classes. 2022-08-21 22:02:26 +02:00
1e604b13fb Added method and property descriptions for WebServerRequest's docs. 2022-08-21 21:37:53 +02:00
b095a48ace Fix the logic of get_url_site(). Also small binding cleanups. 2022-08-21 21:37:00 +02:00
46ee607d18 Fixed a few typos. 2022-08-21 18:24:36 +02:00
70cc269b40 Added docs for WebServer. 2022-08-21 18:24:20 +02:00
0c9e77aab4 Added docs for WebPermission. 2022-08-21 18:09:23 +02:00
ab3ae5fdd4 Added docs for CSRFTokenWebServerMiddleware. 2022-08-21 17:46:17 +02:00
c6b1406ed7 Added docs for WebServerMiddleware. 2022-08-21 17:31:01 +02:00
7cc171ebe7 Added docs for WebRoot. 2022-08-21 17:13:06 +02:00
20c0a91275 Added full documentation of the WebNode. 2022-08-21 16:45:03 +02:00
8119bd099a Added description for HTTPSessionManager. Note that this class still needs more cleanups, but I wrote docs in a way as if those were already done. 2022-08-21 03:04:13 +02:00
892cff7537 Added a description for the HTTPSession class. 2022-08-21 03:02:11 +02:00
3b19f30e6c Added a description for the WebServerRequest. 2022-08-21 02:47:35 +02:00
714547cb17 Re-extracted class docs. 2022-08-21 00:40:49 +02:00
edb7dd231e Enable html prettifying in the web editor. 2022-08-20 22:30:09 +02:00
b8d9139bb1 HTMLParser now properly parses doctype in a case insensitive way. Also improved an error message a bit. 2022-08-20 22:28:08 +02:00
62b0d5572e Use string length() instead of size() as it was intended in HTMLParser, and BBCodeParser. 2022-08-20 21:57:50 +02:00
5a5fbc8e4d Implemented the initial version of the WebEditor. It's currently a simple preview gui. 2022-08-20 21:50:44 +02:00
e38dfb7c40 Set up WebEditorPlugin to hide / show the web editor tab in a way that feels right. The tab itself is empty though at the moment. 2022-08-20 20:24:40 +02:00
d62fa2b4c9 Added web editor plugin skeleton. 2022-08-20 18:11:07 +02:00
9aadbd720c Added a web node editor icon. 2022-08-20 16:46:45 +02:00
89a414187b Added icons for the rest of the web nodes. 2022-08-20 16:44:30 +02:00
e4cc8ce6fd Added icons for AliasWebPage, and RedirectWebpage. 2022-08-20 15:29:11 +02:00
c5b11c8ca8 Added icons for WebNode, WebRoot, and WebServer. 2022-08-20 03:23:18 +02:00
1ef37c61c2 Moved http server simple to it's own module. 2022-08-19 22:09:30 +02:00
04feb63860 Moved Engine and projectSettings. 2022-08-17 15:35:28 +02:00
be16fe23ad Moved the error macros. 2022-08-17 15:14:19 +02:00
220b2db443 Moved String and related classes under a string folder in core. 2022-08-17 14:19:55 +02:00
dc9cc716c7 Moved Object related classes under core/object. 2022-08-17 13:45:14 +02:00
9555ee56b9 Moved Variant related classes under a variant folder in core. 2022-08-17 13:17:12 +02:00
388b88678e Moved container related classes in core under a new containers directory. 2022-08-17 12:53:49 +02:00
e71e3ed897 Now Vector4, Vector4i, Projection, PoolVector4Array, PoolVector4iArray, are built in variant types. Also reordered the Variant's Type enum, renamed _RID in it to RID, fixed a few smaller issues and removed some very old compat code. 2022-08-16 21:55:56 +02:00
220954cf08 Backported most of the improvements to String from Godot4. 2022-08-15 22:54:03 +02:00
40ed18dd0d Remove accidental import. 2022-07-31 00:02:31 +02:00
c4e7bc1c45 Reused the old unused PROPERTY_HINT_SPRITE_FRAMES as PROPERTY_HINT_BUTTON. It allows you to add buttons to the inspectors. 2022-07-31 00:01:58 +02:00
249dd4d661 Updated property hints for variant arrays. 2022-07-30 21:58:40 +02:00
09acb9bfeb Added an api to the web server simple to add / remove mime types from scripts. 2022-07-24 18:09:45 +02:00
13f0e82b6c Cleanups to the web server. 2022-07-24 15:33:32 +02:00
a1a94ab94e Went back from using an RWLock to a Mutex in WebServerSimple. 2022-07-24 15:15:08 +02:00
9106b5685e Removed multiple poll thread support related things from the web server, that was a bad idea. Also implemented single threaded mode. 2022-07-24 15:10:42 +02:00
731dbb427c Replace the mutex in the web server to an rwlock. 2022-07-24 14:27:58 +02:00
275c11cc6b Don't let changing properties if the server is running. 2022-07-24 14:18:04 +02:00
d55b66b7ff Only start the server thread when it's actually needed. 2022-07-24 14:15:00 +02:00
057d937d8f Added more binds to WebServerSimple. 2022-07-24 13:53:55 +02:00
3956c88859 Added threading settings binds to the SimpleWebServer. 2022-07-24 13:40:58 +02:00
aa8c6b35d1 IMplemented threading for the simple web server. 2022-07-24 13:19:21 +02:00
7d3486e5ee Now the simple server is using a List in a thread safe way. 2022-07-24 11:53:16 +02:00
492f29163c Refactored the SimpleHTTPServer to be able to multi thread it a bit later. 2022-07-24 02:40:39 +02:00
4baf5ed2da Remove unused method. 2022-07-24 02:00:53 +02:00
299f714ed9 Fix memory allocation using new int HTTPSessionManager. Also small cleanups. 2022-07-23 22:37:11 +02:00
abb875f8a5 Use length() instead of size() for strings in the FormValidators. 2022-07-23 22:07:49 +02:00
40df361d7c Implemented UserWebPage. 2022-07-23 19:29:51 +02:00
41d32e3b35 Reimplemented migrations support. 2022-07-23 14:46:05 +02:00
05fd41c5ac Added back md parsing support for the rest of the WebNodes that used to support it. 2022-07-23 02:44:55 +02:00
0f39a8f6ac Added back md parsing support to StaticWebPage. 2022-07-23 02:34:41 +02:00
853480a492 Added a new AliasWebPage WebNode. 2022-07-23 02:06:11 +02:00
db70692e73 Also renamed the classes themselves. 2022-07-23 01:35:22 +02:00
2cae30fcdf Renamed some webnode files. I want to make their names a bit more standardized. 2022-07-23 01:20:43 +02:00
ed92564261 Added a new RedirectWebPage WebNode. 2022-07-23 00:54:26 +02:00
cf3c24381d Improve the binds in WebServer. 2022-07-22 12:05:05 +02:00
caa93f89b0 Uncommented / fixed the methods that take WebServerRequest in HTMLBuilder and it's bind class. 2022-07-22 11:45:12 +02:00
30e3fd8faf Fix typo. 2022-07-21 23:58:34 +02:00
a791c8f4b8 HTTPSession's get_int now has a default parameter. 2022-07-21 23:55:33 +02:00
31ee15432b Notes. 2022-07-21 23:31:37 +02:00
5d260fd68d Cleanups to WebServerRequest. 2022-07-21 23:25:04 +02:00
ed9aa722a3 Actually bind get_server(), and get_web_root() in WebServerRequest. 2022-07-21 22:37:55 +02:00
1f62ad89ff Fix get_server() in WebNode. 2022-07-21 22:31:48 +02:00
0854b8999d Now the SimpleWebServer will properly set the Request's http method. 2022-07-21 16:06:06 +02:00
e52a188794 Implement parsing cookies in the requests for the SimpleWebServer. 2022-07-21 15:51:44 +02:00
e7e95a677a API improvements for WebServerCookie, also now it should be able to properly generate cookie response header strings. 2022-07-21 15:36:04 +02:00
ca08fe3de2 Reworked the Web Server's Cookie API. 2022-07-21 14:05:55 +02:00
9d07a6b271 Implement handling http status codes for responses. 2022-07-21 12:26:39 +02:00
7fa4125463 Small temporary typo fix. 2022-07-21 00:54:51 +02:00
061fb42165 Also implement urlenc (default) form data. 2022-07-21 00:28:57 +02:00
55eaf521b4 Rework the multipart parser code to also work with binary files. 2022-07-20 22:53:55 +02:00
25dda93577 Implement handling multipart forms for the WebServer. It will need some changes to work with binary files though. 2022-07-20 21:29:59 +02:00
2648034425 Layout work for form parsing. 2022-07-20 16:28:37 +02:00
88bc492eb1 Also avoid maybe uninitialized warning. 2022-07-20 00:44:17 +02:00
37fdc4938f Fix shadowed declaration warning in hoedown. 2022-07-20 00:40:49 +02:00
76a0124b88 Implement MarkdownRender's logic. 2022-07-20 00:36:59 +02:00
453a03d0eb Added a MArkdownRenderer class, and the hoedown library. It's not yet implemented. 2022-07-19 22:37:41 +02:00
e96b28c76b Register both classes to the ClassDB, and added missing methods. 2022-07-19 20:36:54 +02:00
147568b18d Bindings for the BBCodeParser. 2022-07-19 20:28:26 +02:00
aa85a21418 Added bindings for HTMLParser. 2022-07-19 20:21:28 +02:00
d786fb5722 More fixes. 2022-07-19 19:26:24 +02:00
30c3baba7c Added binding methods to BBCodeParser. 2022-07-19 19:20:34 +02:00
2b631968d5 Added binding methods to HTMLParser. 2022-07-19 19:07:50 +02:00
f69cd86e5c My BBCode parser now also inherith from Reference. 2022-07-19 14:27:01 +02:00
661ba986d7 Small tweaks. 2022-07-19 14:26:40 +02:00
e4e2bea570 HTMLParser and it's helper classes inherit from Reference now. 2022-07-19 13:58:26 +02:00
e6e8de0cc5 Moved User and UserController to a new module from web. 2022-07-07 23:25:08 +02:00
f47536b834 Add an another note. 2022-07-07 21:53:28 +02:00
d363ad43c2 Remove 2 comments, these variables should actually be safe as normal bools. 2022-07-07 21:46:51 +02:00
6172b0eee4 Set wirte_lock_requested back to false. 2022-07-07 21:46:13 +02:00
57775d88de Renamed WebNode's write lock acquired notification, and changed it's number. 2022-07-07 21:44:41 +02:00
2feba341be Reworked the WebServer to automatically find it's root webnode, and HTTPSessionManager. Also Added notifications for when the server starts and stops, and implemented the write lock for it. 2022-07-07 21:44:14 +02:00
16d12e3756 Cleaned up User, and added it ot the build. 2022-07-07 17:06:00 +02:00
9d5828a6bd Remove drbac and related classes. 2022-07-07 00:48:57 +02:00
3f481f6eba Added an another idea that I had to notes. 2022-07-07 00:26:41 +02:00
9504c2590b More notes. 2022-07-07 00:23:08 +02:00
d469473ec8 Some todos / notes. 2022-07-07 00:18:37 +02:00
eb251fef19 Removed web settings related code from WebNode. 2022-07-06 23:54:07 +02:00
83160ae6cf Removed my settings classes. 2022-07-06 23:46:30 +02:00
afef61dabf Re-enabled database support for WebNodes. 2022-07-06 23:03:44 +02:00
8422566d28 Moved the settings classes fomr the database module to the web module. 2022-07-06 12:59:34 +02:00
d2c0941c42 Fix missing include. 2022-07-04 20:46:26 +02:00
189348169e Added bindings for the FormValidators, and added them to the build. 2022-07-04 20:43:39 +02:00
d4e26c33fa Added getters and setters for the FormValidators. 2022-07-04 19:48:38 +02:00