Internal: Improve loading courseHome page - refs BT#21784

pull/5589/head
christianbeeznst 1 year ago
parent 60cd1e4d31
commit 1da244f5d6
  1. 12
      assets/vue/router/index.js
  2. 2
      assets/vue/services/sessionService.js
  3. 4
      assets/vue/store/cidReq.js
  4. 17
      src/CoreBundle/Entity/Session.php

@ -196,14 +196,12 @@ router.beforeResolve(async (to) => {
if ("CourseHome" === to.name) {
cid = parseInt(to.params?.id ?? 0)
const useBasic = true
await cidReqStore.setCourseAndSessionById(cid, sid, useBasic)
}
if (cid) {
await cidReqStore.setCourseAndSessionById(cid, sid)
} else {
if (cid) {
await cidReqStore.setCourseAndSessionById(cid, sid)
} else {
cidReqStore.resetCid()
}
cidReqStore.resetCid()
}
})

@ -17,7 +17,7 @@ export default {
* @returns {Promise<Object>}
*/
async find(iri, useBasic = false) {
const endpoint = useBasic ? `${iri}/basic` : iri
const endpoint = iri
const groups = useBasic ? ['session:basic'] : ['session:read']
const { data } = await api.get(endpoint, {
params: {

@ -78,7 +78,7 @@ export const useCidReqStore = defineStore("cidReq", () => {
}
}
const setSessionByIri = async (sId, useBasic = false) => {
const setSessionByIri = async (sId, useBasic = true) => {
const sessionIri = `/api/sessions/${sId}`
if (session.value && sessionIri === session.value["@id"]) {
@ -92,7 +92,7 @@ export const useCidReqStore = defineStore("cidReq", () => {
}
}
const setCourseAndSessionById = (cId, sId = undefined, useBasic = false) => {
const setCourseAndSessionById = (cId, sId = undefined, useBasic = true) => {
if (!cId) {
return Promise.resolve()
}

@ -6,6 +6,7 @@ declare(strict_types=1);
namespace Chamilo\CoreBundle\Entity;
use ApiPlatform\Core\Serializer\Filter\GroupFilter;
use ApiPlatform\Doctrine\Orm\Filter\OrderFilter;
use ApiPlatform\Doctrine\Orm\Filter\SearchFilter;
use ApiPlatform\Metadata\ApiFilter;
@ -33,17 +34,10 @@ use Symfony\Component\Validator\Constraints as Assert;
#[ApiResource(
operations: [
new Get(
uriTemplate: '/sessions/{id}/basic',
normalizationContext: [
'groups' => ['session:basic'],
],
security: "is_granted('ROLE_ADMIN') or is_granted('VIEW', object)"
),
new Get(
uriTemplate: '/sessions/{id}',
normalizationContext: [
'groups' => ['session:read', 'session:item:read'],
'groups' => ['session:basic'],
],
security: "is_granted('ROLE_ADMIN') or is_granted('VIEW', object)"
),
@ -112,9 +106,10 @@ use Symfony\Component\Validator\Constraints as Assert;
#[ORM\EntityListeners([SessionListener::class])]
#[ORM\Entity(repositoryClass: SessionRepository::class)]
#[UniqueEntity('title')]
#[ApiFilter(filterClass: SearchFilter::class, properties: ['title' => 'partial'])]
#[ApiFilter(filterClass: PropertyFilter::class)]
#[ApiFilter(filterClass: OrderFilter::class, properties: ['id', 'title'])]
#[ApiFilter(SearchFilter::class, properties: ['title' => 'partial'])]
#[ApiFilter(PropertyFilter::class)]
#[ApiFilter(OrderFilter::class, properties: ['id', 'title'])]
#[ApiFilter(GroupFilter::class, arguments: ['parameterName' => 'groups'])]
class Session implements ResourceWithAccessUrlInterface, Stringable
{
public const READ_ONLY = 1;

Loading…
Cancel
Save