Commit graph

51 commits

Author SHA1 Message Date
16b3318f92
Delete fling, fix race conditions
All checks were successful
continuous-integration/drone/push Build is passing
2020-07-19 19:31:34 +02:00
41f2a22f3d
Introduce redux store
All checks were successful
continuous-integration/drone/push Build is passing
2020-07-19 16:18:10 +02:00
0c1fe8efce
Remove invalid constraints, prepare python generator for deployment
All checks were successful
continuous-integration/drone/push Build is passing
2020-07-13 21:55:02 +02:00
bcfbf349cd
Add security scheme to controller for client generation
All checks were successful
continuous-integration/drone/push Build is passing
Clients (at least javascript client) generated from the OpenAPI spec do add the
bearer token to the request without specifying the bearer requirement.
2020-07-13 16:20:13 +02:00
39fd416b4a
Use generated client in web interface
All checks were successful
continuous-integration/drone/push Build is passing
2020-07-12 18:48:12 +02:00
8e0685819d
Use scoped npm package
All checks were successful
continuous-integration/drone/push Build is passing
This way the private nexus repository can be easily used besides the public
repository, via a scoped repository in .npmrc
2020-07-12 12:53:50 +02:00
f6fddae187
Run service from build
All checks were successful
continuous-integration/drone/push Build is passing
2020-07-12 12:31:45 +02:00
dcd9b65bbb
Get correct versions for docker image
All checks were successful
continuous-integration/drone/push Build is passing
2020-07-12 12:02:48 +02:00
525fd42b84
Publish flingclient js package
All checks were successful
continuous-integration/drone/push Build is passing
2020-07-12 11:35:12 +02:00
428390b0e2
Build javascript client
All checks were successful
continuous-integration/drone/push Build is passing
2020-07-12 08:45:07 +02:00
3679a9b501
Use valid semver and version update script
All checks were successful
continuous-integration/drone/push Build is passing
2020-07-12 02:06:50 +02:00
c663ec5e73
Use standard generated hibernate time stamps
All checks were successful
continuous-integration/drone/push Build is passing
2020-07-12 00:10:43 +02:00
3be61c4fa1
API Access Configuration, get Artifacts by fling id
All checks were successful
continuous-integration/drone/push Build is passing
2020-07-11 22:14:23 +02:00
415687c601
Authorization and Authentication refactoring and tests
All checks were successful
continuous-integration/drone/push Build is passing
2020-07-10 07:18:35 +02:00
00becacd47
Add test zips
All checks were successful
continuous-integration/drone/push Build is passing
2020-07-05 20:16:59 +02:00
a66b51e1e5
Add unit tests
Some checks failed
continuous-integration/drone/push Build is failing
2020-07-05 18:57:19 +02:00
2b18120c0b
Try client generator
All checks were successful
continuous-integration/drone/push Build is passing
2020-07-03 21:02:48 +02:00
3a05120da4
API documentation 2020-07-03 20:57:36 +02:00
77ce39244d
Simplified API, refactoring 2020-07-03 20:53:04 +02:00
d3855432b8
Enable caching in drone pipline
All checks were successful
continuous-integration/drone/push Build is passing
2020-07-03 20:45:36 +02:00
9469cd3332
Trigger docker publish only for master
All checks were successful
continuous-integration/drone/push Build is passing
2020-07-03 20:03:11 +02:00
75b65f3f77
Add Codestyle definition, editorconfig
All checks were successful
continuous-integration/drone/push Build is passing
2020-06-21 20:21:08 +02:00
23af542178
Use milliseconds as default Instant serialization/deserialization
All checks were successful
continuous-integration/drone/push Build is passing
2020-06-21 17:32:56 +02:00
5c976fc9d9
Clean up warnings
All checks were successful
continuous-integration/drone/push Build is passing
2020-06-21 13:47:51 +02:00
c9af6650fc
Fix nginx.pid path in alpine
All checks were successful
continuous-integration/drone/push Build is passing
2020-06-20 17:17:56 +02:00
858fdd2e9c
Switch container to alpine
All checks were successful
continuous-integration/drone/push Build is passing
2020-06-20 16:48:32 +02:00
3609866dae
Add java opts from environment to service startup
All checks were successful
continuous-integration/drone/push Build is passing
2020-06-18 02:34:27 +02:00
26efd11851
Handle all AuthenticationTokens
All checks were successful
continuous-integration/drone/push Build is passing
Do not error out when given another token than a Fling token. However, only a
valid FlingToken can grant access.
2020-06-15 21:36:07 +02:00
e59d8bba6a
Deploy build artifacts to nexus
All checks were successful
continuous-integration/drone/push Build is passing
2020-06-12 20:38:30 +02:00
c9fa0c023e
Prepare deployment
Some checks failed
continuous-integration/drone/push Build is failing
2020-06-11 22:56:31 +02:00
adf8f4e08d
Don't treat warnings as errors
All checks were successful
continuous-integration/drone/push Build is passing
2020-06-07 13:00:07 +02:00
3fb17212b7
Remove Web section from gitignore
Some checks failed
continuous-integration/drone/push Build is failing
2020-06-07 12:54:00 +02:00
226d2802ef
Fix tests and add build pipeline
Some checks failed
continuous-integration/drone/push Build is failing
2020-06-07 12:50:49 +02:00
18f035b7c2
User upload and Dropzone
Let users with rights to open fling also upload files if allowUpload set to true
for the fling
2020-06-05 21:45:07 +02:00
4d9b3d0d87
Fling User Download
File listing and dynamic download button
2020-06-04 22:28:30 +02:00
c1171e8376
Direct download
Implement direct download with online packaging
2020-05-31 14:41:04 +02:00
4618cc9bff
Landing page and user authorization for retrieving one fling 2020-05-29 18:08:18 +02:00
f502402cb6
Fling packaging and authorization
Allow users with a claim to the fling to download a fling as zip archive.
Package all artifacts belonging to a fling as zip file.
2020-05-24 19:52:14 +02:00
0fe28d3db8
Fling user access
Authentication for protected flings:
- Unlock screen
- Authentication backend
- Routes

