Commit graph

44 commits

Author SHA1 Message Date
Thanasis Antoniou
ad046b1589 NETWORKING: Fix compiler warning about always false comparison
warning: comparison is always false due to limited range of data type [-Wtype-limits]

s is Common::String. s[i] is thus a "char". If char is signed 8bit then the comparison will indeed always be false.
2020-02-01 18:22:38 +02:00
Thierry Crozat
caf0968078 NETWORKING: Convert translation results to UTF-8 for local webserver pages 2019-09-21 22:15:26 +03:00
Eugene Sandulenko
f86f96e188 NETWORKING: Clarify where to put wwwroot.zip 2019-09-14 22:45:17 +02:00
Eugene Sandulenko
b2fff44647 NETWORKING: Clarify message when web server resources are not available 2019-09-14 22:23:04 +02:00
Cameron Cawley
66ef50cfeb BACKENDS: Rename and simplify AbstractFSNode::create() 2019-08-06 07:17:29 +03:00
Alexander Tkachev
99c2418d1a GUI: Rewrite Cloud tab
- StorageWizardDialog is removed, along with bmps it was using;
- EditTextWidget now accepts custom font in constructor;
- ScrollContainer scrollbar now jumps to top when content height changes
so it's "overscrolled";
- IndexPageHandler now does not awaits for `code` GET-parameter, as
local webserver is no longer used to connect Storages;
- CloudManager and all corresponding Storages are updated to support
disconnecting and to notify about successful connection.
2019-07-30 14:51:41 -04:00
Eugene Sandulenko
addcdd5ae8 NETWORKING: Fix data type cast in comparison. char is usually signed 2017-08-11 22:00:15 +02:00
D G Turner
85a3dad96a CLOUD: Fix Various Variable Shadowing Compiler Warnings. 2017-01-16 13:01:17 +00:00
D G Turner
f2e03d2c07 CLOUD: Fix Various Compiler Warnings By Adding Casts. 2017-01-16 12:49:40 +00:00
Eugene Sandulenko
fab199d37e JANITORIAL: Make GPL headers uniform 2016-09-03 12:46:38 +02:00
Alexander Tkachev
f8fe150130 CLOUD: Fix Webserver's usage of DefaultSaveFileManager
concatWithSavesPath() is only defined when curl is used, but was used in
Webserver even when curl is unavailable.
2016-08-30 21:08:02 +06:00
Alexander Tkachev
8a1cca896e CLOUD: Update handlers
Now if there is no "rootpath" specified, it's not even listed by
FilesPageHandler and ListAjaxHandler. And, of course, not available to
use anywhere else.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
acfa1d1f10 CLOUD: Handle paths in marked places
Paths containing '../' are forbidden to use in Files Manager. There is
also a special inner black list of paths which are not used and a check
that specified path is under "savepath" or "rootpath" (from "cloud"
domain).
2016-08-24 16:07:55 +06:00
Alexander Tkachev
dd9e5a95dc CLOUD: Mark places where path handling is needed 2016-08-24 16:07:55 +06:00
Alexander Tkachev
126fe9c845 CLOUD: Add "minimal mode" in LocalWebserver
StorageWizardDialog now runs LocalWebserver in "minimal mode" for
security reasons. In this mode server uses only those handlers which
state to support it.

