Ajouter un commentaire en javascript

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

Ajouter un commentaire en javascript

Bonjour,

J'ai besoin d'ajouter un commentaire à un fichier en javascript lors de son ajout dans un folder.
Après avoir éclusé beaucoup de topics sur le sujet dans les divers forum, j'ai écrit le code suivant :

if(!document.hasAspect("fm:discussable")) { document.addAspect("fm:discussable"); }
if(!document.hasAspect("fm:commentsRollup")) { document.addAspect("fm:commentsRollup"); }

var forums = document.childAssocs["fm:discussion"];
var forum;
var nom2 = "Discussion" + Math.random();

if(forums.length === 0) {
  forum = document.createNode(nom2, "fm:forum", "fm:discussion");
}
else {
  forum = forums[0];
}

var topics = forum.childAssocs["cm:contains"];
var topic;


if(topics.length === 0) {
  topic = forum.createNode("Comments", "fm:topic", "cm:Comments");
}
else {
  topic = topics[0];
}

var props = new Array(1);
props["cm:content"] = "";
var nom = "comment-" + Math.random();
//var nom = "Comment"
var mypost = topic.createNode(nom,"fm:post",props);
mypost.content = "<p><b>==== NEW COMMENT===== </b></p>";


Ce script marche bien pour un document ayant déjà la structure de post créé, c'est à dire ayant déjà au moins un commentaire mais ne marche pas pour un nouveau document sans commentaire. La création du noeud "fm:topic" échoue dans ce cas là.

Pouvez vous m'aider ?
Merci beaucoup.

Cordialement.
8 Replies
jayjayecl
Active Member II

Re: Ajouter un commentaire en javascript

Bonjour,

pour préciser les choses : parlez-vous de "commentaires" ou de "discussions" (au sens des objets Alfresco) ?
srzeppo1
Member II

Re: Ajouter un commentaire en javascript

Bonjour,

Merci pour votre intérêt à mon problème.

C'est pour ajouter un commentaire à un document (dans SHARE pour être précis) au sens "utilisateur".
Pour cela il me semble qu'il faut crée les noeuds "Forum", "Topic", puis un "post".
Il me semble que le noeud forum est associé au document par le champs "discussion".

Voici pour ma vue sur les termes "commentaire" et "discussion".
Est ce clair ?

Merci.
srzeppo1
Member II

Re: Ajouter un commentaire en javascript

Bonjour,

pour préciser les choses : parlez-vous de "commentaires" ou de "discussions" (au sens des objets Alfresco) ?

Bonjour,

Merci pour votre intérêt à mon problème.

C'est pour ajouter un commentaire à un document (dans SHARE pour être précis) au sens "utilisateur".
Pour cela il me semble qu'il faut crée les noeuds "Forum", "Topic", puis un "post".
Il me semble que le noeud forum est associé au document par le champs "discussion".

Voici pour ma vue sur les termes "commentaire" et "discussion".
Est ce clair ?

Merci.
srzeppo1
Member II

Re: Ajouter un commentaire en javascript

Bonjour,

Je n'ai toujours pas réussi à corriger l'erreur et je suis très ennuyé car je ne peux pas mettre en place la réponse à une demande utilisateur.
Mon code s'inspire d'un exemple cité comme fonctionnel et je ne trouve pas l' erreur.

Pouvez vous m'aider ?
Merci.
jayjayecl
Active Member II

Re: Ajouter un commentaire en javascript

Bonjour,

avez-vous essayé de débugguer votre script ?
Exemple ici :
http://alfresco-france.blogspot.fr/2012/01/debug-series-les-sources-javascript.html
srzeppo1
Member II

Re: Ajouter un commentaire en javascript

Bonjour,

avez-vous essayé de débugguer votre script ?
Exemple ici :
http://alfresco-france.blogspot.fr/2012/01/debug-series-les-sources-javascript.html

Oui merci de l'information.

Après correction du type du lien lors de la création du noeud Topic, le commentaire (post) est bien créé même lorsqu'il n'existe pas encore de commentaire pour ce document, MAIS le commentaire ne s'affiche pas à l'écran.
Je n'ai pas d'erreur et je ne vois pas la différence entre un noeud commentaire créé avec l'interface de Share et un noeud créé par le script.
Il doit me manquer une petite information dans un des noeuds de l'arborescence et je ne trouve pas.
Avez vous une idée pour m'aider à avancer ?

Voici le script modifié :
if(!document.hasAspect("fm:discussable")) { document.addAspect("fm:discussable"); }
if(!document.hasAspect("fm:commentsRollup")) { document.addAspect("fm:commentsRollup"); }

var forums = document.childAssocs["fm:discussion"];
var forum;
var nom2 = "Discussion" + Math.random();

if (forums == null) {
forum = document.createNode(nom2, "fm:forum","cm:contains");
}
else
{
forum = forums[0];
}

var topics = forum.childAssocs["cm:contains"];
var topic;
var nom3 = "Comments-" + Math.random();

if (topics == null) {
topic = forum.createNode(nom3, "fm:topic", "cm:contains");
}
else
{
topic=topics[0];
}

var props = new Array(1);
props["cm:content"] = "";
props["cm:mimetype"] = "";
var nom = "comment-" + Math.random();
var mypost = topic.createNode(nom,"fm:post",props,"cm:contains",nom);
mypost.mimetype = "text/html";
mypost.content = "<p><b>=================== CAB REJECTED =====================</b></p>";
if(!mypost.hasAspect("cm:titled")) { mypost.addAspect("cm:titled"); }

Merci beaucoup pour votre support.
cleseach
Active Member II

Re: Ajouter un commentaire en javascript

Bonjour,

La fonction "ajouter un commentaire" existe dans Share. L'étude du webscript appelé par Share pourrait donc vous être d'une grande aide.

Je vous invite à étudier comment fonctionne le webscript "Add comment" (cf. templates/webscripts/alfresco/org/alfresco/repository/comments/comments.post.json.js).

Vous y trouverez toute la logique à réutiliser pour vos besoins.

Cordialement,
Charles Le Seac'h
srzeppo1
Member II

Re: Ajouter un commentaire en javascript

Merci beaucoup pour vos aides.

J'ai résolu mon problème.

Pour information, voici le code qui répond à mon besoin :

if(!document.hasAspect("fm:discussable")) { document.addAspect("fm:discussable"); }
if(!document.hasAspect("fm:commentsRollup")) { document.addAspect("fm:commentsRollup"); }

var forums = document.childAssocs["fm:discussion"];
var forum = forums[0];

var topics = forum.childAssocs["cm:contains"];
var topic;
var nom3 = "Comments"

if (topics == null) {
topic = forum.createNode(nom3, "fm:topic", "cm:contains");
}
else
{
topic=topics[0];
}

var props = new Array(1);
props["cm:content"] = "";
props["cm:mimetype"] = "";
var nom = "comment-" + Math.random();
var mypost = topic.createNode(nom,"fm:post",props,"cm:contains",nom);
mypost.mimetype = "text/html";
mypost.content = "<p><b>=================== CAB REJECTED =====================</b></p>";
if(!mypost.hasAspect("cm:titled")) { mypost.addAspect("cm:titled"); }

Je clos mon post.
Cordialement