Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente |
slam4:php:phalcon:project:cloud [2016/03/17 21:39] – [4.4- A poursuivre en dehors du TP...] jcheron | slam4:php:phalcon:project:cloud [2019/08/31 14:21] (Version actuelle) – modification externe 127.0.0.1 |
---|
====== Cloud ====== | ====== Cloud ====== |
| |
| __**Ressources :**__ |
| |
| * [[https://api.phalconphp.com/|Phalcon API]] |
| * [[http://api.kobject.net/phalcon-jquery/classes.html|Phalcon-jQuery API]] |
| * [[http://phalcon-jquery.kobject.net|Phalcon-jQuery exemples]] |
| |
===== -- Contexte ===== | ===== -- Contexte ===== |
===== -- Fonctionnalités à implémenter ===== | ===== -- Fonctionnalités à implémenter ===== |
| |
| <html><div class="todo"></html> |
| * Créer la base de données {{:slam4:php:phalcon:project:cloud:cloud.sql|Script de création de la base Cloud à exécuter sur votre serveur}} |
| * Faire un fork du projet https://github.com/jcheron/phalcon-cloud |
| * Cloner votre copie du projet en local pour travailler |
| * Faire ensuite des Commits/Push réguliers |
| <html></div></html> |
==== -- Récupération du tarif actuel (2 points)==== | ==== -- Récupération du tarif actuel (2 points)==== |
| |
<wrap mytodo>**<nowiki>//</nowiki>TODO 4.2**</wrap> | <wrap mytodo>**<nowiki>//</nowiki>TODO 4.2**</wrap> |
| |
| A l'adresse **MyDisques/index**, on souhaite afficher les disques de l'utilisateur actuellement connecté. |
A l'adresse **Disques/index**, on souhaite afficher les disques de l'utilisateur actuellement connecté. | |
| |
L'utilisateur connecté est obtenu par l'appel de la méthode **Auth::getUser($controller)** où **$controller** est le contrôleur actif. | L'utilisateur connecté est obtenu par l'appel de la méthode **Auth::getUser($controller)** où **$controller** est le contrôleur actif. |
|< 100% >| | |< 100% >| |
^Elément ^Indications ^ | ^Elément ^Indications ^ |
|Contrôleur | Disques | | |Contrôleur | MyDisques | |
|Action | index | | |Action | index | |
|Utilisateur connecté | L'utilisateur connecté est obtenu par l'appel de la méthode **Auth::getUser($controller)** où **$controller** est le contrôleur actif. | | |Utilisateur connecté | L'utilisateur connecté est obtenu par l'appel de la méthode **Auth::getUser($controller)** où **$controller** est le contrôleur actif. | |
|Occupation, Quota | le quota est obtenu sur le tarif actuel du disque, la classe ModelUtils permet de connaître l'occupation en cours du disque | | |Occupation, Quota | le quota est obtenu sur le tarif actuel du disque, la classe **ModelUtils** permet de connaître l'occupation en cours du disque | |
|Composants visuels Bootstrap | on pourra utiliser les composants Phalcon-Jquery **htmlProgressbar**, **htmlGlyphButton**, **htmlListgroup** | | |Composants visuels Bootstrap | on pourra utiliser les composants Phalcon-Jquery **htmlProgressbar**, **htmlGlyphButton**, **htmlListgroup** | |
| |Accès à la config du cloud | Les disques clients sont localisés dans le dossier **public/files** de l'application, et les disques y sont localisés sous le nom : **$cloud->prefix-[disque.nom]**.\\ Cette configuration est définie dans le fichier de **config.php** dans la variable **cloud**, accessible depuis les contrôleurs par **$this->config->cloud** | |
| |Tailles en octets | Vous pourrez utiliser la méthode **sizeConverter** de **ModelUtils** | |
| |
| |
Le style des progressbars doit donner une indication sur le taux d'occupation en % : | Le style des progressbars doit donner une indication sur le taux d'occupation en % : |
|danger | plus de 80% | | |danger | plus de 80% | |
| |
Le composant **HtmlProgressbar** dispose d'une méthode **setStyleLimits** permettant de modifier le style de la **progressbar** en fonction de sa valeur | Le composant **HtmlProgressbar** dispose d'une méthode **[[http://api.kobject.net/phalcon-jquery/class_ajax_1_1bootstrap_1_1html_1_1_html_progressbar.html#a1d3e646b8ecbd1275c75077ec637e045|setStyleLimits]]** permettant de modifier le style de la **progressbar** en fonction de sa valeur |
==== -- Affichage d'un disque (6 points) ==== | ==== -- Affichage d'un disque (6 points) ==== |
| |
| |
| |
Apportez les modifications au modèle **Disque** pour pouvoir accéder à ses services. | Apportez les modifications aux relations du modèle **Disque** pour pouvoir accéder à ses services (ManyToMany ?). |
| |
A l'adresse **Scan/:idDisque**, afficher l'interface suivante : | A l'adresse **Scan/:idDisque**, afficher l'interface suivante : |
|Paramètre | idDisque | | |Paramètre | idDisque | |
|Utilisateur connecté | L'utilisateur connecté est obtenu par l'appel de la méthode **Auth::getUser($controller)** où **$controller** est le contrôleur actif. | | |Utilisateur connecté | L'utilisateur connecté est obtenu par l'appel de la méthode **Auth::getUser($controller)** où **$controller** est le contrôleur actif. | |
|Occupation, Quota | le quota est obtenu sur le tarif actuel du disque, la classe ModelUtils permet de connaître l'occupation en cours du disque | | |Occupation, Quota | le quota est obtenu sur le tarif actuel du disque, la classe **ModelUtils** permet de connaître l'occupation en cours du disque | |
|Composants visuels Bootstrap | on pourra utiliser les composants Phalcon-Jquery **htmlLabel**, **htmlGlyphButton**, **htmlListgroup** | | |Composants visuels Bootstrap | on pourra utiliser les composants Phalcon-Jquery **htmlLabel**, **htmlGlyphButton**, **htmlListgroup** | |
| |
| |
=== -- Création d'un disque (2 points) === | === -- Création d'un disque (2 points) === |
| |
| <wrap mytodo>**<nowiki>//</nowiki>TODO 4.4.1**</wrap> |
| |
| |
A partir de l'adresse **Disques/frm** | A partir de l'adresse **Disques/frm** |
| |
| |
Afficher le formulaire de création d'un disque. | Afficher le formulaire de création d'un disque. |
|**Disques/index** | Accessible uniquement pour un utilisateur connecté | Affiché message sur l'absence de connexion et proposer la connexion | | |**Disques/index** | Accessible uniquement pour un utilisateur connecté | Affiché message sur l'absence de connexion et proposer la connexion | |
|**Scan/index/:idDisque** | Accessible uniquement pour un disque appartenant à l'utilisateur connecté | Afficher un message d'erreur "Accès à une ressource non autorisée" | | |**Scan/index/:idDisque** | Accessible uniquement pour un disque appartenant à l'utilisateur connecté | Afficher un message d'erreur "Accès à une ressource non autorisée" | |
| |
| Utiliser le [[https://docs.phalconphp.com/en/latest/reference/dispatching.html|dispatcher phalcon]] pour ce faire. |