- Added R2 multipart upload support and streamed fallback uploads in [R2Client.php](/Users/tyemeclifford/Documents/GH/CloudflareR2-Manager/src/R2/R2Client.php).
Added a shared resumable upload session service in [ResumableUploadService.php](/Users/tyemeclifford/Documents/GH/CloudflareR2-Manager/src/Service/ResumableUploadService.php). Wired dashboard JSON upload endpoints in [AppController.php](/Users/tyemeclifford/Documents/GH/CloudflareR2-Manager/src/Controller/AppController.php). Reworked the upload UI/JS to chunk files directly from the browser to presigned R2 multipart URLs in [app.js](/Users/tyemeclifford/Documents/GH/CloudflareR2-Manager/public/assets/app.js). Added the dedicated iPhone/Safari side uploader at [side-upload.php](/Users/tyemeclifford/Documents/GH/CloudflareR2-Manager/public/side-upload.php), with its own password and fixed destination prefix via script constants, .env, or side-upload.json. Added [side-upload.example.json](/Users/tyemeclifford/Documents/GH/CloudflareR2-Manager/side-upload.example.json), ignored the real side-upload.json, and documented setup/CORS in [README.md](/Users/tyemeclifford/Documents/GH/CloudflareR2-Manager/README.md).
This commit is contained in:
@@ -496,6 +496,70 @@ code {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.upload-progress {
|
||||
display: grid;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.upload-item,
|
||||
.upload-message {
|
||||
display: grid;
|
||||
gap: 8px;
|
||||
border: 1px solid var(--line);
|
||||
border-radius: 8px;
|
||||
background: var(--surface-muted);
|
||||
padding: 12px;
|
||||
}
|
||||
|
||||
.upload-item-header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
gap: 12px;
|
||||
}
|
||||
|
||||
.upload-item-header strong {
|
||||
overflow-wrap: anywhere;
|
||||
}
|
||||
|
||||
.upload-item-header span,
|
||||
.upload-item small {
|
||||
color: var(--muted);
|
||||
font-size: 12px;
|
||||
font-weight: 750;
|
||||
}
|
||||
|
||||
.upload-item progress {
|
||||
width: 100%;
|
||||
height: 12px;
|
||||
accent-color: var(--primary);
|
||||
}
|
||||
|
||||
.upload-message-error {
|
||||
border-color: #f1aaa4;
|
||||
background: #fff1f0;
|
||||
color: var(--danger);
|
||||
}
|
||||
|
||||
.side-upload-shell {
|
||||
display: grid;
|
||||
gap: 16px;
|
||||
width: min(620px, calc(100% - 24px));
|
||||
margin: 20px auto 44px;
|
||||
}
|
||||
|
||||
.destination-pill {
|
||||
display: block;
|
||||
overflow-wrap: anywhere;
|
||||
border-radius: 8px;
|
||||
background: var(--surface-muted);
|
||||
padding: 10px 12px;
|
||||
color: var(--text);
|
||||
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
|
||||
font-size: 13px;
|
||||
font-weight: 650;
|
||||
}
|
||||
|
||||
@media (max-width: 1100px) {
|
||||
.workspace-grid,
|
||||
.stats-grid,
|
||||
|
||||
Reference in New Issue
Block a user