Chamilo is a learning management system focused on ease of use and accessibility
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.
 
 
 
 
 
 
chamilo-lms/assets/vue/mixins/ShowMixin.js

104 lines
2.7 KiB

import isEmpty from 'lodash/isEmpty';
import NotificationMixin from './NotificationMixin';
import { formatDateTime } from '../utils/dates';
import {mapActions, mapGetters} from "vuex";
import toInteger from "lodash/toInteger";
export default {
mixins: [NotificationMixin],
created() {
console.log('show mixin created');
// Changed
let id = this.$route.params.id;
if (isEmpty(id)) {
id = this.$route.query.id;
}
let cid = toInteger(this.$route.query.cid);
let sid = toInteger(this.$route.query.sid);
let gid = toInteger(this.$route.query.gid);
id = decodeURIComponent(id);
const params = {id, cid, sid, gid};
this.retrieve(params);
//this.retrieve(decodeURIComponent(this.$route.params.id));
},
computed: {
item() {
console.log('show mixin computed');
// Changed
let id = this.$route.params.id;
if (isEmpty(id)) {
id = this.$route.query.id;
}
let item = this.find(decodeURIComponent(id));
if (isEmpty(item)) {
console.log('error item is empty');
let folderParams = this.$route.query;
delete folderParams['id'];
this.$router
.push(
{
name: `${this.$options.servicePrefix}List`,
query: folderParams
}
)
.catch(() => {});
}
return item;
//return this.find(decodeURIComponent(this.$route.params.id));
},
},
methods: {
list() {
console.log('show mixin list');
this.$router
.push({ name: `${this.$options.servicePrefix}List` })
.catch(() => {});
},
del() {
console.log('show mixin del');
this.deleteItem(this.item).then(() => {
let folderParams = this.$route.query;
folderParams['id'] = '';
//this.showMessage(`${this.item['@id']} deleted.`);
this.$router
.push(
{
name: `${this.$options.servicePrefix}List`,
query: folderParams
}
)
.catch(() => {});
});
},
formatDateTime,
editHandler() {
console.log('show mixin editHandler');
let folderParams = this.$route.query;
if (!isEmpty(this.item)) {
folderParams['id'] = this.item['@id'];
}
this.$router.push({
name: `${this.$options.servicePrefix}Update`,
params: { id: this.item['@id'] },
query: folderParams
});
},
},
watch: {
error(message) {
message && this.showError(message);
},
deleteError(message) {
message && this.showError(message);
}
},
beforeDestroy() {
this.reset();
}
};