There are two handlers which support minimal mode: IndexPageHandler
(which handles `code` requests needed by StorageWizardDialog) and
ResourceHandler (which provides inner resources like `style.css` or
`logo.png` from `wwwroot.zip` archive).
2016-08-24 16:07:55 +06:00
Peter Bozsó
a1de322c18 CLOUD: Use overriden handle() instead of ClientHandlerCallback in page handlers
Using a dedicated callback object for this was an unnecessary overhead.
2016-08-24 16:07:55 +06:00
Peter Bozsó
64b361b335 CLOUD: Move determineMimeType to ResourceHandler 2016-08-24 16:07:55 +06:00
Eugene Sandulenko
d57fca4665 CLOUD: JANITORIAL: Fix code formatting 2016-08-24 16:07:55 +06:00
Alexander Tkachev
7c9912e3d8 CLOUD: Fix IndexPageHandler warning 2016-08-24 16:07:55 +06:00
Peter Bozsó
9254df2d96 CLOUD: Fix code formatting 2016-08-24 16:07:55 +06:00
Alexander Tkachev
438ba985a4 JANITORIAL: Remove spaces at the end of the line
I knew there were some, but I wanted to fix them once, instead of doing
it all the time.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
01161ae7dd CLOUD: Do some refactoring/cleanup in Networking 2016-08-24 16:07:55 +06:00
Alexander Tkachev
36b381e411 CLOUD: Make "/create" support AJAX
Now creating directories doesn't refresh the "/filesAJAX" page.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
da229dd84c CLOUD: Add "ajax" parameter for "/create" and "/upload"
If it's set, these redirect to "/filesAJAX" instead of "/files".
2016-08-24 16:07:55 +06:00
Alexander Tkachev
e6caa482e1 CLOUD: Add messages in "/filesAJAX" 2016-08-24 16:07:55 +06:00
Alexander Tkachev
09ae2f7593 CLOUD: Add "/filesAJAX" sketch
It works already, but still requires some polishing.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
5163fb4e02 CLOUD: Add ListAjaxHandler
"/list" now returns JSON with directory information. Would be used in
AJAX-based Files Manager.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
6c0f491c4f CLOUD: Add "Index of" label in server's "/files" 2016-08-24 16:07:55 +06:00
Alexander Tkachev
06ccfd4b9a CLOUD: Add icons in "/files" list 2016-08-24 16:07:55 +06:00
Alexander Tkachev
0a43dad629 CLOUD: Redirect to "/files" from "/"
"/" is used to receive "?code", but when there is no such parameter
passed, it's safe to redirect user to the "/files".
2016-08-24 16:07:55 +06:00
Alexander Tkachev
389c669a47 CLOUD: Add "directory" form for webserver "/upload"
The attribute is Chrome-only.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
29e6020574 CLOUD: Update "/files" hardcoded response template 2016-08-24 16:07:55 +06:00
Alexander Tkachev
35b2471290 CLOUD: Fix '\' encoding back 2016-08-24 16:07:55 +06:00
Alexander Tkachev
36b0069e95 CLOUD: Cleanup in Handlers
Simplified some stuff here and there by using HandlerUtils static
methods.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
abae5c4371 CLOUD: Cleanup in UploadFileHandler 2016-08-24 16:07:55 +06:00
Alexander Tkachev
e4bb7c4e75 CLOUD: Add UploadFileClientHandler
Now Client reads the first headers block, then LocalWebserver decides
which Handler to use. In case of "/upload", UploadFileHandler is used.

But now it only knows the "path" parameter. If that's valid, actual
UploadFileClientHandler is created, which reads the contents of the
request and, when finds there  an "upload_file" field, starts saving it
in the directory specified by "path".

With that we don't need temp files approach from Reader class.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
a424ebbc28 CLOUD: Fix quotes encoding 2016-08-24 16:07:55 +06:00
Alexander Tkachev
eaa5fb1759 CLOUD: Put "/upload" "path" parameter in the URL 2016-08-24 16:07:55 +06:00
Alexander Tkachev
f0fc18d2ee CLOUD: Add UploadFileHandler 2016-08-24 16:07:55 +06:00
Alexander Tkachev
4d88f51de9 CLOUD: Add query parameters URL encoding
In local webserver's links.

Fixed URL decoding to understand '+', by the way. Firefox sends these
instead of spaces and "%2B" instead of '+'.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
b40bfaa046 CLOUD: Add "/download" handler
Now one can download files from the device through browser!
2016-08-24 16:07:55 +06:00
Alexander Tkachev
8a9d126152 CLOUD: Move "/create" to separate Handler
It does redirect to "/files" on success, so user doesn't even see the
strange "/create" URL at all.

This commit is for keeping these handlers small, not making one
(FilesPageHandler in this case) do everything.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
ab4361a76b CLOUD: Make "/create" work
One can now create directories through browser.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
48e3fff6bc CLOUD: Refactor LocalWebserver
Its handlers are now more compact. This commit moves Handler classes in
handlers\ directory.

ResourceHandler ignores "hidden" files in the archive, and these are
used as markup templates in IndexPageHandler and FilesPageHandler.
2016-08-24 16:07:55 +06:00