Minor: Format code

pull/5202/head
Angel Fernando Quiroz Campos 2 years ago
parent 986821f8cb
commit 1aa527866e
  1. 203
      assets/vue/components/resource_links/EditLinks.vue
  2. 2
      assets/vue/views/documents/Update.vue
  3. 97
      assets/vue/views/documents/UpdateFile.vue
  4. 2
      assets/vue/views/message/Update.vue
  5. 9
      assets/vue/views/personalfile/Update.vue

@ -13,11 +13,11 @@
:loading="isLoading" :loading="isLoading"
:multiple="true" :multiple="true"
:options="users" :options="users"
:placeholder="$t('Share with User')"
:searchable="true" :searchable="true"
label="username" label="username"
limit="3" limit="3"
limit-text="3" limit-text="3"
:placeholder="$t('Share with User')"
track-by="id" track-by="id"
@select="addUser" @select="addUser"
@search-change="asyncFind" @search-change="asyncFind"
@ -26,188 +26,185 @@
</template> </template>
<script> <script>
import ShowLinks from "../../components/resource_links/ShowLinks.vue"
import ShowLinks from "../../components/resource_links/ShowLinks.vue"; import { computed, ref, toRefs } from "vue"
import {computed, ref, toRefs} from "vue"; import axios from "axios"
import axios from "axios"; import { ENTRYPOINT } from "../../config/entrypoint"
import {ENTRYPOINT} from "../../config/entrypoint"; import useVuelidate from "@vuelidate/core"
import useVuelidate from "@vuelidate/core"; import VueMultiselect from "vue-multiselect"
import VueMultiselect from 'vue-multiselect' import isEmpty from "lodash/isEmpty"
import isEmpty from 'lodash/isEmpty'; import { mapGetters, useStore } from "vuex"
import {mapGetters, useStore} from "vuex"; import { RESOURCE_LINK_PUBLISHED } from "./visibility.js"
import {RESOURCE_LINK_PUBLISHED} from "./visibility.js";
export default { export default {
name: 'EditLinks', name: "EditLinks",
components: { components: {
VueMultiselect, VueMultiselect,
ShowLinks ShowLinks,
}, },
props: { props: {
item: { item: {
type: Object, type: Object,
required: true required: true,
}, },
editStatus: { editStatus: {
type: Boolean, type: Boolean,
required: false, required: false,
default: true default: true,
}, },
showStatus: { showStatus: {
type: Boolean, type: Boolean,
required: false, required: false,
default: true default: true,
}, },
linksType: { linksType: {
type: String, type: String,
required: true, required: true,
default: 'user' default: "user",
}, },
showShareWithUser: { showShareWithUser: {
type: Boolean, type: Boolean,
required: true, required: true,
default: true default: true,
} },
}, },
setup(props) { setup(props) {
const users = ref([]); const users = ref([])
const selectedUsers = ref([]); const selectedUsers = ref([])
const isLoading = ref(false); const isLoading = ref(false)
const store = useStore(); const store = useStore()
const { showShareWithUser } = toRefs(props); const { showShareWithUser } = toRefs(props)
function addUser(userResult) { function addUser(userResult) {
if (isEmpty(props.item.resourceLinkListFromEntity)) { if (isEmpty(props.item.resourceLinkListFromEntity)) {
props.item.resourceLinkListFromEntity = []; props.item.resourceLinkListFromEntity = []
} }
const someLink = props.item.resourceLinkListFromEntity.some(link => link.user.username === userResult.username); const someLink = props.item.resourceLinkListFromEntity.some((link) => link.user.username === userResult.username)
if (someLink) { if (someLink) {
return; return
} }
props.item.resourceLinkListFromEntity.push( props.item.resourceLinkListFromEntity.push({
{ uid: userResult.id,
uid: userResult.id, user: { username: userResult.username },
user: {username: userResult.username}, visibility: RESOURCE_LINK_PUBLISHED,
visibility: RESOURCE_LINK_PUBLISHED })
}
);
} }
function findUsers(query) { function findUsers(query) {
axios axios
.get(ENTRYPOINT + 'users', { .get(ENTRYPOINT + "users", {
params: { params: {
username: query username: query,
} },
}) })
.then(response => { .then((response) => {
isLoading.value = false; isLoading.value = false
let data = response.data; let data = response.data
users.value = data['hydra:member']; users.value = data["hydra:member"]
}) })
.catch(function (error) { .catch(function (error) {
isLoading.value = false; isLoading.value = false
console.log(error); console.log(error)
}); })
} }
function findUserRelUsers(query) { function findUserRelUsers(query) {
const currentUser = computed(() => store.getters['security/getUser']); const currentUser = computed(() => store.getters["security/getUser"])
axios axios
.get(ENTRYPOINT + 'user_rel_users', { .get(ENTRYPOINT + "user_rel_users", {
params: { params: {
user: currentUser.value['id'], user: currentUser.value["id"],
'friend.username': query "friend.username": query,
} },
}) })
.then(response => { .then((response) => {
isLoading.value = false; isLoading.value = false
users.value = response.data['hydra:member'].map(member => member.friend); users.value = response.data["hydra:member"].map((member) => member.friend)
}) })
.catch(function (error) { .catch(function () {
isLoading.value = false; isLoading.value = false
}); })
} }
function findStudentsInCourse(query) { function findStudentsInCourse(query) {
const searchParams = new URLSearchParams(window.location.search); const searchParams = new URLSearchParams(window.location.search)
const cId = parseInt(searchParams.get('cid')); const cId = parseInt(searchParams.get("cid"))
const sId = parseInt(searchParams.get('sid')); const sId = parseInt(searchParams.get("sid"))
if (!cId && !sId) { if (!cId && !sId) {
return; return
} }
let endpoint = ENTRYPOINT; let endpoint = ENTRYPOINT
let params = { let params = {
'user.username': query, "user.username": query,
}; }
if (sId) { if (sId) {
params.session = endpoint + `sessions/${sId}`; params.session = endpoint + `sessions/${sId}`
} }
if (cId) { if (cId) {
if (sId) { if (sId) {
endpoint += `session_rel_course_rel_users`; endpoint += `session_rel_course_rel_users`
params.course = endpoint + `courses/${cId}`; params.course = endpoint + `courses/${cId}`
} else { } else {
endpoint += `courses/${cId}/users`; endpoint += `courses/${cId}/users`
} }
} else { } else {
endpoint += `session_rel_users`; endpoint += `session_rel_users`
} }
axios axios
.get(endpoint, { .get(endpoint, {
params params,
}) })
.then(response => { .then((response) => {
isLoading.value = false; isLoading.value = false
users.value = response.data['hydra:member'].map(member => member.user); users.value = response.data["hydra:member"].map((member) => member.user)
}) })
.catch(function (error) { .catch(function () {
isLoading.value = false; isLoading.value = false
}); })
} }
function asyncFind(query) { function asyncFind(query) {
if (query.toString().length < 3) { if (query.toString().length < 3) {
return; return
} }
isLoading.value = true; isLoading.value = true
switch (props.linksType) { switch (props.linksType) {
case 'users': case "users":
findUsers(query); findUsers(query)
break; break
case 'user_rel_users': case "user_rel_users":
findUserRelUsers(query); findUserRelUsers(query)
break; break
case 'course_students': case "course_students":
findStudentsInCourse(query); findStudentsInCourse(query)
break; break
} }
} }
return {v$: useVuelidate(), users, selectedUsers, asyncFind, addUser, isLoading, showShareWithUser}; return { v$: useVuelidate(), users, selectedUsers, asyncFind, addUser, isLoading, showShareWithUser }
}, },
computed: { computed: {
...mapGetters({ ...mapGetters({
'isAuthenticated': 'security/isAuthenticated', isAuthenticated: "security/isAuthenticated",
'currentUser': 'security/getUser', currentUser: "security/getUser",
}) }),
} },
}; }
</script> </script>
<style src="vue-multiselect/dist/vue-multiselect.css"></style> <style src="vue-multiselect/dist/vue-multiselect.css"></style>

