mbkbucket 1.0.2 → 1.1.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 +8 -1
- package/README.md +7 -1
- package/index.d.ts +235 -4
- package/index.js +193 -4
- package/lib/bucket.js +646 -0
- package/lib/s3.js +504 -0
- package/package.json +32 -20
- package/views/bucket.handlebars +226 -0
- package/views/bucketadmincontent.handlebars +2933 -0
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset="UTF-8">
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
7
|
+
<title>{{#if page}}{{page}} - {{/if}}Web Portal</title>
|
|
8
|
+
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
9
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
10
|
+
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet">
|
|
11
|
+
<script src="/mbkauthe/main.js" defer></script>
|
|
12
|
+
<script src="https://portal.mbktech.org/Assets/Scripts/timeoutlogout.js" defer></script>
|
|
13
|
+
<script src="https://portal.mbktech.org/Assets/Scripts/auto-ids.js" defer></script>
|
|
14
|
+
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css">
|
|
15
|
+
<link rel="icon" type="image/x-icon" href="/icon.svg">
|
|
16
|
+
<style>
|
|
17
|
+
:root {
|
|
18
|
+
--primary-color-ml: #0d9488;
|
|
19
|
+
--primary-light-color-ml: #ccfbf1;
|
|
20
|
+
--primary-dark-color-ml: #0f766e;
|
|
21
|
+
--secondary-color-ml: #2c7a7b;
|
|
22
|
+
--dark-color-ml: #1a202c;
|
|
23
|
+
--light-color-ml: #f7fafc;
|
|
24
|
+
--gray-color-ml: #718096;
|
|
25
|
+
--gray-light-color-ml: #e2e8f0;
|
|
26
|
+
--danger-color-ml: #dc2626;
|
|
27
|
+
--warning-color-ml: #d97706;
|
|
28
|
+
--success-color-ml: #16a34a;
|
|
29
|
+
--info-color-ml: #3b82f6;
|
|
30
|
+
--border-radius-r-ml: 0.5rem;
|
|
31
|
+
--border-radius-sm-ml: 0.25rem;
|
|
32
|
+
--border-radius-lg-ml: 0.75rem;
|
|
33
|
+
--shadow-s-ml: 0 2px 4px rgba(0, 0, 0, 0.1);
|
|
34
|
+
--shadow-md-ml: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
|
|
35
|
+
--shadow-lg-ml: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
|
|
36
|
+
--transition-base-ml: all 0.2s ease;
|
|
37
|
+
--transition-fast-ml: all 0.15s ease;
|
|
38
|
+
--main-border-color: var(--gray-light-color-ml);
|
|
39
|
+
--color-accent: var(--primary-color-ml);
|
|
40
|
+
--color-text: var(--dark-color-ml);
|
|
41
|
+
--color-bg: var(--light-color-ml);
|
|
42
|
+
--font-family: "Inter", sans-serif;
|
|
43
|
+
--font-family-headings: "Inter", sans-serif
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
* {
|
|
47
|
+
margin: 0;
|
|
48
|
+
padding: 0;
|
|
49
|
+
box-sizing: border-box
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
body {
|
|
53
|
+
font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
|
54
|
+
background: linear-gradient(135deg, #f5f7fb 0, #f0f4f8 100%);
|
|
55
|
+
color: var(--dark-color-ml);
|
|
56
|
+
display: flex;
|
|
57
|
+
min-height: 100vh;
|
|
58
|
+
overflow-x: hidden;
|
|
59
|
+
line-height: 1.6;
|
|
60
|
+
font-size: 14px
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/* Removed unused sidebar/menu styles to reduce CSS size. */
|
|
64
|
+
|
|
65
|
+
.logo {
|
|
66
|
+
font-size: 1.25rem;
|
|
67
|
+
font-weight: 700;
|
|
68
|
+
color: var(--primary-color-ml);
|
|
69
|
+
display: flex;
|
|
70
|
+
align-items: center;
|
|
71
|
+
gap: .5rem
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.logo img {
|
|
75
|
+
width: 40px
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.main-content {
|
|
79
|
+
flex: 1;
|
|
80
|
+
display: flex;
|
|
81
|
+
flex-direction: column;
|
|
82
|
+
overflow: hidden;
|
|
83
|
+
transition: var(--transition-base-ml)
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.top-nav {
|
|
87
|
+
background: #fff;
|
|
88
|
+
backdrop-filter: blur(10px);
|
|
89
|
+
padding: .5rem 2rem;
|
|
90
|
+
display: flex;
|
|
91
|
+
align-items: center;
|
|
92
|
+
justify-content: flex-end;
|
|
93
|
+
box-shadow: var(--shadow-md-ml);
|
|
94
|
+
z-index: 90;
|
|
95
|
+
border-bottom: 1px solid var(--gray-light-color-ml);
|
|
96
|
+
gap: 1rem
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/* Removed unused notification and profile styles to reduce CSS size. */
|
|
100
|
+
|
|
101
|
+
.content-area {
|
|
102
|
+
flex: 1;
|
|
103
|
+
padding: 2rem;
|
|
104
|
+
overflow-y: auto
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
.content-area::-webkit-scrollbar {
|
|
108
|
+
width: 8px
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
.content-area::-webkit-scrollbar-track {
|
|
112
|
+
background: 0 0
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
.content-area::-webkit-scrollbar-thumb {
|
|
116
|
+
background: var(--gray-color-ml);
|
|
117
|
+
border-radius: 4px
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
.content-area::-webkit-scrollbar-thumb:hover {
|
|
121
|
+
background: var(--primary-color-ml)
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
.page-header {
|
|
125
|
+
display: flex;
|
|
126
|
+
align-items: center;
|
|
127
|
+
justify-content: space-between;
|
|
128
|
+
margin-bottom: 2rem;
|
|
129
|
+
padding-bottom: 1rem;
|
|
130
|
+
border-bottom: 2px solid var(--gray-light-color-ml)
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
.page-title {
|
|
134
|
+
font-size: 2rem;
|
|
135
|
+
font-weight: 700;
|
|
136
|
+
color: var(--dark-color-ml);
|
|
137
|
+
margin: 0
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
.breadcrumb {
|
|
141
|
+
display: flex;
|
|
142
|
+
align-items: center;
|
|
143
|
+
color: var(--gray-color-ml);
|
|
144
|
+
font-size: .875rem;
|
|
145
|
+
background: var(--light-color-ml);
|
|
146
|
+
padding: .5rem 1rem;
|
|
147
|
+
border-radius: var(--border-radius-r-ml);
|
|
148
|
+
border: 1px solid var(--gray-light-color-ml)
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
.breadcrumb a {
|
|
152
|
+
color: var(--primary-color-ml);
|
|
153
|
+
text-decoration: none;
|
|
154
|
+
transition: var(--transition-base-ml);
|
|
155
|
+
font-weight: 500
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
.breadcrumb a:hover {
|
|
159
|
+
color: var(--primary-dark-color-ml)
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
.breadcrumb .separator {
|
|
163
|
+
margin: 0 .5rem;
|
|
164
|
+
color: var(--gray-color-ml)
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
@media (max-width:992px) {
|
|
168
|
+
.main-content {
|
|
169
|
+
margin-left: 0 !important
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
.content-area {
|
|
173
|
+
padding: 1.5rem
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
@media (max-width:768px) {
|
|
178
|
+
.top-nav {
|
|
179
|
+
padding: .25rem 1rem
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
.content-area {
|
|
183
|
+
padding: 1rem
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
.page-header {
|
|
187
|
+
flex-direction: row;
|
|
188
|
+
align-items: flex-start;
|
|
189
|
+
gap: 1rem
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
.page-title {
|
|
193
|
+
font-size: 1.5rem
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
</style>
|
|
199
|
+
{{> showmessage }}
|
|
200
|
+
</head>
|
|
201
|
+
|
|
202
|
+
<body>
|
|
203
|
+
|
|
204
|
+
<div class="main-content">
|
|
205
|
+
<nav class="top-nav">
|
|
206
|
+
<div class="logo">
|
|
207
|
+
<img onclick="window.location='/'" src="/icon.svg" alt="Logo">
|
|
208
|
+
<span onclick="window.location='/'" style="cursor:pointer;">MBKBucket</span>
|
|
209
|
+
</div>
|
|
210
|
+
|
|
211
|
+
{{> profilemenu }}
|
|
212
|
+
</nav>
|
|
213
|
+
|
|
214
|
+
<div class="content-area">
|
|
215
|
+
<div class="page-header">
|
|
216
|
+
<h1 class="page-title">{{#if page}}{{page}}{{else}}Dashboard{{/if}}</h1>
|
|
217
|
+
<div class="breadcrumb">
|
|
218
|
+
<span>{{#if page}}{{page}}{{else}}Home{{/if}}</span>
|
|
219
|
+
</div>
|
|
220
|
+
</div>
|
|
221
|
+
{{> bucketadmincontent }}
|
|
222
|
+
</div>
|
|
223
|
+
</div>
|
|
224
|
+
</body>
|
|
225
|
+
|
|
226
|
+
</html>
|