ep_media_upload 0.2.4 → 0.2.5
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/LICENSE +191 -191
- package/README.md +91 -97
- package/ep.json +20 -20
- package/index.js +567 -561
- package/locales/en.json +12 -12
- package/package.json +56 -40
- package/static/css/ep_media_upload.css +102 -100
- package/static/images/upload-file-svgrepo-com.svg +6 -2
- package/static/js/clientHooks.js +284 -284
- package/templates/uploadButton.ejs +8 -8
- package/templates/uploadModal.ejs +12 -12
package/locales/en.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
{
|
|
2
|
-
"ep_media_upload.toolbar.upload.title": "Upload File",
|
|
3
|
-
"ep_media_upload.error.title": "Upload Error",
|
|
4
|
-
"ep_media_upload.error.fileType": "File type not allowed.",
|
|
5
|
-
"ep_media_upload.error.fileSize": "File is too large. Maximum size is {{maxallowed}} MB.",
|
|
6
|
-
"ep_media_upload.error.uploadFailed": "Upload failed. Please try again.",
|
|
7
|
-
"ep_media_upload.error.networkError": "Network error. Please check your connection.",
|
|
8
|
-
"ep_media_upload.status.uploading": "Uploading...",
|
|
9
|
-
"ep_media_upload.status.success": "Upload complete!",
|
|
10
|
-
"ep_media_upload.button.close": "Close"
|
|
11
|
-
}
|
|
12
|
-
|
|
1
|
+
{
|
|
2
|
+
"ep_media_upload.toolbar.upload.title": "Upload File",
|
|
3
|
+
"ep_media_upload.error.title": "Upload Error",
|
|
4
|
+
"ep_media_upload.error.fileType": "File type not allowed.",
|
|
5
|
+
"ep_media_upload.error.fileSize": "File is too large. Maximum size is {{maxallowed}} MB.",
|
|
6
|
+
"ep_media_upload.error.uploadFailed": "Upload failed. Please try again.",
|
|
7
|
+
"ep_media_upload.error.networkError": "Network error. Please check your connection.",
|
|
8
|
+
"ep_media_upload.status.uploading": "Uploading...",
|
|
9
|
+
"ep_media_upload.status.success": "Upload complete!",
|
|
10
|
+
"ep_media_upload.button.close": "Close"
|
|
11
|
+
}
|
|
12
|
+
|
package/package.json
CHANGED
|
@@ -1,40 +1,56 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "ep_media_upload",
|
|
3
|
-
"description": "
|
|
4
|
-
"version": "0.2.
|
|
5
|
-
"
|
|
6
|
-
|
|
7
|
-
"
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
"
|
|
11
|
-
|
|
12
|
-
"
|
|
13
|
-
},
|
|
14
|
-
"
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
},
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
},
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
"
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
"
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
"
|
|
37
|
-
|
|
38
|
-
"
|
|
39
|
-
|
|
40
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "ep_media_upload",
|
|
3
|
+
"description": "Upload files directly to private S3 storage and insert secure download links into Etherpad.",
|
|
4
|
+
"version": "0.2.5",
|
|
5
|
+
"packageManager": "pnpm@11.13.0+sha512.88d94724d8f2e6c186744a5584c6e59ecac869ec7ba15e9cb4cd628e8dc7066820b2481d8ee3b51ea8da323a7378068aa58c556a3720d32b7c20a051d088363a",
|
|
6
|
+
"author": {
|
|
7
|
+
"name": "Daniel Castelone",
|
|
8
|
+
"url": "https://github.com/dcastelone"
|
|
9
|
+
},
|
|
10
|
+
"license": "Apache-2.0",
|
|
11
|
+
"scripts": {
|
|
12
|
+
"test": "node --test"
|
|
13
|
+
},
|
|
14
|
+
"dependencies": {
|
|
15
|
+
"@aws-sdk/client-s3": "3.1087.0",
|
|
16
|
+
"@aws-sdk/s3-request-presigner": "3.1087.0"
|
|
17
|
+
},
|
|
18
|
+
"devDependencies": {
|
|
19
|
+
"socket": "1.1.143"
|
|
20
|
+
},
|
|
21
|
+
"peerDependencies": {
|
|
22
|
+
"ep_etherpad-lite": ">=3.3.2 <4",
|
|
23
|
+
"ep_hyperlinked_text": ">=0.2.5 <1"
|
|
24
|
+
},
|
|
25
|
+
"engines": {
|
|
26
|
+
"node": ">=18.0.0"
|
|
27
|
+
},
|
|
28
|
+
"keywords": [
|
|
29
|
+
"etherpad",
|
|
30
|
+
"plugin",
|
|
31
|
+
"ep",
|
|
32
|
+
"media",
|
|
33
|
+
"upload",
|
|
34
|
+
"s3",
|
|
35
|
+
"file",
|
|
36
|
+
"attachment"
|
|
37
|
+
],
|
|
38
|
+
"repository": {
|
|
39
|
+
"type": "git",
|
|
40
|
+
"url": "git+https://github.com/dcastelone/ep_media_upload.git"
|
|
41
|
+
},
|
|
42
|
+
"bugs": {
|
|
43
|
+
"url": "https://github.com/dcastelone/ep_media_upload/issues"
|
|
44
|
+
},
|
|
45
|
+
"homepage": "https://github.com/dcastelone/ep_media_upload#readme",
|
|
46
|
+
"files": [
|
|
47
|
+
"ep.json",
|
|
48
|
+
"index.js",
|
|
49
|
+
"locales/",
|
|
50
|
+
"static/",
|
|
51
|
+
"templates/"
|
|
52
|
+
],
|
|
53
|
+
"publishConfig": {
|
|
54
|
+
"access": "public"
|
|
55
|
+
}
|
|
56
|
+
}
|
|
@@ -1,100 +1,102 @@
|
|
|
1
|
-
/* ep_media_upload Modal Styles */
|
|
2
|
-
|
|
3
|
-
.ep-media-upload-modal {
|
|
4
|
-
display: none;
|
|
5
|
-
position: fixed;
|
|
6
|
-
top: 0;
|
|
7
|
-
left: 0;
|
|
8
|
-
width: 100%;
|
|
9
|
-
height: 100%;
|
|
10
|
-
background-color: rgba(0, 0, 0, 0.5);
|
|
11
|
-
z-index: 10000;
|
|
12
|
-
justify-content: center;
|
|
13
|
-
align-items: center;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
.ep-media-upload-modal.visible {
|
|
17
|
-
display: flex;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
.ep-media-upload-modal-content {
|
|
21
|
-
background: #fff;
|
|
22
|
-
border-radius: 8px;
|
|
23
|
-
padding: 32px 48px;
|
|
24
|
-
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.25);
|
|
25
|
-
text-align: center;
|
|
26
|
-
min-width: 280px;
|
|
27
|
-
max-width: 400px;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
.ep-media-upload-state {
|
|
31
|
-
display: flex;
|
|
32
|
-
flex-direction: column;
|
|
33
|
-
align-items: center;
|
|
34
|
-
gap: 16px;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
/* Spinner */
|
|
38
|
-
.ep-media-upload-spinner {
|
|
39
|
-
width: 40px;
|
|
40
|
-
height: 40px;
|
|
41
|
-
border: 4px solid #e0e0e0;
|
|
42
|
-
border-top-color: #1a73e8;
|
|
43
|
-
border-radius: 50%;
|
|
44
|
-
animation: ep-media-upload-spin 1s linear infinite;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
@keyframes ep-media-upload-spin {
|
|
48
|
-
to {
|
|
49
|
-
transform: rotate(360deg);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
/* Message text */
|
|
54
|
-
.ep-media-upload-message {
|
|
55
|
-
margin: 0;
|
|
56
|
-
font-size: 16px;
|
|
57
|
-
color: #202124;
|
|
58
|
-
font-weight: 500;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
.ep-media-upload-error-text {
|
|
62
|
-
color: #d93025;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
/* Button */
|
|
66
|
-
.ep-media-upload-btn {
|
|
67
|
-
margin-top: 8px;
|
|
68
|
-
padding: 8px 24px;
|
|
69
|
-
font-size: 14px;
|
|
70
|
-
font-weight: 500;
|
|
71
|
-
color: #fff;
|
|
72
|
-
background-color: #1a73e8;
|
|
73
|
-
border: none;
|
|
74
|
-
border-radius: 4px;
|
|
75
|
-
cursor: pointer;
|
|
76
|
-
transition: background-color 0.2s;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
.ep-media-upload-btn:hover {
|
|
80
|
-
background-color: #1557b0;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
.ep-media-upload-btn:focus {
|
|
84
|
-
outline: 2px solid #1a73e8;
|
|
85
|
-
outline-offset: 2px;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
/* Toolbar
|
|
89
|
-
.
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
1
|
+
/* ep_media_upload Modal Styles */
|
|
2
|
+
|
|
3
|
+
.ep-media-upload-modal {
|
|
4
|
+
display: none;
|
|
5
|
+
position: fixed;
|
|
6
|
+
top: 0;
|
|
7
|
+
left: 0;
|
|
8
|
+
width: 100%;
|
|
9
|
+
height: 100%;
|
|
10
|
+
background-color: rgba(0, 0, 0, 0.5);
|
|
11
|
+
z-index: 10000;
|
|
12
|
+
justify-content: center;
|
|
13
|
+
align-items: center;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.ep-media-upload-modal.visible {
|
|
17
|
+
display: flex;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.ep-media-upload-modal-content {
|
|
21
|
+
background: #fff;
|
|
22
|
+
border-radius: 8px;
|
|
23
|
+
padding: 32px 48px;
|
|
24
|
+
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.25);
|
|
25
|
+
text-align: center;
|
|
26
|
+
min-width: 280px;
|
|
27
|
+
max-width: 400px;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.ep-media-upload-state {
|
|
31
|
+
display: flex;
|
|
32
|
+
flex-direction: column;
|
|
33
|
+
align-items: center;
|
|
34
|
+
gap: 16px;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/* Spinner */
|
|
38
|
+
.ep-media-upload-spinner {
|
|
39
|
+
width: 40px;
|
|
40
|
+
height: 40px;
|
|
41
|
+
border: 4px solid #e0e0e0;
|
|
42
|
+
border-top-color: #1a73e8;
|
|
43
|
+
border-radius: 50%;
|
|
44
|
+
animation: ep-media-upload-spin 1s linear infinite;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
@keyframes ep-media-upload-spin {
|
|
48
|
+
to {
|
|
49
|
+
transform: rotate(360deg);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/* Message text */
|
|
54
|
+
.ep-media-upload-message {
|
|
55
|
+
margin: 0;
|
|
56
|
+
font-size: 16px;
|
|
57
|
+
color: #202124;
|
|
58
|
+
font-weight: 500;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.ep-media-upload-error-text {
|
|
62
|
+
color: #d93025;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/* Button */
|
|
66
|
+
.ep-media-upload-btn {
|
|
67
|
+
margin-top: 8px;
|
|
68
|
+
padding: 8px 24px;
|
|
69
|
+
font-size: 14px;
|
|
70
|
+
font-weight: 500;
|
|
71
|
+
color: #fff;
|
|
72
|
+
background-color: #1a73e8;
|
|
73
|
+
border: none;
|
|
74
|
+
border-radius: 4px;
|
|
75
|
+
cursor: pointer;
|
|
76
|
+
transition: background-color 0.2s;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.ep-media-upload-btn:hover {
|
|
80
|
+
background-color: #1557b0;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.ep-media-upload-btn:focus {
|
|
84
|
+
outline: 2px solid #1a73e8;
|
|
85
|
+
outline-offset: 2px;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/* Toolbar icon: use the same currentColor, 18px proportions, and line weight
|
|
89
|
+
* as the surrounding Etherpad controls. */
|
|
90
|
+
.buttonicon-attachment {
|
|
91
|
+
width: 18px;
|
|
92
|
+
height: 18px;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.buttonicon-attachment::before {
|
|
96
|
+
content: "";
|
|
97
|
+
width: 18px;
|
|
98
|
+
height: 18px;
|
|
99
|
+
background-color: currentColor;
|
|
100
|
+
-webkit-mask: url('../images/upload-file-svgrepo-com.svg') center / contain no-repeat;
|
|
101
|
+
mask: url('../images/upload-file-svgrepo-com.svg') center / contain no-repeat;
|
|
102
|
+
}
|
|
@@ -1,2 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
<
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
|
2
|
+
<g fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2.25">
|
|
3
|
+
<path d="M3 7.5V5.8A2.3 2.3 0 0 1 5.3 3.5h4.1l2.2 2.3h7.1A2.3 2.3 0 0 1 21 8.1v10.1a2.3 2.3 0 0 1-2.3 2.3H5.3A2.3 2.3 0 0 1 3 18.2Z"/>
|
|
4
|
+
<path d="M12 17V10m0 0-3 3m3-3 3 3"/>
|
|
5
|
+
</g>
|
|
6
|
+
</svg>
|