diff --git a/package-lock.json b/package-lock.json
index 8710629..d99f847 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -11,6 +11,7 @@
"axios": "^0.24.0",
"core-js": "^3.6.5",
"vue": "^3.0.0",
+ "vue-advanced-cropper": "^2.8.0",
"vue-meta": "^3.0.0-alpha.8",
"vue-router": "^4.0.0-0",
"vuedraggable": "^4.1.0",
@@ -4354,6 +4355,11 @@
"node": ">=0.10.0"
}
},
+ "node_modules/classnames": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz",
+ "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA=="
+ },
"node_modules/clean-css": {
"version": "4.2.4",
"resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz",
@@ -5581,6 +5587,11 @@
"date-fns": ">=2.0.0"
}
},
+ "node_modules/debounce": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz",
+ "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug=="
+ },
"node_modules/debug": {
"version": "4.3.3",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
@@ -6171,6 +6182,11 @@
"stream-shift": "^1.0.0"
}
},
+ "node_modules/easy-bem": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/easy-bem/-/easy-bem-1.1.1.tgz",
+ "integrity": "sha512-GJRqdiy2h+EXy6a8E6R+ubmqUM08BK0FWNq41k24fup6045biQ8NXxoXimiwegMQvFFV3t1emADdGNL1TlS61A=="
+ },
"node_modules/easy-stack": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/easy-stack/-/easy-stack-1.0.1.tgz",
@@ -14729,6 +14745,23 @@
"@vue/shared": "3.2.26"
}
},
+ "node_modules/vue-advanced-cropper": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/vue-advanced-cropper/-/vue-advanced-cropper-2.8.0.tgz",
+ "integrity": "sha512-whia8uYhAgxBnW8HtP5FVrNJqRkpzkje5OmyDKKipQRWfsHd9At0Sk6+0RBkKBI5x59Xin7b9AsuXuweCTQNXg==",
+ "dependencies": {
+ "classnames": "^2.2.6",
+ "debounce": "^1.2.0",
+ "easy-bem": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=8",
+ "npm": ">=5"
+ },
+ "peerDependencies": {
+ "vue": "^3.0.0"
+ }
+ },
"node_modules/vue-eslint-parser": {
"version": "8.0.1",
"resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-8.0.1.tgz",
@@ -19544,6 +19577,11 @@
}
}
},
+ "classnames": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz",
+ "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA=="
+ },
"clean-css": {
"version": "4.2.4",
"resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz",
@@ -20530,6 +20568,11 @@
"dev": true,
"requires": {}
},
+ "debounce": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz",
+ "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug=="
+ },
"debug": {
"version": "4.3.3",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
@@ -20996,6 +21039,11 @@
"stream-shift": "^1.0.0"
}
},
+ "easy-bem": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/easy-bem/-/easy-bem-1.1.1.tgz",
+ "integrity": "sha512-GJRqdiy2h+EXy6a8E6R+ubmqUM08BK0FWNq41k24fup6045biQ8NXxoXimiwegMQvFFV3t1emADdGNL1TlS61A=="
+ },
"easy-stack": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/easy-stack/-/easy-stack-1.0.1.tgz",
@@ -27874,6 +27922,16 @@
"@vue/shared": "3.2.26"
}
},
+ "vue-advanced-cropper": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/vue-advanced-cropper/-/vue-advanced-cropper-2.8.0.tgz",
+ "integrity": "sha512-whia8uYhAgxBnW8HtP5FVrNJqRkpzkje5OmyDKKipQRWfsHd9At0Sk6+0RBkKBI5x59Xin7b9AsuXuweCTQNXg==",
+ "requires": {
+ "classnames": "^2.2.6",
+ "debounce": "^1.2.0",
+ "easy-bem": "^1.0.2"
+ }
+ },
"vue-eslint-parser": {
"version": "8.0.1",
"resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-8.0.1.tgz",
diff --git a/package.json b/package.json
index 704be44..3b80aee 100644
--- a/package.json
+++ b/package.json
@@ -11,6 +11,7 @@
"axios": "^0.24.0",
"core-js": "^3.6.5",
"vue": "^3.0.0",
+ "vue-advanced-cropper": "^2.8.0",
"vue-meta": "^3.0.0-alpha.8",
"vue-router": "^4.0.0-0",
"vuedraggable": "^4.1.0",
diff --git a/src/api/index.js b/src/api/index.js
index d4cefef..523120b 100644
--- a/src/api/index.js
+++ b/src/api/index.js
@@ -84,4 +84,8 @@ export function addNewPhoto(original_image, cropped_image=null, group_id=null, o
export function updatePhoto(photo) {
return apiClient.put('/updatephoto/'+photo.id+'/', photo)
+}
+
+export function deletePhoto(id) {
+ return apiClient.delete('/deletephoto/'+id+'/')
}
\ No newline at end of file
diff --git a/src/components/PhotoCropper.vue b/src/components/PhotoCropper.vue
new file mode 100644
index 0000000..d251701
--- /dev/null
+++ b/src/components/PhotoCropper.vue
@@ -0,0 +1,51 @@
+
+
No Photo Groups
+