commande(s) javascript pour copier un espace sans ses règles

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

commande(s) javascript pour copier un espace sans ses règles

Bonjour !

C'est encore moi  Smiley Very Happy!  Je code en ce moment de petits javascripts et je cherche à :
- copier, en Javascript, un espace complet
     AVEC toutes ses propriétés,
     SANS les fichiers qu'il contient,
     SANS ses règles de contenu.

- copier, en Javascript, un espace complet
    AVEC toutes ses propriétés,
    AVEC les fichiers qu'il contient
    SANS ses règles de contenu.

Comment faire ? Je connais déjà la commande "ScriptNode copy(ScriptNode destination, boolean deepCopy)" mais je ne sais pas comment enlever les règles de contenu. J'ai cherché un peu partout dans la doc sur l'API javascript, sans succès.

Merci d'avance pour votre aide.
6 Replies
sibe
Active Member

Re: commande(s) javascript pour copier un espace sans ses règles

Salut Thomas,

Je ne sais pas si tu veux utiliser une action pour faire cette tâche ou autres possibilités, moi je te conseille par exemple de créer un webscript et utiliser ton scripts (javascript) pour réaliser l'action copy  : En spéciant par example sur ton url le nom de l'espace que tu veux copier et le type de copy (avec ou sans les contenus ). Bien entendu tu peux utiliser l'API searchService pour parcourir ton node :

Exemple vite fait :

url de ton webscript : /alfresco/test?space={space}&type{type}

var uo = args["space"];
var nodes = search.luceneSearch("PATH:\"/app:company_home/cm:Test//*\"" + uo);
if (nodes != null && nodes.length > 0) {   
// tu peux parcourir ici ton node
// pour récupérer les propriétés par exemple
for(var i = 0; i < nodes.length, i++){
 
}
}


Je te confirme il y'a aussi d'autres possibilités (Java …) à toi de voir selon tes sensibilités.
plus de précision voir : http://docs.alfresco.com/4.0/index.jsp?topic=%2Fcom.alfresco.enterprise.doc%2Freferences%2FAPI-JS-lu...
thomas
Member II

Re: commande(s) javascript pour copier un espace sans ses règles

Merci pour votre réponse.
Je suis désolé, j'ai dû mal m'exprimer. Je recherche à faire exactement la même chose que la commande "copy" mais en supprimant (ou en désactivant) toutes les règles de contenu de l'espace copié. Cette fonction doit absolument pouvoir copier cet espace, quelles que soient ses propriétés, à l'exception des règles de gestion qui doivent être neutralisées.

Ma difficulté n'est donc pas de trouver la node correspondant à l'espace (je la connais déjà), mais bel et bien de désactiver/supprimer les règles de gestion avec javascript.

Les espaces que je copie peuvent avoir de nombreux aspects divers, il m'est donc difficile de connaitre toutes les propriétés qui les caractérisent. Il m'est donc encore plus difficile de copier chaque propriété une par une (à moins que vous connaissiez un moyen de copier rapidement les propriété d'une nodes avec une boucle, sans avoir besoin de connaître leurs noms).

Bref ce que je recherche c'est ce qui devrait ce trouver dans la boucle :
"for(var i = 0; i < nodes.length, i++){

}"

Merci encore.

PS : par réflexe, j'ai placé ce post dans la catégorie "installation" (comme mes deux précédent posts). Mais je pense que la  rubrique "Webscripts / Javascript / Surf" serait plus adaptée. Si un modérateur passe dans le coin…
bertrandf
Active Member

Re: commande(s) javascript pour copier un espace sans ses règles

Je pense qu'en enlevant l'aspect "rule:rules" sur l'espace en question ca devrait le faire.

if (folder.hasAspect("rule:rules")) {
  folder.removeAspect("rule:rules");
}
thomas
Member II

Re: commande(s) javascript pour copier un espace sans ses règles

Parfait !
Merci beaucoup !
Dernière question : y-a-t'il une doc sur laquelle sont décrits les aspects et propriétés que l'on peut modifier sous javascript ? parce que je ne trouve rien sur le sujet à part quelques exemples sur le titre ou l'aspect versionnable.
bertrandf
Active Member

Re: commande(s) javascript pour copier un espace sans ses règles

A ma connaissance, il n'y a pas de listing des aspects et propriétés disponibles.

Pour les connaitre, il faut aller faire un tour les modèles de données proposés par Alfresco (/tomcat/webapps/alfresco/WEB-INF/classes/alfresco/model/*.xml) et utiliser le Node Browser pour regarder les propriétés et aspects portés par chaque noeud.
thomas
Member II

Re: commande(s) javascript pour copier un espace sans ses règles

Merci !