You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
144 lines
3.2 KiB
144 lines
3.2 KiB
import NotificationMixin from './NotificationMixin';
|
|
import { formatDateTime } from '../utils/dates';
|
|
import isEmpty from "lodash/isEmpty";
|
|
|
|
export default {
|
|
mixins: [NotificationMixin],
|
|
data() {
|
|
return {
|
|
item: {},
|
|
};
|
|
},
|
|
created() {
|
|
// Changed
|
|
let id = this.$route.params.id;
|
|
if (isEmpty(id)) {
|
|
id = this.$route.query.id;
|
|
}
|
|
if (!isEmpty(id)) {
|
|
// Ajax call
|
|
this.retrieve(decodeURIComponent(id));
|
|
console.log(this.item);
|
|
}
|
|
},
|
|
beforeDestroy() {
|
|
this.reset();
|
|
},
|
|
computed: {
|
|
retrieved() {
|
|
// call from list
|
|
console.log('update mixin retrieved');
|
|
|
|
let id = this.$route.params.id;
|
|
console.log('first');
|
|
console.log(id);
|
|
if (isEmpty(id)) {
|
|
console.log('second');
|
|
id = this.$route.query.id;
|
|
console.log(id);
|
|
}
|
|
|
|
if (!isEmpty(id)) {
|
|
let item = this.find(decodeURIComponent(id));
|
|
|
|
if (isEmpty(item)) {
|
|
//this.retrieve(decodeURIComponent(id));
|
|
}
|
|
|
|
return item;
|
|
}
|
|
}
|
|
},
|
|
methods: {
|
|
del() {
|
|
console.log('mixin del');
|
|
console.log(this.item);
|
|
|
|
this.deleteItem(this.item).then(() => {
|
|
console.log('deleteItem resykt');
|
|
let folderParams = this.$route.query;
|
|
|
|
delete folderParams['id'];
|
|
delete folderParams['getFile'];
|
|
|
|
//this.showMessage(`${this.item['@id']} deleted.`);
|
|
this.$router
|
|
.push({
|
|
name: `${this.$options.servicePrefix}List`,
|
|
query: folderParams
|
|
})
|
|
.catch(() => {});
|
|
});
|
|
console.log('end mixin del()');
|
|
},
|
|
formatDateTime,
|
|
reset() {
|
|
this.$refs.updateForm.v$.$reset();
|
|
this.updateReset();
|
|
this.delReset();
|
|
this.createReset();
|
|
},
|
|
onSendForm() {
|
|
console.log('onSendForm');
|
|
const updateForm = this.$refs.updateForm;
|
|
updateForm.v$.$touch();
|
|
if (!updateForm.v$.$invalid) {
|
|
this.update(updateForm.v$.item.$model);
|
|
this.item = { ...this.retrieved };
|
|
}
|
|
},
|
|
onSendFormData() {
|
|
console.log('onSendForm');
|
|
const updateForm = this.$refs.updateForm;
|
|
updateForm.v$.$touch();
|
|
if (!updateForm.v$.$invalid) {
|
|
this.updateWithFormData(updateForm.v$.item.$model);
|
|
this.item = { ...this.retrieved };
|
|
}
|
|
},
|
|
resetForm() {
|
|
console.log('resetForm');
|
|
this.$refs.updateForm.v$.$reset();
|
|
this.item = { ...this.retrieved };
|
|
}
|
|
},
|
|
watch: {
|
|
deleted(deleted) {
|
|
console.log('deleted');
|
|
if (!deleted) {
|
|
return;
|
|
}
|
|
|
|
let folderParams = this.$route.query;
|
|
this.$router
|
|
.push({
|
|
name: `${this.$options.servicePrefix}List`,
|
|
query: folderParams
|
|
})
|
|
.catch(() => {});
|
|
},
|
|
|
|
error(message) {
|
|
console.log('error');
|
|
message && this.showError(message);
|
|
},
|
|
|
|
deleteError(message) {
|
|
console.log('deleteError');
|
|
message && this.showError(message);
|
|
},
|
|
|
|
updated(val) {
|
|
console.log('updated');
|
|
//this.showMessage(`${val['@id']} updated.`);
|
|
this.$router.go(-1);
|
|
},
|
|
|
|
retrieved(val) {
|
|
console.log('retrieved(val)');
|
|
if (!isEmpty(val)) {
|
|
this.item = {...val};
|
|
}
|
|
}
|
|
}
|
|
};
|
|
|