ในบางกรณี เราอาจจำเป็นต้องใช้ JavaScript เพื่อไป Comment เอกสารแต่การที่จะ Comment เอกสารนั้นด้วย JavaScript API ของ Alfresco นั้นไม่ง่ายเลย ผมจึงทำ Function สำหรับ Comment ไปยัง node ของเอกสารไว้เพื่อง่ายต่อการใช้งานภายหลัง
จากนั้นตรวจสอบว่ามีการทำ Child Association กับตัว discussion และตัว contains ไว้หรือยัง โดยหากยังก็ให้ Create Child Association ด้วย จากนั้นก็ add comment ลงไปครับ
Continue Reading...
function commentNode(nodeRef, comment) {
var node = search.findNode(nodeRef);
if(!node.hasAspect("fm:discussable")) {
node.addAspect("fm:discussable");
}
if(!node.hasAspect("fm:commentsRollup")) {
node.addAspect("fm:commentsRollup");
}
var forums = node.childAssocs["fm:discussion"];
var forum;
if(forums.length === 0) {
forum = node.createNode(node.properties.name + " discussion", "fm:forum", "fm:discussion");
} else {
forum = forums[0];
}
var topics = forum.childAssocs["cm:contains"];
var topic;
if(topics == null || topics.length === 0) {
topic = forum.createNode("Comments", "fm:topic", [], "cm:contains", "cm:Comments");
} else {
topic = topics[0];
}
var now = new Date();
var name = "comment-" + now.getTime();
var mypost = topic.createNode(name, "fm:post", [], "cm:contains", name);
mypost.content = comment;
}
ตัว Function จะรับ NodeRef และ CommentText ไปจากนั้นนำ NodeRef ไปหา Node จริง จากนั้น check ว่า Node นั้นมี Aspect discussable กับ commentRollup หรือไม่ โดยหากไม่มีจะใส่ Aspect ให้จากนั้นตรวจสอบว่ามีการทำ Child Association กับตัว discussion และตัว contains ไว้หรือยัง โดยหากยังก็ให้ Create Child Association ด้วย จากนั้นก็ add comment ลงไปครับ