diff --git a/components/Exercise/ExercisesPanel.vue b/components/Exercise/ExercisesPanel.vue index 0c0a8b8..49adc48 100644 --- a/components/Exercise/ExercisesPanel.vue +++ b/components/Exercise/ExercisesPanel.vue @@ -244,7 +244,7 @@ header { .results { - font-weight: lighter; + font-weight: 500; } } diff --git a/components/Panel/Item/DetailsPanel.vue b/components/Panel/Item/DetailsPanel.vue index 7836c19..ef545a7 100644 --- a/components/Panel/Item/DetailsPanel.vue +++ b/components/Panel/Item/DetailsPanel.vue @@ -12,37 +12,17 @@ - -
-

Sources

- - - - - -
- -
- -
diff --git a/components/Panel/Item/HistoricalPanel.vue b/components/Panel/Item/HistoricalPanel.vue index 6a5d20d..2d6359a 100644 --- a/components/Panel/Item/HistoricalPanel.vue +++ b/components/Panel/Item/HistoricalPanel.vue @@ -99,6 +99,8 @@ } await this.$accessor.exercises.fetch({data: {tags: tagsRequest, title: title, vote: historical.vote}}); + + this.$emit('refresh'); } } diff --git a/components/Tag/Tag.vue b/components/Tag/Tag.vue index e0ad8eb..561075a 100644 --- a/components/Tag/Tag.vue +++ b/components/Tag/Tag.vue @@ -49,12 +49,13 @@ .tag { display: inline-block; - padding: 10px 10px; + padding: 12px 12px; + letter-spacing: .5px; border-radius: 4px; background-color: white; color: darken($SECONDARY_COLOR, 12); border: 1px solid darken($SECONDARY_COLOR, 12); - font-weight: lighter; + font-weight: bold; font-size: .75em; margin-right: 5px; margin-bottom: 10px; diff --git a/pages/administration/categories/index.vue b/pages/administration/categories/index.vue index d41fcb3..8b7b7b0 100644 --- a/pages/administration/categories/index.vue +++ b/pages/administration/categories/index.vue @@ -18,7 +18,7 @@
-
@@ -165,6 +165,22 @@ }) } + /** + * Event for the input html element + * Search with the title entered and update the store + */ + debounceInput(e: any) { + this.searchModel = e.target.value; + } + + resetIfEmpty(e:any) { + const value:string = e.target.value; + + if(value === '') { + this.searchModel = ""; + } + } + /** * Add or remove an id from the selected tags array * Add if state of the checkbox is true and the item is not in the array diff --git a/pages/administration/exercices/_id.vue b/pages/administration/exercices/_id.vue index bd0d96e..9a413f3 100644 --- a/pages/administration/exercices/_id.vue +++ b/pages/administration/exercices/_id.vue @@ -22,7 +22,7 @@ - + diff --git a/pages/administration/exercices/creer-exercice.vue b/pages/administration/exercices/creer-exercice.vue index 0305f49..2af6ac9 100644 --- a/pages/administration/exercices/creer-exercice.vue +++ b/pages/administration/exercices/creer-exercice.vue @@ -22,7 +22,7 @@ - + diff --git a/pages/administration/exercices/index.vue b/pages/administration/exercices/index.vue index e930555..352d0ec 100644 --- a/pages/administration/exercices/index.vue +++ b/pages/administration/exercices/index.vue @@ -15,18 +15,17 @@ - + - + @@ -42,7 +41,7 @@
-
@@ -165,8 +164,6 @@ import {User} from "~/assets/js/api/user"; import {AxiosError} from "axios"; - const debounce = require('lodash.debounce'); - const ratio = .2; const download = require('downloadjs'); @@ -359,11 +356,23 @@ * Event for the input html element * Search with the title entered and update the store */ - debounceInput = debounce((e: any) => { + debounceInput(e: any) { const value = e.target.value; this.$accessor.exercises.fetch({data: {title: value}}); this.$accessor.historical.addHistorical({tags: this.$accessor.tags.selectedTags, title: value}) - }, 300); + } + + resetIfEmpty(e:any) { + const value:string = e.target.value; + + if(value === '') { + this.$accessor.exercises.fetch({data: {title: ''}}); + } + } + + refreshInput() { + this.inputText.value = this.$accessor.exercises.search_criterion.title || ''; + } /** * Reset the input value diff --git a/pages/administration/tags/index.vue b/pages/administration/tags/index.vue index 7e964f4..fba0693 100644 --- a/pages/administration/tags/index.vue +++ b/pages/administration/tags/index.vue @@ -14,7 +14,6 @@ @@ -27,7 +26,7 @@
-
@@ -219,6 +218,23 @@ this.$accessor.tags.addOrRemoveTag({...tag, isSelected: state}) } + + /** + * Event for the input html element + * Search with the title entered and update the store + */ + debounceInput(e: any) { + this.searchModel = e.target.value; + } + + resetIfEmpty(e:any) { + const value:string = e.target.value; + + if(value === '') { + this.searchModel = ""; + } + } + /** * Remove from the databases the tags and update the tag store */ diff --git a/pages/exercices/_id.vue b/pages/exercices/_id.vue index 413ef75..40dbf8f 100644 --- a/pages/exercices/_id.vue +++ b/pages/exercices/_id.vue @@ -63,12 +63,31 @@

