Compare commits
	
		
			3 Commits
		
	
	
		
			14c5423328
			...
			a168d41aee
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| a168d41aee | |||
| 3f4f6ed49a | |||
| fed567e9ab | 
@ -52,6 +52,7 @@ public class ApplicationsController {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        //if unAuthed
 | 
					        //if unAuthed
 | 
				
			||||||
        authorizedApps.add(Applications.Login);
 | 
					        authorizedApps.add(Applications.Login);
 | 
				
			||||||
 | 
					        authorizedApps.add(Applications.ListResearches);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		User user = authServ.getUserFromToken(token);
 | 
							User user = authServ.getUserFromToken(token);
 | 
				
			||||||
		if(user == null)
 | 
							if(user == null)
 | 
				
			||||||
 | 
				
			|||||||
@ -21,5 +21,7 @@ public enum Applications {
 | 
				
			|||||||
    // profile of a researcher
 | 
					    // profile of a researcher
 | 
				
			||||||
    ResearcherProfile,
 | 
					    ResearcherProfile,
 | 
				
			||||||
    ManageResearcherProfile,
 | 
					    ManageResearcherProfile,
 | 
				
			||||||
    StudentsList
 | 
					
 | 
				
			||||||
 | 
					    //the list of all researches (filterable)
 | 
				
			||||||
 | 
					    ListResearches, StudentsList
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -29,6 +29,7 @@ app.manage.profile=Manage profile
 | 
				
			|||||||
app.studentList=Students List
 | 
					app.studentList=Students List
 | 
				
			||||||
app.users=Users
 | 
					app.users=Users
 | 
				
			||||||
app.manage.researcherProfile=Manage researcher profile
 | 
					app.manage.researcherProfile=Manage researcher profile
 | 
				
			||||||
 | 
					app.list.researches=List researches
 | 
				
			||||||
request.moreInfos=More Infos
 | 
					request.moreInfos=More Infos
 | 
				
			||||||
request.accept=Accept
 | 
					request.accept=Accept
 | 
				
			||||||
request.refuse=Refuse
 | 
					request.refuse=Refuse
 | 
				
			||||||
 | 
				
			|||||||
@ -29,6 +29,7 @@ app.manage.profile=Gérer le profil
 | 
				
			|||||||
app.studentList=Liste des étudiants
 | 
					app.studentList=Liste des étudiants
 | 
				
			||||||
app.users=Utilisateurs
 | 
					app.users=Utilisateurs
 | 
				
			||||||
app.manage.researcherProfile= gérer son profil de chercheur
 | 
					app.manage.researcherProfile= gérer son profil de chercheur
 | 
				
			||||||
 | 
					app.list.researches=Lister les recherches
 | 
				
			||||||
request.moreInfos=Plus d'Infos
 | 
					request.moreInfos=Plus d'Infos
 | 
				
			||||||
request.accept=Accepter
 | 
					request.accept=Accepter
 | 
				
			||||||
request.refuse=Refuser
 | 
					request.refuse=Refuser
 | 
				
			||||||
 | 
				
			|||||||
@ -165,7 +165,7 @@ window.addEventListener('hashchange', () => {
 | 
				
			|||||||
		border-color:black;
 | 
							border-color:black;
 | 
				
			||||||
		height: 100%;
 | 
							height: 100%;
 | 
				
			||||||
		position: fixed;
 | 
							position: fixed;
 | 
				
			||||||
		overflow:;
 | 
							overflow: scroll;
 | 
				
			||||||
		transition-duration: .3s;
 | 
							transition-duration: .3s;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -1,8 +1,90 @@
 | 
				
			|||||||
<script setup>
 | 
					<script setup>
 | 
				
			||||||
 | 
					import { ref} from "vue";
 | 
				
			||||||
import FilterComponent from "@/Apps/ScientificPublications/FilterComponent.vue";
 | 
					import FilterComponent from "@/Apps/ScientificPublications/FilterComponent.vue";
 | 
				
			||||||
import ArticleComponent from "@/Apps/ScientificPublications/ResearchComponent.vue";
 | 
					import ArticleComponent from "@/Apps/ScientificPublications/ResearchComponent.vue";
 | 
				
			||||||
 | 
					import {getFile, fetchAllResearches, addView} from "@/rest/ScientificPublications/ManageResearch.js";
 | 
				
			||||||
 | 
					import {fetchResearch} from "@/rest/ScientificPublications/ResearcherProfile.js";
 | 
				
			||||||
 | 
					const input = ref("")
 | 
				
			||||||
 | 
					const isFilterOpened = ref(false);
 | 
				
			||||||
 | 
					const isResearchOpened = ref(false);
 | 
				
			||||||
 | 
					const articleToDisplay = ref(Object)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const researchList = ref(await fetchAllResearches());
 | 
				
			||||||
 | 
					const isResearcher = ref(false)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const props = defineProps({
 | 
				
			||||||
 | 
					  filters: ref([""]),
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const openFilter = () => {
 | 
				
			||||||
 | 
					  isFilterOpened.value = true;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					const closeFilter = () => {
 | 
				
			||||||
 | 
					  isFilterOpened.value = false;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					const submitFilters = ()=>{
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					const openResearch = (article) => {
 | 
				
			||||||
 | 
					  isResearchOpened.value = true;
 | 
				
			||||||
 | 
					  articleToDisplay.value = article;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const closeResearch = () => {
 | 
				
			||||||
 | 
					  isResearchOpened.value =false;
 | 
				
			||||||
 | 
					  articleToDisplay.value = null;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const downloadBibTex = (research) => {
 | 
				
			||||||
 | 
					  getFile(research.bibTexLocation)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					async function downloadArticle (research){
 | 
				
			||||||
 | 
					  await addView(research.pdfLocation)
 | 
				
			||||||
 | 
					  await getFile(research.pdfLocation)
 | 
				
			||||||
 | 
					  articleToDisplay.value = await fetchResearch(articleToDisplay.value.id)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function downloadCoAuthors(){
 | 
				
			||||||
 | 
					  //todo
 | 
				
			||||||
 | 
					  const data = JSON.stringify(researcher.value);
 | 
				
			||||||
 | 
					  const blob = new Blob([data], {type:"application/json"});
 | 
				
			||||||
 | 
					  return URL.createObjectURL(blob);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function searchInList(list, searchInput) {
 | 
				
			||||||
 | 
					  let retList = []
 | 
				
			||||||
 | 
					  for (let i = 0; i < list.length; i++) {
 | 
				
			||||||
 | 
					    let researcher = list[i].researcher.user.firstName + " " +list[i].researcher.user.lastName
 | 
				
			||||||
 | 
					    if (isResearcher.value && (lDistance(researcher, searchInput) < 5 || researcher.toUpperCase().indexOf(searchInput.toUpperCase()) > -1)){
 | 
				
			||||||
 | 
					      retList.push(list[i])
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    if (!isResearcher.value && (lDistance(list[i].title, searchInput) < 10 || list[i].title.toUpperCase().indexOf(searchInput.toUpperCase()) > -1)){
 | 
				
			||||||
 | 
					      retList.push(list[i])
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  return retList
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function lDistance(s,t){
 | 
				
			||||||
 | 
					  if (!s.length) return t.length;
 | 
				
			||||||
 | 
					  if (!t.length) return s.length;
 | 
				
			||||||
 | 
					  const arr = [];
 | 
				
			||||||
 | 
					  for (let i = 0; i <= t.length; i++) {
 | 
				
			||||||
 | 
					    arr[i] = [i];
 | 
				
			||||||
 | 
					    for (let j = 1; j <= s.length; j++) {
 | 
				
			||||||
 | 
					      arr[i][j] =
 | 
				
			||||||
 | 
					          i === 0
 | 
				
			||||||
 | 
					              ? j
 | 
				
			||||||
 | 
					              : Math.min(
 | 
				
			||||||
 | 
					                  arr[i - 1][j] + 1,
 | 
				
			||||||
 | 
					                  arr[i][j - 1] + 1,
 | 
				
			||||||
 | 
					                  arr[i - 1][j - 1] + (s[j - 1] === t[i - 1] ? 0 : 1)
 | 
				
			||||||
 | 
					              );
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  return arr[t.length][s.length];
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
</script>
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -12,13 +94,17 @@ import ArticleComponent from "@/Apps/ScientificPublications/ResearchComponent.vu
 | 
				
			|||||||
  <ArticleComponent :article="articleToDisplay" :isOpen="isResearchOpened" :manage="false" @modal-close="closeResearch" @downloadPdf="downloadArticle(articleToDisplay)" @downloadBibTex="downloadBibTex(articleToDisplay)"></ArticleComponent>
 | 
					  <ArticleComponent :article="articleToDisplay" :isOpen="isResearchOpened" :manage="false" @modal-close="closeResearch" @downloadPdf="downloadArticle(articleToDisplay)" @downloadBibTex="downloadBibTex(articleToDisplay)"></ArticleComponent>
 | 
				
			||||||
  <div id="researches">
 | 
					  <div id="researches">
 | 
				
			||||||
    <div id="search">
 | 
					    <div id="search">
 | 
				
			||||||
      <input type="text" id="search-input" placeholder="search for researches" v-model="input"/>
 | 
					      <input v-if="!isResearcher" type="text" id="search-input" placeholder="search for researches" v-model="input"/>
 | 
				
			||||||
 | 
					      <input v-else type="text" id="search-input" placeholder="search for researcher" v-model="input"/>
 | 
				
			||||||
      <button id="filterButton" @click="openFilter">  Filters </button>
 | 
					      <button id="filterButton" @click="openFilter">  Filters </button>
 | 
				
			||||||
 | 
					      <button v-if="!isResearcher" id="unToggledResearchButton" @click="isResearcher = !isResearcher">  Toggle Researcher Search</button>
 | 
				
			||||||
 | 
					      <button v-if="isResearcher" id="toggledResearchButton" @click="isResearcher = !isResearcher">  UnToggle Researcher Search</button>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
    <ul id="researchUL">
 | 
					    <ul id="researchUL">
 | 
				
			||||||
      <li id="researchLi" v-for="n in searchInList(researchList,input)">
 | 
					      <li id="researchLi" v-for="n in searchInList(researchList,input)">
 | 
				
			||||||
        <div class="vl"> {{n.title}}</div>
 | 
					        <div class="vl"> {{n.title}}</div>
 | 
				
			||||||
        <div class="vl"> {{ n.researcher.user.firstName +" "+ n.researcher.user.lastName }}</div>
 | 
					        <div class="vl"> <a :href="'#/researcher-profile?id=' + n.researcher.id"> {{ n.researcher.user.firstName +" "+ n.researcher.user.lastName }}</a>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
        <a @click="openResearch(n)"> MoreInfo  </a></li>
 | 
					        <a @click="openResearch(n)"> MoreInfo  </a></li>
 | 
				
			||||||
    </ul>
 | 
					    </ul>
 | 
				
			||||||
  </div>
 | 
					  </div>
 | 
				
			||||||
@ -27,4 +113,95 @@ import ArticleComponent from "@/Apps/ScientificPublications/ResearchComponent.vu
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
<style scoped>
 | 
					<style scoped>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#main {
 | 
				
			||||||
 | 
					  height: 100%;
 | 
				
			||||||
 | 
					  width: 100%;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#search{
 | 
				
			||||||
 | 
					  width: 100%;
 | 
				
			||||||
 | 
					  height: 10%;
 | 
				
			||||||
 | 
					  display: inline-flex;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#search-input {
 | 
				
			||||||
 | 
					  margin-left: 25px;
 | 
				
			||||||
 | 
					  width: 75%;
 | 
				
			||||||
 | 
					  font-size: 16px;
 | 
				
			||||||
 | 
					  padding: 12px 20px 12px 40px;
 | 
				
			||||||
 | 
					  border: 1px solid #ddd;
 | 
				
			||||||
 | 
					  height: 20px;
 | 
				
			||||||
 | 
					  align-self: center;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#filterButton {
 | 
				
			||||||
 | 
					  align-self: center;
 | 
				
			||||||
 | 
					  margin-left: 2px;
 | 
				
			||||||
 | 
					  font-size: xx-large;
 | 
				
			||||||
 | 
					  color: white;
 | 
				
			||||||
 | 
					  background: rgba(191, 64, 191,0.5);
 | 
				
			||||||
 | 
					  border:2px solid black;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#filterButton:hover{
 | 
				
			||||||
 | 
					  background: rgba(191, 64, 191);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#researchUL {
 | 
				
			||||||
 | 
					  list-style-type: none;
 | 
				
			||||||
 | 
					  color: white;
 | 
				
			||||||
 | 
					  padding: 12px;
 | 
				
			||||||
 | 
					  margin: 5px;
 | 
				
			||||||
 | 
					  height: 100%;
 | 
				
			||||||
 | 
					  overflow: scroll;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#researchLi{
 | 
				
			||||||
 | 
					  display: grid;
 | 
				
			||||||
 | 
					  grid-template-columns: auto auto auto;
 | 
				
			||||||
 | 
					  border: 2px solid black;
 | 
				
			||||||
 | 
					  color: white;
 | 
				
			||||||
 | 
					  font-size: x-large;
 | 
				
			||||||
 | 
					  text-align: center;
 | 
				
			||||||
 | 
					  text-indent: 7px;
 | 
				
			||||||
 | 
					  background-color: rgba(255, 255, 255, 0.09);
 | 
				
			||||||
 | 
					  border-radius: 18px;
 | 
				
			||||||
 | 
					  margin-bottom: 15px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					a{
 | 
				
			||||||
 | 
					  color:#007aff;
 | 
				
			||||||
 | 
					  text-decoration: underline;
 | 
				
			||||||
 | 
					  cursor: pointer;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.vl {
 | 
				
			||||||
 | 
					  border-right: 2px solid black;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#unToggledResearchButton{
 | 
				
			||||||
 | 
					  align-self: center;
 | 
				
			||||||
 | 
					  margin-left: 2px;
 | 
				
			||||||
 | 
					  font-size: large;
 | 
				
			||||||
 | 
					  color: white;
 | 
				
			||||||
 | 
					  background: #2a1981;
 | 
				
			||||||
 | 
					  border:2px solid black;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#unToggledResearchButton:hover{
 | 
				
			||||||
 | 
					  background: #5ac8fa;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#toggledResearchButton {
 | 
				
			||||||
 | 
					  align-self: center;
 | 
				
			||||||
 | 
					  margin-left: 2px;
 | 
				
			||||||
 | 
					  font-size: large;
 | 
				
			||||||
 | 
					  color: white;
 | 
				
			||||||
 | 
					  background: crimson;
 | 
				
			||||||
 | 
					  border:2px solid black;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#toggledResearchButton:hover{
 | 
				
			||||||
 | 
					  background: #ff2d55;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
</style>
 | 
					</style>
 | 
				
			||||||
@ -1,5 +1,5 @@
 | 
				
			|||||||
<script setup>
 | 
					<script setup>
 | 
				
			||||||
import { ref, reactive } from "vue";
 | 
					import { ref} from "vue";
 | 
				
			||||||
import FilterComponent from "@/Apps/ScientificPublications/FilterComponent.vue";
 | 
					import FilterComponent from "@/Apps/ScientificPublications/FilterComponent.vue";
 | 
				
			||||||
import ArticleComponent from "@/Apps/ScientificPublications/ResearchComponent.vue";
 | 
					import ArticleComponent from "@/Apps/ScientificPublications/ResearchComponent.vue";
 | 
				
			||||||
import {fetchResearches, } from "@/rest/ScientificPublications/ResearcherProfile.js";
 | 
					import {fetchResearches, } from "@/rest/ScientificPublications/ResearcherProfile.js";
 | 
				
			||||||
@ -10,7 +10,6 @@ const isFilterOpened = ref(false);
 | 
				
			|||||||
const isResearchOpened = ref(false);
 | 
					const isResearchOpened = ref(false);
 | 
				
			||||||
const isPostResearchOpened = ref(false);
 | 
					const isPostResearchOpened = ref(false);
 | 
				
			||||||
const articleToDisplay = ref()
 | 
					const articleToDisplay = ref()
 | 
				
			||||||
const filters = ref([]);
 | 
					 | 
				
			||||||
const changing = ref(false);
 | 
					const changing = ref(false);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
let toModify= Object.assign({}, {});
 | 
					let toModify= Object.assign({}, {});
 | 
				
			||||||
 | 
				
			|||||||
@ -9,8 +9,8 @@
 | 
				
			|||||||
import { ref, reactive } from "vue";
 | 
					import { ref, reactive } from "vue";
 | 
				
			||||||
import FilterComponent from "@/Apps/ScientificPublications/FilterComponent.vue";
 | 
					import FilterComponent from "@/Apps/ScientificPublications/FilterComponent.vue";
 | 
				
			||||||
import ArticleComponent from "@/Apps/ScientificPublications/ResearchComponent.vue";
 | 
					import ArticleComponent from "@/Apps/ScientificPublications/ResearchComponent.vue";
 | 
				
			||||||
import {fetchResearcher, fetchResearches, fetchStats, addView} from "@/rest/ScientificPublications/ResearcherProfile.js";
 | 
					import {fetchResearcher, fetchResearches, fetchStats, fetchResearch} from "@/rest/ScientificPublications/ResearcherProfile.js";
 | 
				
			||||||
import {getFile} from "@/rest/ScientificPublications/ManageResearch.js";
 | 
					import {getFile, addView} from "@/rest/ScientificPublications/ManageResearch.js";
 | 
				
			||||||
const input = ref("");
 | 
					const input = ref("");
 | 
				
			||||||
const statsOf = ref("");
 | 
					const statsOf = ref("");
 | 
				
			||||||
const statsBy = ref("");
 | 
					const statsBy = ref("");
 | 
				
			||||||
@ -20,16 +20,18 @@ const articleToDisplay = ref(Object)
 | 
				
			|||||||
const filters = ref([]);
 | 
					const filters = ref([]);
 | 
				
			||||||
let chart;
 | 
					let chart;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const researchList = ref(await fetchResearches(1));
 | 
					const researcherId = window.location.href.split("=")[1]
 | 
				
			||||||
//todo changer dynamiquement le 1 ici en fct de sur quel profil on est
 | 
					 | 
				
			||||||
const researcher = ref(await fetchResearcher(1));
 | 
					 | 
				
			||||||
const stats = ref(await fetchStats(1))
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
const props = defineProps({
 | 
					const props = defineProps({
 | 
				
			||||||
  researcherId: ref(), //int
 | 
					  filters: ref([]),
 | 
				
			||||||
  filters: ref([""]),
 | 
					 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const researchList = ref(await fetchResearches(researcherId));
 | 
				
			||||||
 | 
					const researcher = ref(await fetchResearcher(researcherId));
 | 
				
			||||||
 | 
					const stats = ref(await fetchStats(researcherId))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const openFilter = () => {
 | 
					const openFilter = () => {
 | 
				
			||||||
  isFilterOpened.value = true;
 | 
					  isFilterOpened.value = true;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
@ -52,9 +54,12 @@ const downloadBibTex = (research) => {
 | 
				
			|||||||
  getFile(research.bibTexLocation)
 | 
					  getFile(research.bibTexLocation)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const downloadArticle = (research) => {
 | 
					async function downloadArticle (research) {
 | 
				
			||||||
  addView(research.pdfLocation)
 | 
					  await addView(research.pdfLocation)
 | 
				
			||||||
  getFile(research.pdfLocation)
 | 
					  await getFile(research.pdfLocation)
 | 
				
			||||||
 | 
					  articleToDisplay.value = await fetchResearch(articleToDisplay.value.id)
 | 
				
			||||||
 | 
					  stats.value = await fetchStats(researcher.value.id)
 | 
				
			||||||
 | 
					  update()
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function downloadCoAuthors(){
 | 
					function downloadCoAuthors(){
 | 
				
			||||||
 | 
				
			|||||||
@ -23,11 +23,14 @@ export async function postResearch(data){
 | 
				
			|||||||
    return restPost("/research", data)
 | 
					    return restPost("/research", data)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export async function fetchResearches(){
 | 
					export async function fetchAllResearches(){
 | 
				
			||||||
    return restGet("/researches")
 | 
					    return restGet("/researches")
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export async function getFile(url){
 | 
					export async function getFile(url){
 | 
				
			||||||
    const restURL = import.meta.env.VITE_CLYDE_MODE === 'container' ? "http://localhost:8000": import.meta.env.DEV ? "http://localhost:5173" : "https://clyde.herisson.ovh/api"
 | 
					    const restURL = import.meta.env.VITE_CLYDE_MODE === 'container' ? "http://localhost:8000": import.meta.env.DEV ? "http://localhost:5173" : "https://clyde.herisson.ovh/api"
 | 
				
			||||||
    await fetch(restURL + "/"+url, {method: "GET"})
 | 
					    await fetch(restURL + "/" + url, {method: "GET"})
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					export async function addView(url){
 | 
				
			||||||
 | 
					    return restPost("/addview/" + url)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -11,6 +11,7 @@ export async function fetchResearches(id){
 | 
				
			|||||||
export async function fetchStats(id){
 | 
					export async function fetchStats(id){
 | 
				
			||||||
    return restGet("/stats/" +id)
 | 
					    return restGet("/stats/" +id)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
export async function addView(url){
 | 
					
 | 
				
			||||||
    return restPost("/addview/" +url)
 | 
					export async function fetchResearch(id){
 | 
				
			||||||
 | 
					    return restGet("/research/" +id)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -13,6 +13,8 @@ import AboutStudent from "@/Apps/Inscription/AboutStudent.vue";
 | 
				
			|||||||
import Msg from "@/Apps/Msg.vue"
 | 
					import Msg from "@/Apps/Msg.vue"
 | 
				
			||||||
import ManageRequests from "@/Apps/Inscription/ManageRequests.vue";
 | 
					import ManageRequests from "@/Apps/Inscription/ManageRequests.vue";
 | 
				
			||||||
import ManageResearcherProfile from "@/Apps/ScientificPublications/ManageResearcherProfile.vue";
 | 
					import ManageResearcherProfile from "@/Apps/ScientificPublications/ManageResearcherProfile.vue";
 | 
				
			||||||
 | 
					import ListResearches from "@/Apps/ScientificPublications/ListResearches.vue";
 | 
				
			||||||
 | 
					import ResearcherProfile from "@/Apps/ScientificPublications/ResearcherProfile.vue";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const apps = {
 | 
					const apps = {
 | 
				
			||||||
		'/login': LoginPage,
 | 
							'/login': LoginPage,
 | 
				
			||||||
@ -23,9 +25,12 @@ const apps = {
 | 
				
			|||||||
		'/students-list' : Students,
 | 
							'/students-list' : Students,
 | 
				
			||||||
		'/manage-researcher-profile' : ManageResearcherProfile,
 | 
							'/manage-researcher-profile' : ManageResearcherProfile,
 | 
				
			||||||
		'/msg' : Msg,
 | 
							'/msg' : Msg,
 | 
				
			||||||
 | 
							'/researches' : ListResearches,
 | 
				
			||||||
 | 
							'/researcher-profile': ResearcherProfile
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const appsList = {
 | 
					const appsList = {
 | 
				
			||||||
 | 
							'ListResearches': {path:'#/researches', icon:'fa-book-bookmark',text:i18n("app.list.researches")},
 | 
				
			||||||
		'Msg': { path: '#/msg', icon: 'fa-comment', text: i18n("app.messages") },
 | 
							'Msg': { path: '#/msg', icon: 'fa-comment', text: i18n("app.messages") },
 | 
				
			||||||
		'Notification': { path: '#/notifs', icon: 'fa-bell', text: i18n("app.notifications") },
 | 
							'Notification': { path: '#/notifs', icon: 'fa-bell', text: i18n("app.notifications") },
 | 
				
			||||||
		'Forum': { path: '#/forum', icon: 'fa-envelope', text: i18n("app.forum") },
 | 
							'Forum': { path: '#/forum', icon: 'fa-envelope', text: i18n("app.forum") },
 | 
				
			||||||
@ -35,12 +40,13 @@ const appsList = {
 | 
				
			|||||||
		'StudentsList':{ path: '#/students-list',icon: 'fa-users',text: i18n("app.studentList")},
 | 
							'StudentsList':{ path: '#/students-list',icon: 'fa-users',text: i18n("app.studentList")},
 | 
				
			||||||
		'UsersList':{ path: '#/users-list',icon: 'fa-users',text: i18n("app.users")},
 | 
							'UsersList':{ path: '#/users-list',icon: 'fa-users',text: i18n("app.users")},
 | 
				
			||||||
		'ManageResearcherProfile':{path:'#/manage-researcher-profile',icon:'fa-book-bookmark',text:i18n("app.manage.researcherProfile")},
 | 
							'ManageResearcherProfile':{path:'#/manage-researcher-profile',icon:'fa-book-bookmark',text:i18n("app.manage.researcherProfile")},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const currentPath = ref(window.location.hash)
 | 
					const currentPath = ref(window.location.hash)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const currentView = computed(() => {
 | 
					export const currentView = computed(() => {
 | 
				
			||||||
		return apps[currentPath.value.slice(1) || '/']
 | 
							return apps[currentPath.value.split("?")[0].slice(1) || '/']
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user