Bonjour à tous
,Je me permets d'écrire car j'ai un petit problème. je voudrais ajouter un bouton dans l'espace documentaire de mon site ALfresco share afin d'ouvrir un formulaire que j'ai préalablement construit.Je me suis servi du tutoriel suivant pour travailler: http://edlovesjava.blogspot.com/2008/12/extending-share-2-adding-new-content.html
.J'ai créé mon formulaire et j'arrive à y accéder sans problème en utilisant le lien suivant: http://@serveur:8080/share/service/components/documentlibrary/create-content?htmlid
J'ai aussi créé mon bouton et je peux le visualiser sans souci dans le site au niveau de l'espace documentaire.Cependant, lorsque je clique sur le nouveau bouton que je viens d'ajouter, rien ne se passe. Le plus surprenant c'est que dans mon fichier log je n'ai aucune erreur
. Je voulais juste préciser que je n'ai pas, comme indiqué dans le tutoriel, créé un nouveau projet, j'ai directement travailler dans: WEB-INF/classes/alfresco/site-webscripts/org/alfresco/components/documentlibrary
pour la création des fichiers.Voici les différentes méthodes javascript que j'ai testé:la première est la même que celle du tutoriel:onNewContent: function DLTB_onNewContent(e, p_obj)
{
var actionUrl = YAHOO.lang.substitute(Alfresco.constants.PROXY_URI + "slingshot/doclib/action/folder/site/{site}/{container}/{path}",
{
site: this.options.siteId,
container: this.options.containerId,
path: this.currentPath
});
var doSetupFormsValidation = function DLTB_oNF_doSetupFormsValidation(p_form)
{
// Validation
// Name: mandatory value
p_form.addValidation(this.id + "-createContent-name", Alfresco.forms.validation.mandatory, null, "keyup");
// Name: valid filename
p_form.addValidation(this.id + "-createContent-name", Alfresco.forms.validation.nodeName, null, "keyup");
p_form.setShowSubmitStateDynamically(true, false);
};
if (!this.modules.createContent)
{
this.modules.createContent = new Alfresco.module.SimpleDialog(this.id + "-createContent").setOptions(
{
width: "30em",
templateUrl: Alfresco.constants.URL_SERVICECONTEXT + "components/documentlibrary/create-content",
actionUrl: actionUrl,
doSetupFormsValidation:
{
fn: doSetupFormsValidation,
scope: this
},
firstFocus: this.id + "-createContent-name",
onSuccess:
{
fn: function DLTB_onCreateContent_callback(response)
{
var file = response.json.results[0];
YAHOO.Bubbling.fire("folderCreated",
{
name: file.name,
parentPath: file.parentPath,fileCopied
nodeRef: file.nodeRef
});
Alfresco.util.PopupManager.displayMessage(
{
text: this._msg("message.new-content.success", file.name)
});
},
scope: this
}
});
}
else
{
this.modules.createContent.setOptions(
{
actionUrl: actionUrl,
clearForm: true
});
}
this.modules.createContent.show();
},La seconde est juste l'adaptation de la fonction onNewFolder du toolbar.js du repertoire documentLibrary
/**
* New Content button click handler
*
* @method onNewContent
* @param e {object} DomEvent
* @param p_obj {object} Object passed back from addListener method
*/
onNewContent: function DLTB_onNewContent(e, p_obj)
{
var destination = var destination = this.doclistMetadata.parent.nodeRef;
// Intercept before dialog show
var doBeforeDialogShow = function DLTB_onNewContent_doBeforeDialogShow(p_form, p_dialog)
{
Dom.get(p_dialog.id + "-dialogTitle").innerHTML = this.msg("label.new-content.title");
Dom.get(p_dialog.id + "-dialogHeader").innerHTML = this.msg("label.new-content.header");
};
var templateUrl = YAHOO.lang.substitute(Alfresco.constants.URL_SERVICECONTEXT + "components/form?itemKind={itemKind}&itemId={itemId}&destination={destination}&mode={mode}&submitType={submitType}&formId={formId}&showCancelButton=true",
{
itemKind: "type",
itemId: "cm:content",
destination: destination,
mode: "create",
submitType: "json",
formId: "create-content"
});
// Using Forms Service, so always create new instance
var createContent = new Alfresco.module.SimpleDialog(this.id + "-createContent");
createContent.setOptions(
{
width: "33em",
templateUrl: templateUrl,
actionUrl: null,
destroyOnHide: true,
doBeforeDialogShow:
{
fn: doBeforeDialogShow,
scope: this
},
onSuccess:
{
fn: function DLTB_onNewContent_success(response)
{
var contentName = response.config.dataObj["prop_cm_name"];
YAHOO.Bubbling.fire("folderCreated",
{
name: contentName,
parentNodeRef: destination
});
Alfresco.util.PopupManager.displayMessage(
{
text: this.msg("message.new-content.success", contentName)
});
},
scope: this
},
onFailure:
{
fn: function DLTB_onNewContent_failure(response)
{
if (response)
{
var contentName = response.config.dataObj["prop_cm_name"];
Alfresco.util.PopupManager.displayMessage(
{
text: this.msg("message.new-content.failure", contentName)
});
}
else
{
Alfresco.util.PopupManager.displayMessage(
{
text: this.msg("message.failure")
});
}
},
scope: this
}
}).show();
},
Je vous avoue que le javascript et moi cela fait deux, mais si j'avais une erreur, j'aurais peut-être su comment procéder
ops: .Avez vous une idée? Est ce que les fonctions java script que j'utilise sont correctes? :?: :?: Merci d'avance.Cordialement.