Description

+ + +
@@ -99,6 +118,8 @@ hljs.registerLanguage('cmake', cmake); hljs.registerLanguage('cs', cs); + const download = require('downloadjs'); + @Component({ components: { Rating, @@ -175,7 +196,6 @@ const metrics: ExerciseMetrics | undefined = this.exercise.metrics; if (metrics) { - console.log(metrics); return metrics.votes } @@ -219,6 +239,33 @@ } } + async downloadFile() { + try { + + const result:Blob = await this.$axios.$get(`/files/${this.exercise.file}`, {responseType: 'blob'}); + + download(result, "archive.zip", result.type); + + this.$displaySuccess("Téléchargement éffectué."); + + } catch (e) { + const error = e as AxiosError; + + if (error.response) { + const status: number = error.response.status; + + if (status === 404) { + this.$displayError(`Ce fichier est introuvable`); + } else if (status === 500) { + this.$displayError(`Une erreur est survenue lors du téléchargement.`); + } + } else { + this.$displayError(`Une erreur est survenue lors du téléchargement.`); + } + } + } + + mounted() { if (process.client) { const exercise: Element | null = document.querySelector("#Exercise"); @@ -283,11 +330,19 @@ } } + .button-wrapper { + text-align: left; + } + button { + font-size: .75em; + min-width: 250px; + } + + button.modify-button { position: absolute; right: 20px; top: 20px; - font-size: .75em; } } diff --git a/pages/exercices/index.vue b/pages/exercices/index.vue index 0152939..f44ba35 100644 --- a/pages/exercices/index.vue +++ b/pages/exercices/index.vue @@ -3,7 +3,7 @@ @@ -11,12 +11,12 @@
- - + @@ -39,9 +39,6 @@ import Panel from "~/components/Panel/Panel.vue"; import PanelItem from "~/components/Panel/PanelItem.vue"; import RadioButtonSelecter from "~/components/Search/RadioButtonSelecter.vue"; - import {AxiosError} from "axios"; - - const debounce = require('lodash.debounce'); @Component({ components: { @@ -78,7 +75,7 @@ export default class extends Vue { @Ref() inputText!: HTMLInputElement; - debounceInput = debounce((e: any) => { + debounceInput(e: any) { const value = e.target.value; this.$accessor.exercises.fetch({data: {title: value}}); this.$accessor.historical.addHistorical({ @@ -86,12 +83,16 @@ title: value, vote: this.$accessor.exercises.search_criterion.vote }) - }, 300); + } resetInput() { this.inputText.value = "" } + refreshInput() { + this.inputText.value = this.$accessor.exercises.search_criterion.title || ''; + } + setInput() { const title = this.$accessor.exercises.search_criterion.title; this.inputText.value = !!title ? title : ''; diff --git a/pages/gestion/mes-exercices/_id.vue b/pages/gestion/mes-exercices/_id.vue index 9b34aec..5cbd310 100644 --- a/pages/gestion/mes-exercices/_id.vue +++ b/pages/gestion/mes-exercices/_id.vue @@ -22,7 +22,7 @@ - + diff --git a/pages/gestion/mes-exercices/creer-exercice.vue b/pages/gestion/mes-exercices/creer-exercice.vue index 6b4d5ea..2d3c194 100644 --- a/pages/gestion/mes-exercices/creer-exercice.vue +++ b/pages/gestion/mes-exercices/creer-exercice.vue @@ -22,7 +22,7 @@ - + diff --git a/pages/gestion/mes-exercices/index.vue b/pages/gestion/mes-exercices/index.vue index 26bb154..ebd3fa2 100644 --- a/pages/gestion/mes-exercices/index.vue +++ b/pages/gestion/mes-exercices/index.vue @@ -15,18 +15,17 @@ - + - + @@ -40,7 +39,7 @@
-
@@ -312,11 +311,24 @@ * Event for the input html element * Search with the title entered and update the store */ - debounceInput = debounce((e: any) => { + debounceInput(e: any) { const value = e.target.value; this.$accessor.exercises.fetch({data: {title: value}}); this.$accessor.historical.addHistorical({tags: this.$accessor.tags.selectedTags, title: value}) - }, 300); + } + + resetIfEmpty(e:any) { + const value:string = e.target.value; + + if(value === '') { + this.$accessor.exercises.fetch({data: {title: ""}}); + } + } + + + refreshInput() { + this.inputText.value = this.$accessor.exercises.search_criterion.title || ''; + } /** * Reset the input value diff --git a/pages/gestion/mes-favoris/_id.vue b/pages/gestion/mes-favoris/_id.vue index 6d05049..5f3a83d 100644 --- a/pages/gestion/mes-favoris/_id.vue +++ b/pages/gestion/mes-favoris/_id.vue @@ -22,7 +22,7 @@ - + diff --git a/pages/gestion/mes-favoris/creer-favori.vue b/pages/gestion/mes-favoris/creer-favori.vue index 7f5c5f1..a096be5 100644 --- a/pages/gestion/mes-favoris/creer-favori.vue +++ b/pages/gestion/mes-favoris/creer-favori.vue @@ -22,7 +22,7 @@ - + diff --git a/pages/tutoriel/administration.vue b/pages/tutoriel/administration.vue index 68c87d8..e86741a 100644 --- a/pages/tutoriel/administration.vue +++ b/pages/tutoriel/administration.vue @@ -28,7 +28,7 @@

- En tant qu'administrateur, vous possédez néanmoins des foncionnalités additionnelles. + En tant qu'administrateur, vous possédez néanmoins des fonctionnalités additionnelles. Laissez-nous vous les introduire.

@@ -91,7 +91,7 @@ Le nombre de ressources informatiques utilisant ce tag (exercices tagués).
  • - Le nombre de fois que le tag a subit une modification (version). + Le nombre de fois que le tag a subi une modification (version).
  • Le status du tag. @@ -155,7 +155,7 @@

    Gestion des catégories

    - La gestion des catégories se limite uniquement à la modification du titre ou la création d'une nouvelles + La gestion des catégories se limite uniquement à la modification du titre ou la création d'une nouvelle catégorie. La suppression est réservée au super-administrateur.

    diff --git a/pages/tutoriel/bibliotheque.vue b/pages/tutoriel/bibliotheque.vue index 9207c2a..0f3d99a 100644 --- a/pages/tutoriel/bibliotheque.vue +++ b/pages/tutoriel/bibliotheque.vue @@ -47,7 +47,7 @@
  • La cotation de la ressource (sur 5)
    • - lorsque'aucun vote n'a été effectué, un tiret (-) grisé est affiché. Nous donnons une grande importance + lorsqu'aucun vote n'a été effectué, un tiret (-) grisé est affiché. Nous donnons une grande importance au feedback de la communauté ! En évaluant ces ressources, vous contribuez ainsi à maintenir une plateforme ayant du contenu de qualité.
    • @@ -78,7 +78,7 @@

      Filtres

      Les filtres vous permettent d'affiner votre recherche de ressources informatiques. - Les tags que vous cochez apparaitront juste au dessus des résultats. Si vous voulez retirer un de vos choix, + Les tags que vous cochez apparaitront juste au-dessus des résultats. Si vous voulez retirer un de vos choix, il suffit de décocher un des tags en question ou de cliquer sur la croix du label représentant le tag que vous avez sélectionné.

      @@ -91,7 +91,7 @@

      Vous pouvez choisir plusieurs tags dans une même catégorie. Dans ce cas, la recherche vous donnera des - résultats comprenant au moins un des tags que vous avez sélectionné. + résultats comprenant au moins un des tags que vous avez sélectionnés.

      @@ -118,12 +118,12 @@

      Historique

      - L'historique vous permet de naviguer à travers les recherches que vous avez précedemment effectuées. + L'historique vous permet de naviguer à travers les recherches que vous avez précédemment effectuées. Il restera disponible tout au long de votre session, après quoi il sera réinitialisé.

      - L'historique est utile pour revenir dans vos précedentes recherches, mais vous pouvez sauvegarder + L'historique est utile pour revenir dans vos précédentes recherches, mais vous pouvez sauvegarder votre sélection avec les favoris !
      @@ -156,7 +156,7 @@
      • Le crayon vous permet de modifier le favori. Il vous mènera donc sur la page de modification de ce favori.
      • -
      • Le poubelle vous permet de supprimer votre favori directement depuis le panneau.
      • +
      • La poubelle vous permet de supprimer votre favori directement depuis le panneau.
  • diff --git a/pages/tutoriel/comptes-et-utilisateurs.vue b/pages/tutoriel/comptes-et-utilisateurs.vue index 63e7c35..6358abc 100644 --- a/pages/tutoriel/comptes-et-utilisateurs.vue +++ b/pages/tutoriel/comptes-et-utilisateurs.vue @@ -39,7 +39,7 @@ L'administrateur est un rôle capital car lui seul permet de garantir du contenu de qualité. Il est chargé de valider les ressources informatiques soumises par les utilisateurs, de valider les tags et de créer de nouvelles catégories de tags. - En plus de ces droits ci, l'administrateur possède bien évidement tous les droits + En plus de ces droits-ci, l'administrateur possède bien évidement tous les droits de l'utilisateur !

    diff --git a/pages/tutoriel/editeur-de-texte.vue b/pages/tutoriel/editeur-de-texte.vue index c52ff6b..9811437 100644 --- a/pages/tutoriel/editeur-de-texte.vue +++ b/pages/tutoriel/editeur-de-texte.vue @@ -30,7 +30,7 @@

    Le deuxième bloc de boutons permet de structurer le texte en y ajoutant (dans l'ordre) paragraphe, - citation et séparateur horizontal. A noter que lorsque vous utiliser la citation, + citation et séparateur horizontal. À noter que lorsque vous utiliser la citation, vous devez taper deux fois sur la touche enter pour sortir de ce mode.

    @@ -39,8 +39,8 @@

    - Le troisième bloc de boutons permet d'interragir avec deux types de listes : à puces ou ordonnées. - A noter que vous devez taper deux fois sur la touche enter pour quitter le mode liste. + Le troisième bloc de boutons permet d'interagir avec deux types de listes : à puces ou ordonnées. + À noter que vous devez taper deux fois sur la touche enter pour quitter le mode liste.

    Formatter du code

    @@ -49,9 +49,11 @@

    L'avant-dernier bloc de boutons permet de styliser du code. Le premier bouton crée un bloc - de code. Il suffit d'insérer du code et l'éditeur reconnaitra automatiquement le langage pour appliquer la + de code. Pour insérer le code, cliquez d'abord sur le bouton de création de bloc de code et collez ensuite + votre code dans la box. + Il suffit d'insérer du code et l'éditeur reconnaitra automatiquement le langage pour appliquer la coloration syntaxique. Actuellement, le bloc de code reconnait : javascript, css, java, python, cmake et - cs. Pour quitter le mode bloc de code, tapez sur shift + enter. + c. Pour quitter le mode bloc de code, tapez sur shift + enter. Le dernier bouton permet de mettre en évidence un mot en le soulignant.

    diff --git a/pages/tutoriel/favoris.vue b/pages/tutoriel/favoris.vue index 26271ec..f8fd6a8 100644 --- a/pages/tutoriel/favoris.vue +++ b/pages/tutoriel/favoris.vue @@ -24,7 +24,7 @@

    Accueil de gestion des favoris

    Vous pouvez gérer vos favoris en passant votre souri sur un de vos favoris. Deux icônes apparaitront, le - crayon permettant de modifier le favori et la poubelle permettant de le supprimer. A noter que + crayon permettant de modifier le favori et la poubelle permettant de le supprimer. À noter que la modification vous renverra sur le formulaire de modification du favori.

    @@ -71,7 +71,7 @@ correspondant à votre recherche.

    -

    Vous pouvez consulter la ressource en passant votre souri sur un des élements et en cliquant sur "voir".

    +

    Vous pouvez consulter la ressource en passant votre souri sur un des éléments et en cliquant sur "voir".

    diff --git a/pages/tutoriel/mes-exercices.vue b/pages/tutoriel/mes-exercices.vue index 1feffad..6f96740 100644 --- a/pages/tutoriel/mes-exercices.vue +++ b/pages/tutoriel/mes-exercices.vue @@ -25,7 +25,7 @@ La recherche fonctionne de la même manière que dans la bibliothèque, à la différence qu'elle est effectuée dans vos exercices seulement. Consultez la section du panneau à onglets - latéral pour comprendre son fonctionnement. + pour comprendre son fonctionnement.

    @@ -122,7 +122,7 @@

    Gestion du status de la ressource

    Pour modifier l'état d'une ressource, cochez une ou plusieurs ressources. Une liste déroulante d'actions - apparaitra à coté du bouton de création d'exercice. Vous pourrez alors publier (envoyer pour révision), + apparaitra à côté du bouton de création d'exercice. Vous pourrez alors publier (envoyer pour révision), mettre en brouillon ou archiver la/les ressource(s) sélectionnée(s).

    @@ -199,7 +199,7 @@