Direct redirect for unprotected flings.
2020-05-24 17:06:59 +02:00
2fd30c6058
Remove uploaded files
If a file finished uploading, remove it from the file list.
2020-05-23 22:15:44 +02:00
bc6c2eabba
Artifacts table columns: Name, Upload Date, Size
Fix the artifacts table columns. Serialize upload date instant as milliseconds
from epoch.
2020-05-23 19:22:41 +02:00
12729a51a9
Implement new fling modal
When clicking New in the navbar a modal pops up for creating a new fling.
2020-05-23 13:51:18 +02:00
aad91c21f6
Fix drag leave event over child elements
When dragging over a child element of the dropzone, a drag leave event from the
dropzone is fired. This caused the handleDragLeave function to be called.

Before the dragLeave event on the dropzone is fired, first a dragEnter event on
the child is fired. By keeping a counter in the state, a premature dragLeave
effect in the dropzone is prevented.

The dragCount is kept in a local variable in handleOnDragLeave because only the
render method gets the most recent state. Reading from state in a regular
function will see an old value (and hence think it is still dragged over even
though the counter dropped to 0).
2020-05-22 22:31:19 +02:00
7f4bc536b9
Implement auth code setting and reset of settings
AuthCode to protect a fling can now be set in settings. AuthCode was moved to
the Fling table. Only one auth code per fling is possible now. AuthCode is
stored hashed in the database.

Additionally, implement reset of settings (Cancel button) by reloading the fling
from the database.
2020-05-22 21:44:28 +02:00
4ca4fe5ffe
Fix mobile layout for upload
Upload and file-list tiles appeared side-by-side even on small viewports.

Upload and file-list tiles are now full width on small viewports.
2020-05-22 08:30:06 +02:00
b0a7e8b443
Expiration settings, protection settings, fix drop area hover
- Front end for expiration time/date
- Setting expiration via `PUT /fling/{flingId}`
- Settings for protection code enabled in front-end (no backend)
- Upload drop container used to loose focus when hovering over child elements.
  This is fixed now.
2020-05-21 16:54:42 +02:00
4ab3bf705e
Add delete and download to ArtifactControl
Download first gets an unprotected, temporary download URL. It then loads an
iframe with the retrieved URL, which causes to browser to download the file.
This is done to prevent a reload of the page while at the same time use the
standard browser file download functionality. Other solutions found cause
problems with bigger files since they download the file first and then generate
a binary blob in the DOM.

Delete just deletes an artifact and reloads the artifact list. A potential
problem could occur if the removal in the archive fails while the file is
already deleted from the database.

Signed-off-by: Armin Friedl <dev@friedl.net>
2020-05-17 23:18:26 +02:00
b8471deecc Set active Fling from URL match
Instead of a mix between URL matching and manually setting the active fling, set
the active fling from the URL.

This fixes some strange edge cases where current URL and selected fling do not
add up.
2020-05-17 20:13:37 +02:00
857535bb93 Move fling administration to /admin subpath
Fling administration was directly beneth root path. For convenience the root
path should be reserved for retrieving flings.

Also adds fling content sections to real urls instead of hash urls,
parameterized by the active fling. A content section for a fling can hence now
be bookmarked or directly navigated to.
2020-05-17 19:01:33 +02:00
70cd9c29be
Deduplicate CSS
Sass and webpack don't interact well together. A (non-partial) SCSS file
compiled in Sass context and imported from a component will duplicate all its
internal imports.

Create a single SCSS/CSS stylesheet which is not duplicated multiple times due
to per-component import. The fling.scss master style sheet is now imported once
in index.js and contains styles for all components.

Signed-off-by: Armin Friedl <dev@friedl.net>
2020-05-17 16:55:26 +02:00