SlideShare une entreprise Scribd logo
1  sur  42
Télécharger pour lire hors ligne
ESUP-Days #21 / Apereo Europe 2016
1ESUP-Days #21
Apereo Europe
2016
Feb. 1st-2nd, 2016
Paris
Retour d’expérience sur le déploiement
d’uPortal 4.2+ responsive
à l’UPMC
Christian COUSQUER
Ludovic AUXEPAULES
ESUP-Days #21 / Apereo Europe 2016
2
Présentation
v  Adjoint du chef de Pôle « Études et Développements » à la DSI,
Administrateur du portail ENT à l’UPMC, RSSI suppléant de l’UPMC
­  Travaille sur uPortal depuis 2011
­  ludovic.auxepaules@upmc.fr
v  Ingénieur en développement et déploiement d’applications au Pôle
« Études et Développements » à la DSI, Administrateur du portail ENT
à l’UPMC
­  Travaille sur uPortal depuis 2005
­  christian.cousquer@upmc.fr
Ø  Ludovic AUXÉPAULES
Ø  Christian COUSQUER
ESUP-Days #21 / Apereo Europe 2016
3
Plan
v  Rappel sur le contexte à l’UPMC
v  Retours sur la stratégie de migration adoptée
v  Point sur un développement maison du socle (Off-canvas, sticky nav,
fly-out menus)
v  Présentation rapide des Dynamic Skins
v  Focus sur l’adaptation d’une portlet existante au Responsive Web
Design à travers une Proof Of Concept sur Apereo Email-Preview
v  Point sur les Simple Content Management Portlet Advanced CMS
version Responsive Web Design avec Bootstrap
v  Informations sur le projet uPortal 4.2, 4.3 d’Apereo et sur le front
office AngularJS myUW (University of Wisconsin)
ESUP-Days #21 / Apereo Europe 2016
4
Contexte
Retour d’expérience sur le déploiement d’uPortal 4.2+
ESUP-Days #21 / Apereo Europe 2016
5
Le portail ENT de l’UPMC : monUPMC
v  2 VMS dédiées à CAS
v  4 VMS dédiées au portail monUPMC
­  Centos 6, 4GB RAM, 2 CPU cores
­  Apache Httpd 2.2 avec mod_proxy_ajp, Apache Tomcat 6.0
­  Load balancing et fallback : Big Iron F5
­  9 onglets thématiques : 3 sur le guest
­  20-30 services "poussés" dépendant du profil utilisateur
­  ≈ 25 portlets différentes
­  ≈ 130 instances de portlets
­  ≈ 50 Advanced CMS portlets
Ø  En production sur un uPortal 4.0 + depuis septembre 2012
Ø  Organisation des onglets et des services
ESUP-Days #21 / Apereo Europe 2016
6
monUPMC version 4.0.1x
Ø  Vue Desktop (thème Universality)
ESUP-Days #21 / Apereo Europe 2016
7
monUPMC version 4.0.1x
Ø  Vue mobile mUniversality
ESUP-Days #21 / Apereo Europe 2016
8
Le portail ENT de l’UPMC
v  En production depuis 2005
v  Membre EsupPortail depuis 2005
v  Signatures de 2 Contributor License Agreements (CLA) Apereo
v  Stratégie de produit : On colle de très près au produit de base, toute
amélioration est transmise au code source du produit de base.
Ø  Stratégie de déploiement adoptée
ESUP-Days #21 / Apereo Europe 2016
9
Continuateurs versus Novateurs
v  « Nous sommes des “continuateurs”, on peut dire d’où on vient, ce que
l’on fait actuellement et un peu où l’on va…
v  « Un novateur, c’est quelqu’un qui déteste ses prédécesseurs… et surtout
détestera ses successeurs. » ( Dialogue entre Pierre Renoir et Louis Jouvet)
ESUP-Days #21 / Apereo Europe 2016
10
Retour sur la stratégie de migration
Retour d’expérience sur le déploiement d’uPortal 4.2+
ESUP-Days #21 / Apereo Europe 2016
11
Deux projets parallèles, distincts et complémentaires
v  Tous les services existants doivent migrer (Migration « Iso
fonctionnelle »)
v  Proposition de skin conforme au Dynamic Skin Layout Manager
v  Responsive Web Design partout, plus de vues mobiles spécifiques
v  Plus de sécurité, de souplesse de gestion et de délégation de droits
d'administration à des administrateurs de tenant
v  Le partage d'une même plateforme technique augmente le niveau de
sécurité, de surveillance et ouvre la voie à de futures mutualisations
v  Implique les questions de multi-authentification (CAS, Shibboleth…)
Ø  Mettre à jour le socle et les portlets en uPortal 4.2+ - 4.3
Ø  Basculer sur une architecture multi-tenants à partir d’uPortal 4.2+
ESUP-Days #21 / Apereo Europe 2016
12
Pour l’instant, on accumule des munitions, en attendant un feu vert
stratégique.
v  « Pas du tout ! Défions le présage ! Même la chute d’un moineau est réglée par la Providence.
Si ce doit être pour maintenant, ce ne sera plus à venir. Si ce n’est plus à venir, c’est pour
maintenant. Et si ce n’est pas pour maintenant, pourtant cela viendra. L’essentiel, c’est d’être
prêt. » William Shakespeare - Hamlet A.V S.2
v  « Not whit, we defy augury; there is special providence in the fall of sparrowe. If it be now, 'tis
not to come if it be not to come, it will be now. If it be not now, yet it will come; the readiness
is all. » William Shakespeare - Hamlet A.V S.2
ESUP-Days #21 / Apereo Europe 2016
13
Point sur un développement du socle
Off-canvas, sticky nav,
fly-out menus
Retour d’expérience sur le déploiement d’uPortal 4.2+
ESUP-Days #21 / Apereo Europe 2016
14
Off-canvas, sticky nav, fly-out menus
v  Les fly-outs menus (menus déroulants sous les onglets) ne sont pas
portés sur le produit de base et on doit être iso-fonctionnel
v  Optionnel
v  Sur mobile un utilisateur du portail a tendance à beaucoup trop faire
défiler verticalement
­  Nécessité d’un développement sur le socle :
§  Une navigation principale en Off-Canvas (Optionnelle)
§  Une sticky nav avec un petit effet d’animation pour changer d’onglet sur mobile
(1er breakpoint) sur une idée d’Oackland University – Merci Aaron Grant !
Ø  Un régression dans le passage de Universality à Respondr
Ø  Un petit défaut d’utilisabilité sur mobile du fait du RWD
ESUP-Days #21 / Apereo Europe 2016
15
Fixe fly-out menus (menu déroulants)
ESUP-Days #21 / Apereo Europe 2016
16
Off-Canvas, sticky nav soumise à Apereo
v  Pull Request : Nojira add offcanvas stickynav flyout #598
­  https://github.com/Jasig/uPortal/pull/598
ESUP-Days #21 / Apereo Europe 2016
17
Présentation des dynamic skins
Retour d’expérience sur le déploiement d’uPortal 4.2+
ESUP-Days #21 / Apereo Europe 2016
18
Dynamic Skins - Tout est portlet
v  Si vous avez créé un nouveau skin (Custom Skin), Il faut modifier
uPortal/uportal-war/src/main/data/default_entities/portlet-definition/dynamic-
respondr-skin.portlet-definition.xml
ESUP-Days #21 / Apereo Europe 2016
19
FOCUS
Comment adapter une portlet existante au
Responsive Web Design
Retour d’expérience sur le déploiement d’uPortal 4.2+
Proof Of Concept sur Apereo Email-Preview
2.2.0-SNAPSHOT
ESUP-Days #21 / Apereo Europe 2016
20
Préambule
v  Niveau puce 1
­  Niveau puce 2
­  Niveau puce 2
§  Niveau puce 3
§  Niveau puce 3
–  Niveau puce 4
»  Niveau puce 5
–  Niveau puce4
§  Niveau puce 3
­  Niveau puce 2
v  Niveau puce 1
v  Baby Steps
ESUP-Days #21 / Apereo Europe 2016
21
Étapes pour « responsiver » une Portlet
Ø  Analyse de l’existant
Ø  Trouver un angle d’attaque
Ø  Intégration du html5 dans les jsp, jsf
Ø  Intégration du JavaScript
Ø  Intégration du LESS, SASS, CSS
Ø  Tests de performances, multi-devices, etc.
Ø  Réaliser une mock-up statique
Ø  Étude du marché en RWD
ESUP-Days #21 / Apereo Europe 2016
22
Email-Preview 2.2.0-SNAPSHOT – Proof of concept
v  Une rollup avec notifications de nouveaux mails
Ø  Analyse de l’existant
ESUP-Days #21 / Apereo Europe 2016
23
Email-Preview 2.2.0-SNAPSHOT – Proof of concept
v  Prévisualisation de la liste des mails
Ø  Analyse de l’existant
ESUP-Days #21 / Apereo Europe 2016
24
Email-Preview 2.2.0-SNAPSHOT – Proof of concept
v  Prévisualisation du mail
Ø  Analyse de l’existant
ESUP-Days #21 / Apereo Europe 2016
25
Email-Preview 2.2.0-SNAPSHOT – Proof of concept
v  Le changement de « page » entre l’affichage de la liste des mails et
l’affichage du message sélectionné se fait en modifiant la propriété
css « display » de « block » à « none » via JavaScript, on reste sur le
même DOM…
v  Rien ne m’empêche de vouloir afficher les deux vues en même temps
Ø  Trouver un angle d’attaque
var	showEmailList	=	func4on(that)	{	
that.locate("loadingMessage").hide();	
that.locate("emailMessage").hide();	
that.locate("errorMessage").hide();	
that.locate("emailList").show();	
};	
…	
var	showEmailMessage	=	func4on(that)	{	
that.locate("loadingMessage").hide();	
that.locate("emailList").hide();	
that.locate("errorMessage").hide();	
that.locate("emailMessage").show();	
};	
var	showEmailList	=	func4on(that)	{	
that.locate("loadingMessage").hide();	
that.locate("emailMessage").show();	
that.locate("errorMessage").hide();	
that.locate("emailList").show();	
};	
...	
var	showEmailMessage	=	func4on(that)	{	
that.locate("loadingMessage").hide();	
that.locate("emailList").show();	
that.locate("errorMessage").hide();	
that.locate("emailMessage").show();	
};
ESUP-Days #21 / Apereo Europe 2016
26
Email-Preview 2.2.0-SNAPSHOT – Proof of concept
v  FilamentGroup
­  https://github.com/filamentgroup/jqm-mail
Ø  Recherche sur le marché, qu’est ce qu’il se fait en RWD
ESUP-Days #21 / Apereo Europe 2016
27
Email-Preview 2.2.0-SNAPSHOT – Proof of concept
v  Google App Gmail
Ø  Recherche sur le marché, qu’est ce qu’il se fait en RWD
ESUP-Days #21 / Apereo Europe 2016
28
Email-Preview 2.2.0-SNAPSHOT – Proof of concept
v  FilamentGroup jqm-mail
­  Problème : utilise jQuery Mobile au moment où on le retire du socle
­  Mais l’idée du repli entre dossiers, de la liste des mails et du mail
sélectionné intéressante
­  Un peu moins d’intérêts sur l’ouverture du mail sélectionné dans la liste
des mails
­  Principe intéressant
v  Google App Gmail
­  App native, mais ce n’est pas un problème
­  Comportement différents selon iphone/ipad
­  Off-canvas triple (option de dossiers / liste des mails / affichage du
message / écrire|répondre à un message)
­  Très intéressant de le combiner avec FilamentGroup-jqm-mail
Ø  Recherche sur le marché, qu’est ce qu’il se fait en RWD
ESUP-Days #21 / Apereo Europe 2016
29
Email-Preview 2.2.0-SNAPSHOT – Proof of concept
v  2 – 3 jours de travail
­  HTML5, JavaScript, CSS3
­  S’appuyer sur Bootstrap / jQuery uniquement
­  Pas de JavaScript / lib JS de la portlet
­  S’appuyer sur certaines portion de code existant dans la jsp sans script/css
­  Ne pas retirer de fonctionnalités, alléger le code
­  S’amuser, prendre du plaisir
v  DEMONSTRATION
Ø  Réaliser une mock-up
ESUP-Days #21 / Apereo Europe 2016
30
Email-Preview 2.2.0-SNAPSHOT – Proof of concept
v  Détecter l’état du device selon les css et le passer au JS pour injecter
des comportements différents selon les états
­  Être capable de détecter l’état du device à n’importe quel moment est très
important pour plein de raisons et c’est important que les JS et CSS des
applications web soient synchronisées ensemble.
§  Device State Detection with CSS Media Queries and JavaScript
https://davidwalsh.name/device-state-detection-css-media-queries-javascript
David Walsh - Senior Web Developer and software engineer for Mozilla
­  Une petite amélioration pour éviter
que les aveugles avec une synthèse
vocale ne lise pas l’état du device
­  Cent fois plus efficace que de sniffer
le user-agent côté serveur, de travailler
en JavaScript à calculer les outer-width,
les width, etc.
Un cauchemar…
Ø  Réaliser une mock-up – quelques ressources utiles
//	Usage	
subscribe('/device-state/change',	func4on(state)	{	
				if(state	==	“mobile”)	{		
								//	Do	whatever	
				}	else	if(state	==	“tablet”)	{		
								//	Do	whatever	
				}	else	if(state	==	“desktop”)	{		
								//	Do	whatever	
				}		….	
});
ESUP-Days #21 / Apereo Europe 2016
31
Email-Preview 2.2.0-SNAPSHOT – Proof of concept
v  Un seul objectif : avoir un DOM quasi-identique entre la Mock-up
statique et le code généré par la portlet
­  Si un composant JS veut un élément particulier pour fonctionner, mettez
lui son élément, tout est rattrapable en CSS et avec des attribut ARIA
§  Exemple 1 Exemple 2
v  Mettez à jour les lib JavaScript
v  Faire avec le code existant (Fluid…)
­  Exemple dans email-browser.js (570 lignes):
§  10 occurrences de « this »
§  +150 occurrences de « that » !!!!!!!!!!!!!
Ø  Intégration du html5 dans les jsp
Ø  Intégration du JavaScript
that.locate(“xxx").click(	func4on(){	doThis(that,	this);	});
ESUP-Days #21 / Apereo Europe 2016
32
Email-Preview 2.2.0-SNAPSHOT – Proof of concept
v  Travailler pour le plus petit écran d’abord
v  Utilisez le mixins LESS du socle pas des mixins avec une licence
improbable… cela simplifiera la migration pour bootstrap 4
v  En animant des éléments - tout élément , si petit soit-il – animez
seulement les propriétés qui sont accélérés par le GPU . En CSS, cela
signifie en utilisant la propriété transform translate3d qui est
l'accélérée matériellement , plutôt que d’utiliser les propriétés top,
left, right, bottom qui ne le sont pas.
§  http://blog.forecast.io/its-not-a-web-app-its-an-app-you-install-from-the-web/
Ø  Intégration du LESS, SASS, CSS
ESUP-Days #21 / Apereo Europe 2016
33
Email-Preview 2.2.0-SNAPSHOT – Proof of concept
Ø  Démo
ESUP-Days #21 / Apereo Europe 2016
34
On a modifié juste le côté client. Rien côté serveur, même pas les lib
JavaScript (euh si, montée de versions…) côté client.
v  « Ô Dieu ! Je pourrais être enfermé dans une coquille de noix et me tenir pour le roi d’un
espace infini… » William Shakespeare – Hamlet A.II S.2
v  « O God, I could be bounded in a nutshell and count myself a king of infinite space… » William
Shakespeare – Hamlet A.II S.2
ESUP-Days #21 / Apereo Europe 2016
35
Simple Content Management Portlet
Advanced CMS
version Bootstrap
Retour d’expérience sur le déploiement d’uPortal 4.2+
ESUP-Days #21 / Apereo Europe 2016
36
Retour d’expérience sur le déploiement d’uPortal 4.2+
v  Réalisation d’une quinzaine de templates html5 en bootstrap pour
générer une centaine de portlets rapidement en copier coller.
v  Passez par les data attributes de bootstrap
­  http://getbootstrap.com/css/
­  http://getbootstrap.com/components/
­  http://getbootstrap.com/javascript/
v  DEMO
Ø  Objectif : Publier une centaine de portlet en 4 jours
Ø  Démo
ESUP-Days #21 / Apereo Europe 2016
37
Point sur le projet Apereo uPortal 4.2, 4.3
et sur le front office AngularJS myUV
(University of Wisconsin)
Retour d’expérience sur le déploiement d’uPortal 4.2+
ESUP-Days #21 / Apereo Europe 2016
38
Point sur le projet uPortal 4.2, 4.3
v  MAJ portlet api à 2.1
v  La Fragment-admin-exit portlet est intégrée dans le processus de skin
Respondr
v  2 méthodes des DB PAGS utilisent le cache maintenant
(JpaPersonAttributesGroupDefinitionDao)
v  Le search-launcher est disponible pour le guest
v  Fixes sur des performances mauvaises des DB-based PAGS
v  Amélioration des performances du Marketplace
v  Fixes sur Resource Aggregation
v  Fixe sur les tenants Manager
v  Fixes SmartLdapGroupStore
v  Pleins d’autres fixes …
Ø  Fixes en 4.2.1 le 30 Septembre 2015
Ø  Fixes en 4.3 en cours
ESUP-Days #21 / Apereo Europe 2016
39
Point sur le projet uPortal 4.2, 4.3
v  Dockerisation de uPortal
­  https://issues.jasig.org/browse/UP-4592
v  Documentation pour une portlets qui utiliserait AngularJS
­  https://github.com/Jasig/uPortal/blob/master/docs/USING_ANGULAR.md
v  Une Story sur un nouveau Layout RWD
­  Angular-JS UI to replace portal-driven Respondr theme
­  https://issues.jasig.org/browse/UP-4517
ESUP-Days #21 / Apereo Europe 2016
40
Sur la route de Madison : frontend en AngularJS
Ø  https://github.com/UW-Madison-DoIT/angularjs-portal
Ø  Demo
ESUP-Days #21 / Apereo Europe 2016
41
Questions ?
Retour d’expérience sur le déploiement d’uPortal 4.2+
ESUP-Days #21 / Apereo Europe 2016
42
Annexes
v  À venir après la présentation

Contenu connexe

Similaire à Retour d’expérience sur le déploiement d’uPortal 4.2+ responsive à l’UPMC

Reunion nationale karuta nov 2020
Reunion nationale karuta nov 2020Reunion nationale karuta nov 2020
Reunion nationale karuta nov 2020Eric Giraudin
 
Py osv newsletter-032018
Py osv newsletter-032018Py osv newsletter-032018
Py osv newsletter-032018FabMob
 
Py osv newsletter-032018
Py osv newsletter-032018Py osv newsletter-032018
Py osv newsletter-032018FabMob
 
Délivrer de l'architecture en continu.pdf
Délivrer de l'architecture en continu.pdfDélivrer de l'architecture en continu.pdf
Délivrer de l'architecture en continu.pdfJean-Rémy Revy
 
Cocoaheads Montpellier Meetup : L'analyse de Code Statique avec Objective-C /...
Cocoaheads Montpellier Meetup : L'analyse de Code Statique avec Objective-C /...Cocoaheads Montpellier Meetup : L'analyse de Code Statique avec Objective-C /...
Cocoaheads Montpellier Meetup : L'analyse de Code Statique avec Objective-C /...Idean France
 
Scénographie des controverses 2014, Sciences Po, Ecole de la Com
Scénographie des controverses 2014, Sciences Po, Ecole de la ComScénographie des controverses 2014, Sciences Po, Ecole de la Com
Scénographie des controverses 2014, Sciences Po, Ecole de la ComStéphane Rouilly
 
Le dessous des cartes agiles de la transformation numérique de France Télé...
Le dessous des cartes agiles de la transformation numérique de France Télé...Le dessous des cartes agiles de la transformation numérique de France Télé...
Le dessous des cartes agiles de la transformation numérique de France Télé...Alain Buzzacaro
 
Sauvegarder et restaurer l'état des applications mobiles
Sauvegarder et restaurer l'état des applications mobilesSauvegarder et restaurer l'état des applications mobiles
Sauvegarder et restaurer l'état des applications mobilespprem
 
Créez votre propre fond de plan à partir de données OSM en utilisant TileMill
Créez votre propre fond de plan à partir de données OSM en utilisant TileMillCréez votre propre fond de plan à partir de données OSM en utilisant TileMill
Créez votre propre fond de plan à partir de données OSM en utilisant TileMillMakina Corpus
 
Data visualization: enjeux pour le business
Data visualization: enjeux pour le businessData visualization: enjeux pour le business
Data visualization: enjeux pour le businessClement Levallois
 
Esupdays 21: Point sur le projet ESUP cas_toolbox
Esupdays 21: Point sur le projet ESUP cas_toolboxEsupdays 21: Point sur le projet ESUP cas_toolbox
Esupdays 21: Point sur le projet ESUP cas_toolboxLudovic A
 
Le développement web : tour d'horizon
Le développement web : tour d'horizonLe développement web : tour d'horizon
Le développement web : tour d'horizonMicrosoft
 
Production logicielle, outils et pratiques
Production logicielle, outils et pratiquesProduction logicielle, outils et pratiques
Production logicielle, outils et pratiquesJohan Moreau
 
Camp OSV guichon b boost 7-11-18
Camp OSV guichon b boost 7-11-18Camp OSV guichon b boost 7-11-18
Camp OSV guichon b boost 7-11-18FabMob
 
Utiliser l'EDI pour développer en multiplateforme
Utiliser l'EDI pour développer en multiplateformeUtiliser l'EDI pour développer en multiplateforme
Utiliser l'EDI pour développer en multiplateformepprem
 
CV Erwan Le Mével - ELM CREATION
CV Erwan Le Mével - ELM CREATIONCV Erwan Le Mével - ELM CREATION
CV Erwan Le Mével - ELM CREATIONTeester
 
Site WordPress ecommerce Multisite Multilangue
Site WordPress ecommerce Multisite MultilangueSite WordPress ecommerce Multisite Multilangue
Site WordPress ecommerce Multisite MultilangueEmilie LEBRUN
 

Similaire à Retour d’expérience sur le déploiement d’uPortal 4.2+ responsive à l’UPMC (20)

Cv p lescure
Cv p lescureCv p lescure
Cv p lescure
 
Reunion nationale karuta nov 2020
Reunion nationale karuta nov 2020Reunion nationale karuta nov 2020
Reunion nationale karuta nov 2020
 
Py osv newsletter-032018
Py osv newsletter-032018Py osv newsletter-032018
Py osv newsletter-032018
 
Py osv newsletter-032018
Py osv newsletter-032018Py osv newsletter-032018
Py osv newsletter-032018
 
Délivrer de l'architecture en continu.pdf
Délivrer de l'architecture en continu.pdfDélivrer de l'architecture en continu.pdf
Délivrer de l'architecture en continu.pdf
 
Cocoaheads Montpellier Meetup : L'analyse de Code Statique avec Objective-C /...
Cocoaheads Montpellier Meetup : L'analyse de Code Statique avec Objective-C /...Cocoaheads Montpellier Meetup : L'analyse de Code Statique avec Objective-C /...
Cocoaheads Montpellier Meetup : L'analyse de Code Statique avec Objective-C /...
 
Scénographie des controverses 2014, Sciences Po, Ecole de la Com
Scénographie des controverses 2014, Sciences Po, Ecole de la ComScénographie des controverses 2014, Sciences Po, Ecole de la Com
Scénographie des controverses 2014, Sciences Po, Ecole de la Com
 
Le dessous des cartes agiles de la transformation numérique de France Télé...
Le dessous des cartes agiles de la transformation numérique de France Télé...Le dessous des cartes agiles de la transformation numérique de France Télé...
Le dessous des cartes agiles de la transformation numérique de France Télé...
 
Cv kouadio kouame_olivier
Cv kouadio kouame_olivier Cv kouadio kouame_olivier
Cv kouadio kouame_olivier
 
Sauvegarder et restaurer l'état des applications mobiles
Sauvegarder et restaurer l'état des applications mobilesSauvegarder et restaurer l'état des applications mobiles
Sauvegarder et restaurer l'état des applications mobiles
 
Créez votre propre fond de plan à partir de données OSM en utilisant TileMill
Créez votre propre fond de plan à partir de données OSM en utilisant TileMillCréez votre propre fond de plan à partir de données OSM en utilisant TileMill
Créez votre propre fond de plan à partir de données OSM en utilisant TileMill
 
Data visualization: enjeux pour le business
Data visualization: enjeux pour le businessData visualization: enjeux pour le business
Data visualization: enjeux pour le business
 
Esupdays 21: Point sur le projet ESUP cas_toolbox
Esupdays 21: Point sur le projet ESUP cas_toolboxEsupdays 21: Point sur le projet ESUP cas_toolbox
Esupdays 21: Point sur le projet ESUP cas_toolbox
 
Le développement web : tour d'horizon
Le développement web : tour d'horizonLe développement web : tour d'horizon
Le développement web : tour d'horizon
 
Production logicielle, outils et pratiques
Production logicielle, outils et pratiquesProduction logicielle, outils et pratiques
Production logicielle, outils et pratiques
 
Camp OSV guichon b boost 7-11-18
Camp OSV guichon b boost 7-11-18Camp OSV guichon b boost 7-11-18
Camp OSV guichon b boost 7-11-18
 
Utiliser l'EDI pour développer en multiplateforme
Utiliser l'EDI pour développer en multiplateformeUtiliser l'EDI pour développer en multiplateforme
Utiliser l'EDI pour développer en multiplateforme
 
Classe inversée
Classe inverséeClasse inversée
Classe inversée
 
CV Erwan Le Mével - ELM CREATION
CV Erwan Le Mével - ELM CREATIONCV Erwan Le Mével - ELM CREATION
CV Erwan Le Mével - ELM CREATION
 
Site WordPress ecommerce Multisite Multilangue
Site WordPress ecommerce Multisite MultilangueSite WordPress ecommerce Multisite Multilangue
Site WordPress ecommerce Multisite Multilangue
 

Plus de Ludovic A

ESUPDAYS 26 : CAS 5.2 - Retour d'expérience Sorbonne Université
ESUPDAYS 26 : CAS 5.2 - Retour d'expérience Sorbonne UniversitéESUPDAYS 26 : CAS 5.2 - Retour d'expérience Sorbonne Université
ESUPDAYS 26 : CAS 5.2 - Retour d'expérience Sorbonne UniversitéLudovic A
 
10 ans après : une nouvelle plateforme de captation et diffusion en direct et...
10 ans après : une nouvelle plateforme de captation et diffusion en direct et...10 ans après : une nouvelle plateforme de captation et diffusion en direct et...
10 ans après : une nouvelle plateforme de captation et diffusion en direct et...Ludovic A
 
10 ans après, une nouvelle plateforme de captation et de diffusion en direct ...
10 ans après, une nouvelle plateforme de captation et de diffusion en direct ...10 ans après, une nouvelle plateforme de captation et de diffusion en direct ...
10 ans après, une nouvelle plateforme de captation et de diffusion en direct ...Ludovic A
 
Esupdays 20 : Etat d'avancement du projet esup-CAS v4
Esupdays 20 : Etat d'avancement du projet esup-CAS v4Esupdays 20 : Etat d'avancement du projet esup-CAS v4
Esupdays 20 : Etat d'avancement du projet esup-CAS v4Ludovic A
 
"Esup CAS Packaging" : Deploy and customize easily a CAS4 server
"Esup CAS Packaging" : Deploy and customize easily a CAS4 server"Esup CAS Packaging" : Deploy and customize easily a CAS4 server
"Esup CAS Packaging" : Deploy and customize easily a CAS4 serverLudovic A
 
Happy birthday "monUPMC": 9 years of Portal at UPMC
Happy birthday "monUPMC": 9 years of Portal at UPMCHappy birthday "monUPMC": 9 years of Portal at UPMC
Happy birthday "monUPMC": 9 years of Portal at UPMCLudovic A
 

Plus de Ludovic A (6)

ESUPDAYS 26 : CAS 5.2 - Retour d'expérience Sorbonne Université
ESUPDAYS 26 : CAS 5.2 - Retour d'expérience Sorbonne UniversitéESUPDAYS 26 : CAS 5.2 - Retour d'expérience Sorbonne Université
ESUPDAYS 26 : CAS 5.2 - Retour d'expérience Sorbonne Université
 
10 ans après : une nouvelle plateforme de captation et diffusion en direct et...
10 ans après : une nouvelle plateforme de captation et diffusion en direct et...10 ans après : une nouvelle plateforme de captation et diffusion en direct et...
10 ans après : une nouvelle plateforme de captation et diffusion en direct et...
 
10 ans après, une nouvelle plateforme de captation et de diffusion en direct ...
10 ans après, une nouvelle plateforme de captation et de diffusion en direct ...10 ans après, une nouvelle plateforme de captation et de diffusion en direct ...
10 ans après, une nouvelle plateforme de captation et de diffusion en direct ...
 
Esupdays 20 : Etat d'avancement du projet esup-CAS v4
Esupdays 20 : Etat d'avancement du projet esup-CAS v4Esupdays 20 : Etat d'avancement du projet esup-CAS v4
Esupdays 20 : Etat d'avancement du projet esup-CAS v4
 
"Esup CAS Packaging" : Deploy and customize easily a CAS4 server
"Esup CAS Packaging" : Deploy and customize easily a CAS4 server"Esup CAS Packaging" : Deploy and customize easily a CAS4 server
"Esup CAS Packaging" : Deploy and customize easily a CAS4 server
 
Happy birthday "monUPMC": 9 years of Portal at UPMC
Happy birthday "monUPMC": 9 years of Portal at UPMCHappy birthday "monUPMC": 9 years of Portal at UPMC
Happy birthday "monUPMC": 9 years of Portal at UPMC
 

Dernier

SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxSUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxssuserbd075f
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film françaisTxaruka
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.Franck Apolis
 
gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprisesMajdaKtiri2
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.Txaruka
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne FontaineTxaruka
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film françaisTxaruka
 
Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfachrafbrahimi1
 
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptMécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptssusercbaa22
 
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfCOURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfabatanebureau
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptxMalikaIdseaid1
 
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...M2i Formation
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptxSAID MASHATE
 
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxssusercbaa22
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptssusercbaa22
 

Dernier (16)

SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxSUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film français
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.
 
Evaluación Alumnos de Ecole Victor Hugo
Evaluación Alumnos de Ecole  Victor HugoEvaluación Alumnos de Ecole  Victor Hugo
Evaluación Alumnos de Ecole Victor Hugo
 
gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprises
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne Fontaine
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film français
 
Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdf
 
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptMécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
 
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfCOURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptx
 
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
 
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.ppt
 

Retour d’expérience sur le déploiement d’uPortal 4.2+ responsive à l’UPMC

  • 1. ESUP-Days #21 / Apereo Europe 2016 1ESUP-Days #21 Apereo Europe 2016 Feb. 1st-2nd, 2016 Paris Retour d’expérience sur le déploiement d’uPortal 4.2+ responsive à l’UPMC Christian COUSQUER Ludovic AUXEPAULES
  • 2. ESUP-Days #21 / Apereo Europe 2016 2 Présentation v  Adjoint du chef de Pôle « Études et Développements » à la DSI, Administrateur du portail ENT à l’UPMC, RSSI suppléant de l’UPMC ­  Travaille sur uPortal depuis 2011 ­  ludovic.auxepaules@upmc.fr v  Ingénieur en développement et déploiement d’applications au Pôle « Études et Développements » à la DSI, Administrateur du portail ENT à l’UPMC ­  Travaille sur uPortal depuis 2005 ­  christian.cousquer@upmc.fr Ø  Ludovic AUXÉPAULES Ø  Christian COUSQUER
  • 3. ESUP-Days #21 / Apereo Europe 2016 3 Plan v  Rappel sur le contexte à l’UPMC v  Retours sur la stratégie de migration adoptée v  Point sur un développement maison du socle (Off-canvas, sticky nav, fly-out menus) v  Présentation rapide des Dynamic Skins v  Focus sur l’adaptation d’une portlet existante au Responsive Web Design à travers une Proof Of Concept sur Apereo Email-Preview v  Point sur les Simple Content Management Portlet Advanced CMS version Responsive Web Design avec Bootstrap v  Informations sur le projet uPortal 4.2, 4.3 d’Apereo et sur le front office AngularJS myUW (University of Wisconsin)
  • 4. ESUP-Days #21 / Apereo Europe 2016 4 Contexte Retour d’expérience sur le déploiement d’uPortal 4.2+
  • 5. ESUP-Days #21 / Apereo Europe 2016 5 Le portail ENT de l’UPMC : monUPMC v  2 VMS dédiées à CAS v  4 VMS dédiées au portail monUPMC ­  Centos 6, 4GB RAM, 2 CPU cores ­  Apache Httpd 2.2 avec mod_proxy_ajp, Apache Tomcat 6.0 ­  Load balancing et fallback : Big Iron F5 ­  9 onglets thématiques : 3 sur le guest ­  20-30 services "poussés" dépendant du profil utilisateur ­  ≈ 25 portlets différentes ­  ≈ 130 instances de portlets ­  ≈ 50 Advanced CMS portlets Ø  En production sur un uPortal 4.0 + depuis septembre 2012 Ø  Organisation des onglets et des services
  • 6. ESUP-Days #21 / Apereo Europe 2016 6 monUPMC version 4.0.1x Ø  Vue Desktop (thème Universality)
  • 7. ESUP-Days #21 / Apereo Europe 2016 7 monUPMC version 4.0.1x Ø  Vue mobile mUniversality
  • 8. ESUP-Days #21 / Apereo Europe 2016 8 Le portail ENT de l’UPMC v  En production depuis 2005 v  Membre EsupPortail depuis 2005 v  Signatures de 2 Contributor License Agreements (CLA) Apereo v  Stratégie de produit : On colle de très près au produit de base, toute amélioration est transmise au code source du produit de base. Ø  Stratégie de déploiement adoptée
  • 9. ESUP-Days #21 / Apereo Europe 2016 9 Continuateurs versus Novateurs v  « Nous sommes des “continuateurs”, on peut dire d’où on vient, ce que l’on fait actuellement et un peu où l’on va… v  « Un novateur, c’est quelqu’un qui déteste ses prédécesseurs… et surtout détestera ses successeurs. » ( Dialogue entre Pierre Renoir et Louis Jouvet)
  • 10. ESUP-Days #21 / Apereo Europe 2016 10 Retour sur la stratégie de migration Retour d’expérience sur le déploiement d’uPortal 4.2+
  • 11. ESUP-Days #21 / Apereo Europe 2016 11 Deux projets parallèles, distincts et complémentaires v  Tous les services existants doivent migrer (Migration « Iso fonctionnelle ») v  Proposition de skin conforme au Dynamic Skin Layout Manager v  Responsive Web Design partout, plus de vues mobiles spécifiques v  Plus de sécurité, de souplesse de gestion et de délégation de droits d'administration à des administrateurs de tenant v  Le partage d'une même plateforme technique augmente le niveau de sécurité, de surveillance et ouvre la voie à de futures mutualisations v  Implique les questions de multi-authentification (CAS, Shibboleth…) Ø  Mettre à jour le socle et les portlets en uPortal 4.2+ - 4.3 Ø  Basculer sur une architecture multi-tenants à partir d’uPortal 4.2+
  • 12. ESUP-Days #21 / Apereo Europe 2016 12 Pour l’instant, on accumule des munitions, en attendant un feu vert stratégique. v  « Pas du tout ! Défions le présage ! Même la chute d’un moineau est réglée par la Providence. Si ce doit être pour maintenant, ce ne sera plus à venir. Si ce n’est plus à venir, c’est pour maintenant. Et si ce n’est pas pour maintenant, pourtant cela viendra. L’essentiel, c’est d’être prêt. » William Shakespeare - Hamlet A.V S.2 v  « Not whit, we defy augury; there is special providence in the fall of sparrowe. If it be now, 'tis not to come if it be not to come, it will be now. If it be not now, yet it will come; the readiness is all. » William Shakespeare - Hamlet A.V S.2
  • 13. ESUP-Days #21 / Apereo Europe 2016 13 Point sur un développement du socle Off-canvas, sticky nav, fly-out menus Retour d’expérience sur le déploiement d’uPortal 4.2+
  • 14. ESUP-Days #21 / Apereo Europe 2016 14 Off-canvas, sticky nav, fly-out menus v  Les fly-outs menus (menus déroulants sous les onglets) ne sont pas portés sur le produit de base et on doit être iso-fonctionnel v  Optionnel v  Sur mobile un utilisateur du portail a tendance à beaucoup trop faire défiler verticalement ­  Nécessité d’un développement sur le socle : §  Une navigation principale en Off-Canvas (Optionnelle) §  Une sticky nav avec un petit effet d’animation pour changer d’onglet sur mobile (1er breakpoint) sur une idée d’Oackland University – Merci Aaron Grant ! Ø  Un régression dans le passage de Universality à Respondr Ø  Un petit défaut d’utilisabilité sur mobile du fait du RWD
  • 15. ESUP-Days #21 / Apereo Europe 2016 15 Fixe fly-out menus (menu déroulants)
  • 16. ESUP-Days #21 / Apereo Europe 2016 16 Off-Canvas, sticky nav soumise à Apereo v  Pull Request : Nojira add offcanvas stickynav flyout #598 ­  https://github.com/Jasig/uPortal/pull/598
  • 17. ESUP-Days #21 / Apereo Europe 2016 17 Présentation des dynamic skins Retour d’expérience sur le déploiement d’uPortal 4.2+
  • 18. ESUP-Days #21 / Apereo Europe 2016 18 Dynamic Skins - Tout est portlet v  Si vous avez créé un nouveau skin (Custom Skin), Il faut modifier uPortal/uportal-war/src/main/data/default_entities/portlet-definition/dynamic- respondr-skin.portlet-definition.xml
  • 19. ESUP-Days #21 / Apereo Europe 2016 19 FOCUS Comment adapter une portlet existante au Responsive Web Design Retour d’expérience sur le déploiement d’uPortal 4.2+ Proof Of Concept sur Apereo Email-Preview 2.2.0-SNAPSHOT
  • 20. ESUP-Days #21 / Apereo Europe 2016 20 Préambule v  Niveau puce 1 ­  Niveau puce 2 ­  Niveau puce 2 §  Niveau puce 3 §  Niveau puce 3 –  Niveau puce 4 »  Niveau puce 5 –  Niveau puce4 §  Niveau puce 3 ­  Niveau puce 2 v  Niveau puce 1 v  Baby Steps
  • 21. ESUP-Days #21 / Apereo Europe 2016 21 Étapes pour « responsiver » une Portlet Ø  Analyse de l’existant Ø  Trouver un angle d’attaque Ø  Intégration du html5 dans les jsp, jsf Ø  Intégration du JavaScript Ø  Intégration du LESS, SASS, CSS Ø  Tests de performances, multi-devices, etc. Ø  Réaliser une mock-up statique Ø  Étude du marché en RWD
  • 22. ESUP-Days #21 / Apereo Europe 2016 22 Email-Preview 2.2.0-SNAPSHOT – Proof of concept v  Une rollup avec notifications de nouveaux mails Ø  Analyse de l’existant
  • 23. ESUP-Days #21 / Apereo Europe 2016 23 Email-Preview 2.2.0-SNAPSHOT – Proof of concept v  Prévisualisation de la liste des mails Ø  Analyse de l’existant
  • 24. ESUP-Days #21 / Apereo Europe 2016 24 Email-Preview 2.2.0-SNAPSHOT – Proof of concept v  Prévisualisation du mail Ø  Analyse de l’existant
  • 25. ESUP-Days #21 / Apereo Europe 2016 25 Email-Preview 2.2.0-SNAPSHOT – Proof of concept v  Le changement de « page » entre l’affichage de la liste des mails et l’affichage du message sélectionné se fait en modifiant la propriété css « display » de « block » à « none » via JavaScript, on reste sur le même DOM… v  Rien ne m’empêche de vouloir afficher les deux vues en même temps Ø  Trouver un angle d’attaque var showEmailList = func4on(that) { that.locate("loadingMessage").hide(); that.locate("emailMessage").hide(); that.locate("errorMessage").hide(); that.locate("emailList").show(); }; … var showEmailMessage = func4on(that) { that.locate("loadingMessage").hide(); that.locate("emailList").hide(); that.locate("errorMessage").hide(); that.locate("emailMessage").show(); }; var showEmailList = func4on(that) { that.locate("loadingMessage").hide(); that.locate("emailMessage").show(); that.locate("errorMessage").hide(); that.locate("emailList").show(); }; ... var showEmailMessage = func4on(that) { that.locate("loadingMessage").hide(); that.locate("emailList").show(); that.locate("errorMessage").hide(); that.locate("emailMessage").show(); };
  • 26. ESUP-Days #21 / Apereo Europe 2016 26 Email-Preview 2.2.0-SNAPSHOT – Proof of concept v  FilamentGroup ­  https://github.com/filamentgroup/jqm-mail Ø  Recherche sur le marché, qu’est ce qu’il se fait en RWD
  • 27. ESUP-Days #21 / Apereo Europe 2016 27 Email-Preview 2.2.0-SNAPSHOT – Proof of concept v  Google App Gmail Ø  Recherche sur le marché, qu’est ce qu’il se fait en RWD
  • 28. ESUP-Days #21 / Apereo Europe 2016 28 Email-Preview 2.2.0-SNAPSHOT – Proof of concept v  FilamentGroup jqm-mail ­  Problème : utilise jQuery Mobile au moment où on le retire du socle ­  Mais l’idée du repli entre dossiers, de la liste des mails et du mail sélectionné intéressante ­  Un peu moins d’intérêts sur l’ouverture du mail sélectionné dans la liste des mails ­  Principe intéressant v  Google App Gmail ­  App native, mais ce n’est pas un problème ­  Comportement différents selon iphone/ipad ­  Off-canvas triple (option de dossiers / liste des mails / affichage du message / écrire|répondre à un message) ­  Très intéressant de le combiner avec FilamentGroup-jqm-mail Ø  Recherche sur le marché, qu’est ce qu’il se fait en RWD
  • 29. ESUP-Days #21 / Apereo Europe 2016 29 Email-Preview 2.2.0-SNAPSHOT – Proof of concept v  2 – 3 jours de travail ­  HTML5, JavaScript, CSS3 ­  S’appuyer sur Bootstrap / jQuery uniquement ­  Pas de JavaScript / lib JS de la portlet ­  S’appuyer sur certaines portion de code existant dans la jsp sans script/css ­  Ne pas retirer de fonctionnalités, alléger le code ­  S’amuser, prendre du plaisir v  DEMONSTRATION Ø  Réaliser une mock-up
  • 30. ESUP-Days #21 / Apereo Europe 2016 30 Email-Preview 2.2.0-SNAPSHOT – Proof of concept v  Détecter l’état du device selon les css et le passer au JS pour injecter des comportements différents selon les états ­  Être capable de détecter l’état du device à n’importe quel moment est très important pour plein de raisons et c’est important que les JS et CSS des applications web soient synchronisées ensemble. §  Device State Detection with CSS Media Queries and JavaScript https://davidwalsh.name/device-state-detection-css-media-queries-javascript David Walsh - Senior Web Developer and software engineer for Mozilla ­  Une petite amélioration pour éviter que les aveugles avec une synthèse vocale ne lise pas l’état du device ­  Cent fois plus efficace que de sniffer le user-agent côté serveur, de travailler en JavaScript à calculer les outer-width, les width, etc. Un cauchemar… Ø  Réaliser une mock-up – quelques ressources utiles // Usage subscribe('/device-state/change', func4on(state) { if(state == “mobile”) { // Do whatever } else if(state == “tablet”) { // Do whatever } else if(state == “desktop”) { // Do whatever } …. });
  • 31. ESUP-Days #21 / Apereo Europe 2016 31 Email-Preview 2.2.0-SNAPSHOT – Proof of concept v  Un seul objectif : avoir un DOM quasi-identique entre la Mock-up statique et le code généré par la portlet ­  Si un composant JS veut un élément particulier pour fonctionner, mettez lui son élément, tout est rattrapable en CSS et avec des attribut ARIA §  Exemple 1 Exemple 2 v  Mettez à jour les lib JavaScript v  Faire avec le code existant (Fluid…) ­  Exemple dans email-browser.js (570 lignes): §  10 occurrences de « this » §  +150 occurrences de « that » !!!!!!!!!!!!! Ø  Intégration du html5 dans les jsp Ø  Intégration du JavaScript that.locate(“xxx").click( func4on(){ doThis(that, this); });
  • 32. ESUP-Days #21 / Apereo Europe 2016 32 Email-Preview 2.2.0-SNAPSHOT – Proof of concept v  Travailler pour le plus petit écran d’abord v  Utilisez le mixins LESS du socle pas des mixins avec une licence improbable… cela simplifiera la migration pour bootstrap 4 v  En animant des éléments - tout élément , si petit soit-il – animez seulement les propriétés qui sont accélérés par le GPU . En CSS, cela signifie en utilisant la propriété transform translate3d qui est l'accélérée matériellement , plutôt que d’utiliser les propriétés top, left, right, bottom qui ne le sont pas. §  http://blog.forecast.io/its-not-a-web-app-its-an-app-you-install-from-the-web/ Ø  Intégration du LESS, SASS, CSS
  • 33. ESUP-Days #21 / Apereo Europe 2016 33 Email-Preview 2.2.0-SNAPSHOT – Proof of concept Ø  Démo
  • 34. ESUP-Days #21 / Apereo Europe 2016 34 On a modifié juste le côté client. Rien côté serveur, même pas les lib JavaScript (euh si, montée de versions…) côté client. v  « Ô Dieu ! Je pourrais être enfermé dans une coquille de noix et me tenir pour le roi d’un espace infini… » William Shakespeare – Hamlet A.II S.2 v  « O God, I could be bounded in a nutshell and count myself a king of infinite space… » William Shakespeare – Hamlet A.II S.2
  • 35. ESUP-Days #21 / Apereo Europe 2016 35 Simple Content Management Portlet Advanced CMS version Bootstrap Retour d’expérience sur le déploiement d’uPortal 4.2+
  • 36. ESUP-Days #21 / Apereo Europe 2016 36 Retour d’expérience sur le déploiement d’uPortal 4.2+ v  Réalisation d’une quinzaine de templates html5 en bootstrap pour générer une centaine de portlets rapidement en copier coller. v  Passez par les data attributes de bootstrap ­  http://getbootstrap.com/css/ ­  http://getbootstrap.com/components/ ­  http://getbootstrap.com/javascript/ v  DEMO Ø  Objectif : Publier une centaine de portlet en 4 jours Ø  Démo
  • 37. ESUP-Days #21 / Apereo Europe 2016 37 Point sur le projet Apereo uPortal 4.2, 4.3 et sur le front office AngularJS myUV (University of Wisconsin) Retour d’expérience sur le déploiement d’uPortal 4.2+
  • 38. ESUP-Days #21 / Apereo Europe 2016 38 Point sur le projet uPortal 4.2, 4.3 v  MAJ portlet api à 2.1 v  La Fragment-admin-exit portlet est intégrée dans le processus de skin Respondr v  2 méthodes des DB PAGS utilisent le cache maintenant (JpaPersonAttributesGroupDefinitionDao) v  Le search-launcher est disponible pour le guest v  Fixes sur des performances mauvaises des DB-based PAGS v  Amélioration des performances du Marketplace v  Fixes sur Resource Aggregation v  Fixe sur les tenants Manager v  Fixes SmartLdapGroupStore v  Pleins d’autres fixes … Ø  Fixes en 4.2.1 le 30 Septembre 2015 Ø  Fixes en 4.3 en cours
  • 39. ESUP-Days #21 / Apereo Europe 2016 39 Point sur le projet uPortal 4.2, 4.3 v  Dockerisation de uPortal ­  https://issues.jasig.org/browse/UP-4592 v  Documentation pour une portlets qui utiliserait AngularJS ­  https://github.com/Jasig/uPortal/blob/master/docs/USING_ANGULAR.md v  Une Story sur un nouveau Layout RWD ­  Angular-JS UI to replace portal-driven Respondr theme ­  https://issues.jasig.org/browse/UP-4517
  • 40. ESUP-Days #21 / Apereo Europe 2016 40 Sur la route de Madison : frontend en AngularJS Ø  https://github.com/UW-Madison-DoIT/angularjs-portal Ø  Demo
  • 41. ESUP-Days #21 / Apereo Europe 2016 41 Questions ? Retour d’expérience sur le déploiement d’uPortal 4.2+
  • 42. ESUP-Days #21 / Apereo Europe 2016 42 Annexes v  À venir après la présentation