Problème récupération de site sur un Dashlet

cancel
Showing results for 
Search instead for 
Did you mean: 
alucard
Member II

Re: Problème récupération de site sur un Dashlet

Bonjour,
voici le chemin

    …\share\WEB-INF\classes\alfresco\site-webscripts\org\lafresco\components\dashlets
donc tout les fichier sont dans le dossier dahlets ci dessus

    dashlets
                     |—test.get.html.ftl
                     |—test.get.desc.xml
                     |—test.get.js
tout les dashlets par défaut marche sans soucis, de même que pour le dashlet my site, ou my task, même mes dashlet perso marche, seul souci c'est quand j’essaye d'importer la liste des sites, alors que dans le dashlet par défaut cela fonctionne normalement, aucun conflit. merci
jayjayecl
Active Member II

Re: Problème récupération de site sur un Dashlet

Par contre vous citez des exemples de dashlets qui marchent, mais ce sont des dashlets d'utilisateurs …

On est d'accord que votre dashlet en question est un dashlet de site ?
alucard
Member II

Re: Problème récupération de site sur un Dashlet

Bonjour, quel est la difference entre un dashlet site, et un d'utilisateur?
si dans le fichier xml on déclare juste dashlet, on auras aucun souci?

test.get.desc.xml
<webscript>
<shortname>test</shortname>
<description>affiche les sites</description>
<family>dashlet</family>
<url>/components/dashlets/test</url>
</webscript>

mon but est de pouvoir rajouter un dashlet sur le tableau de bord ce dashlet personnalisé, pourras chercher les données choisis, exemple la je me base sur les sites crées sur toutes l'arborescence, et des que j'arrive a réaliser ça je passerais à d'autres type de recherche et de récupération exemple me ramener tous les fichier pdf et de les afficher, merci
bertrandf
Active Member

Re: Problème récupération de site sur un Dashlet

Bonjour, quel est la difference entre un dashlet site, et un d'utilisateur?
Une dashlet utilisateur est faite pour le tableau de bord utilisateur (le paramètre page.url.templateArgs.site n'existe pas), une dashlet de site est faite pour le tableau de bord d'un site …

si dans le fichier xml on déclare juste dashlet, on auras aucun souci?
Si vous faites cela, la dashlet sera aussi bien accessible depuis le tableau de bord d'un utilisateur ou depuis le tableau de bord d'un site.
La problématique étant que certains paramètres sont accessibles seulement en fonction du "contexte", le paramètre page.url.templateArgs.site sera logiquement renseigné quand vous serez sur une dashlet de site, ce qui ne sera pas le cas dans une dashlet utilisateur.

Cependant, dans votre sujet, vous indiquez déclarer :
<family>site-dashlet</family>

Vous ne devriez donc pas avoir de problème avec le paramètre page.url.templateArgs.site.
alucard
Member II

Re: Problème récupération de site sur un Dashlet

Dacord, donc si j'ai bien compris le paramètre  ( page.url.templateArgs.site ) me permet de récupérer les la liste des sites, seulement depuis une dashlet situé dans un site, mais a partir d'une dashlet utilisateur, on devras utilisé un autre paramètre? j'ai remarqué que dans le fichier  (my-site.get.js) une dashlet par defaut de share on retrouve cette ligne

my-site.get.js
var result = remote.call("/api/people/" + stringUtils.urlEncode(user.name) + "/sites");
  

sachant que cette dashlet est dite utilisateur :

my-site.get.desc.xml
   <family>user-dashlet</family> 

donc sachant que c'est une dashlet à la quel on a accès sur le tableau de bord (administrateur) donc utilisateur, tous les dashlets de ce tableau de bord devrais comporter ce paramètre la, et donc une dashlet avec le précédent paramètre ( page.url.templateArgs.site ) ne fonctionnera pas ici et voila pourquoi je n'avait aucun resultat. c'est bien cela? merci
bertrandf
Active Member

Re: Problème récupération de site sur un Dashlet

donc si j'ai bien compris le paramètre ( page.url.templateArgs.site ) me permet de récupérer les la liste des sites
Non !
page.url.templateArgs.site permet de récupérer l'identifiant du site courant, en aucun cas la liste des sites.

Dans le fichier my-site.get.js, justement il y a une récupération de la liste des sites de l'utilisateur courant, pour cela, il faut faire appel à un webscript coté entrepôt qui prend comme paramètre le username de l'utilisateur courant (user.name).

La dashlet est bien de type <family>user-dashlet</family> , ce qui signifie que c'est une dashlet faite pour le tableau de bord utilisateur (ca n'aurait pas de sens de lister les sites de l'utilisateur courant sur le tableau de bord d'un site).
Je ne pense pas que vous trouviez quelconque appel au paramètre "page.url.templateArgs.site" dans cette dashlet étant donné que ce dernier sera nul dans ce contexte.

Comprenez bien que les APIs coté Share sont très peu fournies comparées aux APIs coté entrepôt.
Les objets auxquels vous avez accès sont limités, voici ceux que vous utiliserez le plus :
    l'objet user permet de connaitre l'utilisateur courant
    l'objet remote qui permet de faire des appels aux webscripts situés coté entrepôt
    l'objet page qui est la page ou vous vous situez
http://wiki.alfresco.com/wiki/Surf_Platform_-_Freemarker_Template_and_JavaScript_API
alucard
Member II

Re: Problème récupération de site sur un Dashlet

très bien, merci pour l'explication, donc au final si je veut récupérer des informations, liste de sites ou de documents, je devrais soit faire appel a un webscript existant coté alfresco soit en crée un. bon faut s y mettre.
bertrandf
Active Member

Re: Problème récupération de site sur un Dashlet

Oui c'est cela.
Sachant qu'avant de vous lancer dans la création de vos propres webscripts, essayez de fouiller pour voir si Alfresco ne l'a déjà pas fait, ça serait dommage de re-coder des choses qui sont déjà faites (notamment pour récupérer la liste des sites).
Le meilleur moyen est de regarder ce qui est déjà fait dans les dashlets de base.

Ce site regorge également d'exemples : http://code.google.com/p/share-extras/

Bon courage.
alucard
Member II

Re: Problème récupération de site sur un Dashlet

merci, je ferais ainsi et je tiendrais au courant du résultat pour résoudre le sujet.