cancel
Showing results for 
Search instead for 
Did you mean: 

Donner le choix à l'utilisateur de l'espace de publication

lodacom
Champ in-the-making
Champ in-the-making
Bon, voilà tout est dans le titre. J'aimerais savoir si il était possible (et si oui comment) de donner le choix à l'utilisateur de donner le répertoire où il veut que le document soit publié (c'est à dire déplacer vers ce répertoire).
Deux possibilités:
-l'utilisateur donne lui même (en tapant au clavier) l'espace où il veut publier . A ce moment comment récupérer la valeur rentrée (et surtout donner la possibilité de rentrée cette valeur). Quand on a récupéré cette valeur faire une requête (comme je l'ai vu http://forums.alfresco.com/fr/viewtopic.php?f=23&t=4475 ici) et enfin quand l'utilisateur clique sur publier déplacer le document en question dans l'espace désigné (ça j'ai vu comment il fallait faire)
-deuxième solution on donne la possibilité à l'utilisateur de choisir l'espace (mais pas cette fois-ci en le faisant chercher) mais en donnant l'espace racine d'Alfresco (et ses sous-répertoires) et par cliques successifs qu'il choisisse l'espace où il veut déplacer le document (et à nouveau récupérer cette valeur)… idem
Alors qu'elle est la solution faisable et surtout comment (merci de mettre des liens ou des bouts de codes). Sachant que la deuxième solution est plus complexe la première serait déjà pas mal.
Merci de votre réponse.
6 REPLIES 6

jayjayecl
Confirmed Champ
Confirmed Champ
Je dirais plutôt que la deuxième solution est :
- plus facile : le composant graphique de sélection d'un espace existe déjà (voir par exemple lorsque qu'on lance l'action "déplacer vers")
- plus fiable :
comment doit se comporter la recherche si elle renvoie plusieurs résultats ? aucun résultat ?
etc …

Pour l'implémentation, cela dépend un peu de votre besoin spécifique. Mais vous pourriez modifier le formulaire d'upload pour ajouter ce composant, et ensuite par règle de contenu (exécutant un script, par exemple) vous appuyer sur l'espace choisi pour y déplacer le document.

Alors qu'elle est la solution faisable et surtout comment (merci de mettre des liens ou des bouts de codes)

Vous auriez du demander directement le développement spécifique tout fait avec un lien ftp pour le télécharger, ce serait plus simple Smiley Happy

PS :
quelques exemples de JS Alfresco :
http://wiki.alfresco.com/wiki/JavaScript_API_Cookbook

lodacom
Champ in-the-making
Champ in-the-making
Bon tout d'abord merci pour ta réponse. Pour ce qui est du lien je l'ai déjà consulté et je n'en ai pas tiré grand chose (enfin presque). Le problème de la modification du formulaire d'upload c'est que (certainement) je vais avoir cette modification présente à toutes les étapes du workflow (de la soumission à la publication). Or je veux que cette fonctionnalité soit présente seulement dans l'étape de publication.
Autre chose j'ai trouvé une idée (peut être que ça peut fonctionner):
Au lieu de faire ceci:

function result()
{
   return (actions.registered);
}
result();

je ferai ceci:

function result()
{
   actions.move;
}
result();
J'espère ainsi déclencher l'apparition de l'action "déplacer vers". Bon je dirai ce que ça donne….
Bon ben ça fait que dal  Smiley Sad

jayjayecl
Confirmed Champ
Confirmed Champ
Le terme "publication" n'est pas clair pour moi.
Vous avez conçu un workflow spécifique ?
Pourriez-vous préciser rapidement le cycle de vie du document, par exemple :
- initialement, le document est dans Alfresco (dans un espace de l'entrepôt / dans un site collaboratif)
- on déclenche un workflow de publication sur ce document, qui comporte X étapes
- alors, des utilisateurs ont des tâches qui leur sont assignées, etc …

J'avoue sinon ne pas vraiment comprendre le cas d'utilisation.

lodacom
Champ in-the-making
Champ in-the-making
Ok alors c'est parti pour l'explication:
Alors j'ai réussi à trouver un script qui déclenche automatiquement mon workflow avancé (spécifique) http://forums.alfresco.com/fr/viewtopic.php?f=23&t=3558. J'ai appliqué ce script sur l'espace "Espaces Utilisateurs" (et tous ses sous-répertoires). Donc dès qu'un utilisateur importera un document dans son espace personnel ça déclenchera mon workflow avancé.
Dès que le workflow est lancé. Une tâche est attribuée à un groupe que j'ai appelé "Valideur" ce groupe doit valider ou rejeter le document. Un utilisateur de ce groupe prend la main (donc il n'y a pas de conflit de double rejet ou double acceptation en même temps). Si il (l'utilisateur qui a pris la main) rejette le document l'initiateur du workflow (donc le déposant du document) doit apporter les corrections demandées par le groupe (d'ailleurs je n'arrive pas à rendre le champ "Description" accessible mais bon). Sinon (le document est accepté) et on passe à la publication. Pour moi la publication c'est l'équivalent (voir le synonyme) de déplacer. Donc cette tâche est attribuée à nouveau au groupe "Valideur" (idem un utilisateur prend la main) et il publie (déplace) le document (vers l'espace voulu).
Voilà en résumé mon workflow. En espérant éclairer ta lanterne.

jayjayecl
Confirmed Champ
Confirmed Champ
Je dirais qu'il faut donc  :
- Intégrer une variable dans votre WF à la tâche ou un valideur doit sélectionner l'espace de destination. Cette variable serait par exemple un NodRef. Il faut aussi intégrer dans le formulaire de la tâche un composant IHM adéquat (un "space picker")
- scripter une action dans la transition de validation du WF qui déplace le document dans l'espace (marqué par la variable précédemment définie).

Pléthore d'exemples dans les workflows de base d'Alfresco, sur la page du wiki, et dans le guide de jeff potts :
http://wiki.alfresco.com/wiki/WorkflowAdministration
http://ecmarchitect.com/archives/2007/11/19/785

Ou êtes-vous bloqué ?

lodacom
Champ in-the-making
Champ in-the-making
Pour le deuxième tiret, j'ai trouvé ceci:

<!– Nom du document –>
var documentname = bpm_package.children[0].properties.name;
<!– Répertoire racine de l'espace –>
var rootfolder = bpm_package.children[0].parent.parent;
<!– Supprimer l'ancien document depuis le répertoire raciner–>
var olddocument = rootfolder.childByNamePath(documentname);
    if(olddocument != null){
     olddocument.remove();
      }
  <!– Copie du nouveau document dans le répertoire racine de l'espace–>
  bpm_package.children[0].copy(espace_choisie);
<!– espace_choisie serait la variable (NodeRef) que l'on aurait choisie pour déplacer le document –>
Pour le premier tiret:
-le space picker je n'ai pas trouvé grand chose dessus à part un répertoire tomcat\webapps\alfresco\scripts\ajax où il y a un date_picker.js ou encore un picker.js mais c'est tout.
-pour la variable il faudrait la déclarer ainsi je crois:

NodeRef espace_choisie= null;
Getting started

Tags


Find what you came for

We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.