Documents: Add input title and fix notifications errors - refs BT#21236

pull/5006/head
christian 2 years ago
parent 9633b45168
commit dabfe7820b
  1. 7
      assets/vue/components/documents/FormNewDocument.vue
  2. 10
      assets/vue/mixins/CreateMixin.js
  3. 113
      assets/vue/mixins/NotificationMixin.js

@ -1,14 +1,17 @@
<template> <template>
<q-form> <q-form>
<q-input
<div class="p-field">
<InputText
id="item_title" id="item_title"
v-model="item.title" v-model.trim="item.title"
:error="v$.item.title.$error" :error="v$.item.title.$error"
:error-message="titleErrors" :error-message="titleErrors"
:placeholder="$t('Title')" :placeholder="$t('Title')"
@blur="v$.item.title.$touch()" @blur="v$.item.title.$touch()"
@input="v$.item.title.$touch()" @input="v$.item.title.$touch()"
/> />
</div>
<TinyEditor <TinyEditor
v-if=" v-if="

@ -8,12 +8,18 @@ export default {
methods: { methods: {
formatDateTime, formatDateTime,
onCreated(item) { onCreated(item) {
let message;
if (item['resourceNode']) { if (item['resourceNode']) {
this.showMessage(this.$i18n.t('{resource} created', {'resource': item['resourceNode'].title})); message = this.$i18n && this.$i18n.t
? this.$i18n.t('{resource} created', {'resource': item['resourceNode'].title})
: `${item['resourceNode'].title} created`;
} else { } else {
this.showMessage(this.$i18n.t('{resource} created', {'resource': item.title})); message = this.$i18n && this.$i18n.t
? this.$i18n.t('{resource} created', {'resource': item.title})
: `${item.title} created`;
} }
this.showMessage(message);
let folderParams = this.$route.query; let folderParams = this.$route.query;
this.$router.push({ this.$router.push({

@ -1,105 +1,28 @@
import {mapFields} from 'vuex-map-fields'; import { mapFields } from 'vuex-map-fields';
import Snackbar from "../components/Snackbar.vue";
//import { useToast } from "vue-toastification";
// inside of a Vue file
//import { useQuasar } from 'quasar'
export default { export default {
setup() {
},
computed: {
...mapFields('notifications', ['color', 'show', 'subText', 'text', 'timeout'])
},
methods: { methods: {
cleanState() {
/*setTimeout(() => {
this.show = false;
}, this.timeout
);*/
},
showError(error) { showError(error) {
this.showMessage(error, 'danger'); this.showMessage(error, 'error'); // Use 'error' for PrimeVue
}, },
showMessage(message, type = 'success') { showMessage(message, type = 'success') {
/*const content = { // Convert message type to PrimeVue's severity
// Your component or JSX template let severity = type;
component: Snackbar, if (type === 'danger') {
// Props are just regular props, but these won't be reactive severity = 'error'; // PrimeVue uses 'error' instead of 'danger'
props: {
message: message
},
// Listeners will listen to and execute on event emission
listeners: {
//click: () => console.log("Clicked!"),
//myEvent: myEventHandler
}
};*/
let color = 'primary';
let icon = 'info';
switch (type) {
case 'info':
break;
case 'success':
color = 'green';
break;
case 'error':
case 'danger':
color = 'red';
icon: 'error';
break;
case 'warning':
color = 'yellow';
break;
} }
if ('danger' === type) {
type = 'error';
}
this.$q.notify({
position: 'top',
timeout: 10000,
message: message,
color: color,
html: true,
multiLine: true,
})
/*const toast = useToast();
console.log('toast');
console.log(message);
console.log(content);
toast(content, { // Use PrimeVue's ToastService
type: type, this.$toast.add({
position: 'top-center', severity: severity,
timeout: 10000, // 10 seconds summary: message,
closeOnClick: false, detail: '',
pauseOnFocusLoss: true, life: 5000, // Message duration in milliseconds
pauseOnHover: true, closable: true, // Whether the message can be closed manually
draggable: true, });
draggablePercent: 0.6,
showCloseButtonOnHover: false,
hideProgressBar: true,
closeButton: "button",
icon: true,
rtl: false
});*/
/*this.show = true;
this.color = color;
if (typeof message === 'string') {
this.text = message;
this.cleanState();
return;
}
this.text = message.message;
if (message.response) this.subText = message.response.data.message;
this.cleanState();*/
}
} }
},
computed: {
...mapFields('notifications', ['color', 'show', 'subText', 'text', 'timeout'])
},
}; };

Loading…
Cancel
Save