Changement de Visualisation des documents depuis la V4

L’application sur laquelle je travaille actuellement permet de de déposer des documents de tout type.
remarques des utilisateurs sur cette fonctionnalité en v4 :

  • l’icone était bcp plus parlant en V3 qu’en V4
  • en cliquant sur l’icone dans la liste en V3, on pouvait voir de quel type de document il s’agit et l’ouvrir ou l’enregistrer. En V4, il faut modifier la liste pour connaitre le type de document et le télécharger
  • nous n’avons pas office 365 … les documents office ne s’ouvrent plus. Et ça c’est vraiment pénalisant. Il faut systématiquement les télécharger, et donc vu la rq au dessus, bcp de clique en plus.

quelles solutions pouvons nous mettre en ouvre pour retrouver un fonctionnement nécessaire pour les utilisateurs finaux ?

Merci pour ce retour, mais il doit y avoir une incompréhension :

C’est à dire ? un document c’est une icone avec le nom du fichier, ils veulent une icone par type de fichier (pdf, doc, xls…) ?

En V4 l’affichage est soit une icone simple, soit le nom du fichier :

image

qui donne

image

Oui, le nouveau preview utilise effectivement les services Office pour le types bureautiques, on peut désactiver cette fonctionnalité si ce n’est pas autorisé (via hook global ou par objet et type de document).

  • param system USE_DOC_PREVIEW = no
  • ou globalement pour certains docs Grant/PlatformHooks : boolean canPreviewDocument(grant, doc)
  • ou plus finement par attribut Object hook : boolean canPreview(field, doc)

En V3 cette fonctionnalité n’existait pas, il n’y a jamais eu de preview online. Il fallait toujours télécharger le document = l’afficher dans le navigateur s’il avait le plugin (comme un pdf) ou dans son office en local. Ca reste inchangé.

Bref je pense qu’il faut simplement reparamétrer vos attributs pour répondre au besoin.

Et j’oubliai USE_DOC_PREVIEW = no pour ne pas utiliser le mode preview du tout…
mais c’est dommage pour les formats textuels non bureautiques (txt xml…)

pour le rendering de document, je ne connaissait pas … comme quoi, j’ai encore des trucs à apprendre !
pour les documents office, en V3, ça donnait ça :
avec firefox en utilisant ouvrir avec

ou avec chrome, le fichier était automatiquement téléchargé en cliquant sur l’icone
un seul clique suffisait.
En v4, le clique sur l’icone ouvre une fenêtre pour dire que le fichier doit être téléchargé. il faut alors faire un clique droit, enregistrer sous … ou modifier la liste, télécharger puis ouvrir le doc

La V3 fait très vintage et pique un peu les yeux :wink:

Si tu désactives via USE_DOC_PREVIEW = no, ça doit normalement se comporter comme en V3.
Le click télécharge le doc, ensuite ce que fait le navigateur n’est plus configurable dans Simplicité.

Ensuite tu peux mettre aussi ce paramètre à “yes” pour les users designer “ADMIN”, pour qu’ils puissent avoir le preview des docs technique (log, xml…) c’est quand même plus simple que de tout le temps les télécharger.

Sinon tu peux faire le tri dans le GrantHooks V4 boolean canPreviewDocument(Grant grant, DocumentDB doc)
pour retourner false sur les formats bureautique ou pdf (en testant le mime type, ou l’extension du nom du fichier).

on a encore des applis en V3 … :frowning: mais justement, ça se termine

ok, je teste ça

Ok dis moi,

et on va regarder pour contextualiser l’icone, car c’est vrai que le passage en font awesome à l’époque à fait perdre cette fonctionnalité. Les nouvelles versions de la font embarquent les icones classiques :

image

j’ai l’impression que le hook canPreview n’est pas exécuté quand le paramètre USE_DOC_PREVIEW = no

oui c’est un verrou global.
Il faut le mettre à “yes” pour spécialiser par hook qui fait quoi, par défaut les hooks retournent “true”.

ok donc si je veux le comportement de la V3, il faut mettre à no. et du coup, on ne peut pas traiter dans le hook certains types de document. genre les PDF en préview, ce serait bien.

alors je vais laisser à “no”

Pour activer le hook

  • il faut mettre USE_DOC_PREVIEW = yes
  • et dans le hook, retourner “false” sur les types à exclure (upload direct)
  • tous les autres à “true” auront un preview (avec un bouton upload indirect)

Quelque chose du style :

boolean canPreviewDocument(Grant grant, DocumentDB doc) { 
  // pas de doc pas de preview
  if (doc==null)
    return false;
  String name = doc.getName();
  // si le nom n'est pas en mémoire on utilise le path du dbdoc
  if (Tool.isEmpty(name))
    name = doc.getPath();
  // pas de nom pas de preview
  if (Tool.isEmpty(name))
    return false;

  name = name.toLowerCase();
  if (name.endsWith(".doc") || name.endsWith(".docx"))
     return false;
  if (name.endsWith(".xls") || name.endsWith(".xlsx"))
     return false;
  if (name.endsWith(".ppt") || name.endsWith(".pptx"))
     return false;
  return true;
}

c’est ce que j’ai testé mais retourner false ne propose pas l’upload, ça affiche affiche ce message :

Ok je comprends quand le hook retourne “false” :

  • le bouton Preview ne devrait pas s’afficher
  • uniquement celui d’upload devrait être présent sur le Field

Le hook est surement appelé au click du bouton preview avec un msg d’erreur UI.
Il faudrait l’appeler avant l’affichage pour ne pas afficher de bouton, ce serait mieux en terme UX. On va regarder si c’est faisable quand Simplicité remonte les données du formulaire dans les meta-data.

L’évolution sera poussée ​dans les prochaines révisions V4+V5 :

  • en liste : directement faire l’upload du document s’il n’y a pas de preview pour ce document (et éviter le popup qui dit preview impossible)
  • en formulaire : retirer l’icone Preview si pas d’upload autorisé

Et également contextualiser l’icone en fonction du type de fichier comme cela avait été fait en V3.