Bonjour,
nous avons produit une nouvelle version disponible ici : https://gitlab.nuiton.org/codelutin/mjol/builds/artifacts/mjol-1.1.21/downlo... https://gitlab.nuiton.org/codelutin/mjol/builds/artifacts/mjol-1.1.21/downlo... Elle apporte : - ajout de la modification du mot de passe admin - corrections des 2 défauts graphiques remontés - modification d'une chaîne de caractères.
Merci pour les modifications. Nous voyons biens la partie profil désormais pour la partie admin, néanmoins l'update de mot de passe ne fonctionne pas. Avez-vous une idée ? Voici la trace complète : 10-Apr-2017 17:17:30.490 SEVERE [ajp-nio-8009-exec-7] org.nuiton.spgeed.Query.executeUpdate Can't execute query 'UPDATE person SET password = ? WHERE email = 'admin')' with args: [mjol4ever] 10-Apr-2017 17:17:30.491 SEVERE [ajp-nio-8009-exec-7] com.mjol.backend.SQLExceptionMapper.toResponse Error SQL org.postgresql.util.PSQLException: ERROR: syntax error at or near "RETURNING" Position: 71 at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2284) at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2003) at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:200) at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:424) at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:161) at org.postgresql.jdbc.PgPreparedStatement.executeQuery(PgPreparedStatement.java:114) at org.nuiton.spgeed.Query.getResult(Query.java:167) at org.nuiton.spgeed.Query.executeUpdate(Query.java:295) at org.nuiton.spgeed.ClassCreator.lambda$generate$1(ClassCreator.java:100) at com.mjol.backend.dao.DatabaseDao_$$_jvst360_0.updatePasswordAdmin(DatabaseDao_$$_jvst360_0.java) at com.mjol.backend.service.AdminService.updateProfile(AdminService.java:96) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:139) at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:295) at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:249) at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:236) at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:402) at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:209) at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:221) at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56) at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:474) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349) at org.apache.coyote.ajp.AjpProcessor.service(AjpProcessor.java:478) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:798) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1434) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745)
=> Nous sommes effectivement d’accord avec vous sur la restriction ip de la partie administration, ceci nous parait tout de même moins critique que de continuer a utiliser le mot de passe par défaut que vous aviez établit durant le développement. Le hic c’est que la partie administration est tellement réfléchi au niveau fonctionnel que nous n’avons même pas possibilité de le changer via l’interface. Nous avons rajouté un onglet dans la partie administration pour changer le mot de passe administrateur. 2)"Avez-vous pu tester la version livrée hier ?" => Nous avons recenser quelques bugs graphiques suite au déploiement : - sur le formulaire d’édition des prestataire (assez gênant pour rendre actif/inactif un prestataire) https://www.dropbox.com/s/udg8pdy8doavvqt/bug%20admin%206.png?dl=0 - sur la popin des commentaires prestataires https://www.dropbox.com/s/665zismenmxy7f4/bug%20admin%207.png?dl=0 Nous avons corrigé ces défauts. Ce qui est fait est fait, nous ne reviendrons pas dessus, mais admettez à minima que votre solution n'est certainement pas la plus adaptée à un site ou le référencement reste un des enjeux cruciaux. Donc quand on est professionnel du web, ne pas se soucier des ces problématiques relève de l'hérésie. En lisant cet article toutefois, cela nous permet d'envisager une solution à ces soucis. Nous maitrisons les headless browser tel que phantomJS ou casperJS. Nous devons encore étudier la faisabilité de la chose mais dans les grosses lignes, il nous suffirait d'identifier les user agent correspondants aux bots d'indexation, pour leur servir un contenu prégénéré par phantomJS, qui aura été préalablement mis en cache sur le serveur afin de conserver un temps de réponse optimal. Le fait d'utiliser phantomJS ou casperJS n'amélioreront pas les choses
Le Fri, 7 Apr 2017 16:41:18 +0200, Monjardinieronline® <monjardinieronline@gmail.com> a écrit : pour le référencement Google car c'est exactement ce qu'il fait déjà et il déconseille donc d'utiliser ces pratiques pour du SEO depuis 2015 (cela peut-être réalisé pour les autres moteurs de recherche qui représentent moins de 6% du marché (chiffres de novembre 2016 - Google : 94,1% – Bing : 3,4%, Yahoo! : 1,8%.) De plus, nous venons de voir que Google indexe bien le contenu des pages. Par exemple sur la capture d'écran en pièce jointe, c'est bien le contenu de la page (et non les meta) qui est affiché. Preuve que Google indexe bien le contenu. Le site est très récent et il lui faudra du temps pour remonter dans les recherches, mais il est correctement indexé. Un des meilleurs moyens pour améliorer le référencement sont les rétro-liens provenant de sites connus. Si nous reprenons le contenu de votre article, rédigé par un étudiant, nous pouvons voir que nous mettons déjà en place les bonnes pratiques, à savoir l'utilisation de l'API pushState, recommandée par Google. Les autres bonnes pratiques énoncées dans l'article sont obsolètes pour Google depuis 2015, comme annoncé par Google lui-même.
Rédigé par un étudiant en fin de master qui fait son alternance dans une boite de SEO effectivement, donc nous supposons qu'il en connais un minimum sur le sujet. Nous cherchions un contenu très récent, nous aurions dû effectivement vous partager d'autres sources. Il y a des boites qui font des plugins de pré-rendu pour les site en full js comme http://www.brombone.com/ ou encore https://prerender.io, ça ne doit pas être pour rien. Cela semble être une querelle sans fin de toute façon, il suffit de voir ici (les commentaires aussi sont intéressants) : https://www.grobmeier.de/seo-and-angular-20012016.html Ce que nous en retenons à date, c'est que si ça passe le fetch as google, ça devrais aller effectivement. Votre screenshot prouve bien l'indexation du contenu du DOM après modification de celui-ci par du javascript, nous attendrons quelques temps pour nous faire un vrai avis sur la réalité de la bonne indexation par google et consort. Dans la version actuelle du site, qui a peu de contenu texte indexable et de fonctions destinées aux end users, cela semble effectivement moins critique que nous le pensions d'un point de vue indexation sur google (uniquement). Nous ne pouvons que continuer de vous recommander de rester très vigilant tout de même sur ces notions. Tout ne semble pas rose que ce soit d'un côté ou de l'autre. Google étant une boite noire, personne ne peut avoir d'affirmation trop poussée sur le sujet. Il est de plus en plus compliqué de bien se faire référencer par google, et ça n'ira pas en s'améliorant puisque google a tout intérêt a rendre son page rank le plus opaque et pertinent possible. Donc autant vous simplifier la vie au maximum, quitte à faire du java, l'utilisation de JSP éviterais ces soucis la et d'autres contraintes d'un site full js : compatibilité, nécessité de recompiler et mettre à jour tout le site même pour un simple texte, indexation sur des fonctions ou sites plus complexe. Très sincèrement même après de nombreuses lectures (pour et contre), toutes en reviennent au même principe : à utiliser avec parcimonie voir à proscrire pour de très gros sites. Maintenant à vous de voir pour vos futurs projets, même si les recommandations de google sur le sujet on changées depuis 2 ans, cela reste assez frais et les perfs SEO de ces site la même si indexable doivent rester bien moindre qu'un site au rendu plus classique qui ont déjà pas mal de soucis à se faire correctement référencer.
5) Nos clients ont des difficultés à créer un compte client : après édition du formulaire client, ils ne comprennent pas qu'ils doivent se rendre sur leur boite mail pour valider leur compte via le lien envoyer. Pour une meilleur compréhension de leur part serez t'il possible sur la prochaine version de modifier le texte par celui ci : "Veuillez confirmer votre compte en cliquant sur le lien reçu dans votre boite mail" Nous avons modifié le texte. Merci pour la modification. 7) "Nous pouvons être disponibles le 13 de 9h à 14h dans vos locaux ou bien le 27." => Ok pour le 13 avril 2017 dans nos locaux : 102 avenue henry cheron - 14000 Caen Très bien à Jeudi.
Bien à vous -- Upload images <http://www.monjardinieronline.fr> *Mathieu FOSSE* /Webmaster m.fosse@mjol.fr/ www.monjardinieronline.fr <http://www.monjardinieronline.fr> // --- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. https://www.avast.com/antivirus