mbkbucket 1.4.0 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +1 -1
- package/.github/PACKAGE.md +0 -4
- package/index.d.ts +126 -37
- package/index.js +1 -1
- package/lib/index.js +2 -2
- package/lib/routes/api.js +501 -0
- package/lib/routes/index.js +17 -0
- package/lib/routes/info.js +28 -0
- package/lib/routes/view.js +458 -0
- package/package.json +2 -2
- package/public/bucketadmin.css +144 -32
- package/public/bucketadmin.js +114 -34
- package/views/bucket.handlebars +3 -3
- package/views/bucketadmin_alerts.handlebars +15 -0
- package/views/bucketadmin_delete_modal.handlebars +40 -0
- package/views/bucketadmin_filelist_skeleton.handlebars +20 -0
- package/views/bucketadmin_preview_modal.handlebars +33 -0
- package/views/bucketadmincontent.handlebars +5 -94
- package/lib/bucket.js +0 -979
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
<!-- Delete Confirmation Modal -->
|
|
2
|
+
<div class="modal" id="deleteModal" tabindex="-1" aria-labelledby="deleteModalLabel" aria-hidden="true">
|
|
3
|
+
<div class="modal-dialog">
|
|
4
|
+
<div class="modal-content">
|
|
5
|
+
<div class="modal-header">
|
|
6
|
+
<h5 class="modal-title" id="deleteModalLabel">
|
|
7
|
+
<i class="fas fa-exclamation-triangle"></i>
|
|
8
|
+
Confirm Delete
|
|
9
|
+
</h5>
|
|
10
|
+
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"
|
|
11
|
+
onclick="closeModal()">×</button>
|
|
12
|
+
</div>
|
|
13
|
+
<div class="modal-body">
|
|
14
|
+
<i class="fas fa-trash-alt fa-3x"></i>
|
|
15
|
+
<h6>Are you sure you want to delete this file?</h6>
|
|
16
|
+
<p class="modal-body-text-style">
|
|
17
|
+
<strong id="deleteFileName" style="color: var(--dark-color-ml);"></strong>
|
|
18
|
+
</p>
|
|
19
|
+
<p class="modal-body-text-top">
|
|
20
|
+
<small>This action cannot be undone.</small>
|
|
21
|
+
</p>
|
|
22
|
+
</div>
|
|
23
|
+
<div class="modal-footer">
|
|
24
|
+
<button type="button" class="btn btn-secondary" onclick="closeModal()">
|
|
25
|
+
<i class="fas fa-times"></i>
|
|
26
|
+
Cancel
|
|
27
|
+
</button>
|
|
28
|
+
<form id="deleteForm" method="post" action="/mbkbucket/delete" style="display: inline;">
|
|
29
|
+
<input type="hidden" name="key" id="deleteKey">
|
|
30
|
+
<input type="hidden" name="prefix" value="{{prefix}}">
|
|
31
|
+
<input type="hidden" name="folder" id="deleteIsFolder" value="">
|
|
32
|
+
<button type="submit" class="btn btn-danger" id="deleteConfirmButton">
|
|
33
|
+
<i class="fas fa-trash"></i>
|
|
34
|
+
<span id="deleteConfirmLabel">Delete File</span>
|
|
35
|
+
</button>
|
|
36
|
+
</form>
|
|
37
|
+
</div>
|
|
38
|
+
</div>
|
|
39
|
+
</div>
|
|
40
|
+
</div>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<div class="table-responsive" aria-label="Loading files" aria-busy="true">
|
|
2
|
+
<div class="skeleton-row">
|
|
3
|
+
<div class="skeleton-box s-40"></div>
|
|
4
|
+
<div class="skeleton-box s-200"></div>
|
|
5
|
+
<div class="skeleton-box s-80"></div>
|
|
6
|
+
<div class="skeleton-box s-200"></div>
|
|
7
|
+
</div>
|
|
8
|
+
<div class="skeleton-row">
|
|
9
|
+
<div class="skeleton-box s-40"></div>
|
|
10
|
+
<div class="skeleton-box s-200"></div>
|
|
11
|
+
<div class="skeleton-box s-80"></div>
|
|
12
|
+
<div class="skeleton-box s-200"></div>
|
|
13
|
+
</div>
|
|
14
|
+
<div class="skeleton-row">
|
|
15
|
+
<div class="skeleton-box s-40"></div>
|
|
16
|
+
<div class="skeleton-box s-200"></div>
|
|
17
|
+
<div class="skeleton-box s-80"></div>
|
|
18
|
+
<div class="skeleton-box s-200"></div>
|
|
19
|
+
</div>
|
|
20
|
+
</div>
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
<!-- Preview Modal -->
|
|
2
|
+
<div class="modal" id="previewModal" role="dialog" aria-modal="true" aria-labelledby="previewModalLabel" tabindex="-1">
|
|
3
|
+
<div class="modal-dialog preview-modal-dialog" role="document">
|
|
4
|
+
<div class="modal-content">
|
|
5
|
+
<div class="modal-header">
|
|
6
|
+
<h5 class="modal-title" id="previewModalLabel"><i class="fas fa-eye"></i> <span
|
|
7
|
+
id="previewFileName">Preview</span></h5>
|
|
8
|
+
<div class="preview-header-controls">
|
|
9
|
+
<button id="previewFullscreenBtn" class="btn btn-outline-secondary btn-sm" type="button"
|
|
10
|
+
aria-label="Toggle fullscreen"><i class="fas fa-expand"></i></button>
|
|
11
|
+
<button type="button" class="btn-close" aria-label="Close preview" id="previewCloseBtn">×</button>
|
|
12
|
+
</div>
|
|
13
|
+
</div>
|
|
14
|
+
<div class="modal-body">
|
|
15
|
+
<div class="preview-content" id="previewContent" aria-live="polite">
|
|
16
|
+
<div class="empty-preview">
|
|
17
|
+
<i class="fas fa-spinner fa-spin"></i>
|
|
18
|
+
<div class="modal-header-spacing">Loading preview...</div>
|
|
19
|
+
</div>
|
|
20
|
+
</div>
|
|
21
|
+
</div>
|
|
22
|
+
<div class="modal-footer preview-footer">
|
|
23
|
+
<div class="preview-actions">
|
|
24
|
+
<a id="previewOpenBtn" class="btn btn-outline-secondary" target="_blank" rel="noopener noreferrer" href="#"><i
|
|
25
|
+
class="fas fa-external-link-alt"></i> Open</a>
|
|
26
|
+
<a id="previewDownloadBtn" class="btn btn-success" download href="#"><i class="fas fa-download"></i>
|
|
27
|
+
Download</a>
|
|
28
|
+
<button type="button" class="btn btn-secondary" id="previewCloseFooter">Close</button>
|
|
29
|
+
</div>
|
|
30
|
+
</div>
|
|
31
|
+
</div>
|
|
32
|
+
</div>
|
|
33
|
+
</div>
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
<p id="filterInfo">Loading file information...</p>
|
|
14
14
|
</div>
|
|
15
15
|
<div style="margin-left: auto;">
|
|
16
|
-
<span
|
|
16
|
+
<span class="stats-bucket-badge">
|
|
17
17
|
<i class="fas fa-database" style="margin-right:0.4rem;"></i>{{bucketvar}}
|
|
18
18
|
</span>
|
|
19
19
|
</div>
|
|
@@ -21,21 +21,7 @@
|
|
|
21
21
|
</div>
|
|
22
22
|
</div>
|
|
23
23
|
|
|
24
|
-
{{
|
|
25
|
-
<div class="alert alert-success alert-dismissible fade show" role="alert" id="successAlert">
|
|
26
|
-
<i class="fas fa-check-circle"></i>
|
|
27
|
-
<span id="successMessage">{{message}}</span>
|
|
28
|
-
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close">×</button>
|
|
29
|
-
</div>
|
|
30
|
-
{{/if}}
|
|
31
|
-
|
|
32
|
-
{{#if error}}
|
|
33
|
-
<div class="alert alert-danger alert-dismissible fade show" role="alert" id="errorAlert">
|
|
34
|
-
<i class="fas fa-exclamation-triangle"></i>
|
|
35
|
-
<span id="errorMessage">{{error}}</span>
|
|
36
|
-
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close">×</button>
|
|
37
|
-
</div>
|
|
38
|
-
{{/if}}
|
|
24
|
+
{{> bucketadmin_alerts }}
|
|
39
25
|
|
|
40
26
|
<div class="mb-4">
|
|
41
27
|
<!-- Upload Form -->
|
|
@@ -142,11 +128,7 @@
|
|
|
142
128
|
</div>
|
|
143
129
|
<div class="card-body" style="padding: 0;">
|
|
144
130
|
<div id="fileListContainer">
|
|
145
|
-
|
|
146
|
-
<i class="fas fa-spinner fa-spin"></i>
|
|
147
|
-
<h4>Loading files...</h4>
|
|
148
|
-
<p>Please wait while we fetch your files.</p>
|
|
149
|
-
</div>
|
|
131
|
+
{{> bucketadmin_filelist_skeleton }}
|
|
150
132
|
</div>
|
|
151
133
|
|
|
152
134
|
<!-- Pagination -->
|
|
@@ -159,80 +141,9 @@
|
|
|
159
141
|
</div>
|
|
160
142
|
</div>
|
|
161
143
|
|
|
162
|
-
|
|
163
|
-
<div class="modal" id="deleteModal" tabindex="-1" aria-labelledby="deleteModalLabel" aria-hidden="true">
|
|
164
|
-
<div class="modal-dialog">
|
|
165
|
-
<div class="modal-content">
|
|
166
|
-
<div class="modal-header">
|
|
167
|
-
<h5 class="modal-title" id="deleteModalLabel">
|
|
168
|
-
<i class="fas fa-exclamation-triangle"></i>
|
|
169
|
-
Confirm Delete
|
|
170
|
-
</h5>
|
|
171
|
-
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"
|
|
172
|
-
onclick="closeModal()">×</button>
|
|
173
|
-
</div>
|
|
174
|
-
<div class="modal-body">
|
|
175
|
-
<i class="fas fa-trash-alt fa-3x"></i>
|
|
176
|
-
<h6>Are you sure you want to delete this file?</h6>
|
|
177
|
-
<p class="modal-body-text-style">
|
|
178
|
-
<strong id="deleteFileName" style="color: var(--dark-color-ml);"></strong>
|
|
179
|
-
</p>
|
|
180
|
-
<p class="modal-body-text-top">
|
|
181
|
-
<small>This action cannot be undone.</small>
|
|
182
|
-
</p>
|
|
183
|
-
</div>
|
|
184
|
-
<div class="modal-footer">
|
|
185
|
-
<button type="button" class="btn btn-secondary" onclick="closeModal()">
|
|
186
|
-
<i class="fas fa-times"></i>
|
|
187
|
-
Cancel
|
|
188
|
-
</button>
|
|
189
|
-
<form id="deleteForm" method="post" action="/mbkbucket/delete" style="display: inline;">
|
|
190
|
-
<input type="hidden" name="key" id="deleteKey">
|
|
191
|
-
<input type="hidden" name="prefix" value="{{prefix}}">
|
|
192
|
-
<input type="hidden" name="folder" id="deleteIsFolder" value="">
|
|
193
|
-
<button type="submit" class="btn btn-danger" id="deleteConfirmButton">
|
|
194
|
-
<i class="fas fa-trash"></i>
|
|
195
|
-
<span id="deleteConfirmLabel">Delete File</span>
|
|
196
|
-
</button>
|
|
197
|
-
</form>
|
|
198
|
-
</div>
|
|
199
|
-
</div>
|
|
200
|
-
</div>
|
|
201
|
-
</div>
|
|
144
|
+
{{> bucketadmin_delete_modal }}
|
|
202
145
|
|
|
203
|
-
|
|
204
|
-
<div class="modal" id="previewModal" role="dialog" aria-modal="true" aria-labelledby="previewModalLabel" tabindex="-1">
|
|
205
|
-
<div class="modal-dialog preview-modal-dialog" role="document">
|
|
206
|
-
<div class="modal-content">
|
|
207
|
-
<div class="modal-header">
|
|
208
|
-
<h5 class="modal-title" id="previewModalLabel"><i class="fas fa-eye"></i> <span
|
|
209
|
-
id="previewFileName">Preview</span></h5>
|
|
210
|
-
<div class="preview-header-controls">
|
|
211
|
-
<button id="previewFullscreenBtn" class="btn btn-outline-secondary btn-sm" type="button"
|
|
212
|
-
aria-label="Toggle fullscreen"><i class="fas fa-expand"></i></button>
|
|
213
|
-
<button type="button" class="btn-close" aria-label="Close preview" id="previewCloseBtn">×</button>
|
|
214
|
-
</div>
|
|
215
|
-
</div>
|
|
216
|
-
<div class="modal-body">
|
|
217
|
-
<div class="preview-content" id="previewContent" aria-live="polite">
|
|
218
|
-
<div class="empty-preview">
|
|
219
|
-
<i class="fas fa-spinner fa-spin"></i>
|
|
220
|
-
<div class="modal-header-spacing">Loading preview...</div>
|
|
221
|
-
</div>
|
|
222
|
-
</div>
|
|
223
|
-
</div>
|
|
224
|
-
<div class="modal-footer preview-footer">
|
|
225
|
-
<div class="preview-actions">
|
|
226
|
-
<a id="previewOpenBtn" class="btn btn-outline-secondary" target="_blank" rel="noopener noreferrer" href="#"><i
|
|
227
|
-
class="fas fa-external-link-alt"></i> Open</a>
|
|
228
|
-
<a id="previewDownloadBtn" class="btn btn-success" download href="#"><i class="fas fa-download"></i>
|
|
229
|
-
Download</a>
|
|
230
|
-
<button type="button" class="btn btn-secondary" id="previewCloseFooter">Close</button>
|
|
231
|
-
</div>
|
|
232
|
-
</div>
|
|
233
|
-
</div>
|
|
234
|
-
</div>
|
|
235
|
-
</div>
|
|
146
|
+
{{> bucketadmin_preview_modal }}
|
|
236
147
|
|
|
237
148
|
<!-- Toast Container -->
|
|
238
149
|
<div id="toast-container" class="toast-container"></div>
|