pleroma-fe/src/components/image_cropper/image_cropper.vue

87 lines
1.7 KiB
Vue
Raw Normal View History

2019-02-07 09:05:59 +01:00
<template>
<div class="image-cropper">
2019-02-09 03:59:33 +01:00
<div v-if="dataUrl">
<div class="image-cropper-image-container">
2019-07-05 09:17:44 +02:00
<img
ref="img"
:src="dataUrl"
alt=""
@load.stop="createCropper"
>
2019-02-07 09:05:59 +01:00
</div>
2019-02-09 03:59:33 +01:00
<div class="image-cropper-buttons-wrapper">
2019-07-05 09:17:44 +02:00
<button
class="button-default btn"
2019-07-05 09:17:44 +02:00
type="button"
:disabled="submitting"
@click="submit()"
v-text="saveText"
/>
<button
class="button-default btn"
2019-07-05 09:17:44 +02:00
type="button"
:disabled="submitting"
@click="destroy"
v-text="cancelText"
/>
<button
class="button-default btn"
2019-07-05 09:17:44 +02:00
type="button"
:disabled="submitting"
@click="submit(false)"
v-text="saveWithoutCroppingText"
/>
2020-10-20 23:01:28 +02:00
<FAIcon
2019-07-05 09:17:44 +02:00
v-if="submitting"
2020-10-20 23:01:28 +02:00
spin
icon="circle-notch"
2019-07-05 09:17:44 +02:00
/>
2019-02-07 09:05:59 +01:00
</div>
2019-07-05 09:17:44 +02:00
<div
v-if="submitError"
class="alert error"
>
{{ submitErrorMsg }}
2020-10-20 20:18:23 +02:00
<FAIcon
class="fa-scale-110 fa-old-padding"
2020-10-20 23:31:16 +02:00
icon="times"
2019-07-05 09:17:44 +02:00
@click="clearError"
/>
2019-02-09 03:59:33 +01:00
</div>
</div>
2019-07-05 09:17:44 +02:00
<input
ref="input"
type="file"
class="image-cropper-img-input"
:accept="mimes"
>
2019-02-07 09:05:59 +01:00
</div>
</template>
<script src="./image_cropper.js"></script>
<style lang="scss">
.image-cropper {
&-img-input {
display: none;
}
&-image-container {
position: relative;
img {
display: block;
max-width: 100%;
}
}
2019-02-09 03:59:33 +01:00
&-buttons-wrapper {
2019-03-19 02:19:42 +01:00
margin-top: 10px;
button {
margin-top: 5px;
}
2019-02-07 09:05:59 +01:00
}
}
</style>