@ -30,4 +30,4 @@ const isCurrentTeacher = computed(() => store.getters["security/isCurrentTeacher
const { item, retrieve, updateItemWithFormData, isLoading } = useDatatableUpdate("Documents") const { item, retrieve, updateItemWithFormData, isLoading } = useDatatableUpdate("Documents")
retrieve() retrieve()
</script> </script>

@ -2,9 +2,9 @@
<div v-if="!isLoading && item && isCurrentTeacher"> <div v-if="!isLoading && item && isCurrentTeacher">
<!-- :handle-delete="del"--> <!-- :handle-delete="del"-->
<Toolbar <Toolbar
:handle-back="handleBack"
:handle-reset="resetForm" :handle-reset="resetForm"
:handle-submit="onSendFormData" :handle-submit="onSendFormData"
:handle-back="handleBack"
/> />
<div class="documents-layout"> <div class="documents-layout">
<div class="template-list-container"> <div class="template-list-container">
@ -26,8 +26,12 @@
/> />
</DocumentsForm> </DocumentsForm>
<Panel <Panel
v-if="$route.query.filetype === 'certificate' " v-if="$route.query.filetype === 'certificate'"
:header="$t('Create your certificate copy-pasting the following tags. They will be replaced in the document by their student-specific value:')" :header="
$t(
'Create your certificate copy-pasting the following tags. They will be replaced in the document by their student-specific value:',
)
"
> >
<div v-html="finalTags" /> <div v-html="finalTags" />
</Panel> </Panel>
@ -47,7 +51,7 @@ import Toolbar from "../../components/Toolbar.vue"
import UpdateMixin from "../../mixins/UpdateMixin" import UpdateMixin from "../../mixins/UpdateMixin"
import EditLinks from "../../components/resource_links/EditLinks.vue" import EditLinks from "../../components/resource_links/EditLinks.vue"
import TemplateList from "../../components/documents/TemplateList.vue" import TemplateList from "../../components/documents/TemplateList.vue"
import axios from "axios"; import axios from "axios"
const servicePrefix = "Documents" const servicePrefix = "Documents"
@ -61,14 +65,14 @@ export default {
Toolbar, Toolbar,
DocumentsForm, DocumentsForm,
}, },
mixins: [UpdateMixin],
data() { data() {
const finalTags = this.getCertificateTags(); const finalTags = this.getCertificateTags()
return { return {
templates: [], templates: [],
finalTags, finalTags,
}; }
}, },
mixins: [UpdateMixin],
computed: { computed: {
...mapFields("documents", { ...mapFields("documents", {
deleteLoading: "isLoading", deleteLoading: "isLoading",
@ -84,55 +88,56 @@ export default {
}, },
methods: { methods: {
handleBack() { handleBack() {
this.$router.back(); this.$router.back()
}, },
fetchTemplates() { fetchTemplates() {
const cid = this.$route.query.cid; const cid = this.$route.query.cid
axios.get(`/template/all-templates/${cid}`) axios
.then(response => { .get(`/template/all-templates/${cid}`)
this.templates = response.data; .then((response) => {
console.log('Templates fetched successfully:', this.templates); this.templates = response.data
console.log("Templates fetched successfully:", this.templates)
})
.catch((error) => {
console.error("Error fetching the templates:", error)
}) })
.catch(error => {
console.error('Error fetching the templates:', error);
});
}, },
addTemplateToEditor(templateContent) { addTemplateToEditor(templateContent) {
if (this.$refs.updateForm && typeof this.$refs.updateForm.updateContent === 'function') { if (this.$refs.updateForm && typeof this.$refs.updateForm.updateContent === "function") {
this.$refs.updateForm.updateContent(templateContent); this.$refs.updateForm.updateContent(templateContent)
} }
}, },
getCertificateTags(){ getCertificateTags() {
let finalTags = ""; let finalTags = ""
let tags = [ let tags = [
'((user_firstname))', "((user_firstname))",
'((user_lastname))', "((user_lastname))",
'((user_username))', "((user_username))",
'((gradebook_institution))', "((gradebook_institution))",
'((gradebook_sitename))', "((gradebook_sitename))",
'((teacher_firstname))', "((teacher_firstname))",
'((teacher_lastname))', "((teacher_lastname))",
'((official_code))', "((official_code))",
'((date_certificate))', "((date_certificate))",
'((date_certificate_no_time))', "((date_certificate_no_time))",
'((course_code))', "((course_code))",
'((course_title))', "((course_title))",
'((gradebook_grade))', "((gradebook_grade))",
'((certificate_link))', "((certificate_link))",
'((certificate_link_html))', "((certificate_link_html))",
'((certificate_barcode))', "((certificate_barcode))",
'((external_style))', "((external_style))",
'((time_in_course))', "((time_in_course))",
'((time_in_course_in_all_sessions))', "((time_in_course_in_all_sessions))",
'((start_date_and_end_date))', "((start_date_and_end_date))",
'((course_objectives))', "((course_objectives))",
]; ]
for (const tag of tags){ for (const tag of tags) {
finalTags += "<p class=\"m-0\">"+tag+"</p>" finalTags += '<p class="m-0">' + tag + "</p>"
} }
return finalTags; return finalTags
}, },
...mapActions("documents", { ...mapActions("documents", {
createReset: "resetCreate", createReset: "resetCreate",
@ -144,7 +149,7 @@ export default {
}), }),
}, },
mounted() { mounted() {
this.fetchTemplates(); this.fetchTemplates()
}, },
} }
</script> </script>

@ -64,4 +64,4 @@ export default {
}), }),
}, },
} }
</script> </script>

@ -1,5 +1,10 @@
<template> <template>
<Button :label="$t('Back')" icon="pi pi-chevron-left" @click="goBack" class="mb-4" /> <Button
:label="$t('Back')"
class="mb-4"
icon="pi pi-chevron-left"
@click="goBack"
/>
<div v-if="!isLoading && item"> <div v-if="!isLoading && item">
<!-- :handle-delete="del"--> <!-- :handle-delete="del"-->
<Toolbar <Toolbar
@ -53,7 +58,7 @@ export default {
}, },
methods: { methods: {
goBack() { goBack() {
this.$router.go(-1); this.$router.go(-1)
}, },
...mapActions("personalfile", { ...mapActions("personalfile", {
createReset: "resetCreate", createReset: "resetCreate",

Loading…
Cancel
Save